Notebook Is A Better Readme
matyunya-readme.ellx.app
matyunya-readme.ellx.app
My memory is a bit fuzzy, but back in the late 1980s and most of 1990s, the README file was useful,and it was the first thing that I opened when I downloaded a software package. Then sometime in the 2000s, the corporate lawyers took over the README file and it just became a wall of CAPITALIZED legal text that contained zero useful information. I stopped opening the README files. Then sometime in the 2010s, the README files became useful again, and I started to read them again. Not exactly sure when that happened.
They have always been extremely useful, actually. It is always the first thing you open when you download a package (well, that or INSTALL). You're right that the README's of, say, MS-Windows or such software is less useful, but I don't know that this situation has improved recently. Perhaps it's just your use of FOSS? :-)
I think markdown is probably as fancy as it can get and still be readable in the terminal after I clone the repo, or any ide, or the browser.
I think of it as a more formatted man page. Would I want a man page to be interactive? Or only work in a browser.
I also think if GitHub allowed more flexible markdown (like allowing html and js) it would turn more into a MySpace chaos. I don’t think authors would limit themselves to nice functions only once you let the JavaScript and CSS cat out of the bag.
I think your example is neat but that’s what pages is for. Use pages and add a link at the top of your readme. Just because GitHub is the first thing your users see doesn’t mean it has to be. Make a project web site, direct users there. Use GitHub pages for that if you don’t have a site elsewhere.
Are man pages not readable because the original source form is troff?
The times should reflect this evolving need.
I also like that the on-ramp document can get PRs from new hires who find some improvement, etc etc.
There's no need since, these needs are already addressed in their own files for decades IMHO.
Readme files are a general map most of the time. Other relevant files are "Install", "Contributing", etc. Your README should be concise and refer to another text (or markdown) files in the repository.
Of course people adapt and evolve but, I don't understand the attitude of "We've just invented this". No, we didn't. README.1st, CONTRIBUTING files are as old as computing now.
Sure, you can put a bunch of quick links in there to get people started, but as a potential user interested in using a project, I'm not interested in your complete overview of the source code architecture or the necessary onboarding steps.
Put a quick link in the README to guide people to the right place, but don't put all of your project documentation in there unless your project is particularly small. We've grown beyond storing a bunch of texts files in a SVN respository, every major source control system also has a way to document your project.
If you choose to keep your documentation inside of your source control, the rise of Markdown viewers that support navigating links can help you achieve the same benefits by just linking to docs/project-overview.md in the top of your README.
I think it’s unusual to have a readme with as much info as a man page, but readme is for the source right. The documentation is usually organized depending on the type of project.
Shouldn't everything only work in a web browser? I'm not sure why documentation hasn't been migrated to containerized microservices deployed on K8s with a React frontend yet. This stuff is all sooo antiquated. /s
I think the disagreement largely boiks down to semantics of the word "readme." Both versions can coexist, probably will. They're just going argue about which one is the "real" readme... the old school or the one that the author wants you to read.
That's what Stallman wanted for GNU. The results speak for themselves.
I too prefer to subjectively dictate based upon prior experience.
How someone organizes a project is up to them, and the folks interested in it?
But I also think many READMEs could be improved with the inclusion of a figure or two.
It really helps if the artefact has some kind of visual output, and if there isn't, some kind of diagram could be useful.
I add TOCs in README.md's as they get longer, and I suggest everyone consider doing the same.
Example:
Like it or not, this is here to stay. What we should fight against, imo, is not browsers as an idea - but the lack of diversity. We're in a reality where we all but only two/three browsers - it would be as if we only had Windows and OSX. The answer wouldn't be to get rid of Windows or OSX, but rather create a rich ecosystem of complementing operating systems - ala Linux.
Like it or not, the web browser game is one monopoly after another. First it was internet explorer, now it's chrome.
It's been happening again and again, the only way not to lose is not to play the game.
Thus, relying less on the browser is a good thing.
Really cool that this author is thinking about ways to make that kind of stuff a reality. To me it’s exciting to imagine a future where programs automatically generate UIs that explain what they do with the best techniques from pedagogy, graphic design, video game mechanics, etc.
Perhaps it needs to be rebranded with a vegetable name, for modern developers to take interest. Samphire, maybe.
Would be grateful if anyone could explain the significant differences between the two.
If there isn't, it seems that "org mode" is a very bad name and it should be called simply "emacs". Or, if you want to be too precise, "emacs, with some configuration tweaks".
It's as much "emacs with some configuration tweaks" as VS Code is "chromium, with slightly improved <textarea>".
W.r.t. the good question in a comment that definitely has more than just that, yes, there are partial ports of Org mode to vim, VS Cod{e,ium}, and AFAIK Sublime Text, but Org does make use of some facilities of Emacs that are not as easy to replicate on these editors. For exporting, Pandoc can help to some extent, but it's imperfect and not as configurable.
Ha! I love this, definitely going to say it in public.
Apart from this joke, I asked a well-intentioned question. I have seen people doing magic with org-mode, treating text documents as if they were notebooks, running snippets of code by selecting them, then having the output as text. I would like to do something similar in vim, if possible.
If you want to edit org files I really don’t think there is a good substitute for emacs if you want all the features, however you can definitely do basic modifications with any text editor.
But now I guess it’s a landing page with a bunch of tags at the start. That’s not a good development in my opinion.
[1]: https://github.com/nextjournal/notebook-format-demo/blob/mas...
[2]: https://github.nextjournal.com/nextjournal/notebook-format-d...
The way github structures their doc trees is also not nice for easy navigation, which is required often for docs when they are structured that way.
Looking at umatrix all the js is coming from a CDN too. I think it show the obvious benefit of readmes compared to a notebook which might be useless in 10 years due to link rot or the CDN going under.
> Now, I've been working on [Ellx, ]a tool
The first reference to the name that I saw was in relation to a scope convention and I had to go search for the anchor to that reference.
I like the idea of spreadsheets as a first-class citizen in such a concept.
That said, I definitely see how this can become invaluable in documentation for DevOps tools.
I would love if every package had a LINK to a live notebook to test things, but it should not replace the README.
And, by the way, stop with the markdown README crazyness.
README files are supposed to be readable as plain text and hard-wrapped at 80 columns. I have found some "readme.md" monstrosities with github-specific markdown that were unreadable outside the github website. This is akin to presenting your readme file as a flash ainmation.
Stuff like "## Header" isn't any more "crazy" than the ASCII art used in many Readme's of old and on top of that doesn't rely on specific monospace fonts or fixed width. And more advanced stuff like hyperlinks or tables are hard to do "right" in text anyway, since it's basically meta data without an objective "right" or "wrong" way of representing it.
I also truly believe that it's time to finally let go of the 80-columns obsession. It's not 1975 anymore and even the ancient VT100 from 1978 had a 132-column mode. It's just an indefensible relic that held developers hostage for way too long.
Still want 80 columns on your 4k 27" 10bpp HDR monitor? Fine, but don't insist on others bending over backwards just not anger the grey beards on top of Mount Teletype... Text editors are perfectly capable of introducing proper line breaks even at word boundaries if need be.
It's really just become l'art pour l'art to force this arbitrary (by today's [and by today I mean the past 30 years!] standards) restriction on developers with no benefit to readability.
> Still want 80 columns on your 4k 27" 10bpp HDR monitor?
This is offtopic, but a strong YES. There's good reason why on printed books you don't ever see more than about 70 characters per line of text. Long lines are just unreadable, regardless of your font/window/screen size.
That reason is called format not readability, though.
Newspapers (if you still remember these) go way beyond this limit and are still readable.
https://www.sciencedirect.com/science/article/abs/pii/S10715...
The book I grabbed was "Spoken Language Processing", Huang Acero, Hon (ISBN 0-13-022616-5) and I counted 88 characters per line. The book is still very readable, despite exceeding the claimed 70-odd character limit for books/columns. Another book sitting next to it (a numerical mathematics textbook) had 82 characters per line.
Granted, the limit of no more than 70 characters per line applies if whitespace and punctuation aren't counted, but that's never done with hard limits in digital documents either, so...
Every so often I open a magazine that doesn't abide by this, and has text that spans across the whole page, and they're nearly unreadable.
BTW I recently go a 24" screen (I was all about laptops, turns out I was torturing myself...) and I can easily fit 3 columns in Emacs, with a large-ish point size (238 chars across the monitor, DejaVu Sans Mono). If it's not a preference thing, and assuming (corrected-to-)fine eyesight, shouldn't 43" be capable of like 8x2 easily?
I question Unicode as well.
A readme file should work as expected in simple text editor. Like an early version of VI from 30 years ago.
Anything fancy should be able in the documentation hierarchy for the project
I do not live in America and the country I live in has it's own set of special characters to deal with.
I can perhaps agree that American cultural imperialism in computer science as with many other fields
This post was primarily directed at GitHub. It has users from all over the world.
Having a common Lingua franca for the various public rep is inclusive and productive
I want here there to be a low threshold to use and contribute to my projects.
Lastly, Github is an American company located in the US. With repositories primarily using American created and optimized for Americans keyboard layout programming languages.
Certainly, some programming languages originated in other countries. As far as I can recall they all stick to English for keywords.
A couple of decades ago there was much more variety, and it was more common for countries to have native originated programming languages that did not use English.
Linux started in Finland but it kept the US created standard UNIX names and conventions.
Most if not all documentation is in English many have now been translated to other languages.
With all that in mind. Sticking to the most compatible common denominator is the best standard on Gigahub.
It is not about imperialism, but computer science is not all about problems that could be expressed in english either. What I'm supposed to do if I need to write a program for manipulating cyrillic texts? Transcribe everything in latin? Be serious and imagine that though english is useful, it is not sufficient.
If you wish to write a program to do Y then write the code your tests etc using whatever encoding makes you happy.
Nowhere have I said no Unicodein any repositories which is the strawman you are reachinging for.
You can still write Readme files without Unicode so that the great majority of user of public Github can see what your project is about.
Now there are many close editors today that do not support full unicode
Presumably advocating unicode should not discriminate against languages with Arabic.
Most code editors can not do that right out of the box. More and more can.
The great majority of users has editors that can handle unicode. What editor common today doesn't do UTF-8?
If I happen to find an arabic readme, then I'll know that either I'm not the target audience, or that the author does not know english and might loose my contributions. Neither of those gives me the right to open a PR and insist that the readme is adjusted for my use case only and degrades the user experience of others.
What I strongly disagree with you is that from the principal of "be conservative in what you send and liberal in what you accept" you choose to take only the first part and forget the latter. Ascii is nice when it is applicable for the use case, but it is not universally applicable and assuming so should be a personal mistake, not tax on everyone. Maybe the disagreement between us is in how we define target audience. You imagine that if it is published in Github, then it must be readable to anyone there. I think that if the project is ment to help certain type of people, then it it must be optimized for them, not for people who would never bother using it anyways.
Yes. I’ve noticed that programmers from all over the world are narrow-minded and view things like international, inclusive standards to be “bloat”, preferring a monoculture since that would make things simpler (technically simpler, which is all that matters if you have no sense of aesthetics or culture).