Live data from Hacker News

Show HN: manpages-tldr – short manpages with examples

github.com

21–30 of 34 posts

Re: Show HN: manpages-tldr – short manpages with examples

#21

Why can't people just improve manpages so that they include a readable abstract and examples instead of coming up with projects with cute names?

Yes, as in that case

* the survival of OP's labour is more likely; and

* one might use something like `eg`[0] to directly jump to the 'Examples' section.

[0] I gave a possible implementation below (https://news.ycombinator.com/item?id=7167835).

Re: Show HN: manpages-tldr – short manpages with examples

#22
Note that:

• Manpages are short. The average length is around 4 pages printed, much of which is pro-forma. Some run longer. Shells in particular (bash(1) runs around 98 pages piped through 'pr').

• Manpages include an EXAMPLES section, though this isn't always filled. That should be considered a bug.

• Manpages suffer from various projects attempting to deprecate them in favor of other forms of documentation. I particularly fault the GNU project's attempt to shoehorn info in place of man (the availability of man to Web utilities such as Debian's dwww largely wholly supplants this: info and the WWW were born within months of each other, Stallman and the FSF should have conceded the battle decades ago). Red Hat and the GNOME project have also been notably lax in providing manpages for utilities and programs. The Debian project considers omission of a manpage for an executable to be a bug, though not a release-critical one (I wish this severity would be increased).

• Fixing the deficiencies of existing manpages (and beating upstreams over the head with these until they're accepted) would be preferable to creating numerous externally maintained nonstandard variants. http://xkcd.com/927/

Re: Show HN: manpages-tldr – short manpages with examples

#23

Why can't people just improve manpages so that they include a readable abstract and examples instead of coming up with projects with cute names?

Another way to think about this is, why can't manpages be written more concisely, so that the most common options and syntax are on the first page/"above the fold"? Here is the 7th edition UNIX manual for comparison: http://cm.bell-labs.com/7thEdMan/bswv7.html

The printed output of the BSD 3.4 manuals for the first UNIX system I used (other than for playing BSD games as a kid) always had a certain fascination for me. Several large 3-ring binders comprising the sections of the manual, Postscript printed from their troff sources.

Note that you can still do this with manpages:

    man -Tps bash > /tmp/bash.ps
Or if you prefer PDF output:

    man -Tps bash | ps2pdf - > /tmp/bash.pdf

... not that this addresses the content of the manpages, as you note. But at least you can decide on the format.

Re: Show HN: manpages-tldr – short manpages with examples

#25

Note that: • Manpages are short. The average length is around 4 pages printed, much of which is pro-forma. Some run longer. Shells in particular (bash(1) runs around 98 pages piped through 'pr'). • Manpages include an EXAMPLES section, though this isn't always filled. That should be considered a bug. • Manpages suffer from various projects attempting to deprecate them in favor of other forms of documentation. I parti…

Thank you. I would do my best to improve real manpages. As I say in comments here, tldr pages aims to provide quick access to examples and must not replace real manpages.

How do you think, would I need to change license of a project if I want to push some examples to manpages?

Re: Show HN: manpages-tldr – short manpages with examples

#26

Note that: • Manpages are short. The average length is around 4 pages printed, much of which is pro-forma. Some run longer. Shells in particular (bash(1) runs around 98 pages piped through 'pr'). • Manpages include an EXAMPLES section, though this isn't always filled. That should be considered a bug. • Manpages suffer from various projects attempting to deprecate them in favor of other forms of documentation. I parti…

Thank you. I would do my best to improve real manpages. As I say in comments here, tldr pages aims to provide quick access to examples and must not replace real manpages. How do you think, would I need to change license of a project if I want to push some examples to manpages?

If you're the author of the pages, you can set the licensing terms as you wish.

Generally, an MIT/BSD style license tends to be compatible with most other licenses. If you're the sole author, licensing the manpages under the same terms as the specific upstream works would work.

You might specify your own terms (say: a CC license), with a proviso "or, as an alternative, under the licensing terms of the original project for which this manual page applies".

IANAL.

Re: Show HN: manpages-tldr – short manpages with examples

#27

Note that: • Manpages are short. The average length is around 4 pages printed, much of which is pro-forma. Some run longer. Shells in particular (bash(1) runs around 98 pages piped through 'pr'). • Manpages include an EXAMPLES section, though this isn't always filled. That should be considered a bug. • Manpages suffer from various projects attempting to deprecate them in favor of other forms of documentation. I parti…

I think stating that manpages are short is a little inaccurate. The average may very well be 4 pages, but the standard deviation is probably high (bash, gcc, ssh among others have long man pages). A few commands nowadays also have multiple man pages because people don't want to search through all the crap that's in a normal manpage (ie git, gittutorial, gittutorial-2, Everyday Git, ...).

People likely aren't going to use manpages-tldr for 4 page man pages. They may use it for gcc which is 17549 lines (without an examples section and examples are littered throughout the page, meaning you have to already know what you're looking for).

According to Wikipedia, man pages have been around since 1971[1]. Man pages were designed before a paradigm shift from systems oriented to user oriented design and are usually written in a manner that makes them easy to write, not easy to read. If you think about the first time you looked at man pages, they were likely difficult to look through and you just got used to it; that's what happened to me.

I would guess that most people would like examples of basic usage. The examples section of man pages is normally near the end but it's location isn't really standardized. I normally end up searching "/^[[:blank:]]*EXAMPLE" and if I don't find it I google it.

This doesn't mean that man pages are not useful when you know what you're looking for. They can be particularly useful for c code to supplement the headers themselves.

I think forcing man pages to be something that they are not isn't much better than having a bunch of nonstandard variants. I am not saying that the examples shouldn't be added, but man pages are very technical when most people probably want a layman example before the technical details.

[1] http://en.wikipedia.org/wiki/Man_page#History

Re: Show HN: manpages-tldr – short manpages with examples

#28
post #20
post #3

This was on here not long ago: http://bropages.org/

it would've been great if all these (3 so far?) tldr man attempts would've also had a web interface, so local install would be optional

Well, pandoc can easily generate html, which can be styled as you wish. I make a list of tldr-manpages on my homepage: http://begorov.me/man-tldr/

Re: Show HN: manpages-tldr – short manpages with examples

#29

Note that: • Manpages are short. The average length is around 4 pages printed, much of which is pro-forma. Some run longer. Shells in particular (bash(1) runs around 98 pages piped through 'pr'). • Manpages include an EXAMPLES section, though this isn't always filled. That should be considered a bug. • Manpages suffer from various projects attempting to deprecate them in favor of other forms of documentation. I parti…

I think stating that manpages are short is a little inaccurate. The average may very well be 4 pages, but the standard deviation is probably high (bash, gcc, ssh among others have long man pages). A few commands nowadays also have multiple man pages because people don't want to search through all the crap that's in a normal manpage (ie git, gittutorial, gittutorial-2, Everyday Git, ...). People likely aren't going to…

I think stating that manpages are short is a little inaccurate.

You're arguing against the data. Care to continue doing so?

There are a few outliers, but really, the average page length is pretty low.

I'm running this right now, and what I'm getting is (5831 pages processed):

    mean:  3.9 pages
    median:  2 pages
    standard deviation:  11.06 pages
If you'd prefer precentiles:

    5th %ile:  1
    25th %ile: 1
    75th %ile: 3
    95th %ile: 12
Max is 476 pages (zshall(1)).

This is on a Debian GNU/Linux system with 3479 packages installed. I checked only English manpages under /usr/share/man (there are another dozen or so pages for openjdk under /usr/lib/jvm, max length 29 pages).

Obviously, mileage may vary.

Code:

    cd /usr/share/man
    time for f in $(find man[0-9] -type f -name \*.[0-9].gz); do echo -e "$f\t\c"; man $f 2>&1 | pr | grep '      Page [0-9][0-9]* *$' | tail -1 | sed 's/^.*\(Page \)//'; done
Takes about 4.5 minutes to run on my system.

Compute statistical moments with your preferred analysis tool (I've got one I wrote for the purpose).

There are 68 manpages 37 pages or longer in length (2 standard deviations over mean). I see several shells (zshall, bash, tcsh), many perl utilities, and a few complex tools (mutt, openvpn, wireshark, busybox) among them. Pretty small count, actually.

Man pages were designed before a paradigm shift from systems oriented to user oriented design and are usually written in a manner that makes them easy to write, not easy to read.

While understanding a manpage's format is useful, ANY documentation which is "easy to write, not easy to read" is a bug.

As for alternatives to manual pages, I find the Linux Documentation Project's HOWTOs to be an excellent adjunct. GNU info pages, not so much.

Re: Show HN: manpages-tldr – short manpages with examples

#30

Earlier quoted context omitted.

I think stating that manpages are short is a little inaccurate. The average may very well be 4 pages, but the standard deviation is probably high (bash, gcc, ssh among others have long man pages). A few commands nowadays also have multiple man pages because people don't want to search through all the crap that's in a normal manpage (ie git, gittutorial, gittutorial-2, Everyday Git, ...). People likely aren't going to…

I think stating that manpages are short is a little inaccurate. You're arguing against the data. Care to continue doing so? There are a few outliers, but really, the average page length is pretty low. I'm running this right now, and what I'm getting is (5831 pages processed): mean: 3.9 pages median: 2 pages standard deviation: 11.06 pages If you'd prefer precentiles: 5th %ile: 1 25th %ile: 1 75th %ile: 3 95th %ile: 1…

I meant generalizing all manpages as short is inaccurate. The original statement was that the average is 4 pages which tells you almost nothing without some idea of the spread. You have provided that, thank you.

5831 is the number of manpages processed, or the number of total pages inside them processsed?

My system has 18,590 manpages. Running:

  cd /usr/share/man
  find ./man[0-9] -type f -exec zgrep '^[[:blank:]]*EXAMPLE' {} \;|wc -l
yields 17. While I admit that this may not be the best regular expression that would best match the pattern all the time, I think there is generally not an examples section. This may be because a lot of the documentation is for code that does not need examples.

  for i in $(seq 1 9);do echo $i $(ls man$i|wc -l);done
  1 2554
  2 454
  3 16014
  4 45
  5 346
  6 49
  7 284
  8 821
I don't have any man 9 pages, and cropped the error from that part.

While it may be true that documentation that is "easy to write, not easy to read" is a bug, I think it is very unlikely that the average person would file a bug report for documentation.

I did not know about The Linux Documentation Project's HOWTOs, very neat.

EDIT: I also wanted to point out that depending on what section you are looking at manpages for, you have different statistics.

  man1 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   1.000   2.000   5.519   4.000 470.000

  man2 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   2.000   2.000   3.018   3.000  31.000 

  man3 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   1.000   2.000   3.067   3.000 113.000 

  man4 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    1.00    2.00    3.95    5.00   21.00 

  man5 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   2.000   3.000   5.283   5.000 149.000 

  man6 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   1.000   2.000   2.306   2.000  15.000 

  man7 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   3.000   3.000   5.808   6.000  69.000 

  man8 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    1.00    2.00    3.06    3.00   77.00
Post reply on HN