The declared objective is thus to lead you through a hands-on training in using the tools at hand, supported by clear and crisp descriptions of the principles of operation and definitions of the commands used. Very little time will be spent in describing and defining the various Internet services: books already contain abundant and suitable material. In the end, you should be convinced that Internet is easy to use - with Oberon of course! Oberon is not the only system including integrated programs for Internet connection as a free bonus, but it is different.
To start, take a look at the table of contents, read through until you find what you need, and select that subject. There is a lot to explore. Have fun!
Estimated time: approximately 4 hours (for the lot). To be consumed piecemeal only.
[NetSystem]
HostName=machine.domain
HostIP=255.255.255.255
HostName is the name of your machine and HostIP its IP address. You may leave both entries away so that the system tries to figure this out itself (this is the best way of doing it). Use the command
System.State NetSystem
to find out if HostName and HostIP is set. If not, you must add HostName and HostIP entries to the ini file. Often, just adding HostName is enough for the system to find out the HostIP entry.
MacOberon: Requires MacTCP from Apple or System >= 7.5 which includes MacTCP to use the Internet tools.
Finally, if you are new to Internet it would be a good idea to learn more about it by reading one of the many books published or articles in the computer press.
Well, using Oberon you have taken the habit of opening (precisely) documents with the command:
Desktops.OpenDoc documentLocator
This Internet Connection package in Oberon uses a document-based approach for accessing the Internet resources. You are not required to learn a different interface with all its idiosyncrasies, for every single service that you want to use. All services are presented uniformly and called implicitely; that is, the service specific technical details are handled by the system unconspicuously and behind the scene.
As if this made things not simple enough, you will even be able to use elaborated graphical interfaces, in the form of panels and hypertext documents, with which you will not even have to specify locators yourself.
Desktops.OpenDoc "http://huxley.inf.ethz.ch/~marais/Spirit.html"
Note that the locator is enclosed in double quotes ("). This is required because special characters, other than ".", appear in the string.
The power of the generic scheme is, that the same device allows a resource to be located in the WWW, in a newsgroup or in the Gopherspace, to be accessible by FTP or Telnet, to be located in your mailbox or in a local file on your hard disk.
Here follow an example for each of the resource types that you can access:
"http://www.inf.ethz.ch/"
"gopher://gopher.ethz.ch"
"mailto:zeller@inf.ethz.ch"
"ftp://huxley.inf.ethz.ch/"
"telnet://ethics.ethz.ch"
"news:comp.lang.oberon"
"nntp:comp.lang.oberon/144"
"file://Internet.html"
With Oberon everything becomes simpler, also Internet!
documentLocator =
"mailto:" user "@" host .
| "telnet://" [ user [ ":" passwd ] "@" ] host [ ":" port ] .
| "http://" host [ ":" port ] [ "/" path ] [ "?" query ] .
| "news:" ( group | msgid "@" host ) .
| "nntp:" group "/" artnr .
| "ftp://" [ user [ ":" passwd ] "@" ] host [ ":" port ] "/" path ] .
| "gopher://" host [ ":" port ] [ "/" type [ selector [ "?" query ] ] ] .
| "file://" filename
host = hostname | IPaddress
hostname = namepart { . namepart }
namepart = letter { letter | digit }
IPaddress = digits . digits . digits . digits
digits = digit { digit }
port = digits
artnr = digits
group = namepart { . namepart }
filename = namepart { . namepart }
Note: this is a simplified version of the Nov. 1993 specific URL scheme of the IETF URI working group - "http://www.w3.org/hypertext/WWW/Addressing/Addressing.html"
Every time you want to use mail, you have to have set up your system beforehand in three manners. First, you must define your installation environment with the iconizer captioned "Setup" in the Mail panel.
Second, for reading your mailbox must enter your userid and password in one two ways:
o using the "Set User" button in the Mail panel
o by executing a NetSystem.SetUser command (associated with that button)
Third, for sending mail your must execute the command NetTools.Set EMail.
Note that you will have have to enter your userid and password every time you start Oberon: these value are not stored permanently.
Caution, security hazard: these two values, and in particular your password, can easily be retrieved with the
To change your password access your mail server with Telnet and execute a Unix passwd command.
"mailto:" user "@" host
Try to edit a message addressed to the Oberon development group with:
Desktops.OpenDoc "mailto:oberon@inf.ethz.ch"
A viewer named "oberon@inf.ethz.ch" is opened. The first line has already be prepared for you: it is a "To:" header line with the address of the recipient extracted from the locator. You may now set the caret in the viewer and start composing the message text. You may add any number of addresses to the "To:" line and you may write any number of additional "To:" lines, grouping the recipients sharing the same host. Finally, you may add any number of addresses to a "Cc:" (Carbon copy) line to specify to whom else you want to send copies of the message.
It is considered good practice to start with a "Subject:" header line. You may also merge any other text selected in a viewer into this viewer, a simple device offering an easy solution to the problem of sending files or Oberon documents to an individual.
The text field gadget contains the name of your SMTP server if you have set up the Mail panel earlier. If that fields still contains the default value <your smtp server>, you must enter the correct name or set up the panel.
Finally, send the message by clicking on the "Send" button. You may immediately start composing a new message in the same document viewer. All you have to do, is to erase everything you have typed before and to modify the "To:" header line as needed.
The mail panel is logically divided into host mailbox (top half) and local mail data base (bottom half). We shall now review the function of the buttons appearing on the right hand side. Observe that the system's reactions can be followed in the "status" text field in the middle of the panel.
Starting with the upper half of the panel, you have a serie of buttons:
[Directory] If there is mail waiting for you, information about each message, in the form of short one-line descriptions called header summaries, is displayed in the "Mail Server" list at the left. The most recent messages appear at the top. Lines are numbered and include the sender and the subject from the message header. If no mail is waiting, "no mail" appears in the "Status" field.
If you click on a message summary line in the list, the message is tranferred to your computer and is displayed in a document viewer named "Mail.In.Text".
[Receive] The messages selected in the list are transferred and appended to your local mail data base. If the data base does not yet exist, it is created and is given the name "MailBox.DB". These messages are deleted from the mailbox.
[Delete] The messages selected in the list are deleted from the server mailbox and from the list. No undelete function is available.
[Send *] Sends the marked text to the address(es) appearing in the "To:" header line(s). The message text must have been composed as described in the previous section. There is no log of messages sent.
Set User: This button is used to identify yourself before accessing your mailbox. When the button is clicked, the mouse pointer is frozen. The password must then be typed blindly that is, it is not echoed on the screen. The password entry must be terminated with the ENTER or RETURN key. The password may have a maximum length of 64 characters.
[Settings] Click on the little square in the iconizer to flip it to the "Mailer Setup" panel. Now enter the names of the POP server and of the SMTP server in the corresponding text fields. The three radio buttons define the mime parameter to be used for sending (performed by a Mail.Send command). Flip the iconizer back, and make the change permanent with the [Store] button.
In the lower part of the panel, you have:
[Directory] Information about each message stored in your local mail data base is displayed in the same form as it appeared in the "Mail Server" list before it was received. The organization is also the same: most recent messages at the beginning.
If you click on a message summary line in the list, the message is displayed in a document viewer named "Mail.DB.Text".
[Delete] The messages selected are marked for deletion from the mail data base.
[Reply ^] A document viewer named "Mail.Out.Text" is opened with two header lines: "To:" and "Subject:", ready for replying to the address found in the most recent selection. This address appears in the "To:" line. The message's body can now be typed. To send it, mark it, and click on the "Send" button.
[Cite ^] While answering a message, you may cite any part of a message displayed in a document viewer by copying over or copying to as you prefer. The selected text segment is inserted at the caret in the reply and each line will be prefixed with "> ".
The terms "encode" and "decode" do not convey a meaning of "encryption".
AsciiCoder.CodeText or AsciiCoder.CodeFiles .
AsciiCoder.DecodeText or AsciiCoder.DecodeFiles .
To stop the forwarding, use FTP to access your home directory on the mail server, and delete the file.
Discussion groups are sometimes called newsgroups or simply groups. Within each newsgroup, the individual contributions are called articles or postings.
Technical hint: The Usenet articles are transported using the NNTP (Network News Tansfer Protocol). The News module implements this (and only this) protocol directly.
Note 1: Consequently, it is possible to avoid communicating through one of the "classical" news readers such as for example rn, trn, nn or tin, which some readers might have used already.
Note 2: Another networking arrangement such as UUCP for example, is not supported.
The site from which you will be obtaining articles is identified by its name such as for example ftp.inf.ethz.ch. Prior to accessing a news server, its name must be set.
You are then presented yet another text document with the following appearance:
The top line showing the selected newsgroup's name is followed by information about each article, in the form of short one-line descriptions. Reading from left to right you find the article number followed by the contents of three article header lines: "Subject", "From" and "Date". Followup articles are clearly indicated by the initial text "Re: ". Unread articles are recogniseable at the red color, whereas the blue color denotes articles read.
Note that the information about already read articles (in blue) will only be presented the next time you open that newsgroup.
Also this document is organized as hypertext where the red or blue article number can be selected with a middle mouse key click.
Here follows a brief explanation of how to read and interprete a news article header.
Path: lists the names of the computers that the article traversed to reach your news server. Read the list from right to left! The names are separated by "!"s.
From:
Newsgroups: designates the newsgroup to which the article has been posted. When you are reading the articles of a particular group, they have obviously been posted to that group. However, if you are looking at an old article - that you had previously saved - it is handy to know what group the article appeared in.
Message-ID:
NNTP-Posting-Host:
Alternatively, you may select an article directly by its number in the selected newsgroup. Here is an example of how you would specify this request:
Desktops.OpenDoc "nntp:comp.lang.oberon/4932"
The correct syntax was described earlier. Do not forget to enclose the parameter in double quotes '"' because of the special characters.
Unfortunately, the example will most probably fail to produce a useable result because the number does not exist anymore (watch the Oberon log).
A "From:" and a "NNTP-Posting-Host:" header line are automatically added.
News.PostArticle [mime] * posts the marked text using the specified mime. MIME stands for Multipurpose Internet Mail Extensions.
The mime parameter can take the following values:
ascii : text/plain, us-ascii
iso : text/plain, iso 8bit
oberon : text/plain with application/oberondoc attachment
ooberon : only application/oberondoc
When the mime parameter is omitted, the system will automatically choose the most appropriate transmission, that is:
- Simple text without different colors or fonts
no Umlaut -> ascii
Umlaut -> iso
- Text without objects, but with different colors or fonts -> oberon
- Text with objects -> ooberon
As you would expect, the recipient of an article containing rich text, cannot process it unless the news reader supports MIME. Evidently, a recipient using Oberon can read such an article. However, you can expect that postings and replies will most often require the use of ascii or iso as mime parameter.
You may have observed that you may post articles to a group to which you have not subscribed. The news server ftp.inf.ethz.ch carries a group inf.test for the special purpose of testing how posting and replying really work. Use this newsgroup as a playground or sandbox: you will not interfere with anybody else. There is no need to say that the newsgroup is local to this server and is not fed to the rest of Usenet.
Using
Desktops.OpenDoc "news:news.answers"
you might be lucky to find an FAQ list related to comp.lang.oberon. But we would recommend to obtain these lists by FTP.
When the command is invoked, the password must be typed blindly that is, it is not echoed on the screen. The password entry must be terminated with the ENTER or RETURN key. The password may have a maximum length of 64 characters.
Note: This one of the few modal commands in the Oberon system which requires termination by the ENTER key.
Caution, security hazard: these two values, and in particular your password, can easily be retrieved with the
To change your password access your FTP server with Telnet and execute a Unix passwd command.
1 - you must enter your mail address in place of the password. This is so the keepers of the server can keep track of who is accessing their files.
2 - you are able to access only certain directories which have been declared open to public access (by the system manager). The rest of the directories are off limits. As an extra security measure, most such FTP servers allow you to download files, but not upload. If these limitations are not bearable for your purpose, you have to register to the system, obtained a standard userid and password.
In general, all the public directories are kept in a directory named pub which is a subdirectory of the main directory.
If docuName is affixed to the '/' terminating the path, the document itself is displayed in the viewer. Try the following and observe the difference:
Desktops.OpenDoc "ftp://huxley.inf.ethz.ch/pub/Tools/Sieve.Mod"
Desktops.OpenDoc "ftp://huxley.inf.ethz.ch/pub/"
The menu bar at the top features a "Back" button. When clicked, the document contents is replaced again by the listing of the directory at the next higher level. The process can be repeated until the main directory is accessed. When anonymous FTP is used, it is the root directory open to public use.
Most of FTP hosts are Unix based systems, but this kind of presentation is very intuitive indeed and you will not really need to know anything about the Unix file system. However, some of you will probably have recognised the information obtained with a dir command in the document viewer.
Show ^: transfers the selected file to a temporary file on your computer and opens a document viewer "file://FTP.Temp" showing the raw contents of that file.
ASCII ^: transfers the selected file to a temporary file on your computer and opens a document viewer showing the ASCII text contents of that file.
Get ^: transfers the selected file from the server to your computer (download).
PutF ^: transfers the selected file from your computer to the server (upload).
PutT ^: transfers the text designated by the selection from your computer to the server (upload). Only the ASCII contents is transferred: colors, fonts, objects and others are ignored. All text is converted to ISO-8859-1.
Del ^: deletes the selected file from the server.
o commands used for connecting to/disconnecting from a server
o commands used for controlling the FTP server directories
o commands for transferring files
"telnet://" [ user [ ":" password ] "@" ] host [ ":" port ]
Try accessing the ETH Library System (ETHICS) with:
Desktops.OpenDoc "telnet://ethics.ethz.ch"
A document viewer with a special look is opened: you should regard it as the display screen of an emulating terminal. A connection with the distant host is attempted and its progress is reported in the viewer. Take a glance at the unusual caret shape (vertical rectangle) marking the position of the next character. If you position the mouse cursor in the viewer and click the left mouse key, the caret changes to a filled rectangle. Keyboard input is now directed to that viewer.
If for some reason, the attempt fails, a message telling what went wrong is displayed. You will do well to look at the Oberon log also.
From now on, whatever you type is under the control of the remote host, which usually starts by displaying an informative message. If you are expected to log in, you will be prompted with a "login:" line. Proceed with the log in as usual. Otherwise, follow the instructions.
To conduct a successful dialog, you will need a user's guide or may resort to on-line help information which can in general be obtained by entering "?", "help" or for a Unix system "man".
The text in the terminal emulator viewer will ONLY scroll forward, but everything transmitted to and fro is captured in internal storage. Now, if you click on the "OpenLog" button in the title bar, a document viewer "Telnet.Log" is opened, which displays the log of the current session. Since that is a standard Oberon document, you can scroll it forward and backward and even store it, giving you a persistent recording of the session. Alternatively, you may directly use the command which is associated with this button:
TelnetGadgets.OpenLog
When you are finished working with the remote computer, terminate the dialog orderly first and then, break the connection by clicking on the "CloseCon" button in the title bar. Alternatively, you may directly use the command which is associated with this button:
TelnetGadgets.CloseCon
There is no standard termination procedure, though issuing a "logout" command is generally the right thing to do. At a difference, leaving a public service such as ETHICS, requires pressing the PA2 key, which is simulated by typing "A2" in an input field and pressing ENTER. In the latter case the connection will also have been closed automatically.
Finally, click on the "Close" button. There is no way to connect anew to a server with that viewer.
The document viewer "Telnet.Panel" which is opened contains the same terminal emulator as before, but just above it, you find a series of buttons and a text field containing the model pattern "user@host".
The text field accepts a string built as follows:
[ user [ ":" password ] "@" ] host [ ":" port ]
but in general either just a host name or a userid @ host name will be entered. Using the latter version, you will be directly prompted to enter the password after clicking on the "Open" button. You will then embark in the same scenario as was described under "Using Telnet interactively". Entering your password in an unprotected field constitutes a security hazard.
You will also have recognised the buttons "Close" and "Log" (which has the same function as "OpenLog" met before).
The buttons with the captions "ESC", "F1", "F2", "F3" and "F4" are convenient for dialoging with some applications where they are used extensively. The captionless iconizer is used as follows: press and hold the middle mouse key on it, drag until the mouse cursor is positioned on one of the five menu items and finally, release the key. The Unix command selected will be executed. The menu item may be customised.
Flip the iconizer back and click on the "Store" button to make the changes permanent.
passwd: used to change your password (Use CTRL-C if you decide not to change it)
who: use Oberon's Finger.Finger - see next chapter
finger: use Oberon's Finger.Finger - see next chapter
Take also good note of this:
CTRL-C: (is called the interrupt key) used to abort a running program or command.
Finger.Finger user ["@" host] displays information about all the users named "user" registered on the specified host. If no host is specified, the requester's host is searched.
The Finger server looks for two special files named .plan and .project in the home directory of the user(s). If the .plan file is present, the entire file is displayed. Otherwise the message "No Plan." is displayed. If the .project file is present, the first line is displayed. You may create and edit your personal (in principle plain ASCII) dot files locally with Oberon and place them in your home directory by FTP.
You may also add Oberon text to the address of Oberon users by inserting the line
----ASCIICODED
directly followed by an AsciiCoded version of the Oberon text you want to have shown. Obviously enough, only Oberon users using the Finger.Finger command will be able to receive the text in clear.
Finger.Finger ["@" host] displays a summary of all the users who are logged in on the specified host. If no host is specified, the requester's host is searched. The latter case produces information equivalent to that obtained with the Unix who command.
"http://" host [ ":" port ] [ "/" path ] [ "?" search ]
Try accessing the WWW home page of the ETH Zürich with:
Desktops.OpenDoc "http://www.inf.ethz.ch/"
Every now and then, you will notice that the Web is slow. That may be the case when you are connected to a slow Web server or when you are receiving a document with embedded images. Be patient! If that is precisely the reason for being slow, turn the images off. Otherwise, there is little you can do to control or stop a Web activity in progress, except interrupting the reception by pressing ESC. A log message "interrupted" will appear but it will take a few more seconds until the system comes to a rest.
HTTPDocs.AddToHotList [*]
to add the document locator to a local file named "HTTP.HotList.Text". If the file does not exist already, it is created.
The current hot list of Internet resources may be inspected and edited (in particular for removing obsolete entries) with:
HTTPDocs.ShowHotList
or Desktops.OpenDoc HTTP.HotList.Text quite obviously.
Here is an example of hot list:
The list contains one document locator per line and is easy to interprete and edit. You may view it as a list of bookmarks, and it can be used to quickly retrieve a document using the next command.
Note that the hot list is not a hypertext document and that it may also include document locators of local HTTPDocs documents ("file:...").
HTTPDocs.ReloadDoc ^
Loads the document identified by the (most recent) selection. Normally, the selection will be placed on one of the document locators appearing in the hot list, but is not a requirement. Instead of using that command, you may simply interclick the middle + the left mouse keys on an document locator to load a document.
HTTPDocs.History *
Displays the history of the marked document in the Oberon log. The history is an enumeration of document locators representing the itinerary leading to this document. The list shows the most recent locator on top and may contain locators of local files.
Technical hint: documents requested from the Web are downloaded and kept in a local cache. Their document locators are ordered in the history which may be consulted. Local documents are not cached, they are readily retrieved.
The other buttons are described now.
Images: This toggling button is used to control the amount of information received from the Web, i.e. whether images included in a document should be received or not. Turning the image support off, may considerably reduce the time to download a WWW page. This action is performed by the associated command
HTMLDocs.SwitchIMG
Clear Cache: Frees the storage occupied by all the documents that have been requested from the Web. The corresponding document locators do not disappear from the history. Thus when using the Back button the document is reloaded from the server. This action is performed by the associated command
NetTools.ClearCache
Technical hint: a request for a document that is still in the cache will be honored very rapidly by retrieving the document from there, instead of downloading it. Consequently, if the image support is turned on (or off), force the browser to collect fresh information.
Download: download the document behind the selected link to a local file specified in the text field gadget at the right. This action is performed by the associated command
NetTools.DownLoadDoc fileName documentLocator ~
where, in this context of hyperlinks, the document locator is most probably of the form:
["http://" host[ ":" port ] ["/" path"] ]
Important note: In reality, the command is much more general and powerful since the second parameter may be almost any document locator. Example:
NetTools.DownLoadDoc Attachments.Obj
"ftp://huxley.inf.ethz.ch/pub/OMI/Attachments.Obj" ~
However, the locator may not denote an FTP directory or a Telnet service.
There are several thousands Gopher servers around the Internet, and they store all manner of information. Each such server carries information that is of interest to the users of the community which it serves. That is the case with many university departments for example. A Gopher site is identified by its name such as for example gopher.ethz.ch .
Accessing a Gopher server is, opening a document whose document locator has the following syntax:
"gopher://" host [ ":" port ] [ "/" gtype ] [ path ]
Try accessing the Gopher at the ETHZ with:
Desktops.OpenDoc "gopher://gopher.ethz.ch"
A document viewer named "gopher://gopher.ethz.ch" (with some suffix) is opened presenting a menu and all you will have to do is to make a cascade of selections. This starting point for the exploration in a public Gopher is called the main Gopher menu. The menu is, like many other documents we have seen, a hypertext in which selectable items appear in blue.
The symbols at the left tell you what type of Internet resource will be accessed if you select a menu item. The following interpretation table shows what these symbols anticipate:
Menu entity
Text entity
Binary file
? CSO phone book or text search
T Telnet session
G GIF image
Technical hint: Unix users will have established the correspondance with Unix menus in which the type of resource is represented by a symbol at the end of the menu items.
The most common symbol that you will see next to menu items is the Menu entity (). If you select such an item, the Gopher will obtain the new menu which then replaces the previous menu.
The next most common symbol is the Text entity (). If you select such an item, the Gopher will fetch the text and display it in place of the menu.
The Telnet session symbol (T) indicates that it becomes necessary to contact another type of service. If you select such an item, the Gopher will initiate a Telnet connection with a remote host. The situations which may then occur are described in the Telnet chapter. The ETH library system ETHICS shown on the sample menu is an example of public Telnet service. If you decide not to embark, you "Close" the Telnet session and you will return to the Gopher client. However, if you proceed with Telnet, during the session you will be operating in the Telnet environment that is, you will probably have to use your knowledge of Unix and you will do well to learn the rules of the game of the service, be it subscribed or public (by requesting help, h, F1 or whatever).
The symbol (?) announces one of two similar inquiries which you should be able to differentiate by reading the item text. Either you are about to interrogate a Computing Services Office (CSO) or you are about to search in a data base. A CSO is a repository of information about people in an organisation. It is common to see such an item on the main Gopher menu of a university or other larger organisation, as is the case in the example above. If you select such an item, you must enter a search argument in the text field indicated by "Enter Search-String here:". The text field will ONLY be present if the menu includes a (?) symbol. If you omit to specify the search argument, the system will send a "No Search String" to the Oberon log.
There is no general rule for the formulation of a query, most Gophers (and Veronicas) have their own syntactical sugar, but you may try with a single "?" to obtain more information on how to compose queries.
If you select an item with the binary file symbol (), the file will be transferred to your computer and stored in a file named "Gopher.Temp".
Finally, if you select a menu item identified with a GIF image symbol (G), you will be able to see the picture.
Note that the main menu presented above carries (toward the end) a menu position "Other Gophers" of the type Menu entity. That menu in turn leads (directly or indirectly) to a list of other Gopher servers. If you select one of them, your Gopher client will contact the remote Gopher to ask for information on your behalf: you will then move from one Gopher to another, smoothly and easily but all this will be transparent to you. It is thus quite understandable that knowing a single Gopher server name is all you need to access what may be called a gopherspace enveloping many interconnected Gopher servers. That single Gopher server is the place to start.
Every now and then, you will notice that the Gopher is slow. That may be the case when it is connecting to a remote Gopher server or when you initiate a database search. Be patient! There little you can do to control or stop a Gopher activity in progress, except interrupting the reception by pressing ESC. A log message "interrupted" will appear but it will take a few more seconds until the system comes to a rest.
There is a good probability that you will find a menu position for accessing Veronica very close to your start menu. You only need to find Veronica once, at which time you may add it to your hot list.
As an example, here are the steps from the ETHZ main menu to the closest Veronica access offer:
Other Gophers => Uni Zuerich => Other-Gophers => Veronica
No login required. Gives you the same information as "http://www.w3.org/".
Desktops.OpenDoc "telnet://gopher.inf.ethz.ch:70"
Note the use of a port number (70) indicating that you want to access a special service (Gopher) on that server. Otherwise you would have to sign on with a password.
Throughout the Internet world there are a number of public Gopher clients which may be accessed with a trivial userid, ususally gopher, but you will get a degraded service from them.
"http://huxley.inf.ethz.ch/~marais/Spirit.html" - Home page of the Spirit of Oberon (Windows)
"http://www.inf.ethz.ch/department/CS/Oberon.html" - Home page of Oberon
"http://www.inf.ethz.ch/department/CS/Newsletter.html" - Oberon newsletter
"http://huxley.inf.ethz.ch/~fischer/AboutTutorials.html" - Starting point for tutorials
"ftp://ftp.inf.ethz.ch/pub/" - Oberon deliverables
"ftp://huxley.inf.ethz.ch/pub/System3ForWindows/" - Oberon for Win deliverables
"ftp://huxley.inf.ethz.ch/pub/OMI/" - Object Module Interchange deliverables
"gopher://gopher.ethz.ch"
"gopher://gopher.psg.com" - Choose: Programming Languages -> Oberon
"mailto:oberon@inf.ethz.ch"
"mailto:oberon-user@inf.ethz.ch"
"news:comp.lang.oberon" - Oberon language and system newsgroup