Subj : Renumber steps past Hello World?? To : comp.programming From : rem642b Date : Wed Jun 29 2005 07:48 pm Please take a look at: http://www.rawbw.com/~rem/HelloPlus/hellos.html Note that up to now I've lumped together the original Hello World program, which was just a local display of a brief message, or even a flashing light, with my own efforts to make sure such a program is accessible from the Web via a regular URL (http://host/dir/name.html or http://host/acct/cgi-bin/name.cgi etc.), and that the output is directed back to the same browser that activated it, generating proper HTTP header with mime type text/plain or text/html so that it can be viewed by the remote user who invoked it. I also have, in each case, a CGI script that displays a program source listing for all source and indirection files involved, as well as directory listing for those and any binaries which are generated by compiling the source, clearly documenting what files are needed, where they should be located, and what the file protection bits need to be. In summary, I'm not only proving my own ability to generate Hello World programs in several langauges, but I've created an online tutorial how anyone else could do the same too. This is a lot more than what a novice programming student typically writes as a first program. While just about every first-year computer programming student writes a simple Hello World, hardly any makes any effort to make the program accessible over the Web, nor sets up a WebPage fully documenting the accomplished task. But because I've lumped my online tutorials in the same category as various collections of simple first-program Hello World examples, some people have gotten the mistaken idea that I've done nothing worthwhile. I think I have. For example none of the existing PHP tutorials I was able to find mentionned that not only does the Hello.php file need to be located somewhere in the tree below the public HTML directory, but also a .htaccess file with appropriate content must be located at the root of the HTML directory tree, and it must have group/other read permission set. Because of the deficiency in the other people's tutorials, I was unable to get a PHP working until a few days ago when I asked somebody on a newsgroup who then told me part of the info in one response then the next part in another response until I finally had it working. Now my own documented example can serve as a tutorial for anyone trying to do the same thing, and I *do* show clearly both the PHP file and the .htaccess file, so that nobody following my example would have the same trouble that I did. I think by providing full examples of Hello World in various languages, I've done a service to the programming students worldwide, at least any that happen upon my examples file. So given the wide difference between a simple hello-world program on a single machine inaccessible and undocumented, and my remotely-runnable and fully-documented examples, I'm thinking that there's already a step beyond Hello World in what I've done. So maybe I should increase the numbering by one on all my examples. The other people's simple undocumented unrunnable examples would be isolated at level zero, and my Hello World Online examples would be moved to "One step beyond Hello World", and my present one-step-beyond-HW (output that varies by time-of-day or IP-of-client/browser) would become "Two steps beyond Hello World", and my present two-steps-beyond-HW (response to user's request by simple sub-string matching) would become "Three steps beyond Hello World", and my present three-steps-beyond-HW (fully decoded HTML form into associative array with random access per key to obtain associated value) would become "Four steps beyond Hello World", and my upcoming four-or-more-steps-beyond-HW (language-independent exploration of data types and common/useful data-processing methods, showing how the same kind of data is similar and different in various programming languages, and which common d/p methods are available in some languages but not in others except if you program them yourself out of more primitive operations, and setting up an interactive "pocket calculator" that can handle not just numbers but all kinds of data types common in today's high-level programming languages, whereby the user of my calculator could write programs in a language-independent manner without having to decide upon any particular programming language, and then at some point could have their programs expressed in any language that provides the particular services they are using) would become "Five or more steps beyond Hello World". In summary, the current: Table of contents: * The classic 'Hello World!' (always the same text output) txt t/h html php sh* perl python lisp awk c c++ java (many more) * One step beyond (non-static, output varies with time or IP number) php sh* perl python lisp c c++ java * Two steps beyond (responsive, output depends on user input) html / php sh* awk lisp * Three steps beyond (proper decoding of HTML-form contents, so that program can be correctly responsive to user input) lisp * Four or more steps beyond (exploration of different types of data available in various programming languages, and how to perform common manipulations on such datatypes, contrasting how to do the same operation on equivalent data using different programming languages) would be changed like this: Table of contents: * The classic 'Hello World!' (local machine, always the same text output) ACM's collection / WikiPedia's / cuillin / wolfram / esoteric * One step beyond (static output again, but live Web-accessible app'l) txt t/h html php sh* perl python lisp awk c c++ java (many more) * Two steps beyond (non-static, output varies with time or IP number) php sh* perl python lisp c c++ java * Three steps beyond (responsive, output depends on user input) html / php sh* awk lisp * Four steps beyond (proper decoding of HTML-form contents, so that program can be correctly responsive to user input) lisp * Five or more steps beyond (exploration of different types of data available in various programming languages, and how to perform common manipulations on such datatypes, contrasting how to do the same operation on equivalent data using different programming languages) So do you-all think that numbering change, to clearly separate my online examples from the traditional just-starting examples would be a good idea or not? .