Part of the success of the
LinuxOperatingSystem is due to the
LinuxDocumentationProject and its collection of
HowTos. The
HowTos offer information on how to install hardware and software, configure it, and get it running.
But if you're a programmer it's rather hard to find information that tells you how to write various programs.
MicrosoftWindows has the
MicrosoftPlatformSdk, which at least explains the
MicrosoftWindowsApi. But it still doesn't tell you everything you need to know, such as how to communicate with non-Microsoft stuff.
There should be a collection of
ProgrammerHowTos. A programmer can write one if he wants to share his programming knowledge. Then other programmers who want to learn will have another place to turn to besides the bookstore and the university.
These
HowTos could even be placed on a Wiki, although not necessarily this one.
Maybe they already exist somewhere. Please edit this page and say where if you know of any!
This is a cool idea.
One problem relates to context and categories. One reason for the success of the linux howtos, is that the context is limited to
install hardware and software, configure it, and get it running. A series of howtos for programming would do well to be organised around some simple and well respected categories like algorithms and data structures (since
AlgorithmsPlusDataStructuresEqualsPrograms), then delving into levels of increasing complexity.
The big hard ones are I/O, and the use of system facilities (such as multithreading). These are also the ones that are most likely to vary from platform to platform, and sometimes even on variants of the same platform. There are also Internet protocols which are the same everywhere but which may need to be implemented anew from time to time. How about:
- POSIX Threads HowTo (for C/C++ Programmers)
- UNIX pseudo-terminal server HowTo
- Termcap/Terminfo/Curses HowTo
- GGI/GII Programming HowTo
- Mesa 3D Programming HowTo
- Windows Sockets HowTo (yes, Windows programming. The PSDK is unclear.)
- LR Parsing HowTo (probably the only algorithm on my list) (Discreetly e-mail mailto:[email protected] for some really excellent Powerpoint slides on this.)
- Writing ELF executable files HowTo (assuming you already know how to write an assembler)
- Linux Joystick/Keyboard/Mouse Programming HowTo
- HTTP Client Protocol Implementation HowTo (i.e., how to write the part of a web browser that gets pages from URLs)
- Same thing for HTTP Server, FTP Client, FTP Server, Telnet Client, etc.
Some things that would be boring to me but might interest others:
- Standard Template Library Programming HowTo
- 3-D Vector Math HowTo
Some of this same stuff is available in other forms, such as man pages, reverse-engineering, or outright cannibalizing existing source code, RFCs, etc., but it would be nice to have in one place and in readable English!
Some libraries such as SDL and GRX already come with decent documentation.
http://textfiles.com http://google.com
(yeah, yeah, in other words, "anything you want to know is on the Internet somewhere.
" But I'd like a centralized location. -- It's also possible to do something like this internal to a company. -- It's also possible that a Wiki dedicated to this purpose could invite plagiarism; e.g., people typing in essentially unaltered chapters from Stroustrup or from Microsoft or from O'Reilly books or something...)
In my
BazzaWiki I discouraged this by the technique of making wiki pages whos first paragraph was just an url act as links directly to that url.
Sounds like TransClusion. This made it easier to refer out to external info than to retype it. everywhere you mention eg
ApacheManual linked directly to the
ApacheManual - and you could change the link location globally later on if you get a local copy of the pages. --
BrianEwins
Some other places to look:
See newly created
HowTo page