Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I remember that in the early 2000s, when Internet access was scarce where I lived, most of my writing (including writing software) happened offline. Everything I needed to do my work was available offline. This included physical books like K&R and the Core Java series that sat on my desk as well as entire sets of documentation such as MSDN discs, Javadoc HTML bundles, the Python documentation and whatever manuals shipped with compilers and IDEs. It was common to curate all the documentation you needed and keep it on your local disk as HTML or PDF.

In fact, back then the phrase 'online documentation' did not refer to anything hosted on the Internet. 'Online' simply meant 'on the computer' rather than 'in a printed manual'. So online documentation covered man pages, info manuals and the integrated help systems built into environments like QBASIC, Visual Studio (not to be confused with Visual Studio Code), Emacs, Vim or the WinHelp and CHM viewers on Windows.

I sometimes wonder whether that sort of entirely offline workflow is still viable with an ordinary computer with no Internet connection. In limited cases it is. Retrocomputing with something like QBASIC is an obvious example, since it comes with a complete hypertext manual accessible through Alt+H C (for Help > Contents) or F1 for looking up documentation for the current identifier. I still follow this style while working on my Emacs workflows and packages since all of Emacs documentation (including that of every single package installed) is available locally with the helpful C-h bindings. I am also glad that Go and Rust make viewing documentation on the computer so convenient.

But I'm not sure this style of development is possible, in general, anymore for the vast majority of software development since software today have so many dependencies and each dependency may have its own bespoke way of publishing documentation.



For Rust, you can generate offline documentation (as HTML and JS files) for your crate and all dependencies. I’ve used this for working in airgapped environments.


Would you share what kind of work you did that required airgapping? Love to see airgapping in the contemporary wild.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: