commit 7b2d7b24b91057e5dffcbd6fe483639fd844c9d8 Author: pifty Date: Sat Jul 11 10:11:19 2020 +0000 initial and only intended commit diff --git a/bin/convert.sh b/bin/convert.sh new file mode 100755 index 0000000..d1e094c --- /dev/null +++ b/bin/convert.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +mkdir ./dump 2> /dev/null +for f in $(find ./site-tutorials -name *.html); do + echo converting $f ... + perl bin/html2docuwiki.pl < $f > dump/$(basename $f).docuwiki +done diff --git a/bin/html2docuwiki.pl b/bin/html2docuwiki.pl new file mode 100644 index 0000000..f7e2e58 --- /dev/null +++ b/bin/html2docuwiki.pl @@ -0,0 +1,9 @@ +use strict; +use warnings; +use HTML::WikiConverter::DokuWiki (); + +# slurp mode +$/ = undef; + +my $html = <>; +print HTML::WikiConverter::DokuWiki->new( dialect => 'DokuWiki' )->html2wiki($html); diff --git a/dump/Gate_One.html.docuwiki b/dump/Gate_One.html.docuwiki new file mode 100644 index 0000000..5fd5ca4 --- /dev/null +++ b/dump/Gate_One.html.docuwiki @@ -0,0 +1,5 @@ +====== Gate One SSH Interface ====== + +SDF provides a HTTPS based SSH client using Gate One at [[https://ssh.sdf.org|ssh.sdf.org]]. This allows use of SSH behind networks that filter or block SSH traffic. It also maintains a persistent connection over unstable network connections. + +$Id: Gate_One.html,v 1.1 2019/03/19 19:05:32 kj8am Exp kj8am $ \ No newline at end of file diff --git a/dump/InstantMessaging.html.docuwiki b/dump/InstantMessaging.html.docuwiki new file mode 100644 index 0000000..7781dc9 --- /dev/null +++ b/dump/InstantMessaging.html.docuwiki @@ -0,0 +1,32 @@ +====== Instant Messaging on SDF ====== + +On SDF you can use nearly all of the popular instant messaging protocols via fast and efficient text clients. Many users have set up scripts so that they can use various IM clients via their computers or wireless devices such as two way pagers, blackberry, palm pilots and cellphones, and you can too. + +Some of the clients listed in this page are able to connect simultaneusly to various IM networks as centerim and finch (which is purple/pidgin based). Links are provided to web pages with detailed steps to connect to the various IM networks using the available clients at SDF + +Also, some clients are not very actively maintained, so may not be able to connect to the networks they claim are able to connect to, your best bet are centerim and finch. + +===== Available clients ===== + +(+) In AMD64 hosts. (*) In Alpha hosts. + +^ ^ bsflite (+) ^ centericq (+) ^ centerim ^ ekg (+) ^ finch (*) ^ naim (+) ^ mcabber (+) ^ +| AIM | YES | YES | YES | | YES | YES | | +| Gadu-Gadu | | YES | YES | YES | YES | | | +| [[http://sdf.org/?tutorials/jabber|Jabber/XMMP]] | | YES | YES | | YES | | YES | +| [[http://sdf.org/?tutorials/msn|MSN]] | | YES | YES | | YES | | | +| YAHOO | | YES | YES | | YES | | | +| ICQ | | YES | YES | | YES | | | + +===== Bitlbee ===== + +Bitlbee is an IRC gateway to MSN, ICQ, Jabber, Yahoo, and AIM. It allows you to connect to these services using an irc client. + + - connect with your favorite irc client to im.bitlbee.org. + - say "help" to the root nick, or just type help. everything you need is there. + +===== A list of Instant Messaging libraries available ===== + + * p5-Net-AIM-1.22 - Implementation of the AOL Instant Messenger TOC protocol + * libyahoo-0.18.4 - Yahoo! Messenger client library + * ... $Id: InstantMessaging.html,v 1.2 2013/07/17 03:16:52 tcj Exp $ \ No newline at end of file diff --git a/dump/InstantMessenging.html.docuwiki b/dump/InstantMessenging.html.docuwiki new file mode 100644 index 0000000..4606e2d --- /dev/null +++ b/dump/InstantMessenging.html.docuwiki @@ -0,0 +1,32 @@ +====== Instant Messaging on SDF ====== + +On SDF you can use nearly all of the popular instant messaging protocols via fast and efficient text clients. Many users have set up scripts so that they can use various IM clients via their computers or wireless devices such as two way pagers, blackberry, palm pilots and cellphones, and you can too. + +Some of the clients listed in this page are able to connect simultaneusly to various IM networks as centerim and finch (which is purple/pidgin based). Links are provided to web pages with detailed steps to connect to the various IM networks using the available clients at SDF + +Also, some clients are not very actively maintained, so may not be able to connect to the networks they claim are able to connec to, your best bet are centerim and finch. + +===== Available clients ===== + +(+) In AMD64 hosts. (*) In Alpha hosts. + +^ ^ bsflite (+) ^ centericq (+) ^ centerim ^ ekg (+) ^ finch (*) ^ naim (+) ^ mcabber (+) ^ +| AIM | YES | YES | YES | | YES | YES | | +| Gadu-Gadu | | YES | YES | YES | YES | | | +| [[http://sdf.org/?tutorials/jabber|Jabber/XMMP]] | | YES | YES | | YES | | YES | +| [[http://sdf.org/?tutorials/msn|MSN]] | | YES | YES | | YES | | | +| YAHOO | | YES | YES | | YES | | | +| ICQ | | YES | YES | | YES | | | + +===== Bitlbee ===== + +Bitlbee is an IRC gateway to MSN, ICQ, Jabber, Yahoo, and AIM. It allows you to connect to these services using an irc client. + + - connect with your favorite irc client to im.bitlbee.org. + - say "help" to the root nick, or just type help. everything you need is there. + +===== A list of Instant Messaging libraries available ===== + + * p5-Net-AIM-1.22 - Implementation of the AOL Instant Messenger TOC protocol + * libyahoo-0.18.4 - Yahoo! Messenger client library + * ... $Id: InstantMessenging.html,v 1.11 2011/02/08 21:32:28 clemens Exp $ \ No newline at end of file diff --git a/dump/PPTP.html.docuwiki b/dump/PPTP.html.docuwiki new file mode 100644 index 0000000..a0cbdd5 --- /dev/null +++ b/dump/PPTP.html.docuwiki @@ -0,0 +1,193 @@ +====== Connecting to the SDF VPN with PPTP ====== + +===== Contents ===== + + * [[#overview|Overview]] + * [[#setup|Setting it up]] + * [[#xp|Connecting in Windows XP]] + * [[#vista|Connecting in Windows Vista]] + * [[#linux|Connecting in Linux]] + * [[#freebsd|Connecting in FreeBSD]] + * [[#osx|Connecting in Mac OS X]] + * [[#wrapup|The Wrap-up]] + +===== Overview ===== + +The Virtual Private Network (VPN) provided by SDF has a number of uses. The most beneficial of that is to allow confidential communication over a public network. Basically, the SDF VPN will allow you (once routing is enabled) to communicate securely over an insecure connection such as a public Wireless Fidelity (Wi-Fi) network. + +The major benefit of this over SSH forwarding/tunneling is that it is much easier to configure and automatically tunnels **all** connections leaving your computer, and not just those specifically configured for forwarding. Some may see this as a negative aspect of the VPN, however. + +===== Setting it up ===== + +The SDF VPN is quite easy to set up. You must first choose a VPN plan that is right for you, based on assumed bandwidth usage. Pricing and more package information is available through the shell by typing '**vpn**' without the quotes. + +Once you've been added to the VPN membership level (you'll receive an email notification of this), you must set up your VPN access by typing '**setvpn**' in the shell, without quotes. This will allow you to configure your VPN secret (password) for connecting. + +You should make note of the VPN's IP address when setting up your secret. + +Once you've configured your VPN account, it's time to connect. Continue reading below for step-by-step instructions on connecting to the VPN. + +===== Connecting in Windows XP ===== + + - Open the Windows Control Panel. + - Open the Network Connections item in Control Panel. Generally you would click the "**Network and Internet Connections**" option, then click "**Network Connections**". A list of existing dial-up and LAN connections will be displayed. + - Click on the "**Create a new connection**" option from the left-hand side of the window. The Windows XP New Connection Wizard will come up. + - Click the "**Next**" option to begin the wizard. Then choose the "**Connect to the network at my workplace**" option from the list and click "**Next**". + - On the Network Connection page of the wizard, choose the "**Virtual Private Network connection**" option and click "**Next**". + - Choose a name for this connection on the "**Connection Name**" screen. Windows will use this to reference the VPN connection. + - Choose an option on the "**Public Network**" screen and click "**Next**". The default option, "**Automatically dial this initial connection**" can be used if the VPN connection will always be initiated when the computer is not already connected to the Internet. Otherwise, choose the "**Do not dial the initial connection**" option. This requires that the public Internet connection be established first, before this new VPN connection will be initiated. **Choose this option.** + - Enter the IP address for the VPN on the "**VPN Server Selection**" screen. This is obtained via the '**setvpn**' command (without quotes) in the shell. + - Choose an option on the "**Connection Availability**" screen and click "**Next**". The default option, "**My Use Only**", ensures that Windows will make this VPN connection available only to the user that is currently logged in to the computer. If you don't want this, select the "**Anyone's use**" option. + - Click "**Finish**" to complete the wizard. You may wish to select the option to create a desktop shortcut for easy access. The information for the VPN connection will be saved for current and/or future use. + +===== Connecting in Windows Vista ===== + +Connecting to the VPN is slightly different in Windows Vista. Please use these instructions to connect to SDF's VPN through Vista. + + - Click on the "**Start**" button and then choose "**Connect to**". + - Click on the "**Set up a connection or network**" option on the window that follows. It's near the bottom. + - On the window that comes up, scroll down and click on the "**Connect to a workplace**" option. Then click "**Next**". + - A question asking "**Do you want to use a connection you already have?**" may appear. Select "**No, create a new connection.**" if it does and then click "**Next**". + - Next you'll be asked "**How do you want to connect?**" Select "**Use my Internet connection (VPN)**". + - You'll then be asked for the Internet address. Enter the address you remembered when accessing '**setvpn**' (without quotes) in the SDF shell. + - Enter a name for this VPN connection in the "**Destination name:**" field. This is how Windows Vista will reference the VPN. + - If you don't want to connect immediately, check the "**Do not connect now; just set it up so I can connect later.**" option. + - Do not check the "**Use a smart card.**" option. + - When finished, click "**Next**" + - You'll then configure the username and password needed to authenticate to the VPN. The username is your SDF username and the password is the secret you set up via the '**setvpn**' command in the shell. + - Leave the "**Domain**" field blank. + - Click the "**Create**" button once you are done. You should then see a window pop up saying that "**The connection is ready to use.**" Click on "**Close**". + +===== Connecting in Linux ===== + + - Make sure PPP and PPTP are installed. The can be accomplished in Debian or Ubuntu by entering '**sudo apt-get install pptp-linux**' into a terminal. + - Create a file named sdfpptp in /etc/ppp/peers by entering '**sudo gedit /etc/ppp/peers**'. Replace gedit with your choice of text editor. Add the following to the file: (Be sure to replace **//username//** with your username.)\\ \\ Note: Make sure to replace **//IP Address//** with the IP address/hostname provided when running '**setvpn**' in the shell.\\ + remotename sdfpptp + linkname sdfpptp + ipparam sdfpptp + pty "pptp --loglevel 0 **//IP Address//** --nolaunchpppd" + name **//username//** + refuse-eap + refuse-pap + refuse-chap + refuse-mschap + require-mppe + nomppe-stateful + require-mppe-128 + nomppe-40 + noauth + nodetach + lock + bsdcomp 9,15 + deflate 9,15 + idle 0 + - Save the file. + - Edit /etc/ppp/chap-secrets by entering '**sudo gedit /etc/ppp/chap-secrets**'. Add the line **//username// stfpptp //password// *** replacing //username// and //password// with your SDF username and your password set by **'setvpn'**. + - Make sure a specific route to the VPN exists. Run '**sudo route add **//VPN-IP//** gw **//GW-IP//****' replacing **//VPN-IP//** with the IP address/hostname provided when running '**setvpn**', and replace **//GW-IP//** with your gateway IP address. If you do not know the IP address of your gateway, enter '**route**'. It is the gateway IP next to the destination **default**. + - Enter '**sudo pppd call sdfpptp**' into a terminal. Wait for it to show the local and remote IP addresses. You should now be connected. Do not close the terminal until you are ready to disconnect. + - Open another terminal. Enter '**sudo route add -net 192.94.73.0/24 dev ppp0**'. This will route all your connections to SDF through the VPN. + +Alternatively to steps 5 and 6, you might use a wrapper script like this:\\ + + #!/bin/bash + SDFVPNHOST=**//IP Address//** + RT=`ip route get $SDFVPNHOST | head -1` + DEV=`echo $RT | awk '{while ($num != "dev") {num++}{print $(num+1)}}'` + VIA=`echo $RT | awk '{while ($num != "via") {num++}{print $(num+1)}}'` + ip route add $SDFVPNHOST via $VIA dev $DEV + ip route add $SDFVPNHOST via $VIA dev $DEV table sdftun + pppd call sdfpptp + ip route del $SDFVPNHOST via $VIA dev $DEV + ip route del $SDFVPNHOST via $VIA dev $DEV table sdftun + + This automatically detects the default gateway and adds appropriate routes, starts the VPN and deletes the routes after VPN has been stopped. If you do not use a custom routing table dedicated to the SDF VPN you should delete the lines ending in "table sdftun".\\ + +==== GUI Setup With NetworkManager ==== + +Any of the newer Linux distros that use NetworkManager (Debian, Ubuntu, Fedora, etc.) on their default desktops have a GUI interface to PPTP VPN configuration. You'll need to install a package to get this capability (although this now seems to be included in the latest Ubuntu 10.10 release): + +Fedora: + + yum install NetworkManager-pptp + +Debian/Ubuntu: + + apt-get install network-manager-pptp + +Once installed, restart the NetworkManager service (///etc/init.d/NetworkManager restart//) and left-click on the network manager icon in your taskbar. Highlight **VPN Connections** and click on **Configure VPN**: + +{{tutorials/images/vpn1.png|Network Manager - Overview Settings}}\\ {{tutorials/images/vpn4.png|Network Manager - VPN Settings Overview}} + +Click on the **Add** button, and choose **Point-to-Point Tunneling Protocol (PPTP)**, then click **Create**. Fill out the **User name**, **Password** and **Gateway** fields with appropriate values ([[#setup|from when you ran //setvpn//]]): + +{{tutorials/images/vpn2.png|Network Manager Settings - VPN Settings Detail}} + +Now click on **Advanced**: + +{{tutorials/images/vpn3.png|Network Manager Settings - Advanced VPN Details}} + +Under **Authentication**, **de-select all the methods except MSCHAPv2**. Then select **Use Point-to-Point Encryption (MPPE)** and choose **128-bit (most secure)** in the **Security** dropdown. Click **OK**, then **Apply** and close all other configuration dialogs. Now when you left-click on the network manager icon, you should have your PPTP VPN listed under **VPN Connections**. Just select it and wait. If it is successful, you'll see a little lock icon appear over the usual network manager icon. If not, check your system log for errors. This will be ///var/log/messages// or ///var/log/syslog//, depending on your distro. + +==== A Note on Routing ==== + +If you use network manager, all traffic will be routed through the PPTP VPN for you once you are connected. If that's not what you want, you can click on **IPV4 Settings** and then **Routes** to have simple static routes added for you automatically when the VPN connects. You can also check **Use this connection only for resources on this network**, which in our case means only connections to SDF hosts will be encrypted. + +{{tutorials/images/vpn5.png|Network Manager Settings - Add Routes}} + +===== Connecting in FreeBSD ===== + + * Install mpd4 from ports or packages. + * Add the following section to your /usr/local/etc/mpd4/mpd4.conf: sdfvpn: new -i ng1 sdfvpn sdfvpn set iface disable on-demand set iface idle 0 # disconnect the client after 8 hours set iface session 28800 set iface route 10.0.0.0/24 set iface route default set bundle disable multilink set auth authname "USERNAME" set auth password "PASSWORD" set link yes acfcomp protocomp set link no eap set link no pap set link accept chap set link mtu 1460 set link keep-alive 10 75 set ipcp yes vjcomp set ipcp ranges 0.0.0.0/0 set ipcp yes req-pri-dns req-sec-dns # # The five lines below enable Microsoft Point-to-Point encryption # (MPPE) using the ng_mppc(8) netgraph node type. # set bundle yes compression set ccp yes mppc set ccp yes mpp-compress set ccp yes mpp-e128 #set bundle accept crypt-reqd set ccp yes mpp-stateless open + * You will have to replace three (3) things in this config: + - Your USERNAME + - Your PASSWORD + - The local address of SDF's VPN host. This can be found in /etc/hosts on SDF. The local IP will start with 10.0.0, but have the same last octet as the public IP. ' + * Add this in your /usr/local/etc/mpd4/mpd4.links file: sdfvpn: set link type pptp set pptp peer set pptp enable originate outcall set pptp disable incoming + * You will have to replace one (1) thing in this config: + - The public address of SDF's VPN host. You can get this by running setvpn at the shell. + * Now, as root, run mpd4 sdfvpn. + * You should now be connected to SDF over a layer 3 tunnel across the Internet. + * Your new routes are only for SDF's hosts, and use their internal IP addresses. These are the 10.0.0.x ones. I'm working on how to route to the public ones over the VPN without creating a routing loop to the VPN host. I copied SDF's /etc/hosts file to my machine so that I can run 'ssh sdf1' to connect through the tunnel. + +===== Connecting in Mac OS X ===== + + - Open /Applications/Internet Connect.app + - Click on the **VPN** button. + - Click on the Configuration dropdown and go to "**Edit Configurations...**" + - Press the **+** button at the bottom left of the window to add a configuration. + - Under "**Description**" put whatever you want. SDF VPN is a good choice. + - Under the "**Server Address**," Enter the IP address for the VPN on the "**VPN Server Selection**" screen. This is obtained via the '**setvpn**' command (without quotes) in the shell. + - Under Username put your SDF username and the password is the secret you set up via the '**setvpn**' command in the shell. + - Choose "**Automatic**" encryption. + - Click "**OK**". + - Then, whenever you want to connect you can return to this **Internet Connect Application** and go to the VPN, choose the SDF VPN and click connect. Optionally, you can click "**Show VPN status in the menu bar**" and you can connect to the VPN from the menu bar icon. + +===== Connecting On An iPad ===== + + - Log into SDF and run the 'setvpn' command. + - Hit 'p' to set up your password. + - Enter your password twice. The password must be 14 characters or less, and ideally should contain letters, numbers, upper and lower case, and a special symbol, though there are no actual complexity requirements. + - After you have set up your password, the setvpn wizard will tell you what IP address to connect to. It will be 192.94.73.X. Write this whole IP address down. You will need it in a later step. + - Hit 'q' to exit the configuration. + - Turn on your iPad and go to the Settings. + - Go into the Network subsection. + - Go into the VPN subsection. This will bring up the 'Add Configuration' window. + - Select "PPTP" at the top. + - In the Description field, label this connection something useful to identify it, such as 'SDF VPN'. + - In the 'Server' field, put in the IP address that you wrote down earlier. + - In the 'account' field, put your SDF user name. + - In the 'Password' field, put the password that you set up while running the setvpn wizard in the set above. This will cause the iPad to remember your password for you. If you wish to type it in each time you connect, leave this field blank. + - Set the encryption level to 'Maximum' + - Leave the 'Send All Traffic' slider set to 'On', unless you specifically want to (and know how to) set up VPN usage in individual applications. + - Hit the 'Save' button at the top + - To turn on VPN, slide the VPN slider to 'On' for the connection called SDF and open the browser. Connect to http://whatsmyip.org and verify that the IP address it shows as your source. + +===== The wrap-up ===== + +Now that you have your VPN configured to connect, make sure that you don't forget to use it! Using the VPN while connected through a public access network (or even your home network!) will tunnel all connections through SDF and out to the Internet (once routing is enabled). Please make sure to use the VPN responsibly, as all actions and activity will be traced back to SDF. + +Enjoy! + +---- + +$Id: PPTP.html,v 1.2 2011/06/15 15:51:32 avoyager Exp $ \ No newline at end of file diff --git a/dump/Rails_Basic_Application.html.docuwiki b/dump/Rails_Basic_Application.html.docuwiki new file mode 100644 index 0000000..5944ad0 --- /dev/null +++ b/dump/Rails_Basic_Application.html.docuwiki @@ -0,0 +1,94 @@ +====== Building a Basic Ruby on Rails Application ====== + + * **Part I: Getting Started** + * [[#introduction|Introduction]] + * [[#creating_project|Creating a Rails Project]] + * [[#building_model|Building The Data Model]] + * [[#quick_demo|A Quick Demonstration!]] + * **Part II: Layout and Design** + * **Part III: Making it Better** + * **Appendix** + * [[#appendix_sdf_utils|Appendix A: SDF Utility Scripts]] + * [[#appendix_database_conf|Appendix B: Configuring A Database]] + +---- + +===== Introduction ===== + +[ To Be Written ] + +===== Creating a Rails Project ===== + +All rails applications reside in their own directory tree. This tree is automatically generated by the '"rails"' command ( '"man rails "' for more information ). To create our project's directory structure, execute the following: + +" (alterego@sverige)# rails ~/html/bookmarks --database=sqlite3\\ (alterego@sverige)# ln -s bookmarks ~/html/rails\\ (alterego@sverige)# cd ~/html/rails " + +The first command creates our project's directory tree under the '"~/html/bookmarks"' directory. Then we create a symlink from this directory, to '"~/html/rails"' so that the SDF utility scripts will be able to find, and work with this project. ( [[#appendix_sdf_utils| More info]] ) + +The '"--database=sqlite3"' argument to the '"rails"' executable, informs Rails to configure the new project to use an SQLite3 database backend. If you have 'dba' membership then you can use MySQL as your backend by substituting '"sqlite3"' with '"mysql"'. This tutorial will however focus in using SQLite3 as it is available to all MetaARPA members. If you are going to use MySQL as your database backend, then you'll have to read [[#appendix_database_conf|this]] in order to configure your backend properly. + +The final command changes your working directory to your new projects' root. The rest of the commands in this tutorial rely on you being at this location in order to execute correctly. + +===== Building The Data Model ===== + +Now we are sitting in our nice new Rails project's root directory, we can start building our application. The most important thing in any database driven application like this one, is the data model. It specifies what data our application interacts with, and //how// we interact with it. + +In this application, we only have one data type, that is a 'Link', this link must have a name, some descriptive information and the target URI. Normally at this stage you'd have to roll-up your sleaves and write one of those fugly SQL statements to create your table. Not us, Rails has cunningly abstracted database interaction for us, so no more SQL! In order to create our mode we must run this command: + +" (alterego@sverige)# ruby script/generate model link " + +This command line executes the Ruby script, '"script/generate"'. The '"generate"' script is extremely useful, it automates the process of creating files to add specific functionality to our applications. You can tell what operations a '"generate"' command has performed by reading it's output. This command created the two files required to create our 'Link' model. + +Next we need to edit the '"db/migrate/001_create_links.rb"' file. Files located under the '"db/migrate"' directory are used to perform revision changes on your project's database. This file will allow us to specify our databases table without the need for any SQL, and, if required, roll our database back to before this migration occured. + +==== Edit '"db/migrate/001_create_links.rb"' ==== + + class CreateLinks < ActiveRecord::Migration + def self.up + create_table :links do |t| + t.column :name, :string + t.column :info, :string + t.column :url, :string + end + end + + def self.down + drop_table :links + end + end + +Now we've specified our '"links"' table's structure. We have to commit the revision in order to create the table. To do this execute the following: + +" (alterego@sverige)# rake db:migrate " + +Going into the details of this command is way outside the scope of this document, I wouldn't have used it in this tutorial if it wasn't for it being such an easy way to generate a database across different backends. + +[[| ]] + +===== A Quick Demonstration! ===== + +Before we move on to defining the application controller, I thought I would try and impress you with Rails magic. The next two commands will allow you to list, view, edit and delete items from your database through your web browser: + +" (alterego@sverige)# ruby script/generate scaffold link\\ (alterego@sverige)# ruby script/server -p `id -u` " + +Right, those two commands did quite a bit. The first one generated a basic set of HTML templates and application logic. The second command started a web server, written in Ruby, running on a port that was specified from your userid. You'll notice on the second line of output from the '"server "' script, the address that it has bound itself too, along with the port number ( your user id ) it is running on in standard URI format. + +So, open up a web browser, and point it to '"http://sverige.freeshell.org:[ YOUR USER ID ]"' substituting your user id. Your browser should open 'Ruby on Rails: Welcome aboard' page. This just indicates that the Rails environment and server are running. Now, go back to your browsers' address bar, and append '"/links"' after your user id. Your browser should now show a rather rubbish looking list view, with no elements. + +At this point it will probably be a good idea to play around and add some items as we'll need them for the next sections. Besides, I need to make myself a drink ... + +===== To Be Continued ... ===== + +---- + +===== Appendix A: SDF Utility Scripts ===== + +There are two utility scripts written specifically for Rails applications on SDF. The first 'ror' toggles whether the Rails project under '" ~/html/rails"' has it's server started when the syste boots. The second script 'railsctl', is start/stop daemon, which starts or stops the Rails project located in the standard SDF project location. + +As you may want to play with multiple Rails projects, it doesn't really matter where you put them, or what you call them. But if you plan on using the SDF utility scripts, which is a good idea if you want to host your project, then it's probably a good idea to symlink your current project directory to '"~/html/rails"' + +===== Appendix B: Configuring A Database ===== + +[ To Be Written ] + + $Id: Rails_Basic_Application.html,v 1.2 2006/12/31 14:27:54 alterego Exp $ \ No newline at end of file diff --git a/dump/Ruby_on_Rails.html.docuwiki b/dump/Ruby_on_Rails.html.docuwiki new file mode 100644 index 0000000..a90648f --- /dev/null +++ b/dump/Ruby_on_Rails.html.docuwiki @@ -0,0 +1,175 @@ +====== Ruby on Rails on SDF ====== + +---- + +===== Content ===== + + * [[#whatisrails|What is Rails?]] + * [[#prerequisites|Prerequisites]] + * [[#starting|Getting started]] + * [[#hello|Hello, world!]] + * [[#maintenance|Maintenance and Utility Scripts]] + +---- + +===== [[|What is Rails?]] ===== + +[[http://www.rubyonrails.org/|Ruby on Rails]] is a WebDev framework written in the [[http://www.ruby-lang.org/|Ruby]] programming language. + +===== [[|Prerequisites]] ===== + + * You must be a MetaARPA member to use Rails (see [[http://sdf.lonestar.org/index.cgi?access|memberships]] page). + * Most Rails applications use a database, so you'll probably want dba membership as well (see [[http://sdf.lonestar.org/index.cgi?access|memberships]] page). However MetaARPA members may use sqlite if they so desire. + +===== Getting started ===== + +**Step 1:** Run "mkhomepg" if you have not already done so (see the [[http://sdf.lonestar.org/index.cgi?tutorials/building_a_website|building_a_website]] tutorial for more information on the "mkhomepg" command). + +**Step 2:** Use the rails command to construct the base for your new rails application: + + $ cd $HOME/html + $ rails rails + create + create app/controllers + create app/helpers + create app/models + create app/views/layouts + create config/environments + create components + create db + create doc + create lib + create lib/tasks + create log + create public/images + create public/javascripts + create public/stylesheets + create script/performance + create script/process + create test/fixtures + create test/functional + create test/integration + create test/mocks/development + create test/mocks/test + create test/unit + create vendor + create vendor/plugins + create tmp/sessions + create tmp/sockets + create tmp/cache + create Rakefile + create README + create app/controllers/application.rb + create app/helpers/application_helper.rb + create test/test_helper.rb + create config/database.yml + create config/routes.rb + create public/.htaccess + create config/boot.rb + create config/environment.rb + create config/environments/production.rb + create config/environments/development.rb + create config/environments/test.rb + create script/about + create script/breakpointer + create script/console + create script/destroy + create script/generate + create script/performance/benchmarker + create script/performance/profiler + create script/process/reaper + create script/process/spawner + create script/runner + create script/server + create script/plugin + create public/dispatch.rb + create public/dispatch.cgi + create public/dispatch.fcgi + create public/404.html + create public/500.html + create public/index.html + create public/favicon.ico + create public/robots.txt + create public/images/rails.png + create public/javascripts/prototype.js + create public/javascripts/effects.js + create public/javascripts/dragdrop.js + create public/javascripts/controls.js + create public/javascripts/application.js + create doc/README_FOR_APP + create log/server.log + create log/production.log + create log/development.log + create log/test.log + +It has become SDF policy to have the project that you want to be served under '$HOME/html/rails' in actuality you can locate the rails project directory anywhere and call it what you like. The 'railsctl' and 'ror' command expect the project that you want to host to be located in the afore-mentioned directory. So, if you want your server to be started when the host starts and 'railsctl' to find your project then you should symlink your current project to that location, or use that location. + +**step 3:** + +Start the webrick server on the port that is equal to your uid, which you can obtain by executing 'id -u': + + $ railsctl start + - or - + $ ruby $HOME/html/rails/my_first_project/script/server -p `id -u` + => Booting WEBrick... + => Rails application started on http://0.0.0.0:60844 + => Ctrl-C to shutdown server; call with --help for options + +Then point your browser at "http://yourdomain:<YOUR UID>" You should now be looking at the default 'Welcome to Rails page'. Now you can begin to develop your rails app. + +===== [[|Hello, world of Rails!]] ===== + +Rails is a Model-View-Controller framework. Rails accepts incoming requests from a browser, decodes the request to a controller, and calls an action method in that controller. The controller then invokes a particular view to display the results to the user. The good news is that Rails takes care of most of the internal plumbing that links all these actions. To write our simple Hello, World! application, we need code for a controller and a view. We don't need code for a model, because we're not dealing with any data. Let's start with the controller. + +In the same way that we used the rails command to create a new Rails application, we can also use a generator script to create a new controller for our project. This command is called generate, and it lives in the script subdirectory of the my_first_project project we created. So, to create a controller called Say, we make sure we're in the my_first_project directory and run the script, passing in the name of the controller we want to create. + + $ ruby $HOME/html/rails/my_first_project/script/generate controller Say + exists app/controllers/ + exists app/helpers/ + create app/views/say + exists test/functional/ + create app/controllers/say_controller.rb + create test/functional/say_controller_test.rb + create app/helpers/say_helper.rb + +The script logs the files and directories it examines, noting when it adds new Ruby scripts or directories to your application. For now, we're interested in one of these scripts and (in a minute) the new directory. The source file we'll be looking at is the controller. You'll find it in the file app/controllers/say_controller.rb. Let's have a look at it. + + class SayController < ApplicationController + end + +Pretty minimal, eh? SayController is an empty class that inherits from ApplicationController, so it automatically gets all the default controller behavior. Let's spice it up. We need to add some code to have our controller handle the incoming request. What does this code have to do? For now, it'll do nothing. We simply need an empty action method. + +Let's add an action called hello to our say controller. Adding a hello action means creating a method called hello in the class SayController. But what should it do? For now, it doesn't have to do anything. Remember that a controller's job is to set up things so that the view knows what to display. In our first application, there's nothing to set up, so an empty action will work fine. Use your favorite editor to change the file say_controller.rb in the app/controllers directory, adding the hello method as shown. + + class SayController < ApplicationController + def hello + end + end + +Now let's try calling it. Navigate to the URL "http://yourdomain:60844/say/hello" in a browser window. (Note that in the development environment we don't have any application string at the front of the path - we route directly to the controller.) You'll see something that looks like an error. + +It might be annoying, but the error is perfectly reasonable (apart from the weird path). We created the controller class and the action method, but we haven't told Rails what to display. And that's where the views come in. Remember when we ran the script to create the new controller? The command added three files and a new directory to our application. That directory contains the template files for the controller's views. In our case, we created a controller named say, so the views will be in the directory app/views/say. To complete our Hello, World! application, let's create a template. By default, Rails looks for templates in a file with the same name as the action it's handling. In our case, that means we need to create a file called hello.rhtml in the directory app/views/say. (Why .rhtml? We'll explain in a minute.) For now, let's just put some basic HTML in there. + + <html><head><title>Hello, Rails!</title></head> <body> + <h1>Hello from Rails and SDF!</h1> </body> </html> + +Save the file hello.rhtml, and refresh your browser window. You should see it display our friendly greeting. Notice that we didn't have to restart the application to see the update. During development, Rails automatically integrates changes into the running application as you save files. + +===== [[|Maintenance and Utility Scripts]] ===== + +There are currently two main scripts that MetaARPA members can run to manage their RoR instance. The first is //ror// which is used to toggle automatic startup of your RoR instance upon system boot. The second is //railsctl// which allows you to //start//, //stop// and //restart// your RoR instance. + +---- + +==== Footnotes: ==== + +[[#uid|1]]Use the "id" command to find your uid + + $ id + uid=60844(phm) gid=500(arpa) groups=500(arpa),600(MetaARPA) + +// Note: if you do not see metaARPA here you're not in the metaARPA group and Rails won't work for you. // + +---- + +$Id: Ruby_on_Rails.html,v 1.7 2006/12/29 06:54:24 phm Exp $ \ No newline at end of file diff --git a/dump/SSH-SDF.html.docuwiki b/dump/SSH-SDF.html.docuwiki new file mode 100644 index 0000000..c61c60e --- /dev/null +++ b/dump/SSH-SDF.html.docuwiki @@ -0,0 +1,181 @@ +====== Using SSH for connections/transfer to/from SDF ====== + +===== Contents ===== + + * Overview + * [[#sdf|SDF issues]] + * ssh and [[#port_tunneling|port tunneling]] + * [[#public_key|public key]] authentication + * [[#socks|socks tunneling]] from a school/uni network + +===== Overview ===== + +This tutorial discusses some important points concerning use of SSH for encrypted traffic to and from SDF. Your first source for information are the manpages: "man ssh" - read them, if you want to make good use of "ssh" and company! + +//Note: this text has been assembled from articles written by several users; therefore, layout and wording may vary, and topics can be referred at several places.// + +SSH stands for Secure SHell, and is a replacement for telnet, to permit secure terminal connections. The system mainly consists of the following programs: + +"ssh"This is the main program, used for direct terminal connections to a remote computer. In principle it is used like "ssh remoteuser@some.remote.host"."scp"This is a replacement for ftp or rcp, and permits secure copying of files to and from a remote computer. Its basic syntax is "scp localfile remoteuser@some.remote.host:remotefile" to copy a file //to// the remote computer, and "scp remoteuser@some.remote.host:remotefile localfile" to copy a file //from// the remote computer. Note that you can also use wildcards in the remote and local file description (which may need quotes around the remote file name, depending on your shell). "sftp"This is a replacement for ftp, permitting listing of a remote file system and copying to and from it. It has more capabilities than scp, but needs a remote service running under ssh. In principle it is used like "sftp remoteuser@some.remote.host". + +On the client side, a lot of programs are available; you may be best off by using a search engine with the keywords "ssh client" and your local operating system. + +===== SDF issues ===== + +Here we discuss some peculiarities concerning SDF and SSH. + +==== file and directory permissions ==== + +[[#public_key|Public key authentication]] will not work, if the home directory ("$HOME") or the user's ssh directory "$HOME/.ssh" are world writable. Your home directory should never be world writable, anyway! + +To make sure you have the right permissions, execute the following command in the shell while logged into your account:\\ "chmod go-w $HOME $HOME/.ssh" + +You should look up "chmod" in the manpages, if you don't understand this command. + +===== special topics ===== + +==== How to enable Port Tunneling and Why ==== + +=== What is port tunneling good for === + +Port tunneling is the ability to tunnel from your internet point for presence back to SDF servers and use the SDF servers like a [[http://en.wikipedia.org/wiki/SOCKS|Socks 4 Proxy]]. This allows your connection to be encrypted via SSL between your internet access point and SDF. This allows your traffic to be more secure if you are on a public internet access point + +=== What tools are needed === + + * A good SSH Client that allows tunneling ([[http://www.putty.nl/|PuTTY]] in my examples) + * Any software package that understands SOCKS 4 ([[http://www.ceruleanstudios.com/|Trillian]] in my example) + * [[http://sdf.lonestar.org/index.cgi?faq?MEMBERS?01|MetaARPA]] membership + +=== How to set up PuTTY === + +First you need to connect to a SSL enabled SDF server: otaku.freeshell.org on port 443. {{tutorials/images/PuTTY1.gif?456x435|putty screenshot 1}}\\ Then you need to configure the port to tunnel on your local machine. Generally Socks proxies use port 1080 so that is a good port. Click on the Tunnels category and configure the tunnel as shown below. {{tutorials/images/PuTTY2.gif?456x435|putty screenshot 2}}\\ Click on the "Add" button and you should see the screen as listed below. {{tutorials/images/PuTTY3.gif?456x435|putty screenshot 3}}\\ Then go back to session and name and save the session. Click connect and the tunnel should become active. + +=== How to use the Tunnel you just enabled === + +I am now going to configure Trillian (A great multi IM chat program) to use the Tunnel. It should be obvious how to configure other applications from these screenshots. \\ First click on the "Trillian Prefernces" and select "Advanced Preferences". Select "Proxy" If you want all your chat services to use the proxy select use one setting for all services checkbox. Otherwise configure this on each service you want to encrypt over the tunnel. {{tutorials/images/Trillian.gif?730x530|Trillian screenshot 1}}\\ Click on "Close". Now your service should be able to connect through the tunnel. Again this will encrypt all traffic from your Internet Access Point to SDF. Once it leaves SDF it will no longer be encrypted (Unless you are hitting a HTTPS page or something already encrypted). \\ \\ Technically any program that supports a Socks 4 proxy can be used with the tunnel. + +==== SSH Public Key Authentication ==== + +These instructions attempt to explain the basic concepts of SSH Public Key Authentication, what it is, and the steps required to use it. + +//Note: Please make sure to have set the [[#sdf_permissions|correct permissions]] in your SDF account, before attempting to set up public key authentication!// Also note that there is another way of doing this, explained further down by another user. Your mileage may vary! + +Logging in with SSH key authentication means that you do not have to use your SDF account password. Instead, you generate a 'key' -- which is two long strings of characters stored in a pair of files -- and these files are used to verify that you are who you say you are. Since your key can reliably identify you, you can authorize the user of this key (you, hopefully) to log in to your SDF account. You can authorize any key you wish, and adding someone's key would allow them to log in to your SDF account, without even using or knowing your password. + +This may sound insecure or easily exploitable. In fact though, due to much research and theory, it can be very secure. Notice "can be" in that last sentence. The key files are taking the place of a password in proving to the server that you're really you. Just like you have to keep passwords secret, the strength of this method relies on you following certain guidelines. You will generate a pair of mathematically related keys: one public and the other private. **You should never give out your private key, nor should you make the file that contains it readable by any other user. This would be like storing your password in a world-readable file.** Only your *public* key will be listed on the server. Ensuring that your private key remains private is the most important of the guidelines that I mentioned. On to the instructions: + +=== Windows instructions: === + +You will need an SSH client and a key generator for Windows. These instructions are written for the popular programs PuTTY and PuTTYgen. Both are available at www.chiark.greenend.org.uk/~sgtatham/putty/download.html. + +Run PuTTYgen. At the bottom of the window, you can select which type of key you want to generate. You will need to pick between RSA and DSA encryption: go with RSA -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . Your choice will have no effect on the rest of the steps here. For current applications, 1024 bits is plenty for a key to have. If youre feeling paranoid, 2048 bits should (barring any revolutions in prime factoring) keep your key secure for a decade or two. + +Now press Generate and wave your mouse around to seed some randomness in the key generator. Viola, you have a key. + +You can then add a passphrase to your key, and use just that one passphrase whenever you log in to an ssh server using your key. Alternately you can use no passphrase. Be aware though that if //you// don't have to use a password to login from your computer, then //neither would anyone else that sits down at your computer// or otherwise accesses your local account. + +The key comment is for your personal convenience, I reccomend youruser@yourlocalmachine and maybe the date, but of course it's up to you. Now save both the private and public key file somewhere (My Documents is a good choice, but pick somewhere that only *you* will have read access to.) + +Next, you need to configure PuTTY to use this key. Fire up PuTTY and load your session or create a new one. Then in the Category list on the left, selecct Connection > SSH > Auth. Browse for your key and load it up. Also, you'll want to allow changes of username if your SDF account name is different from your local one. + +You're almost done! Now you need to let the server know about your new key. After you do this, the ssh, scp and sftp programs will use the key files automatically. So (optionally, but it is recommended) save your session, and then connect. Now do the following to authorize your key: + +0. Copy the contents in the Key Generator window ("Public key for pasting into OpenSSH authorized_keys file") + +1. Log in as normal and run the following commands. + +2. "$ mkdir ~/.ssh" + +3. "$ cd ~/.ssh/" + +4. "$ touch authorized_keys" + +5. Open the authorized_keys file you just created in a text editor. + +6. Paste the contents of that box in to the authorized_keys file. In PuTTY, right click copies and pastes. + +7. Save the authorized_keys file. + +You should now be able to log in using SSH Key Authentication. + +---- + +I succeeded somewhat differently. In my trial, public key should be rather copied not from the saved public key, but from **Public key for pasting into OpenSSh authorized_keys file:** textbox in the PuTTYgen window. Note that we can also extract from existing PuTTYgen-type private keys (just load into it, and the public key should be there.). + +=== OpenSSH instructions: === + +You can get OpenSSH at www.openssh.com or through package installers like rpm or apt-get. There are versions for most major non-Windows operating systems (and even one for Cygwin.) Once you have the OpenSSH suite set up, the program you will need to run is "ssh-keygen -t". The -t option is required, and specifies the type of encryption algorithm used in generating a key. You should use RSA encryption to generate your key -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . + +you@yourcomputer:~ $ ssh-keygen -t rsa + +You can then add a passphrase to your key, and use this passphrase whenever you log in to an SSH-enabled server. Alternately you can use no passphrase. Be aware though that if //you// don't have to use a password to login from your user account, then //neither would anyone else that sits down at your computer// or otherwise accesses your local account. + +You now have two new files in the ~/.ssh/ directory. These files are your public and private key and will be named id_rsa.pub and id_rsa respectively. The ssh, scp and sftp programs use these files automatically. To enable the server to recognize your key, follow these steps: + +1. Log in as normal and run the following commands. + +2. "$ mkdir ~/.ssh" + +3. "$ cd ~/.ssh/" + +4. "$ touch authorized_keys" + +5. Open the authorized_keys file you just created in a text editor. + +6. Paste the contents of your id_dsa.pub file in to the authorized_keys file. + +7. Save the authorized_keys file. + +You should now be able to log in using SSH Key Authentication. + +==== connecting to SDF from a network ==== + +//... or configuring SSH clients to use a SOCKS proxy server// + +Assuming that you are having trouble connecting to SDF from your college network you will probably have to configure a connection through a SOCKS proxy. This tutorial gives help on configuring various clients to use a SOCKS proxy. + +You will need to know the following information from your system administrator... + + * Proxy hostname i.e. "socks-proxy.example.com" + * SOCKS version (4 or 5) + * Port number to connect to (default is 1080) + * Your username and password + +=== SSH(C) – SSH Communications Security Corp === + +This client is often supplied by universities to their students. + + - Access the settings dialogue under "Edit → Settings" + - Under the "Connection" section, make sure that the tickbox marked "Connect through firewall" is checked {{tutorials/images/ssh-connection-setting.png}} + - Under the "Firewall" section (near the bottom of the list) enter your SOCKS proxy settings in the form of "socks://[host]:[port]" Illustrated are the settings for TCD. {{tutorials/images/ssh-firewall-setting.png}} + - Connect as normal! + +=== PuTTY === + +A popular free SSH client. + + - Select in the left window "Proxy" (located under the "Connection" branch) + - Enter in your details. Illustrated are those for TCD. {{tutorials/images/ssh-putty-config.png}} + - Connect as normal! (You may want to save these details for future use) + +=== Commandline ssh client === + +Those using MacOSX, Linux, SunOS or some BSD or other will be used to using the commandline ssh client to connect to SDF. Connecting via SOCKS is slightly more difficult and relies on an external program known as 'connect'. + +All the details for using this program are documented on its webpage at http://zippo.taiyo.co.jp/~gotoh/ssh/connect.html + +Good luck! + +Alternatively, issue a command from your workstation similar to this one (MetaARPA membership required): + +> ssh -D 9999 -p 443 username@sverige.freeshell.org + +Then, configure your browser to use the SOCKS proxy on "localhost" using port 9999 as shown here using Firefox: + +{{tutorials/images/firefox-socks-proxy.png}} + +For additional security and privacy, configure Firefox to do remote DNS lookups rather than the default local DNS lookups. In //about:config// search for //network.proxy.socks_remote_dns// and toggle its value to //true//. + +---- + +$Id: SSH-SDF.html,v 1.8 2008/07/12 05:38:37 cowl Exp cowl $ \ No newline at end of file diff --git a/dump/SSH_Key_Authentication.html.docuwiki b/dump/SSH_Key_Authentication.html.docuwiki new file mode 100644 index 0000000..c14a07c --- /dev/null +++ b/dump/SSH_Key_Authentication.html.docuwiki @@ -0,0 +1,73 @@ +=== SSH Public Key Authentication === + +These instructions attempt to explain the basic concepts of SSH Public Key Authentication, what it is, and the steps required to use it. + +Logging in with SSH key authentication means that you do not have to use your SDF account password. Instead, you generate a 'key' -- which is two long strings of characters stored in a pair of files -- and these files are used to verify that you are who you say you are. Since your key can reliably identify you, you can authorize the user of this key (you, hopefully) to log in to your SDF account. You can authorize any key you wish, and adding someone's key would allow them to log in to your SDF account, without even using or knowing your password. + +This may sound insecure or easily exploitable. In fact though, due to much research and theory, it can be very secure. Notice "can be" in that last sentence. The key files are taking the place of a password in proving to the server that you're really you. Just like you have to keep passwords secret, the strength of this method relies on you following certain guidelines. You will generate a pair of mathematically related keys: one public and the other private. **You should never give out your private key, nor should you make the file that contains it readable by any other user. This would be like storing your password in a world-readable file.** Only your *public* key will be listed on the server. Ensuring that your private key remains private is the most important of the guidelines that I mentioned. On to the instructions: + +=== Windows instructions: === + + You will need an SSH client and a key generator for Windows. These instructions are written for the popular programs PuTTY and PuTTYgen. Both are available at www.chiark.greenend.org.uk/~sgtatham/putty/download.html. + +Run PuTTYgen. At the bottom of the window, you can select which type of key you want to generate. You will need to pick between RSA and DSA encryption: go with RSA -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . Your choice will have no effect on the rest of the steps here. For current applications, 1024 bits is plenty for a key to have. If youre feeling paranoid, 2048 bits should (barring any revolutions in prime factoring) keep your key secure for a decade or two. + +Now press Generate and wave your mouse around to seed some randomness in the key generator. Viola, you have a key. + +You can then add a passphrase to your key, and use just that one passphrase whenever you log in to an ssh server using your key. Alternately you can use no passphrase. Be aware though that if //you// don't have to use a password to login from your computer, then //neither would anyone else that sits down at your computer// or otherwise accesses your local account. + +The key comment is for your personal convenience, I reccomend youruser@yourlocalmachine and maybe the date, but of course it's up to you. Now save both the private and public key file somewhere (My Documents is a good choice, but pick somewhere that only *you* will have read access to.) + +Next, you need to configure PuTTY to use this key. Fire up PuTTY and load your session or create a new one. Then in the Category list on the left, selecct Connection > SSH > Auth. Browse for your key and load it up. Also, you'll want to allow changes of username if your SDF account name is different from your local one. + +You're almost done! Now you need to let the server know about your new key. After you do this, the ssh, scp and sftp programs will use the key files automatically. So (optionally, but it is recommended) save your session, and then connect. Now do the following to authorize your key: + +0. Copy the contents in the Key Generator window ("Public key for pasting into OpenSSH authorized_keys file") + +1. Log in as normal and run the following commands. + +2. "$ mkdir ~/.ssh" + +3. "$ cd ~/.ssh/" + +4. "$ touch authorized_keys" + +5. Open the authorized_keys file you just created in a text editor. + +6. Paste the contents of that box in to the authorized_keys file. In PuTTY, right click copies and pastes. + +7. Save the authorized_keys file. + +You should now be able to log in using SSH Key Authentication. + +---- + +I succeeded somewhat differently. In my trial, public key should be rather copied not from the saved public key, but from **Public key for pasting into OpenSSh authorized_keys file:** textbox in the PuTTYgen window. Note that we can also extract from existing PuTTYgen-type private keys (just load into it, and the public key should be there.). + +=== OpenSSH instructions: === + + You can get OpenSSH at www.openssh.com or through package installers like rpm or apt-get. There are versions for most major non-Windows operating systems (and even one for Cygwin.) Once you have the OpenSSH suite set up, the program you will need to run is "ssh-keygen -t". The -t option is required, and specifies the type of encryption algorithm used in generating a key. You should use RSA encryption to generate your key -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . + +you@yourcomputer:~ $ ssh-keygen -t rsa + +You can then add a passphrase to your key, and use this passphrase whenever you log in to an SSH-enabled server. Alternately you can use no passphrase. Be aware though that if //you// don't have to use a password to login from your user account, then //neither would anyone else that sits down at your computer// or otherwise accesses your local account. + +You now have two new files in the ~/.ssh/ directory. These files are your public and private key and will be named id_rsa.pub and id_rsa respectively. The ssh, scp and sftp programs use these files automatically. To enable the server to recognize your key, follow these steps: + +1. Log in as normal and run the following commands. + +2. "$ mkdir ~/.ssh" + +3. "$ cd ~/.ssh/" + +4. "$ touch authorized_keys" + +5. Open the authorized_keys file you just created in a text editor. + +6. Paste the contents of your id_dsa.pub file in to the authorized_keys file. + +7. Save the authorized_keys file. + +You should now be able to log in using SSH Key Authentication. + + $Id: SSH_Key_Authentication.html,v 1.5 2006/08/17 16:35:08 samble Exp $ \ No newline at end of file diff --git a/dump/UTF-8.html.docuwiki b/dump/UTF-8.html.docuwiki new file mode 100644 index 0000000..c08eca8 --- /dev/null +++ b/dump/UTF-8.html.docuwiki @@ -0,0 +1,56 @@ +====== Localization and You: UTF–8 on NetBSD ====== + +NetBSD is a great little operating system, but it’s a much smaller project than Linux. This means there isn’t as much call for better internationalization support, as most of the users and developers are perfectly comfortable with ASCII or the ISO–8859–1 western European locale. This can cause some problems when using software that expects Unicode, also known as UTF–8, also known as the one true text encoding for the future. Here’s how to fix it. These instructions assume you’re using a bourne-compatible shell like ksh, bash, or zsh. If you’re using (t)csh you’re on your own. + +===== Environment Variables ===== + +Most of the time, you can “fake” proper UTF–8 support by exporting three environment variables and leaving it up to your local terminal emulator to handle the rest. Add the following three lines to your ~/.profile : + + "export LANG="en_US.UTF-8" + export LC_CTYPE="en_US.UTF-8" + export LC_ALL="en_US.UTF-8" + " + +Save, kill any screen or tmux sessions or other background processes, and log out. When you log in again, you should have a proper UTF–8 terminal as far as most programs are concerned. + +Perl will throw the following error when invoked: + + "perl: warning: Setting locale failed. + perl: warning: Please check that your locale settings: + LC_ALL = "en_US.UTF-8", + LC_CTYPE = "en_US.UTF-8", + LANG = "en_US.UTF-8" + are supported and installed on your system. + perl: warning: Falling back to the standard locale ("C"). + " + +Feel free to ignore this error. As long as you’ve got those environment variables set, you should be fine. + +Python 3 expects all source files to be UTF–8 text, so please make sure to change these things before working on python3 code. + +===== Rxvt-Unicode ===== + +Rxvt-Unicode, urxvt, rxvt-unicode–256color. By whatever name you call it, it’s a very popular terminal among Linux and *BSD “power users.” Unfortunately, using urxvt adds an extra degree of difficulty to connecting to SDF - there’s no "$TERM" setting that corresponds with it! I’m sure some of you have tried logging in to SDF from urxvt, only to have scary warnings printed to stderr and have everything treated like a dumb paper teletype. Don’t worry, there’s a very simple fix for that as well. Open up ~/.profile again and add these lines: + + "if [ $TERM == "rxvt-unicode" ] || [ $TERM == "rxvt-unicode-256color" ]; then + export TERM="rxvt" + fi + " + +In simple terms, this tricks NetBSD into thinking your terminal is rxvt, the original program urxvt is based on. If you have a MetaArpa account, don’t worry - the MetaArray is running CentOS, which understands urxvt just fine. + +===== Escape Characters ===== + +NetBSD’s terminal has what are called “escape characters.” These are characters in the “high ASCII” (decimal 129–255) range that manipulate the shell session when read from stdin or written to stdout. As you might imagine, this screws with programs that write large amounts of arbitrary characters to standard output, like the “kermit -s” or “sz” file transfer programs. For sx/sy/sz (X/Y/ZMODEM protocols) your best bet is to just not use them with SDF for now. If you’re on a TCP/IP connection (which most of you are) it’s easier to stick with scp/sftp for secure transfers, and http or ftp for insecure. If you really need “in-line” file transfer, there is a way to make “kermit -s” work around NetBSD’s escape characters. This is adding the "-8" and "-0" flags. If I wanted to transfer the SQLite database “winning-lottery-numbers.sqlite” from SDF to my home machine, I would do it like this: + + "tidux@sdf:~$ kermit -s -8 -0 winning-lottery-numbers.sqlite + " + +Then my local kermit program would receive the transfer and I could continue working on SDF as usual. If you do this often, it may be wise to add an alias in your shell configuration files, like so: + + "alias send='kermit -s -8 -0' + " + +---- + +I hope this guide has been helpful to you. Happy UTF–8 hacking! \ No newline at end of file diff --git a/dump/UsingTunneling.html.docuwiki b/dump/UsingTunneling.html.docuwiki new file mode 100644 index 0000000..c4d5a9d --- /dev/null +++ b/dump/UsingTunneling.html.docuwiki @@ -0,0 +1,21 @@ +====== How to enable Port Tunneling and Why ====== + +===== What is port tunneling good for ===== + +Port tunneling is the ability to tunnel from your internet point for presence back to SDF servers and use the SDF servers like a [[http://en.wikipedia.org/wiki/SOCKS|Socks 4 Proxy]]. This allows your connection to be encrypted via SSL between your internet access point and SDF. This allows your traffic to be more secure if you are on a public internet access point + +===== What tools are needed ===== + + * A good SSH Client that allows tunneling ([[http://www.putty.nl/|PuTTY]] in my examples) + * Any software package that understands SOCKS 4 ([[http://www.ceruleanstudios.com/|Trillian]] in my example) + * [[http://sdf.lonestar.org/index.cgi?faq?MEMBERS?01|MetaArpa]] membership + +===== How to set up PuTTY ===== + +First you need to connect to a SSL enabled SDF server: otaku.freeshell.org on port 443. {{tutorials/images/PuTTY1.gif?456x435|putty screenshot 1}}\\ Then you need to configure the port to tunnel on your local machine. Generally Socks proxies use port 1080 so that is a good port. Click on the Tunnels category and configure the tunnel as shown below. {{tutorials/images/PuTTY2.gif?456x435|putty screenshot 2}}\\ Click on the "Save" button and you should see the screen as listed below. {{tutorials/images/PuTTY3.gif?456x435|putty screenshot 3}}\\ Then go back to session and name and save the session. Click connect and the tunnel should become active. + +===== How to use the Tunnel you just enabled ===== + +I am now going to configure Trillian (A great multi IM chat program) to use the Tunnel. It should be obvious how to configure other applications from these screenshots. \\ First click on the "Trillian Prefernces" and select "Advanced Preferences". Select "Proxy" If you want all your chat services to use the proxy select use one setting for all services checkbox. Otherwise configure this on each service you want to encrypt over the tunnel. {{tutorials/images/Trillian.gif?730x530|Trillian screenshot 1}}\\ Click on "Close". Now your service should be able to connect through the tunnel. Again this will encryte all traffic from your Internet Access Point to SDF. Once it leaves SDF it will no longer be encrypted (Unless you are hitting a HTTPS page or something already encrytped). \\ \\ Technically any program that supports a Socks 4 proxy can be used with the tunnel. + +$ID: $ \ No newline at end of file diff --git a/dump/VPN.html.docuwiki b/dump/VPN.html.docuwiki new file mode 100644 index 0000000..1fc13ac --- /dev/null +++ b/dump/VPN.html.docuwiki @@ -0,0 +1,185 @@ +====== SDF's VPN servers ====== + + * [[#pptp|Accessing the PPTP Server (USA)]] + * [[#openvpn|Accessing the OpenVPN Server (USA/EU)]] + +====== Connecting to the SDF VPN with OpenVPN (USA/EU) ====== + +===== Contents ===== + +==== Generic Instructions ==== + + * [[#overview-openvpn-generic|Overview]] + * [[#software-openvpn-generic|OpenVPN software]] + * [[#setup-openvpn-generic|Setting it up]] + * [[#overview-openvpn-extractcerts|Obtaining your certificates]] + * [[#overview-openvpn-verifycerts|Verifying your certificates]] + +==== Targeted Instructions ==== + + * [[#openvpn-openwrt|Connecting in OpenWRT]] + * [[#viscosity|Connecting with Viscosity]] + +===== Overview ===== + +OpenVPN is the prefered VPN method to connect with SDF. OpenVPN uses Transport Layer Security (TLS) to authenticate users and encrypt communications. When SDF users register for VPN service they are issued a certificate and private key. Connecting via OpenVPN also results in users being issued a static public facing IP address for their VPN session. + +The Virtual Private Network (VPN) provided by SDF has a number of uses. The most beneficial of that is to allow confidential communication over a public network. Basically, the SDF VPN will allow you (once routing is enabled) to communicate securely over an insecure connection such as a public Wireless Fidelity (Wi-Fi) network. + +The major benefit of this over SSH forwarding/tunneling is that it is much easier to configure and automatically tunnels **all** connections leaving your computer, and not just those specifically configured for forwarding. Some may see this as a negative aspect of the VPN, however. + +Registration instructions and VPN dues are found by running the **vpn** command from an SDF login session. + +Before proceeding please mind the following note. + +__NEVER__ send your private key to anyone in an email message.\\ __NEVER__ post your private key in a bboard posting, online forum, or chat session.\\ + +===== Getting the OpenVPN software ===== + + * [[http://openvpn.net/index.php/open-source/downloads.html|Download OpenVPN for Windows or UNIX/Linux]] + * [[https://tunnelblick.net/downloads.html|Download the TunnelBlick OpenVPN client for MacOS X]]===== Setting it up =====You will receive your OpenVPN certificate via SDF internal email for both the USA and EU server. If you lose this email, you must make post on the internal bboard:REQUESTS to have them reissued. You may use either server when it suits you. The server addresses are: + * openvpn.sdf.org (Tukwila, Washington USA) + * openvpn.sdfeu.org (Falkenstein, Germany EU) ==== Obtaining your certificates ====The email message from the SDF administrator will contain: + * A certificate for the SDF Certificate Authority (CA). + * A certificate for your VPN user certificate. + * A private key which is associated with your user certificate. + * The port and port of the SDF and SDF Europe OpenVPN servers. + * Settings to use for your OpenVPN configuration file.You must extract each of the certificates and the private key from the email message. You must also create an OpenVPN configuration file.One thing to note about the OpenVPN configuration file that you may receive with your email: If the line that begins with remote follows with 192.94.73.x (where x will be the number you're assigned to) you'll need to change that to 205.166.94.x. This is because the sdf IP block had to change near the end of 2016. This may have been corrected on emails sent since the change.==== Verifying your certificates ====Let us assume that the SDF CA has been saved into a file called sdf.ca. Let us also assume that your user certificate has been saved into a file called yourCert.crt. You can use openssl to verify the extraction steps have been performed correctly.\\ $**openssl verify -CAfile sdf.ca yourCert.crt**\\ yourCert.crt:OK\\ \\ $**openssl x509 -noout -serial -fingerprint -subject -in sdf.ca**\\ serial=88FF6DD2D8A905FE\\ SHA1 Fingerprint=BA:26:E0:3C:25:10:80:CF:FA:51:2B:05:A1:81:AD:C7:48:94:07:74\\ subject= /C=US/ST=WA/L=SEATTLE/O=sdf.org/CN=sdf.org CA/emailAddress=smj@sdf.org\\ \\ $**openssl x509 -noout -serial -fingerprint -subject -in yourCert.crt**\\ serial=YOUR_SERIAL_NUMBER\\ SHA1 Fingerprint=YOUR_CERT_FINGERPRINT\\ subject= /C=US/ST=WA/L=SEATTLE/O=sdf.org/CN=YOUR_USER_NAME@sdf.lonestar.org/emailAddress=smj@sdf.org===== Connecting in OpenWRT =====These instructions were created using OpenWRT Bleeding Edge, r33132.==== Installing OpenVPN ====Run the following command to install openvpn with opkg:root@OpenWrt:~# opkg install openvpn\\ + ---- + ====== Connecting to the SDF VPN server (PPTP) (USA) =========== Contents ===== + * [[#overview|Overview]] + * [[#setup|Setting it up]] + * [[#xp|Connecting in Windows XP]] + * [[#vista|Connecting in Windows Vista]] + * [[#linux|Connecting in Linux]] + * [[#openwrt|Connecting in OpenWRT]] + * [[#freebsd|Connecting in FreeBSD]] + * [[#osx|Connecting in Mac OS X]] + * [[#wrapup|The Wrap-up]]===== Overview =====PPTP is a legacy method to connect to the SDF VPN. Dynamic IP addresses are assigned if you use this method.The Virtual Private Network (VPN) provided by SDF has a number of uses. The most beneficial of that is to allow confidential communication over a public network. Basically, the SDF VPN will allow you (once routing is enabled) to communicate securely over an insecure connection such as a public Wireless Fidelity (Wi-Fi) network.The major benefit of this over SSH forwarding/tunneling is that it is much easier to configure and automatically tunnels **all** connections leaving your computer, and not just those specifically configured for forwarding. Some may see this as a negative aspect of the VPN, however.===== Setting it up =====The SDF VPN is quite easy to set up. You must first choose a VPN plan that is right for you, based on assumed bandwidth usage. Pricing and more package information is available through the shell by typing '**vpn**' without the quotes.Once you've been added to the VPN membership level (you'll receive an email notification of this), you must set up your VPN access by typing '**setvpn**' in the shell, without quotes. This will allow you to configure your VPN secret (password) for connecting.You should make note of the VPN's IP address when setting up your secret.Once you've configured your VPN account, it's time to connect. Continue reading below for step-by-step instructions on connecting to the VPN.===== Connecting in Windows XP ===== + - Open the Windows Control Panel. + - Open the Network Connections item in Control Panel. Generally you would click the "**Network and Internet Connections**" option, then click "**Network Connections**". A list of existing dial-up and LAN connections will be displayed. + - Click on the "**Create a new connection**" option from the left-hand side of the window. The Windows XP New Connection Wizard will come up. + - Click the "**Next**" option to begin the wizard. Then choose the "**Connect to the network at my workplace**" option from the list and click "**Next**". + - On the Network Connection page of the wizard, choose the "**Virtual Private Network connection**" option and click "**Next**". + - Choose a name for this connection on the "**Connection Name**" screen. Windows will use this to reference the VPN connection. + - Choose an option on the "**Public Network**" screen and click "**Next**". The default option, "**Automatically dial this initial connection**" can be used if the VPN connection will always be initiated when the computer is not already connected to the Internet. Otherwise, choose the "**Do not dial the initial connection**" option. This requires that the public Internet connection be established first, before this new VPN connection will be initiated. **Choose this option.** + - Enter the IP address for the VPN on the "**VPN Server Selection**" screen. This is obtained via the '**setvpn**' command (without quotes) in the shell. + - Choose an option on the "**Connection Availability**" screen and click "**Next**". The default option, "**My Use Only**", ensures that Windows will make this VPN connection available only to the user that is currently logged in to the computer. If you don't want this, select the "**Anyone's use**" option. + - Click "**Finish**" to complete the wizard. You may wish to select the option to create a desktop shortcut for easy access. The information for the VPN connection will be saved for current and/or future use.===== Connecting in Windows Vista =====Connecting to the VPN is slightly different in Windows Vista. Please use these instructions to connect to SDF's VPN through Vista. + - Click on the "**Start**" button and then choose "**Connect to**". + - Click on the "**Set up a connection or network**" option on the window that follows. It's near the bottom. + - On the window that comes up, scroll down and click on the "**Connect to a workplace**" option. Then click "**Next**". + - A question asking "**Do you want to use a connection you already have?**" may appear. Select "**No, create a new connection.**" if it does and then click "**Next**". + - Next you'll be asked "**How do you want to connect?**" Select "**Use my Internet connection (VPN)**". + - You'll then be asked for the Internet address. Enter the address you remembered when accessing '**setvpn**' (without quotes) in the SDF shell. + - Enter a name for this VPN connection in the "**Destination name:**" field. This is how Windows Vista will reference the VPN. + - If you don't want to connect immediately, check the "**Do not connect now; just set it up so I can connect later.**" option. + - Do not check the "**Use a smart card.**" option. + - When finished, click "**Next**" + - You'll then configure the username and password needed to authenticate to the VPN. The username is your SDF username and the password is the secret you set up via the '**setvpn**' command in the shell. + - Leave the "**Domain**" field blank. + - Click the "**Create**" button once you are done. You should then see a window pop up saying that "**The connection is ready to use.**" Click on "**Close**".===== Connecting in Linux ===== + - Make sure PPP and PPTP are installed. The can be accomplished in Debian or Ubuntu by entering '**sudo apt-get install pptp-linux**' into a terminal. + - Create a file named sdfpptp in /etc/ppp/peers by entering '**sudo gedit /etc/ppp/peers**'. Replace gedit with your choice of text editor. Add the following to the file: (Be sure to replace **//username//** with your username.)\\ \\ Note: Make sure to replace **//IP Address//** with the IP address/hostname provided when running '**setvpn**' in the shell.\\ + remotename sdfpptp + linkname sdfpptp + ipparam sdfpptp + pty "pptp --loglevel 0 **//IP Address//** --nolaunchpppd" + name **//username//** + refuse-eap + refuse-pap + refuse-chap + refuse-mschap + require-mppe + nomppe-stateful + require-mppe-128 + nomppe-40 + noauth + nodetach + lock + bsdcomp 9,15 + deflate 9,15 + idle 0 + - Save the file. + - Edit /etc/ppp/chap-secrets by entering '**sudo gedit /etc/ppp/chap-secrets**'. Add the line **//username// stfpptp //password// *** replacing //username// and //password// with your SDF username and your password set by **'setvpn'**. + - Make sure a specific route to the VPN exists. Run '**sudo route add **//VPN-IP//** gw **//GW-IP//****' replacing **//VPN-IP//** with the IP address/hostname provided when running '**setvpn**', and replace **//GW-IP//** with your gateway IP address. If you do not know the IP address of your gateway, enter '**route**'. It is the gateway IP next to the destination **default**. + - Enter '**sudo pppd call sdfpptp**' into a terminal. Wait for it to show the local and remote IP addresses. You should now be connected. Do not close the terminal until you are ready to disconnect. + - Open another terminal. Enter '**sudo route add -net 192.94.73.0/24 dev ppp0**'. This will route all your connections to SDF through the VPN.Alternatively to steps 5 and 6, you might use a wrapper script like this:\\ + #!/bin/bash + SDFVPNHOST=**//IP Address//** + RT=`ip route get $SDFVPNHOST | head -1` + DEV=`echo $RT | awk '{while ($num != "dev") {num++}{print $(num+1)}}'` + VIA=`echo $RT | awk '{while ($num != "via") {num++}{print $(num+1)}}'` + ip route add $SDFVPNHOST via $VIA dev $DEV + ip route add $SDFVPNHOST via $VIA dev $DEV table sdftun + pppd call sdfpptp + ip route del $SDFVPNHOST via $VIA dev $DEV + ip route del $SDFVPNHOST via $VIA dev $DEV table sdftun + This automatically detects the default gateway and adds appropriate routes, starts the VPN and deletes the routes after VPN has been stopped. If you do not use a custom routing table dedicated to the SDF VPN you should delete the lines ending in "table sdftun".\\ ==== GUI Setup With NetworkManager ====Any of the newer Linux distros that use NetworkManager (Debian, Ubuntu, Fedora, etc.) on their default desktops have a GUI interface to PPTP VPN configuration. You'll need to install a package to get this capability (although this now seems to be included in the latest Ubuntu 10.10 release):Fedora: + yum install NetworkManager-pptp + Debian/Ubuntu: + apt-get install network-manager-pptp + Once installed, restart the NetworkManager service (///etc/init.d/NetworkManager restart//) and left-click on the network manager icon in your taskbar. Highlight **VPN Connections** and click on **Configure VPN**:{{tutorials/images/vpn1.png|Network Manager - Overview Settings}}\\ {{tutorials/images/vpn4.png|Network Manager - VPN Settings Overview}}Click on the **Add** button, and choose **Point-to-Point Tunneling Protocol (PPTP)**, then click **Create**. Fill out the **User name**, **Password** and **Gateway** fields with appropriate values ([[#setup|from when you ran //setvpn//]]):{{tutorials/images/vpn2.png|Network Manager Settings - VPN Settings Detail}}Now click on **Advanced**:{{tutorials/images/vpn3.png|Network Manager Settings - Advanced VPN Details}}Under **Authentication**, **de-select all the methods except MSCHAPv2**. Then select **Use Point-to-Point Encryption (MPPE)** and choose **128-bit (most secure)** in the **Security** dropdown. Click **OK**, then **Apply** and close all other configuration dialogs. Now when you left-click on the network manager icon, you should have your PPTP VPN listed under **VPN Connections**. Just select it and wait. If it is successful, you'll see a little lock icon appear over the usual network manager icon. If not, check your system log for errors. This will be ///var/log/messages// or ///var/log/syslog//, depending on your distro.==== A Note on Routing ====If you use network manager, all traffic will be routed through the PPTP VPN for you once you are connected. If that's not what you want, you can click on **IPV4 Settings** and then **Routes** to have simple static routes added for you automatically when the VPN connects. You can also check **Use this connection only for resources on this network**, which in our case means only connections to SDF hosts will be encrypted.{{tutorials/images/vpn5.png|Network Manager Settings - Add Routes}}===== Connecting in OpenWRT ========= Overview ====OpenWRT provides both a kernelspace and userspace method for connecting to PPTP networks as a client. The userspace and kernelspace methods are both outlined below, you only need to use one of them to start a connection. This documentation was created using OpenWRT Bleeding Edge (r33006), so older versions may have trouble. The full OpenWRT PPTP Client documentation can be found on the OpenWRT wiki here: http://wiki.openwrt.org/doc/howto/vpn.client.pptp==== PPTP Kernel Module ====For this setup you'll need to install the following kernel module packages: //kmod-pptp//, //kmod-mppe//. + - Login to your OpenWRT device via SSH. + - Install the required kernel modules and plugins: //opkg install kmod-pptp kmod-mppe ppp-mod-pptp// + - Open ///etc/config/network// with the editor of your choice. Example: //vi /etc/config/network//. Add the following lines to the end of the file: (change USERNAME to your SDF Username, and the values PASSWORD and SDF.VPN.IP.ADDRESS to thoes set in the //setvpn// command. #### VPN configuration config 'interface' 'vpn' option 'ifname' 'pptp-vpn' option 'proto' 'pptp' option 'username' 'USERNAME' option 'password' 'PASSWORD' option 'server' 'SDF.VPN.IP.ADDRESS' option 'buffering' '1' option 'defaultroute' '0' + - Open ///etc/ppp/options.pptp// with the editor of your choice. Example: //vi /etc/ppp/options.pptp//. Add the following lines to the end of the file (the //plugin// may need to be changed to match your system): noipdefault nodefaultroute maxfail 0 debug plugin "/usr/lib/pppd/2.4.5/pptp.so" refuse-eap refuse-pap refuse-chap refuse-mschap mppe required,stateless noauth nodetach bsdcomp 9,15 deflate 9,15 idle 0 + - Restart networking to connect to the VPN: ///etc/init.d/networking restart//. + - If everything worked correctly, the //ifconfig// command should display a new interface named //pptp-vpn// looking something like this: pptp-vpn Link encap:Point-to-Point Protocol inet addr:192.94.73.44 P-t-P:192.94.73.25 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1460 Metric:1 RX packets:21 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:1159 (1.1 KiB) TX bytes:128 (128.0 B) + - Routing can be set up like any Linux OS, so follow the routing instructions found above: [[#linux|Linux]].==== PPTP Userspace Utility ==== + - Login to your OpenWRT device via SSH. + - Install the required userspace tools and module for MPPE: //opkg install pptp kmod-mppe// + - Follow the [[#linux|Linux]] directions above like normal. + - If you are still having trouble, look over the official OpenWRT documentation found here: http://wiki.openwrt.org/doc/howto/vpn.client.pptp==== ========= Connecting in FreeBSD ===== + * Install mpd4 from ports or packages. + * Add the following section to your /usr/local/etc/mpd4/mpd4.conf: sdfvpn: new -i ng1 sdfvpn sdfvpn set iface disable on-demand set iface idle 0 # disconnect the client after 8 hours set iface session 28800 set iface route 10.0.0.0/24 set iface route default set bundle disable multilink set auth authname "USERNAME" set auth password "PASSWORD" set link yes acfcomp protocomp set link no eap set link no pap set link accept chap set link mtu 1460 set link keep-alive 10 75 set ipcp yes vjcomp set ipcp ranges 0.0.0.0/0 set ipcp yes req-pri-dns req-sec-dns # # The five lines below enable Microsoft Point-to-Point encryption # (MPPE) using the ng_mppc(8) netgraph node type. # set bundle yes compression set ccp yes mppc set ccp yes mpp-compress set ccp yes mpp-e128 #set bundle accept crypt-reqd set ccp yes mpp-stateless open + * You will have to replace three (3) things in this config: + - Your USERNAME + - Your PASSWORD + - The local address of SDF's VPN host. This can be found in /etc/hosts on SDF. The local IP will start with 10.0.0, but have the same last octet as the public IP. ' + * Add this in your /usr/local/etc/mpd4/mpd4.links file: sdfvpn: set link type pptp set pptp peer set pptp enable originate outcall set pptp disable incoming + * You will have to replace one (1) thing in this config: + - The public address of SDF's VPN host. You can get this by running setvpn at the shell. + * Now, as root, run mpd4 sdfvpn. + * You should now be connected to SDF over a layer 3 tunnel across the Internet. + * Your new routes are only for SDF's hosts, and use their internal IP addresses. These are the 10.0.0.x ones. I'm working on how to route to the public ones over the VPN without creating a routing loop to the VPN host. I copied SDF's /etc/hosts file to my machine so that I can run 'ssh sdf1' to connect through the tunnel. ===== Connecting in Mac OS X ===== + - Open /Applications/Internet Connect.app + - Click on the **VPN** button. + - Click on the Configuration dropdown and go to "**Edit Configurations...**" + - Press the **+** button at the bottom left of the window to add a configuration. + - Under "**Description**" put whatever you want. SDF VPN is a good choice. + - Under the "**Server Address**," Enter the IP address for the VPN on the "**VPN Server Selection**" screen. This is obtained via the '**setvpn**' command (without quotes) in the shell. + - Under Username put your SDF username and the password is the secret you set up via the '**setvpn**' command in the shell. + - Choose "**Automatic**" encryption. + - Click "**OK**". + - Then, whenever you want to connect you can return to this **Internet Connect Application** and go to the VPN, choose the SDF VPN and click connect. Optionally, you can click "**Show VPN status in the menu bar**" and you can connect to the VPN from the menu bar icon.===== Connecting On An iPad ===== + - Log into SDF and run the 'setvpn' command. + - Hit 'p' to set up your password. + - Enter your password twice. The password must be 14 characters or less, and ideally should contain letters, numbers, upper and lower case, and a special symbol, though there are no actual complexity requireme nts. + - After you have set up your password, the setvpn wizard will tell you what IP address to connect to. It will be 192.94.73.X. Write this whole IP address down. You will need it in a later step. + - Hit 'q' to exit the configuration. + - Turn on your iPad and go to the Settings. + - Go into the Network subsection. + - Go into the VPN subsection. This will bring up the 'Add Configuration' window. + - Select "PPTP" at the top. + - In the Description field, label this connection something useful to identify it, such as 'SDF VPN'. + - In the 'Server' field, put in the IP address that you wrote down earlier. + - In the 'account' field, put your SDF user name. + - In the 'Password' field, put the password that you set up while running the setvpn wizard in the set above. This will cause the iPad to remember your password for you. If you wish to type it in each time you connect, leave this field blank. + - Set the encryption level to 'Maximum' + - Leave the 'Send All Traffic' slider set to 'On', unless you specifically want to (and know how to) set up VPN usage in individual applications. + - Hit the 'Save' button at the top + - To turn on VPN, slide the VPN slider to 'On' for the connection called SDF and open the browser. Connect to http://sdf.org/ip and verify that the IP address it shows as your source. ==== Connecting with Viscosity ====[[http://www.sparklabs.com/viscosity/|Viscosity]] is an OpenVPN client for Mac and Windows + - Open Viscosity's preferences window. + - Create a new connection{{tutorials/images/viscosity1.png?450|Viscosity screenshot #1}} + - In the New Connection window, + * Give your connection a name + * Enter the server IP you received via e-mail under **Remote Server** + * Make sure protocol is set to **tap** not **tun** + * Uncheck **Enable DHCP**.{{tutorials/images/viscosity2.png?450|Viscosity screenshot #2}} + - Move on to the Authentication tab + * You will need to copy the certificates and keys you received in e-mail to a //SECURE// location on your //local// disk. + * Select the appropriate certificate or key for each of the three SLL file locations{{tutorials/images/viscosity4.png?450|Viscosity screenshot #3}} + - Now move to the Options tab + - Set LZO Compression to **On** or **On (Adaptive)**{{tutorials/images/viscosity5.png?450|Viscosity screenshot #4}} That's it! Hit Save, and you're ready to roll securely through the SDF VPN.===== Wrap-up =====Now that you have your VPN configured to connect, make sure that you don't forget to use it! Using the VPN while connected through a public access network (or even your home network!) will tunnel all connections through SDF and out to the Internet (once routing is enabled). Please make sure to use the VPN responsibly, as all actions and activity will be traced back to SDF.Enjoy! + ---- \ No newline at end of file diff --git a/dump/VPS_Centos.html.docuwiki b/dump/VPS_Centos.html.docuwiki new file mode 100644 index 0000000..4aaa7cf --- /dev/null +++ b/dump/VPS_Centos.html.docuwiki @@ -0,0 +1,176 @@ +====== CentOS on SDF VPS ====== + +//Updated for CentOS 7// + +===== Contents ===== + + * [[#basics|Basics]] + * [[#networking|Networking]] + * [[#ssh|Setting up SSH]] + * [[#security|Security]] + * [[#software|Software Management]] + * [[#updating|Updating the System]] + * [[#reference|References]] + +===== Basics ===== + +Logging into your VPS for the first time you will need to use the default username and password listed below.\\ Default Username: root\\ Default Password: rootroot + +One of the first things you will want to do is change the default root password by typing //passwd// at the prompt. Don't forget this password as there is currently no way to recover it. + +It is a good habit to create a regular user account for working, using su to obtain root privileges as needed. To create a regular user account: + + useradd -Gwheel <username> + +This user will be able to perform administrative tasks by runing //su// to obtain superuser privileges using the root password. CentOS ships with sudo installed, so adding the new user to wheel group and editing /etc/sudoers with //visudo// to uncoment the following line: + + ## Allows people in group wheel to run all commands + %wheel ALL=(ALL) ALL + +===== Networking ===== + +You will need to ssh into the vps control panel server that you were given in your welcome email which should have the format of //vps<number>.sdf.org//. + +Once logged into your control panel you will see a line at the top of the screen that details your chosen Operating System and IP Address.\\ //VPS Maintenance Shell for <os> (205.166.94.xxx)//\\ This information will be important for setting up your server to have network access. + +Start your server, and log in via the console. (default= root:rootroot) + +Open /etc/sysconfig/network-scripts/ifcfg-eth0 in an editor and add the following, replacing the 'xxx' with the last octet of your assigned IP address, add: + + DEVICE=eth0 + BOOTPROTO=none + IPADDR=205.166.94.xxx + NETMASK=255.255.255.0 + GATEWAY=205.166.94.1 + DNS1=205.166.94.20 + ONBOOT=yes + +Your MAC address could be in the eth0 script, but if you only have one network interface with only one IP assigned to it, this should be enough. + +Change the next line in /etc/sysconfig/network: + + HOSTNAME=my.host.name + +Change hostname (FQDN and alias) in /etc/hosts so it reads like this: + + 127.0.0.1 localhost.localdomain localhost + ::1 localhost6.localdomain6 localhost6 + 205.166.94.xxx my.host.name my + +You should also run the following commands (or reboot your server) in order for the changes to take effect: + + /bin/hostname + /bin/systemctl restart rsyslog + /bin/systemctl restart network + +===== Setting up SSH ===== + +You may wish to add ssh access to your VPS. It is highly recommended that you disable root login via ssh and use a normal user account to login. In CentOS the OpenSSH service is installed and enabled by default. + +==== Disable root Login ==== + +Edit /etc/ssh/sshd_config and uncomment the line: + + #PermitRootLogin yes + +To: + + PermitRootLogin no + +Also you can raise the security level in OpenSSH a little bit by allowing only to certain users ssh access to your vps (eg. the user you have created before) + +Add one line at the end of /etc/ssh/sshd_config like this: + + AllowUsers username anotheruser + +Now restart sshd by running/typing: + + /bin/systemctl restart sshd + +You can now test ssh by running ssh user@localhost. + +===== Security ===== + +In CentOS SELinux is enabled by default, SDF's CentOS VPS has SELinux configured to run in permissive mode, so it will log any security problem but won't enforce any policy. If you are not familiar with SELinux I suggest you to leave it this way, you can learn more about SLinux in CentOS in the [[#reference|Deployment Guide]] + +CentOS 7 uses firewalld, you can learn more about configuring firewalld [[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7|here]]. + +===== Software Management ===== + +Yellow Dog Updater Modified (yum) is the default package manager used in CentOS ( all versions ). It is used to install and update packages from CentOS (and 3rd party) Repositories. + +You can configure this repositoires in /etc/yum.repos.d, by default CentOS Base and CentOS Updates are enabled by default, SDF seems to be running [citation needed] default CentOS kernel, but to play safe I advise you to add the following line in /etc/yum.repos.d/CentOS-Base.repo once under sections //[base]// and //[updates]//: + + exclude=kernel-PAE* kernel-debug* kernel-devel* kernel-doc* kernel-xen* + +CentOS is aimed to be 100% binary compatible with RHEL, so it is very enterprise oriented and the best advise is to stick with pre-built packages. + +==== Searching software ==== + +If you wanted to look for GNU Screen, you can search yum database by running: + + yum search screen + +yum will return a list of package names and descriptions matching the word used as parameter for //search//. CentOS has groups of packages available you can know what software groups are available for install as the software groups installed already. + + yum grouplist + +This command will return installed and available for install software groups. + +Installed Groups in SDF VPS CentOS image: + + * DNS Name Server + * Dialup Networking Support + * Editors + * FTP Server + * Legacy Network Server + * Mail Server + * MySQL Database + * Network Servers + * News Server + * Server Configuration Tools + * System Tools + * Text-based Internet + * Web Server + * Windows File Server + * Yum Utilities + +==== Installing software ==== + +If you want to install GNU screen as in the example above, you must run the following: + + yum install screen + +If you wish to install the development toolchain you can do it by running this command: + + yum groupinstall "Development Tools" + +Be aware that this can be a lot of stuff and you may run out of space in hard drive, so start by removing unused software groups (e.g., yum groupremove "Windows File Server") and then move to install desired/needed software groups or standalone packages. + +==== 3rd party repos ==== + +Most needs could do it well with repositoires shiped by default CentOS, but there are other options like the CentOS Plus repository, shiped but disabled by default, since this repo contains items that actually upgrade certain base CentOS components. This repo will change CentOS so that it is not exactly like the upstream provider's content. Popular packages from this repository include: postfix with database support, a rebuilt kernel with additional drivers & filesystem support, php5 and mysql5. + +contrib is also a disabled default in CentOS. This repository contains packages contributed by CentOS users which do not overlap with any of the core distribution packages. These packages have not been tested by the CentOS developers and may not track the upstream version releases very closely. + +To enable repositories temporarily, append --enablerepo=reponame before the command for yum, such as: + + yum --enablerepo=centosplus --enablerepo=contrib search postfix + +Other popular repos are RPMForge, this repository provides over 4000 packages for CentOS. Read the instructions on [[http://wiki.centos.org/AdditionalResources/Repositories/RPMForge|Installing RPMForge]]. This repository is considered by many in the community to be stable and safe. + +EPEL, this repository (See http://fedoraproject.org/wiki/EPEL) provides rebuilds of Fedora packages for RedHat Enterprise Linux. + +===== Updating the System ===== + +To update your system, run the following command: + + * yum update + +===== References ===== + + * [[http://www.centos.org/docs/5/html/5.2/Deployment_Guide/| Deployment Guide]] + * [[http://wiki.centos.org/|CentOS Wiki]] + +---- + $Id: VPS_Centos.html,v 1.10 2017/01/04 17:30:19 kickback Exp $ \ No newline at end of file diff --git a/dump/VPS_Debian.html.docuwiki b/dump/VPS_Debian.html.docuwiki new file mode 100644 index 0000000..a3bc3fe --- /dev/null +++ b/dump/VPS_Debian.html.docuwiki @@ -0,0 +1,201 @@ +{{http://sdf.org/tutorials/images/Debian.png}} + +====== Debian on SDF VPS ====== + +===== Contents ===== + + * [[#basics|Basics]] + * [[#timezone|Timezone]] + * [[#networking|Networking]] + * [[#ssh|Setting up SSH]] + * [[#pkg-mgt|Package Management]] + * [[#firewall|Firewall Setup]] + * [[#upgrading|Software and Distribution Updating]] + * [[#memreduce|Reducing Memory Usage]] + +===== Basics ===== + +The root user on a fresh Debian VPS has the default password "rootroot". + +After logging in to your VPS for the first time, please change this password to something more secure. Type "passwd" at the prompt and follow the instructions. Don't forget this password as there is currently no way to recover it. + +It is a good habit to create a regular user account for working, using "su" to obtain root privileges as needed. To create a regular user account: + + useradd -m <username> + +This user will be able to perform administrative tasks by runing "su" to obtain superuser privileges using the root password. + +===== Set Your Timezone ===== + + dpkg-reconfigure tzdata + +===== Networking ===== + +In your control panel at vps.sdf.org, note YOUR_IP (e.g. 205.166.94.255) on the top line, and YOUR_HOSTNAME (e.g. debian99). + +Start your server, and log in via the console. (default= root:rootroot) + +Open /etc/network/interfaces in an editor and add the following, replacing the text YOUR_IP with your own actual IP number, add: + + auto eth0 + iface eth0 inet static + address YOUR_IP + netmask 255.255.255.0 + network 205.166.94.0 + broadcast 205.166.94.255 + gateway 205.166.94.1 + dns-nameservers 205.166.94.20 + +//Note: For VPS installations of Debian 8.4 (jesse) on VPS3, please omit the above dns-nameservers line from the interfaces file, and instead add this line to //**/etc/resolv.conf**: + + nameserver 205.166.94.20 + +Add this to /etc/hosts: + + YOUR_IP YOUR_HOSTNAME.sdf.org YOUR_HOSTNAME + +Change /etc/hostname to: + + YOUR_HOSTNAME + +Run/Type: + + /etc/init.d/networking restart + +===== Setting up SSH ===== + +You may wish to add ssh access to your VPS. It is **//highly//** recommended that you disable root login via ssh and use a normal user account to login. + +==== Install SSH ==== + +Run/Type: + + apt-get install openssh-server + +==== Disable root Login ==== + +Edit ///etc/ssh/sshd_config// and change the line: + + PermitRootLogin yes + +To: + + PermitRootLogin no + +Now restart sshd by running/typing: + + /etc/init.d/ssh restart + +You can now test ssh by running "ssh user@localhost". + +===== Package Management ===== + +Refer to the following article to see how to clean up (remove packages) from your VPS: + + * [[http://www.debian-administration.org/articles/462|Cleaning up a Debian GNU/Linux system]] + +===== Firewall Setup ===== + +Disable IPv6: + + # echo "blacklist ipv6" >> /etc/modprobe.d/blacklist + +Edit rules: + + # vi /etc/firewall + + *filter + + -A INPUT -i lo -j ACCEPT + -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT + + -A OUTPUT -j ACCEPT + -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT + + -A INPUT -p tcp --dport 80 -j ACCEPT + -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT + + -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT + + -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 + + -A INPUT -j REJECT + -A FORWARD -j REJECT + + COMMIT + +Load rules (now): + + # iptables -F + # iptables-restore < /etc/firewall + +Load rules (boot): + + # vi /etc/network/if-pre-up.d/firewall + + #!/bin/sh + /sbin/iptables-restore < /etc/firewall + + # chmod 755 /etc/network/if-pre-up.d/firewall + +===== Software and Distribution Updating ===== + +To update your system, run the following commands: + + * apt-get update + * apt-get dist-upgrade -y ===== Reducing Memory Usage =====If you are using a 128MB slice, it's a good idea to reduce the memory usage of some processes or even disable them.==== cron and at ==== You might not need one or both of those, so you can deactivate them with + # update-rc.d -f atd remove + # update-rc.d -f cron remove + This frees up ca. 7MB (if both are deactivated). ==== getty / virtual terminals ==== This being a virtual system, you won't need getty on tty1-6. In order to eliminate them, edit /etc/inittab and modify the corresponding lines like this: + co:2345:respawn:/sbin/getty hvc0 9600 linux + #1:2345:respawn:/sbin/getty 38400 tty1 + #2:23:respawn:/sbin/getty 38400 tty2 + #3:23:respawn:/sbin/getty 38400 tty3 + #4:23:respawn:/sbin/getty 38400 tty4 + #5:23:respawn:/sbin/getty 38400 tty5 + #6:23:respawn:/sbin/getty 38400 tty6 + You need to keep the line with hvc0 so you can attach a serial console from vps.sdf.org to your vps. This frees up ca. 10MB. ==== rsyslogd ==== rsyslogd eats a lot of memory by default (26MB on my vps) which can be reduced by the usage of ulimit. Edit /etc/init.d/rsyslog and include the following line just before the command where rsyslogd will be started: + ulimit -s 256 + Example: + case "$1" in + start) + ulimit -s 256 + log_daemon_msg "Starting $DESC" "$RSYSLOGD" + create_xconsole + do_start + case "$?" in + 0) sendsigs_omit + log_end_msg 0 ;; + 1) log_progress_msg "already started" + log_end_msg 0 ;; + *) log_end_msg 1 ;; + esac + ;; + This frees up about 23MB. ==== portmap ==== I don't need portmap, so i removed it completely: + apt-get remove --purge portmap + ==== openssh vs. dropbear ==== If you dont need all the extra features openssh has compared to dropbear, you can reduce memory consumption from 23MB to 5MB while being connected with 1 non-root user to the system by replacing openssh with dropbear. + apt-get install dropbear + Edit /etc/defaults/dropbear and set NO_START to 0 and add the extra args "-w -s -g" to disallow root and password logins (You'll be only able to login with a non root user and ssh keys): + # disabled because OpenSSH is installed + # change to NO_START=0 to enable Dropbear + NO_START=0 + # the TCP port that Dropbear listens on + DROPBEAR_PORT=22 + # any additional arguments for Dropbear + DROPBEAR_EXTRA_ARGS="-w -s -g" + # specify an optional banner file containing a message to be + # sent to clients before they connect, such as "/etc/issue.net" + DROPBEAR_BANNER="" + # RSA hostkey file (default: /etc/dropbear/dropbear_rsa_host_key) + #DROPBEAR_RSAKEY="/etc/dropbear/dropbear_rsa_host_key" + # DSS hostkey file (default: /etc/dropbear/dropbear_dss_host_key) + #DROPBEAR_DSSKEY="/etc/dropbear/dropbear_dss_host_key" + # Receive window size - this is a tradeoff between memory and + # network performance + DROPBEAR_RECEIVE_WINDOW=65536 + Afterwards, you can deactivate openssh with + update-rc.d ssh remove + or uninstall it: + apt-get remove openssh-server + ---- + $Id: VPS_Debian.html,v 1.19 2018/02/22 02:06:34 slugmax Exp $ \ No newline at end of file diff --git a/dump/VPS_NetBSD.html.docuwiki b/dump/VPS_NetBSD.html.docuwiki new file mode 100644 index 0000000..c79c2b2 --- /dev/null +++ b/dump/VPS_NetBSD.html.docuwiki @@ -0,0 +1,123 @@ +{{http://sdf.org/tutorials/images/NetBSD.png}} + +====== NetBSD on SDF VPS ====== + +===== Contents ===== + + * [[#first_steps|First Steps]] + * [[#user_accounts|User Accounts]] + * [[#system_clock|System Clock]] + * [[#networking|Networking]] + * [[#pkgsrc|pkgsrc]] + * [[#tips|Miscellaneous Tips]] + * [[#references|References]] + +===== First Steps ===== + +==== User Accounts ==== + +After you have installed and started your NetBSD VPS, go to the console and log-in as user root with the default password, "root". + +One of the first things you will want to do is change the default root password by typing "passwd" at the prompt. Don't forget this password as there is currently no way to recover it. + +It is also a good habit to create a regular user account for working, using "su" to obtain root privileges as needed. To create a regular user account which is part of the administrative "wheel" group: + + useradd -m -G wheel <username> + +Then immediately set its password with: + + passwd <username> + +This user will be in the "wheel" group and will be able to perform administrative tasks by runing "su" to obtain superuser privileges using the root password. + +==== System Clock ==== + +It is customary on UNIX systems for the system clock to be set to UTC. To set the local time zone, find your zone file in "/usr/share/zoneinfo/" and link to it at "/etc/localtime" as follows: + + ln -fs /usr/share/zoneinfo/Europe/Helsinki /etc/localtime + +==== Networking ==== + +Look at the first line of your control panel at vps.sdf.org and note YOUR_HOSTNAME (e.g. netbsd99), EXTERNAL_IP (e.g. 205.166.94.nnn), and INTERNAL_IP (e.g. 10.1.0.nnn): + + VPS Maintenance Shell for netbsd99 (205.166.94.nnn / 10.1.0.nnn) + -------- ------------- ---------- + + | | | + | EXTERNAL_IP INTERNAL_IP + | + YOUR_HOSTNAME + +Open /etc/rc.conf in an editor and, replacing the text YOUR_HOSTNAME, EXTERNAL_IP, and INTERNAL_IP with your own actual host name and IP numbers, add: + + hostname=YOUR_HOSTNAME.sdf.org + defaultroute=205.166.94.1 + auto_ifconfig=yes + ifconfig_xennet0="inet EXTERNAL_IP netmask 0xffffff00" + ifconfig_xennet1="inet INTERNAL_IP netmask 0xffffff00" + +Then put this in /etc/resolv.conf: + + nameserver 205.166.94.20 + +Add this to /etc/hosts: + + EXTERNAL_IP YOUR_HOSTNAME.sdf.org YOUR_HOSTNAME + +Run/Type: + + /etc/rc.d/network restart + +===== pkgsrc ===== + +On NetBSD you can mount a pre-built (and still in progress) pkgsrc DESTDIR. Following the procedures below will effectively install the 2000+ included packages on your virtual NetBSD system. + +Note that at the moment the pre-built pkgsrc assumes that its path is /pkgshare. Some programs won't work under a different prefix since they won't be able to find their shared libraries. + + mkdir -p /pkgshare + rmdir /usr/pkg + ln -s /pkgshare /usr/pkg + rm -rf /var/db/pkg + ln -s /pkgshare/db/pkg /var/db/pkg + mount -t nfs 10.1.0.1:/pkgshare /pkgshare + export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin + +It is read only. + +To set this up on boot, execute the steps above and then: + + echo "nfs_client=YES" >> /etc/rc.conf + echo "rpcbind=YES" >> /etc/rc.conf + echo "10.1.0.1 vps" >> /etc/hosts + echo "vps:/pkgshare /pkgshare nfs ro" >> /etc/fstab + echo "export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin" >> /etc/profile + +Note that you cannot use both this pre-built pkgsrc and pre-built packages from netbsd.org. It may be possible to set the system up so you can, however this is best left to the experienced NetBSD administrator. + +===== Miscellaneous Tips ===== + +==== Free up disk space by removing unwanted sets ==== + +The default image comes with all distribution sets installed. You can free up some disk space by removing the ones you don't need. + +First, check which distribution sets are installed: + + ls /etc/mtree + +Decide which sets you want to remove and examine their contents. For example, to remove games and all X11 sets: + + for set in games xbase xcomp xetc xfont xserver ; do \ + tar tzf /usr/INSTALL/$set.tgz | sed -e 's/^\.//' >> /tmp/purgelist ; \ + done + +After examining "/tmp/purgelist" and removing any files you want to keep, do: + + cat /tmp/purgelist | xargs rm + +===== References ===== + + * [[http://www.netbsd.org/docs/guide/en/|The NetBSD Guide]] + * [[http://wiki-static.aydogan.net/The_NetBSD_System_Manager%27s_Manual|The NetBSD System Manager's Manual]] + +---- + $Id: VPS_NetBSD.html,v 1.23 2018/02/22 15:12:01 slugmax Exp $ \ No newline at end of file diff --git a/dump/VPS_NetBSD_OpenLDAP.html.docuwiki b/dump/VPS_NetBSD_OpenLDAP.html.docuwiki new file mode 100644 index 0000000..a88d89f --- /dev/null +++ b/dump/VPS_NetBSD_OpenLDAP.html.docuwiki @@ -0,0 +1,240 @@ +====== Installing an OpenLDAP Server on a NetBSD VPS ====== + +**Note: This tutorial assumes you’ve already followed the [[http://sdf.org/?tutorials/VPS_NetBSD|NetBSD on SDF VPS]] tutorial to set up networking, the time zone and pkgsrc using the SDF VPS pkgsrc.** + +An LDAP server can be used for an endless number of things. Essentially, LDAP is just an object-oriented hierarchical database. Common uses include authentication and authorisation, host management, a backend for Kerberos, a backend for a DHCP server, a shared address book and forming a part of some public key infrastructures. + +In this tutorial, I will be setting up the LDAP server to provide authorisation and authentication for a nix client, but the first few stages are the same for almost any application of LDAP. + +The OpenLDAP server is available in the SDF VPS pkgsrc and so the software is already installed, but does require some configuration. + +===== Jargon and Tools ===== + +OpenLDAPThe LDAP server that will be usedSuffixThe suffix appended to all LDAP objects, which normally related to a domain nameRoot DNThe administrative user of the server, with read and write access to all data objects. The password for this user should be kept secure"slapd"The name of the executable of the OpenLDAP server"slappasswd"The name of the executable tool used for creating password hashes"pwd_mkdb"The name of the executable tool that generates the password databases + +===== Initial Setup ===== + +To begin with, we’ll create the chroot environment. Whilst the OpenLDAP server is running, this is the only part of the file system it will be able to see. + +The first step is to create the directories and copy the initial configuration that comes from pkgsrc. + + "# mkdir /var/chroot/openldap + # mkdir /var/chroot/openldap/etc /var/chroot/openldap/var + # cp -r /usr/pkg/etc_example/openldap /var/chroot/openldap/etc/ + # cp -r /usr/pkg/var/openldap /var/chroot/openldap/var/" + +The next step is to create the user and group that the server will run as, and allow for this information to be available in the chroot. + + "# groupadd -g 17 slapd + # useradd -u 17 -g 17 -d /var/chroot/openldap slapd + # grep slapd /etc/master.passwd > /var/chroot/openldap/etc/master.passwd + # pwd_mkdb -d /var/chroot/openldap /var/chroot/openldap/etc/master.passwd + # grep slapd /etc/group > /var/chroot/openldap/etc/group" + +No password needs to be set for the slapd user as no one will ever log in using its username. This disallows logins from that user. + +Finally, we’ll need to set the correct permissions necessary for OpenLDAP to access its data while keeping it secure. + + "# chown -R slapd:slapd /var/chroot/openldap + # chmod -R 700 /var/chroot/openldap/var/openldap/openldap-data" + +===== Initial Configuration ===== + +The next stage involves editing some configuration files so that paths are correct within the chroot and the chroot is enabled with the correct user and group. + +This step also includes setting the password for the root DN (Distinguished Name), the LDAP administrative user. + +Begin by creating a hash of the password you wish to use for the root DN. This should be a secure password, as the root DN can read and write to the database, regardless of any access restrictions that we set up later on. The slappasswd tool is used to do this. + + "# slappasswd -s 'reallysecurepassword' + {SSHA}1LuiLGmSO+EoPA0uk80v4TC5xwacBOWg" + +**Note: The "-s" flag passed here tells "slappasswd" that we want to pass the secret on the command line. If you execute "slappasswd" without any arguments, it will prompt for the password on the terminal allowing you to avoid having the password show up in any logs or in the running process list.** + +You should copy the whole line to your clipboard as we will need it shortly. Then open up "/var/chroot/openldap/etc/openldap/slapd.conf" in your favourite editor. + +The first three lines that need changing are near the top of the file. They start with include, pidfile and argsfile and have a path to a file following them. These paths point to the read-only filesystem of the SDF VPS pkgsrc and not our chroot, so they should be changed like so: + + "include /etc/openldap/schema/core.schema + [...SNIPPED...] + pidfile /var/openldap/run/slapd.pid + argsfile /var/openldap/run/slapd.args" + +Next, we’ll need to set the suffix, the root DN, and the password for the root DN. The suffix is normally formed from your domain name. In this example, the domain name is shiftout.org, and so the suffix should be "dc=shiftout,dc=org". The suffix should then be copied onto the end of the root DN, so in this example, it becomes: "cn=manager,dc=shiftout,dc=org". For the root DN’s password, replace "secret" with the string you copied to your clipboard earlier. + + "suffix "dc=shiftout,dc=org" + rootdn "cn=manager,dc=shiftout,dc=org" + [...SNIPPED...] + rootpw {SSHA}1LuiLGmSO+EoPA0uk80v4TC5xwacBOWg" + +Then there is one final path to modify. This is the directory that OpenLDAP uses for storing its data. Currently, it is set to point at the read-only SDF VPS pkgsrc, so this needs to be changed. + + "directory /var/openldap/openldap-data" + +The final step before running the server for the first time is to configure the rc scripts. These allow for the server to be started on boot. + +First, copy the example rc script for slapd into the "/etc/rc.d" directory. + + "# cp /usr/pkg/share/examples/rc.d/slapd /etc/rc.d/" + +Then edit the new file "/etc/rc.d/slapd" with your favourite editor. + +There are two lines you need to edit here. The line defining where to find "slapd" is fine as the read-only filesystem is fine for executing programs from, it’s only the configuration and data store we needed to move. + +The first line that needs to be edited is the location of the configuration file, which should look like this: + + "required_files="/var/chroot/openldap/etc/openldap/${name}.conf"" + +The second line is the command line arguments that are passed to "slapd" when it is started. This should look like: + + "command_args="-u slapd -g slapd -r /var/chroot/openldap/ -f /etc/openldap/slapd.conf"" + +The "-u" and "-g" flags are used to specify the user and group that "slapd" should be running as. The "-r" flag tells slapd where to chroot, and the "-f" flag tells slapd where to find the configuration file. All configuration files are read after the chroot has happened, which is why the path does not include "/var/chroot/openldap" in it. + +Finally, it is necessary to enable "slapd" in the "rc.conf" file. + + "# echo "slapd=YES" >> /etc/rc.conf" + +You can edit the file manually and add this line if you would like to keep your "rc.conf" organised in some way. + +===== Testing ===== + +Before starting "slapd" as a daemon, it would be wise to first test that it is working fine using debug mode. The following command will start slapd in debug mode with the command line arguments we specified in "slapd"’s rc file. 255 represents the debug level. + + "# /usr/pkg/libexec/slapd -u slapd -g slapd -r /var/chroot/openldap/ -f /etc/openldap/slapd.conf -d 255" + +If you see something similar to: + + "502c06bd slapd starting + 502c06bd daemon: added 4r listener=0x0 + 502c06bd daemon: added 6r listener=0x7f7ffc427180 + 502c06bd daemon: added 7r listener=0x7f7ffc427240 + 502c06bd daemon: select: listen=6 active_threads=0 tvp=NULL + 502c06bd daemon: select: listen=7 active_threads=0 tvp=NULL + 502c06bd daemon: activity on 1 descriptor + 502c06bd daemon: waked + 502c06bd daemon: select: listen=6 active_threads=0 tvp=NULL + 502c06bd daemon: select: listen=7 active_threads=0 tvp=NULL" + +Then you have succeeded in configuring an OpenLDAP to a point where it will start successfully. Press Ctrl+C to stop the server. You can start or stop the server as a daemon using "/etc/rc.d/slapd {start,stop}" just like you would with other daemons on NetBSD. + +**Note: From this point, configuration will become specific to providing authentication and authorisation services for nix clients. If you’re looking to use LDAP for another application, hopefully you’ve got to a point where a more generalised tutorial is able to help you.** + +===== Including extra schemata ===== + +Three schemata will need to be used by "slapd" to enable you to store objects representing users and groups. + +"cosine.schema"Includes “generally useful” objects and attributes (sic)"nis.schema"Includes objects and attributes for use in representing fields from BSD-style flat file authentication and authorisation files"inetorgperson.schema"Includes objects and attributes for representing contact information and organisational information + +These files are included by adding the following three lines underneath the first include we changed earlier in the "/var/chroot/openldap/etc/openldap/slapd.conf" file: + + "include /etc/openldap/schema/cosine.schema + include /etc/openldap/schema/nis.schema + include /etc/openldap/schema/inetorgperson.schema" + +At the end of this file, we’ll also add another index. Searching on non-indexed fields can result in no results being returned, so this is important. + + "index uid eq" + +===== Configuring ACLs ===== + +The sample configuration in "/var/chroot/openldap/etc/openldap/slapd.conf" is sane for using LDAP for authentication and authorisation so this step simply involves uncommenting the following: + + "access to dn.base="" by * read + access to dn.base="cn=Subschema" by * read + access to * + by self write + by users read + by anonymous auth" + +===== A second test ===== + +To ensure that no errors have been made while configuring, it would be a good idea now to run "slapd" again with the debug option. Any errors will be apparent in the output if they have occurred. + + "# /usr/pkg/libexec/slapd -u slapd -g slapd -r /var/chroot/openldap/ -f /etc/openldap/slapd.conf -d 255" + +===== Importing data ===== + +Assuming you’ve got this far with no problems, it’s time to import some data. The data used for interactions with an OpenLDAP server is stored in a text file in LDIF (LDAP Data Interchange Format). Once we have performed this initial import, further interactions can be performed through graphical clients. + +Copy the following example into a text file: + + "# Create top-level object in domain + dn: dc=shiftout,dc=org + objectClass: top + objectClass: dcObject + objectclass: organization + o: shiftOut + dc: shiftOut + description: shiftOut + + dn: ou=people,dc=shiftout,dc=org + objectClass: organizationalUnit + ou: people + + dn: ou=groups,dc=shiftout,dc=org + objectClass: organizationalUnit + ou: groups + + dn: uid=irl,ou=people,dc=shiftout,dc=org + objectClass: inetOrgPerson + objectClass: posixAccount + objectClass: shadowAccount + uid: irl + sn: Learmonth + givenName: Iain + cn: Iain Learmonth + displayName: Iain R. Learmonth + uidNumber: 2000 + gidNumber: 2000 + userPassword: password + gecos: Iain R. Learmonth + loginShell: /bin/bash + homeDirectory: /home/irl + shadowExpire: -1 + shadowFlag: 0 + shadowWarning: 7 + shadowMin: 8 + shadowMax: 999999 + shadowLastChange: 10877 + mail: irl@sdf.org + homePhone: +1 (206) 299 2120 x1388 + title: System Administrator + initials: IRL + + dn: cn=irl,ou=groups,dc=shiftout,dc=org + objectClass: posixGroup + cn: irl + gidNumber: 2000" + +The following is used in this example: + + * Suffix: dc=shiftout,dc=org + * Initial user: irl + * Organisation name: shiftOut + +These three values will need to be changed. Hopefully you can also use common sense to identify names and contact information that will need to be changed. + +Assuming you have saved your LDIF file as "/tmp/ldif", run the following command to import it: + + "ldapadd -D "cn=manager,dc=shiftout,dc=org" -Wx -f /tmp/ldif" + +You will need to replace the bind DN here with the correct root DN and suffix you specified earlier. + +**Note for experienced users: Tools such as "slapadd", "slapcat", etc. work directly on the OpenLDAP database files. As the path for this is set in a configuration file that assumes it’s being used in the chroot, they will not work. Experienced users may decide to setup another "slapd.conf" file for use outside the chroot, but the "ldapadd", "ldapsearch", etc. tools work just as well while the server is running.** + +You can check the import was successful by running: + + "ldapwhoami -D "uid=irl,ou=people,dc=shiftout,dc=org" -Wx" + +Replace the uid and suffix with the ones that you have created. You should see an output similar to: + + "dn:uid=irl,ou=people,dc=shiftout,dc=org" + +If you see this, you have correctly configured a working LDAP server, to which you can add, query, modify, and remove data representing users and groups. + +===== Graphical Client ===== + +Apache Directory Studio provides a graphical browser that you can use to add, query, modify and remove data from your LDAP database. It can be downloaded from http://directory.apache.org/studio/. + +$Id: VPS_NetBSD_OpenLDAP.html,v 1.5 2012/08/16 00:47:07 irl Exp $ \ No newline at end of file diff --git a/dump/VPS_Plan9.html.docuwiki b/dump/VPS_Plan9.html.docuwiki new file mode 100644 index 0000000..25df66c --- /dev/null +++ b/dump/VPS_Plan9.html.docuwiki @@ -0,0 +1,77 @@ +====== Plan 9 on SDF VPS ====== + +{{http://sdf.org/tutorials/images/plan9logo.jpg}} + +==== Note! ==== + +Some parts of this tutorial are copy&paste from Plan 9 wiki because they fit the flow of the writing as they are, so no claim from SDF's users is made over the authorship of such parts, which are clearly labeled as taken from Plan 9's wiki. + +===== Contents ===== + + * [[#install|Install]] + * [[#basics|Basics]] + * [[#know|Things To Know When You Get to Plan 9's shell]] + * [[#networking|Networking]] + * [[#drawterm|Drawterm on Plan 9]] + * [[#applications|A Few Applications]] + * [[#adduser|Adding a User]] + * [[#timezone|Configure Timezone]] + * [[#links|Links (tutorials, videos, etc.)]] + +===== Get involved ===== + +Plan 9 has active comunities which mostly interact by email. You are encouraged to join the [[http://mail.9fans.net/listinfo/9fans|9fans mailing list]] where discussion about Plan 9 and related technologies happen. + +SDF also host a mailling list mainly for sdfers running Plan 9 in one SDF's VPS slice. + +===== SDF Plan9 Boot Camp ===== + +SDF periodically runs a Plan9 Boot Camp which is open to anyone with an SDF user account. This Plan9 Boot Camps are announced on the bboard and are typically a Summer or Fall annual occurence and run for about 3 months. + +Activities of the SDF Plan9 Boot Camp include: + + * Installation or pre-generated Plan9 instance under Xen + * Self Guided Discoveries in: ed, network configuration + * Self Guided Discoveries in: drawterm (from your computer), rio and stats + * Self Guided Discoveries in: acme, sam, abaco, mothra and man + * Self Guided Discoveries in: mapdemo, catclock, juggle and tetris + * Self Guided Discoveries in: 9front and contrib via ftpfs + * Self Guided Discoveries in: 9fans mailing list and faces During the SDF Plan9 Boot Camp you are encouraged to make screenshots and vidoes of your Self Guided Discoveries and share your experiences on plan9-l to inspire others to do the same.===== Install =====After you have been allocated a VPS slice, connect by "ssh //<SDF member ID>//@//<VPS slice>//.sdf.org" (for example, "ssh papa@vps2.sdf.org"; you may omit your SDF member ID and the "@" if you are connecting from your SDF shell account). Your password is the same as your SDF member log-in.At the VPS console and type "x".If asked install from the ISO type "no". At some point there was an option to install from Plan9 iso image; at the time of updating the tutorial it does not ask for that option anymore. + Do you wish to continue? (yes/no) yes + Would you like to install Plan9 yourself from the ISO? (yes/no) + % Copying a fresh plan9 image [PLEASE WAIT] + [COMPLETE] + (continue)After the install ends type "z" and then "r" to restart the instance.===== Basics =====The Plan9 SDF VPS is the only VPS which is provided freely to SDF MetaARPA members. This slice includes cluster access to the SDF Plan9 Community 9p server as well as limited access to the Bell Labs server. It is highly recommend that you get involved in the [[http://mail.9fans.net/listinfo/9fans|9fans mailing list]] and request commit access. With your help, Plan9 at SDF can continue to grow. To request your free Plan 9 VPS, type '//plan9//' at the shell.When your Plan 9 system boots, it will ask you where root is from (via the network, or a local disk). Just hit "[ENTER]" to select local (the default): root is from (tcp, local)[local!#S/sd00/fossil]:Next, you will be prompted to log in. Log in as the default user, "glenda": + user[none]: glenda + time... + fossil(#S/sd00/fossil)...version...time... + init: starting /bin/rc + #m/mousectl: rc: can't open: unknown device in # filename + init: rc exit status: rc 24: error + init: starting /bin/rc + %You will now be sitting at an "rc" prompt, Plan 9's shell.===== Things To Know When You Get to Plan 9's shell ===== + * **ctl-h** is backspace, kind of. **ctl-u** erases the current line. As with backspace, screen output may not be what you expect. + * To exit Plan 9 and be able to return **without** rebooting your server, Press **ctl-]** to close the console, then press 'q' to disconnect. You can return again by **ssh**ing to your allocated VPS server again (see [[#install|above]]) and getting back to the VPS console, and pressing 'c' to connect. + * The only line editor installed by default in the Plan 9 Image. is **//ed//**. For initially setting your DNS below or other tasks before you get DrawTerm running, [[https://www.howtoforge.com/linux-ed-command/|read this tutorial]] for this excrutiating experience (but then you can install DrawTerm). ===== Networking ========= Configuring Your IP Address ====In your control panel at "vps3.sdf.org", note YOUR_IP (e.g. 205.166.94.x) on the top line.Start your server, and log in via the console. (default=glenda)At the "rc" prompt (%), enter: "ip/ipconfig -g 205.166.94.1 ether /net/ether0 YOUR_IP 255.255.255.0"This configuration lasts until you reboot Plan 9. To make this permanent it is recommended to add this line to your /rc/bin/termrc.local file.To exit Plan 9 and be able to return **without** rebooting your server, see [[#know|above]].==== DNS Resolution ====You can get DNS resolution by editing "/lib/ndb/local" and changing: "ip=127.0.0.1 sys=localhost dom=localhost"to "ip=YOUR_IP sys=plan9 dom=plan9 dns=205.166.94.20"Once you've done that, from "rc" type "ndb/cs + ndb/dns -r"This configuration lasts until you reboot Plan 9. To make this permanent it is recommended to add those two lines to your /rc/bin/termrc.local file.To exit Plan 9 and be able to return **without** rebooting your server, see [[#know|above]].===== Drawterm =====Drawterm is essentially a BLIT terminal emulator which allows you to connect to your Plan9 system and load the //rio// windowing system. Rio is a direct successor of UNIX 'layers' and Plan 9 '8½'.At the "rc" prompt (%) in your Plan 9 VPS, enter these two lines. "echo 'key proto=p9sk1 dom=plan9 user=glenda !password=PASSWORD' >/mnt/factotum/ctl + aux/listen1 -t tcp!*!ncpu /bin/cpu -R & + "Replace PASSWORD with the password you want. This password lasts until you reboot Plan 9.To exit Plan 9 and be able to return **without** rebooting your server, see [[#know|above]].==== Getting Started with Drawterm ===={{http://sdf.org/tutorials/images/drawterm.png}}\\ Follow the [[https://web.archive.org/web/20120121090252/http://jgw.tx0.org/howto/building_drawterm.html|instructions]] to download and build Drawterm for your operating system. YOUR_IP must match the IP address described in [[#networking|Networking]].\\ "./drawterm -a YOUR_IP -c YOUR_IP -u glenda"After typing your password, press the right button of your mouse. A menu should appear. Then, release the button over the "New" option.\\ Now, press the right button again near the upper-left corner of drawterm, and drag the mouse to the lower right before releasing the button, drawing a rectangle.\\ You should now have a terminal window. The first thing you should probably do is to type "cat readme.rio" (or read it from [[http://sdf.org/tutorials/misc/readme.rio|here]])===== Plan 9 Applications ========= Browsing the Web ====You can use [[http://lab-fgb.com/abaco/|Abaco]] to browse the web. (Abaco is available in a default Plan 9 system.)You'll need to have your IP configured and DNS working in order to browse the web. After that, you'll have to run "webfs" and **then** "abaco". (You may want to add "webfs" in your "$home/lib/profile" just before plumber and rio; also, if you don't have a "$home/lib/webcookies" file, touch it.){{http://sdf.org/tutorials/images/abaco.png?600px}}When abaco starts, you can go to a webpage by clicking ""New"" with the middle button of the mouse, typing the address in the row below the one with ""Del Snarf Get …"" (see the previous figure: it's the one where the current address is), and pressing "Enter" on your keyboard. You can follow links by clicking on them, as is usual, with the left button (the shape of the cursor won't change, though).===== Adding a User =====You may wish to add a user to your system once you get the hang of things. There is really no need to create a new user when you are first starting out. To create a new user, you will have to connect to the file server console by typing: "con -l /srv/fscons"Now, at the file server prompt, create a new user. Replace USER with what you want your new user to be named: "uname USER USER"You will need to add that user to the "sys" group if you want it to be able to change system configuration files. Again, change USER to what your new user name is: "uname sys +USER"Exit the file server console by typing: "ctrl+\". You will now be at a ">>>" prompt; type "q" to quit.===== Configure Time zone =====**Taken from [[http://plan9.bell-labs.com/wiki/plan9/Installation_instructions/index.html|Plan 9 Wiki Installation Instructions]]**You might want to configure your system's timezone. Figure out in which timezone you are, and then, assuming e.g. you are in the CET zone log in as user adm, then: "cp /adm/timezone/CET /adm/timezone/local"Last, but not the least, you may also want to edit/change the "TIMESYNCARGS" in your "/rc/bin/termrc" or "/rc/bin/cpurc"; for example, to use an NTP service, set it to: "TIMESYNCARGS=(-n 0-north-america.pool.ntp.org)" and reboot. ===== Working in Plan 9 =====TODO check if title worksNow that you are connected to your Plan 9 console with your new user you should run: "/sys/lib/newuser"And setup a password for the user in factotum so you can login from Drawterm.**Taken from [[http://plan9.bell-labs.com/wiki/plan9/Installation_instructions/index.html|Plan 9 Wiki Installation Instructions]]**When you drawterm to a Plan 9 cpu server, your local files will be available at /mnt/term. This means you can freely copy files between Plan 9 and your other os without the use of any additional protocols. In other words, when working with drawterm, your environment is actually a composite of your local os and the Plan 9 system - technically it is a three node grid, because the Drawterm program acts as an ultra-minimal independent Plan 9 terminal system, connecting your host os to the Plan 9 cpu server.===== Useful Plan9 Commands =====While there are many similarities between UNIX and Plan9, there are specific commands which may be unfamiliar to UNIX users. However, some of these commands have their roots in early UNIX systems as well as BTL Research UNIX. + * //**fshalt -h**// - This will gracefully shutdown Plan 9 + * //**ed**// - This archaic line editor is the only one installed by default in the Plan 9 Image. For initially setting your DNS above or other tasks before you get DrawTerm running, [[https://www.howtoforge.com/linux-ed-command/|read this tutorial]] for this excrutiating experience (but then you can install DrawTerm).===== Links ========= Tutorials ==== + * [[http://sdf.org/?tutorials/VPS_Plan9|Plan 9 on SDF VPS]] + * [[https://web.archive.org/web/20120121090252/http://jgw.tx0.org/howto/building_drawterm.html|Building Drawterm on NetBSD-5.x/i386]] + * [[http://www.quanstro.net/newbie-guide.pdf|A Plan 9 Newbie's Guide [PDF]]] + * [[https://web.archive.org/web/20170105023205/http://www.9gridchan.org/plan_9_basics|Plan 9 basics]] + * [[http://doc.cat-v.org/plan_9/misc/rit-intro|RIT Plan 9 introduction]] + * [[https://web.archive.org/web/20170601065710/http://plan9.bell-labs.com/wiki/plan9/UNIX_to_Plan_9_command_translation/index.html|Plan9 commands for UNIX users]]==== Utilities ==== + * [[https://web.archive.org/web/20080616071532/http://cm.bell-labs.com/sys/man/|Manual pages]] + * [[http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.41.3287&rep=rep1&type=pdf|Rc -- A Shell for Plan 9 and UNIX Systems [PDF]]]==== Videos ==== + * [[http://www.youtube.com/watch?v=SoGLU1l7LwY|Narrated Plan 9]] + * [[http://www.youtube.com/watch?v=dopu3ZtdCsg|Plan9 Acme Intro - Part 1]] + * [[http://www.youtube.com/watch?v=2vjD_B__SbQ|Plan9 Acme Intro - Part 2]] + * [[http://www.youtube.com/watch?v=cR96WQ6OR00|Plan9 Acme Intro - Part 3]] + * [[http://www.youtube.com/watch?v=byoznMe8ab4|Acme Mail Demo]] + * [[http://www.youtube.com/watch?v=Pydckb9ZU8Y|Acme Editor Demo]]==== Books ==== + * [[http://lsub.org/who/nemo/9.intro.pdf|Introduction to Operating Systems Abstractions Using Plan 9 from Bell Labs [PDF]]] + ---- + $Id: VPS_Plan9.html,v 1.41 2020/06/16 00:17:20 smj Exp $ \ No newline at end of file diff --git a/dump/agent.html.docuwiki b/dump/agent.html.docuwiki new file mode 100644 index 0000000..dac0b8d --- /dev/null +++ b/dump/agent.html.docuwiki @@ -0,0 +1,31 @@ +====== Using an SSH agent to avoid typing your password ====== + +==== Do not use this tutorial until you [[http://sdf.org/?tutorials/SSH-SDF#public_key|make a unix account accessible via public key authentication following this tutorial]]. ==== + +Not only is typing your passphrase once convenient, you can [[http://xkcd.com/936/|make your password very complicated and only ever type an easy to remember passphrase to access all your accounts]]. + + * Unix + * [[#shell|At the shell]] + * [[#anywm|Any Window Manager]] + * [[#gnome|Gnome]] + * [[#kde|KDE]] + * [[#macos|MacOS X]] + * [[#windows|Windows]] + +===== At the shell ===== + +At any time, you can type\\ \\ " ssh-agent /bin/ksh\\ ssh-add $HOME/private_key.rsa\\ "\\ (you can replace "/bin/ksh" by your favorite shell). Any command issued from then on that uses "ssh" to interact with a server that hosts your public key (e.g. "ssh, sshfs, rsync") will not require a password e.g. \\ \\ " home_pc$ ssh-agent /bin/ksh\\ home_pc$ ssh-add $HOME/public_key.rsa\\ Enter passphrase for /home/user/public_key.rsa:\\ Identity added: /home/user/public_key.rsa (/home/user/public_key.rsa)\\ home_pc$ ssh miku.freeshell.org\\ miku$ "\\ \\ + +===== Any Window Manager ===== + +Arrange to have\\ \\ " ssh-add $HOME/private_key.rsa "\\ \\ run at login (e.g. via $HOME/.xinitrc or as a "Startup Application in Gnome/KDE"). You should get a popup asking for your passphrase. + +===== Gnome ===== + +===== KDE ===== + +===== Mac OS X ===== + +===== Windows ===== + +You may have to change your openssh formatted private key to PuTTY's .ppk format via [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|PuTTYgen]]. \\ \\ $Id: agent.html,v 1.3 2011/09/11 13:31:10 jbaber Exp $ \ No newline at end of file diff --git a/dump/anonradio-dj.html.docuwiki b/dump/anonradio-dj.html.docuwiki new file mode 100644 index 0000000..1d382bf --- /dev/null +++ b/dump/anonradio-dj.html.docuwiki @@ -0,0 +1,108 @@ +====== To DJ on ANONRADIO ====== + +To become a DJ, first you must subscribe to the //anonradio-l// mailing list by sending an email to "majordomo@sdf.org" that says: + + "subscribe anonradio-l" + +Then, send a message to the list and introduce yourself. Tell us about the show you want to do, and request a time-slot — for the current schedule, just visit [[http://anonradio.net|anonradio.net]]. When you are ready to schedule your show, email **//membership//** and you will be given a username, password, mountpoint and server name to stream your show to. Scheduled shows are automatically switched-in by the server. + +Before getting your own show, you may like to try broadcasting during [[http://anonradio.net/openmic/|OpenMIC]]. + +===== Streaming ===== + +There are a variety of tools that can be used to stream to aNONradio from a variety of operating systems. + +Regardless of what software you use, please ensure that your outgoing stream conforms to the following specifications: + + Bit rate: 192 Kbps + Sample Rate: 44.1 KHz + Channels: 2 (stereo) + Format: mp3 + +==== liquidsoap ==== + +It is possible to stream a collection of audio files using liquidsoap: + + liquidsoap 'output.icecast(%mp3, host="anonradio.net", port=8010, + user="YOURSDFUSERNAME", password="YOURICECASTPASSWORD", + mount="/YOURSDFUSERNAME", mksafe(playlist("/path/to/playlist.m3u")))' + +"playlist.m3u" must then contain a list of these files. The above command must be terminated at the end of the show; if not, it will loop, resulting in weird behavior. + +==== Mixxx ==== + +[[https://www.mixxx.org/|Mixxx]] is an open-source cross-platform graphical DJ tool which can stream to Icecast servers, including aNONradio. It is recommended if you are playing tracks from audio files stored on your computer. + +==== butt ==== + +"[[http://danielnoethen.de/|"butt"]] (broadcast using this tool) is an easy to use, multi OS streaming tool. It supports SHOUTcast and Icecast and runs on Linux, Mac OS X and Windows. The main purpose of butt is to stream live audio data from your computers Mic or Line input to an Shoutcast or Icecast server. Recording is also possible. It is NOT intended to be a server by itself or automatically stream a set of audio files." + +Instructions on using "butt" to stream to aNONradio are forthcoming. + +==== Nicecast ==== + +There is [[http://sdf.org/?tutorials/anonradio-nicecast|an SDF tutorial for setting-up Nicecast]] on Mac OS X with iTunes / Skype / whatever else, all with voice-over capability. + +==== Ezstream ==== + +To stream during your timeslot or during openmic, create a playlist of your desired songs: + +"ls -d -1 /PATH/TO/YOUR/MUSIC/*.* >> playlist.m3u" + +Copy the default ezstream config to your home directory: + + mkdir ~/.ezstream + cp /usr/share/doc/ezstream/examples/ezstream_mp3.xml ~/.ezstream/ + +Edit your newly copied config thusly: + + <ezstream> + <url>http://anonradio.net:8010/YOUR_DJ_MOUNT_NAME</url> + <sourceuser>YOUR_DJ_USER_NAME</sourceuser> + <sourcepassword>YOUR_DJ_PASSWORD</sourcepassword> + <format>MP3</format> + <filename>/PATH/TO/YOUR/playlist.m3u</filename> + <svrinfobitrate>192</svrinfobitrate> + <svrinfosamplerate>44100</svrinfosamplerate> + <stream_once>1</stream_once> + </ezstream> + +And start your stream with this command: + +"ezstream -c ~/.ezstream/ezstream_mp3.xml" + +If you are streaming a group of varying format files, you can homogenize them like this: + + <ezstream> + <url>http://anonradio.net:8010/YOUR_DJ_MOUNT_NAME</url> + <sourceuser>openmic</YOUR_DJ_USER_NAME> + <sourcepassword>YOUR_DJ_PASSWORD</sourcepassword> + <format>MP3</format> + <filename>/PATH/TO/YOUR/playlist.m3u</filename> + <svrinfobitrate>192</svrinfobitrate> + <svrinfosamplerate>44100</svrinfosamplerate> + <stream_once>1</stream_once> + <reencode> + <enable>1</enable> + <encdec> + <format>MP3</format> + <match>.mp3</match> + <decode>/usr/pkg/bin/madplay -v -Q -i -b 16 -R 44100 -S -o raw:- @T@</decode> + <encode>/usr/pkg/bin/lame --preset cbr 192 -r -s 44.1 --bitwidth 16 - -</encode> + </encdec> + </reencode> + </ezstream> + +There are also[[http://mustafejen.freeshell.org/ezpulse.html|instructions]] for streaming with ezstream on Debian using PulseAudio. + +===== Streaming Metadata Manually ===== + +During your show you can login here: + +http://anonradio.net/playlist/ + +Login with your anonradio.net streaming credentials. You will ONLY be able to login during your show. + +This feature will be helpful to DJs who stream from analogue devices like turntables, cassettes and such that don't send playlist MetaData. + +$Id: anonradio-dj.html,v 1.9 2020/06/15 06:14:02 smj Exp $ \ No newline at end of file diff --git a/dump/anonradio-nicecast.html.docuwiki b/dump/anonradio-nicecast.html.docuwiki new file mode 100644 index 0000000..85aac9c --- /dev/null +++ b/dump/anonradio-nicecast.html.docuwiki @@ -0,0 +1,73 @@ +====== Setting up Nicecast on a Mac to work with Skype, iTunes, and whatever other app you want, all at once (plus voice-over!) ====== + +===== I. Set system input/output to something that won't feed back ===== + +In my case I'm using a Logitech USB headset (mic plus earphones), so I go into my System Preferences' Sound section and choose that headset for both input and output. + +For Nicecasting purposes I find it's better to control your mic gain at the system level. On Mac OS X, you can click the mic icon at the right of the input volume slider to move the input (USB mic, in my case) sensitivity all the way up, and click the similar lefthand icon to move it all the way down. + +{{http://sdf.org/tutorials/images/nicecast-systemaudio.png}} + +Keep this "System Preferences > Sound" window open. If you don't have a headset then you can probably use audio jack earphones and your computer's built-in microphone. Or, just a USB mic plus audio jack earphones. Etc. The idea is to prevent the computer's input from taking in the computer's output (feedback). + +===== II. Open Nicecast and set it up ===== + +Nicecast has four windows: + +**1.The Broadcast window**, which has several sub-areas, each activated by a button at the bottom of the window. The first button, "Source", is important -- you'll want to select "System Audio" from the drop-down menu there, and if it's your first time doing this then probably Nicecast will direct you to download an add-on program that enables system audio to be captured (it did this for me). The point of the "System Audio" option is that all outbound audio in your computer is fed into Nicecast and broadcasted, so, for example, you can use the audio from a few different applications at once. Other options on that dropdown are "Application", for specific and exclusive use of a program like Skype or iTunes, and then "Audio Device" for a some specific system-level audio input/output path (I have never used "Audio Device"). + +{{http://sdf.org/tutorials/images/nicecast-broadcast.png}} + +If you're dealing with only one application such as Skype, then it would be good to check the "Include Audio Inputs" box under "Advanced", so Nicecast can hear you talking at all times and not just your conversation partner. However in this tutorial I'm primarily concerned with the "System Audio" dropdown option, which doesn't have any advanced options itself. + +**2.The Server window**, which is where you control how Nicecast connects on a network. It has a "Built-In Server" option that allows you to broadcast from your own IP address and enables others to connect to you and hear you without involving a third party such as SDF; I have never tried this. However, I use the built-in server to test my setup, because it behaves the same way as a connection to the SDF ANONRADIO server. So while you're fiddling around you can use the built-in server, and then when it comes time to present your show you can switch to ANONRADIO, with the round radio buttons in the server pop-out drawer, controlled by little right and left buttons toward the top of the Server window. + +{{http://sdf.org/tutorials/images/nicecast-server.png}} + +The options in the server window should look something like those above, with your username instead of "mjt" and the password given to you for ANONRADIO instead of my blanked-out password. Of course if you don't have the ANONRADIO server in the Nicecast server drawer, you'll first want to create it by clicking "+". + +**3. The effects window** + +{{http://sdf.org/tutorials/images/nicecast-effects.png}} + +Along with the "Gain" box at the top left (move it all the way to the right, probably, to 238%) you'll just need one effect: VoiceOver; maybe you can play with some other effects but I don't find them necessary or desirable. To add VoiceOver, click the first, top-left space in the Effects window where it says "Click here to insert effect", and choose "VoiceOver" from the dropdown "4X Effect" submenu. You can try playing with the VoiceOver effect's additional gain controls if it seems like you need to (especially after you check your archived audio file...see below). + +{{http://sdf.org/tutorials/images/nicecast-crossfade.png}} {{http://sdf.org/tutorials/images/nicecast-duck.png}} + +Directly on the lower left of the VoiceOver plugin, there's a tiny nonstandard button that says "EDITOR". Click it, and a window pops up, with three subsections: 1. Audio Input -- leave this alone. 2. Crossfade -- put the slider in the middle. 3. Auto Ducking -- move the slider all the way to the right, to "Off" (otherwise, constantly trying to overcome the mic's threshold is tiresome for the voice -- it's easier just to control the mic at the computer system level). Also on this window is the "Start" button for the voiceover. Go ahead and start it now, if you like. Sometimes order of operations seems to matter in Nicecast broadcasting, and sometimes it does not; a good general order seems to be: system, then Nicecast, then audio programs. That said, sometimes stopping then restarting some program or service within a program is helpful (like the VoiceOver plugin, or even clicking on the system level mic input controls to "wake it up"). + +**4. The archiving window** + +{{http://sdf.org/tutorials/images/nicecast-archiving.png}} + +This controls parameters for producing an mp3 recording of your broadcasts. This is useful for checking your levels and just making sure everything works and sounds the way you want it to. Click the "Archive" button to turn archiving on, if it's not on already. In this window you can also control some things like bitrate, channels, type, and most importantly where the archive file is saved. + +===== III. Put on your headset ===== + +===== IV. Start your audio-generating programs ===== + +In this example, these are Skype and iTunes. Hopefully you heard the Skype startup sound through your headset. Play an mp3 in iTunes for a few seconds just to see that that sounds through the headset too. + +You should double check your Skype preferences and under "Audio/Video" and make sure your headset, or whatever you've decided to use, is selected for everything. Mac OS X has system level audio controls, and then programs have program level audio controls, and I've found it's best to pay attention to both even if it seems like you don't need to. + +===== V. Get ready to start broadcasting... ===== + +Nicecast should start archiving immediately if you've set that option on the Archiving window -- I save the archive on my desktop. On the Broadcast window: "Source" should be system audio..."Info" should be filled in if you want anonradio.net:8000 to read correctly..."Titles" won't register unless your source is //only// an audio player like iTunes..."Quality" is whatever you want...ignore "Share"...and "Effects" is superfluous. + +{{http://sdf.org/tutorials/images/nicecast-broadcast.png}} + +Click "Start Broadcast" on the Nicecast Broadcast window! The archived mp3 should show up on your desktop. Play an mp3 in iTunes, and then check to see if you can hear it and if the level meter in the Nicecast Broadcast window is moving appropriately. + +{{http://sdf.org/tutorials/images/nicecast-voiceover.png}} + +Make sure your VoiceOver plugin is started. Make sure your mic input is turned up at the system level in your "System Preferences > Sound" window. You should hear the iTines mp3 and an echo-back of your own voice through your headset. Make sure the LeveL indicator in the Nicecast Broadcast window is active, depending on what audio is being fed to it. + +Now let's try Skype. While letting iTunes play on, go to Skype, call your "Skype call testing service" contact, and do what it says (leave a message). Probably you will hear iTunes automatically turn itself down while Skype is going -- I think this is a function of Skype, and it's possible this can be changed in preferences. Yep -- under Preferences > General, if you like, de-check "pause iTunes during calls". + +You can try playing with other apps like video games, a movie player, etc etc, and locally outputting the sound. Nicecast should capture it all and send it out, along with your voice-over! + +===== VI. At some point, stop broadcast ===== + +You should have an archive of your broadcast in the form of an mp3 file waiting for you on your desktop or wherever you chose to save it. When you're ready to broadcast during your time slot on SDF ANONRADIO, then in the Nicecast server window, select "ANONRADIO" rather than "Built-In Server". If you want, you can turn archiving off before you broadcast remotely (especially as your show will be archived at anonradio.net/archive). + +$Id: anonradio-nicecast.html,v 1.1 2015/08/06 14:40:28 smj Exp $ \ No newline at end of file diff --git a/dump/anonradio.html.docuwiki b/dump/anonradio.html.docuwiki new file mode 100644 index 0000000..0bab620 --- /dev/null +++ b/dump/anonradio.html.docuwiki @@ -0,0 +1,95 @@ +====== ((( o ))) | | | ---===--- ANONRADIO ====== + +ANONRADIO (formerly SDF Radio) is a streaming "internet radio station". + +To see the program schedule, visit http://anonradio.net + +===== To Listen to ANONRADIO ===== + +The easiest way to start listening is to visit http://anonradio.net/listen in your web browser, and launch the web player. + +Alternatively, you can use your favorite media player to open the live stream at "http://anonradio.net:8000/anonradio" + +Don't know how to do that? Fear not! Below are instructions for how to do that with some popular media players. + +==== On Windows ==== + +=== VLC media player (http://videolan.org) === + + - File -> Open Network + - enter: http://anonradio.net:8000/anonradio + +To get around occasional drops in the stream which may occur when DJs/programs are changing, select Playback -> Repeat One. + +==== On MacOSX ==== + + * Click on the M3U play icon on http://anonradio.net, or use http://anonradio.net:8000/anonradio.m3u + +==== On Linux or BSD ==== + +=== VLC media player (http://videolan.org) === + +Using the GUI: + + - Go to Media → Open Network Stream + - Enter the address http://anonradio.net:8000/anonradio and press the **Play** button + +Using the ncurses interface ("nvlc"): + + - Press P to show the playlist screen. + - Press A to add an item to the playlist + - Enter http://anonradio.net:8000/anonradio in the "Open:" field and press Enter + +Or, if you start VLC from the command line, you can specify the stream to open: + + $ vlc "http://anonradio.net:8000/anonradio" + +=== mplayer (https://www.mplayerhq.hu) === + +At your shell, type: + + $ mplayer http://anonradio.net:8000/anonradio + +=== mpv (http://mpv.io) === + +This one's a little different — wait, no it's not. At your shell, type: + + $ mpv "http://anonradio.net:8000/anonradio" + +=== ncmpcpp (http://rybczak.net/ncmpcpp/) === + + - In "ncmpcpp", press 2 to access playlists + - Press a to add a station. + - Add "http://anonradio.net:8000/anonradio" and press enter. + +=== SoX ([[http://sox.sourceforge.net/|http://sox.sourceforge.net]]) === + +At the shell: + + $ play -t mp3 http://anonradio.net:8000/anonradio.m3u + +note: the "play" command is part of the "SoX" program. + +To make it more useful for ANONRADIO use, it's helpful to put it into a shell script like so: + + "#!/bin/sh -e + # anonradio - streams SDF ANONradio via sox(1); + # retries automatically if stream dropped + if [ -x $(which sox) ]; then + trap 'printf "\n anonradio stream terminated... \n" && exit 0' 2 + clear + while [ 1 ] + do clear + printf "\nSDF ANONradio - http://anonradio.net - ^C to cancel\n" + sox -V0 -t mp3 http://anonradio.net:8000/anonradio.m3u -d + sleep 5 + done + else + echo 'sox(1) not found or not executable - exiting...' + exit 1 + fi + exit 0" + +The above script will automatically reconnect to the anonradio stream if it gets dropped due to a DJ change or network abberation. Stream is terminated using the CNTL+C keys. See the "sox(1)" manpage for the full list of options. + +$Id: anonradio.html,v 1.17 2019/01/15 05:34:50 jgw Exp $ \ No newline at end of file diff --git a/dump/ascii-gaming.html.docuwiki b/dump/ascii-gaming.html.docuwiki new file mode 100644 index 0000000..3af947b --- /dev/null +++ b/dump/ascii-gaming.html.docuwiki @@ -0,0 +1,127 @@ +====== ASCII Gaming on SDF... ====== + +Who says you need to shell out $500US for a video card to play a decent game? + +==== Contents ==== + + - [[#intro|Introduction]] + - [[#tips|General Tips]] + - [[#category|Games by Category]] + * [[#adventure|Text Adventure]] + * [[#rpg|RPG / Dungeon]] + * [[#puzzle|Puzzle]] + * [[#arcade|Arcade / Action]] + * [[#board|Board / Card games]] + * [[#animation|ASCII Animation]] + * [[#text|Jokes / Random Text]] + - [[#comgames|Dopewars, Mazewars, and Netris]] + - [[#credits|Credits]] + +---- + +===== [[|Introduction]] ===== + +Long before today's multi-million color pallets and 3d rendering engines there was one color and a TTY. + +That is not to say, however, that text games are "old" or "outdated" or that games that were created decades ago cannot still be fun. Not only are some of the older ASCII games still incredibly playable and enjoyable today but there are many ASCII games still in active development with new ones being created all the time. + +SDF has a good selection of text based games for your enjoyment with many genres from which to choose. Within those categories you'll also find a diverse selection of games. Maybe you are looking for a quick hit of space invaders while your code compiles. Perhaps you'd like to start a game of nethack which could take you many session over many months to complete. If you'd like to sit and play a game of tetris by yourself SDF can accommodate you but if you'd rather interact with other SDFers in a game of mazewar or netris those options are also available. No matter what your preferences are, no matter what your current mood is, odds are good that SDF will have something for you. + +===== [[|General Tips]] ===== + +All games are started by typing the game's name at the command line on the appropriate system. You may be able to get information on command line options and game play by typing //man gamename// on SDF or //help gamename// on twenex.org(TOPS-20). + +Please keep in mind that many of these games utilize the "vi" keys for directional movement. + + k (up) + h (left) l (right) + j (down) + +Also, most games contain some sort of in game help. To get the most out of your ASCII gaming experience, it is advised that you consult this during your first time playing a particular game. This is especially useful for text adventure and RPG/Dungeon games as the author has frequently written a back-story which is typically both entertaining and useful during game play. + +Did you play a game on SDF and loved it? Hated it? Then use the //"game-review"// command at the SDF shell to submit a review for [[http://ascii-games.org|ascii-games.org]]. Your reviews will help others find a game that suits their gaming tastes. + +===== [[|Games by Category]] ===== + +Here is a rough categorization of the games available on SDF and SDF's TOPS-20 system. A complete list of games on SDF can always be found by typing //"games"// at the shell prompt. TOPS-20 games can be listed by typing //"help games"// on twenex.org. Please visit [[http://ascii-games.org|ascii-games.org]] for user submitted reviews of these games. + + * ==== [[|Text Adventure]] ====Text adventure games are interactive fiction adventures where the user must navigate the game based on the text based description of the player's in-game surroundings. The lack of graphics helps to keep text based adventure games feeling fresh even decades after their initial release. + * [[telnet://mud.sdf.org:4000|SDFmud]] - SDFmud makes its triumphant return! + * phantasia - An interterminal fantasy game. Gain experience killing monsters and other players! + * advent - 430 pt. Colossal Cave (Version II). (TOPS-20) + * dinkum - Adventure in Australia. + * tess - Beyond the tesseract, an abstract adventure. + * crime -A CRiME based adventure game. (TOPS-20) + * haunt - Can you solve the mystery of Chez Moose? BONG! (TOPS-20) + * mdl105 - Write your own adventure games! (TOPS-20) + * zork - The classic underground maze/puzzle. (TOPS-20) + * ==== [[|RPG / Dungeon]] ====These games involve navigating some sort of dungeon or maze. Unlike text adventures, these games often (though not always) contain some sort of ASCII-graphical interface. These games are usually a bit more free-flowing than their text-based counterparts as well. Many of these games allow multiplayer interactive play. These games are marked with an (M). + * dopewars - multi-user virtual urban life. (M)[[index.cgi?tutorials/ascii-gaming#comgames|[see note below]]] + * mdg - John Gonnerman's MultiUser Dungeon Game. (M) + * nethack - Can you find the Amulet of Yendor and survive? + * rogue - Before there was nethack, there was rogue. + * [[http://thxmoo.org|thxmoo]] - SDF's very own MOO!(M) + * hunt - multi-user maze/shoot. + * mazewar - A System V UNIX version of the classic. (M)[[index.cgi?tutorials/ascii-gaming#comgames|[see note below]]] + * cave - Multiplayer Dungeon Game. (TOPS-20)(M) + * ==== [[|Puzzle]] ====Puzzle games rely on the player's critical thinking and problem solving skills to complete. + * greed - How far will your greed take you? + * c4 - Connect Four. + * life - jpf's life simulator for SDF. + * othello - Strategy game similar to GO. + * tetris - A timed 2 dimensional puzzle + * netris - Head to Head tetris.(M)[[index.cgi?tutorials/ascii-gaming#comgames|[see note below]]] + * tttt - tic-tac-toc-toe with wraparound edges. + * robots - The robots are programmed to get you. + * torus - Faster, more intelligent robots are programmed to get you. + * zombies - The zombies are programmed to get you. + * manhunt - Can you escape from the LUGIMEN cops of ARCTURUS IV? (TOPS-20) + * wumpus - Can you slay the suckerfooted WUMPUS? (TOPS-20) + * sst - Super Star Trek. Can you protect the Federation from total annihilation? + * ==== [[|Arcade / Action]] ====Arcade type games involve real-time interaction. You'll have to dodge, duck, dip, dive and dodge your way to victory in these games. + * atc - Air Traffic Controller, not really arcade, but real real-time! + * invaders - Space Invaders. + * lander - Can you land the lunar module (LEM)? + * ski - Dodge trees and a snowman while you ski. + * snake - Collect $ while avoiding a ferocious snake. + * worm - You are a worm that eats numbers and becomes unwieldy. + * moon - Jochen Voss's moon-buggy. + * packman - Very cool ASCII packman for true VT100. (TOPS-20) + * ==== [[|Board / Card Games]] ====Just what the title says. + * bj - Black Jack + * knight - Knight's tour matrix. + * bkg - CMU's Multi-player/spectator Backgammon(TOPS-20) + * checkers - Checkers, you vs. computer. (TOPS-20) + * gin - The card game GIN. (TOPS-20) + * tech - TECH Chess. (TOPS-20) + * tech2 - TECH2 Chess. (TOPS-20) + * ==== [[|ASCII Animation]] ====Short ASCII movies. + * aybabtu - sdf's ALL YOUR BASE ARE BELONG TO US! + * linux - Linux massacre simulator. + * suicide - Animated suicide trio. + * ==== [[|Jokes / Random Text]] ====These "games" output random jokes, one-liners, quotes, or other information. Please be advised that some of these might output text that some would consider offensive. These programs have been labeled (R). + * oneliner - SDF one-liners .. since 1987 + * smj - Display quips and commentary by your sysadmin. + * fortune - Print a random, hopefully interesting, adage. + * cookie - Fortune Cookies. (TOPS-20) + * crude - Random text Generator. (TOPS-20)(R) + * doit - Subject 'do it' Adverb. (TOPS-20)(R) + * fortune - yet another fortune cookie. (TOPS-20) + * kanji - Not quite kanji, but MRC thinks so. + * limerick - Very lewd limericks. (TOPS-20)(R) + * limrck - More lewd limericks. (TOPS-20)(R) + * moon - Phase of the moon. (TOPS-20) + * tingle - Nearly lewd, but requires imagination. (TOPS-20) + * today - A history lesson. (TOPS-20) + +===== [[|Dopewars, Mazewars, and Netris]] ===== + +A special note for Dopewars, Mazewars, and Netris: + +These games are fairly popular. They represent a good way to have fun and interact with fellow SDFers. Though they can be started from the command line, the best way to start a multiplayer game of dopewars, mazewars, or netris is to hop into SDF's [[http://sdf.lonestar.org/index.cgi?tutorials/comnotirc|COMMODE]] by typing //com// at the shell. You can then find other's to play with and launch those games directly from com. + +===== [[|Credits]] ===== + +Much information contained herein was gleaned from //"games"//, //"help games"//(TOPS-20), and [[http://ascii-games.org|ascii-games.org]]. Much thanks to the maintainer(s) of those resources. + +$Id: ascii-gaming.html,v 1.10 2012/05/28 23:20:43 credmon Exp $ \ No newline at end of file diff --git a/dump/att605.html.docuwiki b/dump/att605.html.docuwiki new file mode 100644 index 0000000..b8af780 --- /dev/null +++ b/dump/att605.html.docuwiki @@ -0,0 +1,26 @@ +[[https://sdf.org/tutorials/images/att605-4.jpg|{{https://sdf.org/tutorials/images/att605-4.jpg?30%}}]] + +**//The SDF Travelling AT&T 605 UNIX Terminal//** + +=== What is it? === + +This is a former terminal used on the AT&T 3B2/500 (retired 1998). It has been modified to work as a stand alone computer using a Raspberry Pi Zero W. Just give it a WIFI/hotspot and coordinate with SDF to use it at a vintage computer festival and help spread awareness of SDF's past as well as what we're doing today. + +=== How do I get it? === + +The terminal can be borrowed for up to 2 weeks. It is shipped in a double box with signage, an ipod/headphones (for the NPR story) and an assortment of SDF stickers and CDs to give away. To reserve the terminal for use at your event, contact 'membership' and provide full details. Please be sure to give enough lead time, preferrably 2 weeks prior to your event. + +=== I wanna use it! Where will the SDF Travelling AT&T 605 UNIX Terminal be next? === + + * Mar 23-24, 2019 - Seattle, WA - Vintage Computer Festival Pacific Northwest //**COMPLETED**// + * May 3-5, 2019 - Wall, NJ - Vintage Computer Festival East //**COMPLETED**// + * Jul 10, 2019 - Seattle, NJ - USENIX UNIX50th @ Living Computers //**COMPLETED**// + * Aug 3-4, 2019 - Mountainview, CA - Vintage Computer Festival West //**COMPLETED**// + * Sep 14-15, 2019 - Elmhurst, Il - Vintage Computer Festival Midwest //**COMPLETED**// + * Nov 6, 2019 - Manhattan, NY - Suspenders NYC - Install Fest //**COMPLETED**// + * Dec 4, 2019 - Brooklyn, NY - NYC*BUG Holiday Party at Boat Bar //**COMPLETED**// + * Mar 19-22, 2020 - Tokyo, Japan - AsiaBSDcon - Tokyo University**CANCELLED**=== Technical Information ===**Configuration / New setup:**\\ Login as the user 'pi' with the randomly generated password and run 'sudo raspi-config'. This will allow you to setup the network once you're on site. Enter your SSID and passphrase through this dialog**Usage:**\\ While featuring raspian isn't really the point, you could use the terminal to feature local programs. If you login as user 'menu' password 'menu' and you have a network, you'll be connected to the Living Computer Museum's TTY service which will then allow you to connect to several vintage machines. Logging in as 'sdf' will take you to the old AT&T 3B2/500 when it is running in Seattle, WA (can be arranged).It also features sdfer Seth Morabito's AT&T 3B2/400 emulator which is a bit of a surreal experience - just login as '3b2' to spin up a virtual historical SDF.The terminal does not have a battery installed (due to leakage) so when you turn it on, it will default to 1200 7E1 with function key labels on. You'll want to set it to 9600 8N1 with labels off.[[https://sdf.org/tutorials/images/att605-6.jpg|{{https://sdf.org/tutorials/images/att605-6.jpg?30%}}]]**//The SDF Travelling AT&T 605 UNIX Terminal Setup Screen//////**=== Weight and Dimensions of the shipping box === + * 40 lbs + * 20 x 20 x 24 in + * Terminal goes into the inner box. There is a piece of foam to craddle the back + * The keyboard can be wrapped up outside the box $Id: att605.html,v 1.9 2020/02/26 15:32:52 smj Exp $ \ No newline at end of file diff --git a/dump/basic-language.html.docuwiki b/dump/basic-language.html.docuwiki new file mode 100644 index 0000000..d9d0a8d --- /dev/null +++ b/dump/basic-language.html.docuwiki @@ -0,0 +1,118 @@ +===== BASIC ===== + +=== The basics of BASIC === + +BASIC, which stands for **B**eginners **A**ll-Purpose **S**ymbolic **I**nstruction **C**ode is a programming language which was created at Dartmouth University by John Kemeny and Thomas Kurtz in the early 1960's. BASIC's authors intended to create a programming language and environment which would be useful to people who's primary interest was something other than computer programming. It was intended to be used by average users, scientists, and programming students alike. BASIC was instantly popular among the students and faculty of Dartmouth, and it saw rapid adoption on other systems. When the microcomputer revolution started to take hold in the 1970's and 1980's, BASIC was the default user environment of choice. As a result, many of today's programmers cut their teeth on BASIC. This tutorial will help you get started with this wonderful little language. BASIC remains a very easy to learn language, and it is great for writing small programs. Best of all, a lot of the concepts in BASIC transfer to other languages, so this can serve as a great jumping off point for your programming career! + +One of the difficulties in learning BASIC lies in the wide array of BASIC compilers and interpreters that are currently in circulation. Each one of these programs comes with their own nuances and extensions to the BASIC programming language. The good news is that there is a lot of commonality between the various versions of BASIC, and once you've gained familiarity with one you can move to another pretty quickly. Best of all, there is a common thread which runs through all the various BASICs, and that is where we will begin. We'll start with a minimal subset of the language, one which will get you up and running with all the interpreters available on SDF. + +Let's start with a simple working example. A classic one which children the world over have typed into computers since the dawn of the 80's! + + 10 PRINT "HELLO" + 20 GOTO 10 + +If this is run through a BASIC interpreter, it will have the following output: + + HELLO + HELLO + HELLO + HELLO + .... and so on off into infinity + +In fact, why don't we try this out in one of our several BASIC interpreters! Go ahead and fire up bwbasic. To do this, just type "bwbasic" at the sdf prompt. Type in the program listed above, and then type RUN and press enter. Once you've been greeted enough times, press Ctrl-C to halt the program. The hole session should look like this: + + ######## ## ## ## ## ### ######## ######## ######## + ## ## ## ## ## ## ## ## ## ## ## ## ## + ## ## #### ## ## ## ## ## ## ## ## ## + ######## ## ## ## ## ## ## ## ###### ######## + ## ## ## ## ## ## ######### ## ## ## ## + ## ## ## ## ## ## ## ## ## ## ## ## + ######## ## ### ### ## ## ## ######## ## ## + + ######## ### ###### #### ###### + ## ## ## ## ## ## ## ## ## + ## ## ## ## ## ## ## + ######## ## ## ###### ## ## + ## ## ######### ## ## ## + ## ## ## ## ## ## ## ## ## + ######## ## ## ###### #### ###### + + Bywater BASIC Interpreter, version 3.00 + Copyright (c) 1993, Ted A. Campbell + Copyright (c) 1995-1997, Jon B. Volkoff + Copyright (c) 2014-2015, Howard Wulf, AF5NE + + bwBASIC: 10 PRINT "HELLO" + bwBASIC: 20 GOTO 10 + bwBASIC: RUN + HELLO + HELLO + HELLO + HELLO + HELLO + HELLO + HELLO + HELLO + HELLO + HELLO + HELLO + Program interrupted at line 10 + bwBASIC: + +To exit bwbasic, just type "quit" and press enter. + +=== Structure of BASIC Lines of Code === + +Ok, so let's unpack what we just did a little bit. The basic layout of a BASIC statement works like this: + + LINE_NUMBER COMMAND PARAMETERS + +Each of these parts serves a specific purpose. + + * LINE_NUMBER - Present in most BASICS. This serves as a label for the line so you can refer to it later, and in some BASICs it also serves as a method of editing lines. (more on this later!) + * COMMAND - This is what you want your program to do. There are lots of these, we'll discuss them in detail later. + * PARAMETERS - Most commands require some additional information. That's what this one is about. + +So now with that in mind, let's take a look at our happy little program! The first line + + 10 PRINT "HELLO" + +is line number 10. The command that we are using is "PRINT", and the parameter is "HELLO". PRINT puts information on the screen, and "HELLO" is that something we are putting on the screen. Pretty simple, right? + +Now, what about the next line? + + 20 GOTO 10 + +GOTO is a command which tells them computer what line to execute next. Normally, the computer will just step through the lines of the program in order, but when it hits a GOTO, that's your chance to send it somewhere else. Here, we are sending it back to line 10. This causes it to print out "HELLO" again, then it hits line 20 again, and then it goes back to 10. This will go on and on forever, or until someone stops the program. Computers are very patient, so you can run this to your heart's content! + +=== The BASIC Line Editor === + +Before we go any further with the language, we should explore what's going on with those line numbers. The answer lies in BASIC's origins. Originally, BASIC was run on a GE-235 running Dartmouth's Time Sharing System. The primary mode of interface was a teletype printer (this was the 1960's after all!) so everything was constantly being typed out to paper. This meant that modern text editing just wasn't available to BASIC programmers. To combat this, Kurtz and Kemeny implemented a line based editing scheme. The line numbers were the key to this. + +First and foremost, these line numbers provide a guide for sequencing the program. The computer sorts them into increasing order. They need not be consecutive, and traditionally BASIC programmers would count by 10's or by 100's. The reason for this is that you could go back and insert new lines of code in between lines of code. Imagine, for instance, that you had entered our little program, but then decided you wanted a second line of output that said "GOODBYE". You could type the whole thing over again, or you could just type the following: + + 15 PRINT "GOODBYE" + +Now, we can take a look at what the computer thinks the program is by using the LIST command: + + LIST + 10 PRINT "HELLO" + 15 PRINT "GOODBYE" + 20 GOTO 10 + +You can also use the line number to change the lines: + + 15 PRINT ":-D" + +Or you can delete lines all together + + 15 + +So in short, these line numbers are both your labels in your program, and they are also a means to edit your program. Of course, I should mention that not all BASIC interpreters support this sort of direct editing. In those cases, you'll want to edit your program in a standard text editor (like ed!) [ok, or vi or emacs]. But for that old-school feel, you'll want to use line number editing. + +=== Available BASIC Interpreters at SDF === + + * bwbasic + * yabasic + * brandy + * .. //This is exactly how to use BASIC at SDF with a plethora of fun and interesting programming examples just for you!//$Id: basic-language.html,v 1.4 2016/08/11 02:11:08 pngwen Exp $ \ No newline at end of file diff --git a/dump/basic_programs.html.docuwiki b/dump/basic_programs.html.docuwiki new file mode 100644 index 0000000..acb30ef --- /dev/null +++ b/dump/basic_programs.html.docuwiki @@ -0,0 +1,111 @@ +====== Basic Programs ====== + +A collection of basic programs for running on new and old hardware. Feel free to add your own programs and platforms. + + * [[#TOPS-20|TOPS-20 Programs]] + * [[#B10-MULTI|MULTI]] + * [[#CDC6500|CDC6500 Programs]] + * [[#6500-MULTI|MULTI]] + * [[#6500-JDC|Jeferson Disk Cipher]] + +===== TOPS-20 Programs ===== + +The following programs run on TOPS-20 Basic (BASIC-10) + +==== Multi ==== + +This is a simple multiplication table, altering line 5's data statement lets you change the length of the table. Give it a try, and put some crazy numbers in to see how it goes! + + " + 00001 REM Multi by epl692 + 00002 REM Change line 5 to alter the length of the table, try 24, or even 240. + 00005 DATA 12 + 00100 READ T + 00110 A$ = "#### " + 00120 FOR X=1 TO T + 00130 FOR Y=1 TO 12 + 00140 PRINT USING A$,X*Y; + 00150 IF Y=12 THEN 00160 ELSE 00170 + 00160 PRINT "" + 00170 REM NOTHING HERE + 00180 NEXT Y + 00190 NEXT X + 00200 END + " + +Here is a example of the output from a run + +MULTI.B20 Sunday, October 16, 2016 08:58:02 1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144 Compile time: 0.005 secs Run time: 0.026 secs Elapsed time: 0:00:00 + +===== CDC6500 Programs ===== + +The following programs run on CDC6500 Basic + +==== Multi ==== + +This is a simple multiplication table, altering line 5's data statement lets you change the length of the table. Give it a try, and put some crazy numbers in to see how it goes! + + " + 1 REM Multi by epl692 + 2 REM Change line 5 to alter the length of the table, try 24, or even 240. + 5 DATA 12 + 100 READ T + 110 A$ = "#### " + 120 FOR X=1 TO T + 130 FOR Y=1 TO 12 + 140 PRINT USING A$,X*Y; + 150 IF Y=12 THEN 160 ELSE 170 + 160 PRINT "" + 170 REM NOTHING HERE + 180 NEXT Y + 190 NEXT X + 200 END + " + +Here is a example of the output from a run + +17/01/06. 16.25.32. PROGRAM MULTI 1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144 SRU 0.366 UNTS. RUN COMPLETE. + +==== Jefferson Disk Cipher ==== + +Some Simple Encryption by tfurrows + + " + 001 REM Jefferson Disk Cipher, tfurrows@sdf.org + 100 REM Setup the disks + 101 + 104 DIM A$(16) + 105 A$(1)="PDN HCAUBKQXEOZVRMGYJSFTWIL" + 106 A$(2)="ECSGFONUHMR YXDZPTLQAJBWVKI" + 107 A$(3)="TYFPZJS UNBWLXQREACDIOHMVKG" + 108 A$(4)="XHTNOZSFUJKREDQAC MGPBLYWIV" + 109 A$(5)="CPOMQZA TRFBGIWDLVHESJUKNXY" + 110 A$(6)="SXCOFRKJZVEG BAPWDNIHLQMUTY" + 111 A$(7)="H CLKIOZFSUPGREDBNVTYMAJWQX" + 112 A$(8)="NTAJULBWZYCPDSR HVMIFGKOXEQ" + 113 A$(9)="MHWNPZVLXCYJRKUSOEFADI TBGQ" + 114 A$(10)="UVEZHPSDNAYLJQTXWFBG CKIROM" + 115 A$(11)="ICNTHWZE LRMSQFGDAKXYJBOVUP" + 116 A$(12)="SEMB QTFLPIOZCUKYVRDWXJHGNA" + 117 A$(13)="RFTJWUZV HIYQOSLCMEXGDKPNAB" + 118 A$(14)="EM FNZPGUQROYVXCBAHTISWDLKJ" + 119 A$(15)="QPSGZDLNCIOUJK EXRAYHWFMTVB" + 120 A$(16)="GSFYRQBDI ALKXPVUTZJONEWCHM" + 121 + 150 PRINT "Enter message to encode/decode" + 151 INPUT M$ + 152 + 200 REM Loop through message and set the jefferson disks + 205 + 210 FOR I = 1 to LEN(M$) + 215 C=C+1 + 220 IF C>16 THEN C=1 + 225 L = POS(A$(C),SUBSTR(M$,I,1),1) + 230 IF L < LEN(A$(C)) THEN PRINT SUBSTR(A$(C),L+1,LEN(A$(C))-L); + 235 IF L > 1 THEN PRINT SUBSTR(A$(C),1,L) ELSE PRINT SUBSTR(A$(C),1,1) + 240 NEXT i + " + +Here is a example of the output from a run + +17/01/06. 16.50.11. PROGRAM JDC ENTER MESSAGE TO ENCODE/DECODE ? THE CAKE IS A LIE WILPDN HCAUBKQXEOZVRMGYJSFT MR YXDZPTLQAJBWVKIECSGFONUH ACDIOHMVKGTYFPZJS UNBWLXQRE MGPBLYWIVXHTNOZSFUJKREDQAC POMQZA TRFBGIWDLVHESJUKNXYC PWDNIHLQMUTYSXCOFRKJZVEG BA IOZFSUPGREDBNVTYMAJWQXH CLK QNTAJULBWZYCPDSR HVMIFGKOXE TBGQMHWNPZVLXCYJRKUSOEFADI ROMUVEZHPSDNAYLJQTXWFBG CKI QFGDAKXYJBOVUPICNTHWZE LRMS QTFLPIOZCUKYVRDWXJHGNASEMB BRFTJWUZV HIYQOSLCMEXGDKPNA FNZPGUQROYVXCBAHTISWDLKJEM NCIOUJK EXRAYHWFMTVBQPSGZDL ALKXPVUTZJONEWCHMGSFYRQBDI OZVRMGYJSFTWILPDN HCAUBKQXE SRU 0.308 UNTS. RUN COMPLETE. Try running the program with FURCYBLXIKMBNMDDX. $Id: basic_programs.html,v 1.5 2017/01/07 01:00:12 epl692 Exp $ \ No newline at end of file diff --git a/dump/bboard-tutorial.html.docuwiki b/dump/bboard-tutorial.html.docuwiki new file mode 100644 index 0000000..2718fc1 --- /dev/null +++ b/dump/bboard-tutorial.html.docuwiki @@ -0,0 +1,161 @@ +====== bboard ====== + +The "bboard" is a threaded multi discussion bulletin board. It goes back when the original SDF was just a BBS. You may think of it as a corkboard at a community center where members post notes with thumb tacks. It is, along with commode, one of the best ways to get help and news from SDF-EU. Voting of new features and changes on SDF-EU policies also take place at the bboard (ARPA membership or above required) + +===== [[|Some relevant bboards]] ===== + + * To ask for help, use **"<HELPDESK>"** to have your query answered by another user + * All system notices are posted on **"<ANNOUNCE>"** + * Current discussions about SDF-EU happen on **"<SDFEU>"** + * You can make requests for new software and discuss account issues at **"<REQUESTS>"** + * **"<ARPA>"** and **"<META>"** boards are used for ARPA and MetaARPA related questions. + * Member services (such as VPN or VOIP) have their own board for questions and support. + +===== [[|Getting around]] ===== + +==== [[|Listing boards]] ==== + +Type "bboard" on your shell. You will be presented with a list of current bboards (Boards Listing), sorted by most recent activity. + + S D F - 1 Bulletin Board + ================================================================================ + [BBOARD] [POSTS] [TOPIC] + ================================================================================ + SDFEU [0066] SDF-EU User discussions + META [0022] No Description + HELPDESK [0690] Users Helping Users + NETWORKING [0008] No Description + ARPA [0148] ARPA members helping ARPA members + REQUESTS [0534] Software Updates and Installs for SDF and SDF-EU + + [ SCROLL (F)ORWARD, (B)ACKWARD - (G)OTO or (Q)UIT ] + +To navigate the boards listings, use "F" (Forward) and "B" (Backward) keys to go up and down. When you reach the end of the list (or you press "Q"), you will enter in Command Mode, and a prompt will be presented to you. Every time you run "bboard" you are placed in the **"<GENERAL>"** board by default, hence the prompt "<GENERAL> Command: ". + +==== [[|Browsing messages]] ==== + +Say you want to review the **"<SDFEU>"** bboard for news about SDF-EU. On the Command Mode, type "G" (GOTO) followed of the name of the bboard (in this case "G → SDFEU") You will enter in Posts Listing, with all entries at the **"<SDFEU>"** bboard sorted by activity (most recent first) + + ================================================================================ + [ID] [DATE] [AUTHOR] [REP] [SUBJECT] + ================================================================================ + [1] 03-May-12 [john] [0] New feature: SDF-EU intertubes + -------------------------------------------------------------------------------- + [2] 02-May-12 [jane] [0] SSH Port Forwarding question + 02-May-12 [jim] [1] + 02-May-12 [james] [2] + -------------------------------------------------------------------------------- + [3] 02-May-12 [jess] [0] Meetup at EuroBSDcon + 02-May-12 [joshua] [1] + 02-May-12 [jack] [2] + + [ SCROLL (F)ORWARD, (B)ACKWARD - (T)YPE, (R)EPLY or (Q)UIT ] + +Like in the Boards Listing, you can navigate the Posts Listing with keys "F" and "B". Pressing "Q" will return you to Command Mode. + +==== [[|Read a message]] ==== + +Post #3 “Meetup at EuroBSCcon” caught your attention. To read it, press "T" (TYPE), followed by the post number (in this case "T → 3") This will put you on Reading Mode at the first message from the thread. You could also start reading the thread from a specific message; simply enter "T → 3.2" if you want to start reading the thread #3 from the second reply. + + TACKER: jess (Jessica G. Doe) + SUBJECT: Meetup at EuroBSDcon + DATE: 02-May-12 21:44:05 + HOST: odin + + Anybody wanting to organize a meetup @EuroBSDcon? + + <SDF.3.0>(3)[ <ENTER> to follow thread, (R)EPLY or (Q)UIT ] + +==== [[|Post a message/reply]] ==== + +To post a new thread on the bboard you are currently in, press "P" (POST) and enter a subject. To publicly reply to a post, press "R" (REPLY) If you are in Reading Mode, you will reply to the thread you are currently in. If you are in Posts Listing, you will be asked for the post number you want to reply. Either way you will end up in the pico editor [[#fn__1|]]. Write down your reply and press "CTRL-x" to finish you post. + +^ New Post ^ +| <SDFEU.1> Command: POST Subject: Timezone? You have written: ----------------------------------------------------------- In which timezone(s) SDF-EU servers are? This BULLETIN contains 40 characters in 6 words of 2 lines. ----------------------------------------------------------- POST your BULLETIN? (y/n) % Rebuilding symbol table for BBOARD:<SDFEU> [QUEUED] Would you like to add a READERS POLL? (y/n) | +^ Reply ^ +| <SDFEU.1> Command: REPLY (A NUMBER) 3 REPLY to "Meetup at EuroBSDcon" ? (y/n) You have replied: ----------------------------------------------------------- I would love to! This BULLETIN contains 16 characters in 4 words of 2 lines. ----------------------------------------------------------- POST your REPLY? (y/n) | + +==== [[|...and much more]] ==== + +Now that you are confortable with the bboard, try exploring additional features: + + * Post ("P"), reply ("R") and depost ("D") a message (use the **"<TEST>"** board for that) + * Review current voting polls ("V") or propose your own. + * Explore the archives ("A") and acquire ancient wisdom. + * See how many people are reading the bboard ("W") and get amazed by their idle times. + * Read the the intro ("?") and the list of commands ("H"). + * Check the man page (type "man bboard" at your shell) for a complete reference of settings at startup. + +===== [[|Command Reference]] ===== + +^ "(?)" | What is the BBOARD? | +^ "(L)IST" | List bulletin summaries | +^ "(G)OTO" | View another BBOARD (“GOTO” lists boards) | +^ "(T)YPE" | Displays the selected bulletin | +^ "(S)EARCH" | SEARCH the entire BBOARD on a KEYWORD | +^ "(N)EW SCAN" | SCAN the current BBOARD for NEW messages | +^ "(n)EW SCAN" | SCAN all BBOARDs for NEW messages | +^ "(V)IEW POLLS" | SCAN the entire BBOARD for READER POLLS | +^ "(F)ORWARD" | View the next thread within the current BBOARD | +^ "(B)ACKWARD" | View the previous thread within the current BBOARD | +^ "(P)OST" | POST a new bulletin (bulletins live 30 days) | +^ "(D)EPOST" | DEPOST a bulletin you have posted | +^ "(R)EPLY" | Respond to a bulletin | +^ "(M)KBOARD" | Create a new BBOARD | +^ "(K)ILL" | Toggle a BBOARD to and from your KILL list | +^ "(A)RCHIVE" | Enter/Exit the BBOARD archives | +^ "(C)OLORS" | Enable/disable colors | +^ "(W)HO" | Who is reading the bboard | +^ "(I)GNORE" | Manage your user ignore list | +^ "(Q)UIT" | QUIT the BBOARD | + +\\ [[#fnt__1|]] If you want to change your default editor, check the "bboard" man page via the **man bboard** command at the shell prompt. \\ \\ + +===== [[|Customizing bboard(1)]] ===== + +Many SDF users find the lack of word-wrap and spell-checking when posting in bboard(1) frustrating. If a Vi editor is acceptable, some rudimentary auto-wrapping and spell-checking can be accomplished in //bboard(1)// with the following configuration files in your HOME (~$USER/) directory: + +> " +#** ~$USER/.exrc** +" set auto-wrap width:" +set textwidth=78 +" set RH margin guide:" +set guidewidth=79 +" set elvis spellcheck stuff:" +set spell +set spelldict=/usr/share/dict/words +set spellautoload +#** ~$USER/.bboardrc** +# set editor to vi (will use elvis(1) editor): +EDITOR=vi +" + +Once these files are in place your bboard(1) post editing environment will be elvis(1) based (a Vi editor clone; see **man elvis**) and should display a highlighted right-hand margin guide at 79 characters over, with text wrapping at 78 characters over. Note that these //~/.exrc// settings may adversely affect other Vi-style editors like nvi(1) or vim(1). + +==== Running Spell-check on a bboard(1) Post: ==== + +Words deemed misspelled by the elvis(1) editor should appear in a different color. To spell-check the entire post, first move to position 1,1 with //'1G'// (or use the arrow keys, or //'h,j,k,l'// keys to navigate) then use //'gs'// to move to the first misspelled word. If spelling suggestions are available they'll appear numbered at the bottom of editing screen; to select, use //'#gs'//, where "#" is suggested word number. If no spelling suggestions are available, look the word up elsewhere, use //'cw'+[corrected word]+ESC// to correct, then //'gs'// to move to next misspelled word. + +When finished editing your bboard(1) post use //'ZZ'// to quit. If you wish to cancel your post use //':q!'// to quit without saving. + +==== Learning to use Vi-style Editors: ==== + +If you've never used a Vi-style editor you may wish to run the //vilearn(1)// command within your SDF shell session to get some practice. The Vi editor is //*modal*// - entering a Vi command such as //'i'// puts the editor in 'input' mode; pressing the //Esc// key puts the editor it back in 'command' mode. Within Vi, typing ':viusage' should display a summary of most Vi commands. + +A free WikiBooks resource: [[https://en.wikibooks.org/wiki/Learning_the_vi_Editor|Learning the Vi Editor]] + +If you decide to practice with elvis(1), the //':help'// command should provide an info(1)-like documentation environment (use //':q'// to close it). Keep in mind that this :help documentation is not available within bboard(1) as elvis(1) is run in a restricted command mode. More extensive elvis(1) documentation is on the main SDF hosts at ///usr/pkg/share/doc/elvis/elvis.html// . + +==== If you would rather use a pico-like editor with a bit more power: ==== + +If you want to use an editor with in-program help and simple interface like the default //pico//, but slightly more powerful than the default **bboard** editor, you may wish to instead set your editor to //nano//, which is the default editor integrated into the Alpine mail program. It's the same as //pico//, but has additional commands, like regex searching. + +To do this, instead of setting up your //.bboardrc// as above, set it as follows (you can do this with //nano ~/.bboardrc//!): + +> " +#** ~$USER/.bboardrc** +# set editor to nano: +EDITOR=nano +" + +//$Id: bboard-tutorial.html,v 1.12 2016/12/09 20:09:00 peteyboy Exp $// \ No newline at end of file diff --git a/dump/building_a_website.html.docuwiki b/dump/building_a_website.html.docuwiki new file mode 100644 index 0000000..5100b70 --- /dev/null +++ b/dump/building_a_website.html.docuwiki @@ -0,0 +1,56 @@ +====== Building a website on SDF ====== + +---- + +===== Contents ===== + + * [[#intro|Introduction]] + * [[#getting_started|Getting Started]] + * [[#firstpage|Your First Page!]] + * [[#problems|Problems]] + * [[#diagnose|Diagnose]] + +\\ + +===== Introduction ===== + +Creating your own websites can be fun and SDF gives webspace to all its validated users, so the moment you become validated you can begin creating your own websites straight away. + +In this tutorial when text looks like "this" this means it's a command you can run in your shell, once you've logged into SDF. + +==== Getting Started ==== + + * "mkhomepg" - This command needs to be executed before you can start building your web pages. When you execute this program, it will create a directory in which you can put all your web files. This directory is sym-linked into your home directory, under the name 'html'. (A sym-link is sort of like a shortcut in Microsoft Windows.)You will be prompted to select a URL for your website. This URL is what other internet users type into their web browser to view your web pages. If you're not an ARPA member then you may only use url's in the form of '"<your login>.freeshell.org"'. For instance, my web pages are stored at '"alterego.freeshell.org"'. If you're an ARPA member, there are many different domains you may use. + +===== Your First Page! ===== + +Creating your first page is **__SO__** easy! First you'll need to open a text editor. SDF has many text editors installed but new users to UNIX often find that "nano" is the easiest to work with. + + * "nano ~/html/index.html" - This command starts the nano text editor, creating a new file, called 'index.html' in your html directory.Once you've executed the command above. You'll notice that the terminal layout has changed. If you press keys on your keyboard you'll notice they appear in the "text buffer". Write out the text below into this program. + <html><head> + <title>My First Page!</title> + </head><body> + <h1>My First Page!</h1> + <p>This is my first html web page!</p> + </body></html> + Now that you have copied the text out into 'nano', you need to save the file. To do this, hold down the 'CTRL' key on your keyboard and whilst pressing that, press the letter 'o'.Right, now, do you remember that URL you selected when you ran '"mkhomepg"'? Open a web browser and type that into the address bar. Hopefully, after a few seconds. You should see your very own web page! + +===== [[|Problems]] ===== + +The most important thing you need to have is **patience**. Sometimes updates when running "mkhomepg" may take a few hours to complete, sometimes they will occur almost immediately. By using the higher functions of your brain and **patience** you will solve a lot of the problems you may meet! + +In case a page is not found on your site, the client may be forwarded to a page of sdf.org or redmartian, which can be confusing (but which is in fact completely reasonable, as all the domains belong to one entity). If you want to prevent this also for broken links, you have to set up error handler documents. Please consult the faq:WEB:7 item for this! + +===== [[|Diagnose]] ===== + +If your site is hosted on sdf.org (you are an ARPA member) then you can grep inside the httpd log file in "/var/log". For example: + + $ grep abc123.sdf.org /var/log/httpd/*.log + +If your site is hosted on ma.sdf.org (you are a MetaARPA member) then your can look inside the log file for your web site in "/meta/log". For example: + + $ less /meta/log/abc123.sdf.org + +For aditional help, check the information in the FAQ page [[https://sdf.org/?faq?WEB?05|"What About the Access Logs, Statistics, and Quotas?"]] + +$Id: building_a_website.html,v 1.8 2020/01/01 22:29:35 niro Exp $ \ No newline at end of file diff --git a/dump/cat.html.docuwiki b/dump/cat.html.docuwiki new file mode 100644 index 0000000..98b01cc --- /dev/null +++ b/dump/cat.html.docuwiki @@ -0,0 +1,25 @@ + NAME cat -- concatenate and print + + SYNOPSIS _c_a_t file1 ... + + DESCRIPTION _c_a_t reads each file in sequence and writes it on + the standard output stream. Thus: + + _c_a_t _f_i_l_e + + is about the easiest way to print a file. Also: + + _c_a_t _f_i_l_e_l _f_i_l_e_2 _>_f_i_l_e_3 + + is about the easiest way to concatenate files. + + FILES -- + + SEE ALSO pr, cp + + DIAGNOSTICS If a file cannot be found it is ignored. If no + files are given, "no files" is output. + + BUGS -- + + OWNER ken, dmr \ No newline at end of file diff --git a/dump/cdc6500.html.docuwiki b/dump/cdc6500.html.docuwiki new file mode 100644 index 0000000..8032165 --- /dev/null +++ b/dump/cdc6500.html.docuwiki @@ -0,0 +1,191 @@ +====== CDC 6500 Survival Guide ====== + +The [[https://en.wikipedia.org/wiki/CDC_6000_series|CDC 6000 series]] was a family of mainframe computers designed by Seymour Cray and James E. Thornton and manufactured by Control Data Corporation in the 1960s. The computers in the series were extremely fast for their time and considered to be the first supercomputers. + +The [[http://www.livingcomputermuseum.org/|Living Computer Museum]] has recently refurbished and put on-line a [[http://www.livingcomputermuseum.org/The-Collection/Exhibit-Hall.aspx#Mainframe|CDC 6500 supercomputer]]. The system was originally used at Purdue University from 1967 to 1989. + +This document is a short guide for those interested in exploring the 6500's interactive command environment. + +//(**Note:** The author worked briefly with a CDC NOS computer 30 years ago, but all information below is based on study of the referenced manuals and experimentation on LCM's 6500. The author apologizes for any inaccuracies and welcomes corrections and improvement suggestions.)// + +===== Table of Contents ===== + + * [[#section-1|Connecting]] + * [[#section-2|Subsystems]] + * [[#section-3|File System]] + * [[#section-4|File Commands]] + * [[#section-5|Programming Commands]] + * [[#section-6|Text Editor]] + * [[#section-7|Messaging]] + * [[#section-8|Other System Commands]] + * [[#section-9|Disconnecting]] + * [[#section-10|File Sharing]] + * [[#section-11|File Transfer]] + * [[#references|References]] + * [[#plan|Future Improvements]] + +===== Connecting ===== + + - Start your telnet client and connect to host "tty.livingcomputermuseum.org" port "6500". + - After the "USER NUMBER" prompt enter your user name (your input will be concealed by the row of Xs). You may need to type more slowly than you are used to with other systems. + - After the "PASSWORD" prompt type your password (your input will be concealed by the row of Xs). + - After the "RECOVER /SYSTEM:" prompt enter a subsystem or other command. (Enter "RECOVER" to recover previously interrupted session.) + + [CONNECTED TO MUX6676 LINE 1] + + 16/08/24. 20.43.27. + LIVING COMPUTER MUSEUM 6500. NOS 1.3-485/11. + USER NUMBER + XXXXXXXXXXXXXXX ← 2. + PASSWORD + XXXXXXXX ← 3. + PORT : 5, TTY + RECOVER /SYSTEM: + +===== Subsystems ===== + +The 6500's Network Operating System (NOS) time-sharing system, the Interactive Facility (IAF), includes a number of subsystems, similar to applications on other computer systems, to provide various functions to the user. Subsystems can be selected explicitly by command (see below), or automatically when you select a primary file. + +Although the Null subsystem provides a general-purpose environment with file and system utilities, in most cases you can move directly between subsystems as needed without going through the Null subsystem. + +^ Subsystem ^ Function ^ +| "ACCESS" | Messaging with other users connected to the 6500. | +| "BASIC" | Interactive BASIC language programming environment. | +| "BATCH" | Create and run batch jobs for non-interactive programs. | +| "EXECUTE" | Execute previously compiled programs. | +| "FORTRAN" | Interactive Fortran language programming environment. Uses FORTRAN Version 5 compiler. | +| "FTNTS" | Interactive Fortran language programming environment. Uses FORTRAN Extended Version 4 compiler. | +| "NULL" | A general-purpose environment for working with files and system status and settings (although most general commands are available in other subsystems as well). | + +===== File System ===== + +A basic understanding of the 6500 file system is necessary to use most IAF comands. + +**Permanent files**Permanent files are preserved by the system from their creation until their deletion by user command. Each permanent file is owned by a single user and is normally accessible only by its owner, though it is possible to make files accessible by other users as well. + +Two types of files are supported: + +**Direct access**Used for random access and database applications.**Indirect access**Common sequential access files, including program source files.**Temporary files**Whenever an indirect access file is accessed, or a new indirect access file created, the system first makes a temporary copy of the file, to which are directed all references and updates to the file. The temporary file must be saved in order for changes to be applied to the permanent file. Unsaved changes will be discarded at the end of the user's session. + +A temporary file is //not// created when a //direct access// file is opened. Changes made to a direct access file are immediately applied to the permanent file. + +**Primary file**The primary file is the temporary file, usually a program source file, that a user is viewing, modifying, or executing at a given time. Although a user session may simultaneously open multiple temporary files, a given user may have only one primary file at a time. + +The currently selected primary file automatically determines the user's active subsystem. When a new indirect access file is saved as a permanent file for the first time, the file system records the active subsystem at the time. Then when the file is selected as primary sometime later, the system automatically activates the original subsystem. + +**Local files**Local files are the set of temporary files and direct access files (permanent files) currently open by a particular job or user session. + +File names my be up to seven alphanumeric (upper-case) characters and may not begin with a numeric character. The following file names are reserved by the system: + + * INPUT + * OUTPUT + * PUNCH + * PUNCHES + * P8 + * SCR + * SCR1 + * SCR2 + * SCR3 + * SCR4 + * ZZZZZ* + +===== File Commands ===== + +| "CATLIST"\\ "CATLIST,LO=F" | List your permanent files. The second form generates a detailed list. | +| "ENQUIRE"\\ "ENQUIRE,F" | Prints users terminal port number, current subsystem, primary file. The second form lists user's local files | +| "NEW,"//file// | Create a new file with the current subsystem and select as your primary file. | +| "OLD,"//file// | Select existing permanent file as primary. Change subsystems if file type is different from current primary file. | +| "LIST"\\ "LNH" | List primary file contents. The second form omits printing the system header. | +| "GET,"//file//\\ "LIST,L="//file// | Use "GET" and "LIST,L" together to list the contents of a file other than primary file. | +| "SAVE"\\ "SAVE,"//old//"="//new// | Save contents of primary file as permanent file (creates permanent file). May need to use "PACK" first. **Note:** Use only the first time you create a file.\\ The second form saves the primary file named //old// in a new permanent file named //new//. | +| "REPLACE" | Replace permanent file with current contents of primary file. May need to use "PACK" first. **Note:** Use when modifying previously created permanent file. | +| "PACK" | Compress multiple logical records in local file into single logical record. | +| "PURGE,"//file// | Delete a permanent file | +| "RENAME,"//oldname//","//newname// | Change the name of a permanent file | + +===== Programming Commands ===== + +The BASIC, FTNTS, and FORTRAN subsystems provide environments for interactively creating, modifying, debugging, and running programs: + +| "BASIC" | Enter the BASIC subsystem. Uses the BASIC programming language interpreter. | +| "FTNTS" | Enter the FTNTS subsystem. Uses the FORTRAN Extended Version 4 compiler. | +| "FORTRAN" | Enter the FORTRAN subsystem. Uses the FORTRAN Version 5 compiler. | + +The tree subsystems provide a development environment similar to the original Dartmouth BASIC and versions of Microsoft BASIC for microcomputers and early PCs. + +==== Program source files ==== + +For all subsystems, program source code is stored in indirect access files. The file's subsystem flag, set when first created, indicates the file's source programming language (and compiler version for Fortran source files). + +Create new source files, list and select existing source files, view contents, and save changes to source files using the file commands documented above. + +Each programming subsystem includes a simple editing function for entering and modifying program source code in the primary file as follows: + +To add a source code line:Type a new line sequence number followed by a space and then a program statement. Source code lines will be stored and compiled/executed in the order of line sequence numbers, so lines can be entered in any order.To modify a source code line:Type line sequence number of the program statement to be changed followed by a space and the modified program statement.To delete a source code line:Type the line sequence number followed immediately by the "Enter" key. + + * In the BASIC subsystem, use line sequence numbers as the targets of "GOTO" and other statements. + * In the Fortran language subsystems (FORTRAN and FTNTS), the line sequence numbers are //not// the same as the line label numbers used by Fortran PRINT/WRITE/FORMAT, GO TO, and other statements. Line label numbers should be inserted in necessary lines between the line sequence number and program statement. + * In the Fortran language subsystems, program statement text Following the line sequence numbers may conform to or ignore standard Fortran column rules at the programmer's choice. + * In the BASIC subsystem, program statement without a preceding line sequence number will be executed immediately and are not added to the primary file. This is useful for testing statements before modifying your program. Use "PRINT" statements to display results of calculations, etc. + +| "AUTO" | Enter automatic line sequence number mode. Enter program source statements in sequence after the system-generated line numbers. Exit the mode by pressing "Esc" key followed by "Enter" key. | +| "RESEQ" | Renumber the source code lines in the primary file, maintaining the original sequence. In BASIC subsystem, target line numbers of GOTO and other statements are adjusted appropriately. | +| "RUN"\\ "RNH"\\ "RUN,MI=12625" | For the BASIC subsystem, runs the primary file program. The second form omits printing of the system header.\\ The third form is required to compile and run programs in the FTNTS subsystem. (The "MI" argument sets the compiler field length. As of this writing it is unknown if value 12625 is valid for all programs.)\\ //**Note:** As of this wiriting, the author has not yet succeeded in compiling nor running a program with the FORTRAN subsystem.// | + +===== Text Editor ===== + +Although the programming subsystems include basic functionality for entering and modifying program source code in the primary file, the NOS Text Editor program ("EDIT") provides both advanced editing functions and the ability to edit other local files besides the primary file. + +| "EDIT"\\ "EDIT,"//file// | Edit the primary file with Text Editor. The second form is for editing other local files. | +| "END" | Exit Text Editor | + +===== Messaging ===== + +Use the ACCESS subsystem to communicate with other users connected to the 6500. + +| "ACCESS" | +| Enter the ACCESS subsystem | +| "USER,"//userID// | Find connected user's terminal port number | +| "DIAL,"//port//","//message// | Send message to user. | + +===== Other System Commands ===== + +| "DAYFILE" | List user's activity log. | +| "PASSWOR,"//old//","//new// | Change user password from //old// to //new// | + +===== Disconnecting ===== + +| "BYE"\\ "GOODBYE"\\ "LOGOUT" | End user session and disconnect | +| "HELLO"\\ "LOGIN" | End user session and return to log-in screen | + +===== File Sharing ===== + +Share permanent files with other 6500 users. + +| "CHANGE,"//file//"/CT=PU,M="//mode// | Give access mode //mode// to //file// to all 6500 users. \\ Permission //mode//s: "A"=append, "E"=execute, "M"=modify, "N"=remove perm., "R"=read, "RA"=read+append, "RM"=read+modify, "W"=write | +| "PERMIT,"//file//","//user//["="//mode//]... | Give access mode //mode// to //file// to //user//. Default //mode// is read. | +| "CATLIST,UN="//user// | List permanent files in //user//'s catalog for which you have been granted access permission. | +| "OLD,"//file//"/UN="//user// | Open permanent file //file// in //user//'s catalog (must have been granted access permission). | + +===== File Transfer ===== + +In order to transfer data to or from the 6500, your best option is to copy and paste. If your having trouble pasting in programs, you may want to try using TeraTerm with after altering the line delay under Setup -> Additonal settings -> Copy and Paste -> Paste delay per line at about 250ms. + +===== References ===== + + * [[http://bitsavers.trailing-edge.com/pdf/cdc/cyber/lang/basic/19980300B_BASIC_Language_Version_2_Reference_Nov74.pdf|BASIC Language Version 2 Reference Manual]] (PDF). Control Data Corporation. Oct. 1974. Accessed Oct. 8, 2016. + * [[http://bitsavers.trailing-edge.com/pdf/cdc/cyber/lang/fortran/60305600A_FTN_Extd_V4_Oct71.pdf|FORTRAN Extended Reference Manual Version 4]] (PDF). Control Data Corporation. Oct. 22, 1971. Accessed Aug. 29, 2016. + * [[http://bitsavers.trailing-edge.com/pdf/cdc/cyber/nos/60455250C_Interactive_Facility_Version_1_Reference_Aug79.pdf|Interactive Facility Version 1 Reference Manual]] (PDF). Control Data Corporation. Aug. 10, 1979. Accessed Aug. 17, 2016. + * [[http://bitsavers.trailing-edge.com/pdf/cdc/cyber/nos/60435400C_NOS_Version_1_Reference_Manual_Volume_1_Dec76.pdf|NOS Version 1 Reference Manual Volume 1 of 2]] (PDF). Control Data Corporation. Dec. 3, 1976. Accessed Aug. 26, 2016. + * [[http://bitsavers.trailing-edge.com/pdf/cdc/cyber/nos/60436100C_NOS_Version_1_Text_Editor_Ref_Mar76.pdf|NOS Version 1 Text Editor Reference Manual]] (PDF). Control Data Corporation. Mar. 8, 1976. Accessed Aug. 17, 2016. + +===== Future Improvements ===== + +The author would like to make the following improvements to this document: + + * Document compilation and execution of programs with FORTRAN subsystem. + * Text Editor command guide. + * Batch subsystem guide. + * Execute subsystem guide. + +$Id: cdc6500.html,v 1.11 2016/11/12 15:34:38 papa Exp $ \ No newline at end of file diff --git a/dump/centericq_howto.html.docuwiki b/dump/centericq_howto.html.docuwiki new file mode 100644 index 0000000..aeeb3a3 --- /dev/null +++ b/dump/centericq_howto.html.docuwiki @@ -0,0 +1,27 @@ +====== Using CenterICQ on SDF ====== + +CenterICQ is not actively maintained anymore, CenterIM is a fork and is actively maintained. However CenterICQ is still functional. + +===== CenterICQ & CenterIM ===== + +These same steps aply to connect to ICQ using CenterIM. + + - Run //centericq// (or //centerim//) from the shell. + - The first time you will be greted with the configuration screen you can use your left arrow to select Done and press Enter + - With down arrow key move under icq protocol, select UIN and press Enter to provide your ICQ number. + - Fill in your password in the same way as the UIN. + - With left arrow key select Done and press Enter. + +I tried to register a new ICQ account with CenterICQ without luck. + +===== finch ===== + + * Press **ALT + a** and select **Accounts**. + * Select **Add** to open the **New Account** dialog box. + * Choose **ICQ** from the Protocol select box. + * Fill the **Username** field with your ICQ number, and **Password** fields. + * Using the **TAB** move to **Accept** and press **Enter** key. + +After this, Finch will try to connect to ICQ network. + +\\ \\ $Id: centericq_howto.html,v 1.1 2006/08/02 08:05:04 fanthore Exp ecelis $ \ No newline at end of file diff --git a/dump/chicken.html.docuwiki b/dump/chicken.html.docuwiki new file mode 100644 index 0000000..48b4e9d --- /dev/null +++ b/dump/chicken.html.docuwiki @@ -0,0 +1,68 @@ +====== Using Chicken on SDF ====== + +Chicken is a practical implementation of Scheme. Scheme is a programming language in the Lisp family. + +===== Learn ===== + +To learn Scheme programming, check out a tutorial like [[http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html|Teach Yourself Scheme in Fixnum Days]]. + +To learn about Chicken, check out the [[http://call-cc.org/|Chicken website]], which includes a [[http://wiki.call-cc.org/man/4/The%20User%27s%20Manual|manual]] and a [[http://wiki.call-cc.org/|wiki]]. + +===== Play Around ===== + +To play with Chicken, start the interactive interpreter by running csi. It should look like this: + + $ csi + + CHICKEN + (c)2008-2011 The Chicken Team + (c)2000-2007 Felix L. Winkelmann + Version 4.7.0 + netbsd-unix-gnu-x86-64 [ 64bit manyargs dload ptables ] + compiled 2011-08-24 on ol (NetBSD) + + #;1> + +At the Chicken prompt, you can type in a Scheme program and hit Return to run your code. + + #;1> (print "Hello, World") + Hello, World + #;2> + +===== Install Eggs ===== + +The Chicken community produces third-party libraries called eggs. (If you're familiar with the Ruby programming language, eggs are like Ruby's gems.) As an example, let's install the [[http://wiki.call-cc.org/eggref/4/readline|readline]] egg. This will allow you to use in the Chicken interpreter the same editing and history commands you use in your shell. For example, hitting the Up key will enter your previous command. + +Ideally, you could just run chicken-install readline and the egg would be installed. But if you do that, you'll get an error. Since you don't have administrator privileges on SDF, you can't install eggs to the default location (a system directory). You must install the eggs in your home directory, which requires you to do a little configuration beforehand. I'll show you how to do that. + +I'll assume you're running Bash as your shell and that you want to keep Chicken-related files in ~/chicken. First create a directory for a Chicken repository: + +mkdir -p ~/chicken/lib/chicken/6 + +Then install the repository: + +chicken-install -init ~/chicken/lib/chicken/6 + +Then create some environment variables so Chicken will know to use your new repository for eggs, and will compile against SDF's system libraries when installing eggs: + +export CHICKEN_INCLUDE_PATH=${HOME}/chicken/lib/chicken/6\\ export CHICKEN_REPOSITORY=${HOME}/chicken/lib/chicken/6\\ export CSC_OPTIONS="-I/usr/pkg/include -L/usr/pkg/lib -static-libs" + +(You may also wish to put the above lines in a shell startup file, like ~/.bash_profile, so that the variables will be set every time you log in to SDF.) + +Now you can install the readline egg: + +chicken-install readline + +If the install was successful, we can check whether everything's working. Start the Chicken interpreter with csi and run this Scheme program to load the readline egg: + +(use readline) + +Then run this program to use readline in this interpreter session: + +(current-input-port (make-gnu-readline-port)) + +Now check if you have readline support in the interpreter. Run a trivial program like 42 and then hit the Up key and check if "42" gets entered at the prompt. If so, the readline egg is installed and working. You can put the first two Scheme programs (the ones that load the egg and make it work) into a ~/.csirc file and the interpreter will run those programs at the beginning of each session. + +---- + +$Id: chicken.html,v 1.15 2011/08/29 06:43:41 ab9 Exp $ \ No newline at end of file diff --git a/dump/chmod.html.docuwiki b/dump/chmod.html.docuwiki new file mode 100644 index 0000000..989a135 --- /dev/null +++ b/dump/chmod.html.docuwiki @@ -0,0 +1,26 @@ + NAME chmod -- change mode + + SYNOPSIS _c_h_m_o_d octal file1 file2 file3 ... + + DESCRIPTION The octal mode replaces the mode of each of the + files. The mode is constructed from the OR of + the following modes: + + 01 write for non--owner + 02 read for non--owner + 04 write for owner + 10 read for owner + 20 executable + 40 set--UID + + Only the owner of a file may change its mode. + + FILES -- + + SEE ALSO stat, ls + + DIAGNOSTICS -- + + BUGS -- + + OWNER ken, dmr \ No newline at end of file diff --git a/dump/chown.html.docuwiki b/dump/chown.html.docuwiki new file mode 100644 index 0000000..fd84b74 --- /dev/null +++ b/dump/chown.html.docuwiki @@ -0,0 +1,19 @@ + NAME chown -- change owner + + SYNOPSIS _c_h_o_w_n owner file + + DESCRIPTION _o_w_n_e_r becomes the new owner of the files. + The owner is an octal UID. + + Only the owner of a file is allowed to change + the owner. + + FILES -- + + SEE ALSO stat + + DIAGNOSTICS ? + + BUGS -- + + OWNER ken, dmr \ No newline at end of file diff --git a/dump/chrm.html.docuwiki b/dump/chrm.html.docuwiki new file mode 100644 index 0000000..7b3d4f8 --- /dev/null +++ b/dump/chrm.html.docuwiki @@ -0,0 +1,26 @@ + 11/3/70 + CHRM (I) + + NAME chrm -- remove (unlink) files + + SYNOPSIS chrm directory name1 ... + + DESCRIPTION chrm removes the entries for one or more files from the + named directory. If an entry was the last link to the file, + the file is destroyed. Removal of a file requires write + permission in its directory, but neither read nor write + permission on the file itself. + + Directories cannot be removed by rm; cf. rmdir. + + FILES none. + + SEE ALSO rmdir, for removing directories. + + DIAGNOSTICS If the file cannot be removed or does not exist, the name + of the file followed by a question mark is typed. + + BUGS rm probably should ask whether a read-only file is really + to be removed. + + OWNER ken, dmr \ No newline at end of file diff --git a/dump/comnotirc.html.docuwiki b/dump/comnotirc.html.docuwiki new file mode 100644 index 0000000..8e48b9f --- /dev/null +++ b/dump/comnotirc.html.docuwiki @@ -0,0 +1,103 @@ +====== COM is not IRC ====== + +---- + +===== Content ===== + + * [[#whatis|What is COM?]] + * [[#gettingStarted|Getting started]] + * [[#faq|FAQ]] + * [[#commands|Common COM Commands]] + +\\ + +===== [[|What is COM?]] ===== + +So you type '"irc"' at the command prompt hoping to join your favorite channel and instead find yourself in this strange world where you have to press space to talk, the commands you expect don't work, and you can't even figure out how to quit (hint: try '**q**'). This is 'COM' (aka, 'COMMODE' or just 'com'). + +COM is a chat program which is unique to SDF. The original version dates back to 1994 and it has been developed and used on the SDF servers ever since. Together with the '"bboard"' BBS it is one of the primary ways SDF users communicate with each other. Some features may be familiar to you from other programs, but many will be new to you. Most notably, COM is command-driven, meaning that you are in “command mode” by default and must hit a key (spacebar or enter) before you can talk. See below for additional [[#commands|commands]], all of which are simply typed in from command mode. + +So why did you get COM when you expected IRC? For reasons of security and concerns about abuse, IRC access is not allowed unless you are an ARPA member or higher. If you are reading this then it is likely you are not. For this reason when you type '"irc"' at the shell, COM will be launched instead. This allows new users an opportunity to interact with other SDF users and hopefully answer some of the questions they might have. Unlike IRC, COM is not network-based and only users who are currently logged into SDF can use it. + +Basic rules of etiquette to keep in mind: + + * Many people idle in com. You can check idle times with '**I**'. If the room has been quiet for a while, say hello but give people time to respond. If you have not read the tutorial you may get some coarse replies, and you might end up here, now, reading this. Welcome. :) + +Things //not// to do: + + * Ask how to 'hack'. + * Attempt to use any IRC commands (they won't work and will make you look foolish). + * Repeat the same question over and over. + +===== [[|Getting started: a walkthrough]] ===== + +COM is based around 'rooms'. The default room you enter when you start the program is 'lobby', SDF's Welcoming Room. + +Type "com" at the command line to start com. When com starts, you will be placed in 'lobby'. A list of users will be displayed. You will also be in **command** mode. In **command** mode, all you will see the cursor; there will not be a prompt. Command mode allows commands to be run such as seeing a list of users. + +In **command** mode, type **w** to see a **list of users**, the name of the room you are in, as well as the **topography**. + +The output will look something like + + [you are in 'spacebar' among 1] + + wliao@iceland + +Now, type **l** (lower case L) to see a list of rooms. The output will look something like + + room-name # created time topic + -------------------------------------------------------------------------------- + spacebar 16 22-Aug-16 08:49:32 there is life out there + lobby 1 09-Sep-16 08:49:13 SDF's Welcoming Room + anonradio 19 09-Sep-16 04:11:06 DJ Kumata! + -------------------------------------------------------------------------------- + +There seems to be a lot of users in the room "spacebar". Let us join in on the fun, shall we? Type **g** and the name of the room to join. + + :goto> spacebar + +When entering the room, a list of users will be displayed. Now, let us say hello to the room. + +Enter **a space** to enter input mode. When entering input mode, **a prompt of your user name** will appear. Say "hello" to the world and end the line with an enter key. + + [wliao] hello world! + +The next thing you'll probably want to know is what people talked about before you entered so you can join in the chatter. Type **r** to get a short 18 line "r"eview of what was said last. If you want more context, press **R**. You will se a prompt like this: + + :lines> + +Just type the number of lines you are interested in and finish with return; you'll get a scrollable history of said lines length. + +When you are ready to quit, type **q** to leave com. You will see an **"Unlinking TTY .."** message appear. + +===== [[|FAQ]] ===== + +How do I use backspace in com?Try **-** in command mode in com to toggle behavior. Or, use stty or 'bksp' to set the backspace correctly.How can I be in com multiple times?The basic rule is to be on a different server when entering com. Some common ways of doing this is to use screen, run ssh twice, etc.How do I send private messages?Use the **s** command in command mode: **s**user@host. Please note the @host portion; this is a required element of the command. If the user is in another room, add an optional host parameter to send the message: **s**user@host room.How do I see what happened in the past?Use the **r** key to review. Use **R** followed by a number to control how many lines of history to review. The **p** key can be used to see the history of another room: **p**roomname. The **p** command can also take an optional number of lines to display: **p**roomname number.How do I see who is in another room?Use **W** (upper case w) to see who is in another room.I see "<wliao@iceland DUMPs in 22 characters of 2 words in 3 lines>". What does that mean?Use the **r** or **R** command.I see "<wliao appears>". How do I do that?Use the **e**mote command in command mode. Use **e** followed by the action at the prompt: ":emote> tests this out". Why do I have to keep pressing the spacebar to talk?Other keys can be used to enter input mode. Try the **h** to see what keys are not being used such as the enter key.How do I erase a line?Use ^u (control + u) to erase the line. ^w (control + w) will erase a word. I accidentally ignored somebody! I didn't mean to do that :('i'gnore the same user again to remove from the ignore list. Why isn't anybody talking?That's life. Harden up. + +===== [[|COM Commands]] ===== + +Here is a list of commonly used COM Commands. It only covers the basics, so refer to the online help (with '**h**') or man page for more information. Some of the commands will not be available to pre-validated users. + + " " + * **e** - emote + * **g** - goto a room + * **h** - command help + * **I** - user idle query + * **l** - (lowercase L) list open rooms + * **L** - post a link to com + * **p** - peek into room + * **q** - quit commode + * **r** - room history + * **R** - extended history + * **s** - send private + * **w** - (lower case w) who is in the current room + * **W** - (upper case w) who is in a different room + * **-** - (hyphen) key in command mode will fix your backspace (use this if your backspace keeps showing up as ^h or ^?) + * **+** - tell you utc + * **U** - (capital u) will tell you how long other users have been members and if they are ARPA or Meta-can-validate you + +**Note:** //Although you type '"com"' to start com, the man page is accessed with '"man commode"'// + +---- + +$Id: comnotirc.html,v 1.17 2018/04/30 13:20:33 wliao Exp $ \ No newline at end of file diff --git a/dump/contact.html.docuwiki b/dump/contact.html.docuwiki new file mode 100644 index 0000000..086532b --- /dev/null +++ b/dump/contact.html.docuwiki @@ -0,0 +1,17 @@ +====== [[index.html|SDF ARC]] ====== + +===== SDF.ORG's Amateur Radio Club ===== + + * [[index.html|Home]] + * [[roster.html|Roster]] + * [[net.html|NET]] + * [[repeaters.html|Repeaters]] + * [[contact.html|Contact Us]] + +==== Contact Us ==== + +The best way to contact us is to use the SDF BBoard. Go to the HAMRADIO section. + +We also have a mailing list available. Please send an email to [[mailto:majordomo@sdf.org|majordomo@sdf.org]] with "subscribe sdfarc-l" in the body to join the list. + + Copyright © black_white | [[http://validator.w3.org/check?uri=referer|HTML5]] | [[http://jigsaw.w3.org/css-validator/check/referer|CSS]] | [[http://www.html5webtemplates.co.uk|Free CSS Templates]]$Id: contact.html,v 1.4 2018/03/03 23:29:11 hobbsc Exp $ \ No newline at end of file diff --git a/dump/cp.html.docuwiki b/dump/cp.html.docuwiki new file mode 100644 index 0000000..6875e62 --- /dev/null +++ b/dump/cp.html.docuwiki @@ -0,0 +1,23 @@ + 11/3/70 + CP (I) + + NAME cp -- copy + + SYNOPSIS cp file11 file12 file21 file22 ... + + DESCRIPTION Files are taken in pairs; the first is opened for reading, + the second created mode 17. Then the first is copied into + the second. + + FILES + + SEE ALSO cat, pr + + DIAGNOSTICS Error returns are checked at every system call, and + appropriate diagnostics are produced. + + BUGS The second file should be created in the mode of the first. + + A directory convention as used in mv should be adopted to cp. + + OWNER ken, dmr \ No newline at end of file diff --git a/dump/cvs_on_sdf.html.docuwiki b/dump/cvs_on_sdf.html.docuwiki new file mode 100644 index 0000000..d1f64d8 --- /dev/null +++ b/dump/cvs_on_sdf.html.docuwiki @@ -0,0 +1,89 @@ +====== CVS On SDF ====== + +===== Table of Contents ===== + + * [[#sec-1|1 Introduction]] + * [[#sec-2|2 Creating A Repository]] + * [[#sec-3|3 Importing A Directory:]] + * [[#sec-4|4 Checking It Out]] + * [[#sec-5|5 Accessing It Remotely]] + * [[#sec-6|6 More info on CVS ]] + +===== [[|1 Introduction]] ===== + +This tutorial is not about using a version control system, or about using cvs, but about how to get started with cvs on SDF + +===== [[|2 Creating A Repository]] ===== + +The cvs repository is just a simple directory. Our repository will be made in our home directory, and we will name it "cvs". + +cvs requires that you use an absolute path to the repository. To learn the full path to your home directory type: + + cd; pwd + +In the rest of this document you will need to replace '/path/to/homedir/' by the output of the previous command. + +Creating our repository is very simple: + + cd + mkdir cvs + cvs -d /path/to/homedir/cvs init + +That's it. + +===== [[|3 Importing A Directory:]] ===== + +Let's add our website into our repository: + + cd html + cvs -d /path/to/homedir/cvs import -m "initial import" html user start + +In this command + + * '-d /path/to/homedir/cvs' specify the path to our repository. Alternatively you can add: + export CVSROOT='/path/to/homedir/cvs' to your ~/.profile file. You must use an absolute path. + * 'import' is our cvs command + * '-m "initial import" is a message that will appear in the log. + * 'html' is the name of our new module + * 'user' is a vendor tag, you can use your username or SDF or whatever + * 'start' is a release tag. + +You can modify the message, the module name and the tags to your liking, just keep in mind that in the rest of this tutorial we will use 'html' for the module name. + +===== [[|4 Checking It Out]] ===== + + cd + mkdir tmp + cd tmp + cvs -d /path/to/homedir/cvs co html + +This should be enough to convince ourselves that the directory is now under version control. + +===== [[|5 Accessing It Remotely]] ===== + +We can access our repository from the outside using ssh, to do this we need to set the environment variable CVS_RSH so that cvs will use ssh, using for instance: + + export CVS_RSH=ssh + +And then use for the variable CVS_ROOT, or the -d switch: ':ext:user@freeshell.org:/path/to/homedir/cvs/', where + + * 'user' is your login name at SDF a + * 'freeshell.org' is your prefered host at SDF + * '/path/to/homedir/cvs' is the full path to our repository at SDF. + +For instance to check out our html module: + + cvs -d ':ext:user@freeshell.org:/path/to/homedir/cvs' co html + +After having made our modifications, we just need to check our changes back in: + + cvs update # if we made some changes elsewhere + cvs -d ':ext:user@freeshell.org:/path/to/homedir/cvs' ci html + +===== [[|6 More info on CVS ]] ===== + + * [[http://www.cvshome.org|cvs home]] + * [[http://www.cvshome.org/cvs/manual/cvs-1.11.21/cvs.html|Version Management with CVS by Per Cederqvist]] + * man cvs + +$Id: cvs_on_sdf.html,v 1.3 2015/01/28 01:01:52 grobe0ba Exp $ \ No newline at end of file diff --git a/dump/date.html.docuwiki b/dump/date.html.docuwiki new file mode 100644 index 0000000..5f25de8 --- /dev/null +++ b/dump/date.html.docuwiki @@ -0,0 +1,18 @@ + 11/3/70 + DATE (I) + + NAME date - print the date + + SYNOPSIS date + + DESCRIPTION The current date is printed to the second. + + FILES + + SEE ALSO + + DIAGNOSTICS It is always 1970. + + BUGS + + OWNER wkt \ No newline at end of file diff --git a/dump/dialup.html.docuwiki b/dump/dialup.html.docuwiki new file mode 100644 index 0000000..8e4bd90 --- /dev/null +++ b/dump/dialup.html.docuwiki @@ -0,0 +1,85 @@ +====== SDF Dialup Membership ====== + +===== What is DIALUP Membership? ===== + +Best way to learn about the //DIALUP// SDF membership is to login to your SDF shell account and enter **dialup**: + + you@sdf: dialup + + SDF provides analogue and digital (ISDN) DIALUP service to members. + To get a list of numbers in your area, use 'getdialup'. + + Some quick tips and things to note: + + 1) You can choose from 54,143 dialup numbers in the USA & Canada + 2) Connections from 1200bps to 52000bps or 64kbps to 128kbps ISDN + 3) Read the bboard: for discussions on the membership + 4) Your dialup login is you@tenex.org + 5) use 'setdialup' to maintain your DIALUP login and SMTP AUTH password + 6) Pay your dues via paypal or mail (type 'address' for more details) + + Dues are: $10/mo, $27/qtr, $48/semi and $84/year and + membership is open to all validated members, no setup fee, a + monthly average of 15 hours a day, no dialer, no adverts! Enjoy! + +The SDF>DIALUP FAQ and [[http://dialup.tenex.org/|dialup.tenex.org]] have additional information. Before you sign-up though you may want to run **getdialup** first to see what numbers are in your local/extended [[http://en.wikipedia.org/wiki/Local_telephone_service| calling area]]. Usually this information is contained in your local telephone directory. + +example: list all (503) access numbers in the Portland, OR area + + you@sdf: getdialup 503 | grep Portland + (503) 258-7011 Portland OR pi PacWest + (503) 258-7023 Portland OR pi PacWest + (503) 548-0317 Portland OR pi PacWest + (503) 416-2098 Portland OR st Du_MegaPop + (503) 488-3200 Portland OR st Du_MegaPop + (503) 734-3200 Portland OR st Du_MegaPop + (503) 258-7014 Portland OR n3 Du_Sprint + (503) 914-0040 Portland OR pw Du_PacWest + (503) 974-0040 Portland OR pw Du_PacWest + (503) 914-0558 Portland OR pw Du_PacWest + (503) 972-0302 Portland OR pw Du_PacWest + (503) 467-6101 Portland OR pw Du_PacWest + (503) 548-0317 Portland OR pw Du_PacWest + (503) 412-1576 Portland OR yn YourNetPlus + +Users in rural areas may find no local access numbers and would need to weigh the cost of long distance charges. + +===== I've got SDF DIALUP membership - Now What? ===== + +Now you need to run **setdialup** and set the type of account and your DIALUP password. Most users will want to leave the //type// set to "NETWORK PPP", the default: + + you@sdf: setdialup + + SETDIALUP Version 2 + + [p] Set your DIALUP and SMTP Auth password + [n] Set your connection type to NETWORK PPP (default) + [s] Set your connection type to SHELL + [t] Set your connection to TIP + [r] REMOVE your DIALUP Membership + [q] QUIT + + Choice? + +Enter "p" to set password: + + Choice? (SET) PASSWORD + + Setting your password for DIALUP LOGIN: you@tenex.org + This will also serve as your SMTP AUTH for you.tenex.org + New password:******** + Retype new password:******** + Password set for you@tenex.org + Updates issued by mkhomepg, mkvhost, mkvpm and setdialup are executed + within 10 minutes. + + Choice? + +Enter "q" to quit: + + Choice? QUIT + You are you@tenex.org using a NETWORK type LOGIN + +That's it - time to get your modem set up and configured... + +$Id: dialup.html,v 1.3 2011/01/16 08:51:31 jgw Exp $ \ No newline at end of file diff --git a/dump/dialup_equipment.html.docuwiki b/dump/dialup_equipment.html.docuwiki new file mode 100644 index 0000000..e729bd0 --- /dev/null +++ b/dump/dialup_equipment.html.docuwiki @@ -0,0 +1,63 @@ +====== Getting Ready for SDF Dialup: Equipment ====== + +Typical requirements for dial-up networking: + + * an SDF DIALUP account (username, password, and access numbers) + * a computer that supports PPP dial-up networking + * a POTS (Plain Old Telephone Service) line (aka a "land line") + * a two-wire phone cord with RJ-11 connectors + * an analog modem (aka "56k modem" or "dial-up modem") + +Assuming you've got the first two items taken care of... + +===== Getting a POTS line ===== + +You'll need to contact your local telco company for this; in the US this will usually be either one of the "baby Bells" like //Qwest//, or //Verizon//. Check your local telephone directory if you're unsure. Typical cost for a basic land line is around $25/month with all the taxes. About the only extra you might want is call waiting if your modem is V.92 (see below) and you don't want to miss incoming calls. Don't be surprised if the telco asks for a deposit and takes a week to activate your line... + +===== Phone Cords ===== + +These can be picked up almost anywhere; chances are you already have one. That said, the typical flat phone cord isn't ideal as there is barely enough copper to carry a signal and the pair isn't twisted. Best option is to get some connector crimps and modern communication cable and make your own cord. And don't stop at the phone jack; if the wires running to the customer service box are really old replace them too. + +===== Dialup Modems ===== + +"Modem" stands for //MOdulator-DEModulator// and is a device that modulates/demodulates an analog carrier signal to encode/decode digital information. Modems allow digital computers to communicate over analog telephone lines. In the case of dial-up, the modem is of "narrow band", ie. it operates within the traditional POTS frequency band of 0 to 4 KHz. + +==== Physical Types: In vs Out ==== + +There's basically two types: + + * **Internal**: typically a bus-powered card installed inside a PC; sometimes integrated into the main system board. Examples are: ISA (obsolete), PCI (current), PCMCIA (obsolete), mini-PCI (current). \\ \\ + * **External**: stand-alone units, typically with multiple indicator lights and external power supply. Most have legacy DB9 or DB25 serial ports and use standard serial cables to connect to the PC, though USB-based units are also available. Various PCI/PCIe cards and USB adapters are available to add serial support to newer computers. + +==== Functional Types: Soft vs Hard ==== + +Modems can either be //HARD//ware or //SOFT//ware driven. Software modems (softmodems) require OS-specific drivers to function whereas hardware modems (hardmodems) rely on self-contained controller chips for functionality and are therefor generally OS-independent. + +In general: + + * //most internal modems are softmodems// (aka "WinModems") and often only work with Microsoft Windows OS + * //most external modems are hardmodems//, though some USB modems are driver-dependent (ie. softmodems) + +Users in need of a hardmodem should look for terms like "controller-based" or "supports DOS/Linux/Mac OSX" + +==== Current Modem Protocols and Speeds: ==== + +Modern telco networks switched to digital equipment in the late 1990s; the V.90/V.92 modem protocols were designed to take advantage of those telco upgrades and make use of hardware compression to increase transmission rates up to 320.0 kbits/s. + + * V.90: cir. 1999; 53.3 kbit/s download and 33.6 kbit/s upload + * V.92: cir. 2000; 53.3 kbit/s download and 53.3 kbit/s upload ; supports call-waiting + +Most SDF Dialup access numbers support at least V.90. Older modems may work as well but at slower speeds - ie. V.34 modems operate at 28.8 kbits/s + +==== General Setup ==== + +Internal modems are easy: just install it in an open card bay, plug one end of the phone cord into the the modem jack, the other into the phone jack in the wall/baseboard. External modems work similarly except you'll also need to connect the modem to the computer via either a serial or USB cable, and of course plug in the modem's power supply. Once all the cables are connected, power up and configure the dial-up PPP network connection (see the Windows and Ubuntu examples). + +===== References: ===== + + * [[http://en.wikipedia.org/wiki/Modem|Wikipedia Modem page]] + * [[http://en.wikipedia.org/wiki/Softmodem|Wikipedia SoftModem page]] + * [[http://en.wikipedia.org/wiki/RJ-11|Wikipedia RJ-11 page]] + * [[http://en.wikipedia.org/wiki/Serial_cable|Wikipedia Serial Cable page]] + +$Id: dialup_equipment.html,v 1.2 2011/01/16 09:43:09 jgw Exp $ \ No newline at end of file diff --git a/dump/dialup_ubuntu.html.docuwiki b/dump/dialup_ubuntu.html.docuwiki new file mode 100644 index 0000000..b48ee37 --- /dev/null +++ b/dump/dialup_ubuntu.html.docuwiki @@ -0,0 +1,126 @@ +{{tutorials/images/dialup_ubuntulogo.png}} + +====== SDF Dial-up via //pppconfig// and //pon|poff|plog// on Ubuntu ====== + +===== Introduction: ===== + +There are several ways to setup a PPP-based dial-up network connection on Linux. This tutorial illustrates setting up such a connection using **pppconfig** on //Ubuntu// Linux. Once set up, regular users can start, stop and monitor the network connection via **pon**, **poff** and **plog**. All of these tools are console-based and the initial setup requires the user to invoke superuser privileges via the **sudo** command. + +===== Prerequisites: ===== + +Verify that the modem is installed correctly and that **pppconfig**, **pon**, **poff** and **plog** are present on your system (all should be part of the base Ubuntu install). The **which** command is useful for this: ie. "which pppconfig" should return "/usr/sbin/pppconfig". Also have your SDF Dial-up account information at hand: username, password, local access number. See [[http://sdf.org/?faq?DIALUP|FAQ>DIALUP]] for details. + +A word about modems: most internal modems are "WinModems" (MS Windows only) and will not likely work with Linux; the best option is an external "hardware modem" that connects via a serial or USB port. Such modems contain their own controller chip (hence the term "hardware modem") and do not rely on special drivers to function. That said, if all you have is a WinModem it is possible that someone has created a Linux driver for it; check at [[http://linmodems.org/| linmodems.org]] to see if yours is supported. + +===== Basic Setup: ===== + +Open a terminal window (click Applications>Terminal ; maximize window) and invoke **pppconfig** using the **sudo** command: + + # mr_retro@rustbucket:~$ sudo pppconfig + [sudo] password for mr_retro: + +**pppconfig** should launch ; it's a curses-based application that uses the TAB and Up/Down Arrows to move between fields, SPACE to toggle fields on/off and ENTER to select. The following screens show an account call //SDF_dialup// being set up for a 56K external modem installed on serial port ///dev/ttyS1// for fictional SDF user //mr_retro// authenticating via PAP to //tenex.org// (the SDF radius server): + +{{tutorials/images/dialup_ubuntu01.png}} + +{{tutorials/images/dialup_ubuntu02.png}} + +{{tutorials/images/dialup_ubuntu03.png}} + +{{tutorials/images/dialup_ubuntu04.png}} + +{{tutorials/images/dialup_ubuntu05.png}} + +{{tutorials/images/dialup_ubuntu06.png}} + +{{tutorials/images/dialup_ubuntu07.png}} + +{{tutorials/images/dialup_ubuntu08.png}} + +{{tutorials/images/dialup_ubuntu09.png}} + +{{tutorials/images/dialup_ubuntu10.png}} + +{{tutorials/images/dialup_ubuntu11.png}} + +If you made a mistake anywhere you can re-start **pppconfig** and edit your newly created account. Use the "Advanced Options" for making tweaks to your modem's initialization settings. + +===== Starting, Stopping and Monitoring the Dial-up Network Connection: ===== + +==== Startup: ==== + +**pon** gets your dial-up network connection going: + + # mr_retro@rustbucket:~$ pon SDF_dialup + +You should hear the modem initiating the handshake. If all goes well you should be connected; use **ping** to test: + + # mr_retro@rustbucket:~$ ping -c1 sdf.org + PING sdf.org (192.94.73.15) 56(84) bytes of data. + 64 bytes from SDF.ORG (192.94.73.15): icmp_seq=1 ttl=248 time=72.7 ms + + --- sdf.org ping statistics --- + 1 packets transmitted, 1 received, 0% packet loss, time 0ms + rtt min/avg/max/mdev = 72.726/72.726/72.726/0.000 ms + +==== Monitoring: ==== + +**plog** provides a simple PPP log file interface. It accepts the same options as **tail(1)** ; use //-f// to provide an on-going dump of events in a separate terminal: + + # mr_retro@rustbucket:~$ plog -f + Jan 12 15:16:05 rustbucket pppd[2039]: pppd 2.4.5 started by mr_retro, uid 1001 + Jan 12 15:16:06 rustbucket chat[2042]: abort on (BUSY) + Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO CARRIER) + Jan 12 15:16:06 rustbucket chat[2042]: abort on (VOICE) + Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO DIALTONE) + Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO DIAL TONE) + Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO ANSWER) + Jan 12 15:16:06 rustbucket chat[2042]: abort on (DELAYED) + Jan 12 15:16:06 rustbucket chat[2042]: send (ATZ^M) + Jan 12 15:16:06 rustbucket chat[2042]: expect (OK) + Jan 12 15:16:08 rustbucket chat[2042]: ATZ^M^M + Jan 12 15:16:08 rustbucket chat[2042]: OK + Jan 12 15:16:08 rustbucket chat[2042]: -- got it + Jan 12 15:16:08 rustbucket chat[2042]: send (ATDT5551234567^M) + Jan 12 15:16:08 rustbucket chat[2042]: expect (CONNECT) + Jan 12 15:16:08 rustbucket chat[2042]: ^M + Jan 12 15:16:41 rustbucket chat[2042]: ATDT5551234567^M^M + Jan 12 15:16:41 rustbucket chat[2042]: CONNECT + Jan 12 15:16:41 rustbucket chat[2042]: -- got it + Jan 12 15:16:41 rustbucket chat[2042]: send (\d) + Jan 12 15:16:42 rustbucket pppd[2039]: Script /usr/sbin/chat -v -f /etc/chatscripts/SDF_dialup finished ... + Jan 12 15:16:42 rustbucket pppd[2039]: Serial connection established. + Jan 12 15:16:42 rustbucket pppd[2039]: using channel 6 + Jan 12 15:16:42 rustbucket pppd[2039]: Using interface ppp0 + Jan 12 15:16:42 rustbucket pppd[2039]: Connect: ppp0 <--> /dev/ttyS1 + ... + +==== Stopping: ==== + +**poff** shuts down your dial-up network connection: + + # mr_retro@rustbucket:~$ poff SDF_dialup + +You should hear the modem drop the connection ; verify with **plog**: + + # mr_retro@rustbucket:~$ plog + ... + Jan 12 15:16:45 rustbucket pppd[2039]: Script /etc/ppp/ip-up finished (pid 2046), status = 0x0 + Jan 12 15:30:18 rustbucket pppd[2039]: Terminating on signal 15 + Jan 12 15:30:18 rustbucket pppd[2039]: Connect time 13.6 minutes. + Jan 12 15:30:18 rustbucket pppd[2039]: Sent 39110 bytes, received 406951 bytes. + Jan 12 15:30:18 rustbucket pppd[2039]: Script /etc/ppp/ip-down started (pid 2083) + Jan 12 15:30:18 rustbucket pppd[2039]: sent [LCP TermReq id=0x2 "User request"] + Jan 12 15:30:18 rustbucket pppd[2039]: Script /etc/ppp/ip-down finished (pid 2083), status = 0x0 + Jan 12 15:30:18 rustbucket pppd[2039]: rcvd [LCP TermAck id=0x2] + Jan 12 15:30:18 rustbucket pppd[2039]: Connection terminated. + Jan 12 15:30:20 rustbucket pppd[2039]: Exit. + +===== References: ===== + + * pppconfig(8) - configure pppd to connect to the Internet + * pon(1), poff(1), plog(1) - starts up, shuts down or lists the log of PPP connections + * Ubuntu Community Documentation - [[https://help.ubuntu.com/community/DialupModemHowto/|Ubuntu Dialup HowTo]] + * Debian Linux Modem Configuration - [[http://www.aboutdebian.com/modems.htm|Dial-up Modems]] + +$Id: dialup_ubuntu.html,v 1.2 2011/01/16 09:43:09 jgw Exp $ \ No newline at end of file diff --git a/dump/dialup_winxp.html.docuwiki b/dump/dialup_winxp.html.docuwiki new file mode 100644 index 0000000..a5c7df8 --- /dev/null +++ b/dump/dialup_winxp.html.docuwiki @@ -0,0 +1,37 @@ +{{tutorials/images/dialup_winxplogo.png}} + +====== SDF Dial-up via //Network Connections Wizard// on Windows XP ====== + +===== Introduction: ===== + +Although many modems, especially internal WinModems, come with configuration software, using the native //Network Connections Setup Wizard// to configure a dial-up network connection is fairly straightforward and consistent irregardless of the modem hardware. This tutorial illustrates the steps needed for an SDF Dial-up account. + +===== Prerequisites: ===== + +Verify that the modem is installed correctly and that any required modem driver(s) are also installed. If needed, click on //Settings>Control Panel>System// , then select //Hardware>Device Manager// and locate //Modems>your_modem//. Click //Action>Properties//; your modem's multi-tab Properties window will appear. If all is well the Device Status (under the General tab) box will read "This device is working properly". If it is not, consult your modem documentation to understand why. You may need to tweak your modem's settings using other tabs on the Modem Properties window. + +===== Basic Setup: ===== + +Click //Start>Settings>Control Panel>Network Connections>New Connection Wizard//. The "Welcome to the New Connection Wizard" window will appear. Click //Next//. The following illustrates the SDF Dial-up connection creation process for fictional SDF user //mr_retro// using a built-in Lucent WinModem on a computer running Windows XP: + +{{tutorials/images/dialup_winxp01.png}} {{tutorials/images/dialup_winxp02.png}} + +{{tutorials/images/dialup_winxp03.png}} {{tutorials/images/dialup_winxp04.png}} + +{{tutorials/images/dialup_winxp05.png}} {{tutorials/images/dialup_winxp06.png}} + +{{tutorials/images/dialup_winxp07.png}} {{tutorials/images/dialup_winxp08.png}} + +Click on the newly created Desktop "SDF dialup" shortcut ; the following dialog box appears. If you made any mistakes during the account creation you can make some changes by clicking on //Properties//. + +{{tutorials/images/dialup_winxp09.png}} {{tutorials/images/dialup_winxp10.png}} + +If all is correct click "Dial" to initiate the connection. + +Once connected, you can view the connection status and details by clicking on the Network Connection icon in the system tray (just to the left of the clock, lower right-hand corner): + +{{tutorials/images/dialup_winxp11.png}} {{tutorials/images/dialup_winxp12.png}} + +To shutdown the dial-up connection click "Disconnect" or simply power down the computer. + +$Id: dialup_winxp.html,v 1.2 2011/01/16 09:43:09 jgw Exp $ \ No newline at end of file diff --git a/dump/directory.html.docuwiki b/dump/directory.html.docuwiki new file mode 100644 index 0000000..4278482 --- /dev/null +++ b/dump/directory.html.docuwiki @@ -0,0 +1,34 @@ + 11/3/70 + DIRECTORY (V) + + NAME format of directories + + SYNOPSIS + + DESCRIPTION A directory behaves exactly like an ordinary file, save + that no user may write into a directory. The fact that a + file is a directory is indicated by a bit in the flag word + of its i-node entry. + + Directory entries are 8 words long. The first word is the + i-node of the file represented by the entry, if non-zero; + if zero, the entry is empty. + + Words 1-4 represent the (8-character) file name, space + padded on the right. These words are not necessarily + cleared for empty slots. + + By convention, the first entry in each directory is + for "dd", which is the "directory directory" that holds + all the users' home directories and the "system" directory. + The "system" directory contains "init" and "sh". + + FILES + + SEE ALSO file system format + + DIAGNOSTICS + + BUGS + + OWNER ken, dmr \ No newline at end of file diff --git a/dump/donations.html.docuwiki b/dump/donations.html.docuwiki new file mode 100644 index 0000000..21c2d43 --- /dev/null +++ b/dump/donations.html.docuwiki @@ -0,0 +1,31 @@ +====== Donating to the SDF Public Access UNIX System ====== + +[[#howto|Jump straight to instructions for donating]] + +To quote the [[http://sdf.lonestar.org/index.cgi?faq?BASICS|SDF FAQ]] + +> The Super Dimension Fortress is a networked community of free software authors, teachers, students, researchers, hobbyists, enthusiasts and the blind. It is operated as a federally recognised non-profit 501(c)7 and is supported by its members.Their mission is to provide remotely accessible computing facilities for the advancement of public education, cultural enrichment, scientific research, and recreation. Members can interact electronically with one another regardless of their location using passive or interactive forums. + +To learn more about SDF, its history, and its mission, you can read + + * [[http://sdf.lonestar.org/index.cgi?faq|The SDF FAQ]] + * [[http://en.wikipedia.org/wiki/SDF_Public_Access_Unix_Network|SDF's Wikipedia Entry]] + +The best way to learn about SDF would be to [[http://sdf.lonestar.org/index.cgi?access|join yourself]]! + +Unlike [[http://en.wikipedia.org/wiki/Public_Broadcasting_Service|American Public Broadcasting]], [[http://en.wikipedia.org/wiki/Mozilla_Firefox|The Mozilla Foundation]], and other popular non-profits, there are currently no large corporate sponsors of SDF. This means that it depends entirely on support from individuals like you. + +SDF's 501(c)7 status means that donations to it are //not// tax-deductible. + +---- + +You can donate to SDF + + * Via PayPal (for donations of $5.00 or more): + * By Mail:\\ Send a check, money order, or cash ([[http://en.wikipedia.org/wiki/United_States_dollar|USD($)]], [[http://en.wikipedia.org/wiki/Canadian_dollar|CAD($)]], [[http://en.wikipedia.org/wiki/Euro|EUR(€)]], [[http://en.wikipedia.org/wiki/Pound_sterling|GBP(£)]], [[http://en.wikipedia.org/wiki/Australian_dollar|AUD($)]], [[http://en.wikipedia.org/wiki/Renminbi|RMB(¥)]], or [[http://en.wikipedia.org/wiki/Japanese_yen|JPY(¥)]]) to + SDF Public Access UNIX + PO BOX 17355 + SEATTLE WA 98127 USA + * Via the donation button at the bottom of the main page: http://sdf.org + +$Id: donations.html,v 1.9 2014/09/11 09:06:17 grobe0ba Exp $ \ No newline at end of file diff --git a/dump/dotfiles.html.docuwiki b/dump/dotfiles.html.docuwiki new file mode 100644 index 0000000..4c3b6b7 --- /dev/null +++ b/dump/dotfiles.html.docuwiki @@ -0,0 +1,11 @@ +====== Directory Tree ====== + +===== Dotfiles currently unavailable - contact sysadmin ===== + +tutorials/dotfiles\\ |-- [[tutorials/dotfiles/.abookrc_yargo|.abookrc_yargo]]\\ |-- [[tutorials/dotfiles/.bash_logout_jwodder|.bash_logout_jwodder]]\\ |-- [[tutorials/dotfiles/.bashrc_jwodder|.bashrc_jwodder]]\\ |-- [[tutorials/dotfiles/.bbkill_jbaber|.bbkill_jbaber]]\\ |-- [[tutorials/dotfiles/.bboardrc_jbaber|.bboardrc_jbaber]]\\ |-- [[tutorials/dotfiles/.elinks_jbaber/|.elinks_jbaber]]\\ | `-- [[tutorials/dotfiles/.elinks_jbaber/elinks.conf|elinks.conf]]\\ |-- [[tutorials/dotfiles/.exrc_jbaber|.exrc_jbaber]]\\ |-- [[tutorials/dotfiles/.exrc_yargo|.exrc_yargo]]\\ |-- [[tutorials/dotfiles/.fetchmailrc_yargo|.fetchmailrc_yargo]]\\ |-- [[tutorials/dotfiles/.forward_mackie|.forward_mackie]]\\ |-- [[tutorials/dotfiles/.forward_yargo|.forward_yargo]]\\ |-- [[tutorials/dotfiles/.gopherrc_yargo|.gopherrc_yargo]]\\ |-- [[tutorials/dotfiles/.ispell_english_jbaber|.ispell_english_jbaber]]\\ |-- [[tutorials/dotfiles/.mailcap_jwodder|.mailcap_jwodder]]\\ |-- [[tutorials/dotfiles/.mailcap_mackie|.mailcap_mackie]]\\ |-- [[tutorials/dotfiles/.mailcap_yargo|.mailcap_yargo]]\\ |-- [[tutorials/dotfiles/.mime.types_jwodder|.mime.types_jwodder]]\\ |-- [[tutorials/dotfiles/.mutt_jbaber/|.mutt_jbaber]]\\ | |-- [[tutorials/dotfiles/.mutt_jbaber/colors1|colors1]]\\ | |-- [[tutorials/dotfiles/.mutt_jbaber/colors2|colors2]]\\ | |-- [[tutorials/dotfiles/.mutt_jbaber/colors3|colors3]]\\ | |-- [[tutorials/dotfiles/.mutt_jbaber/colors4|colors4]]\\ | `-- [[tutorials/dotfiles/.mutt_jbaber/mailcap|mailcap]]\\ |-- [[tutorials/dotfiles/.mutt_jwodder/|.mutt_jwodder]]\\ | |-- [[tutorials/dotfiles/.mutt_jwodder/gmail|gmail]]\\ | |-- [[tutorials/dotfiles/.mutt_jwodder/gpg|gpg]]\\ | |-- [[tutorials/dotfiles/.mutt_jwodder/keys|keys]]\\ | |-- [[tutorials/dotfiles/.mutt_jwodder/muttrc|muttrc]]\\ | `-- [[tutorials/dotfiles/.mutt_jwodder/sdf|sdf]]\\ |-- [[tutorials/dotfiles/.mutt_mackie/|.mutt_mackie]]\\ | `-- [[tutorials/dotfiles/.mutt_mackie/gpg|gpg]]\\ |-- [[tutorials/dotfiles/.muttrc_jbaber|.muttrc_jbaber]]\\ |-- [[tutorials/dotfiles/.muttrc_mackie|.muttrc_mackie]]\\ |-- [[tutorials/dotfiles/.muttrc_yargo|.muttrc_yargo]]\\ |-- [[tutorials/dotfiles/.nailrc_jgw|.nailrc_jgw]]\\ |-- [[tutorials/dotfiles/.nethackrc_jwodder|.nethackrc_jwodder]]\\ |-- [[tutorials/dotfiles/.nexrc_yargo|.nexrc_yargo]]\\ |-- [[tutorials/dotfiles/.nn_init_jwodder|.nn_init_jwodder]]\\ |-- [[tutorials/dotfiles/.osh.login_jneitzel|.osh.login_jneitzel]]\\ |-- [[tutorials/dotfiles/.oshrc_jneitzel|.oshrc_jneitzel]]\\ |-- [[tutorials/dotfiles/.pinerc_dyera|.pinerc_dyera]]\\ |-- [[tutorials/dotfiles/.plan_jbaber|.plan_jbaber]]\\ |-- [[tutorials/dotfiles/.procmailrc_mackie|.procmailrc_mackie]]\\ |-- [[tutorials/dotfiles/.procmailrc_slugmax|.procmailrc_slugmax]]\\ |-- [[tutorials/dotfiles/.procmailrc_yargo|.procmailrc_yargo]]\\ |-- [[tutorials/dotfiles/.profile_jbaber|.profile_jbaber]]\\ |-- [[tutorials/dotfiles/.profile_jwodder|.profile_jwodder]]\\ |-- [[tutorials/dotfiles/.profile_xbeastx|.profile_xbeastx]]\\ |-- [[tutorials/dotfiles/.profile_yargo|.profile_yargo]]\\ |-- [[tutorials/dotfiles/.screenrc_jbaber|.screenrc_jbaber]]\\ |-- [[tutorials/dotfiles/.screenrc_jgw|.screenrc_jgw]]\\ |-- [[tutorials/dotfiles/.screenrc_jwodder|.screenrc_jwodder]]\\ |-- [[tutorials/dotfiles/.slrn_jwodder/|.slrn_jwodder]]\\ | |-- [[tutorials/dotfiles/.slrn_jwodder/scorefile|scorefile]]\\ | `-- [[tutorials/dotfiles/.slrn_jwodder/slrnhelp|slrnhelp]]\\ |-- [[tutorials/dotfiles/.slrnrc_jwodder|.slrnrc_jwodder]]\\ |-- [[tutorials/dotfiles/.snownews_jbaber/|.snownews_jbaber]]\\ | |-- [[tutorials/dotfiles/.snownews_jbaber/browser|browser]]\\ | |-- [[tutorials/dotfiles/.snownews_jbaber/colors|colors]]\\ | |-- [[tutorials/dotfiles/.snownews_jbaber/html_entities|html_entities]]\\ | `-- [[tutorials/dotfiles/.snownews_jbaber/keybindings|keybindings]]\\ |-- [[tutorials/dotfiles/.subversion_config_jwodder|.subversion_config_jwodder]]\\ |-- [[tutorials/dotfiles/.tcshrc_jgw|.tcshrc_jgw]]\\ |-- [[tutorials/dotfiles/.vimrc_jwodder|.vimrc_jwodder]]\\ |-- [[tutorials/dotfiles/README|README]]\\ `-- [[tutorials/dotfiles/index.html|index.html]]\\ \\ + +6 directories, 61 files \\ \\ + +---- + +tree v1.5.0 (c) 1996 - 2004 by Steve Baker and Thomas Moore \\ HTML output hacked and copyleft (c) 1998 by Francesc Rocher \\ Charsets / OS/2 support (c) 2001 by Kyosuke Tokoro \ No newline at end of file diff --git a/dump/dsl.html.docuwiki b/dump/dsl.html.docuwiki new file mode 100644 index 0000000..2217afb --- /dev/null +++ b/dump/dsl.html.docuwiki @@ -0,0 +1,7 @@ +=== Configuration and Use of SDF's DSL INTERNET Service === + + * A Brief Introduction to DSL + * An Overview of the Equipment + * A Basic Configuration + * A Local Area Network + * [[#dns|DNS Servers]]\\ ===== [[|DNS Servers]] =====[[http://www.opendns.com/|opendns.com]]\\ \\ \\ [[https://www.lifewire.com/free-and-public-dns-servers-2626062|here]]\\ $Id: dsl.html,v 1.6 2019/11/15 18:37:39 thegiant Exp $ \ No newline at end of file diff --git a/dump/e-mail-advanced.html.docuwiki b/dump/e-mail-advanced.html.docuwiki new file mode 100644 index 0000000..0bdcc63 --- /dev/null +++ b/dump/e-mail-advanced.html.docuwiki @@ -0,0 +1,254 @@ +====== E-Mail, Advanced Topics ====== + +This tutorial discusses advanced topics concerning e-mail on SDF: spam filtering, automatic processing, forwarding. It is probably only useful for ARPA members. + +==== Contents ==== + + - [[#intro|Introduction, and what this is //not//]] + - [[#forward|Forwarding E-Mail]] + - [[#fetch|Fetching E-Mail]] + - [[#spam|Fighting Spam]] + - [[#whitelist|Personal White List Against Spam]] + - [[#dnsbl|Using Procmail With a DNSBL]] + - [[#ssh-smtp|Use SDF SMTP Server Remotely via SSH]] + +---- + +===== [[|Introduction, and what you //will not// find here]] ===== + +Here we discuss advanced topics for e-mail processing on SDF, mainly automatic processing of incoming messages with "procmail", and forwarding issues. As "procmail" is only available to ARPA members, the contents of this tutorial will be mostly useless to user members. \\ For basic info about e-mail (addresses, reader programs, file size, etc), please read the corresponding [[http://sdf.lonestar.org/index.cgi?faq?EMAIL|FAQ]] entry - and if you still have problems with basic sending and receiving of messages via SDF, this tutorial is most probably not for you! + +===== [[|Forwarding E-Mail]] ===== + +The "sendmail" system allows for automatic forwarding of incoming mail to other addresses or even programs (filters).\\ The file "$HOME/.forward" may contain the following types of lines: + +somebody@somewhere.comexternal e-mail address, where a copy of each mail will be sent|"filterprogram"will pipe the incoming messages through "/bin/sh" with the argument "filterprogram" + +However, if you want to do more than forwarding to one address, use of "procmail" is highly recommended! In fact, it is best to set up [[#nospam|nospam -e]], which will generate a .forward file with a line calling procmail, and then to modify the resulting ".procmailrc". + +===== [[|Fetching E-Mail]] ===== + +Use "fetchmail" to collect messages from accounts you might have elsewhere. The messages are given to "procmail" (see [[#forward|Forwarding E-Mail]] above) for further processing. + +==== [[|Sample ".fetchmailrc"]] ==== + + poll pop.provider.net + proto pop3 + user "john.doe" + pass "secret" + is "jdoe" here + mda "/path/to/procmail -f- ~/.procmailrc" + ssl; + +===== [[|Fighting Spam]] ===== + +To fight unwanted bulk e-mail (spam), there are several possibilities available on SDF: + + - As a general remark, think before you publish or tell somebody your e-mail address! And try to make clear to people that you don't want your address on a visible list of 500 recipients from somebody's address book; one should use Bcc: for sending to a lot of people in parallel, not To:! + - SDF also supports plus-addressing; you can use this to join mailing lists and do filters. This can be used by adding +something before the @ in your email address. + - The [[http://sdf.lonestar.org/index.cgi?faq?EMAIL?07|FAQ]] has more information about [[#nospam|nospam]], available on SDF. + - The automatic mail processor "procmail" (see "man procmail" for more information) allows to filter incoming mail following user defined rules; in particular, you can generate a [[#whitelist|white list]] of sender addresses you know as good, and put messages from other addresses into a special folder which you browse through now and then, to check for good messages and adding the corresponding addresses to your white list. + +==== [[|nospam]] ==== + +"nospam" is a script which can set up .forward and .procmailrc files so that certain e-mails will be stored in "bulk folders". \\ "nospam -i" gives some additional information, and "nospam -e" will enable this filtering. We will suppose that this has been done also for the following discussion of [[#whitelist|white lists]]. + +===== [[|Personal White List Against Spam]] ===== + +//White lists// contain e-mail addresses which are always to be accepted as good. It is easy to implement this with "procmail": Supposing that "nospam -e" has been executed, so that basic procmail processing is set up, one can add the following fragment to ".procmailrc". + +//Note:// For this to be working, the following //must// have been set up: + + * a ".forward" file which pipes incoming e-mail through "procmail" + * a standard ".procmailrc" file, where this fragment is attached or inserted + +The easiest method to install these files is by launching "nospam -e" as mentioned [[#nospam|above]], then adding the fragment to the generated ".procmailrc". \\ (Of course, it is possible to deactivate or delete all the initial procmailrc lines generated by nospam, which move messages with attachments to the bulk folder, if such messages should pass through the whitelist filter.) + + # procmail spamfilter using whitelist (2006 Yargo Bonetti) + # :: use at your own risk and any way you want! :: + # whitelist: file containing one valid e-mail address per line + # (only generic xxx@yyy.zz form, without "Name.." <*> parts) + WHITELIST=$MAILDIR/.whitelist + # spamfilter + FROM=`formail -c -x 'From:'|sed -e 's/.*<\(.*@[^>]*\)>.*/\1/'` + :0 hb: + * ! ? grep -i -F -e "$FROM" $WHITELIST >/dev/null + $MAILDIR/quarantine + +This will compare the address in the From: field of incoming messages to the ones saved in the file $MAILDIR/.whitelist (of course, name and location can be changed), and when an address is //not found// in this file, the message will be saved in the folder $MAILDIR/quarantine (which can be modified as well) and not show up in the normal Inbox (and not be processed further). Now and then, one can look through the quarantine folder for "good messages", and add the corresponding addresses to the .whitelist file. + +If you want to use the mail directories proposed by nospam, you may prepend the above noted fragment by + + MAILDIR=$HOME/mail + +which will result in storing the "possibly bad" messages in "~/mail/quarantine" and expect the whitelist in "~/mail/.whitelist". + +A sample .whitelist may look like this: + + my.friend@his.domain.com + president@whitehouse.gov + myself@gmail.com + +All messages not coming from these three addresses would end up in the "quarantine" folder defined in the .procmailrc fragment. + +===== [[|Using Procmail With a DNSBL]] ===== + +DNSBL stands for "DNS blacklist", and it is essentially a collection of IP addresses known to send out spam and other bad stuff. Two popular DNSBLs are [[http://www.spamcop.net|SpamCop]] and [[http://www.spamhaus.org|Spamhaus]]. Typically the mail server will check the source of incoming mail with the DNSBL before even accepting the message. SDF does not do this, but using Procmail to check a DNSBL at the user level is easy. In this tutorial we will use Spamhaus. + +(Thank you [[http://www.benya.com/procmail/#dnsbl|Benya]] for the original instructions.) + +First make sure that "~/.forward" is set-up to forward incoming mail to Procmail. Then we'll edit "~/.procmailrc". The beginning of this file should declare basic variables such as "SHELL=/bin/sh", "LOGFILE=$HOME/.procmaillog", "ORGMAIL", "DEFAULT", and "MAILDIR". "ORGMAIL" and "DEFAULT" should point to your inbox, and "MAILDIR" should point to the directory that contains your saved mail. + +Next Procmail should extract the IP address from which the message was sent. This is done using "formail" to get the headers, "grep" to find the correct line, and "sed" to find the actual IP address, which is then saved as "SENDERIP". + + SENDERIP = `formail -c -XReceived | grep "by sdf.lonestar.org" | \ + grep -v "from sdf.lonestar.org" | \ + sed "s/^Received: from .*\[\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)\].*by sdf.lonestar.org.*$/\1/"` + +Then we'll begin the actual Procmail recipe, which will only be executed after checking to make sure that the "SENDERIP" variable exists and is in the correct format. Anything written to the "LOG" variable will be inserted into the log file. (New lines must be explicitly stated.) + + :0 + * SENDERIP ?? ^^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*^^ + { + LOG = "The sender's IP address is " + LOG = $SENDERIP + LOG = " + " + +The next step is to reverse the IP address because Spamhaus wants it that way. Procmail will then use "host" to determine the IP address that [reversed IP address].zen.spamhaus.org resolves to. + + SENDER_REVERSED = `expr "$SENDERIP" | \ + sed "s/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\4.\3.\2.\1/"` + + KNOWNOFFENDER = `host "$SENDER_REVERSED".zen.spamhaus.org | \ + sed "s/^.*\(127\.0\.0\.[0-9]*\)$/\1/"` + +If Spamhaus returns an IP address between 127.0.0.0 and 127.0.0.9, then we know that this particular email is of dubious origin. In that case we can put it in the folder "$MAILDIR/Spam". Otherwise, the message will get written to your inbox by default. + + :0 + * KNOWNOFFENDER ?? ^^127.0.0.[0-9]*^^ + { + LOG = "This sender is a known source of spam. + " + + :0: + Spam + } + + LOG = "This sender is not a known source of spam. + " + } + +This completes the Procmail recipe. + +\\ + +===== [[|Use SDF SMTP Server Remotely via SSH]] ===== + +==== Introduction: ==== + +Using SSH's port-forwarding capabilities, MetaARPA members can create an encrypted tunnel which makes the SDF SMTP mail server appear local, avoiding need for authentication or additional encryption. + + **Prerequisites:** + * SDF MetaARPA membership + * SSH plus suitable MUA (email program) + * public key authentication (optional) + +==== Tunnel Construction: ==== + +Port-forwarding can occur on ports 53, 110, 143, 443, and 993 on most SDF hosts. + +> **ex:**\\ Use port //443// on SDF host //"otaku"//, tunnel local port //2525// to port //25// on SDF host //"mx"// (SMTP server); restrict\\ ssh to IPv4, no remote commands, run in background after connecting: +% **ssh -4 -fN -p 443 -L 2525:mx:25 sdf_user@otaku.sdf.org** + +Note if public key authentication isn't setup a password prompt occurs. + +==== Tunnel Test: ==== + +//telnet(1)// can be used; type //"quit"// to exit session: + +> % **telnet localhost 2525** +Trying 127.0.0.1... +Connected to localhost. +Escape character is '^]'. +220 sdf.lonestar.org ESMTP Sendmail 8.14.5/8.14.3; Tue 13 Dec 2011 07:45:59 GMT +**quit** +221 2.0.0 sdf.lonestar.org closing connection +Connection closed by foreign host. + +==== Tunnel Usage: ==== + +Configure MUA to use //"127.0.0.1"// (localhost), port //2525// for out-going messages. Also ensure the //From:// and //ReplyTo:// addresses are routeable. Handling of rejected email is MUA-dependent - some do queuing, others write to //$HOME/dead.letter// or ///dev/null//: + +> **ex:**\\ Configure and test the //Heirloom Mailx// MUA for user //"frog"// on localhost //"mud.bog"//\\ to use //"localhost:2525"// for SMTP (off-site email): +# **//$HOME/.nailrc//**" +set smtp="localhost:2525" +set from="You <someone@sdf.org>" +set replyto="You <someone@sdf.org>" " +% **hmail -v someone@sdf.org** +Subject: tunneled SMTP test +test 123 +. +Resolving host localhost . . . done. +Connecting to 127.0.0.1:2525 . . . connected. +220 sdf.lonestar.org ESMTP Sendmail 8.14.5/8.14.3; Tue, 13 Dec 2011 08:21:22 GMT +>>> HELO mud.bog +250 sdf.lonestar.org Hello IDENT:root@otaku.sdf.org [192.94.73.6], pleased to meet you +>>> MAIL FROM: +250 2.1.0 ... Sender ok +>>> RCPT TO: +250 2.1.5 ... Recipient ok +>>> DATA +354 Enter mail, end with "." on a line by itself +>>> . +250 2.0.0 pBD8LM7d000515 Message accepted for delivery +>>> QUIT +221 2.0.0 sdf.lonestar.org closing connection + +==== Tunnel Teardown: ==== + +The SSH tunnel can be torn down by identifying the appropriate PID (process ID) and sending it a //kill// signal, via the //kill(1)// command or similar tool. The following illustrates the teardown process using //sockstat(1)// to determine the PID on the //NetBSD// operating system: + +> % **sockstat -np 2525** +USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS +frog ssh 24362 7 tcp 127.0.0.1.2525 *.* +% **kill -HUP 24362** +Killed by signal 1. + +==== Tunnel Maintenance: ==== + +Network connections can fail for various reasons; a keep-alive script can help:\\ (script contributed by SDF user //nullogic// - thanks!) + +> " +#!/bin/bash +# sdftun.sh: Keep alive script for local ssh tunnel from home to SDF SMTP +SSH_USER= +SSH_HOST='faeroes.freeshell.org' +SSH_PORT=443 +SSH_ARGS='-N -f -L' +TAG_HOST=mx +TAG_PORT=25 +LIS_PORT=8080 +LOG_FILE=~/l0g/sdftun.log +SLEEP="30m" +while [ 1 ]; do +SSH_PID=`ps aux | sed -n -e /sed/d -e /ssh\ \-N/p | wc -m` +if [ $SSH_PID -eq 0 ]; then +ssh $SSH_ARGS $LIS_PORT:$TAG_HOST:$TAG_PORT $SSH_USER@$SSH_HOST \ +-p$SSH_PORT &>/dev/null +DATE_TIME=`date '+%y.%m.%d %T'` +echo "$DATE_TIME SSH Tunnel restarted.">>$LOG_FILE +fi +sleep $SLEEP +done +" + +Writing the PID to a file at the time of tunnel creation can simplify the ID process. + + **References:** + * Setting up [[http://sdf.org/?tutorials/SSH-SDF#public_key|Public Key Authentication]] + * OpenSSH FAQ: How do I use [[http://openssh.com/faq.html#2.11|Port Forwarding?]] + +---- + +$Id: e-mail-advanced.html,v 1.17 2012/01/06 21:53:01 jgw Exp ruscorp $ \ No newline at end of file diff --git a/dump/e-mail-basics.html.docuwiki b/dump/e-mail-basics.html.docuwiki new file mode 100644 index 0000000..b31103e --- /dev/null +++ b/dump/e-mail-basics.html.docuwiki @@ -0,0 +1,146 @@ +====== E-Mail, Basics ====== + +This tutorial covers the basics of accessing E-mail on SDF. Topics include command-line and remote access. Configuration of mail retrieval programs ("fetchmail", "getmail") and Mail User Agents (such as Mozilla Thunderbird) will also be covered. + +==== Contents ==== + + - [[#intro|Introduction, and what this is //not//]] + - [[#reading|Reading E-mail on SDF]] + - [[#fetch|Fetching E-Mail with "fetchmail" or "getmail"]] + - [[#webmail|Accessing SDF E-mail via Webmail]] + - [[#guimua|Configuring Graphical Mail User Agents]] + - [[#ios|Configuring Mail in iOS (as a MetaARPA member)]] + +---- + +===== [[|Introduction, and what you //will not// find here]] ===== + +For basic info about e-mail (addresses, reader programs, file size, etc), please read the corresponding [[http://sdf.lonestar.org/index.cgi?faq?EMAIL|FAQ]] entry. Continue reading for more information about using E-mail services at SDF. + +If you want to use a SDF's SMTP server to send mail, you must either log in and use one of the clients as described in [[http://sdf.org?tutorials/e-mail-beginners|the previous tutorial]], or register at an appropriate [[http://sdf.lonestar.org/index.cgi?faq?MEMBERS?01|membership level]] (VPM, VHOST, or MetaARPA) and [[http://sdf.org?tutorials/smtpauth|connect using SMTP AUTH]]. + +===== [[|Reading E-Mail on SDF]] ===== + +Multiple mail clients are available to be used from the shell, including "pine" and "mutt". + +===== [[|Fetching E-Mail with "fetchmail", "getmail" or "offlineimap"]] ===== + +==== [[|Sample ".fetchmailrc"]] ==== + +You can use "fetchmail" to retrieve messages from your SDF account. The "fetchmail" example below is configured to use POP3 to retrieve E-mail. Note that this configuration does not use SSL. Also note that you will need to provide your user names and the path to procmail. You may omit the "pass" line to be prompted for your password. "fetchmail" can be run in //daemon// mode to retrieve mail at a desired interval: "fetchmail -d 900". + + poll wm.sdf.org + proto pop3 + user "sdf.username" + pass "secret" + is "local.username" here + mda "/path/to/procmail -f- ~/.procmailrc"; + +==== [[|Sample ".getmail/sdf"]] ==== + +"wm.sdf.org" supports IMAPs in addition to POP3. This configuration //will// use SSL. A IMAP configuration (sans SSL) is commented out below. Use "getmail" to collect messages. Note that you will have to provide local and remote user names and you will be prompted for your password. Also note that this configuration uses procmail as a delivery agent. + + [destination] + type=MDA_external + path=/usr/bin/procmail + arguments=("-dlocal.username",) + + [options] + read_all=False + delete=False + + [retriever] + type=SimpleIMAPSSLRetriever + #type=SimpleIMAPRetriever + server=wm.sdf.org + username=remote.username + #password= + port=993 + #port=143 + +You could alternatively configure, for instance, a Maildir destination if you would prefer not to use "procmail": + + [destination] + type = Maildir + path = ~/Maildir/ + +==== [[|Sample ".offlineimaprc"]] ==== + +Another option to retrive E-mail is "offlineimap". The example below uses it to retrive messages with IMAP, using SSL for encryption, and storing them in Maildir format. The first option "accounts" contain a comma separated list of accounts to sync, "acc1" and "acc2" are given as an example, they are not needed if you are only syncing the sdf account. You may also need to adjust the value of "cert_fingerprint" from time to time. + + accounts = acc1,acc2,sdf + + [Account sdf] + + localrepository = sdf-local + remoterepository = sdf-remote + + [Repository sdf-local] + + type = Maildir + localfolders = ~/Maildir + restoreatime = no + + [Repository sdf-remote] + + type = IMAP + ssl = yes + cert_fingerprint = 204b2c6188ce0d38fa1eb3e5db6e88af4e05f868 + remotehost = mx.sdf.org + remoteport = 993 + remoteuser = isf + +===== [[|Accessing SDF E-mail via Webmail ]] ===== + +General users visit [[https://wm.sdf.org|wm.sdf.org]], MetaARPA members visit [[https://ma.sdf.org|ma.sdf.org]] if you've forwarded your mail to the MetaArray. + +===== [[|Configuring Graphical Mail User Agents]] ===== + +==== Mozilla Thunderbird Configuration ==== + +//Server Settings// Server Type: IMAP Mail Server \\ Server Name: mx.sdf.org \\ Port: 993 \\ User Name: remote.username \\ + +//Security Settings// Connection security: SSL/TLS \\ Use secure authentication: (unchecked) \\ + +==== Apple Mail ==== + +Mail » Preferences » Accounts \\ Click + + +Enter your name and SDF E-mail address, then click "Continue". + +//Incoming Mail Server// Account Type: IMAP \\ Description: SDF \\ Incoming Mail Server: mx.sdf.org \\ User Name: remote.username \\ Password: remote.password \\ Click "Continue" + +Use your ISP's SMTP server for outgoing mail - unless you opt for an SDF membership level that allows SMTP, in which case see the [[http://sdf.org?tutorials/smtpauth|smtpauth tutorial]]. \\ Click "Continue" + +You should now see an account summary page. Verify the summary and click "Create". \\ You can now return to the Accounts preferences, select "Advanced", and if necessary add:\\ IMAP Path Prefix: INBOX \\ + +==== Outlook 365 for Windows 10 ==== + +This one's not as obvious as you'd think. You'll need to close Outlook to begin with, and run this command. Click Start and then type: + +outlook.exe /manageprofiles + +then click on __E__mail Accounts... » New... » Manual setup or additional server type » Next » POP or IMAP » then fill in the form: + +Your Name: Filbert Exampleton\\ Email Address: efilbert@sdf.org\\ Account Type: IMAP\\ Incoming mail server: mx.sdf.org\\ Outgoing mail server: fill this in with a valid SMTP\\ User Name: efilbert\\ Password: ednaedison123\\ + +then click More Settings... » Outgoing Server » My outgoing server (SMTP) requires authentication » Log on using » fill in the fields witn your smtp » OK » next + +Outlook will perform a connection test, and after it passes, you can exit the wizard and configuration program. When you start Outlook back up, the SDF mail account should appear. What a friggin headache. + +==== [[|Configuring Mail in iOS (as a MetaARPA member)]] ==== + +This can likely be done as an ARPA member, refer to system help or "bboard" for more information. + + * Open **Settings** and select **Mail, Contacts, and Calendars** + * Select **Add Account**, then **Other** + * Select **Add Mail Account** and fill in the relevant information. + +Automatic setup will fail. Once prompted, enter the following server information: + + * Incoming Mail Server + * Host Name: "wm.sdf.org" + * User Name: "your sdf username" + * Password: "your sdf password" + +$Id: e-mail-basics.html,v 1.19 2019/09/09 14:45:09 jawsh Exp $ \ No newline at end of file diff --git a/dump/e-mail-beginners.html.docuwiki b/dump/e-mail-beginners.html.docuwiki new file mode 100644 index 0000000..2e9d20a --- /dev/null +++ b/dump/e-mail-beginners.html.docuwiki @@ -0,0 +1 @@ +**E-mail Beginners at a UNIX prompt**\\ \\ If you are new to UNIX you might like this tutorial to help you start sending and receiving E-mail at SDF. You should be a verified member before you can start using E-mail at SDF. \\ \\ Assuming you have already logged into and started using SDF a little, you should be comfortable with the command line by now. All you need to start sending and receiving E-mail is your E-mail Address and an E-mail Client. \\ \\ By default your E-mail Address is your SDF username, and you can choose the domain you would like to use from the list of SDF domain names. \\ \\ So if your username is "coffee" you can try sending yourself a mail with your existing E-mail account to: \\ \\ coffee@freeshell.org \\ \\ If you do not have an existing E-mail account you may wish to have another SDF member send you a test mail, sometimes E-mail boxes do not work properly until a test mail has been sent. \\ \\ Now log into SDF and type the command "alpine". This will open up a terminal based E-mail client where you can send and receive mail. All of the commands to operate alpine are listed on the bottom of the terminal, and generally speaking you just have to tap a key to operate. \\ \\ It is pretty self explanatory. \\ \\ The first time you open alpine you might have to answer a few questions, but generally if you just tap enter a couple times after opening alpine you will be in your E-mail inbox. At that point you can use the up and down arrow keys to navigate through emails and press enter on the one you would like to read. After reading the mail you can reply by tapping 'r'. To send the mail you will have to hold down the Ctrl key and tap 'x'. \\ \\ All controls which require holding down the Ctrl key and tapping another key will be signified with the '^' symbol in the command list. So if you see **^R** that means you should hold down Ctrl and tap 'r' to do that command. \\ \\ To return to the message index (your inbox) you will see the command list states '<'. Thus you simply type a '<' by holding down the shift key and tapping the '<' key. \\ \\ There are many other methods of sending and receiving mail at SDF, and they are all quite easy to learn and self explanatory. You can experiment with 'mutt' (another terminal based mail client) by typing the command 'mutt' at the terminal, and you can read further E-mail tutorials for setting up visual mail clients on your local computer. \\ \\ Continue to [[http://sdf.org?tutorials/e-mail-basics|E-Mail Basics]]\\ \\ You can also view the [[http://sdf.lonestar.org/index.cgi?faq?EMAIL|E-mail FAQ]]. \ No newline at end of file diff --git a/dump/e-mail-blacklist-issues.html.docuwiki b/dump/e-mail-blacklist-issues.html.docuwiki new file mode 100644 index 0000000..323bb24 --- /dev/null +++ b/dump/e-mail-blacklist-issues.html.docuwiki @@ -0,0 +1,39 @@ +====== E-Mail Blacklist Issues ====== + +Because SDF is a public unix, there are many users, and many emails being sent. + +Sometimes, some users can get SDF into trouble with their actions, unintentional or not. When this happens, you may not be able to send emails to people at some other Internet Service Providers. You may get emails with subject //Returned mail: see transcript for details// including error message like the following after sending mail to these correspondees: + + * (reason: 550 5.7.1 Unfortunately, messages from [205.166.94.20] weren't sent. Please contact your Internet se...ail.live.com/mail/troubleshooting.aspx#errors. + * 421 4.7.0 [TSS04] Messages from 205.166.94.20 temporarily deferred due to user complaints - 4.16.55.1; see https://help.yahoo.com/kb/postmaster/SLN3434.html.. Deferred: 421 4.7.0 [TSS04] Messages from 205.166.94.20 temporarily deferred due to user complaints - 4.16.55.1; see https://help.yahoo.com/kb/postmaster/SLN3434.html + * The following addresses had permanent fatal errors... (reason: 554 resimta-ch2-19v.sys.comcast.net resimta-ch2-19v.sys.comcast.net 205.166.94.20 found on one or more DNSBLs, see http://postmaster.comcast.net/smtp-error-codes.php#BL001000) + +If this happens, aside from contacting //membership// on [[http://sdf.org/?tutorials/bboard-tutorial|bboard]] //REQUESTS//, you can also try to get SDF off the blacklist for your emails to your correspondee. + +Fill out forms for the following ISPs. //you may need to create an account of your own on the target ISP so you will also be a customer//. You should go ahead and represent yourself as a representative of SDF. + +Stuff to know: + + * SDF server mail IP = **205.166.94.20** + * SDF mail server IP = **mx.sdf.org** + * SDF mail reverse DNS = **mx.sdf.org** + * SDF mail contact, //you// and/or membership@sdf.org + +===== List of Forms and Related pages for major ISPs that may block SDF mail ===== + + * yahoo uses spamhaus, apparently, so you can use yahoo's request page, and also Spamhaus + * yahoo: here's a guide on [[https://www.rackaid.com/blog/how-to-remove-your-email-server-from-yahoos-blacklist/|how to fill out Yahoo's bulk email sender form]] (even if you are just a regular emailing schlub). [[http://help.yahoo.com/l/us/yahoo/mail/postmaster/bulkv2.html|Yahoo! Bulk Email Sender Form]] + * another customer contact form [[https://io.help.yahoo.com/contact/index?page=contactform&locale=en_US&token=Zh/BBVqXzLHlIbokbUqVWTUbuuQeXGkGnZzhKR2JQ4O6mMQdy9JSWdtWFXvjthcYCRj9bUIFfycOfG+4GOHPHoOGa8HwDO2+0kYRtTcdR8O13Mvs9cOruJ0TlC3hh4bCEtPlZ0yk7fvp1MFjGnAOWw==&selectedChannel=email-icon&isVip=false|https://io.help.yahoo.com/contact/index?page=contactform&locale=en_US...]] + * spamhaus https://www.spamhaus.org/lookup/ + * outlook https://support.microsoft.com/en-us/supportrequestform/8ad563e3-288e-2a61-8122-3ba03d6b8d75 + * comcast https://abuse.vadesecure.com/ + +Other items to check out: + + * for outlook [[https://sendersupport.olc.protection.outlook.com/snds/JMRP.aspx?wa=wsignin1.0|sender support link]] + * [[http://mailspike.org/iplookup.html|mailspike.org]] maybe related to Comcast + * [[https://support.proofpoint.com/dnsbl-lookup.cgi?ip=205.166.94.20|Proofpoint]] - they fix stuff for some ISPs, maybe Apple? + * https://support.google.com/mail/troubleshooter/2696779?hl=en - Google Gmail blacklist removal request + * https://talosintelligence.com/reputation_center/lookup?search=205.166.94.20 - Talos Intelligience Reputation Look up. Requires a "CISCO" login to dispute reputation. + +$Id: e-mail-blacklist-issues.html,v 1.10 2020/06/25 17:20:07 peteyboy Exp $ \ No newline at end of file diff --git a/dump/ecl_tutorial.html.docuwiki b/dump/ecl_tutorial.html.docuwiki new file mode 100644 index 0000000..f242b46 --- /dev/null +++ b/dump/ecl_tutorial.html.docuwiki @@ -0,0 +1,160 @@ +====== Using ECL (Embeddable Common-Lisp) on SDF ====== + +==== Contents: ==== + + * [[#what|What is ECL?]] + * [[#compare|ECL vs CLISP]] + * [[#basics|ECL Basics]] + * [[#oneliners|ECL one-liners]] + * [[#asdf|ASDF]] + * [[#customize|Customizations]] + * [[#refs|References]] + +===== What is ECL? ===== + +ECL stands for //Embeddable Common-Lisp// and is a free open source ANSI Common-Lisp implementation. Its distinguishing attributes are maintaining a small-footprint, and being embeddable with existing C/C++ applications. ECL is LGPL licensed and hosted at [[http://ecls.sourceforge.net/|ecls.sourceforge.net]]. + +ECL-11.1.1 is currently available to MetaARPA members on most SDF hosts. + +===== ECL vs CLISP ===== + +There are currently two Common-Lisp implementations available on SDF; ECL and CLISP. Both are largely compliant with the ANSI Common-Lisp standard. Each supports various object systems, debugging, bytecode compiling, unicode, sockets, streams, etc. CLISP comes with built-in readline support; ECL doesn't, though it can be added; see the [[#asdf|ASDF]] section. In addition to being smaller and faster than CLISP, ECL can be embedded in C/C++ programs, allow embedded C/C++ code in Lisp programs, and produce stand-alone ELF executables. ECL is also very well documented. + +===== ECL Basics ===== + +By default ECL starts up in interactive mode. Log into SDF host //miku// and type "'ecl'"; you should see something like below: + + ECL (Embeddable Common-Lisp) 11.1.1 + Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya + Copyright (C) 1993 Giuseppe Attardi + Copyright (C) 2000 Juan J. Garcia-Ripoll + ECL is free software, and you are welcome to redistribute it + under certain conditions; see file 'Copyright' for details. + Type :h for Help. + Top level. + > + +The default ECL prompt is ">". Enter Common-Lisp commands in the usual way: + + > (+ 1 2 3) + 6 + + > (* 4 5) + 20 + + > (format t "hello SDF~&") + hello SDF + NIL + > + +In-line help is available ; type :h for options. The debugger can be entered using "(break)" ; once entered typed :h to see options. To exit the ECL interactive session type ":exit" . + +===== ECL one-liners ===== + +To use ECL as a script executor (ie. CGI) the //-shell// and/or //-eval// options can be used. The //-norc// is often a good addition so as to avoid unnecessary loading of modules, etc. + +ex: hello.lsp + + % echo '(format t "~&Hello SDF~&")' > hello.lsp + + % ecl -norc -script hello.lsp + Hello SDF + +It's also possible to use ECL to execute simple Common-Lisp one-liners at the command line (note that //princ// is needed for screen output): + + % ecl -norc -shell /dev/null -eval "(princ (* 1 2 3))" + 6 + +A nicer way to accomplish the same is to create a small shell script: + + #!/bin/sh + # lispit - executes a lisp expression and dumps it to stdout + + LSP_EXPR=${@} + + if [ "$#" -eq 0 ]; then + echo "lispit - executes a lisp expression" + echo " usage: lispit '(lisp_expression)'" + echo "" + exit 1 + fi + + ecl -norc -shell /dev/null -eval "(princ ${LSP_EXPR} )" + echo "" + exit 0 + +Example run: + + % lispit '(mapcar (lambda (x) (expt x 2)) `(1 2 3 4 5))' + (1 4 9 16 25) + +===== ASDF / enabling readline ===== + +ASDF (//Another System Definition Facility//) is an extensible build facility for Common-Lisp software. ECL comes with ASDF bundled in, however on SDF, users must setup their own ASDF repository under their $HOME directory. + +The following outlines the process, using the //ecl-readline// module (adds GNU readline support to ECL) as example: + +1) Create the user-level ASDF repository: + + % mkdir -p $HOME/LISP/ASDF + +2) Create the ASDF config directory and config file*: + + % cd $HOME + % mkdir -p .config/common-lisp/source-registry.conf.d + % vi .config/common-lisp/source-registry.conf.d/asdf.conf + + # ../asdf.conf + ;;additional directory for ASDF to search (no recursion): + (:directory "/LISP/ASDF/") + +*note: you can call the conf file anything you want. + +3) Download ecl-readline module and copy select files to $HOME/LISP/ASDF: + + % cd /tmp + % snarf http://www.common-lisp.net/project/ecl-readline/releases/ecl-readline-0.4.1.tar.gz + % tar xzf ecl-readline-0.4.1.tar.gz + % cd ecl-readline-0.4.1/ + % cp ecl-*.* $HOME/LISP/ASDF/ + +4) Create the ECL startup file: + + # $HOME/.eclrc + (require 'asdf) + (asdf:operate 'asdf:load-op 'ecl-readline) + (ecl-readline::enable) + +The next time you startup ECL it will compile the ecl-readline module and launch an interactive session. With ecl-readline enabled the default ECL prompt is "//CL-USER[n]>//" and you should then be able to use Emacs-style command editing and history recall. If you don't like the provided prompt you can change it by editing the //ecl-readline.lisp// file. + +===== Customizations ===== + +Additional modifications can be made to the ECL startup file, such as user-defined functions and tweaks to various modules. Below is a more nuanced example which reduces the verbosity at startup, modifies ecl-readline's history file location, and adds an external SHELL function similar to that found in CLISP: + + # $HOME/.eclrc + (require 'asdf) + (setf ASDF:*ASDF-VERBOSE* nil) ; quiets ASDF output some + (setf *load-verbose* nil) ; quiets the LOAD process some + (asdf:operate 'asdf:load-op 'ecl-readline) + (ecl-readline::enable :history-file "/var/tmp/.ecl-history") + ;; + ;; customizations + + ;; GNU clisp-like SHELL cmd + (defun shell (&optional (shell_cmd "$SHELL")) + "Args: (&optional shell_cmd) + SHELL calls the EXT:SYSTEM function. Executes SHELL_CMD if given, otherwise + User sub-shell is spawned. SHELL_CMD be string or symbol, 256 characters max." + (ext:system shell_cmd)) + +===== References: ===== + + * //ecl(1)// and //ecl-config(1)// manpages + * http://ecls.sourceforge.net/ + * [[http://common-lisp.net/project/asdf/|http://common-lisp.net/project/asdf]] + * [[http://common-lisp.net/project/ecl-readline/|http://common-lisp.net/project/ecl-readline]] + * [[http://www.cliki.net/Getting%20Started|Getting Started with Common-Lisp]] + +---- + +$Id: ecl_tutorial.html,v 1.4 2011/12/12 18:10:28 jgw Exp $ \ No newline at end of file diff --git a/dump/ed.html.docuwiki b/dump/ed.html.docuwiki new file mode 100644 index 0000000..4ae2c22 --- /dev/null +++ b/dump/ed.html.docuwiki @@ -0,0 +1,55 @@ +====== ed Cheat Sheet ====== + +ed is a small, powerful, line-oriented, command-line-interfaced text editor. All editors frustrate, but ed often amazes while others disappoint. + +[[http://www.gnu.org/fun/jokes/ed.msg.html|ed, man! !man ed]] — ed is the standard text editor. + +"man ed" for more information. + +Start ed from your shell command line: + +"ed //file//" + +Edit file by entering ed commands with the following syntax: + +"[//range//][//command//]" + +//range// specifies the line or block of consecutive lines (syntax: "//from-line//,//to-line//") to which //command// is applied. Default range is the current line except where noted below with a parenthesis preceding the command syntax. Lines are specified as follows: + +| //n// | line //n// | "." | current | "$" | last | "'"//c// | mark //c// | +| "-"[//n//] | up //n// (default: 1) | "+"[//n//] | down //n// (default: 1) | "," | 1,$ | ";" | .,$ | +| "?//re//?" | previous regexp match |||| "///re///" | next regexp match ||| + +===== Input commands ===== + +| "a" | Append after. | "c" | Change range. | "i" | Insert before. | "." | End input mode. | + +===== Edit commands ===== + +| "d" | Delete. | "s///re/////s///[g|//n//][p]" | Substitute. | +| "m[//line//]" | Move after //line//. | "t[//line//]" | Copy after //line//. | +| "(.,+)j" | Join lines. | "u" | Undo. | +| "(1,$)g///re/////cmds//" | Perform //cmds// for all matching lines. | "(1,$)v///re/////cmds//" | Perform //cmds// for all non-matching lines. | + +===== File commands ===== + +| "e [//file//*]" | Edit //file//. | "E [//file//*]" | Edit, discarding changes. | +| "($)r [//file//]" | Read and append. | "f [//file//]" | Set/display file name. | +| "(1,$)w [//file//*]" | Write. | "(1,$)W [//file//*]" | Append to //file//. | +| "(1,$)wq [//file//*]" | Write and quit. | + +| * | In place of //file//, specify ""!"//shell-command//" to read/write text to //shell-command// standard output/input. | + +===== Display commands ===== + +| "p" | List lines. | "l" | … with unprintables. | "n" | … with numbers. | +| "(+)z[//lines//]" | Scroll. | "(+)//null//" | "p" | + +===== Other commands ===== + +| "k//c//" | Mark line. | "($)=" | Display line number. | "h" | Last error text. | +| "!//shell-command//" | Execute //shell-command//. | "q" | Quit. | "Q" | Quit, discarding changes. | + +---- + +$Id: ed.html,v 1.5 2007/10/09 00:27:11 papa Exp $ \ No newline at end of file diff --git a/dump/emacs-cheatsheet.html.docuwiki b/dump/emacs-cheatsheet.html.docuwiki new file mode 100644 index 0000000..a51baaf --- /dev/null +++ b/dump/emacs-cheatsheet.html.docuwiki @@ -0,0 +1,190 @@ +====== Emacs Cheatsheet ====== + +[[#sec1|Basic Movement and Editing Commands]][[#sec2|Kill & Yank (Cut/Copy and Paste)]][[#sec3|Search & Replace]][[#sec4|Emacs Modes]][[#sec5|Buffers]][[#sec6|Windows]][[#sec7|Dired Mode]][[#sec8|Shell Modes]][[#sec9|Getting Help]][[#sec10|w3m mode]][[#sec11|Sample .emacs]] + +===== Basic Movement and Editing Commands ===== + +| C-x C-f | Find file and load into buffer (Emacs prompts for filename) | +| C-x C-s | Save the current buffer | +| C-x C-w | Save the current buffer under a different name (Emacs prompts for the new name) | +| C-x C-c | Quit Emacs, prompting if you have not saved any buffers | +| Arrow keys or C-f, C-b, C-n, C-p | Right (forward), left (back), down (next), up (previous), respectively | +| C-k | Delete from cursor to end of line | +| C-a | Go to start of line | +| C-e | Go to end of line | +| C-v | Go down a page | +| M-v | Go up a page | +| M-f | Go to next word | +| M-b | Go back one word | +| M-a | Go to previous sentence | +| M-b | Go to next sentence | +| C-/ | Undo | +| C-_ | Undo (alias for C-/) | +| C-x u | Undo (alias for C-/) | +| C-g | Abort the current command | +| C-l | Redraw and center screen at cursor | +| M-< | Go to start of buffer | +| M-> | Go to end of buffer | +| C-d | Delete next character | +| M-d | Delete next word | +| M-| | Execute shell command on region | +| Backspace | Delete previous character | + +===== Kill & Yank (Cut/Copy and Paste) ===== + +| C-space | Set the mark | +| C-w | Cut (kill) | +| M-w | Copy (kill) | +| C-y | Paste (yank) | +| M-y | Paste (yank) next saved selection | +| C-x h | Set point to start of buffer and mark to end of buffer (select the entire buffer) | +| C-x C-x | Swap point and mark | + +===== Search & Replace ===== + +| C-s | Incremental search forward | +| C-r | Incremental search backward | +| C-M-s | Regexp search forward | +| C-M-r | Regexp search backward | +| M-% | Search and replace | +| M-x query-replace-regexp | Search and replace with regexps | +| C-g | Abort a search | +| C-w | During a search, highlight the word around the cursor | +| Up, down arrow keys or M-p, M-n | Access search string history | + +===== Emacs Modes ===== + +| M-x modename | Toggle the given major or minor mode | +| C-h m | Display help on the current major mode, including any special key bindings in effect | +| M-q | Used in text-mode to reformat a paragraph of text manually | +| M-x global-font-lock-mode | Toggle syntax highlighting | + +===== Buffers ===== + +| C-x b | Switch to another buffer | +| C-x C-b | Display buffer list | +| C-x k | Kill current buffer (Emacs prompts for confirmation) | +| M-x iswitchb-mode | Enable iswitch mode, for smart buffer name completion with C-x b | + +===== Windows ===== + +| C-x 0 | Close this window | +| C-x 1 | Close all other visible windows | +| C-x 2 | Split horizontally | +| C-x 3 | Split vertically | +| C-x o | Switch to other window | +| C-M-v | Scroll other window | + +===== Dired Mode ===== + +| M-x dired | Load dired mode (Emacs prompts for directory name) | +| C-x C-f | Dired mode loaded when a directory is specified as load file | +| Left, right arrow keys or p, n | Previous and next file, respectively | +| Enter | Visit this file in this window | +| o | Visit this file in a new window | +| g | Refresh directory view | +| m | Mark file | +| u | Un-mark file | +| d | Mark a file for later deletion | +| x | Delete all files marked for deletion (Emacs prompts for confirmation) | +| D | Delete this file right now (Emacs prompts for confirmation) | +| C | Copy this file, or copy currently marked files (Emacs prompts for destination) | +| R | Rename/move this file, or rename/move currently marked files (Emacs prompts for destination) | +| M | Chmod this file, or chmod currently marked files (Emacs prompts for new permissions) | +| O | Chown this file, or chown currently marked files (Emacs prompts for new owner) | +| G | Chgrp this file, or chgrp currently marked files (Emacs prompts for new group) | +| + | Create directory (Emacs prompts for directory name) | +| ! | Execute shell command on this file, or currently marked files (Emacs prompts for command) | + +===== Shell Modes ===== + +| M-x shell | Shell mode, use M-p and M-n for command history | +| M-x eshell | Cross-platform Emacs Lisp shell emulator, use arrow keys for command history | +| M-x ansi-term | Full terminal emulator, suitable for full-screen applications. | + +===== Getting Help ===== + +| C-h t | Emacs tutorial | +| C-h a | Apropos (Emacs prompts for keyword or regexp) | +| C-h i | Load info browser | +| C-h m | Display help on current mode | +| C-h f | Display help on function (Emacs prompts for function) | +| C-h k | Display help on key (Emacs prompts for key) | +| M-x man | Display a man page in a new buffer (Emacs prompts for man page) | + +===== w3m mode ===== + +| M-x w3m | Start browsing web with emacs-w3m. | +| q | Close all emacs-w3m windows, without deleting buffers. | +| Q | Exit browsing web. All emacs-w3m buffers will be deleted. | +| RET | Display the page pointed to by the link under point. | +| C-c C-c | Submit the form at point. | +| R | Reload the current page. | +| r | Redisplay the current page. | +| TAB | Move the point to the next anchor. | +| M-TAB | Move the point to the previous anchor. | +| B | Move back to the previous page in the history. | +| N | Move forward to the next page in the history. | +| U | Visit the web page. | +| H | Go to the Home page. | +| M-d | Download the URL. | +| d | Download the URL under point. | +| \ | Display the html source of the current page. | +| SPC | Scroll up the current window, or go to the next page. | +| b | Scroll down the current window, or go to the previous page. | +| > | Scroll to the left. | +| < | Scroll to the right. | +| . | Shift to the left. | +| , | Shift to the right. | +| M-l | Recenter horizontally. | +| j | Next line. | +| k | Previous line. | +| l | Forward char. | +| h | Backward char. | +| s | Display the history of pages you have visited in the session. | +| S | Prompt for a search query and submit it to google. | +| v | Display the bookmarks list. | +| a | Add a url of the current page to a new bookmark. | +| M-a | Add the url under point to a new bookmark. | + +===== Sample .emacs ===== + + ;; Sample ~/.emacs file + ;; + ;; Un-comment what you want to enable and re-start Emacs + ;; + ;;Load iswitch mode + ;;(require 'iswitchb) + + ;;Make text mode the default for new buffers + ;;(setq default-major-mode 'text-mode) + + ;;Turn on refill-mode whenever text mode is entered + ;;(add-hook 'text-mode-hook + ;; '(lambda () (refill-mode 1))) + + ;;Enable syntax highlighting when it's allowed + ;;(when (fboundp 'global-font-lock-mode) + ;; (global-font-lock-mode t)) + + ;;Fix the backspace key + ;;(normal-erase-is-backspace-mode 1) + + ;;Use cperl-mode for editing Perl code, it is better than perl-mode + ;;(defalias 'perl-mode 'cperl-mode) + + ;;Don't blink my cursor, please + ;;(blink-cursor-mode nil) + + ;;Display the current time in the modeline + ;;(display-time-mode t) + + ;;Start the emacs server + ;; + ;;When this is running, programs calling emacsclient open a buffer + ;;in the already running emacs. Useful in mutt or pine for composing + ;;mail in Emacs. Type C-x # to exit client buffer and send the text + ;;back to the application that called it. + ;;(server-start) + +$Id: emacs-cheatsheet.html,v 1.4 2013/01/18 11:00:13 nullogic Exp $ \ No newline at end of file diff --git a/dump/emacs-tutorial.html.docuwiki b/dump/emacs-tutorial.html.docuwiki new file mode 100644 index 0000000..8c5add3 --- /dev/null +++ b/dump/emacs-tutorial.html.docuwiki @@ -0,0 +1,255 @@ +====== Emacs Tutorial ====== + +[[#sec1|Getting Started]][[#sec2|Basic Commands]][[#sec3|Getting Help]][[#sec4|Extended Commands and Command Completion]][[#sec5|Kill & Yank (Cut/Copy and Paste)]][[#sec6|Search & Replace]][[#sec7|Emacs Modes]][[#sec8|Buffers]][[#sec9|Windows]][[#sec10|Dired Mode]][[#sec11|Shell Modes]][[#sec12|Emacs Startup and Configuration]][[#sec13|Browsing the Web in Emacs with w3m]][[#sec14|Where to Go From Here]] + +===== Getting Started ===== + +Emacs is an extensible, customizable, full-screen text editor. You can learn enough to be productive in Emacs in 30 minutes, but there is enough to learn about Emacs to keep you busy for years. The goal of this tutorial is to show you enough so that you are comfortable using Emacs as a work environment, not just as a text editor. This document refers to GNU Emacs version 24 (the version installed on SDF). + +Start by typing "emacs" at the shell prompt, read the splash screen and hit any key to clear it. You'll be in a so-called //scratch buffer//. A //buffer// is a place in Emacs that usually contains the text of a file for editing (but can contain other text, like error messages, command output or directory contents). Anyway, the scratch buffer is just that - a place to scratch notes or otherwise put temporary snippets of text you don't care to save. When you exit Emacs, the contents of the scratch buffer are discarded. + +You will see a white or grey line at the bottom of the Emacs window, with some information displayed like the name of the buffer or file you are viewing, the line number your cursor is on, and whether or not the current buffer has been modified (indicated by two asterisks to the left of the buffer name). This is called the //modeline//. Like everything else in Emacs, what is displayed in the modeline is configurable, but the defaults should work fine for most people. + +Just below the modeline is a blank line called the //echo area// or //minibuffer//. The minibuffer is used when Emacs has to gather data from the user, like which filename to edit, or when Emacs has to display information to the user, like error messages. You will also see Emacs command sequences echoed here as you type them. + +===== Basic Commands ===== + +Emacs is a non-modal editor, meaning when you have a file loaded into a buffer, you can type text and it will appear directly in the buffer. You don't need to be in a special insert mode as in vi. That also means cursor movement and other text manipulation commands are not mapped to single alphabetic characters as in vi. Commands in Emacs are typically entered with a two- or three-key sequence, either Control- or Alt- followed by a one- or two-key sequence. The Control key in the Emacs documentation is denoted by "C" and Alt by "M" (Emacs documentation refers to the Alt key as Meta, hence the "M". The Esc key on most keyboards acts as an Alt or Meta key as well). For example, to quit Emacs, you type "C-x C-c", meaning you hold down the Control key, hit the "x" key and release it, then hit the "c" key and release it. To move up a screenfull of text, you type "M-v", meaning hold down the Alt key and type "v". With that in mind, here are a few useful key sequences: + +| C-x C-f | Find file and load into buffer (Emacs prompts for filename) | +| C-x C-s | Save the current buffer | +| C-x C-w | Save the current buffer under a different name (Emacs prompts for the new name) | +| C-x C-c | Quit Emacs, prompting if you have not saved any buffers | +| Arrow keys or C-f, C-b, C-n, C-p | Right (forward), left (back), down (next), up (previous), respectively | +| C-k | Delete from cursor to end of line | +| C-a | Go to start of line | +| C-e | Go to end of line | +| C-v | Go down a page | +| M-v | Go up a page | +| C-/ | Undo | +| C-_ | Undo (alias for C-/) | +| C-x u | Undo (alias for C-/) | +| C-g | Abort the current command | +| C-l | Redraw and center screen at cursor | +| M-< | Go to start of buffer | +| M-> | Go to end of buffer | +| Backspace | Delete previous character | + +===== Getting Help ===== + +GNU Emacs has excellent help facilities. Most of them are accessed with the prefix "C-h". The Emacs tutorial is an interactive introduction you can work through fairly quickly to learn the most common key bindings. "C-h i" accesses the GNU hypertext info browser from within Emacs, displaying system info pages (including the Emacs manual itself). Here are some of the help-related key bindings: + +| C-h t | Emacs tutorial | +| C-h i | Load info browser | +| C-h m | Display help on current mode | +| C-h f | Display help on function (Emacs prompts for function) | +| C-h k | Display help on key (Emacs prompts for key) | +| M-x man | Display a man page in a new buffer (Emacs prompts for man page) | + +===== Extended Commands and Command Completion ===== + +Emacs has the concept of //extended commands//, which consist of "M-x" followed by the name of the command. As an example of a useful extended command, sometimes the backspace key gets mapped to C-h (I find this happens sometimes under remote screen sessions, you'll know this is the case if you hit the backspace key twice and the emacs help buffer pops up, just hit "C-g" to clear the help window). To get the backspace key to act as it should (i.e., it deletes the previous character), you enter "M-x normal-erase-is-backspace-mode". That's a lot to type, so you can take advantage of Emacs' //command-completion// by typing a partial command and hitting the "Tab" key one or more times. In this case, you type "M-x normal-e" and hit "Tab", and Emacs will complete the command for you. You can then just hit "Enter" to execute the command. If you don't type enough of the command to make it unique, Emacs will display a list of alternatives for you to choose from. For example, if you type "M-x normal-" and hit the "Tab" key, Emacs will pop up a buffer named *Completion* with with two alternatives for you to choose from: normal-mode and mormal-erase-is-backspace-mode. Just type a bit more of the command you want and hit tab again to narrow the completion list or to complete the command if it is the only one left. + +===== Kill & Yank (Cut/Copy and Paste) ===== + +Most Emacs commands operate on the region defined by the //point//, which is the location of the cursor at any given time, and the //mark//, which is set with the command "C-space". To copy or cut a region of text, move the cursor to the start of the text area you are interested in and type "C-space". You will see "Mark set" in the echo area. Now move the cursor to the end of the text region (which moves the point) and type "M-w" for copy or "C-w" for cut (both called killing text). The text you copy or cut is stored by Emacs in the //kill-ring//, which is a circular buffer that stores the text snippets you kill in a last-in-first-out order. To paste the most recently stored text, move the cursor to where the text should be inserted, and type "C-y". The "y" stands for yank, what you'll see paste referred to in the Emacs help documentation (remember Emacs pre-dated modern windowing systems and other full-screen editors, so the terms cut and paste were not in use yet). After a yank ("C-y") command, you can replace the inserted text with earlier kills in turn by typing "M-y" one or more times. Each time you press "M-y" the next block of killed text is popped off of the kill ring and inserted into your buffer, replacing the last insert at the same time. + +Here are the commands we discussed above, and a few other useful ones: + +| C-space | Set the mark | +| C-w | Cut (kill) | +| M-w | Copy (kill) | +| C-y | Paste (yank) | +| M-y | Paste (yank) next saved selection | +| C-x h | Set point to start of buffer and mark to end of buffer (select the entire buffer) | +| C-x C-x | Go back to the last mark that was set | + +===== Search & Replace ===== + +Emacs has a nice search mode called //incremental search//. To use it, type "C-s". The text "I-search:" will appear in the echo area. Now start typing a search string. As you type, Emacs will search for your string in real-time (starting at point), highlighting any matches it finds. You can backspace and re-type text, and the search will continue to change with the text you type. When you find a match, you can hit "C-s" to search again and jump to the next match, or you can just hit "Enter" to exit the search mode and leave the cursor at the last match. "C-g" will abort the search and put your cursor back where you started. Searches will re-start at the top of a buffer if they hit the bottom. You can search backwards in a similar fashion with "C-r". + +To replace text that matches a search pattern, type "M-%". You'll see "Query replace:" in the echo area. Type a search string, and hit "Enter". The echo area will now display "Query replace <search string> with:". Type the replacement string, and hit "Enter" again. Emacs will search through your buffer, looking for the search string. When it finds it, it will display "Query replacing <search string> with <replacement string>: (? for help)". Type "y" to replace this match and move onto the next, or "n" to skip this match. Type "!" to replace this occurrence of the search string and all other occurrences in your buffer without prompting. As usual, you can type "C-g" to abort a search/replace operation. + +All searches in Emacs are case-insensitive by default, unless you type at least one capital letter in your search string - in that case, the search becomes case-sensitive. + +One nice feature you'll notice is that Emacs remembers the search and replacement strings you've used, so if you type "M-%" again, the last search/replace operation can be repeated by just hitting the "Enter" key. Prior search and replacement strings can be accessed with up- or down-arrow keys or "M-p" and "M-n" (for previous- and next-, respectively) - this is like the history mechanism in the Bash shell. + +Another nice tip during searches is that "C-w" will highlight the word around the cursor, then successive words each time it's pressed during a search (so the highlighted area will grow with each press of "C-w"). You can search again by typing "C-s", this time the search string is whatever was highlighted. + +Here are the search and replace commands we discussed: + +| C-s | Search forward | +| C-r | Search backward | +| M-% | Search and replace | +| C-g | Abort a search | +| C-w | During a search, highlight the word around the cursor | +| Up, down arrow keys or M-p, M-n | Access search string history | + +===== Emacs Modes ===== + +Emacs buffers are associated with one so-called //major mode// and one or more //minor modes//. Major modes typically denote a type of file, and are associated with special command sequences and syntax highlighting just for that file type. Minor modes change the behavior of an associated major mode in small ways. For example, the major mode for editing text is called text-mode, while the one for editing HTML is called html-mode. Both text and html modes have a minor mode called refill-mode that automatically formats paragraphs of text as you type (similar to the behavior you expect from a word processor). You can switch modes by just typing "M-x modename", so "M-x html-mode" would switch you into html-mode. Emacs can usually figure out the mode to use by the file extension, so if you visit (load with "C-x C-f") a file ending in .html or .htm, html-mode will be selected for you, and if you visit a file ending in .txt, text mode will be selected. + +As an example, say you want to create a new text document. You type "C-x C-f foo.txt" and Emacs creates an empty buffer for you named "foo.txt". Notice the modeline displays "(Text)" to indicate the major mode. Now type "M-x refi" and hit the Tab key. Emacs will complete "refill-mode". Hit enter, now the modeline displays "(Text Refill)" to indicate the major and minor modes in effect. Experiment with refill mode by typing some text and watch as Emacs wraps the lines for you. Now go back and add or delete some text and notice how the paragraph re-formats itself. Modes toggle on and off, so a second "M-x refill-mode" will turn refilling off. Type some text and notice Emacs no longer wraps lines or formats paragraphs for you. The mode for buffers not associated with any special file type is called fundamental-mode. This is the mode your scratch buffer is put in at startup. + +There are lots of Emacs major modes, many of which are useful for programmers. There is c-mode, perl-mode, and c++-mode, for example. Each mode has its own key bindings and syntax highlighting rules. You can see the details of the currently selected major mode by typing "C-h m". To enable syntax highlighting on a source-code file, you can type "M-x global-font-lock-mode" (on some operating systems, packaged versions of Emacs will enable font lock [syntax highlighting] for you automatically). + +As an example of special key bindings, in html-mode, the key sequence "C-c C-c h" will insert a properly formatted hyperlink into the text, prompting you for the URL first. In other modes this key sequence will have no effect. + +Here are some of the most useful mode commands: + +| M-x modename | Toggle the given major or minor mode | +| C-h m | Display help on the current major mode, including any special key bindings in effect | +| M-q | Used in text-mode to reformat a paragraph of text manually | +| M-x global-font-lock-mode | Toggle syntax highlighting | + +===== Buffers ===== + +When you visit a file with "C-x C-f", Emacs loads the file into a new buffer created just for that file. Existing buffers are not destroyed, but persist and can be switched to with "C-x b". Emacs will prompt you for a buffer name to switch to; tab-completion works here as it does in other places. One tip that I wish I had known when I first started using Emacs is to use a special mode called //iswitch mode// to help manage buffers. Since it's not uncommon to have dozens of buffers in an Emacs editing session, you can easily forget buffer names. With iswitch mode enabled, a "C-x b" displays a list of buffers in the echo area that changes in real-time as you type characters. You don't even have to type the first few letters of a buffer name, any substring of a buffer name will do. To enable iswitch mode, type the extended command "M-x iswitchb-mode" (we'll see later how to permanently enable modes like this in a startup file). To see a list of all buffers, type "C-x C-b". The buffer list will appear in a new window. Here is a list of some useful buffer commands: + +| C-x b | Switch to another buffer | +| C-x C-b | Display buffer list | +| C-x k | Kill current buffer (Emacs prompts for confirmation) | +| M-x iswitchb-mode | Enable iswitch mode, for smart buffer name completion with C-x b | + +===== Windows ===== + +The Emacs screen area can be divided into multiple //windows//. Each window contains one buffer, so the contents of a window can change depending on the buffer it contains. The most common way to create new windows is to split the screen into two regions with "C-x 2" or "C-x 3". The first splits the screen in half horizontally, the second splits it vertically. Any Emacs window can be split multiple times, so if you have a large display, you could have lots of windows open. You can cycle through visible windows with "C-x o" (think of the "o" as meaning "other window"). When you do have another window open, it's sometimes useful to scroll the other window without leaving your current one. You can do this with "C-M-v". This is particularly useful for when Emacs pops up a completion or help buffer in a new window that you would like to scroll through. + +You can close a window with "C-x 0" or "C-x 1". The first closes the window you are currently in, the second closes all the other windows, but leaves the window you are currently in open for you. Closing a window does not destroy the buffer it contains, so you can think of a window as a view into a buffer (in fact you can have multiple windows visiting different parts of the same buffer). Here is a list of the most useful window commands: + +| C-x 0 | Close this window | +| C-x 1 | Close all other visible windows | +| C-x 2 | Split horizontally | +| C-x 3 | Split vertically | +| C-x o | Switch to other window | +| C-M-v | Scroll other window | + +===== Dired Mode ===== + +If you type the name of a directory after a "C-x C-f" command, Emacs will display the directory contents in a new buffer. By default, Emacs displays the file name, permissions, owner/group, size and timestamp of each file on a line by itself. You can visit a file by just moving the cursor to it and hitting "Enter". Dired mode is unlike other modes in that single keys are used to effect commands. Here is a list of the most useful dired commands: + +| Left, right arrow keys or p, n | Previous and next file, respectively | +| Enter | Visit this file in this window | +| o | Visit this file in a new window | +| g | Refresh directory view | +| m | Mark file | +| u | Un-mark file | +| d | Mark a file for later deletion | +| x | Delete all files marked for deletion (Emacs prompts for confirmation) | +| D | Delete this file right now (Emacs prompts for confirmation) | +| C | Copy this file, or copy currently marked files (Emacs prompts for destination) | +| R | Rename/move this file, or rename/move currently marked files (Emacs prompts for destination) | +| M | Chmod this file, or chmod currently marked files (Emacs prompts for new permissions) | +| O | Chown this file, or chown currently marked files (Emacs prompts for new owner) | +| G | Chgrp this file, or chgrp currently marked files (Emacs prompts for new group) | +| + | Create directory (Emacs prompts for directory name) | +| ! | Execute shell command on this file, or currently marked files (Emacs prompts for command) | + +===== Shell Modes ===== + +It is possible to run a shell from within Emacs; there are a few different ways to do so. The easiest way is to type "M-x shell". This creates a a buffer called *shell* with a shell prompt. Shell commands you type are sent to a system shell and the output displayed in the shell buffer. One thing you'll notice in shell mode is that the arrow keys move you around the buffer - they don't access command history as they do in most shells. To access command history, use "M-p" and "M-n" for previous and next, respectively. + +One of the drawbacks of shell-mode is that it is not suitable for full-screen applications (like less, lynx, mutt or pine), to run these inside of Emacs, you need to use a terminal mode. Type "M-x ansi-term", and specify which shell you would like to run (your default will be the shell you are using, e.g. "/usr/pkg/bin/bash"). + +On platforms without an underlying shell (e.g., Windows), Emacs has a terminal emulator written entirely in Emacs Lisp. To enter it, type "M-x eshell". While not suitable for full-screen applications, it does emulate a limited subset of shell features rather nicely. In this shell mode, the arrow keys work as you would expect, and most shell builtins and shell aliases work as well. Some external commands such as grep work, although input/output redirection is not yet implemented. + +Here are the commands we discussed above: + +| M-x shell | Shell mode, use M-p and M-n for command history | +| M-x eshell | Emacs Lisp shell emulator, use arrow keys for command history | +| M-x ansi-term | Full terminal emulator, suitable for full-screen applications. | + +===== Emacs Startup and Configuration ===== + +When Emacs starts it will load a file named ".emacs" in your home directory and execute the commands found in it. This file is written in Emacs Lisp, but you can use it without knowing any Lisp, by copying other people's sample files. It is mainly useful for making certain extended commands a permanent part of your Emacs experience, so you don't have to type them every time you start Emacs. In the example below, comment lines start with one or more semi-colons, so you would delete the semi-colons to enable the given feature. + + ;; Sample ~/.emacs file + ;; + ;; Un-comment what you want to enable and re-start Emacs + ;; + ;;Load iswitch mode + ;;(require 'iswitchb) + + ;;Make text mode the default for new buffers + ;;(setq default-major-mode 'text-mode) + + ;;Turn on refill-mode whenever text mode is entered + ;;(add-hook 'text-mode-hook + ;; '(lambda () (refill-mode 1))) + + ;;Enable syntax highlighting when it's allowed + ;;(when (fboundp 'global-font-lock-mode) + ;; (global-font-lock-mode t)) + + ;;Fix the backspace key + ;;(normal-erase-is-backspace-mode 1) + + ;;Use cperl-mode for editing Perl code, it is better than perl-mode + ;;(defalias 'perl-mode 'cperl-mode) + + ;;Don't blink my cursor, please + ;;(blink-cursor-mode nil) + + ;;Display the current time in the modeline + ;;(display-time-mode t) + + ;;Start the emacs server + ;; + ;;When this is running, programs calling emacsclient open a buffer + ;;in the already running emacs. Useful in mutt or pine for composing + ;;mail in Emacs. Type C-x # to exit client buffer and send the text + ;;back to the application that called it. + ;;(server-start) + +The above example gives you a good idea of what can be done in a ".emacs" file, for more in-depth configuration Emacs has a customization mode that can be accessed with the extended command "M-x customize". Running it will put you in a curses-style application where you can choose from customization menus and have your changes written to your ".emacs" file automatically. + +===== Browsing the Web in Emacs with w3m ===== + +[[http://sourceforge.net/projects/w3m/files/|Emacs w3m mode]] will use the excellent [[http://w3m.sourceforge.net|w3m]] text-mode browser and allow you to surf the web in an Emacs buffer. To get started, add the following to your ".emacs" file: + + (require 'w3m-load) + +Then restart emacs, or place the cursor at the end of each line in turn and press "C-x e". Then you can open a new w3m buffer with "M-x w3m". The basic key bindings are as follows (note that these are taken from the w3m-mode help page, which can be accessed at any time in a new window with "C-h m"): + +| M-x w3m | Start browsing web with emacs-w3m. | +| q | Close all emacs-w3m windows, without deleting buffers. | +| Q | Exit browsing web. All emacs-w3m buffers will be deleted. | +| RET | Display the page pointed to by the link under point. | +| C-c C-c | Submit the form at point. | +| R | Reload the current page. | +| r | Redisplay the current page. | +| TAB | Move the point to the next anchor. | +| M-TAB | Move the point to the previous anchor. | +| B | Move back to the previous page in the history. | +| N | Move forward to the next page in the history. | +| U | Visit the web page. | +| H | Go to the Home page. | +| M-d | Download the URL. | +| d | Download the URL under point. | +| \ | Display the html source of the current page. | +| SPC | Scroll up the current window, or go to the next page. | +| b | Scroll down the current window, or go to the previous page. | +| > | Scroll to the left. | +| < | Scroll to the right. | +| . | Shift to the left. | +| , | Shift to the right. | +| M-l | Recenter horizontally. | +| j | Next line. | +| k | Previous line. | +| l | Forward char. | +| h | Backward char. | +| s | Display the history of pages you have visited in the session. | +| S | Prompt for a search query and submit it to google. | +| v | Display the bookmarks list. | +| a | Add a url of the current page to a new bookmark. | +| M-a | Add the url under point to a new bookmark. | + +There are many more features in w3m-mode, the mode help text details them all with keybindings. To end your session and close all w3m buffers, just press "Q" and answer "y" when prompted. + +===== Where to Go From Here ===== + +Below are some links to resources and useful Emacs Lisp packages. Many Linux and BSD-based operating systems have packages for most of these, so check there before you attempt to install by hand: + + * [[http://www.gnu.org/software/emacs/tour/|Emacs Tour]]: Guided tour of GNU Emacs with lots of screenshots. + * [[http://mwolson.org/projects/EmacsMuse.html|Muse]]: A publishing and authoring environment that converts simple text markup into HTML, PDF, Texinfo, Docbook, LaTeX, Blosxom blog entries and more. This tutorial was written using muse-mode. + * [[http://www.emacswiki.org/cgi-bin/wiki|Emacs Wiki]]: Loads of tips and howtos. $Id: emacs-tutorial.html,v 1.17 2015/04/30 11:30:50 slugmax Exp $ \ No newline at end of file diff --git a/dump/email-blacklist-issues.html.docuwiki b/dump/email-blacklist-issues.html.docuwiki new file mode 100644 index 0000000..b3f5ebf --- /dev/null +++ b/dump/email-blacklist-issues.html.docuwiki @@ -0,0 +1 @@ +$Id$ \ No newline at end of file diff --git a/dump/email_at_sdf.html.docuwiki b/dump/email_at_sdf.html.docuwiki new file mode 100644 index 0000000..4a09b19 --- /dev/null +++ b/dump/email_at_sdf.html.docuwiki @@ -0,0 +1,50 @@ +====== Accessing your SDF Email ====== + +//**under construction**// + +//There are several ways to get and send email at SDF, but the different options depend on your membership(s) here. This guide is intended to describe the options simply and clearly, by membership level// + +===== Membership Levels and Email Access ===== + +Here are the membership levels that matter for email (see [[http://sdf.org/?join|SDF join page]] for more details): + + * User + * Pre-validated User: This is before you are "validated" by either sending a nominal amount of money to SDF(enter "validate" at shell) or by finding a MetaARPA member to validate you + * Validated User/ARPA + * VPM/VHOST* + * MetaARPA + +*VHOST includes VPM + +The differences of the above accounts, besides the cost, is that VPM, VHOST and MetaARPA are annual memberships, so require continuing support of SDF, while User and ARPA are lifetime memberships, and only require payment once. + +===== Ways to Get and Send Email at SDF ===== + +By default your E-mail Address is your SDF username, which by default works with a couple of domain names (you can also choose the domain you would like to use from the list of SDF domain names). + +So if your username is "coffee" you can try sending yourself a mail with your existing E-mail account to: + +//coffee@sdf.lonestar.org// or //coffee@freeshell.org//. Then you can try to read it. + +Ways to read and send your SDF mail include the following: + +==== Email Programs from Shell //(Memberships: User or ARPA or MetaARPA)// ==== + +You can always access your SDF mail account through any of several email programs installed on the server. All of these emails access your "mail spool", where your email is put by the mail server. + + * //mutt// is available even to **Pre-validated Users**. Just type "mutt" at the command prompt. Here's a mutt tutorial + * Other programs, including //pine, alpine, mailx and rmail// are available to any **Validated User or ARPA or MetaARPA**. //Pine and Alpine// are related programs (Pine is older, Alpine is newer) that are both frequently considered to be the easiest shell email programs to use, with on-screen help and a menu interface. Enter "pine" or "alpine" respectively to run either of these. You can find more info on how to use them at [[http://sdf.org/?tutorials/e-mail-beginners|E-mail Beginners]].(For users at the **User** level, to learn about your limited allowed space and the significance of the mail spool, see the [[|difference between using mutt and alpine for Users vs ARPA]])==== Webmail //(Memberships: Validated User or ARPA or MetaARPA)// ====There are two webmail interfaces: + * The old SquirrelMail, accessible for Validated Users or above, accessible from the "webmail" link at the top of the [[/|SDF home page]] + * Roundcube, a slicker experience, accessible by MetaARPA users from the link on the [[http://ma.sdf.org|metaaaray home page]]==== Client Email: POP3 and IMAP //(Memberships: User or ARPA or VPM or VHOST or MetaARPA)// ====This section and the next include a small distinction. While **User or ARPA can read mail on their own machines or devices**, these memberships **don't allow you to send email** from your account **through SDF**.**You can, however, use your ISP to send mail from your SDF account**//read//=== Reading Incoming email in your computer or device client if you are User or ARPA or VPM or VHOST or MetaARPA ===There are two ways to read your incoming email using a client mail program. You can choose either, except if you are using virtual mailboxes with a VPM membership, in which case your only option is POP3: + * **POP3** fetches a copy of your mail from the mail spool to your local machine, and optionally deletes it from the spool. POP3 works with most any email program, and you can keep the messages on the server to be able to access mail equally from multiple machine/mail programs. However if you are accessing a POP3 server from multiple machines, having to deal with synchronizing and multiple copies and deleting mail from the server can be a problem; + * **IMAP** accesses mail on the server and lets you organize it into folders on the server. IMAP keeps your mail centrally located and organized so it is all equally accessible from multiple mail programs and devices at the same time.=== Setting up to read mail with POP3 ===(from the [[http://sdf.org/?faq?EMAIL?03|POP3/IMAP email faq]])The mail server to connect to for POP3 is "wm.sdf.org"The rest of the POP3 settings should be: + * Your security should be set to None + * Your Port should be 110 + * Your user name depends on the account: + * for your main User/ARPA/metaARPA account, it should be the same as your login name, example: "user1234" + * If you are accessing mail for a //VPM// account, your username should be the full email address with your VPM/VHOST domain name, ex: "user5678@vhost1234.org" + * your password should be either your account password (for your main User/ARPA/metaARPA account), or the password you set for the VPM email address using "mkvpm"=== Setting up to read mail with IMAP ===The rest of the IMAP settings should be: + * Your security should be set to None + * Your Port should be 110 + * Your user name depends on the account: + * for your main User/ARPA/metaARPA account, it should be the same as your login === Sending Mail from your client if you are User or ARPA ======= Sending Mail from your client through SDF//(Memberships: VPM/VHOST or MetaARPA)// ======== Advanced Mail Topics ==== $Id: email_at_sdf.html,v 1.1 2017/03/19 04:41:59 peteyboy Exp peteyboy $ \ No newline at end of file diff --git a/dump/encfs_tutorial.html.docuwiki b/dump/encfs_tutorial.html.docuwiki new file mode 100644 index 0000000..9d471bb --- /dev/null +++ b/dump/encfs_tutorial.html.docuwiki @@ -0,0 +1,91 @@ +===== Mounting an encrypted partition with EncFS ===== + +---- + +==== Introduction ==== + +[[http://www.arg0.net/encfs|EncFS]] is the simplest way to manage an encrypted group of files and folders. It provides an encrypted filesystem in user-space using the [[http://fuse.sourceforge.net/|FUSE]] library so it doesn't need root access to work. This means that all users can manage their encrypted partitions independently. + +==== How it works ==== + +The idea behind EncFS is to create a directory where the encrypted information is saved. This directory is then mounted (using FUSE) in a user-defined mountpoint, where the contents of the encrypted directory are accessible as decrypted data. The translation between these two parts is the work of EncFS. + +This is designed to protect against off-line attacks, that is, the contents of the encrypted folder are safe(er) while the directory is unmounted. While it is mounted, anyone with enough permissions over the mountpoint can still access the information of the files. Furthermore, since the encryption works on a file-by-file basis, some metadata will remain visible even while unmounted. Things like the number of files, their permissions, sizes and approximate filename size will be accessible to anyone with appropriate permissions over the encrypted folder. + +Read the [[#tips_and_tricks|Tips and Tricks]] section for a few of suggestions on how to ameliorate some of these problems. + +==== Set-up ==== + +The set up of the encrypted folder is very easy. First of all you need to run + + $ man encfs + +and read ahead. After that, we need to create both, the encrypted folder and the mount point. We call **~/.crypt** the encrypted folder (so it is hidden) and **~/crypt** the mountpoint. + + $ mkdir ~/.crypt ~/crypt + +Now we just need to run + + $ encfs ~/.crypt ~/crypt + +which mounts **~/.crypt** on **~/crypt**. Anything we write to **~/crypt/** will be encrypted and saved into **~/.crypt/**. When we unmount the filesystem, the **~/crypt** folder is left empty and everything is only saved encrypted in **~/.crypt**. When we need to re-gain access to our files, we can run the last command line to remount the encrypted directory, showing its decoded contents at the mount point. + +The first time we run this command we will be asked for some configuration details for the **~/.crypt** directory. The dialog looks like this: + + $ encfs ~/.crypt ~/crypt + Creating new encrypted volume. + Please choose from one of the following options: + enter "x" for expert configuration mode, + enter "p" for pre-configured paranoia mode, + anything else, or an empty line will select standard mode. + ?> + +Choosing the standard mode should be good enough for most cases but if you would like extra security, choose **p** for the paranoia mode (be aware that paranoia mode can make more difficult to make backups of the data. See Section [[#tips_and_tricks|Tips and Tricks]] for further details). After this, we will be prompted to enter a password twice, to confirm it and reduce the chances of a typo. + +EncFS allows us to automatically unmount the filesystem if it is idle for a certain period of time by giving the command line option **--idle=X** where **X** is the number of minutes before unmounting. + +To check that everything is working fine, we can run the **mount** command, which output should look like this: + + $ mount + ... + ... + encfs on /path/to/crypt type fuse.encfs (rw,nosuid,nodev,default_permissions,user=your_username) + $ + +To unmount the filesystem leaving only the encrypted contents, we just need to do + + $ fusermount -u ~/crypt + +Make sure to do this before logging out, otherwise the information could be left unprotected. + +==== [[|Tips and Tricks]] ==== + +As mentioned before, this method is intended for protection against off-line attacks. If you would like to avoid ever having the information on the clear on the remote server, and if you have access to EncFS at your local machine, you have at least two possibilities; one is to keep a local encrypted folder and make backups of that encrypted data to your sdf account, or you can use sshFS in conjunction with EncFS to write your encrypted data directly. + +=== Backups === + +Since the encryption is done file-by-file, we can easily make backups of the encrypted data without the need to mount the filesystem, so for instance, we can leave the backup to a cron job without compromising the safety of the files. Make sure to include the file **~/.crypt/.encfs6.xml** in the backup. This file saves the encryption configuration, and you will need it to decode the information later on. See the tutorial on [[http://sdf.org/?tutorials/rsync-backup|rsync]] for more information on how to make a backup. + +The paranoia mode has a feature named "External IV Chaining", which ties the filename (possibly including the absolute path) with the data for its encryption, so a file that has been moved or renamed will fail to decode properly. Make sure that, if you are doing backups of encrypted files, you will either have this option disabled or have a way to restore the whole path and filenames of the encrypted data. + +=== sshFS+EncFS === + +Using this method will allow you to write to a local **~/crypt** directory which automatically, locally encrypts and securely transfers the information to a remote folder **~/.crypt-remote**, so the un-encrypted files are never accessible at the remote location and there is no need to make explicit backups. + +We achieve this by doing the following: + + * Create a **~/.crypt-remote/** directory on the remote machine + local.machine:~$ ssh username@remote.machine mkdir .crypt-remote + * Mount that directory using sshFS on your local machine as **~/.crypt/** + local.machine:~$ sshfs -o idmap=user username@remote.machine:./.crypt-remote ~/.crypt + The option **-o idmap=user** will map your local user name to the user name on the remote machine, that is, files on the remote system that are from the user username, appear to be from the user that you are logged in as on the local system (see the tutorial on [[http://sdf.org/?tutorials/sshfs|sshFS]] if you need). + * Use EncFS locally to mount **~/.crypt** at **~/crypt** + local.machine:~$ encfs ~/.crypt ~/crypt + * To unmount you then need to do the following + local.machine:~$ fusermount -u ~/crypt + local.machine:~$ fusermount -u ~/.crypt + * You now can remount the **~/.crypt-remote** directory on your local machine, or in the remote one, as needed. + +**Beware that this can yield to irrecoverable data loss!** If there are connectivity problems, the partially transmitted files will not contain usable information, so you shouldn't use this method with files for which you do not have an extra copy. You will need to gauge carefully which solution offers the best relation between confidentiality and data integrity, and which works better for your particular needs. + +$Id: encfs_tutorial.html,v 1.2 2013/09/26 10:10:53 olvar Exp $ \ No newline at end of file diff --git a/dump/errorpage.html.docuwiki b/dump/errorpage.html.docuwiki new file mode 100644 index 0000000..68708aa --- /dev/null +++ b/dump/errorpage.html.docuwiki @@ -0,0 +1,63 @@ +====== Adding custom error pages to your SDF website ====== + +---- + +===== Contents ===== + + * [[#intro|Introduction]] + * [[#why|Why create a custom error page?]] + * [[#how|How to implement your custom error page]] + +\\ + +===== [[|Introduction]] ===== + +The HTTP protocol, which is used to retrieve documents (usually web pages) from the internet for display in a web browser, provides a number of [[https://en.wikipedia.org/wiki/List_of_HTTP_status_codes| standard error codes]] to indicate conditions or status relative to the process. The most widely known of these is the notorious code 404 - "File not found." This error may occur for a number of reasons, but most commonly it indicates a broken link. Perhaps there is a typographical error in your html, or maybe the document was moved to a new location without the needed changes made to the referring link. What happens at this point is that the web browser asking for the missing document receives a special error message web page instead. This page is usually provided by the server, but may in some instances be generated by the browser. The error page may be rather generic, or it may be customized for the originating site. + +===== Why create a custom error page? ===== + +Good question! Generally, the error pages provided by the server are adequate. On that basis, changing them isn't really required. However, such messages also tend to be dull and often rather cryptic. So, you might decide to create customized error messages for a variety of reasons. \\ For example: + + * You may wish to create an error page which retains the look and feel of your own site. This may increase the comfort level of your viewers, since they won't necessarily feel like they have suddenly been whisked away from what they were viewing into some mysterious la-la land they'll have to crawl back from. Here is an example: [[http://www.google.com/qrstuvwxyz|Google's 404 page]] + * Since the error may have been caused by a fault in your site, you might want to direct the viewer to contact you about it, so that you can fix the problem. + * You may want to provide the viewer with additional information designed to help them resolve the issue themselves. This is useful if the problem is caused not by your site but by some mistake the user made in entering the URL, for example: [[http://www.microsoft.com/qrstuvwxyz|Here]] is an example of that. + * And let's face it - most error pages are pretty dull. The 404 page in particular can be frustrating. So much so, in fact, that people have even written spiteful [[http://www.ovff.org/pegasus/songs/404-not-found.html|songs]] about it! + +===== [[|How to implement your custom error page]] ===== + +Now that you've decided you want to create a custom error page, you probably want to know how to do it. In fact, on SDF this turns out to be fairly easy. There are two basic steps involved: + + - Create the custom error pages that you want displayed. + - Create (or modify) the file ".htaccess" in the root of your html directory structure. + +Creating the custom error page itself is just like creating any other web page. Thus, it is somewhat beyond the scope of this article, as really you can do what you like. But if you are short of ideas, check out [[http://www.lightecho.net/404page/404_fame.html|this]] site. + +The key to making your custom error page work is in correctly informing the Apache web server that you have created a custom document and precisely indicating where that document is located. This is accomplished through an entry in the ".htaccess" file. + +For the purposes of this discussion, we'll assume you already have your website set up. The root folder of your html directory structure is where you need to create ".htaccess," or modify it if it already exists. If you are logged into an SDF shell account, you can generally get to this folder by entering this command: + +"cd ~/html" + +If you are using SDF's vhost services, you need to change to the directory for the website you are updating - it's probably a subdirectory of the html directory. Once in the folder, you can create or edit the file by entering: + +"pico .htaccess" + +Of course, while pico is the editor I like to use, you have your choice of several others and should feel free to use the one you like. You can also create or edit the file on your own system and upload it to SDF just as you would any other web document. + +With the Apache web server, as used on SDF, ".htaccess" provides "a way to make configuration changes on a per-directory basis." The complete use of this file is way beyond the scope of this article, but more information is available [[http://httpd.apache.org/docs/1.3/howto/htaccess.html|here]]. + +In our scenario, you are probably creating a new file, so you'll be starting with a blank slate. You will need to create one line for each error page that you define. To indicate to the server that you want to use your own code 404 message, you'll need to add a line that is similar to this one: + +"ErrorDocument 404 /404.html" + +"ErrorDocument" indicates that you are defining your own, "404" is the error code you are taking responsibility for, and "/404.html" is the name and location of your custom error document. Please note that the "/" in front of the file name is necessary on SDF for the relative path to work. And if you place the document in a subdirectory off your html root, you need to indcate that path in ".htaccess", If you are creating custom pages for additional codes, simply add the appropriate lines in ".htaccess" + +After making your changes, it may be a good idea to reset the permissions on your website by entering the command: + +"mkhomepg -p" + +And that is pretty much all there is to it! + +---- + +$Id: errorpage.html,v 1.5 2017/05/25 02:25:27 bradmac Exp $ \ No newline at end of file diff --git a/dump/evangelism.html.docuwiki b/dump/evangelism.html.docuwiki new file mode 100644 index 0000000..cfaea89 --- /dev/null +++ b/dump/evangelism.html.docuwiki @@ -0,0 +1,20 @@ +====== Spreading the Word ====== + +So you've been with SDF for three minutes, three years, or three decades and feel its something you'd like to share with others? Here are some materials to help you do that. + +==== Physical propoganda materials ==== + + * [[tutorials/images/propoganda/sdf_flyer.pdf|Flyer]] (especially good for college campuses) + * Business Cards + * [[tutorials/images/propoganda/business_cards/sdf_business_card_ecelis03_print.pdf|Design 1]] + * [[tutorials/images/propoganda/business_cards/sdf_business_card_ecelis05_print.pdf|Design 2]] + * [[tutorials/images/propoganda/business_cards/sdf-card-02.png|Design 3]] + * [[http://sdf.org/store/|Patches, stickers, buttons, hoodies, T-shirts, and more]] + +==== Links to share ==== + + * [[http://sdf.lonestar.org/index.cgi?faq|The SDF FAQ]] + * [[http://en.wikipedia.org/wiki/SDF_Public_Access_Unix_Network|SDF's Wikipedia Entry]] + * [[http://sdf.lonestar.org/index.cgi?access|Signup page]] + +$Id: evangelism.html,v 1.2 2011/05/13 11:19:09 jbaber Exp $ \ No newline at end of file diff --git a/dump/example.html.docuwiki b/dump/example.html.docuwiki new file mode 100644 index 0000000..fbfedf5 --- /dev/null +++ b/dump/example.html.docuwiki @@ -0,0 +1,37 @@ +====== Here is a test for the title format. ====== + +==== Here is a test for the header format. ==== + +Here is a test for the tutorial body format. + +\\ Here is a test for a note/warning/tip. + +\\ Here is a test for the code format. + +\\ Here is a test for the reference format. + +^ ^ Table Header 1 ^ Table Header 2 ^ +^ Table Header 3 | TABLE DATA | TABLE DATA | +^ Table Header 4 | TABLE DATA | TABLE DATA | +^ Table Header 5 | TABLE DATA | TABLE DATA | + +Section 1Section 1.1Section 1.2Section 1.3Section 2Section 2.1Section 3Section 3.1Section 3.2Section 4Section 4.1Section 4.2 + +[[http://www.example.com|Example link]]\\ {{http://sdf.org/tutorials/images/example.png?128x128|Example}}\\ \\ + + Book: + Author's last name, first initial. (Publication date). Book title. Additional information. City of publication: Publishing company. + + Encyclopedia & Dictionary: + Author's last name, first initial. (Date). Title of Article. Title of Encyclopedia (Volume, pages). City of publication: Publishing company. + + Magazine & Newspaper Articles: + Author's last name, first initial. (Publication date). Article title. Periodical title, volume number(issue number if available), inclusive pages. + + Online periodical: + Author's name. (Date of publication). Title of article. Title of Periodical, volume number, Retrieved month day, year, from full URL + + Online document: + Author's name. (Date of publication). Title of work. Retrieved month day, year, from full URL + +$Id: example.html,v 1.2 2012/01/08 23:53:51 maroon Exp $ \ No newline at end of file diff --git a/dump/example_source.html.docuwiki b/dump/example_source.html.docuwiki new file mode 100644 index 0000000..bc42e51 --- /dev/null +++ b/dump/example_source.html.docuwiki @@ -0,0 +1,170 @@ +====== Tutorial: Example Source code ====== + + \\ + + <head> + <style type="text/css"> + .title{ + background-color:#ffffff; + font-size:30px; + color:#2a2a2a; + } + + .header{ + background-color:#ffffff; + font-size:20px; + color:#2a2a2a; + } + + .body{ + background-color:#ffffff; + font-size:15px; + color:#2a2a2a; + } + + .reference{ + border: 1px dotted #000; + text-align: left; + padding: 5px; + padding: 15px 30px 15px; + background:#CCC url('http://sdf.org/tutorials/images/ref.png') 5px 5px no-repeat; + color: #000; + margin: 10px 5px; + } + + .link { text-decoration:none } + + .superscript{ + font-size:10px; + vertical-align:top; + } + + .subscript{ + font-size:10px; + vertical-align:bottom; + } + + .note{ + border: 1px dotted #000; + text-align: left; + padding: 5px; + padding: 15px 30px 15px; + background: #DC143C url('http://sdf.org/tutorials/images/note.png') 5px 5px no-repeat; + color: #FFF; + margin: 10px 5px; + } + + .code{ + border: 1px dotted #000; + text-align: left; + padding: 5px; + padding: 15px 30px 15px; + background:#2F4F4F url('http://sdf.org/tutorials/images/code.png') 5px 5px no-repeat; + color: #00FF00; + margin: 10px 5px; + font-family: monospace; + } + + table.table { + border-width: 0px; + border-spacing: 0px; + border-style: none; + border-collapse: collapse; + background-color: #1E90FF; + } + + table.table th { + border-width: 1px; + padding: 1px; + border-style: inset; + border-color: white; + background-color: #A0522D; + -moz-border-radius: ; + padding: 10; + } + + table.table td { + border-width: 1px; + padding: 1px; + border-style: inset; + border-color: white; + background-color: #FFEBCD; + -moz-border-radius: ; + padding: 5; + } + </style> + </head> + + <h1 class="title">Here is a test for the title format.</h1> + + <h3 class="header">Here is a test for the header format.</h3> + + <p class="body">Here is a test for the tutorial body format.</p> + + <p class="note"><br>Here is a test for a note/warning/tip.</p> + + <p class="code"><br>Here is a test for the code format.</p> + + <p class="reference"><br>Here is a test for the reference format.</p> + + <table class="table"> + <tr><th> </th> + <th>Table Header 1</th> + <th>Table Header 2</th> + </tr> + <tr> + <th>Table Header 3</th> + <td>TABLE DATA</td> + <td>TABLE DATA</td> + </tr> + <tr> + <th>Table Header 4</th> + <td>TABLE DATA</td> + <td>TABLE DATA</td> + </tr> + <tr> + <th>Table Header 5</th> + <td>TABLE DATA</td> + <td>TABLE DATA</td> + </tr> + </table> + + <dl> + <dt>Section 1</dt> + <dd>Section 1.1</dd> + <dd>Section 1.2</dd> + <dd>Section 1.3</dd> + <dt>Section 2</dt> + <dd>Section 2.1</dd> + <dt>Section 3</dt> + <dd>Section 3.1</dd> + <dd>Section 3.2</dd> + <dt>Section 4</dt> + <dd>Section 4.1</dd> + <dd>Section 4.2</dd> + </dl> + + <a class="link" href="http://www.example.com">Example link</a> + + <br> + <img src="http://sdf.org/tutorials/images/example.png" alt="Example" height="128" width="128"/><br> + + <br> + <pre class="reference"> + Book: + Author's last name, first initial. (Publication date). Book title. Additional information. City of publication: Publishing company. + + Encyclopedia & Dictionary: + Author's last name, first initial. (Date). Title of Article. Title of Encyclopedia (Volume, pages). City of publication: Publishing company. + + Magazine & Newspaper Articles: + Author's last name, first initial. (Publication date). Article title. Periodical title, volume number(issue number if available), inclusive pages. + + Online periodical: + Author's name. (Date of publication). Title of article. Title of Periodical, volume number, Retrieved month day, year, from full URL + + Online document: + Author's name. (Date of publication). Title of work. Retrieved month day, year, from full URL + </pre> + + $Id$ \ No newline at end of file diff --git a/dump/file_operations.html.docuwiki b/dump/file_operations.html.docuwiki new file mode 100644 index 0000000..2b1f1a6 --- /dev/null +++ b/dump/file_operations.html.docuwiki @@ -0,0 +1,213 @@ +====== Basic File and Shell Operations ====== + +In this tutorial, we'll briefly explain some basic file and shell operations using the following commands: + +===== Commands ===== + + - touch -- create a file + - pwd -- print working directory + - ls -- list files in current directory + - cp -- copy a file + - mv -- move a file + - rm -- remove a file + - file -- examine type of file + - less -- read a file + - mkdir -- create a directory + - cd -- change directory + - rmdir -- remove a directory + - clear -- clear screen + +Please note that the above commands each have a man-page that will describe in more detail the full possibilities of each command. In this tutorial, we'll simply give a short overview, enough to get things done on the command line. For more information on man-pages, see the [[http://sdf.lonestar.org/index.cgi?tutorials/findinghelp|//Finding Help From Within the Shell//]] tutorial. + +==== First some notes about: ==== + + * Command options + * File naming + +==== 1. Command options ==== + +All of the commands above and many commands you'll discover and use in the shell can be modified with the use of //options//. See the man-pages for details about the available options for each command. //Options// normally come in the form of //ls -l//, that is, you type the command, space over once, type a dash and the letter for the option you need to use. + + Something unique for the SDF server, the SDF server now offers both commands with BSD style options and commands with GNU style options. For example, //ls// provides users with a command providing BSD style options. The command //gls//, which is prefixed with a "g" designates the //ls// command providing GNU style options. This is very noteworthy because most users are more aquainted with binaries with GNU style options. The most popular commands are: //gls --color=always// and //gdiff//. + +==== 2. File naming ==== + +It's good form to name a file or directory without empty spaces in the name. A file such as //my journal.txt// may be more cumbersome to handle than a file called //my_journal.txt//. This is because the shell wants to see the above //my journal.txt// as two separate files: one that is called //my// and another that is called //journal.txt//. If you happen upon a file with empty spaces in its name, you can use the following methods to manipulate it: + + - Use single or double quotes around the file: + * "rm "my file.txt"" or + * "cp 'my file.txt' my_file.txt", for example. + - Use a backslash where there's an empty space: + * "mv my\ file.txt my_file.txt" or + * "cd backups/text\ pages/". + - Use Tab-Completion: many shells support tab completion. This means if you type the first two or three characters of a file name and press your Tab button, unless you have multiple files with similar beginning names, your shell may be able to finish the word completion for you. Note: if you're not in the same directory as the file you want to tab complete, you'll need to provide the path, which tab-completion can help with also. + +Also, when naming a file using two or more words, the safest choices you have to use are the underscore, the dash, and the period. Examples are: + +//my_file.txt//\\ //my-file.txt//\\ //my.file.txt// + +Or, you can keep it as one word: + +//myfile.txt// + +Using other symbols, like the ampersand, may cause problems because some of these symbols may mean other things to the shell. As always, for more information you should read the man-pages for the shell of your choice. + +==== Commands ==== + +Note: in the examples below, the percent sign is used to denote the command prompt and is not meant to be typed. + +==== touch and pwd : create a file and print the working directory ==== + +To create a file without invoking a text editor or another program, one simply has to //touch// it. For example, to create a file called //orange.txt//, at the command prompt type: + +"% touch orange.txt" + +Nothing much to that! To see the file you created you have the ability to list the file(s) and directories in the current working directory. First, let's see which directory we are in. By default, upon creating a ssh link or a telnet link to your shell account, you will be in your home directory. To confirm this, at the command prompt you can type: + +"% pwd" + +If your user name is georgette, you may get something like this: + +"/udd/g/georgette" + +Or if you're on your home computer, perhaps you'll see something like this: + +"/home/georgette" + +==== ls : list files in current directory ==== + +Now to list the files in your current directory, type: + +"% ls" + +If you followed the tutorial and created the //orange.txt// file with the //touch// command, you should see this file in what the //ls// command yields. Next, try //ls// with the various options below and see the difference in the kinds of information each option provides: + +"% ls -l"\\ "% ls -hl"\\ "% ls -a"\\ "% ls -al"\\ "% ls -ahl"\\ + +==== cp : copy a file ==== + +Copying a file is likewise very easy. The copy command serves two important functions: to make a simple backup of the file in question and to also rename a file while keeping the original. + +Say you want to backup your //orange.txt// file to a sub-directory (more about creating directories in a moment) called //backups//. To do so, you would type the following: + +"% cp orange.txt backups/" + +The forward slash at the end of the word //backups// means that this is a directory. + +To use the //cp// command to change the name of the file without destroying the original you would type the following: + +"% cp orange.txt papaya.txt" + +where //papaya.txt// is the new name of the file. + +And to copy the original //orange.txt// file to the backup directory and to change the name at the same time, you would type: + +"% cp orange.txt backups/papaya.txt" + +==== mv : move or rename a file ==== + +The //mv// command works similarly to the //cp// command but with one vital difference. Moving a file means destroying the original file name. Thus the following command: + +"% mv orange.txt papaya.txt" + +essentially replaces the //orange.txt// with the new //papaya.txt// file. + +You can keep the file name the same with the //mv// command by moving the file to a separate directory. To do so, type the following: + +"% mv orange.txt backups/" + +This would move the //orange.txt// file to the backups directory. To move the file to the backups directory and to rename it then, you'd type: + +"% mv orange.txt backups/papaya.txt" + +==== rm : remove a file ==== + +Removing a file is also very simple. The command to do so is //rm//. To completely remove and destroy a file simply type: + +"% rm orange.txt" + +=== short note on interactive use === + +The commands for copying, moving and removing files if carelessly used may wreak a bit of havoc for you. For these commands, you may want to invoke the interactive option by typing: + +"% cp -i orange.txt backups/orange.txt"\\ "% mv -i orange.txt papaya.txt"\\ "% rm -i orange.txt" + +When the interactive option is called, you'll be prompted to answer yes or no to each file you are asking to be removed. For //cp -i// and //mv -i//, you'll be prompted if and only if the file you are copying to or moving will overwrite another file. + +==== file : examine type of file ==== + +The //file// command is useful to determine what type of file a file is. In unix-like operating systems, a file's name is fairly flexible and the file extension, e.g. the .txt appendage, is not always necessary. So if someone sent you a file and you wanted to be certain what type of file it was before you opened it, use the //file// command like so: + +"% file name_of_file" + +The results for a text file would be something like this: + +"name_of_file: ASCII text" + +Say someone sent you an image file called //something.something// in the PNG format and you wanted to be certain it was actually a PNG file, simply type: + +"% file something.something" + +If the file is truly a PNG file, you should see something similar to this: + +"something.something: PNG image data, 922 x 691, 8-bit/color RGBA, non-interlaced" + +==== less : read a file ==== + +The //less// command is a type of pager available to view and browse through text files without altering or opening the file in a text editor. You're encouraged to read the man-page for this command because it possesses many useful attributes such as searching through text for key words or strings. Invoke it with the name of the file you want to view: + +"% less orange.txt" + +If there is more text in the file than can fit on your computer screen, press the space-bar to scroll down page by page. Oftentimes, your Page Up and Page Down buttons on your keyboard will work and the arrow keys normally allow you to go up and down through the file line by line. + +==== mkdir : create a directory ==== + +You create a directory by using the //mkdir// command. To create the backups directory we used in earlier examples, type: + +"% mkdir backups" + +==== cd : change directory ==== + +The //cd// command is used to change directories. If we are in our home directory and want to go to the newly created //backups// sub-directory, we'd simply type: + +"% cd backups" + +To go back simply type: + +"% cd" + +Typing //cd// all by itself will always take you back to your home directory which is useful if you're deep in another branch of the directory tree. If you just want to go back up a level, type: + +"% cd .." + +And of course, you can always type the full path to the directory you want to change to: + +"% cd /usr/bin" + +To switch back to the previous working directory, type: + +"% cd -" + +==== rmdir : remove a directory ==== + +And to remove an empty directory, you use the the //rmdir// command. + +"% rmdir backups" + +The //rmdir// will only work if the directory you want to remove is empty of files. If a directory contains files in it and you are sure you want to remove said directory along with all the files in it, you actually have to go back to the //rm// command and type: + +"% rm -r name_of_directory" + +The //-r// is a command option telling the //rm// or remove command to delete the directory and all contents including subdirectories. It stands for //recursive//. Be very careful about using this command! In fact, a better way to run this command is by typing: + +"% rm -ir" + +This invokes the interactive use of the remove command which prompts you to answer yes or no to each file and directory to be possibly removed. Again, read the man-pages for more details. + +==== clear : clear screen ==== + +Finally, to clear the screen type the following at the prompt: + +"% clear" +---- +$Id: file_operations.html,v 1.11 2009/11/28 10:39:54 rogerx Exp $ \ No newline at end of file diff --git a/dump/filesystem.html.docuwiki b/dump/filesystem.html.docuwiki new file mode 100644 index 0000000..521eb36 --- /dev/null +++ b/dump/filesystem.html.docuwiki @@ -0,0 +1,127 @@ + 11/3/70 + FILE SYSTEM (V) + + NAME format of file system + + SYNOPSIS + + DESCRIPTION The RB09 fixed head disk has 8,000 64-word + blocks on each of its two surfaces. Unix uses + the second surface (physical blocks 8,000 to + 15,999) and numbers them from logical block 0 to + logical block 7,999. The following discussion + refers to logical blocks. + + The Unix filesystem is divided into 8,000 blocks + of 64 words per block. Block 0 is the "sysdata" + block. The first word points to the first block + of the free-storage map. Each block in the free- + storage map is structured as follows: the first + word is the block number of the next block in the free-storage + map, or zero if this is the end of the free- + storage map. The next nine words hold free block + numbers, or zero (no block number). + + Block 1 on the filesystem is unused. (?) + + I-numbers begin at 1, and the storage for i- + nodes begins at + block 2. Blocks 2 to 711 contain the i-nodes, + with five consecutive i-nodes per block. Certain + i-nodes are reserved for special files, directo- + ries and devices: + + 1 The core file written by "sys save" or a + bad system call 2 The "dd" directory direc- + tory 3 The "system" directory + 6 The "ttyin" special file + 7 The "keyboard" (graphic-2) special file 8 + The "pptin" (paper tape reader) special file + 10 The "ttyout" special file 11 The "dis- + play" (graphic-2) special file 12 The + "pptout" (paper tape punch) special file + + There is only one file system which is always + mounted; + it resides on the RB disk. This device is also + used for swapping. The swap areas are at the + high blocks on this device: blocks 6,400 to + 7,999. These blocks do not appear in the free list. + + Each i-node represents one file. The format of + an i-node is as follows, where the left column + represents + the offset in words from the beginning of the i- + node: + + 0 flags (see below) + 1 first indirect block or contents block + ... 7 seventh indirect block or + contents block + 8 user ID of owner + 9 link count + 10 size in words + 11 unique value assigned at creation + + The flags are as follows: + + 400000 i-node is allocated + 200000 large file + ?????? allocated bit (always on) + 000040 special file + 000020 directory + 000010 read, owner + 000004 write, owner + 000002 read, non-owner + 000001 write, non-owner + + The allocated bit (flag ??????) is believed even + if the i-node map says the i-node is free; thus + corruption of the map may cause i-nodes to be- + come unallocatable, but will not cause active + nodes to be reused. + + Word number n of a file is accessed as follows: + n is + divided by 64 to find its logical block number + (say b) in + the file. If the file is small (flag 200000 is + 0), then b must be less than 7, and the physical + block number corresponding to b is the bth entry + in the address portion of the i-node. + + If the file is large, b is divided by 64 to + yield a number + which must be less than 8 (or the file is too + large for + UNIX to handle). The corresponding slot in the + i-node + address portion gives the physical block number + of an + indirect block. The residue mod 64 gives a word + offset + in the indirect block, and the word found there + is the physical address of the block correspond- + ing to b. + + If block b in a file exists, it is not necessary + that all + blocks less than b exist. A zero block number + either in the + address words of the i-node or in an indirect + block + indicates that the corresponding block has never + been + allocated. Such a missing block reads as if it + contained + all zero words. + + FILES + + SEE ALSO format of directories + + DIAGNOSTICS + + BUGS + + OWNER \ No newline at end of file diff --git a/dump/filetransfer.html.docuwiki b/dump/filetransfer.html.docuwiki new file mode 100644 index 0000000..34a790a --- /dev/null +++ b/dump/filetransfer.html.docuwiki @@ -0,0 +1,93 @@ +====== File Transfer Tutorial ====== + +This tutorial discusses various ways to get data from and to a local (external) machine into and out of SDF. + +==== Contents ==== + + - [[#intro|Introduction]] + - [[#ftp|FTP]] - File Transfer Protocol + - [[#scp|scp and sftp]] - secure copying and ftp + - [[#ssh|ssh and tar]] - securely copying directories + - [[#pub|Gopher and HTTP]] - using the internet for download + - [[#term|Terminal]] - direct copying via the terminal + - [[#email|E-mail]] - for small files only + - [[#gloss|Glossary]] - explications of terms + +---- + +==== To Do ==== + + * x/y/zmodem transfers + * kermit transfers + +---- + +===== [[|Introduction]] ===== + +To transport data between SDF and your local (or any other external) machine, there are various ways. Their availability depends on your member level on SDF (see the [[http://sdf.org/index.cgi?faq?MEMBERS|FAQ, MEMBER section]] for more information), the external system, and their connection. + +===== [[|FTP - File Transfer Protocol]] ===== + +[[http://en.wikipedia.org/wiki/File_Transfer_Protocol|FTP (File Transfer Protocol)]] on SDF is available only for **downloading** public files. This is for security reasons. For upload and download of private files, [[#scp|scp and sftp]] must be used. \\ Note: ARPA membership allows for up-&download via FTP; however, it is better to use scp or sftp if possible, as FTP is unencrypted, and your passwords also have to travel in the clear. + +For download, point your FTP program to sdf.org and do anonymous FTP to read data (username "anonymous", password "//yourlogin//@sdf.org", or another of your e-mail addresses). + +===== [[|scp and sftp]] - secure copying and ftp ===== + +scp and sftp are secure ways to transfer data between computers, based on ssh (secure shell). If you've only worked with ftp before, you'll be surprised at the ease and benefits to using scp. + +Let's say you're logged into sdf and you want to transfer some pictures from your home machine (named foo in this example) to your sdf home directory. You would want to use the following command: + +"scp *.jpg me@sdf.org :/your/remote/home/" + +Let's break that down + +scpThe command itself.*.jpgThe files you want to transfer.me@sdf.orgYour username @ the server you wish to connect to.:/your/remote/home/The directory you'd like to upload it. + +Unless you've installed ssh authorization keys, you'll be prompted for your username and password. Afterwhich, you should have output similar to this: + + [me@local Pictures]# scp *.jpg me@sdf.org:~/your/remote/home + IMG_016.jpg 100% 1802KB 45.7KB/s 00:39 + IMG_017.jpg 100% 1253KB 46.1KB/s 00:40 + IMG_018.jpg 100% 1243KB 48.6KB/s 00:25 + IMG_020.jpg 100% 1131KB 45.9KB/s 00:39 + [foo@local Pictures]# + +On SDF, you need to have ARPA membership to be able to use them. Check the manpages of scp and ssh for more information and options to use. + +On Windows machines, you can use the [[#putty|PuTTY programs]]. + +===== [[|ssh and tar]] - securely copying directories ===== + +The tar archiving tool can be used with ssh to quickly duplicate whole directory trees: + +"tar cf - //target_dir// | ssh me@freeshell.org " tar xf - -C ~///path/// "" + +Note: this trick requires compatible versions of tar on the local and remote systems + +===== [[|Gopher and HTTP - using the internet for download]] ===== + +To get data out of SDF on a local machine, you can of course publish them on your gopher- or web-site. Please check the [[http://sdf.org/index.cgi?faq?GOPHER|FAQ, GOPHER section]] and the [[http://sdf.org/index.cgi?tutorials/building_a_website| website tutorial]] for information how to set up these sites. + +Please note that HTTP traffic is bandwidth limited depending on your membership level; if you go over the quota, your site will be temporarily blocked! + +To prevent access by everybody, see the FAQ entry about [[http://sdf.org/index.cgi?faq?WEB?04|password protection]] of websites. + +===== [[|Terminal - direct copying via the terminal]] ===== + +For transferring small amount of text data (scripts, tables, source code snippets), think about copy/paste directly in the terminal! If you are [[http://sdf.org/index.cgi?faq?MEMBERS?01|MetaARPA]], then you can use "screen" and its built-in copy facility to transfer data between different screens. + +To append text input in the terminal to a file on SDF, you can open the file on SDF in your favourite [[http://sdf.org/index.cgi?faq?BASICS?09|text editor]]. Or simply use the command "cat >>//file//", send the data to the terminal (via the paste function), and finish with a single line containing only ^D (CTRL-D) - to do that in the terminal, hit RETURN, CTRL-D, RETURN; this will close the standard input the "cat" was reading from. + +===== [[|E-mail - for small files only]] ===== + +If you have to transfer binary data and cannot use scp (because you're not [[http://sdf.org/index.cgi?faq?MEMBERS?01|ARPA]], which is a pity), then you may need to use file transfer via e-mail. For this, you attach the data you want to get into SDF to a message which you send to your address on SDF (//yourlogin//@sdf.org). On SDF, you read the message and save the attachment where you need the data (e.g, in your home directory, from where you can move them using "mv"). + +This may not work for large attachments, as the e-mail system (everywhere!) was not intended for file transfer. If you have to regularly transfer large files, you should seriously consider becoming ARPA! + +===== [[|Glossary]] ===== + +ARPA and MetaARPAThese are additional [[http://sdf.org/index.cgi?faq?MEMBERS?01|membership]] levels on SDF which allow for more commands and provide more space and the good feeling of supporting [[http://sdf.org|SDF]]!downloadto get data //from SDF// to your local machine; imagine SDF sitting somewhere uphill so that everybody can see it - then you get the data //down// from SDF[[http://www.chiark.greenend.org.uk/~sgtatham/putty|PuTTY]]This is a software suite for Windows machines for ssh and scp connections.[[http://sdf.org|SDF]]Super Dimensional Fortress - if you don't know what that is, then why are you reading this..? //wink//terminalThe equipment used to connect to a computer in text mode (for a more accurate definition see the corresponding [[http://en.wikipedia.org/wiki/Computer_terminal|Wikipedia entry]]), or in a narrower context the window which gives access to a SDF in text mode. If you are using Windows, it may be a telnet window (or better use PuTTY for secure access via ssh - that's even possible without being ARPA), or on a Linux machine an xterm window.uploadto get data //to SDF// from your local machine; see //download// +---- + +$Id: filetransfer.html,v 1.17 2020/01/01 22:27:19 niro Exp $ \ No newline at end of file diff --git a/dump/findinghelp.html.docuwiki b/dump/findinghelp.html.docuwiki new file mode 100644 index 0000000..f7108b3 --- /dev/null +++ b/dump/findinghelp.html.docuwiki @@ -0,0 +1,112 @@ +====== Finding Help From Within the Shell ====== + +Note: Please look [[#sdfspecific|further down]] about help facilities specific to SDF, like the FAQ! + +While the UNIX shell may seem a bit daunting and cold with cryptic two-letter commands, dozens of command line switches, and no animated paper clips to show you the way, there are several different ways of getting help from the system. + +---- + +===== [[|Using Manpages]] ===== + +==== The Definitive Guide to RTFMing ==== + +The easiest and most comprehensive way of getting help is reading the manpage. You've probably heard RTFM (Read The Fscking Manual) somewhere throughout your computer use, well, this is that Manual. Manpages are the standard form of documentation for every UNIX. Learn to use them. Learn to love them. + +Where can you find them? It's pretty simple. Think of a command. (ls, rm, chmod, kill, grep) or a program (vi, mutt, snarf, majordomo) So go ahead, type + +"% man //command//" + +command being the name of the command you want to learn about. As you can see, manpages are broken down into sections. We'll use mkdir as an example. + +"% man mkdir" + + MKDIR(1) NetBSD General Commands Manual + MKDIR(1) + + NAME + mkdir - make directories + + SYNOPSIS + mkdir [-p] [-m mode] directory_name ... + + DESCRIPTION + mkdir creates the directories named as operands, in the order specified, + using mode rwxrwxrwx (0777) as modified by the current umask(2). + + The options are as follows: + + -m Set the file permission bits of the final created directory to + the specified mode. The mode argument can be in any of the for- + mats specified to the chmod(1) utility. If a symbolic mode is + specified, the operation characters ``+'' and ``-'' are inter- + preted relative to an initial mode of ``a=rwx''. + + -p Create intermediate directories as required. If this option is + not specified, the full path prefix of each operand must already + exist. Intermediate directories are created with permission bits + of rwxrwxrwx (0777) as modified by the current umask, plus write + and search permission for the owner. Do not consider it an error + if the argument directory already exists. + + The user must have write permission in the parent directory. + + EXIT STATUS + mkdir exits 0 if successful, and >0 if an error occurred. + + SEE ALSO + chmod(1), rmdir(1), mkdir(2), umask(2) + + STANDARDS + The mkdir utility is expected to be IEEE Std 1003.2 (``POSIX.2'') compat- + ible. + + NetBSD 2.0.2 January 25, 1994 NetBSD + 2.0.2 + +For our "mkdir" command, the man page displayed has six sections: NAME, SYNOPSIS, DESCRIPTION, EXIT STATUS, SEE ALSO, and STANDARDS. The NAME section simply shows the name of the command and a terse description of its function. The SYNOPSIS gives a brief outline of the command syntax, so you can see what the command you enter should look like. Items in square brackets [ ] are optional. The DESCRIPTION section provides a detailed description of how the command works, including information on the various options or modes of the command. The EXIT STATUS section describes what status codes are generated by the command when it completes (successfully or unsuccessfully). These codes can be read by programs (such as a shell script) to determine how to react to the command's result. SEE ALSO provides cross referencing information for related commands or others which may be helpful. And finally, the STANDARDS section lists information on which standards this particular command complies with. + +The manual is divided up into nine sections: + + - User commands. + - System calls and error numbers. + - Functions in the C libraries. + - Device drivers. + - File formats. + - Games and other diversions. + - Miscellaneous information. + - System maintenance and operation commands. + - Kernal developers. + +In some cases, the same topic will appear on more than one section of the manual. For example, there is a chmod user command and a chmod() system call. How would you find the appropriate manpage? You can tell man which section you'd like to look under. If you wanted to find the user command you would type: + +"% man 1 chmod" + +This would display the manpage for the user command chmod. References to the specific sections are traditionally placed in parenthesis after the command name like so: chmod(1) + +Well, this is all fine and good if you know the name of the command, but what if you can't remember the name? 'man -k' can be used to search for keywords in the command descriptions. So, if you want to find a mail program you would type: + +"% man -k editor" + +A list of commands with the keyword "editor" in their descriptions will be presented on the screen. + +===== The GNU Info system ===== + +For programs of the [[http://www.gnu.org|GNU Project]], you may also use the "info" command. If you know the name of a program, give it as an argument (like with "man"). \\ In fact, you can use "info" as an alias to "man", because the info reader will simply display the man page if it cannot find an info entry (but you cannot specify the manpage section). + +However, navigation is different in the standard info reader, as it is based on the "emacs" text editor. \\ Quick key help (for more, consult "info info"): + +SPACE, BACKSPACEpage forward, backwardTABplace cursor onto next menu item or link (info files are hyperlinked)RETURNjump to the place where the link the cursor is sitting on points tol (the letter ell)get back to the spot from where last jump startedu n pup, next, previous node (info files are hierarchically structured)qquit the info reader + +With most terminals, you can also move around using the cursor keys (arrows). + +===== SDF specific help ===== + +There are also a number of tools at SDF that you can use to get more help. Type the following commands at a shell prompt. + +helpThe SDF help system.faqA collection of frequently asked questions. Type 'g ' to enter a topic, 'l' to list the questions in the topic, and 't ' to read the FAQ. The FAQ is also available [[http://sdf.lonestar.org/index.cgi?faq|on the SDF website]].helpdeskIf you cannot find your answer in the man pages, help, faq, or googling post a question to the helpdesk and a friendly member of the community will answer your question. Any member with ARPA status can login as an attendent to answer questions. Please note: in helpdesk you should only post questions directly related to SDF's systems, but not about general UNIX, programming or gardening - these belong to the bboard!bboardTo enter the SDF Bulletin Board System (BBOARD), type bboard at the command line. Help on using BBOARD may be found by typing h and ? at the bboard Command: prompt or at the [[http://sdf.org/?tutorials/bboard-tutorial|BBOARD tutorial]]. If you have a general question about using the SDF system, post in HELPDESK. If you have a question that requires intervention from an admin (e.g., software requests or membership queries), post in REQUESTS.comCom and bboard are meeting places for the SDF community. You could also pose your question there. Bboard and faq have the same interface. See [[http://sdf.lonestar.org/index.cgi?tutorials/comnotirc|COM is not IRC]] for how to use com. + +And of course there are the online tutorials that you are reading right now! The top level page is http://sdf.lonestar.org/index.cgi?tutorials. + +---- + +$Id: findinghelp.html,v 1.11 2016/12/07 20:17:49 jandal Exp $ \ No newline at end of file diff --git a/dump/footnode.html.docuwiki b/dump/footnode.html.docuwiki new file mode 100644 index 0000000..5b2bb8c --- /dev/null +++ b/dump/footnode.html.docuwiki @@ -0,0 +1,197 @@ +[[|... unix.]][[node4.html#tex2html4|3.1]]Gnu stands for Gnu's Not Unix, but I say it is. + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + +[[|... file.]][[node5.html#tex2html6|4.1]]The link count is intimately related to the structure of the unix file system. There's no need to worry about it for now. + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + +[[|... myself.]][[node6.html#tex2html13|5.1]]I infer from the book's title that Eric Raymond would agree with me that ``unix'' is a functional description of a class of operating systems, not a particular implementation. + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + +[[|... immediately.]][[node7.html#tex2html18|6.1]]``Immediately'' is a relative term. Lag might prevent "com" from reacting instantly, but it will react without you pressing any other keys. + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + +[[|..."com".]][[node7.html#tex2html19|6.2]]Some people keep track of the longest time a new user has required to exit from "com". I have heard that the record is over 23 minutes. + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + +[[|... networking]][[node9.html#tex2html21|8.1]]Lookup //socket//, //connect//, //listen//, & //accept// in the man. + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . \ No newline at end of file diff --git a/dump/format.html.docuwiki b/dump/format.html.docuwiki new file mode 100644 index 0000000..682cb15 --- /dev/null +++ b/dump/format.html.docuwiki @@ -0,0 +1,268 @@ +====== Creating and editing tutorials ====== + +[[#Introduction|Introduction]][[#Creating a New Tutorial|Creating a New Tutorial]][[#Editing or modifying a tutorial|Editing or modifying a tutorial]][[#Tips|HTML format guidelines]][[#Template|Template]][[#Title|Title]][[#Header|Header]][[#Body|Body]][[#Note|Note]][[#Code|Code]][[#Reference|Reference]][[#Tables|Tables]][[#List|List]][[#Links|Links]][[#Using images|Using images]][[#Using references|Using references]][[#Example|Example]] + +[[|Introduction]] + +This tutorial has been introduced to help members to more easily contribute to \\ the [[http://sdf.org/?tutorials|SDF Tutorials]] project. The SDF Tutorials utilize simple RCS Revision Control System. \\ The only downside is initially finding the folder location and reading the lengthy \\ README.TXT. By using this tutorial, you should be able to get started much quicker! \\ Please note, this tutorial is not meant to replace the main README.TXT and reading the main \\ README.TXT will provide a better understanding. More in-depth instructions for editing SDF \\ Tutorials can be found within the [[/tutorials/README.TXT|README.TXT]] (which can also be found on the shell at \\ /sys/html/tutorials/README.TXT).\\ + +==== [[|Creating a New Tutorial]] ==== + +Change your current directory to the tutorials directory. + +\\ cd /sys/html/tutorials + +Create an empty html file with a name of your choosing. + +\\ touch new_filename.html + +Change the permissions on the file so everyone can read it. + +\\ chmod a+r filename.html + +Check the file in and unlock it so everyone can edit it. + +\\ ci -u new_filename.html + +\\ Check to make sure file permissions are retained by RCS on check-out (co).\\ If they are not, and the permissions only show user readable still, \\ then chmod a+r RCS/filename.html,v directly so that the file can be read by readers of the webpage.\\ Next, edit the main index.html page to include the newly created file.\\ + +==== [[|Editing or modifying a tutorial]] ==== + +Change your current directory to the tutorials directory. + +\\ cd /sys/html/tutorials + +Check out the file and lock it while you make your edits + +\\ co -l filename.html + +Edit the file using a text editor(i.e. vi, pico, nano) + +\\ nano filename.html + +Check the file in and unlock it so everyone can edit it. + +\\ ci -u new_filename.html + +==== [[|HTML format guidelines]] ==== + +Whether after issuing the co command or simply editing a file within /sys/html/tutorials, \\ modifications can be viewed in real time with a browser over the internet. But remember, \\ changes will only be saved if you use co/ci properly! The tutorial server script generates \\ the page header and footer, so you only need to supply the content of the tutorial you plan to \\ post and the RCS $Id$ tag. You can use the following as a template:\\ + + \\ + <html> + <head> + <style type="text/css"> + .title{ + background-color:#ffffff; + font-size:30px; + color:#2a2a2a; + } + + .header{ + background-color:#ffffff; + font-size:20px; + color:#2a2a2a; + } + + .body{ + background-color:#ffffff; + font-size:15px; + color:#2a2a2a; + } + + .reference{ + border: 1px dotted #000; + text-align: left; + padding: 5px; + padding: 15px 30px 15px; + background:#CCC url('http://sdf.org/tutorials/images/ref.png') 5px 5px no-repeat; + color: #000; + margin: 10px 5px; + } + + .link { text-decoration:none } + + .superscript{ + font-size:10px; + vertical-align:top; + } + + .subscript{ + font-size:10px; + vertical-align:bottom; + } + + .note{ + border: 1px dotted #000; + text-align: left; + padding: 5px; + padding: 15px 30px 15px; + background: #DC143C url('http://sdf.org/tutorials/images/note.png') 5px 5px no-repeat; + color: #FFF; + margin: 10px 5px; + } + + .code{ + border: 1px dotted #000; + text-align: left; + padding: 5px; + padding: 15px 30px 15px; + background:#2F4F4F url('http://sdf.org/tutorials/images/code.png') 5px 5px no-repeat; + color: #00FF00; + margin: 10px 5px; + font-family: monospace; + } + + table.table { + border-width: 0px; + border-spacing: 0px; + border-style: none; + border-collapse: collapse; + background-color: #1E90FF; + } + + table.table th { + border-width: 1px; + padding: 1px; + border-style: inset; + border-color: white; + background-color: #A0522D; + -moz-border-radius: ; + padding: 10; + } + + table.table td { + border-width: 1px; + padding: 1px; + border-style: inset; + border-color: white; + background-color: #FFEBCD; + -moz-border-radius: ; + padding: 5; + } + </style> + </head> + <body> + YOUR CODE HERE\\ + + <br/>\\ + <cite>$Id$</cite>\\ + </body></html> + +\\ + +This is how to to define a comment\\ + +\\ <!-- This is a comment --> + +This is the code to define a tutorial title\\ + +\\ \\ <h1 class="title">Here is a test for the title format.</h1> + +This is the code to define a tutorial header\\ + +\\ \\ <h3 class="header">Here is a test for the header format.</h3> + +This is the code to define a tutorial body.\\ + +\\ \\ <p class="body">Here is a test for the tutorial body format.</p> + +This is the code to define a tutorial note section.\\ + +\\ \\ <p class="note"><br>Here is a test for a note/warning/tip.</p> + +This is the code to define a tutorial code section.\\ + +\\ \\ <p class="code"><br>Here is a test for the code format.</p> + +This is the code to define a tutorial reference section.\\ + +\\ \\ <p class="reference"><br>Here is a test for the reference format.</p> + +This is the code to define a table.\\ + + \\ + <table class="table"> + <tr> + <th>Table Header 0</th> + <th>Table Header 1</th> + <th>Table Header 2</th> + </tr> + <tr><!-- This is column 1 --> + <th>Table DATA</th> + <td>TABLE DATA</td> + <td>TABLE DATA</td> + </tr> + <tr><!-- This is column 2 --> + <th>Table DATA</th> + <td>TABLE DATA</td> + <td>TABLE DATA</td> + </tr> + <tr><!-- This is column 3 --> + <th>Table DATA</th> + <td>TABLE DATA</td> + <td>TABLE DATA</td> + </tr> + </table> + +This is the code to define a list. You have have two levels: the title of a section(dt) and the subsection(dd). + + \\ + <dl> + <dt>Section 1</dt> + <dd>Section 1.1</dd> + <dd>Section 1.2</dd> + <dd>Section 1.3</dd> + <dt>Section 2</dt> + <dd>Section 2.1</dd> + <dt>Section 3</dt> + <dd>Section 3.1</dd> + <dd>Section 3.2</dd> + <dt>Section 4</dt> + <dd>Section 4.1</dd> + <dd>Section 4.2</dd> + </dl> + +This is the code to define a link. + + \\ + <a class="link" href="http://www.example.com">Example link</a> + +\\ + +==== Using images ==== + +No hotlinking of files from other sites: images must be uploaded to the /sys/html/tutorials/images folderWhen using images tags must be clearly defined.\\ Incorrect\\ + +\\ <img src="tutorials/images/example.png"/>\\ + + Correct\\ + +\\ <img src="http://sdf.org/tutorials/images/example.png" alt="Example" height="128" width="128"/>\\ + +\\ + +==== Using references ==== + + Book: + Author's last name, first initial. (Publication date). Book title. Additional information. City of publication: Publishing company. + + Encyclopedia & Dictionary: + Author's last name, first initial. (Date). Title of Article. Title of Encyclopedia (Volume, pages). City of publication: Publishing company. + + Magazine & Newspaper Articles: + Author's last name, first initial. (Publication date). Article title. Periodical title, volume number(issue number if available), inclusive pages. + + Online periodical: + Author's name. (Date of publication). Title of article. Title of Periodical, volume number, Retrieved month day, year, from full URL + + Online document: + Author's name. (Date of publication). Title of work. Retrieved month day, year, from full URL + +\\ + +==== Example ==== + +Here is the [[http://sdf.org/?tutorials/example|example]] and [[http://sdf.org/?tutorials/example_source|source]] of a typical tutorial. + +$Id: format.html,v 1.17 2014/09/11 09:30:24 grobe0ba Exp $ \ No newline at end of file diff --git a/dump/games_server_list.html.docuwiki b/dump/games_server_list.html.docuwiki new file mode 100644 index 0000000..db95ddf --- /dev/null +++ b/dump/games_server_list.html.docuwiki @@ -0,0 +1,30 @@ +===== INTERNET Game Server List and Game Information for SDF.ORG ===== + +There are several multiplayer games that you can play on SDF via the shell and clients run on your computer + +==== xscrabble - scrabble over X11 ==== + + * any SDF server + * info: [[http://sdf.lonestar.org/index.cgi?tutorials/xscrabble|xscrabble]]==== minecraft - blocky 3D craft work ==== + * minecraft.sdf.org + * requires Mojang client ==== Counter Strike Source - Terrorist/Counter Terrorist simulator ==== + * cs.sdf.org + * requires Steam client ==== Garry's Mod - Half Life 2 in a craft work world ==== + * gm.sdf.org + * requires Steam client ==== freeciv - Free Civilization ==== + * freeciv.sdf.org port 5555 + * clients and info: [[http://freeciv.wikia.com/wiki/Main_Page|Freeciv Wiki]]==== SDF Mud (ResortMUD) ==== + * mud.sdf.org port 4000 + * info: [[https://wm.sdf.org/mud|wm.sdf.org/mud]] + * Clients on SDF: + * Type 'mud' at the shell + * TinyFugue: type 'tf mud.sdf.org 4000' + * Other Clients: + * Windows: [[http://www.gammon.com.au/mushclient/mushclient.htm|MUSHclient]] + * Windows (non-free): [[http://www.zuggsoft.com/index.php?p=cmud|CMUD]] + * MacOS: [[http://www.riverdark.net/atlantis|Atlantis MU]]==== tetrinet - Up to 6 player tetris ==== + * server: tetrinet.sdf.org + * clients: http://en.tetrinet.no/tetrinet-clients-download-1.php, //tetrinet// at the shell + * stats: http://tetrinet.sdf.org==== BZFlag - Battle Zone Capture The Flag ==== + * sdf.org port 5154 + * clients and info: http://bzflag.org$Id: games_server_list.html,v 1.10 2012/12/24 03:53:28 hobbsc Exp $ \ No newline at end of file diff --git a/dump/getting-into-twenex.html.docuwiki b/dump/getting-into-twenex.html.docuwiki new file mode 100644 index 0000000..7fd1ffb --- /dev/null +++ b/dump/getting-into-twenex.html.docuwiki @@ -0,0 +1,3594 @@ +====== Getting Into TWENEX ====== + +This tutorial aims to bridge the gap between introductory documents like "TWENEX Starter Guide" and "TOPS-20 Interactive Tutorial", and mastry of the TWENEX user environment. + +The initial version will consist of a list of reference documents and a listing of twenex.org's file system contents accessible by user papa as of 24 May 2010. Contents will be Refined, improved, and expanded as the author explores the system. + +===== Why TWENEX? ===== + +TWENEX and similar operating systems running on DEC PDP-series computers during the 1960s and '70s were the incubator for Unix, the Internet, the free software movement, networked collaboration and socialization, and most of what some refer to as hacker culture. + +I used some of these systems, though I don't remember which, on a couple of occassions between junior high and college before I understood their significance or what computing would come to mean to me personally. Once I got into Unix-like systems, I wanted to understand the systems out of which Unix had developed, to see why things are as they are in Unix, what aspects of the older systems were carried-over and what aspects were rejected. + +TWENEX represents the path not taken, or Unix as it might have been. + +===== Reference Documents ===== + +SMJ. "[[http://www.twenex.org/starter.html|TWENEX Starter Guide for UNIX Users]]". SDF Public Access TWENEX. 19 July 2001. <http://www.twenex.org/starter.html> accessed 24 May 2010. + +"[[http://sdf.org/?tutorials/tops20-interactive|TOPS-20 Interactive Tutorial]]". SDF Public Access UNIX System. 23 May 2010. <http://sdf.org/?tutorials/tops20-interactive> accessed 24 May 2010. + +"[[http://tilt.twenex.org/|TOPS-20 User's Guide]]". SDF Public Access TWENEX. June 1988. Digital Equipment Corporation. <http://tilt.twenex.org/> accessed 24 May 2010. + +"[[http://www.bourguet.org/v2/pdp10/cmds/|TOPS-20 Commands Reference Manual]]". Jean-Marc Bourguet's PDP-10 Page. July 1990. Digital Equipment Corporation. <http://www.bourguet.org/v2/pdp10/cmds/> accessed 24 May 2010. + +===== File System Public Contents ===== + + TOPS20:<BBOARD> + 36-BITS.TXT.1 + MAIL.TXT.1 + SAIL.TXT.1 + + Total of 33 pages in 3 files + + TOPS20:<C> + ASSERT.H.3 + C-ENV.H.20 + CC.DOC.118 + CTYPE.H.9 + ERRNO.H.12 + FCNTL.H.6 + FRKXEC.H.3 + JSYS.H.130 + LIBC.DOC.213 + .REL.235 + LIBCKX.REL.4 + LIBTMX.DOC.8 + .REL.2 + LIBTRM.REL.3 + MACSYM.H.7 + MATH.H.5 + MEMORY.H.1 + MONSYM.H.3 + NETDB.H.3 + PRINTF.H.2 + REGEX.H.1 + SETJMP.H.9 + SGTTY.H.5 + SIGNAL.DOC.58 + .H.30 + STDARG.H.1 + STDDEF.H.5 + STDIO.H.31 + STDLIB.H.8 + STRING.H.10 + STRINGS.H.2 + STRUNG.H.6 + SYSITS.H.6 + TIME.H.7 + TIMEX.H.3 + TRMCAP.DAT.2 + .H.3 + URTSUD.H.7 + USER.DOC.118 + USYS.DOC.39 + VARARGS.H.4 + + Total of 307 pages in 41 files + + TOPS20:<C.SYS> + FILE.H.15 + IOCTL.H.8 + IPCF.H.1 + PARAM.H.1 + SITDEP.H.2 + STAT.H.25 + T20TIM.H.2 + TIME.H.14 + TIMEB.H.5 + TIMES.H.3 + TYPES.H.6 + UIO.H.41 + USYSIG.H.13 + USYSIO.H.44 + USYTTY.H.8 + + Total of 18 pages in 15 files + + TOPS20:<CHRIS> + LOGIN.CMD.4 + + Total of 1 page in 1 file + + TOPS20:<DOCUMENTATION> + 5221BM.MEM.1 + ACJ.MEM.1 + ACTGEN.DOC.1 + ANUTIL.MAN.1 + BOOT.DOC.1 + .TCO.1 + BUILD.MEM.1 + CHECKD.DOC.1 + CHKPNT.DOC.1 + COMMANDS.MEM.1 + CREF.DOC.1 + DDT11.DOC.1 + DDT43.BWR.1 + .DOC.1 + DDT44C.MEM.1 + DDTINFO.MEM.1 + DEFINE.LIS.1 + DIL.BWR.1 + .DOC.1 + .HLP.1 + DIU.DOC.1 + DIU1.BWR.1 + .DOC.1 + DLUSER.DOC.1 + DOCDIR.MEM.1 + DOCTAP.DIR.1 + DUMPER.BWR.1 + .DOC.1 + DX20LD.DOC.1 + DYN1F.MEM.1 + DYN1R.MEM.1 + DYN2F.MEM.1 + DYNLIB.MEM.1 + EAPGMG.MEM.1 + EDIT.DOC.1 + EDT.BWR.1 + .DOC.1 + EXEC.DOC.1 + .TCO.1 + EXTENDED_ADDRESSING.MEM.1 + FE.DOC.1 + FILCOM.DOC.1 + GALAXY.DOC.1 + HELP.HLP.1 + IDXINI.CBL.1 + INFO.DOC.1 + INSTALL.MEM.1 + JOBDAT.DOC.1 + JSYS_REFERENCE.MEM.1 + JSYS_USERS.MEM.1 + JTSERV.CBL.1 + JTTERM.CBL.1 + .VAX-COB.1 + JTVRPT.CBL.1 + LINK.BWR.1 + .DOC.1 + MACRO.DOC.1 + MACSYM.DOC.1 + .MEM.1 + MACTEN.DOC.1 + MAKLIB.DOC.1 + MAKRAM.DOC.1 + MAKVFU.DOC.1 + MGR_GUIDE.MEM.1 + MONITOR_TABLES.MEM.1 + MONSYM.DOC.1 + MONTBL.TXT.1 + MS-MX.BWR.1 + .DOC.1 + NEW-GALAXY-FEATURES.MEM.1 + OPRCOM.MEM.1 + OP_GUIDE.MEM.1 + PAT.DOC.1 + PROCES.MAC.1 + PTYCON.DOC.1 + README_HELP.TXT.1 + REAPER.DOC.1 + RIM10B..1 + RMS3.BWR.1 + .DOC.1 + RSXFMT.DOC.1 + SCAN.DOC.1 + SETSPD.DOC.1 + .TCO.1 + SPEAR.DOC.1 + SYSJOB.DOC.1 + .TCO.1 + TCPIP.BWR.1 + .DOC.1 + TELNET.DOC.1 + .HLP.1 + TERMINAL.HLP.1 + TGHA.DOC.1 + TOPS20.BWR.1 + .DOC.1 + .TCO.1 + .VERIFY.1 + TSU.MEM.1 + ULIST.DOC.1 + USEFE.MEM.1 + USERS.MEM.1 + USER_UTILS.MEM.1 + UTILITY.TCO.1 + UUOJSY.MAN.1 + UUOSYM.DOC.1 + VERIFY.DOC.1 + WATCH.DOC.1 + WILD.DOC.1 + + Total of 4869 pages in 108 files + + TOPS20:<DOMAIN> + ASSIGNED.PORTS.1 + .PROTOCOLS.1 + GTDTST.EXE.3 + RESOLV.CONFIG.5 + .CRASH.3119 + .EXE.3 + .LOG.3350 + RSVCTL.EXE.2 + ZT.EXE.1 + + Total of 296 pages in 9 files + + TOPS20:<EMACS> + BASE.:EJ.1 + .EMACS.2 + ABSTR.:EJ.73 + .EMACS.73 + ADA.:EJ.1 + .EMACS.2 + AMBASSADOR.:EJ.1 + .DOC.2 + .EMACS.2 + AUNDIG.:EJ.16 + .EMACS.16 + AUTO-SAVE-MODE.:EJ.118 + .EMACS.118 + AUX.:EJ.50 + .EMACS.51 + AWINDOW.:EJ.1 + .EMACS.2 + BABYL.:EJ.773 + .EMACS.773 + .OVARS.1 + .USE-MMAILR.2 + BABYLM.:EJ.164 + .EMACS.164 + BACKQ.:EJ.1 + .EMACS.1 + BARE.:EJ.17 + .EMACS.17 + BASIC20.:EJ.3 + .EMACS.3 + BBNLIB.:EJ.66 + .EMACS.66 + BBOARD.:EJ.1 + .EMACS.2 + BBSITE.EMACS.7 + BCPL.:EJ.3 + .EMACS.3 + BIBLIO.:EJ.1 + .BIB.1 + .DEFNS.1 + .EMACS.1 + .INFO.1 + .MSS.1 + BLISS.:EJ.31 + .EMACS.31 + BSHACK.:EJ.4 + .EMACS.4 + BUFED.:EJ.1 + .EMACS.1 + BUFFER.EMACS.2 + BUGHUNT.:EJ.21 + .EMACS.21 + C.:EJ.1 + .EMACS.1 + C108.:EJ.1 + .EMACS.2 + .KEYS.2 + CACHE.:EJ.101 + .EMACS.101 + CAPL.:EJ.2 + .EMACS.2 + .PAD.2 + CCL.EMACS.195 + CHESS.:EJ.1 + CHSEND.:EJ.1 + .EMACS.2 + CLOCK.:EJ.1 + CLU.:EJ.1 + .EMACS.2 + CLU-MORE.:EJ.1 + CMD.:EJ.2 + .EMACS.2 + CMODE.:EJ.5 + .EMACS.5 + COBOL.:EJ.4 + .EMACS.4 + COLUMNS.:EJ.82 + .EMACS.82 + .INFO.82 + COMPLAIN.:EJ.1 + .EMACS.1 + COMPLT.:EJ.3 + .EMACS.5 + CONFIG.MID.15 + CRL.EMACS.206 + CVT.MID.2 + DECBTS.MID.2 + DECDFS.MID.2 + DELIM.:EJ.20 + .EMACS.20 + DIRED.:EJ.1 + .EMACS.2 + DM.:EJ.11 + .EMACS.11 + DM3025.:EJ.1 + .EMACS.1 + DOC.EMACS.159 + DOCOND.:EJ.21 + .EMACS.21 + DOCTOR.:EJ.16 + .EMACS.16 + DRAW.:EJ.1 + .DOC.1 + .EMACS.1 + DUMP-BABYL.INIT.2 + DVT100.:EJ.1 + .EMACS.2 + EAK.INIT.2 + .QWABL.2 + EAKMACS.:EJ.337 + .EMACS.337 + EFORK.:EJ.36 + .EMACS.36 + EINIT.:EJ.2 + .EMACS.2 + ELINK.MID.2 + ELISP.:EJ.1 + EMACS.:EJ.165 + .CHART.4,5 + .CTL.3 + .EXE.165 + .INDEX.2 + .INIT.2 + .KEYS.2 + .LEDIT-INIT.2 + .WIDE-CHART.4,5 + EMACS-OTHERS.MIC.4 + EMOUSE.:EJ.3 + .EMACS.3 + .LISP.3 + EPICT.:EJ.1 + .EMACS.1 + ETMODE.TXT.2 + FDB.:EJ.1 + .EMACS.1 + FIELD.:EJ.19 + .DOC.1 + .EMACS.17 + FILES.EMACS.433 + FIXLIB.:EJ.209 + .EMACS.209 + FORTRAN.:EJ.1 + .EMACS.2 + FTP-LIBS.MIC.99 + FTPLIB.:EJ.4 + .EMACS.4 + GIVELIB.:EJ.1 + .EMACS.1 + GRADE.:EJ.1 + .EMACS.2 + GRIND.:EJ.12 + .EMACS.12 + H27.MSS.1 + HAKLIB.:EJ.161 + .EMACS.161 + HAZ1510.:EJ.1 + .EMACS.2 + HEATH.:EJ.3 + .DOC.2 + .EMACS.4 + HEATH2.:EJ.2 + .EMACS.3 + HEATH3.:EJ.2 + .EMACS.3 + HENRY.EMACS.32 + .INIT.32 + HERMES.:EJ.72 + .EMACS.72 + IBM370.:EJ.5 + .EMACS.5 + IMAIL.EMACS.1 + INDENT.EMACS.238 + INFO.:EJ.96 + .EMACS.96 + INFO-EMACS.TXT.2 + INTER.:EJ.1 + .COM.2 + .EMACS.2 + .HP.2 + INTERLISP-MODE.:EJ.167 + .EMACS.167 + INTERMACS.:EJ.1 + .EMACS.2 + ISEARC.:EJ.74 + .EMACS.74 + ISPELL.DCT.1 + .MID.1 + ITAGS.MID.1 + ITSBTS.MID.1 + ITSDFS.MID.1 + IVORY.:EJ.189 + .EMACS.189 + JOURNAL.:EJ.37 + .EMACS.37 + JSGLIB.:EJ.1 + JUSTIFY.:EJ.1 + .EMACS.1 + KBDALT.:EJ.1 + .EMACS.1 + KBDMAC.:EJ.46 + .EMACS.46 + LABELS.:EJ.1 + .EMACS.1 + LATEX.:EJ.1 + .TEC.1 + LEDIT.:EJ.36 + .EMACS.36 + .FASL.36 + .LSP.36 + LIST.:EJ.1 + .EMACS.1 + LONG-FILENAMES.:EJ.127 + .EMACS.127 + LPTLIB.:EJ.1 + .EMACS.1 + LSPUTL.:EJ.7 + .EMACS.7 + LUNAR.:EJ.211 + .EMACS.211 + MACRO.:EJ.1 + MACROS.MID.1 + MAICHK.:EJ.1 + .CODE.1 + .EMACS.1 + .MID.1 + MARKER.:EJ.1 + .EMACS.1 + MAZE.MAZE.1 + MAZLIB.:EJ.35 + .EMACS.35 + MERGE.:EJ.1 + .EMACS.1 + MICRO.:EJ.1 + .EMACS.1 + MICRO-DAT.:EJ.1 + .EMACS.1 + MINI.:EJ.1 + .EMACS.1 + MINIMAL.PROFILE.1 + MINIMAL-EMACS.VARS.1 + MIT-SITE.INIT.1 + MKDUMP.:EJ.55 + .EMACS.55 + MM-MAIL.:EJ.8 + .EMACS.8 + .HLP.1 + MMAIL.:EJ.94 + .EMACS.94 + MMCM.:EJ.1 + .INIT.1 + MODE2.:EJ.78 + .EMACS.78 + MODELINE.:EJ.1 + .EMACS.1 + MODLIN.:EJ.68 + .EMACS.68 + .INFO.68 + MOUSE.:EJ.3 + .EMACS.3 + MOVE.:EJ.29 + .EMACS.29 + MQREPL.:EJ.10 + .EMACS.10 + MUDDLE.:EJ.13 + .EMACS.13 + MWIND.:EJ.8 + .EMACS.9 + MWINDOW.EMACS.80 + NCASE.:EJ.1 + NCOLUMNS.:EJ.5 + .EMACS.5 + NEW-BUGHUNT.:EJ.1 + .EMACS.1 + NEW-DIRED.:EJ.1 + .EMACS.1 + NEW-NOVICE.:EJ.1 + .EMACS.1 + NEW-USER-INIT.:EJ.1 + .EMACS.1 + .PROFILE.1 + NEWMODLIN.:EJ.1 + .EMACS.1 + NHERMES.:EJ.1 + .EMACS.1 + NOVICE.:EJ.134 + .EMACS.134 + NOVICE-SITE.INIT.1 + NVT100.:EJ.21 + .DOC.21 + .EMACS.21 + NVT132.:EJ.8 + .EMACS.8 + NVT52.:EJ.16 + .DOC.16 + .EMACS.16 + OLD-PCL.EMACS.9 + OUTLINE.:EJ.43 + .EMACS.43 + OUTLINE-MODE.:EJ.31 + .EMACS.31 + PAGE.:EJ.1 + .EMACS.1 + PAGER.EMACS.1 + PASCAL.:EJ.2 + .DEFN.1 + .EMACS.2 + .SYN.1 + PCL.:EJ.1 + .DEFNS.1 + .EMACS.1 + PERSONAL.:EJ.37 + .EMACS.37 + PHRASE.:EJ.43 + .EMACS.43 + PICTURE.:EJ.15 + .EMACS.15 + PL1.:EJ.250 + .EMACS.250 + PLAN.SAI.1 + PRBUF.:EJ.1 + .EMACS.1 + PRINT.:EJ.15 + .EMACS.15 + PUB.:EJ.2 + .EMACS.2 + PURIFY.:EJ.126 + .EMACS.126 + QM.MID.1 + QUEUE-XMAIL.MID.1 + RENUM.:EJ.453 + .EMACS.453 + RMS.INIT.1 + SAIL.:EJ.11 + .DEFNS.11 + .EMACS.11 + SAMPLE.INIT.1 + SAMPLE-BABYL.INIT.1 + SAVMAC.:EJ.1 + .EMACS.1 + SBASIC.:EJ.1 + .EMACS.1 + SCHEDIT.:EJ.1 + .EMACS.1 + SCHEME.:EJ.1 + .EMACS.2 + SCRIBE.:EJ.44 + .EMACS.44 + SCRLIN.:EJ.3 + .EMACS.3 + SEARCH.EMACS.51 + SEND.:EJ.1 + .EMACS.1 + SEND-MAIL.:EJ.46 + .EMACS.46 + SHRINK.MAC.1 + SITE.INIT.1 + SKETCH.:EJ.77 + .EMACS.77 + SLOWLY.:EJ.130 + .EMACS.130 + SMALLSEARCH.:EJ.1 + .EMACS.1 + SORT.:EJ.11 + .EMACS.11 + SPELL.DCT.1 + .MID.1 + SPLIT.:EJ.5 + .EMACS.5 + STAN.:EJ.1 + .EMACS.1 + STANLIB.:EJ.1 + .EMACS.1 + SUPPRT.:EJ.417 + .EMACS.417 + SYSTEM.:EJ.1 + .EMACS.1 + .MID.1 + TAGGEN.:EJ.1 + .EMACS.1 + TAGS.:EJ.144 + .EMACS.144 + .EXE.144 + .FAI.144 + TALK.:EJ.31 + .EMACS.31 + TAPE-REQUEST.TXT.1 + TDEBUG.:EJ.127 + .EMACS.127 + TEACH-C100.:EJ.21 + .EMACS.21 + TEACH-EMACS.INIT.1 + .TXT.1 + TECO.CARD.1 + .CHANGES.1 + .EXE.16510 + .FILES.1 + .INIT.1 + .MID.16510 + .SYMBOLS.16510 + TECO-VARIABLES.CARD.1 + TECPUR.EXE.16510 + TECTRM.MID.51 + TEKHEATH.:EJ.1 + .EMACS.1 + TEKVT100.:EJ.1 + .EMACS.1 + TEX.:EJ.1 + .EMACS.1 + TIME.:EJ.49 + .EMACS.49 + TIMER.:EJ.1 + .EMACS.1 + TMACS.:EJ.430 + .EMACS.430 + TMUCS.EMACS.20 + TNXDFS.MID.1 + TPARSE.:EJ.137 + .EMACS.137 + TRMTYP.:EJ.5 + .EMACS.5 + TVI9XX.:EJ.1 + .EMACS.1 + TVLIB.:EJ.1 + .CHART.1 + .DOC.1 + .EMACS.1 + .REFERENCE-CARD.1 + TWENEX.:EJ.2 + .EMACS.2 + .INSTALL.1 + .LOSSES.1 + TWXDFS.MID.1 + UNDERLINER.:EJ.1 + .EMACS.1 + USRCOM.:EJ.1 + .EMACS.1 + VARS.EMACS.23 + VIEW.TECO.4 + VT100.:EJ.49 + .EMACS.49 + .INFO.1 + .PAD.1 + .TXT.1 + VT132.PAD.1 + VT52.:EJ.3 + .EMACS.3 + .PAD.3 + VTSDEF.MID.2 + VTXXX.:EJ.1 + .EMACS.1 + WAKEMM.EXE.2 + .MAC.2 + WEBSTER.:EJ.35 + .EMACS.42 + WINDOW.EMACS.77 + WJN.:EJ.1 + WM.MID.1 + WORDAB.:EJ.622 + .EMACS.622 + WORDCOUNT.:EJ.2 + .EMACS.2 + WPLIB.:EJ.1 + .EMACS.1 + WRDLST.EMACS.199 + WRSOME.:EJ.1 + .EMACS.1 + XBASIC.:EJ.1 + .EMACS.1 + XFJW..191 + .:EJ.191 + XJSYS.MID.1 + XLEDIT.:EJ.35 + .EMACS.35 + XLISP.:EJ.110 + .EMACS.110 + XON-XOFF.:EJ.1 + .EMACS.1 + XPAGE.:EJ.11 + .EMACS.11 + XPAS.:EJ.23 + .EMACS.23 + ZBABYL.:EJ.47 + .EMACS.47 + .LISP.1 + ZED.MIC.3 + .TEC.1 + ZMENU.:EJ.20 + .EMACS.20 + ^RBASE.:EJ.1 + .EMACS.1 + + Total of 3434 pages in 491 files + + TOPS20:<FINGER> + -READ-THIS-.TXT.6 + DBEDIT.EXE.1 + .HLP.2 + .MAC.38 + FINGER.BIN.1 + .HLP.6 + .MAC.131 + .REL.7 + .TXT.1 + FNGDEF.MAC.23 + GETLOC.MAC.50 + .REL.1 + TINIDF.MAC.1 + .UNV.1 + TTYLOC.CMD.1 + .EXE.1 + .HLP.5 + .MAC.24 + + Total of 182 pages in 18 files + + TOPS20:<FISSION> + AUTO-LOAD.4TH.9 + + Total of 1 page in 1 file + + TOPS20:<GAMES> + ADVENT.EXE.2 + ASCII.EXE.1 + BKG.EXE.1 + BYE.IDX.1 + .LNS.1 + CAVE.EXE.1 + CHECKERS.EXE.1;E + CHESS.EXE.1 + COOKIE.EXE.1;E + CRIME.EXE.1 + CRUDE.EXE.1;E + DOIT.EXE.1;E + FORTUNE.EXE.18 + FT..1 + GIN.EXE.2 + HAUNT.EXE.2 + KALAH.EXE.1 + KANJI.EXE.3;E + .INDEX.1 + .LNS.1 + LIMERICK.EXE.1;E + LIMRCK.EXE.1;E + M.1.1 + .2.1 + .3.1 + .4.1 + MADADV.DOC.1 + .HELP.1 + .INFO.1 + MANHUNT.EXE.1 + MAZE.EXE.3 + MDL105.EXE.1 + MOON.EXE.1;E + PACMAN.EXE.3 + RDAT..1 + REMIND.EXE.1 + RROU..1 + RUBIKS.EXE.5 + TECH.EXE.1 + TECH2.EXE.631 + TINGLE.EXE.78;E + TODAY.EXE.1 + TOPS20.EXE.1 + VTTREK.DOC.1 + .EXE.41 + .HLP.1 + .SHARE.41 + WOCKA.GGB.1 + WUMPUS.EXE.1 + ZORK.BUG.1 + .EXE.1 + .SAV.1 + + Total of 1931 pages in 52 files + + TOPS20:<HELP> + ABOLISH-CATS.HLP.1 + ACJLOG.HLP.1 + ACTDMP.HLP.1 + ACTGEN.HLP.1 + ADVENTURE-DOG.HLP.1 + ALGDDT.HLP.1 + ALICE'S-PDP-10.HLP.1 + BASIC.HLP.1 + BLIS10.HLP.1 + CC.HLP.76 + CHANS.HLP.1 + CHECKD.HLP.1 + CHKPNT.HLP.1 + CNVDSK.HLP.1 + COMPAR.HLP.1 + CREF.HLP.1 + DBEDIT.HLP.1 + DCRYPT.HLP.1 + DIL.HLP.1 + DIRPNT.HLP.1 + DIRTST.HLP.1 + DIU.HLP.1 + DLUSER.HLP.1 + DNSNUP.HLP.1 + DNTATL.HLP.1 + DS.HLP.1 + DSKERR.HLP.1 + DTS.HLP.1 + DUMPER.HLP.1 + EDIT.HLP.1 + EDT.HLP.1 + ENVIRONMENT.HLP.1 + EXEC-ALTER-KEYS.HLP.1 + EXEC-COMMAND-EDITOR.HLP.1 + EXEC-EMACS-KEYS.HLP.1 + EXEC-SED-KEYS.HLP.1 + EXEC-VMS-KEYS.HLP.1 + FE.HLP.1 + FILCOM.HLP.1 + FIND.HLP.1 + FINGER.HLP.1 + FORDDT.HLP.1 + FORMAT.HLP.1 + FORTRA.HLP.1 + FTP.HLP.1 + FTS.HLP.1 + GAMES.HLP.9 + GEALT.HLP.2 + GEBOX.HLP.2 + GECIR.HLP.2 + GECMD.HLP.2 + GEED.HLP.2 + GETXT.HLP.2 + GTDOM.HLP.1 + HELP.BIN.7 + .CMD.8 + .HLP.1 + JARGON.HLP.1 + JSTRAP.HLP.1 + LINK.HLP.1 + MACRO.HLP.1 + MAIL.HLP.1 + MAKE.HLP.24 + MAKLIB.HLP.1 + MAKRAM.HLP.1 + MAKVFU.HLP.1 + MERGE.HLP.1 + MM.HLP.1 + MM-MAIL.HLP.2 + MONRD.HLP.1 + MS.HLP.1 + MTEST.HLP.1 + NCP.HLP.1 + NETCON.HLP.1 + NETPTH.HLP.1 + NEW-USER.HLP.10 + NFT.HLP.1 + OPR.HLP.1 + PDP-8.HLP.1 + PEP.HLP.1 + PHONE.HLP.1 + .INDEX.1 + PLEASE.HLP.1 + PTYCON.HLP.1 + RDMAIL.HLP.1 + REAPER.HLP.1 + REV.HLP.1 + RMSFAL.HLP.1 + RMTCON.HLP.1 + RSXFMT.HLP.1 + RUNINP.HLP.1 + RUNOFF.HLP.1 + SCM.HLP.1 + SED.HLP.1 + SEDONL.HLP.1 + SMFILE.HLP.1 + SSU.HLP.1 + SWSERR.HLP.1 + SYSJOB.HLP.1 + TAR.HLP.1 + TCX.HLP.1 + TELNET.HLP.1 + TERMINAL.HLP.1 + TOC.HLP.1 + TTYINI.HLP.1 + TTYLOC.HLP.1 + TYPVF7.HLP.1 + ULIST.HLP.1 + UNITS.HLP.1 + UPDATE.HLP.1 + USAG20.HLP.1 + USAH20.HLP.1 + WATCH.HLP.1 + + Total of 383 pages in 113 files + + TOPS20:<INFO> + -READ-.-THIS-.1 + ALL.TFO.1 + AMBASSADOR.DOC.1 + ANALOGY.INFO.1 + ATSIGN.INFO.1 + BABYL.INFO.1 + BBOARD.INFO.1 + BIBLIO.BIB.1 + .INFO.1 + .MSS.1 + C.INFO.1 + CACHE.INFO.1 + CALC.INFO.1 + COMMANDS.MSS.1 + CONLAN.INFO.1 + CONV.INFO.1 + CRTSTY.INFO.1 + CTRL.TFO.1 + DIR.INFO.1 + DISPLAYEDITORS.INFO.1 + DM.INFO.1 + DMACS.INFO.1 + DOCOND.INFO.1 + DRAW.DOC.1 + ECLU.INFO.1 + EFORK.INFO.1 + EFORTRAN.INFO.1 + EINFO.DIF.1 + EMACS.AUX.1 + .CHART.1 + .DICT.1 + .DOC.1 + .DOCOND.1 + .GUIDE.1 + .INDEX.1 + .INFO.1 + .KEYS.1 + .LETTER.1 + .MSS.1 + .NEWS.1 + .OTL.1 + .WIDE-CHART.1 + EMACS-IN-2-PAGES.LPT.1 + EMACS-ITS-DOVER.AUX.1 + EMACS-ITS-LPT.AUX.1 + EMACS-TWENEX-DOVER.AUX.1 + EMACS-TWENEX-LPT.AUX.1 + EMACSH.FON.1 + EMACSR.FON.1 + EPASC.INFO.1 + EPL1.INFO.1 + ETEX.INFO.1 + EXEC.INFO.1 + GLOSS.MSS.1 + HAZ1510.INFO.1 + HEATH.DOC.1 + HELP.INFO.1 + IDDT.DOC.1 + INFO.DEV.1 + .DOCOND.1 + .INFO.1 + .INIT.1 + .MAK.1 + INTER.CHANGES.1 + .DOCOND.1 + .INFO.1 + ISPELL.INFO.1 + ITS-CHART.MSS.1 + ITS-PDP-10.INFO.1 + ITSTTY.INFO.1 + IVORY.INFO.1 + JARGON.TXT.1 + JSYS.INFO.1 + .MAN.1 + .MANUAL.1 + JSYS-LOCAL.INFO.1 + JSYS4AF.INFO.1 + JSYS4GM.INFO.1 + JSYS4NR.INFO.1 + JSYS4SZ.INFO.1 + JSYSAF.INFO.1 + JSYSGM.INFO.1 + JSYSLIST.INFO.1 + JSYSNR.INFO.1 + JSYSSZ.INFO.1 + LANGUAGES.INFO.1 + LEDIT.INFO.1 + LIB.INFO.1 + LIBRARIES.INFO.1 + .MSS.1 + LISP.INFO.1 + MACLISP-COMMANDS.INFO.1 + MAKE.MAC.1 + MAKE_TOC.CLU.1 + .EXE.1 + MIDAS.ARCHIV.1 + .INFO.1 + MIT-DM.TXT.1 + MIT-XX.TXT.1 + MKDUMP.INFO.1 + MM.DOC.1 + .INIT-DOC.1 + MODLIN.INFO.1 + NVT100.DOC.1 + NVT52.DOC.1 + O.INFO.1 + OLD-LANGUAGES.INFO.1 + OLD-TECORD..1 + P.LIST.1 + PAGE.INFO.1 + PALX.ORDER.1 + PDP-10.INFO.1 + PLAN.DOC.1 + RENUM.INFO.1 + RGUIDE.INFO.1 + .LPT.1 + .TOC.1 + RMACRO.INFO.1 + RSX20F.INFO.1 + SAIL.DOC.1 + .HLP.1 + .INFO.1 + .JSYS.1 + SAIL-EXAMPLES.DOC.1 + SAIL-LIBS.INFO.1 + SAILIO.DOC.1 + SCHEME.INFO.1 + SLOWLY.INFO.1 + .MSS.1 + SORT-O-SIZES.TECO.1 + SPELL.INFO.1 + SRCCOM.INFO.1 + TAGS.INFO.1 + .MSS.1 + TDEBUG.INFO.1 + TEACH-C100.INFO.1 + TECO.ARCHIV.1 + .CARD.1 + .PRIMER.1 + TECO-VARIABLES.CARD.1 + TECORD.INFO.1 + TERMS.INFO.1 + TEST.INFO.1 + TMACS.INFO.1 + TVLIB.CHART.1 + .DOC.1 + .REFERENCE-CARD.1 + TWENEX-CHART.MSS.1 + VARS.MSS.1 + WORDAB.INFO.1 + .MSS.1 + XGP.INFO.1 + XLPT.TFO.1 + ZBABYL.INFO.1 + + Total of 4060 pages in 154 files + + TOPS20:<JSOL> + FINGER.PLAN.1 + + Total of 1 page in 1 file + + TOPS20:<KCC> + -FTP-.MIC.1 + AGREE.TXT.10 + CCX.EXE.602 + INSTAL.DOC.15 + NEWS.TXT.26 + OBTAIN.DOC.5 + + Total of 184 pages in 6 files + + TOPS20:<KCC.FAIL> + FAIL.EXE.4 + .FAI.4 + .MANUAL.2 + + Total of 244 pages in 3 files + + TOPS20:<KCC.INCLUDE> + ASSERT.H.3 + C-ENV.H.17 + CC.DOC.118 + CTYPE.H.9 + ERRNO.H.11 + FCNTL.H.5 + FRKXEC.H.3 + JSYS.H.126 + LIBC.DOC.213 + .REL.219 + LIBCKX.REL.4 + LIBTMX.DOC.8 + .REL.2 + LIBTRM.REL.3 + MACSYM.H.7 + MATH.H.5 + MEMORY.H.1 + MONSYM.H.3 + NETDB.H.2 + PRINTF.H.2 + REGEX.H.1 + SETJMP.H.9 + SGTTY.H.5 + SIGNAL.DOC.58 + .H.30 + STDDEF.H.5 + STDIO.H.29 + STDLIB.H.8 + STRING.H.10 + STRINGS.H.2 + STRUNG.H.4 + SYSITS.H.5 + TIME.H.7 + TIMEX.H.2 + TRMCAP.DAT.1 + .H.3 + URTSUD.H.7 + USER.DOC.118 + USYS.DOC.38 + VARARGS.H.4 + + Total of 302 pages in 40 files + + TOPS20:<KCC.INCLUDE.SYS> + FILE.H.14 + IOCTL.H.8 + IPCF.H.1 + PARAM.H.1 + SITDEP.H.2 + STAT.H.24 + T20TIM.H.2 + TIME.H.14 + TIMEB.H.5 + TIMES.H.3 + TYPES.H.6 + UIO.H.41 + USYSIG.H.13 + USYSIO.H.43 + USYTTY.H.8 + + Total of 18 pages in 15 files + + TOPS20:<KCC.KCC> + -READ-.-THIS-.1 + C-ENV.H.12 + CC.C.185 + .H.199 + .MIC.25 + .REL.1 + CCASMB.C.95 + .REL.8 + CCCHAR.H.11 + CCCODE.C.315 + .H.46 + .REL.3 + CCCREG.C.63 + .REL.2 + CCCSE.C.136 + .REL.1 + CCDATA.C.166 + .REL.4 + CCDECL.C.370 + .REL.1 + CCDUMP.C.142 + .REL.2 + CCERR.C.57 + .H.40 + .REL.1 + CCEVAL.C.24 + .REL.1 + CCFOLD.C.116 + .REL.6 + CCGEN.C.221 + .H.76 + .REL.3 + CCGEN1.C.198 + .REL.1 + CCGEN2.C.294 + .REL.2 + CCGSWI.C.52 + .REL.1 + CCINP.C.265 + .REL.2 + CCJSKP.C.99 + .REL.1 + CCLEX.C.150 + .H.21 + .REL.1 + CCNODE.H.25 + CCOPT.C.324 + .REL.2 + CCOUT.C.256 + .REL.2 + CCPARM.H.30 + CCREG.C.45 + .H.17 + .REL.1 + CCSITE.H.14 + CCSTMT.C.339 + .REL.1 + CCSYM.C.165 + .H.126 + .REL.1 + CCTOKS.H.75 + CCTYPE.C.121 + .REL.1 + CCX.EXE.7 + .MIC.2 + CRTSYM.DOC.23 + INTERN.DOC.35 + NOTES.TXT.295 + PORT.DOC.30 + SEQNCE.DOC.8 + TYPECV.DOC.8 + USER.DOC.118 + + Total of 863 pages in 72 files + + TOPS20:<KCC.LIB> + -DIRS-.CMD.6 + -MAKE-.CMD.22 + -READ-.-THIS-.2 + ABORT.C.9 + .REL.1 + ATOI.C.10 + .REL.1 + BSEARC.C.9 + .REL.1 + CLOCK.C.1 + .REL.1 + CODING.DOC.1 + CPU.C.10 + .REL.1 + CRT.C.64 + .REL.1 + CTERMI.C.4 + .REL.1 + CTIME.C.42 + .REL.1 + CTYPE.C.3 + .REL.1 + GETCWD.C.6 + .REL.1 + GETENV.C.18 + .REL.1 + GETLOG.C.1 + .REL.1 + GETOPT.C.1 + .REL.1 + JSYS.C.35 + .REL.1 + LIBC.DOC.213 + .LOG.269 + .MAK.64 + .MIC.7 + .POI.207 + .REL.4 + LIBCKX.C.2 + .REL.1 + LIBTMX.DOC.8 + .MIC.1 + LIBTRM.DOC.1 + .MIC.2 + LJERR.C.1 + .REL.1 + MALLOC.C.188 + .REL.1 + MEMSTR.C.9 + .REL.1 + MUUO.C.2 + ONEXIT.C.2 + .REL.1 + PERROR.C.11 + PSIGNA.C.2 + .REL.1 + QSORT.C.4 + .REL.1 + REGEX.C.1 + SETJMP.C.17 + .REL.1 + SSIGNA.C.8 + .REL.1 + STRERR.C.4 + .REL.1 + STRING.C.39 + .REL.1 + STRUNG.C.5 + .REL.1 + SYSCAL.C.4 + SYSTEM.C.7 + .REL.1 + TIMEMK.C.7 + TIMEPA.C.7 + TIMEZN.C.6 + TRMCAP.C.30 + TTYNAM.C.3 + .REL.1 + USYS.DOC.38 + + Total of 298 pages in 79 files + + TOPS20:<KCC.LIB.MATH> + -MAKE-.CMD.8 + -READ-.-THIS-.4 + ABS.C.5 + .REL.1 + ACOS.C.3 + .REL.1 + ASIN.C.3 + .REL.1 + ATAN.C.7 + .REL.1 + ATAN2.C.6 + .REL.1 + CEIL.C.8 + .REL.1 + COS.C.7 + .REL.1 + COSH.C.3 + .REL.1 + DIV.C.2 + .REL.1 + EXP.C.11 + .REL.2 + FABS.C.4 + .REL.1 + FLOOR.C.8 + .REL.1 + FMOD.C.4 + .REL.1 + FREXP.C.26 + .REL.1 + LABS.C.4 + .REL.1 + LDEXP.C.4 + .REL.1 + LOG.C.8 + .REL.1 + LOG10.C.5 + .REL.1 + MODF.C.87 + .REL.1 + MTEST.C.6 + POLY.C.5 + .REL.1 + POW.C.6 + .REL.1 + RAND.C.24 + .REL.1 + SIGN.C.3 + .REL.1 + SIN.C.6 + .REL.1 + SINH.C.3 + .REL.1 + SQRT.C.5 + .REL.2 + TAN.C.3 + .REL.1 + TANH.C.4 + .REL.1 + XEXP.C.5 + .REL.1 + XMANT.C.3 + .REL.1 + + Total of 73 pages in 63 files + + TOPS20:<KCC.LIB.NETWORK> + -MAKE-.CMD.2 + GETHST.C.8 + .REL.1 + + Total of 3 pages in 3 files + + TOPS20:<KCC.LIB.PML> + -READ-.-ME-.1 + CCTEST.C.1 + COMPILE.MIC.6 + DACOS.C.1 + DACOSH.C.1 + DASIN.C.2 + DASINH.C.1 + DATAN.C.1 + DATAN2.C.3 + DATANH.C.1 + DCOS.C.2 + DCOSH.C.1 + DEXP.C.3 + DLN.C.1 + DLOG.C.1 + DPOLY.C.1 + DPOWER.C.17 + DSCALE.C.1 + DSIGN.C.2 + DSIN.C.4 + DSINH.C.1 + DSQRT.C.1 + DTAN.C.1 + DTANH.C.1 + DXEXP.C.1 + DXMANT.C.2 + FTEST1.C.8 + .EXE.4 + FTESTE.C.1 + PML.DOC.1 + .H.9 + .MIC.9 + .RNO.3 + PMLERR.C.2 + PMLUSE.H.3 + TEST.C.3 + TLN.C.8 + TP.C.7 + + Total of 153 pages in 38 files + + TOPS20:<KCC.LIB.STDIO> + -MAKE-.CMD.20 + -READ-.-THIS-.9 + CLEANU.C.4 + .REL.1 + FCLOSE.C.22 + .REL.1 + FDOPEN.C.15 + .REL.1 + FFLUSH.C.35 + .REL.1 + FGETC.C.18 + .REL.1 + FGETS.C.22 + .REL.1 + FILBUF.C.45 + FOPEN.C.27 + .REL.1 + FPUTC.C.38 + .REL.1 + FPUTS.C.14 + .REL.1 + FREAD.C.16 + .REL.1 + FREOPE.C.51 + .REL.1 + FSEEK.C.25 + .REL.1 + FTELL.C.23 + .REL.2 + FWRITE.C.12 + .REL.1 + GETS.C.9 + .REL.1 + GETW.C.6 + .REL.1 + MKTEMP.C.10 + .REL.1 + PERROR.C.1 + .REL.1 + PRINTF.C.27 + .REL.1 + PUTS.C.6 + .REL.1 + PUTW.C.5 + .REL.1 + REMOVE.C.2 + .REL.1 + RENAME.C.2 + .REL.1 + REWIND.C.2 + .REL.1 + SCANF.C.187 + .REL.1 + SETBUF.C.30 + .REL.1 + SOPEN.C.16 + .REL.1 + TEST.C.2 + TMPFIL.C.8 + .REL.1 + TMPNAM.C.6 + .REL.1 + UNGETC.C.22 + .REL.1 + VPRINT.C.1 + .REL.1 + + Total of 97 pages in 66 files + + TOPS20:<KCC.LIB.TEST> + -READ-.-THIS-.1 + BUGCOS.C.4 + HELLO.C.1 + NFILES.C.2 + PASSON.C.3 + SHOARG.C.5 + TALARM.C.3 + TBCOPY.C.1 + TBENCH.C.6 + TBSEAR.C.2 + TCAT.C.3 + TCHDIR.C.8 + TCHMOD.C.5 + TCHOWN.C.2 + TCSTI.C.8 + TCTYPE.C.1 + TEXEC.C.2 + TFSEEK.C.4 + TFTEL1.C.1 + TFTEL2.C.1 + TGFRKS.C.1 + TMALL1.C.1 + TMALL2.C.1 + TMATH.C.1 + TNREAD.C.1 + TPID.C.1 + TPRINT.C.1 + TPSI20.C.1 + TQUIT.C.3 + TSGTTY.C.3 + TSIGS.C.18 + TSPEED.C.1 + TSTAT.C.6 + TSTRIN.C.1 + TSYSTE.C.1 + TSYSTM.C.1 + TTIME.C.7 + TTMPFS.C.2 + TTYNAM.C.2 + TUTIME.C.1 + TVBUF.C.1 + + Total of 60 pages in 41 files + + TOPS20:<KCC.LIB.USYS> + -MAKE-.CMD.25 + -READ-.-THIS-.7 + ACCESS.C.10 + .REL.1 + ALARM.C.5 + .REL.1 + BUFPOS.C.18 + .REL.1 + CHDIR.C.3 + .REL.1 + CHMOD.C.10 + .REL.1 + CHOWN.C.4 + .REL.1 + CLOSE.C.59 + .REL.1 + CODSIG.DOC.2 + CODSYS.DOC.1 + DUP.C.19 + .REL.1 + EXIT.C.2 + .REL.1 + FCNTL.C.13 + .REL.1 + FORKEX.C.12 + .REL.1 + GETPID.C.30 + .REL.1 + GETUID.C.3 + .REL.1 + IOCTL.C.59 + .REL.6 + LSEEK.C.32 + .REL.1 + OPEN.C.224 + .REL.7 + PAUSE.C.3 + .REL.1 + PIPE.C.24 + .REL.1 + READ.C.100 + .REL.1 + RENAME.C.17 + .REL.1 + SBRK.C.29 + .REL.1 + SGTTY.C.4 + .REL.1 + SIGDAT.C.19 + .REL.1 + SIGNAL.C.2 + .DOC.58 + .REL.1 + SIGVEC.C.165 + .REL.13 + SLEEP.C.15 + .REL.1 + STAT.C.141 + .REL.10 + TIME.C.75 + .REL.1 + TIMES.C.2 + .REL.1 + UIODAT.C.17 + .REL.1 + UNLINK.C.27 + .REL.1 + URT.C.119 + .REL.1 + URTSUD.C.6 + .REL.1 + UTIME.C.6 + .REL.1 + WAIT.C.32 + .REL.1 + WRITE.C.64 + .REL.5 + + Total of 201 pages in 77 files + + TOPS20:<LISP> + 10MACROS..159 + .COM.160 + 10UNDO..1 + .COM.1 + ADVISE..12 + .COM.147 + ARITH..156 + .COM.157 + ASSEMBLE..150 + .COM.151 + ASSIST..168 + .COM.166 + ATHASH.MAC.120 + BASIC..160 + .COM.161 + BOOT.MAC.1 + .SAV.125 + BOOTSTRAP..164 + .COM.162 + BREAK..185 + .COM.171 + BRKDWN..161 + .COM.162 + CLISP..168 + .COM.167 + CLISPIFY..161 + .COM.163 + CODEFORMAT..147 + .COM.148 + COMMENT..164 + .COM.164 + COMP..155 + .COM.156 + COMPILE..164 + .COM.165 + DATATYPE..156 + .COM.157 + DWIM..161 + .COM.162 + DWIMIFY..168 + .COM.175 + EDIT..166 + .COM.165 + FFILEPOS..11 + .COM.16 + FILEPKG..171 + .COM.173 + GC.MAC.145 + GETLSP.MAC.1 + HELPDL..163 + .COM.163 + HIST..167 + .COM.166 + HPRINT..164 + .COM.163 + INIT.COM.1 + .LISP.9 + INTERLISP-10-USERS.ARCHIVE.1 + .DIS.7 + LAP..146 + .COM.147 + LISP.EXE.41231 + .MAC.164 + LISP-MAINTENANCE.INFO.2 + LMMAC..156 + .COM.157 + LOADFNS..160 + .COM.160 + LOADUP..157 + .COM.158 + .CTL.2 + .LISP.159 + MAC..159 + .COM.159 + MACHINEDEPENDENT..164 + .COM.162 + MACHINEINDEPENDENT..168 + .COM.165 + MACROS..162 + .COM.161 + MAKE-INDIRECT.DOC.1 + .EXE.1 + .FAI.1 + MASTERSCOPE..168 + .COM.165 + .SYNTAX.106 + MISC..163 + .COM.162 + MSANALYZE..162 + .COM.161 + MSPARSE..10 + .COM.12 + MY.CTL.2 + .EXE.5 + NEWLISP.CTL.1 + PARCMESSAGE.TXT.1 + PRETTY..170 + .COM.169 + PUTDQ..159 + RECORD..165 + .COM.167 + SBOOT.SAV.1 + SETSEPR..1 + SHALLOW-MASTERSCOPE.DOC.1 + SLISP.MISSINGFUNCTIONSLIST.1 + SMALL-SLISP.INFO.2 + SPELL..167 + .COM.168 + SUMEXMESSAGE.TXT.1 + SWAP..7 + .COM.13 + .MAC.121 + SYSOUT.OWNERS.30910 + TOPS20.RELEASE.2 + UNDO..161 + .COM.161 + UPDATE-POLICY.INFO.3 + UPDATE-TIMETABLE.INFO.3 + USERNAMEFILE..25 + USERNAMES..146 + UTILITY..155 + .COM.156 + VERSIONS.INFO.2 + WEDIT..164 + .COM.163 + WHEREIS..1 + WTFIX..159 + .COM.160 + XFORMS.LISP16.3 + + Total of 2988 pages in 129 files + + TOPS20:<LISPUSERS> + ALL..4 + .COM.3 + .TTY.2 + ARITHDECLS..3 + .COM.7 + .TTY.1 + ARITHMAC..9 + .COM.6 + .TTY.3 + AUTOUPDATE.LSP.30805 + .TXT.1 + BQUOTE.TTY.1 + CHARCODE.TTY.1 + CHECKSET..3 + .COM.3 + .TTY.2 + CIALPHORDER..2 + .COM.4 + .TTY.1 + CIRCLPRINT..1 + .COM.5 + .TTY.1 + CJSYS..65 + .COM.71 + .TTY.1 + CMLARRAY..63 + .COM.61 + .TTY.13 + CMLSPECIALFORMS..4 + .COM.4 + COMMENTS..1 + .COM.1 + .TTY.1 + COMPILEBANG..4 + .COM.10 + .TTY.1 + COMPILEFORMSLIST..2 + .COM.5 + .TTY.1 + COMPMODEREC..2 + .COM.2 + .TTY.2 + DATABASEFNS..2 + .COM.73 + DATEFORMAT..3 + .COM.4 + DATETIME..1 + .COM.8 + .TTY.1 + DATETIMERECORDS..1 + DECL..20 + .COM.187 + DFOR10..1 + .COM.2 + .DATATYPE.1 + .TTY.1 + .TXT.1 + DICTIONARY..1 + .TTY.1 + DOCTOR..1 + .COM.1 + DURATION..31 + .COM.1 + .TTY.1 + DWIMLOAD..1 + .COM.18 + .TTY.1 + EDITA..9 + .COM.8 + EDITHIST..4 + .COM.2 + .TTY.1 + EDITMACROS..11 + .COM.11 + EDITREC..3 + .COM.3 + .TTY.1 + EMACS.COM.40423 + .DOC.1 + .LSP.40423 + .TTY.2 + .WALL-CHART.1 + EXEC..51 + .COM.55 + FASTNAMEFIELD..1 + .COM.7 + .TTY.1 + FILEINDEX..20 + .COM.18 + FILEWONTOPEN..5 + FONTN..1 + .TTY.1 + FORKWAITFORINPUT..3 + FTP..29 + .COM.23 + GLISP.COM.4 + .LSP.5 + .MSS.1 + .TXT.4 + GLISP-TEST.LISP.1 + GLOBALRESOURCE.TTY.2 + HASH..1 + .COM.1 + IGNORECHAR..1 + .TTY.1 + INTERMACS..1 + .:EJ.1 + IOWAITDAEMON..1 + .COM.7 + .TTY.1 + LABEL..12 + .COM.6 + .TTY.5 + LAMBDATRAN..1 + .COM.26 + LED..41 + .COM.38 + .TTY.1 + LISPUSERSHELP..14 + .TTY.2 + LISTDOC..7 + .TTY.2 + LOADFILES..4 + .COM.23 + .TTY.1 + LOADTIMECONSTANT..6 + .COM.9 + .TTY.2 + LOSTLISTS..2 + .COM.2 + .TTY.2 + MACROAUX..4 + .COM.4 + MAIL..21 + .COM.23 + .TTY.5 + MATCH..1 + .COM.1 + MIT.XFORMS.1 + MSDATABASESIZE..1 + .TTY.2 + MSG..50 + .COM.46 + .TTY.3 + MSHASH..195 + .COM.177 + .TTY.3 + MSSWAP..8 + .COM.11 + .TTY.3 + MULTIFILEINDEX..2 + .COM.13 + .TTY.1 + NET..36 + .COM.36 + NEWHASH.COM.6 + .LSP.1 + .MSS.1 + NEWMAIL.TTY.14 + NOBOX..7 + .COM.34 + .TTY.1 + NONDADDARITH..17 + .COM.17 + PASSWORDS.10.2 + .COM.18 + PATCH..1 + PERFORMTRAN..9 + .COM.11 + .TTY.3 + PERIODICALLYSYSOUT..17 + PERMSTATUS..7 + .COM.10 + PFBCPL..9 + .COM.9 + .TTY.1 + PQUOTE..4 + .COM.3 + .TTY.1 + PRINTL..21 + .COM.25 + PRINTOPT..32 + .COM.26 + .TTY.1 + PROMPTREMINDERS..6 + .COM.54 + .TTY.8 + PUP10..11 + .COM.9 + PUPBSP..1 + .COM.1 + PUPFTP..11 + .COM.12 + REMIND..2 + .COM.26 + .TTY.1 + REMOTECLEANUP..4 + .COM.4 + .TTY.3 + REMOTECLEANUPSUPPORT..10 + SAMEDIR..2 + .COM.11 + .TTY.1 + SCREENOP..6 + .COM.6 + .TC.2 + .TCD.1 + .TTY.1 + SEE16..6 + .TTY.2 + SHOW..1 + .COM.19 + .TTY.1 + SIMPLEFNS..5 + .COM.15 + SIMPLIFY..1 + .COM.6 + SINGLEFILEINDEX..9 + .COM.37 + .TTY.1 + SIZETABLE..34 + .COM.39 + .TTY.5 + SKIPTRAILER..1 + .COM.5 + .TTY.1 + SMARTARG..30 + .COM.36 + .TTY.1 + STRINGFNS..14 + .COM.15 + STRINGMACRO..1 + SWAPHASH..55 + .COM.48 + .TTY.7 + SYSALL.COM.30418 + .LSP.30418 + .TXT.1 + SYSCOND..6 + .COM.6 + TELL..1 + .TTY.1 + TELNET..10 + .COM.10 + TERMCONTROL.COM.40522 + .LSP.40522 + .TXT.1 + TIME..10 + .COM.14 + .TTY.3 + TPSTK..2 + .COM.2 + .TTY.1 + TRACEIN..4 + .COM.4 + .TTY.3 + TRANSOR..1 + .COM.1 + TSET..1 + TTYIN..1 + .COM.2 + .MSS.1 + .PRESS.1 + .TTY.1 + TTYIO..1 + .COM.1 + TTYPAGE..1 + .TTY.1 + TXDT.10.1 + .COM.1 + UCI.XFORMS.2 + UTIL..4 + .COM.6 + VMFIND..6 + .COM.7 + .TTY.2 + WAKEUP..1 + .COM.1 + .TTY.1 + WHATS..7 + .COM.12 + .TTY.1 + WHEREIS..3 + .COM.3 + .HASH.1 + .NEWHASH.7 + WHOIS..14 + .COM.17 + .TTY.4 + + Total of 2230 pages in 289 files + + TOPS20:<LOGO> + APPLEDIFF..1 + DEC20DIFF..2 + LOGO.EXE.2 + .MANUAL.2 + OLDDIFF..1 + README..1 + + Total of 139 pages in 6 files + + TOPS20:<LOGO.HELP> + ARCTAN..1 + BACK..1 + BOTH..1 + BTOUCH..1 + BUTFIRST..1 + BUTLAST..1 + CBREAK..1 + CLOSE..1 + CONTINUE..1 + COS..1 + COUNT..1 + CS..1 + DEBQUIT..1 + DESCRIBE..1 + DIFF..1 + EDIT..1 + EITHER..1 + EMPTYP..1 + EQUALP..1 + ERASE..1 + ERRPAUSE..1 + ERRQUIT..1 + FIFP..1 + FILEFTYPE..1 + FILEPRINT..1 + FILEREAD..1 + FILETYPE..1 + FILEWORD..1 + FIRST..1 + FORWARD..1 + FPRINT..1 + FPUT..1 + FTOUCH..1 + FTYPE..1 + FULL..1 + GETPEN..1 + GO..1 + GOODBYE..1 + GPROP..1 + GREATERP..1 + HEADING..1 + HELP..1 + HELPFILE..3 + HITOOT..1 + HT..1 + IF..1 + IFFALSE..1 + IFTRUE..1 + IS..1 + ITEM..1 + KEYP..1 + LAMPOFF..1 + LAMPON..1 + LAST..1 + LEFT..1 + LESSP..1 + LIST..1 + LOCAL..1 + LOTOOT..1 + LPUT..1 + LTOUCH..1 + MAKE..1 + MAXIMUM..1 + MEMBERP..1 + MEMTRACE..1 + MINIMUM..1 + NAMEP..1 + NOT..1 + NUMBERP..1 + OFLUSH..1 + OPENREAD..1 + OPENWRITE..1 + OUTPUT..1 + PAUSE..1 + PENCOLOR..1 + PENDOWN..1 + PENERASE..1 + PENMODE..1 + PENUP..1 + PLIST..1 + POTS..1 + POW..1 + PPROP..1 + PPS..1 + PRINT..1 + PRODUCT..1 + PX..1 + QUOTIENT..1 + RANDOM..1 + READCHAR..1 + READLIST..1 + REMAINDER..1 + REMPROP..1 + REPCOUNT..1 + REPEAT..1 + REQUEST..1 + RIGHT..1 + RND..1 + RTOUCH..1 + RUN..1 + SCRUNCH..1 + SENTENCE..1 + SENTENCEP..1 + SETCOLOR..1 + SETH..1 + SETIPAUSE..1 + SETQPAUSE..1 + SETSCRUN..1 + SETXY..1 + SHOW..1 + SHOWNP..1 + SIN..1 + SPLIT..1 + SQRT..1 + ST..1 + STOP..1 + SUM..1 + TEST..1 + TEXT..1 + THING..1 + TO..1 + TOPLEVEL..1 + TOWARDSXY..1 + TRACE..1 + TURTLE..1 + TYPE..1 + UNIX..2 + UNTRACE..1 + WAIT..1 + WIPECLEAN..1 + WORD..1 + WORDP..1 + XCOR..1 + YACCDEBUG..1 + YCOR..1 + ZEROP..1 + + Total of 136 pages in 136 files + + TOPS20:<LOGO.LIBRARY> + BEEP.LOGO.1 + EXIT.LOGO.1 + FINGER.LOGO.1 + G.LOGO.1 + GIGIMOVE.LOGO.1 + HANOI.LOGO.1 + HOME.LOGO.1 + HOWIS.LOGO.1 + LAUGH.LOGO.1 + LISTP.LOGO.1 + LOGOHEAD.EXE.1 + NL..1 + PICK.LOGO.1 + POLY.LOGO.1 + POS.LOGO.1 + QUEST.LOGO.1 + QUIT.LOGO.1 + QUIZ1.LOGO.1 + SETHEIGHT.LOGO.1 + SETITALIC.LOGO.1 + SETPOS.LOGO.1 + SETSIZE.LOGO.1 + SETSLANT.LOGO.1 + SETSLOPE.LOGO.1 + SETX.LOGO.1 + SETY.LOGO.1 + TEXTPRINT.LOGO.1 + TOWARDS.LOGO.1 + + Total of 52 pages in 28 files + + TOPS20:<LOGO.SOURCES> + ADM.I.1 + ADMTEK.I.1 + ATARI.I.1 + DR11K.C.1 + GIGI.I.1 + LOGO.H.16 + .Y.2 + LOGOMAN..1 + MAIN.C.9 + SUN.I.1 + T7000.I.1 + TEK.I.1 + TURTLE.C.5 + UNIX.C.4 + ZERR.C.1 + + Total of 59 pages in 15 files + + TOPS20:<MACLISP> + 6BIT.FASL.1 + .LSP.1 + APROPOS.FASL.1 + .LSP.1 + ARYFIL.FASL.1 + .LSP.1 + BACKQ.FASL.1 + .LSP.1 + BBOOLE.FASL.1 + .LSP.1 + BITS.FASL.1 + .LSP.1 + BLTARRAY.FASL.1 + .MID.1 + BS.FASL.1 + .LSP.1 + CARCDR.FASL.1 + .LSP.1 + CCLOAD.INI.1 + CDMACS.FASL.1 + .LSP.1 + CERROR.FASL.1 + .LSP.1 + CNVD.FASL.1 + .LSP.1 + COMAUX.FASL.1 + .LSP.1 + COMPLR.EXE.1 + .FASL.1 + .LSP.1 + COMRD.FASL.1 + .LSP.1 + DEBUG.FASL.1 + .LSP.1 + DEFMACRO.FASL.1 + .LSP.1 + DEFMAX.FASL.1 + .LSP.1 + DEFSETF.FASL.1 + .LSP.1 + DEFVST.DOC.1 + .FASL.1 + .LSP.1 + DEFVSX.FASL.1 + .LSP.1 + DEFVSY.FASL.1 + .LSP.1 + DESCRIBE.FASL.1 + .LSP.1 + DOW.FASL.1 + .LSP.1 + DRAMMP.FASL.1 + .LSP.1 + DUMPARRAYS.FASL.1 + .LSP.1 + EDIT.DOC.1 + .FASL.1 + .MID.1 + EMACS.INIT-FOR-LEDIT.1 + ERRCK.FASL.1 + .LSP.1 + EVONCE.FASL.1 + .LSP.1 + EXE.CTL.1 + EXTBAS.FASL.1 + .LSP.1 + EXTEND.DOC.1 + .FASL.1 + .LSP.1 + EXTHUK.FASL.1 + .LSP.1 + EXTMAC.FASL.1 + .LSP.1 + EXTSFA.FASL.1 + .LSP.1 + EXTSTR.FASL.1 + .LSP.1 + FASDFS.MID.1 + FASLAP.FASL.1 + .LSP.1 + FFORMA.FASL.1 + .LSP.1 + FOO.BAR.1 + FORMAT.BRACK.1 + .DOC.1 + .FASL.1 + .FLOAT.1 + .INVOKE.1 + .LSB.1 + .NUM.1 + .UMACS.1 + FUNCEL.FASL.1 + .LSP.1 + GCDEMN.FASL.1 + .LSP.1 + GENFNS.FASL.1 + .LSP.1 + GETMIDASOP.FASL.1 + .MID.1 + GPRINT.FASL.1 + .LSP.1 + .RCW1.1 + GRIND.FASL.1 + .LSP.1 + GRINDEF.FASL.1 + .LSP.1 + INITIA.FASL.1 + .LSP.1 + IOTA.FASL.1 + .LSP.1 + JSYS-TABLE.LSP.1 + JSYS-TBL.LSP.1 + LAP.FASL.1 + .LSP.1 + LEDIT.:EJ.1 + .DIF.1 + .EMACS.1 + .FASL.1 + .LSP.1 + LET.FASL.1 + .LSP.1 + LINERE.FASL.1 + .LSP.1 + LISP.EXE.1 + .INI.1 + .SYMBOLS.1 + LISP-NEWS.DOC.1 + LODBYT.FASL.1 + .LSP.1 + LOOP.DOC.1 + .FASL.1 + .LSP.1 + LSETS.FASL.1 + .LSP.1 + MACAID.FASL.1 + .LSP.1 + MAKLAP.FASL.1 + .LSP.1 + MLMAC.FASL.1 + .LSP.1 + MLSUB.FASL.1 + .LSP.1 + MSENDI.FASL.1 + .LSP.1 + NADEFVST.FASL.1 + NALET.FASL.1 + NALOOP.FASL.1 + NEWFUN.DOC.1 + NILAID.EXE.1 + .FASL.1 + .INI.1 + .LSP.1 + PHAS1.FASL.1 + .LSP.1 + PRIVOB.FASL.1 + .LSP.1 + QIOORD.DOC.1 + QUERIO.FASL.1 + .LSP.1 + RUBOUT.LSP.1 + SEND.DOC.1 + SENDI.FASL.1 + .MID.1 + SETF.FASL.1 + .LSP.1 + SETS.FASL.1 + .LSP.1 + SFA.DOC.1 + SHARE.EXE.1 + .HLP.1 + SHARPA.FASL.1 + .LSP.1 + SHARPAUX.FASL.1 + .LSP.1 + SHARPC.FASL.1 + .LSP.1 + SHARPCONDITIONALS.FASL.1 + .LSP.1 + SHARPM.DOC.1 + .FASL.1 + .LSP.1 + SITE.TXT.1 + SLURP.FASL.1 + SORT.FASL.1 + .MID.1 + SRCTRN.FASL.1 + .LSP.1 + STEP.DOC.1 + .FASL.1 + .LSP.1 + STEPMM.DOC.1 + .FASL.1 + .LSP.1 + STRAUX.FASL.1 + .MID.1 + STRING.DOC.1 + .FASL.1 + .LSP.1 + STRUCT.DOC.1 + .FASL.1 + .LSP.1 + SUBFORK.FASL.1 + .LSP.1 + SUBLOAD.FASL.1 + .LSP.1 + SUBSEQ.FASL.1 + .LSP.1 + SUN.FASL.1 + .LSP.1 + THIS.NOTE.1 + THREAD.FASL.1 + .LSP.1 + TRACE.FASL.1 + .LSP.1 + TTY.FASL.1 + .LSP.1 + UMLMAC.FASL.1 + .LSP.1 + UPDATE.CTL.1 + VECTOR.FASL.1 + .LSP.1 + YESNOP.FASL.1 + .LSP.1 + + Total of 2347 pages in 223 files + + TOPS20:<MAIL> + MAILER-RELAY-INFO.TXT.20 + MAILING-LISTS.BIN.4 + .TXT.4 + NREMIND.PMAP.1 + + Total of 39 pages in 4 files + + TOPS20:<MM> + ARMAIL.MAC.11 + BLANKT.MAC.4 + BUILD-MM.CTL.86 + CAFARD.MAC.53 + CAFDTR.MAC.5 + CAFPRO.MAC.48 + FSCOPY.MAC.4 + GRIPE.MAC.8 + HSTNAM.MAC.159 + HSTTST.MAC.14 + IMAP2.C.1 + .H.1 + IMAPSV.MAC.2 + MAILER-RELAY-INFO.TXT.1 + MAILING-LISTS.TXT.3 + MAILST.MAC.11 + MAISER.MAC.177 + MAPSER.MAC.352 + MISC.C.1 + .H.1 + MLIST.C.18 + MM.MAC.1169 + MM-MAIL.EMACS.9 + MMAIL.EMACS.94 + MMAILR.MAC.541 + MMHELP.MAC.15 + MMLBX.MAC.64 + MMSTAT.C.5 + MMUUO.MAC.1 + MSTAT.MAC.3 + MTEST.C.1 + OSDEP.C.1 + QDMAIL.MAC.14 + RELAY.MAC.30 + REPLY.MAC.12 + SEND.MAC.61 + SMTDCN.MAC.9 + SMTJFN.MAC.8 + SMTP.C.1 + .H.1 + SNDDEF.MAC.10 + SNDMSG.MAC.36 + SNDSRV.MAC.36 + SNDSTA.MAC.4 + TCPSIO.C.1 + .H.1 + VMAIL.MAC.83 + WAKEUP.MAC.4 + WHAT.MAC.9 + + Total of 581 pages in 49 files + + TOPS20:<MM.BINARIES> + ARMAIL.REL.1 + BLANKT.REL.1 + CAFARD.EXE.1 + .REL.1 + CAFDTR.REL.1 + CAFPRO.REL.1 + FSCOPY.REL.1 + GRIPE.EXE.1 + .REL.1 + HSTNAM.REL.1 + HSTTST.EXE.1 + .REL.1 + IMAP2.REL.1 + IMAPSV.EXE.1 + .REL.1 + MACREL.REL.1 + MACSYM.UNV.1 + MAILST.EXE.1 + .REL.1 + MAISER.EXE.2 + .REL.1 + MAPSER.EXE.1 + .REL.1 + MISC.REL.1 + MLIST.EXE.1 + .REL.1 + MM.EXE.2 + .REL.1 + MM-MAIL.:EJ.1 + MMAIL.:EJ.1 + MMAILBOX.EXE.2 + MMAILR.EXE.2 + .REL.1 + MMHELP.REL.1 + MMLBX.REL.1 + MMSTAT.EXE.1 + .REL.1 + MMUUO.REL.1 + MONSYM.UNV.1 + MSTAT.EXE.1 + .REL.1 + MTEST.EXE.1 + .REL.1 + OSDEP.REL.1 + QDMAIL.EXE.1 + .REL.1 + RELAY.REL.1 + REPLY.EXE.1 + .REL.1 + SEND.EXE.1 + .REL.1 + SMTDCN.EXE.1 + .REL.1 + SMTJFN.EXE.1 + .REL.1 + SMTP.REL.1 + SNDDEF.UNV.1 + SNDMSG.REL.1 + SNDSRV.EXE.1 + .REL.1 + SNDSTA.EXE.1 + .REL.1 + TCPSIO.REL.1 + VMAIL.EXE.1 + .REL.1 + WAKEUP.REL.1 + WHAT.EXE.1 + .REL.1 + + Total of 724 pages in 68 files + + TOPS20:<MM.DOCUMENTATION> + BLANKT.PANDA.6 + .VTS.3 + CAFARD.DOC.3 + CLOSE-DIALOG.TXT.1 + IMAP-C-CLIENT-INTERNALS.TXT.1 + INDIRECT-FILE-FORMAT.TXT.1 + INSTALLATION.GUIDE.1 + LCG-SOFTWARE-REFERRAL-CATALOG-WRITEUP.TXT.5 + LETTER.MSS.33 + MM.DOC.1 + .HLP.2 + .INTRODUCTION.1 + .MHLC-DOC.1 + .MSS.8140 + .PRIMER.1 + .REFERENCE.1 + MM-ADVANCED.RND.1 + MM-BASICS.RND.1 + MM-MAIL.HLP.2 + NEW-BBOARD-SUPPORT.DOC.1 + OPEN-DIALOG.TXT.2 + QUEUED-MAIL-FORMAT.TXT.2 + RFC1034.TXT.1 + RFC1035.TXT.1 + RFC1064.TXT.1 + RFC821.TXT.1 + RFC822.TXT.1 + SPECIAL-NETWORK.DOC.2 + .TXT.1 + TAPE-MAKER.CTL.5 + + Total of 422 pages in 30 files + + TOPS20:<MM.LOCAL> + BLANKT.MAC.6 + BUILD-MM.LOG.1 + MACSYM.MAC.9162 + MONSYM.MAC.9157 + + Total of 189 pages in 4 files + + TOPS20:<MM.SPELL> + SPELL.EXE.1 + + Total of 246 pages in 1 file + + TOPS20:<MM.VAX> + -READ-THIS-FIRST-.TXT.1 + BSMTPFORK.MAR.1 + BUILD.COM.1 + CALLS.MAR.1 + DOMAINS.TXT.2 + EDTINI.EDT.1 + HOSTS.TXT.2 + INS.COM.1 + INSTALL.TXT.1 + MAIL.MAR.1 + .MLB.1 + .MSS.1 + MAILING_LISTS.TXT.2 + MAILSYSTEM.COM.2 + MAISER.MAR.1 + MAISEROUT.COM.1 + MM.CLD.1 + .HLP.1 + .MAR.1 + .OPT.1 + PARSE.MAR.1 + RMM.HLP.1 + SMALL.COM.1 + SMM.HLP.1 + SMTPFORK.MAR.1 + SMTP_BSMTP.MAR.1 + TEKRPT.MAK.1 + + Total of 173 pages in 27 files + + TOPS20:<MM.VAX.CAFARD> + CAFARD.C.1 + .COM.1 + CAFDEF.H.1 + CAFDIR.C.1 + CAFIO.C.1 + CAFPRO.C.1 + HOSTNAME.TXT.1 + IGDEF.H.1 + INSTALL.COM.1 + LINK.COM.1 + LINK_DEBUG.COM.1 + MAKEFILE..1 + QUEUER.COM.1 + VAX11C_SHARE.OPT.1 + + Total of 34 pages in 14 files + + TOPS20:<NICHOLAS> + FINGER.PLAN.1 + + Total of 1 page in 1 file + + TOPS20:<OLD-SYSTEM> + 7-PTYCON.ATO.1 + 7-SETSPD.EXE.1 + 7-SYSJOB.EXE.1 + .RUN.1 + FTPSRT.EXE.1 + HOSTS.TXT.712 + INTERNET.GATEWAYS.23 + IPALOD.EXE.1 + SYSTEM.CMD.1 + TCPIP.BWR.1 + .DOC.1 + TGHA.EXE.1 + .HLP.1 + TOPS20.BWR.1 + .DOC.1 + + Total of 350 pages in 15 files + + TOPS20:<PAPA> + ADDTWO.FOR.3 + .REL.1 + BASHELLO.BAS.2 + .EXE.1 + CHELLO.C.1 + .EXE.1 + .REL.1 + COBHEL.COB.1 + COMMANDS.TV.4 + DIRALL.CTL.1 + .LOG.1 + DIRLIST.CTL.7 + .LOG.4 + FORHEL.EXE.2 + .FOR.4 + .LST.1 + .MAP.2 + .REL.2 + LISP.INI.4 + LOGIN.CMD.8 + LP.HSH.1 + MAIL.TXT.1 + MYFILES.CTL.1 + .LOG.1 + MYPROG.EXE.3 + .FOR.1 + .REL.2 + PI.EXE.2 + .MAC.1 + .REL.2 + .TEC.1 + TECOTEST.TXT.1 + TEST2.TXT.1 + TEST3.TXT.1 + TOPS20-COMMANDS.TXT.1 + WELCOME..1 + + Total of 146 pages in 36 files + + TOPS20:<PAT> + FINGER.PLAN.5 + + Total of 1 page in 1 file + + TOPS20:<PDP-8> + 23-BIT-FLOATING-POINT-PACKAGE.OBJ.1 + BINARY-LOADER.OBJ.1 + BINARY-PUNCH-TELETYPE.OBJ.1 + COMMON.MAC.3 + CONSOL.MAC.3 + CORE.MAC.1 + DDT-8.OBJ.1 + DF32.FIL.1 + .MAC.1 + DRIVER.MAC.3 + F.MAC.1 + FOCAL.TPE.1 + FOCAL-1969.INIT.1 + .OBJ.1 + .UTILITY-OVERLAYS-1.1 + .UTILITY-OVERLAYS-2.1 + FOCAL-8.INIT.1 + .OBJ.1 + HIGH-MEMORY-RIM-PUNCH-33.OBJ.1 + LINE.MAC.1 + LPTSER.MAC.1 + MEMORY.MAC.3 + OCTAL-MEMORY-DUMP.OBJ.1 + ODT-HIGH.OBJ.1 + ODT-LOW.OBJ.1 + P.MAC.1 + PAL-III.OBJ.1 + PAL10.MAC.141 + .OPR.1 + PATCH.MAC.1 + PDP8.MAC.3 + PLOTER.MAC.1 + PTAPE.MAC.1 + RM08.MAC.1 + SELF-STARTING-BINARY-LOADER.OBJ.1 + SIM.CCL.1 + .CMD.1 + .OPR.1 + SIM8.CMD.2 + SIMLNK.CMD.2 + SYMBOLIC-EDITOR.OBJ.1 + TTY.MAC.3 + + Total of 205 pages in 42 files + + TOPS20:<PDP-8.MAINDEC> + ADDER-TESTS.OBJ.1 + BASIC-JMP-JMS-TEST.OBJ.1 + EXTENDED-MEMORY-ADDRESS-TEST.OBJ.1 + EXTENDED-MEMORY-DATA-AND-CHECKERBOARD.OBJ.1 + FIXTAP.MAC.5 + INSTRUCTION-TEST-1.OBJ.1 + INSTRUCTION-TEST-2.OBJ.1 + MEMORY-ADDRESS-TEST.OBJ.1 + MEMORY-CHECKERBOARD.OBJ.1 + MEMORY-EXTENSION-AND-TIMESHARE-CONTROL.OBJ.1 + MEMORY-POWER-ON-OFF-TEST.OBJ.1 + RANDOM-AND-TEST.OBJ.1 + RANDOM-DCA-TEST.OBJ.1 + RANDOM-ISZ-TEST.OBJ.1 + RANDOM-JMP-JMS-TEST.OBJ.1 + RANDOM-JMP-TEST.OBJ.1 + RANDOM-TAD-TEST.OBJ.1 + TELETYPE-AND-KL8-TEST.OBJ.1 + + Total of 33 pages in 18 files + + TOPS20:<SAIL> + T-6-SAISG8.EXE.1 + T-6-SAISG9.EXE.1 + + Total of 72 pages in 2 files + + TOPS20:<SHADOW> + 6-0-NEWS.CONFIG.1 + LOGIN.CMD.9 + MM.INIT.1 + NEWS-DDT-PATCHES.TXT.1 + NEWS-DDT-READAC.TXT.1 + NEWS-DDT-SYMBOLS.TXT.1 + X-NEWS.EXE.1 + + Total of 97 pages in 7 files + + TOPS20:<SLOGIN> + FINGER.PLAN.2 + TIMET2.EXE.2 + .HLP.1 + .MAC.4 + + Total of 8 pages in 4 files + + TOPS20:<SOLOMON> + ACCOMP.LISHMT.1 + ALICE.DECLND.1 + .TXT.1 + ALICES.LISPM.1 + .PDP10.1 + AREA.CODES.1 + ARPA.DEATH.1 + .LESSON.1 + .MISUSE.1 + ATHENA.EXPRES.1 + BELSYS.2DIED.1 + .DIED.1 + BILLY.JOEL.1 + BREKFS.HACKER.1 + BUGS.XMAS.1 + CERF.CUTE.1 + COSMIC.QUESTS.1 + COWS.MILK.1 + DEC.PLAY.1 + .TALK.1 + DRAGON.EGG.1 + EAT.BITE.1 + ENGINEERS.WHO.1 + ERRORS.FUN.1 + FENWAY.MIND.1 + FIGURE.ONE.1 + FILDAE.DOC.1 + FINGER.PLAN.1 + HACK.MARY.1 + HOBBIT.HACK.1 + JMPING.JIM2.1 + JOES.GARAGE.1 + JSOL.CREEPS.1 + .ENLIGT.1 + .LOGIN.1 + .PERCEP.1 + .VAD.1 + LEGION.DOOM.1 + LETTER..1 + LOASS.BPLAN.1 + MIND.LINK.1 + MIT.IMPRES.1 + OPCODE.SILLY.1 + OZ.WIZARD.1 + PAGING.GAME.1 + PHONE.FREAK.1 + .LINES.1 + PRESSU.TXT.1 + README..1 + RESUME.TXT.1 + RING.TOLKEI.1 + RUBBER.DUCKIE.1 + SECURE.FLAME.1 + SHAWN.LOSSAG.1 + SPACE.WARS.1 + TOPS20.HISTRY.1 + TSP.DOC.1 + WOMB.ENVY.1 + XMAS.NEATO.1 + .POEM.1 + YODA.YAWN.1 + ZORPH.WAR.1 + + Total of 243 pages in 62 files + + TOPS20:<SUBSYS> + ACJ.EXE.159 + ACJDEC.EXE.1 + ACJLOG.EXE.1 + ACTDMP.EXE.1 + ACTGEN.EXE.1 + ACTSYM.UNV.1 + ALG145.EXE.1 + ALGLIB.REL.1 + ALGOL.EXE.1 + ALGPRM.UNV.1 + ALGSYS.UNV.1 + ALU.EXE.1 + ANAUNV.UNV.2 + APL.FNT.1 + APLHSF.APL.1 + APLSF.EXE.3 + APLTAP.EXE.1 + ARMAIL.REL.11 + B362LB.REL.1 + BASIC.EXE.1 + BASOTS.EXE.1 + BATCON.EXE.1 + BCREF.EXE.1 + BLANKT.REL.6 + BLIS10.ERR.1 + .EXE.1 + BLISS.EXE.1 + BLSSYS.KEY.1 + C.UNV.1 + CAFARD.EXE.52 + CC.EXE.608 + CDRIVE.EXE.1 + CHANS.EXE.2 + CHECKD.EXE.40 + CHKPNT.EXE.1 + CISTS.EXE.1 + CMD.REL.1 + .UNV.1 + CNVDSK.EXE.3 + COBDDT.REL.1 + COBOL.EXE.1 + COMPAR.EXE.1 + CPYRIT.TXT.1 + CREF.EXE.1 + CTERM-SERVER.EXE.3 + CTERMD.UNV.1 + D36PAR.UNV.1 + DAP2V1.REL.1 + DBEDIT.EXE.38 + DCNSPY.EXE.1 + DCRYPT.EXE.1 + DDT11.EXE.1 + DEB36.EXE.1 + DEFINE.LIS.1 + DIL.LIB.1 + .REL.1 + DIL2V2.REL.1 + DILV7.FOR.1 + DIRPNT.EXE.1 + DIRTST.EXE.1 + DIT2V2.REL.1 + DITV7.FOR.1 + DIU.EXE.1 + DIX2V2.REL.1 + DIXV7.FOR.1 + DLUSER.EXE.1 + DNSNUP.EXE.2 + DNTATL.EXE.1 + DOBOPR.EXE.1 + DPY.REL.1 + DPYDEF.UNV.1 + DS.EXE.1 + DSKERR.EXE.1 + DTR.EXE.1 + DTS.EXE.1 + DUMPER.EXE.1 + DX20LD.EXE.1 + DXMCA.ADX.1 + .RMC.1 + DXMCE.ADX.1 + .RMC.1 + DYNBOO.REL.1 + DYNLIB.L36.1 + DYNSYM.UNV.1 + EDDT.REL.1 + EDIT.EXE.1 + EDT.EXE.1 + EDTCAL.REL.1 + EDTHELP.HLB.1 + EMACS.EXE.165 + ENQTST.EXE.1 + EXTERN.PAS.8 + FAIL.EXE.3 + FAL.EXE.3 + FE.EXE.1 + FFF.EXE.1 + FILCOM.EXE.1 + FILDDT.EXE.1 + FIND.EXE.1 + FINGER.EXE.1 + FNGDEF.UNV.3 + FORDDT.REL.1 + FORLIB.REL.1 + FORMAT.EXE.1 + FORO11.EXE.1 + FOROT7.EXE.1 + FORTH.EXE.1 + FORTRA.EXE.1 + FTP.EXE.296 + FTS.EXE.1 + FTSCTT.EXE.1 + GALGEN.EXE.1 + GALSYS.VFY.1 + GLOBS.UNV.1 + GLXLIB.EXE.1 + .REL.1 + GLXMAC.UNV.1 + GRIPE.EXE.8 + HELP.EXE.65;E + HELPER.REL.1 + HELPMAINT.EXE.30 + HOST.EXE.1 + HSTNAM.REL.155 + HSTTST.EXE.14;E + INDEX.EXE.1 + INFO.EXE.1 + INTRO.SPE.1 + IPHOST.EXE.1 + JOBDAT.REL.1 + .UNV.1 + JSTRAP.EXE.1 + JSYS.PAS.7 + KDDT.REL.1 + KNILDR.EXE.1 + KRYPTN.EXE.1 + LCPORN.REL.1 + LCPTAB.REL.1 + LIBO12.EXE.1 + LIBOL.REL.1 + LIBSHR.REL.1 + LINK.EXE.2 + LISSPL.EXE.2 + LOGGER.EXE.1 + LP64.RAM.1 + LP96.RAM.1 + LPFORM.INI.3 + LPTSPL.EXE.2 + MACLISP.EXE.1 + MACREL.REL.1 + MACRO.EXE.2 + MACSYM.UNV.1 + MACTEN.UNV.1 + MAIL.EXE.1 + MAILER.EXE.1 + MAILST.EXE.11 + MAKDMP.EXE.1 + MAKHLP.EXE.1 + MAKLIB.EXE.1 + MAKRAM.EXE.1 + MAKVFU.EXE.1 + MAPPER.EXE.1 + MDDT.REL.1 + MERGE.EXE.1 + MHALT.EXE.1;E + MIDAS.EXE.458 + MLIST.EXE.1 + MM.EXE.1169 + MMAILBOX.EXE.64 + MMAILR.EXE.541 + MMSTAT.EXE.5;E + MONINT.EXE.1 + MONRD.EXE.1 + MONSYM.L36.1 + .MAC.9158 + .REL.9158 + .UNV.9158 + MOUNTR.EXE.2 + MS.EXE.1 + MSCPAR.UNV.1 + MSGARG.SPT.1 + MSTAT.EXE.3;E + MSUNV.UNV.1 + MTCOPY.EXE.1 + MTEST.EXE.1 + MX.EXE.1 + NCPTAB.REL.1 + NEBULA.EXE.1 + NETJOB.EXE.1 + NETPRO.EXE.1 + NETPTH.EXE.1 + NETSRV.EXE.14 + NFT.EXE.3 + NMLT20.EXE.1 + NORMAL.VFU.1 + NOTIFY.EXE.1 + .SPE.1 + OLDFTP.EXE.1 + OPR.EXE.1 + OPRPAR.REL.1 + ORION.EXE.1 + ORNMAC.UNV.1 + OVRLAY.REL.1 + PA1050.EXE.2 + PAT.EXE.1 + PEP.EXE.1 + PEPB.EXE.1 + PHNSRV.EXE.1003 + PHONE.EXE.1709 + PHYPAR.UNV.1 + PLEASE.EXE.1 + PROLOG.UNV.1 + PTYCON.EXE.1 + QDMAIL.EXE.14;E + QMANGR.EXE.1 + QSRMAC.UNV.1 + QUASAR.EXE.1 + QUETST.EXE.1 + RDDT.REL.1 + RDMAIL.EXE.1 + REAPER.EXE.1 + REDIT.EXE.1 + REPLY.EXE.12 + RETRFB.SPE.1 + REV.EXE.1 + RFB.EYE.1 + RMS.EXE.1 + .REL.1 + RMS202.REL.1 + RMS203.REL.1 + RMS2P2.REL.1 + RMS2P3.REL.1 + RMS2U2.REL.1 + RMS2U3.REL.1 + RMSCOB.EXE.2 + RMSDEB.EXE.1 + .REL.1 + RMSEVC.REL.1 + RMSFAL.EXE.1 + RMSINI.REL.1 + RMSINJ.UNV.1 + RMSINT.L36.1 + .R36.2 + .UNV.1 + RMSJCK.REL.1 + RMSLDB.REL.1 + RMSLOD.EXE.1 + RMSSYM.LUS.2 + RMSUSR.R36.1 + RMSUTL.EXE.1 + RMSZER.REL.1 + RMTCON.EXE.1 + RSXFMT.EXE.1 + RTL.EXE.1 + RTLDYN.REL.1 + .UNV.1 + RTLJCK.REL.1 + RTLLDB.REL.1 + RTLZER.REL.1 + RTLZNM.REL.1 + RUNOFF.EXE.1 + SCAN.REL.1 + SCAN11.REL.1 + SCAPAR.UNV.1 + SCM.EXE.1 + SCNM10.UNV.1 + SCNM20.UNV.1 + SCNMAC.UNV.1 + SCOMM.EXE.1 + SCPAR.UNV.1 + SDDT.EXE.1 + SED.EXE.1 + SEDONL.EXE.1 + SEDRNO.EXE.1 + SEND.EXE.61;E + SERCOD.UNV.1 + SETHOST.EXE.1 + SETNOD.EXE.1 + SMTDCN.EXE.9 + SMTJFN.EXE.8 + SMTPSV.EXE.1 + SNDSRV.EXE.36 + SNDSTA.EXE.4;E + SNOBOL.EXE.1 + SPEAR.DOC.1 + .EXE.1 + .MSG.1 + .SPE.1 + SPRCOM.EXE.1 + .SPE.1 + SPRINS.EXE.1 + SPRINT.EXE.1 + SPRKLE.EXE.1 + .SPE.1 + SPROUT.EXE.1 + SPRRET.EXE.1 + .SPE.1 + SPRSUM.EXE.1 + .SPE.1 + SSU.EXE.1 + SWSERR.EXE.1 + TCX.EXE.1 + TELNET.EXE.964 + TENDEF.L36.1 + .R36.1 + TOC.EXE.1 + TSTATS.EXE.1 + TTYINI.EXE.4;E + TTYLOC.EXE.24;E + TV.EXE.1 + TYPVF7.EXE.1 + TYPVFU.EXE.1 + UDDT.EXE.1 + ULIST.EXE.1 + UNITS.EXE.2 + UPDATE.EXE.1 + USAG20.EXE.1 + USAH20.EXE.1 + UUOSYM.UNV.1 + VERIFY.EXE.1 + VMAIL.EXE.83 + VNP36.EXE.1 + WATCH.EXE.1 + WHAT.EXE.9;E + WILD.REL.1 + WILD11.REL.1 + XBLISS.EXE.1 + XDDT.EXE.1 + XPN2V1.REL.1 + XPORT.DBG.1 + .L36.1 + .REL.1 + .REQ.1 + XRMS.EXE.1 + ZERBOO.REL.1 + + Total of 10379 pages in 334 files + + TOPS20:<SYSTEM> + -REQUEUED-MAIL-6-1.TMP.1 + 7-1-CONFIG.CMD.6,7,8,9,10,11,12,13,14,15 + 7-1-SETSPD.EXE.1 + 7-1-SYSJOB.EXE.1 + .RUN.6 + BEWARE-MESSAGE.TXT.1,2,3,4 + BUGSTRINGS.TXT.1 + CHECKD.EXE.40 + DEC-EXEC.EXE.1 + DEC-MONITR.EXE.1 + DEVICE-STATUS.BIN.1 + ERRMES.BIN.1 + EXEC.EXE.1,2 + FTPSER.EXE.40 + HOSTS.TXT.20309,20310,20311,20312,20313,20314 + INTERNET.ADDRESS.1,2 + .GATEWAYS.1,2,3,4,5,6 + .NAMESERVERS.1,2,3,4 + INTERNET-ETHERNET-MAPPINGS.BIN.1 + JSOL-EXEC.EXE.1 + KNILDR.EXE.1 + MAISER.EXE.176 + MAPSER.EXE.352 + MONITR.EXE.1 + MONNAM.TXT.1,2 + NETSRV.RUN.3 + PEXEC.EXE.1 + PROGRAM-NAME-CACHE.TXT.2 + STSJ1.EXE.1 + SYSJB1.EXE.1 + .RUN.13,14,15 + SYSJB1-CRASH.MAILST.1 + .NEBULA.1 + .ORION.1,2 + .QUASAR.1,2 + SYSJOB.HLP.1 + SYSTEM.CMD.1 + TAPNAM.TXT.1 + TTYINI.CMD.2 + + Total of 2857 pages in 71 files + + TOPS20:<SYSTEM-ERROR> + ERROR.SYS.1 + + Total of 11497 pages in 1 file + + TOPS20:<UNSUPPORTED> + 11SIM.EXE.434 + AID.EXE.1 + AMORT.EXE.50 + ATSIGN.EXE.695 + BBOARD.EXE.1;E + BCPL.DICTIONARY.1 + .ERRORS.1 + .EXE.1 + BCPLB2.REL.1 + BCPMAC.UNV.1 + BDDT.EXE.1 + CAM.EXE.2 + CHAT.EXE.3;E + COMMODE.EXE.1;E + COMPLR.EXE.1 + COMPRESS.EXE.1;E + CROSS.EXE.1 + CSE.EXE.1 + CTYPEEK.EXE.2;E + DART.EXE.2 + DHRY.EXE.2 + DMON.EXE.15;E + ENVIRONMENT.EXE.1;E + F.TXT.1 + FAILSA.EXE.1 + FED.EXE.2 + FGREP.EXE.1 + FILADR.EXE.1 + FIXTAP.EXE.5 + FIXVER.EXE.40;E + FOCAL.TPE.1 + GE.EXE.1 + GLOB.EXE.2 + GREP.EXE.1 + HEAD.BCP.1 + IDDT.EXE.901 + ISPELL.EXE.3 + JSHEAD.BCP.1 + JSTRAP.EXE.3 + KERMIT.EXE.48 + LIBSIM.ATR.1 + .REL.1 + LISP.EXE.1 + LK.EXE.1;E + LOADER.EXE.1 + LOTS-BASIC.EXE.1 + MACLISP.EXE.1 + MACSYM.FUN.1 + MAKE.EXE.17 + MDDT.EXE.2;E + MERLIN.EXE.35 + METER.EXE.1 + MICRO.EXE.1 + MODEM.EXE.500 + MONSYM.FUN.20 + MSPLIT.EXE.1 + MTU.EXE.1 + NEWS.EXE.2 + NILAID.EXE.1 + NLNSRT.EXE.1 + P10LIB.REL.1 + P20LIB.REL.1 + PAL10.EXE.1 + PASCAL.EXE.1 + PASCMD.PAS.1 + PASDDT.REL.1 + PASLIB.REL.1 + PASSEG.EXE.1 + PASSGO.EXE.1 + PASUNS.REL.1 + PDIR.EXE.1 + PDP8.EXE.1 + PHOTO.EXE.4;E + PI.EXE.1 + PIP.EXE.1 + PLOGO.EXE.1 + PSIHEAD.BCP.1 + PSXLIB.REL.331 + SHARE.EXE.1 + SIMDD4.ABS.1 + SIMDDT.REL.1 + SIMED.EXE.1 + SIMERR.ERR.1 + SIMLIB.REL.1 + SIMR40.EXE.1 + SIMULA.EXE.1 + SPELL.EXE.1 + SPS.EXE.1 + SRCCOM.EXE.101 + STRINGHEAD.BCP.1 + STRTST.EXE.1 + TAR.EXE.73 + TECO.EXE.23200 + TN.EXE.2 + TTLINK.EXE.14 + UNBYTIFY.EXE.1;E + UNCOMPRESS.EXE.1;E + UTILHEAD.BCP.1 + UUDECODE.EXE.1;E + UUENCODE.EXE.1;E + VT100.EXE.1;E + WHOIS.EXE.1 + WINDOW.EXE.1375 + WORDS.EXE.1;E + XSEARCH.EXE.1 + + Total of 3479 pages in 105 files + + TOPS20:<UTILITIES> + 11SIM.MID.434 + 2COL.SAI.1 + ACJ.MAC.156 + .REL.1 + ADDDEF.MAC.16 + AMORT.SAI.50 + ANTE.MAC.1 + ATSIGN.MID.695 + BBCHNG.MAC.1 + BBOARD.MAC.94 + BSPLIT.MAC.1 + CAVE.MAC.2 + CHAT.MAC.4 + CHESS2.MID.631 + CHKBBD.MAC.95 + CLEAN.FAI.42 + CLOCK.FAI.8 + COOKIE.FAI.4 + CRAKUP.FAI.23 + CROCK.MID.1 + CROSS.MAC.7 + CRSREF.MAC.1 + CRYPT.FAI.1 + CVTUNV.MID.4 + DACCES.MAC.12 + DATE.MAC.116 + DCROCK.MID.1 + DECBTS.MID.232 + DECDFS.MID.5 + DHRY.C.1 + DIRED.SAI.25 + DMON.FAI.13 + DMSIM.MID.55 + DOIT.FAI.27 + DPY.FAI.16 + DSKOP.FAI.24 + DSKUSE.FAI.84 + ENCR.MAC.1 + ENDECR.MAC.1 + FEDDT.MAC.1 + FILSIZ.FAI.1 + FILUSE.FAI.2 + FIND.SAI.12 + FIXALC.MID.1 + FIXVER.MID.40 + FORFLO.FAI.2 + FORMAC.MAC.1 + FORTH.MID.1 + FORTUNE.MID.18 + FRAID.FAI.1 + FREP.FAI.234 + FU.MAC.32 + GROUPE.PAS.2 + HASH.MAC.1 + HELP.MAC.65 + HELPMA.MAC.30 + HEURE.FAI.27 + IDDT.MAC.901 + IDLE-JOB-KILLER.INIT.1 + IDLKIL.MAC.1 + IDLY.MAC.6 + ISPELL.DCT.1 + .MID.2 + ITSBTS.MID.56 + ITSDFS.MID.4 + JSTRAP.MAC.1 + JSYS.FAI.2 + KALAH.MAC.1 + KERMIT.MAC.257 + MACROS.MID.1 + MACSYM.FAI.18 + MANHUNT.PAS.1 + MAPIT.FAI.5 + MARS.MAC.320 + MERLIN.MAC.37 + METER.MAC.10 + MHALT.MAC.1 + MIDAS.MID.458 + MOON.MAC.1 + MSTR.FAI.7 + NLNSRT.FAI.2 + OPR.MAC.3 + PACK.SAI.2 + PACMAN.DAT.2 + .HLP.2 + .SIM.20 + PALX.MID.274 + PCSAMP.MAC.1 + PERUSE.MAC.2 + PFORM.PAS.13 + PHOTO.MAC.5 + PI.MID.1 + PIGS.MAC.1 + PJGSYM.MAC.17 + PODTYP.BCP.1 + PURSCR.MID.18 + RA10.FAI.18 + RALPH.MAC.14 + REMIND.MAC.1 + RITA.MAC.13 + SEARCH.MAC.1 + SETLN.MAC.44 + SPD.MAC.16 + SRCCOM.MID.101 + STENEX.UNV.1 + STOPR.MAC.5 + STSJ1.MAC.1 + SUBDIR.PAS.5 + SYSJOB.MAC.10 + SYSMSG.MAC.6 + TAPEIO.FAI.622 + TAPELABEL.FAI.18 + TAPELOOK.FAI.6 + TAR.MAC.73 + TDDT.MAC.1 + TECO.MID.232 + TI.FAI.1 + TIMCHD.MAC.40 + TIMCHK.MAC.38 + .SERVERS.1 + TIMCHT.MAC.14 + TIMER.FAI.1 + TIMES.MID.36 + TMODEM.MAC.402 + TN.FAI.1 + TOSCIP.FAI.36 + TSRTNS.MID.233 + TYPBIN.MAC.1 + TYPREL.MAC.1 + UNBYTIFY.MID.1 + USGCLS.MID.2 + UUDECO.C.1 + VTTREK.DOC.1 + .HLP.1 + .MAC.41 + WHOLINE.MID.19 + WIND.MAC.1 + WLNO.FAI.4 + WUMPUS.MID.2 + XJSYS.MID.5 + XLATE.SAI.2 + XSEARCH.SAI.1 + + Total of 2655 pages in 142 files + + TOPS20:<ZYRAF> + FINGER.PLAN.1 + + Total of 1 page in 1 file + + Grand total of 60395 pages in 3375 files + +$Id: getting-into-twenex.html,v 1.4 2010/05/24 19:07:50 papa Exp $ \ No newline at end of file diff --git a/dump/gnu_social.html.docuwiki b/dump/gnu_social.html.docuwiki new file mode 100644 index 0000000..2f21871 --- /dev/null +++ b/dump/gnu_social.html.docuwiki @@ -0,0 +1,327 @@ +====== GNU Social on SDF ====== + +[[http://gnu.io/social|GNU social]] is a social media platform[[[#fn-microblog|note]]] implementing the [[http://www.w3.org/community/ostatus/|OStatus]] protocol stack. It works in much the same way as Twitter or Facebook or Google+; you may: + + * publish text notices (like Twitter's "tweets" or Facebook's "status updates"), optionally with file attachments (images, sounds, documents, and so-on); + * favor other users' notices ("like", or "+1" on other services); + * follow ("subscribe","friend") the activity of other users, hashtags, and search terms; + * join groups to receive topical notices and broadcast your own notices to interested parties; + * repeat ("retweet","share") others' notices so that your friends, associates, and followers will see them; + * and, of course, comment on notices and participate in public discourse. + +GNU social differs from the most popular social media platforms in a fundamental way: rather than having all communication hosted on a single corporation's private network, GNU social is an open-source software platform running on a distributed system of [[#how-it-works|federated servers]] operated by a diverse array of groups and individuals. Unlike Facebook or Google+ or Twitter, this social network has no central authority, no owner — //anyone// can operate a server in the Fediverse: the service providers and users that make-up the network on which GNU social operates. + +The SDF hosts a public GNU social node[[[#fn-node|note]]] which may be reached at https://gs.sdf.org. An SDF membership is no longer required to join this node; simply direct your browser to https://gs.sdf.org/main/register to create a new account — and bring your friends! + +This tutorial is intended to help you get started with the SDF GNU social web interface, and to a lesser extent with GNU social in general. The software version at the time of writing this is 1.2.0-beta3. + +===== Contents ===== + + * [[#enable|Creating Your SDF GNU social Account]] + * [[#setup|Setting-Up Your Account]] + * [[#get-started|Getting Started: Timelines]] + * [[#home-timeline|Your Home Timeline]] + * [[#public-timeline|The Public Timeline]] + * [[#network-timeline|The Network Timeline]] + * [[#notices|Interacting With Notices]] + * [[#notice-actions|Notice Actions]] + * [[#favoring|Favor]] + * [[#replying|Reply]] + * [[#repeating|Repeat]] + * [[#deleting|Delete]] + * [[#context-and-origin|Context and Origin]] + * [[#context|Viewing Notices in Context]] + * [[#origin|Viewing a Notice's Original]] + * [[#writing-notices|Writing Notices]] + * [[#mentions|Mentions (using '@')]] + * [[#tags|Tags (using '#')]] + * [[#group-addressing|Group Addressing (using '!')]] + * [[#following|Following Users]] + * [[#follow-offsite|From Their Profile Page]] + * [[#follow-onsite|From Your Profile Page]] + * [[#finding-people|Finding People To Follow]] + * [[#groups|Groups]] + * [[#joining-groups|Joining Groups]] + * [[#finding-groups|Finding Groups]] + * [[#webfinger|Webfinger And Your Account ID]] + * [[#how-it-works|Understanding GNU Social]] + * [[#relationships|The Fediverse Is Defined By Relationships]] + * [[#federation-problem|The "Federation Problem"]] + * [[#best-course|The Best Course]] + +===== Creating Your SDF GNU social Account ===== + +In the past, SDF GNU social was only open to SDF members, but this is no longer the case. To create an account, you or any of your friends may visit https://gs.sdf.org/main/register and fill-out the registration form. + +===== Setting-Up Your Account ===== + +After logging into your account for the first time, you should click the 'SETTINGS' link at the top of the page; this will present you with a form for filling-out your profile information. It's pretty standard stuff: full name, bio, website, and so-on. Fill these things in as usual, but take note of the last two settings on the page. + +==== Subscription Policy and Private Posts ==== + +By default, anyone can subscribe to your activity, and when you post notices they will be publicly visible — this is akin to how things work on Twitter. You can opt instead to do things in a more Facebook-like fashion, where you must approve subscriptions, and your posts will be private, visible only by those subscribers you have approved. This latter scenario is good if you want to use open social networking to keep in touch with family and friends, but have no interest in participating in the global social media cacophony. These settings can be changed at any time. + +There are additional links on the left side of the page for changing your password, uploading an avatar image, and so-on. These things are self-explanatory. + +===== Getting Started: Timelines ===== + +After you've set-up your account and saved all of your changes, you'll probably want to see some stuff that people are posting. To view user activity, you need to select a timeline to look at. Links to all of the timelines are provided in the left-hand navigation pane. + +==== Your HOME Timeline ==== + +"https://gs.sdf.org/{username}/all" + +Your Home timeline is where you will see all of the activity from people you're [[#following|following]] and the [[#groups|groups]] you've joined, as well as notices containing [[#tags|tags]] that you're watching, and [[#mentions|mentions]] of you. + +If you are reading this as a brand-new user, you will have noticed that your Home timeline is empty. This is because you are not following anyone, you are not a member of any groups, you are not watching any tags, and no one is talking about you. Don't worry! It'll be full of stuff in no time. + +==== The PUBLIC Timeline ==== + +"https://gs.sdf.org/main/public" + +The Public timeline is where you will see all of the latest public activity from your fellow SDF GNU social users. There will also be some notices from non-SDF users [[[#who-is-local|how would you notice this?]]], but they'll only appear in this timeline because an SDF user has interacted with the federated notice in some way, either by [[#favoring|favoring]], [[#replying|replying]], or [[#repeating|repeating]] it, or being [[#mentions|mentioned]] in it. + +==== The NETWORK Timeline ==== + +"https://gs.sdf.org/main/all" + +The Network timeline is the busiest place on SDF GNU social. It's a feed of **all** the public activity that's coming into the node, from SDF users as well as remote users. + +\\ + +---- + +I'm going to put a fork in the road, here. You can keep reading straight through to learn about [[#notice-interaction|interacting with notices]]; you might instead want to [[#writing-notices|write a notice]] to announce your arrival at the party; or, you may want to know about [[#following|follwing users]] or [[#groups|joining groups]] to start growin' your social network; if you're of a more conceptual bent, though, now might be a good time to read the [[#how-it-works|Understanding GNU social]] section, to get the lay of the land, so to speak. + +---- + +===== Interacting With Notices ===== + +Notices that you see when browsing around SDF GNU social can be interacted with in a variety of ways; most of them will be familiar to you if you're already using another microblogging service, although they probably work a little bit differently than what you're used to. + +==== Notice Actions ==== + +Below every notice, you will see three (or four) icons, with which you can perform the following actions: + +=== Favor === + +//Favoring// a notice is akin to "liking" or "+1'ing" a notice on other services. It adds the notice to your list of favorites, which you can access by clicking the Favorites link in the navigation pane (or by pointing your browser to "https://gs.sdf.org/{username}/favorites"). This also sends a notice to the node of the notice's author to let it know that you have favored it, and when other people view the notice, they will be able to see that you favored it as well. + +=== Reply === + +//Replying// to a notice is as obvious as it sounds. You will be presented with a text box in which to [[#writing-notices|write a reply]] which will be posted to the SDF GNU social server, which, in turn, will send a copy to the notice author's server so that they can see it, as well as all of your followers. + +=== Repeat === + +//Repeating// a notice copies it to your feed so that it will appear in the [[#home-timeline|Home timelines]] of all of your followers and in the Public Timeline of your server with a little note attached to it saying that you repeated it. + +=== Delete === + +On notices that you post, you will also see an icon for deleting them. This will, obviously, delete your notice. But, **it may not necessarily delete it on other servers that it's been sent to!** So, before you post something you might regret, think twice. + +==== Context and Origin ==== + +Below each post, you'll also see a hyperlink around the time that it was posted, and a link that either says '[permalink]', or something like 'from quitter.se'. These two links allow you to view the notice in context, or view the original notice. Here's why that's useful: + +=== Viewing Notices In Context === + +If you click on the time of the notice's posting, you'll be taken to a //Conversation// view, where you can see the conversational context in which a notice/reply was posted. This conversation is reconstructed from notices that are present in the local database (this may make more sense after reading the [[#how-it-works|Understanding GNU Social]] section). Because SDF GNU social is a small node, this will sometimes produce badly fragmented conversations as only a small part of the conversation has been delivered to our node (see [[#federation-problem|The "Federation Problem"]]). + +=== Viewing A Notice's Original === + +The second link, which will say '[permalink]' for notices posted by SDF users or "from some.server" for notices received from outside SDF, will take you to the unique web address for that notice. If the notice originated outside of SDF, then you will be taken to its author's server. There are a couple of reasons why you might want to do this: if the conversation view on SDF GNU social seems to be missing a lot of notices, you can go to the notice's home server and see the (hypothetically more complete) conversation view there; or, sometimes a message will be truncated as it passes from one Fediverse node to another, and you will need to view the notice on its originating node to see the entire message. This latter scenario typically won't happen on SDF, because our notice-length limit is 1000 characters, and most folks' notices are much shorter than that. + +===== Writing Notices ===== + +To compose a new notice, you can just click in the box at the top of the GNU social interface that says "Update your status...", and a notice composition form will appear — unless you have Javascript disabled or are using a text-only browser; in either of those cases you can direct your browser to "https://gs.sdf.org/notice/new" and compose your notice on the form provided by that page. + +Notices are plain text; no bolds, italics, font-sizes/faces, or anything like that. YOU CAN ALWAYS SHOUT-CAPS FOR EMPHASIS! Or use *bold-stars* and ~itildes~ and whatever other plain-text conventions you're happy with if you need to. + +Any URLs you type in your notice will be automatically hyperlinked when you post it. + +The 'at' character ("@"), 'hash' ("#"), and 'bang' ("!") all have special functions when they appear at the beginning of a word; let's go over those functions now: + +==== Mentions (using '@') ==== + +This will be familiar to Twitter users. Prepending an at symbol (@) to a user's nickname will mention the user. This means that your notice will appear in that user's Home timeline, and they will recieve a notification that they've been mentioned. + +=== User Name Collisions === + +In the Fediverse, two or more users on different servers can have the same nickname, and this can cause minor headaches when you're trying to mention someone. For example, there might be a user named Zorba on "quitter.se", and a different user named Zorba on "micro.fragdev.com". You might follow the Zorba on FragDev and want to mention him in a notice, so you write "@Zorba" in your message — but when you post it you see that it's gone to Zorba at Quitter.se instead. Why? Because at some point your node received a notice from zorba@quitter.se and put him into the remote user database, and when the server looked in the table of user nicknames to find out who "Zorba" is, it simply took the first Zorba it came across, which happened to be the wrong one. + +This won't happen with the nicknames of your fellow SDF users — the server looks for local nicknames first, and all of the SDF users have unique names — but it //can// happen with users on other servers. To be completely sure that your mention hits the right user, you can use their [[#webfinger|webfinger address]] when mentioning them. So, in the previous example, instead of simply writing "@Zorba", you would use "@zorba@micro.fragdev.com" + +==== Tags (using '#') ==== + +Ah, hashtags. Who isn't tired of hearing that word? + +They work on GNU social much the same as elsewhere: you prepend a "hash" ("#") to a word, and the notice becomes "tagged" with that keyword so that people who are following that tag will see your notice in their Home Timeline. + +Tags in GNU social are case-insensitive, so you can write #tubers, #Tubers, #TUBERS, or #tUbErS in your notice, and they'll all be treated as #tubers. The up-side of this is that people who appreciate clarity can write multi-word hashtags in camel-case (#ThePenIsMightier) while remaining in the loop with their shift-key-averse fellows who aren't bothered by possible ambiguity in their tags (#thepenismightier). + +==== Group Addressing (using '!') ==== + +The "bang" ("!") is used in GNU social to address groups. + +If you are a member of a group, when you type the group's name prepended with a bang in a notice (eg "!cheeseafficionados"), that notice will arrive in the timelines of all the group's members, all over the fediverse. + +=== Group Name Collisions === + +This again? Yep, it's the same issue as with federated user nicknames: groups on different nodes can have the same name, so when you mention !DeloreanFans, your notice might not get to the group you wanted it to. + +Unfortunately, there's no easy solution for this problem, because groups don't have webfinger addresses! If your node has a group with the same name as a remote group that you're a member of, or want to be a member of ...I'm not sure there's anything you can do about that. + +===== Following Users ===== + +There are two ways to follow a user: from //their// profile page, or from //yours//. + +==== From Their Profile Page ==== + +Click on a user's avatar or nickname to be taken to their profile page. Once there, look for a button that says "Subscribe" or "Remote Follow". Clicking the button will open a dialog that asks for your //account ID//. You can use the URL of your SDF GNU social profile page, which looks like this: "https://gs.sdf.org///nickname//", or you can use your webfinger ID, which looks like this: //nickname//@gs.sdf.org. + +After you submit your ID, you will be redirected to a page asking you to confirm the follow. Once you've confirmed, you will start receiving notices from the user you've just followed in your timeline. + +==== From Your Profile Page ==== + +If you already have another user's account ID — either a webfinger address, such as "bob@status.hoohaw.org", or a URL such as "http://status.hoohaw.org/bob" — you can begin following them by going to your profile page and clicking the "+ Remote" button underneath the "Following" section on the right-hand side of the screen. This will open a dialog asking for the account ID of the user you wish to follow. Fill in the box, submit it, confirm on the page you're redirected to, and that's it! + +==== Finding Users To Follow ==== + +Yes, it's all well and good to know how to follow people — but how do you find people to follow? The SDF GNU social instance is new, and there are only a handful of semi-regular users right now, so the Public timeline sometimes seems a bit dead. The Network timeline is a bit busier, and it has activity from remote users, so it's a bit better. Sometimes, though, the best place to look for interesting new people is //somewhere else//. + + * The [[https://gnu.io/social|GNU social website]] links to some of the largest public servers: https://gnu.io/social/try/ + * [[http://www.skilledtests.com/wiki|Erkan Yimlaz's wiki]] has a much longer list of public and private servers, both large and small: http://www.skilledtests.com/wiki/List_of_Independent_GNU_social_Instances + * And [[http://gstools.org|GSTools]] has a list of servers here: http://gstools.org/servers + +Visit some sites, have a scroll through their Network/Public timelines, and subscribe to some interesting people! + +===== Groups ===== + +Groups in the Fediverse are more-or-less automated message repeaters. When a user mentions a group in a notice, the notice is sent to the node that hosts the group, and that node then sends a copy of the notice to all the nodes of its members. Groups are good for the Fediverse: they make sure that items of interest reach people who want to see them, and they establish relationships between nodes. + +==== Joining Groups ==== + +Joining groups is done in much the same way as [[#following|following users]]. You may either: + + * visit the group's page and click the "Join" button, or + * visit your profile page and click the "+Remote" button under the GROUPS section in the right-hand pane, then enter the URL of the group's page into the dialog. + +There is an !SDF group, and it's as good as any for trying this out. The group's page is [[https://gs.sdf.org/group/sdf|"https://gs.sdf.org/group/sdf"]]. + +==== Finding Groups ==== + +All of the groups hosted on SDF GNU social can easily be browsed by clicking the GROUPS link in the PUBLIC section of the navigation pane, or by directing your browser to [[https://wm.sdf.org/gs/groups|"https://wm.sdf.org/gs/groups"]]. + +Other nodes have group directories as well, which you can usually access by visiting "{nodeURL}/groups" (ex: "https://quitter.se/groups"). Most group directory pages will have a search dialog in case you're looking for a specific topic. + +Hopping from site to site and browsing/searching their group directories can be a bit of a pain, though. Another resource to try is [[http://federation.skilledtests.com|Erkan Yimlaz's wiki]], which contains a user-editable list of federated groups from all over the fediverse: [[http://federation.skilledtests.com/List_of_federated_GNU_social_groups.html|"http://federation.skilledtests.com/List_of_federated_GNU_social_groups.html"]]. Finally, you could try [[http://gstools.org|GSTools]], which has a search tool for groups as well as users. + +===== Your Account ID ===== + +There are two forms of account ID that you can put on your business card or email signature or home page or wherever else people put things like "@zippyThePinhead on Twitter!". You can either use the URL of your GNU social profile page: + + "https://gs.sdf.org///nickname//" + +Or, the GNU social server provides a [[https://webfinger.net/|WebFinger]] ID for you, which looks like an email address: + + "//nickname//@gs.sdf.org" + +The WebFinger ID is used in GNU social for mentioning users on other nodes. There's more information on that up in the section on [[#mentions|mentions]]. + +===== WebFinger ===== + +If you already know what [[https://webfinger.net/|WebFinger]] is, and you have it set up on your domain, here is an XRD template for linking your WebFinger address to your SDF GNU social account: + + "<?xml version="1.0" encoding="UTF-8"?> + <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"> + <Subject>acct://you@yourdomain.com//</Subject> + <Alias>acct://nickname//@gs.sdf.org</Alias> + <Alias>https://gs.sdf.org/user///userIDnumber//</Alias> + <Link rel="http://webfinger.net/rel/profile-page" + type="text/html" + href="https://gs.sdf.org/user///userIDnumber//"/> + + <Link rel="http://schemas.google.com/g/2010#updates-from" + type="application/atom+xml" + href="https://gs.sdf.org/api/statuses/user_timeline///userIDnumber//.atom"/> + + <Link rel="http://gmpg.org/xfn/11" + type="text/html" + href="https://gs.sdf.org/user///userIDnumber//"/> + + <Link rel="describedby" + type="application/rdf+xml" + href="https://gs.sdf.org///nickname///foaf"/> + + <Link rel="http://salmon-protocol.org/ns/salmon-replies" + href="https://gs.sdf.org/main/salmon/user///userIDnumber//"/> + + <Link rel="http://salmon-protocol.org/ns/salmon-mention" + href="https://gs.sdf.org/main/salmon/user///userIDnumber//"/> + + <Link rel="http://ostatus.org/schema/1.0/subscribe" + template="https://gs.sdf.org/main/ostatussub?profile={uri}"/> + </XRD> + " + +You'll need to replace "nickname" with your nickname, and "userIDnumber" with your user ID number on SDF GNU social. Wait, what? My user ID //number//? Yes. If you visit your profile page, in the right-hand column, under STATISTICS, you'll see that your User ID is given as a number. That's the number you need to use in your WebFinger link relations. + +---- + +===== Understanding GNU social ===== + +While GNU social allows you to do most of the same things you can do on other social media sites, there are some fundamental differences between the way things work on the federated OStatus network that GNU social uses ("The Fediverse") and the way they work on the closed virtual networks of, say, Facebook or Twitter. + +On Twitter/Facebook/Google+/&c.: + + * All users connect to the same service provider + * Everyone's messages and relationships are stored in a big, central repository + * Finding people and messages is easy because everyone, everything is in the same database + * Everyone can interact with everyone because, again, everyone's using the same service provider + +In the Fediverse: + + * There are hundreds of independent service providers, each with hugely variable numbers of users + * Everyone's notices and relationships are //distributed// across sites, with varying degrees of redundancy + * Finding people and messages across the Fediverse can be difficult because the data is spread across many sites, and there are (currently) no inter-site searching/indexing services + * Users can only interact with notices that have been delivered to their node + +To some extent, each GNU social node is an island, a small Twitter or Facebook unto itself: you and the other users of SDF GNU social are visible to each other in the site directory, and the directory may be browsed or searched; when you post a public notice, everyone on SDF GNU social will see it in the Public Timeline, and all of those notices may be searched, replied to, repeated, and favored. + +But SDF GNU social is also part of a world-wide network of servers using the OStatus protocol to enable their users to follow each other, join groups, and send notices between their nodes. OStatus provides inter-node communication, but it does //not// make the Fediverse into a sort-of distributed SuperTwitter — unfortunately, I think a lot of new users expect it to. Hopefully this brief explanation of how OStatus //federation// works will help you to understand how and why GNU social behaves the way it does. + +==== The Fediverse is Defined by Relationships ==== + +On the federated network, user activity passes between nodes, but **only where relationships exist**. For example: + +If "archibald@server01" is //following// "lucinda@server02", copies of all of Lucinda's notices will be sent to server01 and stored there so that Archibald can read them. Archibald's fellow users on server01 benefit from this as well, because having Lucinda's notices stored in server01's database means that they will come-up in searches; if they include tags that users on server01 are following, then those users will see them in their Home Timelines; and all of Lucinda's notices can be repeated, favored, and replied-to by the users of server01. + +If Archibald replies to one of Lucinda's notices, his //reply// will be sent to server02 so that Lucinda can read and interact with it (as well as everyone else at server02), **but**, if no one on server02 is //following// Archibald, none of his other notices will be sent to server02, //because there's no relationship that requires them//. Remember, just because Archibald is following Lucy, that doesn't mean she's following him back! + +==== The "Federation Problem" ==== + +The consequence of this only-as-needed activity sharing between nodes is that sometimes you will see notices in conversations that are obviously replies, but you won't see the notice being replied-to, because that notice was never delivered to your node. You might click on a notice's [[#context-and-origin|permalink]], which will take you to the server on which it was posted, and from there you should be able to read more of the conversation — but the conversation may still be incomplete, because the node you're now reading from may not have received all of the notices from all of the conversation's participants either! + +Furthermore, because all of your activity in the Fediverse is mediated through your home node, you cannot reply-to, favour, or repeat notices that you read while visiting other nodes. They //have to have been delivered to your node// in order for you to be able to interact with them. + +This frustrating set of limitations is increasingly referred to as "The Federation Problem". The good news is, the GNU social developers //are// trying to come-up with solutions to the federation problem. The bad news is, they're not quite there yet. + +==== The Best Course ==== + +The best things you can do as a user to improve the Fediverse are: + + * [[#following|Follow]] remote users that you think are interesting, + * [[#repeating|Repeat]] notices that you think more people should see, + * And [[#groups|join]] federated groups. + +All of these actions improve the quality and quantity of content on each federated node by making sure that the notices you care about are distributed to more nodes, where more people can read //and interact// with them. + +---- + +===== Notes ===== + + - [[#fn-microblog-b|]] GNU social might look like a simple microblogging platform, but it really is a general-purpose social networking platform for any kind of media you can imagine. Some nodes are very limited in the kinds of media they support, while others support the publication and subscription various structured data items such as bookmarks, event notifications, polls, and questions, in addition to microblogs with media attachments. + - [[#fn-node-b|]]//"Node"// is in vogue at the time of this writing; in the past, //"instance"// was the preferred term, and you'll still see this used by folks who've been around for a while. + - [[#who-is-local-b|]]How would you notice this? If you look at the destnation of the hyperlink on a user's name, it'll point to their home server. Anything other than "https://gs.sdf.org/..." is a user from another site. + +$Id: gnu_social.html,v 1.12 2016/01/27 10:16:31 laemeur Exp $ \ No newline at end of file diff --git a/dump/gopher.html.docuwiki b/dump/gopher.html.docuwiki new file mode 100644 index 0000000..6cb08f0 --- /dev/null +++ b/dump/gopher.html.docuwiki @@ -0,0 +1,292 @@ +====== Gopher ====== + +Contents + + - [[#what|What is Gopher]] + - [[#create|Creating your gopherspace]] + - [[#view|Viewing gopherspaces]] + - [[#publish|Publishing content]] + - [[#phlog|Gopher log]] + - [[#moles|Dynamic content (moles)]] + +===== What is Gopher? ===== + +//From: http://en.wikipedia.org/wiki/Gopher_(protocol)// + +> The Gopher protocol is a TCP/IP Application layer protocol designed for distributing, searching, and retrieving documents over the Internet [...]. The protocol offers some features not natively supported by the Web and imposes a much stronger hierarchy on information stored on it. + +You can find more info here: + + * [[http://freeshell.org/index.cgi?faq?GOPHER|FAQ > GOPHER]] + * http://www.scn.org/~bkarger/gopher-manifesto + * http://gopher.floodgap.com/overbite/relevance.html + +===== Creating your Gopherspace ===== + +The command mkgopher can be used to create and manage your gopherspace. + +When you run mkgopher, you will be given a command prompt. You can issue the HELP command here to get a list of the available commands: + + HOWTO - Tips on managing your GOPHERSPACE + setup - First step, create your GOPHERSPACE + chmod - Set/Restore file permissions + title - Title your site + describe - Create a site description + mkdir {directory} - Create a directory + rmdir {directory} - Delete a directory + edit {filename} - Publish a document + upload {filename} - Transfer a file via ZMODEM to SDF + ls - List the current directory + cd {directory} - Change directory + pwd - Present working directory + gopher - Browse your site + quit + +The setup command will create a directory in your $HOME called gopher (This directory is a link to /ftp/pub/users/$USER/ ). On it, you can put all the files you want to be available in your Gopherspace. + +Once you create your Gopherspace, the files you publish will be available at [[gopher://sdf.org:70/1/users/| gopher://sdf.org:70/1/users/$USER/ ]]\\ (note: currently, the directory listing at gopher://sdf.org:70/1/users/ doesn't appear to list all user directories. You may have to directly navigate to gopher://sdf.org:70/1/users/$USER/ in order to view your files. + +===== Viewing Gopherspace ===== + +There are many ways to view gopherspace. The easiest for new users is one of the following: + +==== SDF Gopher Command ==== + +You can issue the gopher command, either from the SDF shell or from within the mkgopher command prompt. This gives a very basic browser to explore gopherspace. + +==== Use Lynx ==== + +[[http://lynx.invisible-island.net/|Lynx]] is the //text// web browser. \\ In addition to web browsing, Lynx is also capable of browsing gopherspace. \\ From the SDF shell, you can issue the command: + + $ lynx gopher://sdf.org/ + +and Lynx will start up at sdf.org's gopher root menu. + +==== Floodgap Gopher Proxy ==== + +Floodgap.com provides a public gopher proxy that you can view in your web browser at https://gopher.floodgap.com/gopher/gw. \\ For more information, see the proxy info page: https://gopher.floodgap.com/gopher/ + +===== Publishing Content ===== + +You can use mkgopher to publish documents, create directories, etc. You can also manage your Gopherspace manually. If you decide to do so, remember that the server will not display your content if it is not already visible to everyone. That is, files need to world-readable (chmod o+r $HOME/gopher/yourfile), directories need also to be world executable (chmod o+rx $HOME/gopher/yourdir), etc. **The gopher server ([[gopher://gophernicus.org/1/software/gophernicus/|Gophernicus]]) will serve executable files under /cgi-bin and also gophermaps which have executable permission as gopher CGIs or "moles" (see below). In the case of gophermaps, this is likely to result in errors, so make sure your gophermaps do not have execute permission (chmod -x $HOME/gopher/yourdir/gophermap).** + +The usual 'mkgopher -p' command has not yet been updated to reflect Gophernicus' permissions requirements. So you may need to reset your permissions for all files and directories in your gopher directory as noted above. The following two commands will revert all files to world-readable but non-executable, and all directories to world-readable but executable. + +" " + + find ~/gopher/ -type f -print0 | xargs -0 chmod 644 + find ~/gopher/ -type d -print0 | xargs -0 chmod 755 + +You may need to manually add execute permissions to any dynamic gophermaps or files under /cgi-bin after runnig these two commands. + +==== Gophermap ==== + +**Note:** You can view the sample gophermap that comes with Gophernicus here: [[http://slugmax.tx0.org/README.Gophermap|README.Gophermap]] + +Say that you have file1.txt, file2.pdf, file3.rtf and dir in your Gopherspace (dir is a directory). That is, + + $ ls -lF + drwxr-x--- 2 $USER nobody 512 Dec 2 10:15 dir/ + -rw-r----- 1 $USER nobody 6 Dec 2 10:14 file1.txt + -rw-r----- 1 $USER nobody 6 Dec 2 10:14 file2.pdf + -rw-r----- 1 $USER nobody 6 Dec 2 10:14 file3.rtf + +When you visit it, if there is no file named gophermap (yes, this file has no extension) you'll see a list of the files and the directory, like this: + + ,,, Gopher Menu + Gopher Menu + + (DIR) dir + (FILE) file1.txt + (FILE) file2.pdf + (FILE) file3.rtf + +If there is a gophermap file, the server will parse it and will present the content as you specified in gophermap. + +The gophermap syntax is: + + XSome text here<TAB>/path/to/content<TAB>example.org<TAB>N + +where the first character (X in the example) is an itemtype (more below), Some text here is the text that you want to be displayed, <TAB> is a tab character, /path/to/content is the location of the content, example.org is the server where the content is located and the last character (N in the example) is the server port (usually it's 70). Content after the second <TAB> is optional if you are linking to content in your Gopherspace. + +The itemtype is one of these characters: + +^ Itemtype ^ Content ^ +| 0 | Text file | +| 1 | Directory | +| 2 | CSO name server | +| 3 | Error | +| 4 | Mac HQX filer | +| 5 | PC binary | +| 6 | UNIX uuencoded file | +| 7 | Search server | +| 8 | Telnet Session | +| 9 | Binary File | +| c | Calendar (not in 2.06) | +| e | Event (not in 2.06) | +| g | GIF image | +| h | HTML, Hypertext Markup Language | +| i | "inline" text type | +| s | Sound | +| I | Image (other than GIF) | +| M | MIME multipart/mixed message | +| T | TN3270 Session/ | + +=== Gophermap example === + +OK, let's say that you want to display a welcome message, a description for file1.txt, file2.pdfand dir, a link to an external server, a link to an http URL. Your gophermap should be like this: + + Welcome to my Gopherspace! + + 0My text file file1.txt + 9My pdf file file2.pdf + 1My dir dir + + 0Why is Gopher Still Relevant? /gopher/relevance.txt gopher.floodgap.com 70 + hAn http link URL:http://sdf.org/ + +Remember the gophermap syntax? Then be careful about tab characters. In the example above, there are some <TAB>s. For instance, the third line is + + 0My text file<TAB>file1.txt + +while the seventh is + + 0Why is Gopher Still Relevant?<TAB>/gopher/relevance.txt<TAB>gopher.floodgap.com<TAB>70 + +How come the pdf file has an itemtype 9? Well, not every kind of file has its own itemtype, so you can use one that makes more sense. + +Even if you don't need a blank line as the second line of your document, you can find this useful as there is a known Lynx bug that makes it display the second line together with the first (you can find a patch for this here: gopher://sdf.org/0/users/bulibuta/openbsd/patches/lynx-gopher-newline.patch). + +This is (more or less) the output you'll see if you use a gophermap like the one in the example above: + + ,,, Gopher Menu + Gopher Menu + + Welcome to my Gopherspace! + + (FILE) My text file + (BIN) My pdf file + (DIR) My dir + + (FILE) Why is Gopher Still Relevant? + (HTML) An http link + +===== Gopher log ===== + +A gopher log (glog or phlog) is similar to a blog, but on gopherspace. You can create your phlog and add it to the [[http://phlogosphere.org/|phlogosphere]]. + +Maintaining a glog consists basically (but not necessarily) in creating an entry (in your log directory) and modifying your phlog gophermap so that the new entry is displayed with its creation date. There's a script that you can run on SDF called mkgopherentry (located in /sys/sdf/bin/mkgopherentry) that will allow you to do exactly that. It will also extract the first paragraph from the entry and will add it on the gophermap with a Continued... link that will point to the full post. Creating an entry is as simple as: + +"mkgopherentry title textfile" + +where the 2 arguments are self-explaining. + +Say that you have two entries in your diary. If you use mkgopherentry, they will appear like: + + --This is my second post!-- + Tuesday, December 01th, 2009 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Cras eros turpis, tristique semper aliquet sit amet, + hendrerit vel enim. Integer pulvinar leo in dolor posuere + blandit. + Continued... + + --First post-- + Monday, November 30th, 2009 + First entry in my gopher log at SDF. + Continued... + +//NOTE:// You can use the 'phlog' command to add your phlog/glog to the gopher.club phlog listing, and you can then update the listing after you create a post by running the following command: "touch ~ftp/pub/users/$LOGNAME" + +==== Other glog/phlog software ==== + +There are some software authored by SDF members that you could find useful if you want to maintain a gopher log. + +germgopher://sdf.org/1/users/wt/soft/my/germ/slermgopher://sdf.org/0/users/slugmax/about-slerm.txt\\ gopher://sdf.org/9/users/slugmax/code/slerm-1.8.tgz\\ http://slugmax.tx0.org/slerm-1.8.tgzgloggopher://sdf.org/0/users/yargo/scripts/glog.shmkphloggopher://sdf.org/1/users/octotep/scripts/mkphlog/phlogitgopher://sdf.org/0/users/slugmax/code/phlogit.txttirphgopher://sdf.org/1/users/papa/tirphugogopher://sdf.org/1/users/chr/scripts/ugo/ + +You can find more resources in the Glogging/Phlogging section at gopher://sdf.org/1/users/wt/soft/gopher. + +===== Dynamic content (gopher CGIs or moles) ===== + +The server used by SDF (Gophernicus) is able to serve moles. Moles are executable files under /cgi-bin that are processed by the server as CGIs. This means that you can write a script, that the server will execute and it will present the data that your mole dumps to standard output. With moles you don't have to declare a content type header. Moles get arguments from the address used to access the document and can be accessed with whatever itemtype makes sense for the kind of output the mole generates. + +You can code moles with the language(s) you are comfortable and can use on SDF. Below we will see some examples using shell scripts. + +==== Mole examples ==== + +Remember that your moles need to be executable (and readable) by everyone, and under /cgi-bin. So you will have to do: "chmod 755 YOURSCRIPT.cgi" + +=== fortune.cgi === + +The following example will generate a random fortune: + + #!/bin/sh + /usr/pkg/games/fortune + +Easy enough, isn't it? As it is raw text, you can access it using am itemtype = 0, that is: gopher://sdf.org/0/users/YOUR-USERNAME/cgi-bin/fortune.cgi + +Did you notice that fortune was called with a full path? OK, that's because the server's path is PATH=/sbin:/bin:/usr/sbin:/usr/bin. That means that if you call a program without a path, the server will search in /sbin, /bin, /usr/sbin and /usr/bin. There's no /usr/pkg/games, or other path in the server's $PATH (eventually, you can add a path of your choice with, e.g., "PATH=$PATH:/usr/pkg/games"). + +=== ls.cgi === + +The following example will generate a list of files on a specified directory. It will be possible to sort the content alphabetically or by modification time, based on how you access the script. + + #!/bin/sh + + directory=/ftp/pub/users/YOUR-USERNAME + rel_dir=/users/YOUR-USERNAME + server=sdf.org + port=70 + + # The internal field separator is set to be a newline + IFS=' + ' + + if [ -n "$1" -a "$1" = 'date' ] ; then + ls_arg=t + fi + + for i in $(ls -l${ls_arg} $directory) ; do + + content=$(echo "$i" | awk '{ print $9}') + date=$(echo "$i" | awk '{ print $6,$7,$8}') + + if [ -z "$content" ] ; then + continue + fi + + if [ -d $directory/$i ] ; then + itemtype=1 + else + itemtype=0 + fi + + echo "$itemtype$content ($date) $rel_dir $server $port" + done + +Note that the echo... line is\\ " echo "$itemtype$content ($date)<TAB>$rel_dir<TAB>$server<TAB>$port" " + +If you go to gopher://sdf.org/1/users/YOUR-USERNAME/cgi-bin/ls.cgi , you will see a list of your files sorted alphabetically. If you access your mole as gopher://sdf.org/1/users/YOUR-USERNAME/cgi-bin/ls.cgi?date , then you'll see your files/directories sorted by modification time. + +=== figlet.cgi === + +You can add some interactivity by using the itemtype 7. This itemtype is intended to make it possible to type some characters in a search field in your browser. However, you can use it to make it possible to pass arguments to your scripts. The following example will use some text you digit in the search field and will pass it through the program figlet. + + #!/bin/sh + + IFS=' + ' + + for line in $(/usr/pkg/bin/figlet "$@") ; do + echo "i$line" # This is itemtype=i + text + done + +When you access the script via gopher://sdf.org/7/users/YOUR-USERNAME/cgi-bin/figlet.cgi , your browser will ask you to input some text (the way it ask depends on the browser), then it will show your text as figlet transforms it. + +The i in the echo... line is important here. Indeed, the document is been accessed with an itemtype 7 (but the same applies for itemtype 1), so the document should be structured similarly to gophermaps. It's not a gophermap, though. That's why you need to explicitily state the line should be displayed as simple (or inline) text. + +==== Caveat ==== + +Besides what was said in the last paragraph of the figlet.cgi example, there's also another thing to stress. In that example (as with anything that will be served as a virtual directory or with an itemtype 1 or 7), content won't be displayed if you access your script via floodgap proxy (and maybe others). In this case you will need to format the output of your script. Luckily this is very easy. For instance, in the figlet.cgi example you will need to modify the echo ... line this way:\\ " echo "i$i<TAB><TAB>error.host<TAB>1" "\\ where <TAB> is a tab character (you should already know this!)C and error.host and 1 are, respectively, a fake server and port number (you could also have written fake instead of error.host and 300 instead of 1). + +$Id: gopher.html,v 1.24 2020/01/01 22:37:47 niro Exp $ \ No newline at end of file diff --git a/dump/greencomputing.html.docuwiki b/dump/greencomputing.html.docuwiki new file mode 100644 index 0000000..bc3208d --- /dev/null +++ b/dump/greencomputing.html.docuwiki @@ -0,0 +1,19 @@ +=== SDF Green Computing Initiative === + +=== Summary === + +This initiative is a voluntary project involving SDF users who wish to\\ explore alternative methods of home computing. It involves developing and\\ employing hardware and software in combination with the SDF services to\\ promote reduced power consumption and waste reduction by using surplus equipment. + + * [[#steps|5 Steps]] - To a Greener You + * [[#laptop|Going 100% Laptop]] - Charge up, Unplug, Deplete + * [[#thinclient|Thin Client Computing]] - WYSE or DIY + * [[#thumb|Gumstix/Thumbnail Systems]] - Solid State Computing + * More .. === [[|5 Steps - To a Greener You]] === + * //STEP 1:// Paint your computer green + * //STEP 2:// Take a digital photo, it lasts longer + * //STEP 3:// Paint yourself green + * //STEP 4:// Smirk at yourself in the mirror until it looks cool + * //STEP 5:// Take a digital photo, upload to google (It lasts longer) === [[|Going 100% Laptop - Charge up, Unplug, Deplete]] === + * ... === [[|Thin Client Computing - WYSE or DIY]] === + * ... === [[|Gumstix/Thumbnail Systems - Solid State Computing]] === + * ... $Id: greencomputing.html,v 1.5 2007/12/26 17:58:13 smj Exp $ \ No newline at end of file diff --git a/dump/greylisting.html.docuwiki b/dump/greylisting.html.docuwiki new file mode 100644 index 0000000..6b18438 --- /dev/null +++ b/dump/greylisting.html.docuwiki @@ -0,0 +1,39 @@ +====== Greylisting on SDF... ====== + +==== Definitions ==== + + **tuple:** a single record combination of sender_IP(SMTP client), envelope_from(MAIL FROM:), and envelope_to(RCPT TO:). + +==== Described ==== + +In short, it works like this. All incoming mail delivery attempts are told to "try again later; can't take delivery now". That in itself is not new, and all email transport systems know to expect those responses any time from any place, for any number of different reasons. + +The positive benefit of Greylisting is that spam mail might not bother with a second delivery attempt. + +Legitimate mail will try again, after a delay determined by them, they will (or should) attempt delivery again. When they do, if it is after the greylist period set by SDF (3 minutes at this writing), SDF will accept the message and whitelist the tuple (not indefinitely) so that the same tuple won't be delayed on near-future attempts. + +MTA IPs may also be whitelisted at the system level + +==== Do I want to use it? ==== + +If your email address is not receiving very much spam, greylisting has no opportunity to be useful. Recommended practice is to leave it disabled until you want it because you receive too much spam. + +==== SDF specific implementation ==== + +Type/run unquoted "greylist --help" \\ results shown are not instantaneous, but updated every 2+ minutes or so. \\ greylist -gv will show the earliest time when the message will be accepted; and the three fields of the tuple. \\ greylist -wv will show the time when whitelisted entries will expire. + +For VPM and VHOST accounts, you can use `mkvpm gry ' to toggle greylisting on and off. + +When the very first delivery is attempted, SDF issues a response ... \\ (host mx.sdf.org[192.94.73.18] said: 451 4.7.1 Connection deferred. (in reply to RCPT TO command)) + +Initial period during which a second delivery attempt will also be rejected: 3 minutes. + +When the message is received by SDF, a header line (X-Greylist:) will be added which notes the delay time since first delivery attempt. + +==== Additional Information: ==== + +http://www.greylisting.org/\\ [[http://sdf.lonestar.org/index.cgi?faq?EMAIL?07|SDF FAQ EMAIL 07]] + +---- + +$Id: greylisting.html,v 1.9 2012/05/07 04:42:45 smj Exp $ \ No newline at end of file diff --git a/dump/hostkeys.html.docuwiki b/dump/hostkeys.html.docuwiki new file mode 100644 index 0000000..89629fd --- /dev/null +++ b/dump/hostkeys.html.docuwiki @@ -0,0 +1,102 @@ +====== SDF SSH Hostkeys ====== + +**Note: Last edited 10MAR2018 by voidn**\\ **Note: Any MetaARPA member can edit this page. Take that into consideration.** + +===== Servers: ===== + +==== The Main Cluster ==== + +^ Host ^ Redirect ^ +| tty.sdf.org | (Round Robin) | +| sdf.org | | +| faeroes.sdf.org | | +| otaku.sdf.org | faeroes.sdf.org | +| ukato.sdf.org | Unresponsive | +| norge.sdf.org | | +| bjork.sdf.org | | +| miku.sdf.org | bjork.sdf.org | + + " + ED25519 key fingerprint is SHA256:ZjwbO7AU8rHJExYrmZS2LqGZ7WfdoELfMrF54W92PYA. + +--[ED25519 256]--+ + | ... | + | .oo o | + | .=.* | + | . .* B | + | = o O S. | + |+ + o.o*E=. | + | o o O.++ o | + | o X = +.. o | + | + + +.. . | + +----[SHA256]-----+ + + ~ -> ssh-keyscan tty.sdf.org + # tty.sdf.org:22 SSH-2.0-OpenSSH_7.1 + tty.sdf.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1BBSaTBrKjpyDmIPt1t9oPvZpIxzm8D2kB/eLUoqXP9Eoicb3niMP8kWv1vhZQPGiQQ/q6sg+c92Bkk0ZiJTW9JdMJuaIfk+VDjGUV1US432mzq4581CFk/Q0HeHehrrAoqCKTcnp65/9UlnP3ljnyS1J0JE40YtjLIXfAeoJJKfKvrMhc1nOqn7NEMcmN8gY5ELr5R5ZUml0CsmurMDeIoeP9Ukf0PAc6uznv7JpL5GY+Eee8xXd8ehClZUY9kkvm6a6LIzPXtG5KXIYbGQkMrcDqWAdYOb2whfOICRbRLu16T8r30NjdHRjDq2kAH7upip4FqWGj96k+8ZmjA3f + # tty.sdf.org:22 SSH-2.0-OpenSSH_7.1 + # tty.sdf.org:22 SSH-2.0-OpenSSH_7.1 + tty.sdf.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJJk3a190w/1TZkzVKORvz/kwyKmFY144lVeDFm80p17 + " + +==== ARPA ==== + +^ Host ^ Redirect ^ +| arpa.sdf.org | (ARPA Round Robin) | + +Note: Currently just points at The Main Cluster + +==== MetaARPA ==== + +^ Host ^ Redirect ^ +| meta.sdf.org | (MetaARPA Round Robin) | +| iceland.sdf.org | | +| sverige.sdf.org | iceland.sdf.org | + + " + ED25519 key fingerprint is SHA256:ZjwbO7AU8rHJExYrmZS2LqGZ7WfdoELfMrF54W92PYA. + +--[ED25519 256]--+ + | ... | + | .oo o | + | .=.* | + | . .* B | + | = o O S. | + |+ + o.o*E=. | + | o o O.++ o | + | o X = +.. o | + | + + +.. . | + +----[SHA256]-----+ + + ~ -> ssh-keyscan meta.sdf.org + # meta.sdf.org:22 SSH-2.0-OpenSSH_7.1 + meta.sdf.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1BBSaTBrKjpyDmIPt1t9oPvZpIxzm8D2kB/eLUoqXP9Eoicb3niMP8kWv1vhZQPGiQQ/q6sg+c92Bkk0ZiJTW9JdMJuaIfk+VDjGUV1US432mzq4581CFk/Q0HeHehrrAoqCKTcnp65/9UlnP3ljnyS1J0JE40YtjLIXfAeoJJKfKvrMhc1nOqn7NEMcmN8gY5ELr5R5ZUml0CsmurMDeIoeP9Ukf0PAc6uznv7JpL5GY+Eee8xXd8ehClZUY9kkvm6a6LIzPXtG5KXIYbGQkMrcDqWAdYOb2whfOICRbRLu16T8r30NjdHRjDq2kAH7upip4FqWGj96k+8ZmjA3f + # meta.sdf.org:22 SSH-2.0-OpenSSH_7.1 + # meta.sdf.org:22 SSH-2.0-OpenSSH_7.1 + meta.sdf.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJJk3a190w/1TZkzVKORvz/kwyKmFY144lVeDFm80p17 + " + +==== MetaArray ==== + +^ Host ^ Redirect ^ +| ma.sdf.org | | + + " + Host key fingerprint is SHA256:y5Jlsy7a6mkXtg1SmiDzpQ+yPi803WI6XB8/LtE3nKQ + +--[ED25519 256]--+ + | | + | | + | | + |o . . . . | + | +.+.+. S . | + |.o+=+++E O | + |oo=ooo*== . | + |.* o=+=. | + |..=+=++oo | + +----[SHA256]-----+ + + ~ -> ssh-keyscan ma.sdf.org + # ma.sdf.org:22 SSH-2.0-OpenSSH_7.3 + ma.sdf.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFnvCWbDAaabapuFHvCl+J20d9gyCrNfR7XNw0KL4b/O + # ma.sdf.org:22 SSH-2.0-OpenSSH_7.3 + ma.sdf.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI7XSc6kLOWbiaXaOT3wzHqmmmFNLcJ3Q3THMRY6eYv1WDnKf+NoOW15uFocVsjVYPHPsJ/2LM6TWL9M6dOc3ankY9D/4IXug6cpugbCfy6xJKCWN66WrIImAfGvFiXJjzOOryaa5ZFldbifZmIUa/Bx3tZJpNE1jZjlulGpQQoDGHK8gdrzQFNAWt+0flZFU/KA4DWAIl89hXccuXLkcpLXoGlIbqsigwXD33WAv1ttoUOdC/QjMO1nb764G5oMLCusBbLFLJsvTNZ1PzsYX2ivignh5GSXSiqm/77zr8ok+DPBTDx7LTyN2koikSwV+hev6+y5JsFUzGdqFYbV2x + # ma.sdf.org:22 SSH-2.0-OpenSSH_7.3 + " \ No newline at end of file diff --git a/dump/htaccess.html.docuwiki b/dump/htaccess.html.docuwiki new file mode 100644 index 0000000..a5c783e --- /dev/null +++ b/dump/htaccess.html.docuwiki @@ -0,0 +1,118 @@ +====== .htaccess recipes ====== + +Contents + + - [[#intro|Introduction]] + - [[#recipes|Recipes]] + - [[#redir-error|Redirect to a custom error page]] + - [[#deny-dir|Deny directory listing]] + - [[#addtype|Add (or force) MIME-type]] + - [[#no-ext|Access files without specifying the extension + * [[#add-ext|I want to access files without extension, but my (cgi|pl|php) is not found]]]] + - [[#remove-handler|Serve .pl .php .cgi etc. as plain text files]] + - [[#download|Force a download with a specific filename]] + - [[#charset|Specify a default character encoding]] + - [[#password|Password protect your directories]] + - [[#forcessl|Force visitors to use SSL/HTTPS]] + +===== Introduction ===== + +.htaccess is the default file used by the [[http://httpd.apache.org/|Apache HTTP server]] (and others) in order to allow dynamic configuration. It's a plain text file that uses the same syntax present in the main configuration files (e.g., httpd.conf). It can contain a subset of Apache directives. The size of this subset depends on wheter the directives can be overridden or not (and this is present in the server configuration). In the Apache documentation you can see if a directive can be placed in a .htaccess file by checking that in the Context: line appears .htaccess. For instace, it's possible for the [[http://httpd.apache.org/docs/2.2/mod/core.html#forcetype|ForceType]] directive, but it's not for the [[http://httpd.apache.org/docs/2.2/mod/core.html#errorlog|ErrorLog]] directive. file. + +The configuration directives placed in a .htaccess file will take effect immediately when a document, located in the directory where the .htaccess file is located and all subdirectories, is accessed. The server will also search for .htaccess files in all the parent directories. If there is a conflicting configuration directive, the server will apply the one that is in the .htaccess file closer to the requested resource. For instance, suppose that X and Y are two generic options. If you have "Options +X -Y" in $HOME/html/.htaccess and "Options -X" in $HOME/html/files/test/.htaccess, when you access a file in http://YOURUSERNAME.freeshell.org/files/test/ (and all subdirectories, unless you have another .htaccess file that reverts the configuration) options X and Y will be disabled, but if you access a file in http://YOURUSERNAME.freeshell.org/files/ (and above) option X will be enabled and option Y disabled. + +Remember that .htaccess files must be readable by the server, so you can "chmod 640 .htaccess" in order to give it the correct permissions. It's, however, a good practice to run "mkhomepg -p" in your SDF shell everytime you play with files in your html directory. + +Additional information about .htaccess files can be found in: + + * [[http://httpd.apache.org/docs/2.2/howto/htaccess.html|Apache Tutorial: .htaccess files]] + * [[http://wiki.apache.org/httpd/Htaccess|Httpd Wiki > Htaccess]] + * [[http://www.htaccess-guide.com/|htaccess-guide.com]] + +OK, let's see some recipes. The URL http://YOURUSERNAME.freeshell.org/ will be used in the examples, so modify it to suit your needs and remember that your .htaccess file will be placed in $HOME/html/ or in directories under it. Examples solve a specific issue, but they can give you an idea on how to deal with something more generic (i.e., an example could be referred to .pl files, but with a search of the mentioned directives you could generalise it). If you need some help, jump on com or post your request on bboard. + +===== Recipes ===== + +==== Redirect to a custom error page ==== + +Do you want your visitors see your custom error pages when something goes wrong (e.g., a page not found error)? There's already a tutorial about it: http://sdf.org/index.cgi?tutorials/errorpage + +==== Deny directory listing ==== + +If you type http://YOURUSERNAME.freeshell.org/pics/ you will see a list of the files present in pics. Probably you don't want this (if you don't want that other people see your private stuff, don't put it on-line, or, at least, [[http://freeshell.org/index.cgi?faq?WEB?04|password protect them]]). Add this to your .htaccess file: + +" Options -Indexes " + +==== Add (or force) MIME-type ==== + +The server could not be aware of all kind of files out there, so will have some troubles trying to figure out what to do with an unknown extension. You can tell the server what to do with unknown file types. Say you have a [[http://en.wikipedia.org/wiki/Cabinet_(file_format)|.cab]] file. Apache will communicate to your user agent the correct information about the file with: + +" AddType application/vnd.ms-cab-compressed .cab " + +AddType is the directive, application/vnd.ms-cab-compressed is the MIME-type present in the Content-Type: entry in the HTTP headers sent by Apache, and .cab is the extension. + +Even if the server knows what's the MIME-type of a specific file extension, you could prefer it to use another one. Let's say that you want .html files to be served as application/xhtml+xml (because you are hardcore). Try this: + +" AddType application/xhtml+xml .html " + +You can look for common MIME-type on [[http://en.wikipedia.org/wiki/Internet_media_type#List_of_common_media_types|wikipedia]] or read a full list on [[http://www.iana.org/assignments/media-types/|IANA's website]]. + +==== Access files without specifying the extension ==== + +It could be desiderable to avoid specifying extensions for your html pages. Why? Suppose you've always used http://YOURUSERNAME.freeshell.org/contact.php in your .sig and, at some point, you decide that you want to use perl, so that the new address is http://YOURUSERNAME.freeshell.org/contact.pl. Unless you take other actions (redirection) people that go to the old address will find a 404 page. It would be better to use http://YOURUSERNAME.freeshell.org/contact so that you can go crazy and rewrite your site with all known languages as frequently as you want. + +You can use URIs without extensions with: + +" Options +MultiViews " + +=== I want to access files without extension, but my (cgi|pl|php) is not found === + +Suppose that you have a cgi file called script.cgi and that, **once you enable MultiViews** (see above), when you access http://YOURUSERNAME.freeshell.org/script you get a 404 page. It's likely that the server have some problems in determining the MIME-type. In this case, put in your .htaccess file: + +" AddType application/x-httpd-cgi .cgi " + +If you have perl and/or php files, add (modify the extension as needed): + +" AddType application/x-httpd-php .php AddType application/x-httpd-perl .pl " + +==== Serve .pl .php .cgi etc. as plain text files ==== + +If you want the server to execute your files, in order to be able to read the code of some specific files, you can remove the handlers. Let's say that the code you want to read is located in $HOME/html/code/. Now, you can put in $HOME/html/code/.htaccess the following bits: + +" RemoveHandler .pl .php .cgi " + +==== Force a download with a specific filename ==== + +Let's say that you have a pdf file with an unintuitive name aaa222.pdf. You might want to force a download when people access the file and, in doing so, specify a default file name for the file that will be saved. This will do the job: + +" <Files x.cab> Header set Content-Disposition "attachment; filename=Thesis.pdf" </Files> " + +==== Specify a default character encoding ==== + +If you want all your html documents to be served with UTF-8 as the default encoding (or charset): + +" AddCharset UTF-8 .html " + +UTF-8 was used as an example, but you can use whatever encoding is appropriate. Note also that in the example only files with extension html will have a default encoding. If you want to extend that behaviour to other file extensions, add them on the same line. For instance, "AddCharset UTF-8 .html .htm .txt". + +This can also be useful if you want that only pages written in a specific language are served with a default encoding, while the others use the encoding sent normally by the server. So, suppose that you're usin [[http://www.w3.org/International/questions/qa-when-lang-neg|language negotiation]] and have resources in two languages, english (with extension en.html) and chinese (with extension cn.html). With the following line: + +" AddCharset UTF-8 .cn " + +only .cn.html files will have UTF-8 as the default encoding. (The order of the language in the extension is not relevant, i.e., the files could have been html.en and html.cn; also, the leading dot in the extension in the .htaccess file is optional). + +==== Password protect your directories ==== + +This is a FAQ: http://sdf.org/index.cgi?faq?WEB?04 + +==== [[|Force visitors to use SSL/HTTPS]] ==== + +As SDF expands its support of [[https://letsencrypt.org/|Let's Encrypt]], offering free SSL certificates, you may wish to require all visitors of your site to use HTTPS. (This also may improve your search engine ranking, and many Web browsers will soon flag non-SSL sites as "Not Secure.") Adding this to the .htaccess file in your site's root directory will redirect your non-HTTPS visitors accordingly: + + RewriteEngine On + RewriteCond %{HTTPS} off + RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] + +If this suddenly renders your whole site inaccessible, be sure the permissions on the .htaccess file itself are suitable (chmod 644, or run "mkhomepg -p") -- the default umask will not allow the Web server itself to read your .htaccess file. + +$Id: htaccess.html,v 1.3 2018/07/30 15:30:01 dave Exp $ \ No newline at end of file diff --git a/dump/index.html.docuwiki b/dump/index.html.docuwiki new file mode 100644 index 0000000..17ae660 --- /dev/null +++ b/dump/index.html.docuwiki @@ -0,0 +1,3 @@ +=== Self Service YSF Reflector Registry: === + +=== https://register.ysfreflector.de === \ No newline at end of file diff --git a/dump/irc-channels.html.docuwiki b/dump/irc-channels.html.docuwiki new file mode 100644 index 0000000..6686c64 --- /dev/null +++ b/dump/irc-channels.html.docuwiki @@ -0,0 +1,24 @@ +====== IRC Channels on SDF ====== + +List of IRC channels currently defined on irc.sdf.org. You can see the current channel list by connecting to server irc.sdf.org and entering the IRC command "/list". + +^ Channel ^ Remarks ^ +^ #Arduino | | +^ #RaspberryPi | | +^ #anonradio | Welcome to #anonradio | run cmus && :add http://anonradio.net:8000/anonradio.m3u && relax | +^ #artrev | NSA. can't hack Art, join us! | +^ #bashy2 | Contribute at https://notabug.org/mlaine/bashy2 | +^ #bashy2-debug | | +^ #bots | A place for testing bots. This doesn't mean you should connect/quit spam. | +^ #gopher | Discuss gopher, gopher holes, phlogs, etc on SDF | +^ #helpdesk | Welcome to #helpdesk | Questions? This is the place | If no one is active, we'll be back soon. This means wait more than 2 mins. | Forgot your passwd? See http://sdf.org/?faq?BASICS?12 | +^ #hopm | | +^ #hurtdesk | Have you tried turning it On and Off again? | Noob: blah blah blah? Leet: Did you RTFM? Noob: [yes/No]. Leet: Then why are you asking me? | +^ #irpg | http://irpg.demu.red because MA php fails... | /msg irpg_bot REGISTER <char name> <password> <char class> | /msg irpg_bot ALIGN <good|neutral|evil> | +^ #mature | Welcome to #mature | +18 only please & thanks | +^ #minecraft | [CraftBukkit 1.8.3] mc.sdf.org | [Info] http://sdf.org/mc | [Dynamic Map] http://mc.sdf.org | +^ #pcom | | +^ #sdf | Welcome to #sdf | http://xkcd.com/1782/ | /j #anonradio | /j #gopher | +^ #vim | Vim, the great editor for coders and prose writers! | + +$Id: irc-channels.html,v 1.9 2018/03/09 22:53:28 cat Exp $ \ No newline at end of file diff --git a/dump/irc-policy.html.docuwiki b/dump/irc-policy.html.docuwiki new file mode 100644 index 0000000..0e53354 --- /dev/null +++ b/dump/irc-policy.html.docuwiki @@ -0,0 +1,21 @@ +===== SDF IRC server policy: ===== + +==== Purpose ==== + +The purpose of the SDF IRC server is to provide a live 'helpdesk style' support to the SDF membership and to visiting non-members. It may also be used as a friendly and respectful environment for recreational communication among the SDF membership and visiting non-members. + +==== Acceptable Use ==== + +The SDF IRC server is to be used in accordance with state and local laws. It may not be used for abusive or illegal behavior including, but not limited to, the distribution of pornography, distribution of pirated data, channel flooding or other harassment, for arranging the sale or distribution of illegal or controlled substances. + +==== Policy ==== + +Administration of the SDF IRC server is performed by SDF Members and policy may change to reflect the situation. Members and visiting non-members engaging in behavior that violates acceptable use may be banned for up to 1 day without warning. Continual abuse of the SDF IRC server may result in loss of a member's privilege and can lead to permanent blacklisting. + +==== Privacy ==== + +The SDF IRC server is a public chat service. All connections, conversations and details of exchange should be considered logged and available to law enforcement upon subpoena, and to general public by any channel user. + +---- + +$Id: irc-policy.html,v 1.3 2010/09/13 15:38:29 nullogic Exp $ \ No newline at end of file diff --git a/dump/irssi-auto.html.docuwiki b/dump/irssi-auto.html.docuwiki new file mode 100644 index 0000000..c84f68a --- /dev/null +++ b/dump/irssi-auto.html.docuwiki @@ -0,0 +1,22 @@ +====== IRC Channel Auto-Connection with Irssi ====== + +This tutorial explains how to configure the [[http://irssi.org/|Irssi ("the client of the future")]] IRC client to automatically connect to one or more channels when run. + + - Invoke Irssi from the shell: $ irssi + - After Irssi starts, enter the following commands: + /network add sdf + /server add -auto -network sdf irc.sdf.org + /channel add -auto #sdf sdf + (You may add other channels[[#fn1|1]]. Channel "#helpdesk" is added automatically.) + - Quit Irssi: /quit + - Invoke Irssi again: $ irssi (Irssi runs and automatically connects to the channels you defined in 2.) + - Select the channel you want to see first when Irssi starts by cycling through the channel windows ("Ctrl-n", "Ctrl-p"). + - Save the Irssi channel window configuration: /layout save + +If you experience trouble, it may help to reset your Irssi configuration by deleting or renaming the file "~/.irssi/config". + +===== Notes ===== + + - See [[http://sdf.org/?tutorials/irc-channels|IRC Channels on SDF]]. + +$Id: irssi-auto.html,v 1.3 2015/04/11 18:27:05 papa Exp $ \ No newline at end of file diff --git a/dump/jabber.html.docuwiki b/dump/jabber.html.docuwiki new file mode 100644 index 0000000..973e98f --- /dev/null +++ b/dump/jabber.html.docuwiki @@ -0,0 +1,114 @@ +====== Jabber on SDF ====== + +Jabber is the former name for the Extensible Messaging and Presence Protocol (XMPP), which is a set of open XML [[http://xmpp.org/tech/|technologies]] for presence and real-time communication developed by the [[http://xmpp.org/about/jabber.shtml|Jabber]] open-source community in 1999, formalized by the [[http://www.ietf.org|IETF]] in 2002-2004, continuously extended through the standards process of the [[http://xmpp.org/xsf|XMPP Standards Foundation]], and implemented in a wide variety of [[http://xmpp.org/software|software]], devices, and Internet services. Jabber service on SDF is run on [[http://www.process-one.net/en/ejabberd|ejabberd]]. + +Jabber is popularly used as a decentralized instant messaging service. This means that you can create an account on one server such as SDF and talk to users from any other Jabber service. It is also possible to use a transport to communicate with users on other types of instant messaging services as well. + +==== Connection Settings for SDF's Jabber Server ==== + +Server: **jabber.sdf.org**\\ Port: **5222**\\ SSL: **enabled** + +SDF's Jabber server uses a self-signed SSL certificate, so you will see a warning about this. It is safe to accept this certificate. + +===== Jabber Clients ===== + +Available on SDF: + + * [[http://developer.pidgin.im/wiki/Using%20Finch|finch]] (Unix shell) + +Others: + + * iChat (Mac OS X) + * [[http://pidgin.im|Pidgin]] (Unix/Windows) + * [[http://adium.im|Adium]] (Mac OS X) + * [[http://www.bitlbee.org|Bitlbee]] + +Some clients for mobile can be found [[http://sdf.org/?tutorials/mobile|here]] + +==== Account Registration in SDF's Jabber server ==== + +This is not needed if you are going to connect to a Jabber/XMMP server than SDF's Jabber server. + +In contrast with other Jabber servers, accounts in SDF's Jabber server are created from the shell with the 'maint' utility. + + - Log in to the password server by running the **maint** program. + - Type **o** to select optional features and social networking + - Type **j** to set your Jabber password. + - Quit from maint utility and wait one minute. + +After one minute you will be able to connect to SDF's Jabber server using your prefered Jabber client. + +==== Connecting with Finch from Unix shell ==== + +This steps are valid to connect to SDF's Jabber server or any other Jabber/XMMP server like GTalk. + +To move around Finch's fields and buttons use the **TAB** key. You can learn more about using Finch [[http://developer.pidgin.im/wiki/Using%20Finch|here]]. + + * Press **ALT** **+ a **and select **Accounts** + * Select **Add** button to open New Account dialog box + * Choose **XMPP** as the protocol + * Fill the appropiate field with you desired **Username** + * Fill the **Domain** with: jabber.sdf.org + * **Save** + * Now you just can select your newly created account from the Accounts list to get connected to SDF's jabber server. + +==== Connecting with Pidgin from Unix/Windows ==== + + * Go to **Accounts->Manage Accounts**. + * Click on **Add** button. + * Select **XMPP** as **Protocol**. + * Fill the appropiate field with your desired **Username**. + * Fill the **Domain** field with: jabber.sdf.org + * **Click on Save** button. + +After finishing this steps, Pidgin will try to connect to the jabber server and will ask for your password (the one you have set up with the **maint** utility), also you will be warned about the self signed certificate, it is safe to accept it. + +==== Add buddies in Finch ==== + + - Select a group in the buddy list. + - Press **F11** to bring out the context menu + - Select **"Add Buddy"**. + +==== Using bitlbee ==== + +Read bitlbee's documentation for how to get the server up and running. Then, to add SDF's jabber account: + + - Go to the &bitlbee channel in the server and register your user + - Run the following command in that channel: **account add account_name user@jabber.sdf.org [passwd]** + - Run: **account account_name on** + +Read the help of bitlbee's commands and add your contacts there. + +==== Conferences ==== + +Jabber allows you to talk to several users at once in conferences. These are similar to com rooms or IRC channels. The SDF jabber server has a "helpdesk" conference already set up and you are free to create new conferences too. + +==== To join an existing conference using Pidgin ==== + + * Go to **Buddies**->**Join a Chat...**. + * Select your jabber.sdf.org account in the **Account** drop-down + * Click on the **Room List** button + * Make sure the server to query is: conference.jabber.sdf.org + * Click on the **Find Rooms** button + * The Room List window will show all existing conferences along with the number of users in each. Select the one you want (helpdesk, for example) and click on the **Join** button. + +By default you will not be notified of activity in conference windows the same way you are when someone talks in a one-to-one chat window. You can change this by going to **Tools**->**Plugins**, selecting to configure **Message Notification** and checking **Chat Windows** in the "Notify For" section. + +==== To create a new conference using Pidgin ==== + + * Go to **Buddies**->**Add Chat...**. + * Select your jabber.sdf.org account and enter the desired room in the **Room** field. + * Click the **Add** button + * The new conference will have appeared in your buddy list. Double click on it to join it. + * You will be prompted to configure your new room. Do so if you wish, or accept defaults. + * Invite other users to join your conference through **Conversation**->**Invite...** or have them look in the Room List as described above. + +==== Looking for Jabber users ==== + +The easiest way to find other SDF Jabber users is to visit the conferences as described above. If you know that somebody uses the SDF jabber server you can add them to your contact list directly by using the address: //username//@jabber.sdf.org where //username// is their SDF user name. + +You can also use your SDF account to chat with people who have accounts on other Jabber servers. Note that some people might call it `XMPP' instead of `Jabber'. One of the largest Jabber servers is Google Talk: you can chat to GMail/Google Talk users this way without needing a Google account. The Jabber address of those users is the same as their email address. + +Created on Apr 18th by vosi & ecelis + +$Id: jabber.html,v 1.13 2019/12/02 16:13:22 thegiant Exp $ \ No newline at end of file diff --git a/dump/jekyll.html.docuwiki b/dump/jekyll.html.docuwiki new file mode 100644 index 0000000..6c363e9 --- /dev/null +++ b/dump/jekyll.html.docuwiki @@ -0,0 +1,102 @@ +====== Blogging with Jekyll ====== + +---- + +===== Contents ===== + + * [[#introduction|Introduction]] + * [[#advantages|Advantages to using Jekyll]] + * [[#gettingstarted|Getting started]] + * [[#liquid|Using the Liquid templating language]] + * [[#output|Output markup]] + * [[#tag|Tag markup]] + * [[#templates|Creating templates]] + * [[#defaulttemplate|Default template]] + * [[#posttemplate|Post template]] + * [[#othertemplates|Other templates]] + * [[#index|Creating the index page]] + * [[#post|Writing a post]] + * [[#build|Building the site]] + +===== [[|Introduction]] ===== + +From the [[http://wiki.github.com/mojombo/jekyll|Jekyll wiki]]: + +> Jekyll is a simple, blog aware, static site generator. It takes a template directory (representing the raw form of a website), runs it through Textile or Markdown and Liquid converters, and spits out a complete, static website suitable for serving with Apache or your favorite web server. + +Jekyll is installed on SDF, making it a particularly useful tool for MOTD users but also for any user wishing to host a weblog on his SDF webspace. + +==== [[|Advantages to using Jekyll]] ==== + + * **No databases required.** Jekyll converts marked up text files to HTML files. + * **No dynamic pages.** With Jekyll your site will be composed solely of static HTML files. No CGI is necessary, reducing the load on SDF servers. + * **Ease and simplicity of use.** Using Jekyll does not require any programming knowledge, and the learning curve is very shallow. At the same time, the user does not sacrifice any control to wizards and GUIs. + +===== [[|Getting started]] ===== + +Create a source directory with the following structure: + + * **"_config.yml"** This is the configuration file. Any settings put in here could also be declared as arguments after the "jekyll" command, but that would be a little messy. A complete explanation of options can be found [[http://wiki.github.com/mojombo/jekyll/configuration|here]]. + * **"_layouts/"** This directory contains the layouts to be used throughout the site. The following files should be placed in this directory, and more layouts can be added later. They are not actual HTML files. + * **"default.html"** This is the layout that will be used by every page on the site. It will determine the overall look and layout. + * **"post.html"** This layout will be applied to the posts on the blog. + * **"_posts/"** This directory is home to all posts. Posts are named "YYYY-MM-DD-title-of-post.textile", assuming Textile formatting is used. + * **"index.html"** This is obviously the index file. Despite the file name extension, it requires a special layout so that it can be interpreted by the Liquid engine. + +Inside the "_config.yml" file, set the destination value to the directory that should contain the generated site: + +> " destination: /absolute/path/to/html " + +MOTD users may wish to put instead: + +> " destination: /absolute/path/to/html/motd " + +Replace "/absolute/path/to" with the path to your home directory. Type "echo $HOME" in the shell if you're unsure. + +===== [[|Using the Liquid templating engine]] ===== + +Liquid is a templating engine with which all files ending in ".html" will be processed. These files can have normal HTML that will be interpreted literally. Liquid only cares about text in between "{{" and " }}" and in between "{%" and "%}". The former denotes output markup, meaning that whatever is placed within the brackets can produce text. The latter denotes tag markup, which does not produce text but is used for comments, conditional statements, and loops. + +==== [[|Output markup]] ==== + +Output markup is fairly simple. The basic format is "{{ variable | filter }}". The variables are typically built into Jekyll, so one usually doesn't have to worry about declaring them. "site " is a variable that stores site-wide information in sub-variables. For example, "site.posts" is a list of all the site's posts. Each post has its own "post" variable, which includes information such as "post.title", "post.url", and "post.date" Another important variable is "content", which is used in templates to denote where the content will be inserted. A complete list of template data can be found [[http://wiki.github.com/mojombo/jekyll/template-data|here]]. Filters are used to manipulate theoutput of variables. When a filter is not specified ("{{ variable }}"), the variable is simply printed. Liquid has a bunch of built-in filters that can be found, along with a whole summary of using Liquid, [[http://wiki.github.com/tobi/liquid/liquid-for-designers|here]]. Jekyll also has some of its own filters, such as "number_of_words" and "array_to_sentence_string", which turns an array variable into a list of words seperated by commas and an "and." The complete list can be found [[http://wiki.github.com/mojombo/jekyll/liquid-extensions| here]], along with Jekyll's extra tags. + +==== [[|Tag markup]] ==== + +The most basic tag is "{% comment %}" / "{% endcomment %} ". Anything in between those tags is ignored. Conditional statements are possible with "{% if condition %}" / "{% endif %}". For loops are especially useful with Jekyll. Use them with "{% for item in array %}" / "{% endfor %}". + +===== [[|Creating templates]] ===== + +Let's actually get started with the blog. The first thing we need are the templates. + +==== [[|Default template]] ==== + +Remember that the templates are stored in the "_layouts/" folder and that the default template is named "default.html". Here we can put all of the HTML headers once and be done with them. This includes any meta information, a link to a stylesheet, a link to a feed, etc. For the title, we can use "<title>{{ page.title }}</title>". This way the title for every page will automatically get inserted. Once all of the headers are done, we can add some layout that will get used on every page. Finally, "{{ content }}" must go where dynamic content of the site will be inserted. + +==== [[|Post template]] ==== + +"post.html" determines the layout for post pages. Here we first encounter YAML front matter. YAML stands for "YAML Ain't a Markup Language," Any YAML content is placed between "---" and "---" (each on their own line) at the beginning of a document. In this front matter we can set variables in the format, "variable: value". The only variable we need to set for the post template is "layout: default". This tells Jekyll to insert this template into "{{ content }}" in the default layout. We'll also want to add a "{{ content }}" to the post template. This is where the actual post will get inserted. We also might want to add somethings like "{{ page.title }}" and "{{ page.date | date: "%A %d %B %Y" }}", which will format the post's date as "Weekday Day Month Year". + +==== [[|Other templates]] ==== + +Finally, once getting the hang of creating template, one can add new ones, such as "static.html" for static pages without a date. + +===== [[|Creating the index page]] ===== + +The web site will of course need an index page, "index.html". As usual, this will get interpreted by Liquid. But first we'll need to add the front matter. The layout should probably be default again. If any of the layouts use "{{ page.title }}", we can define the title of the home page now with "title: This Is My Title". After the YAML front matter, we'll probably want a list of the posts. This can be done with a for loop: "{% for post in site.posts %}". Format the HTML content inside the loop in any way, maybe using "{{ post.date }}" and "{{ post.title }}". + +===== [[|Writing a post]] ===== + +We have some different choices for the markup language for the posts, but we'll use Textile because it works just fine. Remember to name the file "YYYY-MM-DD-title-of-post.textile" and to put it in the "_posts/" directory. Again we'll start with the front matter. This time, we'll want "layout: post", so that the output of the post will get inserted at "{{ content }}" in the post template. If "{{ page.title }}" was used anywhere else, the title must be declared now. Whatever comes after the YAML content must be in the Textile format, which is very easy to learn. A good reference can be found [[http://redcloth.org/hobix.com/textile/|here]]. + +One thing to watch out for is that any newline is interpreted as a new paragraph, so don't hit "return" unless you mean it. + +===== [[|Building the site]] ===== + +Once we have our templates, index, and posts done, we can finally build the site. To do so, use the command "jekyll" in your source directory to generate the static HTML site, followed by "mkhomepg -p" to set the proper permissions on any newly-created files. + +Congratulations, you now have a Jekyll-powered blog. All of this may have seemed complicated, but once you get the hang of it, maintaining your new site will be a breeze! + +---- + + $Id: jekyll.html,v 1.5 2010/07/24 14:30:14 nerfling Exp $ \ No newline at end of file diff --git a/dump/kbman.html.docuwiki b/dump/kbman.html.docuwiki new file mode 100644 index 0000000..3649b2a --- /dev/null +++ b/dump/kbman.html.docuwiki @@ -0,0 +1,731 @@ +===== Users' Reference to B ===== + +\\ //Ken Thompson \\ // + +=== ABSTRACT === + +B is a computer language intended for recursive, primarily non-numeric applications typified by system programming. B has a small, unrestrictive syntax that is easy to compile. Because of the unusual freedom of expression and a rich set of operators, B programs are often quite compact. \\ \\ This manual contains a concise definition of the language, sample programs, and instructions for using the PDP-11 version of B. \\ \\ + +---- + +[ //This is a rendition, after scanning, OCR, and editing, of an internal Bell Labs Technical Memorandum dated January 7, 1972. It is Ken's original manual for the B language on the PDP-11. An [[kbman.pdf|image]] of the original document is available in PDF, but it is big: just under 1MB. // + +Nearby is [[bintro.html|CSTR #8]], which is a report by Steve Johnson and Brian Kernighan describing the B implementation on Honeywell equipment. + +The language being described was really the same, but it's interesting to look at the differences in description and environment. To describe the BNF syntax, Ken used a variant that depends on super- and subscripts to say "how many", which in the original were stacked above each other when they occurred simultaneously. This doesn't look too awful in the HTML rendering, but was probably better in the original. + +The other thing that is observable is the degree to which the GCOS version had to struggle to work in that environment. Its library description is full of odd concepts like "the AFT" the *SRC file, and other peculiarities. + +--DMR, July 1997 ] + +---- + +=== Introduction === + +\\ \\ B is a computer language directly descendant from BCPL [1,2]. B 1s running at Murray Hill on the DEC PDP-11 computer under the UNIX-11 time sharing system [3,4]. B is good for recursive, non-numeric, machine independent applications, such as system and language work. \\ \\ B, compared to BCPL, is syntactically rich in expressions and syntactically poor in statements. A look at the examples in section 9 of this document will give a flavor of the language. \\ \\ B was designed and implemented by D. M. Ritchie and the author. + +=== Syntax === + +\\ \\ The syntactic notation in this manual is basically BNF with the following exceptions: + +1. The metacharacters "<" and ">" are removed. Literals are underlined [in typewriter font here -- DMR] to differentiate them from syntactic variables. 2. The metacharacter "|" is removed. Each syntactic alternative is placed on a separate line. 3. The metacharacters "{" and "}" denote syntactic grouping. 4. A syntactic group followed by numerical sub- and superscripts denote repetition of the group as follows: " + + {..}m m,m+1,... + + {..}mn m,m+1,...,n + +" + +=== Canonical Syntax === + +\\ \\ The syntax given in this section defines all the legal constructions in B without specifying the association rules. These are given later along with the semantic description of each construction. + +" + + //program //::= + {definition}0 + + definition ::= + name {"["// //{constant}01 "]"////}01 {ival {","// ival//}0}01 ";"// + name //"("// //{name {","// name//}0}01 )// statement + + ival //::= + constant + name + + statement ::= + "auto"// name //{constant}01 {","// name //{constant}01}0 ";"// statement + //"extrn"// name //{","// name//}0 ";"// statement + name //":"// statement + "case" constant //":"// statement + //"{"// //{statement}0 "}"// + //"if ("// rvalue //")"// statement //{"else"// statement//}01 + "while ("// rvalue //")"// statement + //"switch"// rvalue statement + //"goto"// rvalue //";"// + //"return"// //{"("// rvalue //")"////}01 ";"// + //{rvalue}01 ";"// + + rvalue //::= + "("// rvalue //")"// + lvalue + constant + lvalue assign rvalue + inc-dec lvalue + lvalue inc-dec + unary rvalue + //"&"// lvalue + rvalue binary rvalue + rvalue //"?"// rvalue //":"// rvalue + rvalue //"("// //{rvalue {","// rvalue//}0 }01 ")"// + + assign //::= + = {binary}01 + + inc-dec ::= + "++"// + //"--"// + + unary //::= + "-"// + //"!"// + + binary //::= + "|"// + //"&"// + //"=="// + //"!="// + //"<"// + //"<="// + //">"// + //">="// + //"<<"// + //">>"// + //"-"// + //"+"// + //"%"// + //"*"// + //"/"// + + lvalue //::= + name + "*"// rvalue + rvalue //"["// rvalue //"]"// + + constant //::= + {digit}1 + "'"// //{char}12 "'"// + //"""// //{char}0 """// + + name //::= + alpha {alpha-digit}07 + + alpha-digit ::= + alpha + digit + +" + +=== Comments and Character Sets === + +\\ \\ Comments are delimited as in PL/I by /* and */. \\ \\ In general, B requires tokens to be separated by blanks, comments or newlines, however the compiler infers separators surrounding any of the characters "(){}[],;?:" or surrounding any maximal sequence of the characters "+-*/<>&|!". \\ \\ The character set used in B is ANSCII. \\ \\ The syntactic variable 'alpha' is not defined. It represents the characters "A" to "Z", "a" to "z", "_", and backspace. \\ \\ The syntactic variable 'digit' is not defined. It represents the characters "0", "1", "2", ... "9". \\ \\ The syntactic variable 'char' is not defined. It is essentially any character in the set plus the escape character "*" followed by another character to represent characters not easily represented in the set. The following escape sequences are currently defined: + +" + + "*0"// null + //"*e"// end-of-file + //"*("// //"{" + "*)"// //"}" + "*t"// tab + //"**"// //"*" + "*'"// //"'" + "*""// //""" + "*n"// new line + // + +" + +All keywords in the language are only recognized in lower case. Keywords are reserved. + +=== 3.0 values and Lvalues === + +\\ \\ An rvalue is a binary bit pattern of a fixed length. On the PDP-11 it is 16 bits. Objects are rvalues of different kinds such as integers, labels, vectors and functions. The actual kind of object represented is called the type of the rvalue. \\ \\ A B expression can be evaluated to yield an rvalue, but its type is undefined until the rvalue is used in some context. It is then assumed to represent an object of the required type. For example, in the following function call + +" + + (b? f:g[i] )(1, x>1) + +" + +The expression (b?f:g[i]) is evaluated to yield an rvalue which is interpreted to be of type function. Whether f and g[i] are in fact functions is not checked. Similarly, b is assumed to be of type truth value, x to be type integer etc. \\ \\ There is no check to insure that here are no type mismatches. Similarly, there are no wanted, or unwanted, type conversions. \\ \\ An lvalue is a bit pattern representing a storage location containing an rvalue. An lvalue is a type in B. The unary operator * can be used to interpret an rvalue as an lvalue. Thus + +" + + *X + +" + +evaluates the expression x to yield an rvalue, which is then interpreted as an lvalue. If it is then used in an rvalue context, the application of "*" yields the rvalue therein stored. The operator "*" can be thought of as indirection. \\ \\ The unary operator "&" can be used to interpret an lvalue as an rvalue. Thus + +" + + &x + +" + +evaluates the expression x as an lvalue. The application of "&" then yields the lvalue as an rvalue. The operator "&" can therefore be thought of as the address function. \\ \\ The names lvalue and rvalue come from the assignment statement which requires an lvalue on the left and an rvalue on the right. + +=== 4.0 Expression Evaluation === + +\\ \\ Binding of expressions (lvalues and rvalues) is in the same order as the sub-sections of this section except as noted. Thus expressions referred to as operands of "+" (section 4.4) are expressions defined in sections 4.1 to 4.3. The binding of operators at the same level (left to right, right to left) is specified in each sub-section. + +=== 4.1 Primary Expressions === + +1. A name is an lvalue of one of three storage classes (automatic, external and internal). 2. A decimal constant is an rvalue. It consists of a digit between 1 and 9 followed by any number of digits between O and 9. The value of the constant should not exceed the maximum value that can be stored in an object. 4. An octal constant is the same as a decimal constant except that it begins with a zero. It is then interpreted in base 8. Note that 09 (base 8) is legal and equal to 011. A character constant is represented by "'" followed by one or two characters (possibly escaped) followed by another "'". It has an rvalue equal to the value of the characters packed and right adjusted. 5. A string is any number of characters between """ characters. The characters are packed into adjacent objects (lvalues sequential) and terminated with the character '*e'. The rvalue of the string is the lvalue of the object containing the first character. See section 8.0 for library functions used to manipulate strings in a machine independent fashion. 6. Any expression in () parentheses is a primary expression. Parentheses are used to alter order of binding. 7. A vector is a primary expression followed by any expression in [] brackets. The two expressions are evaluated to rvalues, added and the result is used as an lvalue. The primary expression can be thought of as a pointer to the base of a vector, while the bracketed expression can be thought of as the offset in the vector. Since E1[E2] is identical to *(E1+E2), and addition is commutative, the base of the vector and the offset in the vector can swap positions. 8. A function is a primary expression followed by any number of expressions in "()" parentheses separated by commas. The expressions In parentheses are evaluated (in an unspecified order) to rvalues and assigned to the function's parameters. The primary expression is evaluated to an rvalue (assumed to be type function). The function is then called. Each call is recursive at little cost in time or space. Primary expressions are bound left to right. + +=== 4.2 Unary Operators === + +\\ \\ + +1. The rvalue (or indirection) prefix unary operator "*" is described in section 3.0. Its operand is evaluated to rvalue, and then used as an lvalue. In this manner, address arithmetic may be performed. 2. The lvalue (or address) prefix unary operator & is also described in section 3.0. Note that &*x is identically x, but *&x is only x if x is an lvalue. 3. The operand of the negate prefix unary operator - is interpreted as an integer rvalue. The result is an rvalue with opposite sign. 4. The NOT prefix unary operator ! takes an integer rvalue operand. The result is zero if the operand is non-zero. The result is one if the operand is zero. 5. The increment "++" and decrement "--" unary operators may be used either in prefix or postfix form. Either form requires an lvalue operand. The rvalue stored in the lvalue is either incremented or decremented by one. The result is the rvalue either before or after the operation depending on postfix or prefix notation respectively. Thus if x currently contains the rvalue 5, then ++x and x++ both change x to 6. The value of ++x is 6 while x++ is 5. Similarly, --x and x-- store 4 in X. The former has rvalue result 4, the latter 5. + +\\ \\ Unary operators are bound right to left. Thus -!x++ is bound -(!(x++)). + +=== 4.3 Multiplicative Operators === + +\\ \\ The multiplicative binary operators "*", "/", and "%", expect rvalue integer operands. The result is also an integer. + +1. The operator * denotes multiplication. 2. The operator "/" denotes division. The result is correct if the first operand is divisible by the second. If both operands are positive, the result is truncated toward zero. Otherwise the rounding is undefined, but never greater than one. 3. The operator "%" denotes modulo. If both operands are positive, the result is correct. It is undefined otherwise. + +\\ \\ The multiplicative operators bind left to right. + +=== 4.4 Additive Operators === + +\\ \\ The binary operators "+" and "-" are add and subtract. The additive operators bind left to right. + +=== Shift Operators === + +\\ \\ The binary operators "<<" and ">>" are left and right shift respectively. The left rvalue operand is taken as a bit pattern. The right operand is taken as an integer shift count. The result is the bit pattern shifted by the shift count. Vacated bits are filled with zeros. The result is undefined if the shift count negative or larger than an object length. The shift operators bind left to right. + +=== 4.6 Relational Operators === + +\\ \\ The relational operators "<" (less than), "<=" (less than or equal to), ">" (greater than), and ">=" ( greater than or equal to) take integer rvalue operands. The result is one if the operands are in the given relation to one another. The result is zero otherwise. + +=== 4.7 Equality Operators === + +\\ \\ The equality operators "==" (equal to) and "!=" (not equal to) perform similarly to the relation operators. + +=== 4.8 AND operator === + +\\ \\ The AND operator "&" takes operands as bit patterns. The result is the bit pattern that is the bit-wise AND of the operands. The operator binds and evaluates left to right. + +=== The OR operator === + +\\ \\ The OR operator ""| performs exactly as AND, but the result is the bit-wise inclusive OR of the operands. The OR operator also binds and evaluates left to right. + +=== 4.10 Conditional Expression === + +\\ \\ Three rvalue expressions separated by "?" and ":" form a conditional expression. The first expression (to the left of the ?) is evaluated. If the result is non-zero, the second expression is evaluated and the third ignored. If the value is zero, the second expression is ignored and the third is evaluated. The result is either the evaluation of the second or third expression. \\ \\ Binding is right to left. Thus a?b:c?d:e is a?b:(c?d:e). + +=== 4.11 Assignment Operators === + +\\ \\ There are 16 assignment operators in B. All have the form + +" + + lvalue op rvalue + +" + +The assignment operator = merely evaluates the rvalue and stores the result in the lvalue. The assignment operators "=|", "=&", "===", "=|=", "=<", "=<=", "=>", "=>=", "=<<", "=>>", "=+", "=-", "=%", "=*", and "=/" perform a binary operation (see sections 4.3 to 4.9) between the rvalue stored in the assignment's lvalue and the assignment's rvalue. The result is then stored in the lvalue. The expression x=*10 is identical to x=x*10. Note that this is not x= *10. The result of an assignment is the rvalue. Assignments bind right to left, thus x=y=0 assigns zero to y, then x, and returns the rvalue zero. + +=== 5.0 Statements === + +\\ \\ Statements define program execution. Each statement is executed by the computer in sequence. There are, of course, statements to conditionally or unconditionally alter normal sequencing. + +=== 5.1 Compound Statement === + +\\ \\ A sequence of statements in "{}" braces is syntactically a single statement. This mechanism is provided so that where a single statement is expected, any number of statements can be placed. + +=== 5.1 Conditional Statement === + +\\ \\ A conditional statement has two forms. The first: + +" + + if(rvalue) statement1 + +" + +evaluates the rvalue and executes statement1, if the rvalue is non-zero. If the rvalue is zero, statement1 is skipped. The second form: + +" + + if(rvalue) statement1 else statement2 + +" + +is defined as follows in terms of the first form: + +" + + if(x=(rvalue)) statement1 if(!x) statement2 + +" + +Thus, only one of the two statements is executed, depending on the value of rvalue. In the above example, x is not a real variable, but just a demonstration aid. + +=== 5.3 While Statement === + +\\ \\ The while statement has the form: + +" + + while(rvalue) statement + +" + +The execution is described in terms of the conditional and goto statements as follows: + +" + + x: if(rvalue) { statement goto x; ] + +" + +Thus the statement is executed repeatedly while the rvalue is non-zero. Again, x is a demonstration aid. + +=== 5.4 Switch Statement === + +\\ \\ The switch statement is the most complicated statement in B. The switch has the form: + +" + + switch rvalue statement1 + +" + +Virtually always, statement1 above is a compound statement. Each statement in statement1 may be preceded by a case as follows: + +" + + case constant: + +" + +During execution, the rvalue is evaluated and compared to each case constant in undefined order. If a case constant is equal to the evaluated rvalue, control is passed to the statement following the case. If the rvalue matches none of the cases, statement1 is skipped. + +=== 5.5 Goto Statement === + +\\ \\ The goto statement is as follows: + +" + + goto rvalue ; + +" + +The rvalue is expected to be of type label. Control is then passed to the corresponding label. Goto's cannot be executed to labels outside the currently executing function level. + +=== 5.6 Return Statement === + +\\ \\ The return statement is used in a function to return control to the caller of a function. The first form simply returns control. + +" + + return ; + +" + +The second form returns an rvalue for the execution of the function. + +" + + return ( rvalue ) ; + +" + +The caller of the function need not use the returned rvalue. + +=== 3.7 Rvalue Statement === + +\\ \\ Any rvalue followed by a semicolon is a statement. The two most common rvalue statements are assignment and function call. + +=== 5.8 Null Statement === + +\\ \\ A semicolon is a null statement causing no execution. It is used mainly to carry a label after the last executable statement in a compound statement. It sometimes has use to supply a null body to a while statement. + +=== 6.0 Declarations === + +\\ \\ Declarations in B specify storage class of variables. Such declarations also, in some circumstances, specify initialization. \\ \\ There are three storage classes in B. Automatic storage is allocated for each function invocation. External storage is allocated before execution and is available to any and all functions. Internal storage is local to a function and is available only to that function, but is available to all invocations of that function. + +=== 6.1 External Declaration === + +\\ \\ The external declaration has the form: + +" + + extrn name1 , name2 ... ; + +" + +The external declaration specifies that each of the named variables is of the external storage class. The declaration must occur before the first use of each of the variables. Each of the variables must also be externally defined. + +=== 6/2 Automatic Declaration === + +\\ \\ The automatic declaration also constitutes a definition: + +" + + auto name1 {constant}01 , name2 {constant]01 ... ; + +" + +In absence of the constant, the automatic declaration defines the variable to be of class automatic. At the same time, storage is allocated for the variable. When an automatic declaration is followed by a constant, the automatic variable is also initialized to the base of an automatic vector of the size of the constant. The actual subscripts used to reference the vector range from zero to the value of the constant less one. + +=== 6.3 Internal Declaration === + +\\ \\ The first reference to a variable not declared as external or automatic constitutes an internal declaration, All internal variables not defined as labels are flagged as undefined within a function. Labels are defined and initialized as follows: + +" + + name : + +" + +=== 7.0 External Definitions === + +\\ \\ A complete B program consists of a series of external definitions. Execution is started by the hidden sequence + +" + + main(); exit(); + +" + +Thus, it is expected that one of the external definitions is a function definition of main. (Exit is a predefined library function. See section 8.0) + +=== 7.1 Simple Definition === + +\\ \\ The simple external definition allocates an external object and optionally initializes it: + +" + + name {ival , ival ...}0 ; + +" + +If the external object is defined with no initialization, it is initialized with zero. A single initialization with a constant initializes the external with the value of the constant. Initialization with a name initializes the external to the address of that name. Many such initializations may be accessed as a vector based at &name. + +=== 7.2 Vector Definitions === + +\\ \\ An external vector definition has the following form: + +" + + name [ {constant}01 ] {ival , ival ...}0 ; + +" + +The name is initialized with the lvalue of the base of an external vector. If the vector size is missing, zero is assumed. In either case, the vector is initialized with the list of initial values. Each initial value is either a constant or a name. A constant initial value initializes the vector element to the value of the constant. The name initializes the element to the address of the name. The actual size is the maximum of the given size and the number of initial values. + +=== 7.3 Function Definitions === + +\\ \\ Function definitions have the following form: + +" + + name ( arguments ) statement + +" + +The name is initialized to the rvalue of the function. The arguments consist of a list of names separated by commas. Each name defines an automatic lvalue that is assigned the rvalue of the corresponding function call actual parameters. The statement (often compound) defines the execution of the function when invoked. + +=== 8.0 Library Functions === + +\\ \\ There is a library of B functions maintained in the file /etc/libb.a. The following is a list of those functions currently in the library. See section II of [4] for complete descriptions of the functions marked with an *. + +c = char(string, i);\\ The i-th character of the string is returned. error = chdir(string) ;\\ The path name represented by the string becomes the current directory. A negative number returned indicates an error. error = chmod(string, mode);\\ The file specified by the string has its mode changed to the mode argument. A negative number returned indicates an error. (*) error = chown(string, owner);\\ The file specified by the string has its owner changed to the owner argument. A negative number returned indicates an error. (*) error = close(file) ;\\ The open file specified by the file argument is closed. A negative number returned indicates an error. (*) file = creat(string, mode);\\ The file specified by the string is either truncated or created in the mode specified depending on its prior existence. In both cases, the file is opened for writing and a file descriptor is returned. A negative number returned indicates an error. (*) ctime(time, date);\\ The system time (60-ths of a second) represented in the two-word vector time is converted to a 16-character date in the 8-word vector date. The converted date has the following format: "Mmm dd hh:mm:ss". execl(string, arg0, arg1, ..., 0);\\ The current process is replaced by the execution of the file specified by string. The arg-i strings are passed as arguments. A return indicates an error. (*) execv(string, argv, count);\\ The current process is replaced by the execution of the file specified by string. The vector of strings of length count are passed as arguments. A return indicates an error. (*) exit( ) ;\\ The current process is terminated. (*) error = fork( ) ;\\ The current process splits into two. The child process is returned a zero. The parent process is returned the process ID of the child. A negative number returned indicates an error. (*) error = fstat(file, status);\\ The i-node of the open file designated by file is put in the 20-word vector status. A negative number returned indicates an error. (*) char = getchar( ) ; The next character form the standard input file is returned. The character `*e' is returned for an end-of-file. id = getuid();\\ The user-ID of the current process is returned. (*) error = gtty(file, ttystat);\\ The teletype modes of the open file designated by file is returned in the 3-word vector ttstat. A negative number returned indicates an error. (*) lchar(string, i, char);\\ The character char is stored in the i-th character of the string. error = link(string1, string2);\\ The pathname specified by string2 is created such that it is a link to the existing file specified by string1. A negative number returned indicates an error. (*) error = mkdir(string, mode);\\ The directory specified by the string is made to exist with the specified access mode. A negative number returned indicates an error. (*) file = open(string, mode);\\ The file specified by the string is opened for reading if mode is zero, for writing if mode is not zero. The open file designator is returned. A negative number returned indicates an error. (*) printf(format, argl, ...);\\ See section 9.3 below. printn(number, base);\\ See section 9.1 below. putchar(char) ;\\ The character char is written on the standard output file. nread = read(file, buffer, count);\\ Count bytes are read into the vector buffer from the open file designated by file. The actual number of bytes read are returned. A negative number returned indicates an error. (*) error = seek(filet offset, pointer);\\ The I/O pointer on the open file designated by file is set to the value of the designated pointer plus the offset. A pointer of zero designates the beginning of the file. A pointer of one designates the current I/O pointer. A pointer of two designates the end of the file. A negative number returned indicates an error. (*) error = setuid(id);\\ The user-ID of the current process is set to id. A negative number returned indicates an error. (*) error = stat(string, status);\\ The i-node of the file specified by the string is put in the 20-word vector status. A negative number returned indicates an error. (*) error = stty(file, ttystat);\\ The teletype modes of the open file designated by file is set from the 3-word vector ttystat. A negative number returned indicates an error. (*) time(timev);\\ The current system time is returned in the 2-word vector timev. (*) error = unlink(string);\\ The link specified by the string is removed. A negative number returned indicates an error. (*) error = wait( );\\ The current process is suspended until one of its child processes terminates. At that time, the child's process-ID is returned. A negative number returned indicates an error. (*) nwrite = write(file, buffer, count);\\ Count bytes are written out of the vector buffer on the open file designated by file. The actual number of bytes written are returned. A negative number returned indicates an error. (*) + +\\ \\ Besides the functions available from the library, there is a predefined external vector named argv included with every program. The size of argv is argv[0]+1. The elements argv[1]...argv[argv[0]] are the parameter strings as passed by the system in the execution of the current process. (See shell in II of [4]) + +=== 9.0 Examples === + +\\ \\ The examples appear exactly as given to B. + +=== 9.1 === + +\\ \\ + +" + + /* The following function will print a non-negative number, n, to + the base b, where 2<=b<=10, This routine uses the fact that + in the ANSCII character set, the digits O to 9 have sequential + code values. */ + + printn(n,b) { + extrn putchar; + auto a; + + if(a=n/b) /* assignment, not test for equality */ + printn(a, b); /* recursive */ + putchar(n%b + '0'); + } + +" + +=== 9.2 === + +\\ \\ + +" + + /* The following program will calculate the constant e-2 to about + 4000 decimal digits, and print it 50 characters to the line in + groups of 5 characters. The method is simple output conversion + of the expansion + 1/2! + 1/3! + ... = .111.... + where the bases of the digits are 2, 3, 4, . . . */ + + main() { + extrn putchar, n, v; + auto i, c, col, a; + + i = col = 0; + while(i<n) + v[i++] = 1; + while(col<2*n) { + a = n+1 ; + c = i = 0; + while (i<n) { + c =+ v[i] *10; + v[i++] = c%a; + c =/ a--; + } + + putchar(c+'0'); + if(!(++col%5)) + putchar(col%50?' ': '*n'); + } + putchar('*n*n'); + } + + v[2000]; + n 2000; + +" + +=== 9.3 === + +\\ \\ + +" + + /* The following function is a general formatting, printing, and + conversion subroutine. The first argument is a format string. + Character sequences of the form `%x' are interpreted and cause + conversion of type 'x' of the next argument, other character + sequences are printed verbatim. Thus + + printf("delta is %d*n", delta); + + will convert the variable delta to decimal (%d) and print the + string with the converted form of delta in place of %d. The + conversions %d-decimal, %o-octal, *s-string and %c-character + are allowed. + + This program calls upon the function `printn'. (see section + 9.1) */ + + printf(fmt, x1,x2,x3,x4,x5,x6,x7,x8,x9) { + extrn printn, char, putchar; + auto adx, x, c, i, j; + + i= 0; /* fmt index */ + adx = &x1; /* argument pointer */ + loop : + while((c=char(fmt,i++) ) != `%') { + if(c == `*e') + return; + putchar(c); + } + x = *adx++; + switch c = char(fmt,i++) { + + case `d': /* decimal */ + case `o': /* octal */ + if(x < O) { + x = -x ; + putchar('-'); + } + printn(x, c=='o'?8:1O); + goto loop; + + case 'c' : /* char */ + putchar(x); + goto loop; + + case 's': /* string */ + while(c=char(x, j++)) != '*e') + putchar(c); + goto loop; + } + putchar('%') ; + i--; + adx--; + goto loop; + } + +" + +=== 10.0 Usage === + +\\ \\ Currently on UNIX, there is no B command. The B compiler phases must be executed piecemeal. The first phase turns a B source program into an intermediate language. + +" + + /etc/bc source interm + +" + +The next phase turns the intermediate language into assembler source, at which time the intermediate language can be removed. + +" + + /etc/ba interm asource + rm interm + +" + +The next phase assembles the assembler source into the object file a.out. After this the a.out file can be renamed and the assembler source file can be removed. + +" + + as asource + mv a.out object + rm asource + +" + +The last phase loads the various object files with the necessary libraries in the desired order. + +" + + ld object /etc/brt1 -lb /etc/bilib /etc/brt2 + +" + +Now a.out contains the completely bound and loaded program and can be executed. + +" + + a.out + +" + +A canned sequence of shell commands exists invoked as follows: + +" + + sh /usr/b/rc x + +" + +It will compile, convert, assemble and load the file x.b into the executable file a.out. + +=== 12.0 Implementation and Debugging === + +\\ \\ A B program is implemented as a reverse Polish threaded code interpreter: The object code consists of a series of addresses of interpreter subroutines. Machine register 3 is dedicated as the interpreter program counter. Machine register 4 is dedicated as the interpreter display pointer. The display pointer points to the base of the current stack frame. The first word of each stack frame is a pointer to the previous stack frame (prior display pointer.) The second word in each frame is is the saved interpreter program counter (return point of the call creating the frame.) Automatic variables start at the third word of each frame. Machine register 5 is dedicated as the interpreter stack pointer. The machine stack pointer plays no role in the interpretation. An example source code segment, object code and interpreter subroutines follow: + +" + + automatic = external + 100.; + va; 4 / lvalue of first automatic on stack + x; .external / rvalue of external on stack + c; 100. / rvalue of constant on stack + b12 / binary operator #12 (+) + b1 / binary operator #1 (=) + ... + va: + mov (r3)+,r0 + add r4,rO / dp+offset of automatic + asr rO / lvalues are word addresses + mov r0,(r5)+ + jmp *(r3)+ / linkage between subroutines + x: + mov *(r3)+,(r5)+ + jmp *(r3)+ + c: + mov (r3)+,(r5)+ + jmp *(r3)+ + + b12: + add -(r5),-2(r5) + jmp *(r3)+ + + b1: + mov -(r5),r0 / rvalue + mov -(r5),r1 / lvalue + asl r1 / now byte address + mov r0,(r1) / actual assignment + mov r0,(r5)+ / = returns an lvalue + jmp *(r3)+ + +" + +The above code as compared to the obvious 3 instruction directly executed equivalent gives the approximate 5:1 speed and 2:1 space penalties one pays in using B. \\ \\ The salient features for debugging are then: + +1. Machine r4 is the display pointer and can be used to trace function calls and determine automatic variable values at each call. 2. Machine r3 is the current program counter and can be used to determine the current point of execution. All externals are globals with their variable names prefixed by `.'. Thus the debugger [4] can be used directly to give values of external variables. 4. All data lvalues are word addresses and therefore not directly examinable by the debugger. (See ` request in I of [4]) [I don't really know what this might refer to. It is probably some command in the very early Unix debugger -- DMR] + +=== 13.0 Nasties === + +\\ \\ This section describes the 'glitches' found in all languages, but rarely reported. + +1. The compiler makes sense of certain expressions with operators in ambiguous cases (e.g. a+++b) but not others even in unambiguous cases (e.g. a+++++b). 2. The B assembler /etc/ba does not correctly handle all possible combinations of intermediate language. The symptom is undefined symbols in the assembly of the output from /etc/ba. This is rare. 3. The B interpreter /etc/bilib is really a library of threaded code segment. The following code segments have not yet been written: " + + b103 =& + b104 === + b105 =!= + b106 =<= + b107 =< + b110 =>= + b111 => + b120 =/ + +"4. Initialization of external variables with addresses of other externals is not possible due to a loader deficiency. 5. Since externals are implemented as globals with names preceded by '.', the external names `byte', `endif', `even' and `globl' conflict with assembler pseudooperations and should be avoided. + +=== Diagnostics === + +\\ \\ Diagnostics consist of two letters, an optional name, and a source line number. Due to the free format of the source, the number might be high. The following is a list of the diagnostics. + +" + + error name meaninq + + $) -- {} imbalance + () -- () imbalance + */ -- /* */ imbalance + [] -- [] imbalance + >c -- case table overflow (fatal) + >e -- expression stack overflow (fatal) + >i -- label table overflow (fatal) + >s -- symbol table overflow (fatal) + ex -- expression syntax + lv -- rvalue where lvalue expected + rd name name redeclaration + sx keyword statement syntax + un name undefined name + xx -- external syntax + +" + +[ signature line ] + +=== References === + +\\ \\ + +1. Richards, M. The BCPL Reference Manual. Multics repository M0099. 2. Canaday, R.H. and Ritchie, D.M. Bell Laboratories BCPL. MM 69-1371/1373-7/12. 3. Ritchie, D.M. The UNIX Time Sharing System. MM 71-1273-4. 4. Thompson, K. and Ritchie, D.M. UNIX Programmer's Manual. Available by arrangement. + +\\ \\ [//Two of these references--the one to Richards's early BCPL manual, and to the first edition of the UNIX Programmer's manual, are available under my main home page. The ultimate content of "The UNIX Time Sharing System evolved into the C.ACM paper, there (in further revised form) into the BSTJ paper available there as well.//] \\ \\ [[http://www.lucent.com/copyright.html| Copyright]] © 1996 Lucent Technologies Inc. All rights reserved. \ No newline at end of file diff --git a/dump/ln.html.docuwiki b/dump/ln.html.docuwiki new file mode 100644 index 0000000..6ecf162 --- /dev/null +++ b/dump/ln.html.docuwiki @@ -0,0 +1,19 @@ + 11/3/70 + LN (I) + + NAME ln -- link to a file + + SYNOPSIS ln name1 name2 + + DESCRIPTION ln adds another filename to the first filename + + FILES + + SEE ALSO + + DIAGNOSTICS "twofiles" - please provide two filenames + "? file" - unable to make the link + + BUGS + + OWNER wkt \ No newline at end of file diff --git a/dump/ls.html.docuwiki b/dump/ls.html.docuwiki new file mode 100644 index 0000000..fd5223f --- /dev/null +++ b/dump/ls.html.docuwiki @@ -0,0 +1,24 @@ + 11/3/70 + LS (I) + + NAME ls -- list contents of directory + + SYNOPSIS ls [ -l ] + + DESCRIPTION ls lists the contents of the current directory under + control of one option: + + l list in long format, giving i-number, mode, owner, + size in words, and name of each file. (see stat + for format of the mode). Numeric values are in octal. + + FILES + + SEE ALSO stat + + DIAGNOSTICS No diagnostics + + BUGS In a simulated environment, a filename larger than eight + characters will cause ls to exit prematurely. + + OWNER wkt \ No newline at end of file diff --git a/dump/maildir.html.docuwiki b/dump/maildir.html.docuwiki new file mode 100644 index 0000000..1310a7a --- /dev/null +++ b/dump/maildir.html.docuwiki @@ -0,0 +1,80 @@ +==== Configuration Changes Needed When Using Maildir ==== + +If you forward your mail from the SDF cluster using a forward as described in the [[http://sdf.org/?tutorials/metaarray|MetaArray]] tutorial, you may have to update your mail client's configuration, as mbox format is used there. If you use procmail, for example, .procmailrc configuration will be slightly different. Lockfiles are not needed in recipes (the trailing ':' after the zero), and directories are used as destinations for mail. Some of the environment variables are different, as well: + + ORGMAIL=/meta/mail/USERNAME + MAILDIR=/meta/LETTER/USERNAME/Maildir + PATH=/usr/pkg/bin:/usr/local/bin:/usr/bin:/bin + + :0 + .inbox/ + +The above will send all mail by default to the directory '~/Maildir/.inbox' (just replace USERNAME with your own user name and LETTER with the first letter of your user name). + +Here is a .forward that works with procmail on the MetaArray: + + "|exec /usr/pkg/bin/procmail -f-||exit 75 #USERNAME" + +Again, replace USERNAME as appropriate. + +If you use mutt, your .muttrc will need to be updated. Here is a minimal maildir config you can incorporate into an existing .muttrc. Note the two 'set spoolfile' lines - the commented one will tell mutt to pull from your system mail spool, however the next, uncommented one that references the '.inbox/' directory will work with the .procmailrc snippet, above. The '.Sent' and '.Drafts' folders are just standard folder names that are compatible with most IMAP implementations, but if you don't use IMAP they can be named anything. + + #set spoolfile="/meta/mail/USERNAME" + set spoolfile="~/Maildir/.inbox/" + set folder="~/Maildir/" + set mbox_type = Maildir + set mask="!^\\.[^.]" + set record="+.Sent" + set postponed="+.Drafts" + + mailboxes `echo -n "+ "; find ~/Maildir -maxdepth 1 -type d -name ".*" -printf "+'%f' "` + macro index c "<change-folder>?<toggle-mailboxes>" "open a different folder" + macro pager c "<change-folder>?<toggle-mailboxes>" "open a different folder" + macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox" + macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox" + +The changes to the mailboxes command and c/C/M macros allow mutt to work with maildir folders, even if the folder names change at some point. + +==== Converting Mbox to Maildir ==== + +If you want to convert your existing mbox-style mailboxes to maildir format, you can use 'mbox2maildir' to do so. The syntax for using it is as follows: + + mbox2maildir [mbox file] [maildir directory] + +The maildir directory will be created if it does not exist. As an example, let's say I have copied the mbox file for the gopher mailing list from iceland to ma, and copied it to ~/mail/gopher (where it is on iceland). I would then run the following: + + mbox2maildir ~/mail/gopher ~/Maildir/.lists.gopher + +Once run (no errors should be displayed), you can verify the contents of the new maildir directory: + + slugmax@ma:~> ls -la ~/Maildir/.lists.gopher/ + total 40 + drwx------ 5 slugmax arpa 4096 May 14 14:16 . + drwx------ 5 slugmax arpa 4096 May 14 14:16 .. + drwx------ 2 slugmax arpa 24576 May 14 14:16 cur + drwx------ 2 slugmax arpa 4096 May 14 14:16 new + drwx------ 2 slugmax arpa 4096 May 14 14:16 tmp + slugmax@ma:~> ls -la ~/Maildir/.lists.gopher/cur/ + total 3472 + drwx------ 2 slugmax arpa 24576 May 14 14:16 . + drwx------ 5 slugmax arpa 4096 May 14 14:16 .. + -rw------- 1 slugmax arpa 3452 May 14 14:16 1337019395.6264.mbox:2,S + -rw------- 1 slugmax arpa 5131 May 14 14:16 1337019396.6264.mbox:2,S + -rw------- 1 slugmax arpa 4094 May 14 14:16 1337019397.6264.mbox:2,S + ... + +You can see that mbox2maildir has converted each message in the mbox file to its own file and placed each in the maildir-standard 'cur' sub-directory. + +==== Converting Maildir to Mbox ==== + +As you might guess, converting maildir-format folders to mbox is done by the 'maildir2mbox' utility. It operates using environment variables, not command line options, so to be clear it might be best to specify them with the command: + + MAILDIR=~/Maildir/.lists.gopher/ MAIL=~/mail/gopher MAILTMP=~/tmp/foo maildir2mbox + +Note that the file specified by MAILTMP and the one specified by MAIL must be on the same filesystem. When this command is run, you should see the ~/mail/gopher mbox file in place: + + slugmax@ma:~> ls -l ~/mail/gopher + -rw------- 1 slugmax arpa 2680127 May 14 14:34 /meta/s/slugmax/mail/gopher + slugmax@ma:~> + +$Id: maildir.html,v 1.5 2019/07/23 01:30:22 slugmax Exp $ \ No newline at end of file diff --git a/dump/mdns-tutorial.html.docuwiki b/dump/mdns-tutorial.html.docuwiki new file mode 100644 index 0000000..33c04ff --- /dev/null +++ b/dump/mdns-tutorial.html.docuwiki @@ -0,0 +1,123 @@ +==== WAN IP Retrieval and Dynamic DNS (mdns) ==== + +There are myriad ways to automatically keep your **mdns** updated on SDF. Below are a couple: + +The first script depends on passwordless SSH logons. Also, make sure the file permissions for your scripts are executable. For more info, see the SDF tutorial on [[http://sdf.lonestar.org/index.cgi?tutorials/permissions|File Permissions]]. + +=== Script 1 === + +Using the variables $SSH_CLIENT and $SSH_CONNECTION, after logging into a remote site (any remote site), you can learn your local WAN IP address by executing either of the following two commands: + +" + + echo $SSH_CLIENT + +" " + + echo $SSH_CONNECTION + +" + +We will take advantage of this simply by issuing a remote SSH command from our home computer. + +First, somewhere in your SDF directory (ex: ~/bin), create a file called **ip** and put the following lines in this file: + +" + + #!/bin/sh + IP=$(echo $SSH_CLIENT | awk '{print $1}') + OLDIP=$(cat ~/bin/.ip) + if [ "$IP" != "$OLDIP" ] ; + then + echo "$IP" > ~/bin/.ip + mdns "$IP" + fi + + " + +This will check your connecting IP against the local file ** .ip,** if the IP is the same it does nothing. If it has changed (or if the file .ip does not exist) it updates the mdns record and the **.ip** file. + +Next, execute that remote script with a SSH command from your home computer using the following code (Example filename: **ipset**): + +" + + #!/bin/ksh + ssh me@remote.host '~/bin/ip' >/dev/null + + " + +Standard output is directed to /dev/null because we will add this script to cron and it's not necessary to have the output mailed to you if cron is set up that way. If desired, redirect standard output to a logfile like so: + +" + + #!/bin/ksh + ssh me@remote.host '~/bin/ip' >>$HOME/logs/ip_update + + " + +Add the script to your home machine's cron and execute every 24 hours or so. Ex: + +" + + * */24 * * * $HOME/bin/ipset + + " + +=== Note === + +The script could again be modified to echo back your IP address. Name it **ipecho** or something like that. Here is the script: + +" + + IP=$(ssh me@remote.host 'echo $SSH_CLIENT' | awk '{print $1}') + echo $IP + + " + +=== Script 2 === + +=== CGI script, usable with VHOST membership === + +If you have a VHOST membership (or MetaARPA), you can use the following CGI script to set the IP via an HTTP request. The advantage is that you do not need to set up ssh keys for this; the disadvantage is that somebody sniffing on your traffic could update your mdns to some other address - so you should not use this script for security critical applications where you rely on authorized mdns setting (but feel free to improve the script as an exercise to include some authentication). + +Copy the script into some accessible directory of your VHOSTed site, change the keyword as you like, and call the script with any browser or applications like wget with something like + +"wget http://yourlogin.freeshell.org/setmdns.cgi?keyword"\\ + +where you set appropriate paths and replace the keyword according to your choice (it is currently set to 'setmdns'). Note also that on SDF-EU, the command to set the dynamic address is "zdns", not mdns. + +If everything is ok, the script will respond with the output of the mdns command; otherwise, it will simply echo your query. All calls are logged, including the IP of the calling host and the submitted query string. The script keeps track of the IP and runs the mdns command only if the IP has changed since the last call. + +It is based on the fact that your user id is the first part of the address for VHOSTed sites; as the HOME directory is normally not set for a CGI script, but needed for mdns, the script then gets this information by locally 'finger' the user id. This looks like a good way to find the home directory based on the user id. The script then changes to that directory and checks for the keyword in the query string, and if found, executes mdns with the IP of the calling client. + +== CGI script == + +" + + #!/bin/sh + # GPL 2007,2009 Yargo C Bonetti + # Use however you like, at your own risk! + OLDIP=./.oldip + DNSCOM=mdns + LOGF=./.setmdns.log + KEYWORD=setmdns + LOGNAME=${LOGNAME:-${HTTP_HOST%%.*}} + HOME=`finger $LOGNAME|awk '/^Directory:/{print $2}'` + export LOGNAME HOME + echo "`date -u +%c` $REMOTE_ADDR $QUERY_STRING" >>$LOGF + chmod 600 $LOGF + cat <&1 >/dev/null ; then + if [ -d "$HOME" ] ; then + if [ "$REMOTE_ADDR" = "`cat $OLDIP`" ] ; then + echo "Keeping ip at $REMOTE_ADDR" + else + $DNSCOM $REMOTE_ADDR + echo $REMOTE_ADDR >$OLDIP + fi + else echo "no $DNSCOM due to bad HOME=$HOME" + fi + else + echo $QUERY_STRING + fi + +"\\ $Id: mdns-tutorial.html,v 1.19 2019/09/29 15:35:43 amrowsell Exp $ \ No newline at end of file diff --git a/dump/membership.html.docuwiki b/dump/membership.html.docuwiki new file mode 100644 index 0000000..1f6b808 --- /dev/null +++ b/dump/membership.html.docuwiki @@ -0,0 +1,190 @@ +FIRST, create your own free shell account via SSH at: [[http://sdf.org?signup|http://sdf.org/?signup]] + +Membership in SDF is comprised of the following three tiers: [[#users|USERS]], [[#arpa|ARPA]] and [[#meta|MetaARPA]]. + +[[#donate|Click here to join the membership, pay your dues or make a donation.]] + +==== 1. USERS: Basic Membership Level ==== + +=== USERS (free) === + + * mutt, pop3, imap, icq, twitter, bsflite (aim), local irc + * [[http://sdf.org/index.cgi?games|games]], mud, lynx, gopher, [[http://www.twenex.org/|TOPS-20]] + * http://yourlogin.sdf.org + * traceroute, ping, whois, dig and more//- after account validation -// + * inbound ssh, ftp and sftp connections + * elm, pine, alpine, mailx and rmail + * [[http://wm.sdf.org|webmail]] interface + * bash, ksh, tcsh, rc and zsh + * ed, ex, vi, pico, nano and emacs + * shell, awk and sed based CGI + * USENET access (read/post), ClariNET access + * [[http://www.sdf.org/index.cgi?software|hundreds of shell/network utilities]] + +=== INSTRUCTOR (free) === + +Allows staff, volunteer or adjunct at an accredited college or K-12 to self-manage a virtual UNIX classroom. A prospective instructor should provide SDF with details regarding their class (such as a syllabus or lesson plan). Students create their own accounts and are then validated by the instructor. The ATutor CMS is also available for classes. Further details are available in the [[http://www.sdf.org/index.cgi?faq|FAQ]]. + +=== STUDENT (free) === + +Allows an enrolled student at an accredited college or K-12 school to be validated by a qualifying 'INSTRUCTOR'. The account provides a student with 'USERS' benefits, as well as development tools of the 'ARPA' membership. The student can retain this access by joining the 'ARPA' membership or will be made 'USERS' after the semester. + +=== DIALUP ($7-$10/month) === + + * 16,000 numbers in the U.S. and Canada + * 1200 to 56000 bps analog + * 64000 to 128000 bps ISDN + * direct terminal login or PPP + * [[http://sdf.org/?dialup|dues month to month or discounted for prepayment]] + * project site: [[http://tenex.org|TENEX.ORG]] + +=== DSL ([[http://dsl.tenex.org/|request a quote]]) === + + * PPoE from 128kbps to 7000kbps + * DSLAM statistical information + * static IP addresses available + * no setup fee, no commitment + * outgoing SSL SMTP access + * dialup access (for emergency use) + * DSL modem shipped to you for $25 + * project site: [[http://tenex.org|TENEX.ORG]] + +==== 2. ARPA: Patron Lifetime Membership Level ==== + +=== ARPA ($36 one-time) === + + * lifetime membership for only $36 + * all features of the 'users' account + * voting rights on system features and policies + * private 'arpa' member server + * outbound telnet, ssh, sftp, ftp, ytalk, irc, snarf, wget + * Basic VoIP access (internet only, no PSTN access) + * gcc, elisp, perl, php, python, ruby + * Twitter (ttytter), SDF VoIP (non-PSTN), Voicemail and conferencing + * UUCP mail and USENET / ClariNET newsfeed via dialup or TCP + * 50 domains to choose from for your URL + * full CGI access for php, perl, python, ruby + +=== VOIP ($15 quarterly) === + + * Allows for calls into the global PSTN + * Flat unmetered service - no minutes, no overage + * Calls from the PSTN via SDF DID 1+206-299-2120 + * Personal (360) or (425) DID for an add'l $9/quarter + +=== DBA [MySQL database] ($30 annual) === + + * MySQL and sqlite database access + * php, perl, python, ruby accessible + * MySQL access on MetaArray with MetaARPA membership + +=== DNS [Domain Name Service] ($20 annual) === + + * domain name service (Dynamic DNS) + * primary or secondary DNS + * direct access to your DNS records + * served across multiple networks + +=== VPM [Mail Service] ($20 annual) === + + * allows for Virtual pop3 Mailboxes for your domain (or one of ours) + * manage your own alias and forwarding Addresses + * wildcard reception for your domain can be toggled + * [[http://www.greylisting.org/|greylisting]] can be toggled + * SMTP SSL AUTH outbound mail service + +=== VHOST [Website Hosting] ($5-$20/month) === + + * hosting for 'yourdomain' + subdomains + * letsencrypt SSL certificate automatically issued and renewed + * private access log with daily & monthly reports + * [[http://sdf1.org/vhosts/sdf-jp.org/|analog historical graphing & reporting]] + * includes DNS & VPM memberships + * DBA included in levels above basic + * REGIS included with annual dues + * [[http://sdf1.org/index.cgi?vhost|complete VHOST dues & features]] + +=== POINTER [Website Aliasing] ($30 annual) === + + * allows you to point to an additonal domain name to an existing VHOST membership domain + * DNS & VPM memberships are included + +=== MLIST [Mailing List] ($30 annual) === + + * 'majordomo' list up to 500 members + * mailing list archiving and digesting + * direct management of your list files + +=== REGIS [Domain Registration] ($15 annual) === + + * registration for your domain name + * most TLDs (Top Level Domains) available - including .com, .net, .org, .tv, .uk, .info, .cc etc. + * DNS membership included + * free to VHOST members with annual dues + +==== 3. MetaARPA: Sustaining Membership Level ==== + +=== MetaARPA ($9 quarterly) === + + * ARPA membership is required ([[http://sdf1.org/index.cgi?meta-waiver|waiver]]) + * Access to private MetaARPA and MetaArray servers + * SSL encryption on personal web site + * Umetered personal website transfer quota + * cron jobs managed via 'mkcron', screen, OpenLISP + * SBCL - A Modern Common Lisp implementation + * Proxying via bouncers like irssi, psybnc + * ssh tunnel/forwarding with alt port + * Access to svn, git, rsync and java + * May write [[http://sdf1.org/index.cgi?tutorials|tutorials]] and system [[http://sdf1.org/index.cgi?software|software]] + * Dynamic domain name service (mdns.org) + * MOTD source code contrib access + * MySQL database on the [[http://sdf.org/?tutorials/metaarray|MetaArray]] with DBA membership + * SMTP SSL Auth for remote outgoing mail + * Google Reader alternative: tt-rss + * Ability to validate the account of any new user + * Access to SDF's [[https://nextcloud.com/|NextCloud]] instance. + * Access to SDF's [[https://git.sdf.org/|Gitea]] instance. + +=== VPN ($4 month) === + + * SDF Virtual Private Network + * Encrypted OpenVPN or PPTP service + * Static IP assignment in 192.94.73.0 (US) and 178.63.35.0 (EU) + * Routing origin from both the US and EU + * External read/post access to the USENET server + * External SSL SMTP server access + * Flat rate, unmetered service + +=== VPS ($7-$28 month or $60-$224 annual) === + + * SDF Virtual Private Server + * static IP assignment in 192.94.73.0 + * Centos 7, Debian 9, NetBSD 8, FreeBSD 11, OpenBSD 6 and Plan9 + * 5GB OS images are persistent and can be interchanged + * Additional disks available in 1GB, 3GB and 5GB increments + * Pre-build and communally managed pkgsrc for NetBSD + * [[http://sdf1.org/index.cgi?vps|complete VPS dues & features]] + +=== MOTD ($4-$8/month) === + + * a special blog/forum/gallery membership + * pre-installed phpbb, Movable Type and others + * MySQL database (DBA membership) + * project site: [[http://motd.org|MOTD.ORG]] + * [[http://sdf1.org/index.cgi?motd|complete MOTD dues & features]] + +==== Where to send donations & membership dues: ==== + +=== POSTAL ADDRESS === + +SDF Public Access UNIX System\\ Post Office Box 17355\\ Seattle, WA 98127\\ United States + +=== CREDIT CARD or PAYPAL payment of donations and dues === + + //Please be sure fill in the DESCRIPTION\\ with your LOGIN and MEMBERSHIP.// + +Acceptable funds: Cheques, Money Orders, USD, CDN, EURO, UK, AUS, YUAN and YEN. + +//Thank you for your support!// + +$Id: membership.html,v 1.61 2020/06/13 20:53:00 smj Exp $ \ No newline at end of file diff --git a/dump/membership_tier_distinctions.html.docuwiki b/dump/membership_tier_distinctions.html.docuwiki new file mode 100644 index 0000000..0c1970e --- /dev/null +++ b/dump/membership_tier_distinctions.html.docuwiki @@ -0,0 +1 @@ +$Id: membership_tier_distinctions.html,v 1.1 2017/03/19 07:04:34 peteyboy Exp peteyboy $ \ No newline at end of file diff --git a/dump/metaarray.html.docuwiki b/dump/metaarray.html.docuwiki new file mode 100644 index 0000000..eb4abc4 --- /dev/null +++ b/dump/metaarray.html.docuwiki @@ -0,0 +1,78 @@ +===== The MetaArray ===== + +The MetaArray is a group of multicore, multiraid, high performance nodes which provide computational and data storage/hosting services for MetaARPA members. The current disk quota for each user is 800 GB and will likely increase with time. + + * [[#aup|Acceptable Use Policy]] + * [[#starting|Getting Started]] + * [[#disks|Disk Layout]] + * [[#executables|Executables and Packages]] + * [[#services|Services and Features]] + * [[#personalwebsite|Personal Website Hosting]] + * [[#Nextcloud|SDF Nextcloud]] + * [[#sharex|Link SDF Nextcloud on ShareX]] + +=== Acceptable Use Policy === + +Users of the MetaArray must agree to abide by the [[http://sdf.org/?tutorials/metaarray_aup|MetaArray Acceptable Use Policy]] + +=== Getting Started === + +To enable your access to **ma.sdf.org**, run '//metaarray//' at the shell. This will first generate a random login password followed by a random database password sent via local e-mail if you have a DBA membership. To connect, use '//ssh ma.sdf.org//' (port 22 or 8080). Once you are connected, you can change your password with the 'passwd' command. If you ever forget your password, just run '//metaarray//' again from any of the regular nodes of the SDF cluster. + +=== Disk Layout === + +The MetaArray Logical Volume spans multiple Volume Groups across multiple Physical Volumes which are organized as multiple disk drives organized in multiple hardware RAID level 5 groups. To the user, this all appears to be under one contiguous file system: ///meta// + +The user directory structure is as follows: + + * /meta/initial/user (home directory, considered private) + * /meta/www/initial/user (web directory, considered public served via http) + * /meta/log (person website access log) + * /meta/mail/user (user's mailbox - see the [[http://sdf.org/?tutorials/maildir|Maildir tutorial]]) + +=== Executables and Packages === + +Packages on the MetaArray are managed with **pkgsrc** and **yum**. Nearly any program or package can be installed by making a request on the regular nodes of the SDF cluster via the '//bboard//' REQUESTS. + +The package directory structure is as follows: + + * /bin, /usr/bin (yum repo destination directories) + * /usr/pkg/bin (pkgsrc destination directories) + * /usr/local/bin (MetaArray specific utilities) + +=== Services and features === + +The MetaArray includes all features of the MetaARPA membership. However, some SDF specific utilities may not be available on the MetaArray because it is designed to be isolated from the SDF cluster. Some MetaArray specific services must be manually configured by the user. + + * screen, tmux Terminal managers + * mkcron Use '//crontab -e//' to edit your crontab + * mkhomepg Use '//mkhomepg -t//' on the SDF Cluster to toggle website hosting + 'mkhomepg' on the MetaArray will set secure perms for /meta/www + * setvmail Put '**$LOGNAME@ma.sdf.org**' in your .forward on the SDF Cluster + Your default email address is **$LOGNAME@SDF.ORG** + * webmail Be sure to forward your mail, login via https://ma.sdf.org + * IMAP imap(143) and imaps(993) address is ma.sdf.org + * X11 Connect with either ssh -X or ssh -Y to ma.sdf.org + * Port forwarding (via SSH) + * startsql MySQL database (with DBA membership) + +=== Personal Website Hosting === + +To host your personal website on the MetaArray, please do the following: + + * run 'mkhomepg' on the MetaArray. This creates the $HOME/html symlink and sets initial permissions. + * upload your site to $HOME/html on the MetaArray. + * run 'mkhomepg' again on the MetaArray. This sets proper permissions on your content. + * run 'mkhomepg -t' on the SDF cluster to toggle your site to the MetaArray It may take up to 10 minutes for DNS to update locally; however your ISP DNS server may cache this data for up to 12 hours so you won't see the change immediately. Use the "host" command on the cluster to see if DNS has changed, and "lynx" on the cluster to verify that the site loads: then be patient as DNS changes propagate.* The DOCROOT for your directory defaults to no-read access, so you must have an index.html. Directory listings will work on subdirs within the DOCROOT. You can defeat this by running 'chmod g+r $HOME/html'* https through a self signed certificate is only available to personal URLs under *.sdf.org=== SDF Nextcloud ===SDF makes available an [[https://nextcloud.com/|Nextcloud]] instance at https://ma.sdf.org/nc/. To initialize your login, run the //metaarray// command on the cluster and check for instructions via e-mail.In order to connect to your instance from a client, the server should be set to **https://ma.sdf.org/nc/**. (the client will probably complain for the *.sdf.org SSL certificate, but that's fine)=== Using SDF Nextcloud on ShareX ===If you'd like to use SDF's Nextcloud as a destination for ShareX then follow the steps below:note: This tutorial was written for 10.1 + * Configure ShareX Destination for SDF Nextcloud + * Open the ShareX application window + * Click on Destinations + * Click on Destination Settings + * Select on the left pane, Nextcloud (under File uploaders) + * Enter: + * Host: https://ma.sdf.org/nc + * Username: your sdf_nc login + * Password: your sdf_nc password + * Path: /foo Place a check next to: + * Create shareable URL (Optional) + * Ignore invalid SSL certificate (Required) Close the settings windowSelect from the menu Image Uploader - File Uploader - Nextcloud$Id: metaarray.html,v 1.38 2018/08/15 02:09:33 echosa Exp $ \ No newline at end of file diff --git a/dump/metaarray_aup.html.docuwiki b/dump/metaarray_aup.html.docuwiki new file mode 100644 index 0000000..9e7207b --- /dev/null +++ b/dump/metaarray_aup.html.docuwiki @@ -0,0 +1,24 @@ +===== MetaArray Acceptable Use Policy ===== + +//This AUP is supplemental to the general SDF AUP// + +=== Overview === + +The purpose of the MetaArray is to allow SDF MetaARPA members to store and serve large amounts of data on a reliable, high capacity remote network resource. + +=== Disclaimer === + +While the MetaArray has layers of redundancy and an eventual mirror, users are encouraged to maintain their own back ups outside of the array. If a user cancels their membership or does not renew within two (2) months of their membership expiration, all data associated with that user will be removed from the MetaArray. SDF strives for high availability and safe guards against catastrophic hardware failure, //but cannot guarantee the persistence or integrity of the data on the MetaArray//. + +=== Privacy === + +Ownership of the data stored on the MetaArray is considered to be the property of the respective user. Since this is a shared resource, users are encouraged to use archive encryption, SSL and other secure means of storing and accessing their data. + +=== Acceptable Use === + +Users of the MetaArray are expected to abide by the general SDF AUP. While user data stored on the array is that of the respective user, certain types of data cannot be stored on the MetaArray. + +This pertains to: + + * Data which is copyrighted or proprietary in nature that of which the user holds no license to store, copy or distribute + * Data which is of an illegal nature SDF cannot be held responsible for the storage and distribution of such data.$Id: metaarray_aup.html,v 1.3 2013/03/25 16:04:57 smj Exp $ \ No newline at end of file diff --git a/dump/mobile.html.docuwiki b/dump/mobile.html.docuwiki new file mode 100644 index 0000000..0d211d1 --- /dev/null +++ b/dump/mobile.html.docuwiki @@ -0,0 +1,75 @@ +====== Mobile Applications on SDF ====== + + There are a variety of mobile apps that work well in conjunction with SDF and can enhance your experience here. We will highlight open source/free software for the most part, only adding 'pay' software on request or when there is no other useful alternative. + +===== Multi-Platform ===== + +Linphone - Open source VOIP/SIP client + + * [[http://www.xabber.com/|Homepage]] + * [[https://play.google.com/store/apps/details?id=com.xabber.android|Google Play Store]] + * [[https://itunes.apple.com/us/app/linphone/id360065638?mt=8|Apple App Store]] + * Tutorial + +===== Android ===== + +JuiceSSH - SSH Client + + * [[https://sonelli.com/|Homepage]] + * [[https://play.google.com/store/apps/details?id=com.sonelli.juicessh|Google Play Store]] + * Tutorial + +Connectbot - Open source SSH/telnet client + + * [[https://connectbot.org/|Homepage]] + * [[https://play.google.com/store/apps/details?id=org.connectbot&hl=en|Google Play Store]] + * Tutorial + +K-9 Mail - Open source email client for advanced users + + * [[https://github.com/k9mail/k-9/|Homepage]] + * [[https://play.google.com/store/apps/details?id=com.fsck.k9&hl=en|Google Play Store]] + * Tutorial + +Xabber - Free Jabber/XMPP client + + * [[http://www.xabber.com/|Homepage]] + * [[https://play.google.com/store/apps/details?id=com.xabber.android|Google Play Store]] + * Tutorial + +Overbite - Open source Gopher browser + + * [[http://gopher.floodgap.com/overbite/d?android|Homepage]] + * Google Play Store + * Tutorial + +Tusky - Open source Mastodon client + + * [[https://tusky.app|Homepage]] + * [[https://play.google.com/store/apps/details?id=com.keylesspalace.tusky|Google Play Store]] + * Tutorial + +===== Blackberry ===== + +BBSSH - Free, open source SSH/telnet client + + * [[https://bbssh.org/|Homepage]] + * Tutorial + +===== Apple iOS ===== + +Monal - Free, open source Jabber/XMPP client + + * [[https://monal.im/|Homepage]] + * [[https://apps.apple.com/us/app/monal-free-xmpp-chat/id317711500|Apple App Store]] + * Tutorial + +Amaroq - Free, open source Mastodon client + + * [[https://github.com/ReticentJohn/Amaroq|Homepage]] + * [[https://apps.apple.com/us/app/amaroq-for-mastodon/id1214116200|Apple App Store]] + * Tutorial + +---- + +$Id: mobile.html,v 1.15 2019/12/02 16:53:28 thegiant Exp $ \ No newline at end of file diff --git a/dump/msn.html.docuwiki b/dump/msn.html.docuwiki new file mode 100644 index 0000000..acf4c9b --- /dev/null +++ b/dump/msn.html.docuwiki @@ -0,0 +1,26 @@ +====== Connecting to MSN Instant Messaging Network from SDF ====== + +You can connect to MSN network using one of the varoius clients avilable in SDF... + +===== centerim ===== + +[[http://www.centerim.org/index.php/Main_Page|centerim]], also known as cim is a fork of CenterICQ. + + - Run **centerim** from the shell. + - The first time you will be greted with the configuration screen you can use your left arrow to **select Done** and press Enter + - With down arrow key move until msn's protocol **Login** option is selected and press Enter + - Fill in your msn **username** (i.e.: user@hotmail.com) and press Enter + - Select **Password** field and press Enter to fill in your password. + - With arrow keys select **Done** and press Enter + +CenterIM will try to connect to the MSN nework, you can select your contacts using the arrow keys and press the Enter key to start a chat window. **CTRL+x** sends the message. + +===== finch ===== + + * Press **ALT + a** and select **Accounts**. + * Select **Add** to open the **New Account** dialog box. + * Choose **MSN** from the Protocol select box. + * Fill the **Username** and **Password** fields. + * Using the **TAB** move to **Accept** and press **Enter** key. + +After this, Finch will try to connect to MSN network. \ No newline at end of file diff --git a/dump/multiuser-responsibility.html.docuwiki b/dump/multiuser-responsibility.html.docuwiki new file mode 100644 index 0000000..0501875 --- /dev/null +++ b/dump/multiuser-responsibility.html.docuwiki @@ -0,0 +1,39 @@ +====== Personal Responsibility on SDF's Multi-User Environment ====== + +As SDF's mission is to support the advancement of public education, cultural enrichment, scientific research and recreation, you are //encouraged// to be creative and bold in your use of the numerous resources available with your membership level. While you are getting to work on projects, just please keep an eye on your resource usage so that you do not adversely impact the enjoyment of this system by others. Bugs in your code or other errors can devour the CPU from time to time, and mistakes like these are part of the learning process, but conscious overuse of system resources will likely get your processes killed and, possibly, your account locked. Luckily you have your fellow users to alert you if you're accidentally exceeding a fair share of system resources. + +The 'top' command is a great tool if you want to see what is causing system sluggishness, or if you just want to monitor your own system resource usage. A quick web search for "unix process monitoring tools" will give you a host of other tools as well. + +If you observe system use that is bringing the system to its knees, please reach out to the user to let them know. Email is an obvious way to contact them, or try checking their SDF web or gopher site for other contact information. If that fails, make a post on [[http://sdf.org/?tutorials/bboard-tutorial|bboard]] describing the problem and others may be able to help. + +Beyond simply monitoring your resource usage, you can set limits that will prevent a misfiring program from consuming excessive resources. This is especially important for MetaARPA members who have higher limits on system resource usage. + +Most shells have a **ulimit** command which can be used to view or set limits. See "man 3 ulimit" or (in some shells) "ulimit --help". This shell command calls the C runtime library's ulimit() call which itself calls into the Unix system calls for getrlimit() and setrlimit(). + +"ulimit -a" will display all of your current limits: + + user@fnord.sdf.org $ ulimit -a + core file size (blocks, -c) 0 + data seg size (kbytes, -d) unlimited + scheduling priority (-e) 0 + file size (blocks, -f) unlimited + pending signals (-i) 80133 + max locked memory (kbytes, -l) 65536 + max memory size (kbytes, -m) unlimited + open files (-n) 1024 + pipe size (512 bytes, -p) 8 + POSIX message queues (bytes, -q) 819200 + real-time priority (-r) 0 + stack size (kbytes, -s) 8192 + cpu time (seconds, -t) unlimited + max user processes (-u) 80133 + virtual memory (kbytes, -v) unlimited + file locks (-x) unlimited + +You can see from this display that the user has unlimited cpu time. To add a 1000 second limit to cpu time, issue the following command: + +"ulimit -t 1000" + +Note that, once set, you cannot increase the limit without killing the limited process and starting a new one. If you run this command directly from the shell, you will need to log out of the shell and back in again to reset it. + +$Id: multiuser-responsibility.html,v 1.5 2020/02/28 02:10:14 cmccabe Exp $ \ No newline at end of file diff --git a/dump/mutt.html.docuwiki b/dump/mutt.html.docuwiki new file mode 100644 index 0000000..d3d7b9a --- /dev/null +++ b/dump/mutt.html.docuwiki @@ -0,0 +1,29 @@ +====== The Mutt Mail User Agent ====== + +Mutt is a UNIX mail user agent (aka mail client) that is available to all SDF users. + +This is a brief tutorial on reading and sending mail with mutt. It does not cover some useful features, such as folders. + +On SDF, it is already configured for sending and receiving mail with your SDF account. + +To launch mutt, type mutt at the command line. + +===== Reading mail ===== + +When you launch mutt without any options, you will see a list of messages in your inbox. + +You can select a message by moving between them using 'j' and 'k', as in vi, or the arrow keys, or jumping to a message by entering its index number, as seen in the leftmost column, and pressing the return key. + +To read a message, select it and press the return key. Press the space bar to see the next page of the message or '-' to see the previous page. To return to the previous screen, press 'i'. + +You can perform a number of actions on the selected message, or the message you are currently reading. To reply to the message, press 'r'. (See the section below on sending mail.) To delete the message, press 'd'. The message will be marked for deletion, and mutt will ask if you want to purge deleted messages when you leave the folder it is in. If the message has attachments, you can view a list of them by pressing 'v', and save them by pressing 's'. + +===== Sending mail ===== + +To send a message, you may press 'm' from within mutt to begin a new message or 'r' to reply to the selected message or the message you are reading. You will then be prompted for a recipient, followed by a subject. Mutt will then launch your $EDITOR, where you can write your message. When you are done, write the message out to the file (mutt will have provided a temporary filename) and quit your editor. Mutt will then take you to the Compose screen, where you can change the subject, recipients, etc. if desired. If you want to re-edit part of your message, select it, and press 'e'. You can add an attachment by pressing 'a'. When you are ready to send your message, press 'y'. You will be returned to the previous screen and will see a notification "Mail sent." + +===== Getting help ===== + +At the top of your terminal, mutt will show you a selection of common keybindings that you can use at the moment, with brief descriptions. To see a longer list of keybindings, with less brief descriptions, press '?'. To read the mutt manual, press the F1 key from within mutt, or view the file /usr/pkg/share/doc/mutt/manual.txt. You can also consult the mutt man page for information on command line options, environment variables, etc. + +$Id: mutt.html,v 1.3 2017/03/20 21:19:45 jandal Exp $ \ No newline at end of file diff --git a/dump/mv.html.docuwiki b/dump/mv.html.docuwiki new file mode 100644 index 0000000..8b95f96 --- /dev/null +++ b/dump/mv.html.docuwiki @@ -0,0 +1,21 @@ + 11/3/70 + MV (I) + + NAME mv -- move or rename a file + + SYNOPSIS mv name1 name2 + + DESCRIPTION mv changes the name of name with the rename + system call. + + FILES + + SEE ALSO + + DIAGNOSTICS "twofiles" - please provide two filenames + "? file" - either unable to remove or cre- + ate a file + + BUGS The second diagnostic is ambiguous. + + OWNER wkt \ No newline at end of file diff --git a/dump/net.html.docuwiki b/dump/net.html.docuwiki new file mode 100644 index 0000000..5ce1d00 --- /dev/null +++ b/dump/net.html.docuwiki @@ -0,0 +1,69 @@ +====== [[index.html|SDF ARC]] ====== + +===== SDF.ORG's Amateur Radio Club ===== + + * [[index.html|Home]] + * [[roster.html|Roster]] + * [[net.html|NET]] + * [[repeaters.html|Repeaters]] + * [[contact.html|Contact Us]] + +==== EchoLink Net ==== + +SDFARC meets on ECHOLINK CONFERENCE *TECHLINK* (NODE 9229) EVERY MONDAY at 0000 UTC. When able, the net is also carried on DMR Brandmeister TG 31650 and Allstar Node 50110. + + This is a directed social NET where a minimal checkin requires your **call sign**, **userid** and **location**. Points and a ranking are awarded at end of each NET and are published here on sdfarc.org. + + * Stations with 10 consecutive weekly check ins are called in order of their ranking + * Stations using ECHOLINK are awarded 1 pt per check in + * Stations using ECHOLINK+RF are awarded 3 pts + * Stations that do not check in for 6 consecutive weeks get dropped from the call roster and lose accumulated points. \\ You can listen to the NETs in real time on [[http://anonradio.net|aNONradio.net]]. (//SDF's Streaming Audio Service//) Archives of these NETs are also available on [[http://anonradio.net|aNONradio.net]]==== Net Op Schedule ==== + ^ Date ^ Net Controller ^ *TECHLINK* Controller ^ + | Monday, 11-May-2020, 00:00 UTC | Michael (VE7KI) | Matthew (NB0X) | + | Monday, 18-May-2020, 00:00 UTC | Michael (VE7KI) | Matthew (NB0X) | + | Monday, 25-May-2020, 00:00 UTC | Matthew (NB0X) | Wayne (AB9FJ) | + | Monday, 01-Jun-2020, 00:00 UTC | Matthew (NB0X) | Wayne (AB9FJ) | + | Monday, 08-Jun-2020, 00:00 UTC | Wayne (AB9FJ) | Michael (VE7KI) | + | Monday, 15-Jun-2020, 00:00 UTC | Wayne (AB9FJ) | Michael (VE7KI) | + | Monday, 22-Jun-2020, 00:00 UTC | Michael (VE7KI) | Matthew (NB0X) | + | Monday, 29-Jun-2020, 00:00 UTC | Michael (VE7KI) | Matthew (NB0X) | + | Monday, 06-Jul-2020, 00:00 UTC | Matthew (NB0X) | Wayne (AB9FJ) | + | Monday, 13-Jul-2020, 00:00 UTC | Matthew (NB0X) | Wayne (AB9FJ) | + | Monday, 20-Jul-2020, 00:00 UTC | Wayne (AB9FJ) | Michael (VE7KI) | + | Monday, 27-Jul-2020, 00:00 UTC | Wayne (AB9FJ) | Michael (VE7KI) |==== PREAMBLE ==== + Hello and Welcome! + This is the SDF Amateur Radio Club weekly net. That's Sierra Delta + Foxtrot, the Super Dimension Fortress. If you are not familiar with + SDF, it's a Public Access Unix System. You can learn more by + directing your web browser to s-d-f dot o-r-g or s-d-f-a-r-c dot + o-r-g. I will pause now to allow for any emergency or priority + traffic. + [pause ~10 seconds] + I am [CALL], the Net Control Operator today; my name is [NAME], and I + am in [QTH]. My SDF username is [USER]. + This net meets every Monday at Zero hour Zulu via Echolink Node 9229, + the *TECHLINK* Conference. I would like to thank Michael, VE7KI, for + allowing us to use this conference. + This is a directed net. That means that if you have something to say, + give your call, and wait for the NC to acknowledge you and give you + the floor. Our net is open to all radio amateurs and is not + restricted to members of the SDF Amateur Radio Club. + We like to have a question of the week to kickstart our discussions. + This week's question is: [question] + I will take several rounds of checkins. I will then go down the list + and everyone will have a chance to greet and make a comment or ask a + question. + If you would like to check in, please come with your callsign, name, + location, and your SDF username (if you have one). + [call for checkins] + OK, let's go back now and hear from everybody. + [call roll and take comments] + Do we have any new checkins or additional comments? + [repeat as necessary, until no more...] + This concludes this week's SDF Amateur Radio Club NET at NNNN hours + Zulu. If you would like to continue the conversation, please join our + afternet in the SDF DMR talkgroup (number 31650) or join us in com on + the SDF. + This is net control station [CALL], out. + + Copyright © black_white | [[http://validator.w3.org/check?uri=referer|HTML5]] | [[http://jigsaw.w3.org/css-validator/check/referer|CSS]] | [[http://www.html5webtemplates.co.uk|Free CSS Templates]]$Id: net.html,v 1.37 2020/05/04 00:28:51 nonlinear Exp $ \ No newline at end of file diff --git a/dump/node1.html.docuwiki b/dump/node1.html.docuwiki new file mode 100644 index 0000000..85e07f6 --- /dev/null +++ b/dump/node1.html.docuwiki @@ -0,0 +1,55 @@ +[[node2.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[unx.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node2.html|1. To Do]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[unx.html|Introduction to Unix &]]\\ \\ \\ + +===== [[| Contents]] ===== + + * [[node2.html|1. To Do]] + * [[node3.html|2. Introduction]] + * [[node3.html#SECTION00310000000000000000|2.1 What to read first]]\\ + * [[node4.html|3. What is Unix?]] + * [[node4.html#SECTION00410000000000000000|3.1 Short Answer]] + * [[node4.html#SECTION00420000000000000000|3.2 Long Answer]] + * [[node4.html#SECTION00421000000000000000|3.2.1 My Opinion]] + * [[node4.html#SECTION00422000000000000000|3.2.2 Another Opinion]]\\ + * [[node5.html|4. Some Basic Commands]] + * [[node5.html#SECTION00510000000000000000|4.1 The Command Line Shell]] + * [[node5.html#SECTION00520000000000000000|4.2 Listing Files]] + * [[node5.html#SECTION00530000000000000000|4.3 Moving Around the File System]] + * [[node5.html#SECTION00540000000000000000|4.4 The VI Cursor Commands]] + * [[node5.html#SECTION00550000000000000000|4.5 E-mail]] + * [[node5.html#SECTION00551000000000000000|4.5.1 mutt]] + * [[node5.html#SECTION00552000000000000000|4.5.2 Graphical E-mail Readers]] + * [[node5.html#SECTION00553000000000000000|4.5.3 My Own E-mail]] + * [[node5.html#SECTION00560000000000000000|4.6 Viewing Files]] + * [[node5.html#SECTION00570000000000000000|4.7 Surf the Web]] + * [[node5.html#SECTION00580000000000000000|4.8 Upload & Download]] + * [[node5.html#SECTION00581000000000000000|4.8.1 FTP]] + * [[node5.html#SECTION00582000000000000000|4.8.2 scp]] + * [[node5.html#SECTION00583000000000000000|4.8.3 rcp]] + * [[node5.html#SECTION00584000000000000000|4.8.4 When FTP Doesn't Work]] + * [[node5.html#SECTION00590000000000000000|4.9 Editing Files]]\\ + * [[node6.html|5. Learning More]] + * [[node6.html#SECTION00610000000000000000|5.1 The Man]] + * [[node6.html#SECTION00611000000000000000|5.1.1 The man is for real]] + * [[node6.html#SECTION00620000000000000000|5.2 Gnu info]] + * [[node6.html#SECTION00630000000000000000|5.3 Books]] + * [[node6.html#SECTION00640000000000000000|5.4 Folklore]]\\ + * [[node7.html|6. Super Dimension Fortress]] + * [[node7.html#SECTION00710000000000000000|6.1 Getting Information on SDF]] + * [[node7.html#SECTION00720000000000000000|6.2 COM Mode]] + * [[node7.html#SECTION00721000000000000000|6.2.1 COM Commands Discussion]] + * [[node7.html#SECTION00722000000000000000|6.2.2 COM Session Example]] + * [[node7.html#SECTION00723000000000000000|6.2.3 What to Do if You Are Caught in the Newbie Loop]] + * [[node7.html#SECTION00724000000000000000|6.2.4 COM History]] + * [[node7.html#SECTION00730000000000000000|6.3 Bulletin Board]]\\ + * [[node8.html|7. Programming]] + * [[node8.html#SECTION00810000000000000000|7.1 Language]] + * [[node8.html#SECTION00820000000000000000|7.2 Languages on SDF]] + * [[node8.html#SECTION00830000000000000000|7.3 Theory]]\\ + * [[node9.html|8. Hacking]] + * [[node10.html|9. Meta]] + * [[node11.html|Bibliography]] + +\\ + +---- + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node10.html.docuwiki b/dump/node10.html.docuwiki new file mode 100644 index 0000000..6153102 --- /dev/null +++ b/dump/node10.html.docuwiki @@ -0,0 +1,16 @@ +[[node11.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node9.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node11.html|Bibliography]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node9.html|8. Hacking]]   ** [[node1.html|Contents]]**\\ \\ + +====== [[| 9. Meta]] ====== + +This document is available online in several formats: + + * HTML is at "http://lisp-p.org/unx/". + * PostScript is "http://lisp-p.org/unx/unx.ps". + * DVI is "http://lisp-p.org/unx/unx.dvi". + +There are no plans to make it available in Pointless Document Format (PDF). + +\\ + +---- + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node11.html.docuwiki b/dump/node11.html.docuwiki new file mode 100644 index 0000000..1901997 --- /dev/null +++ b/dump/node11.html.docuwiki @@ -0,0 +1,14 @@ +{{../img/latex2html/next_g.png?37x24|next}} [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node10.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node10.html|9. Meta]]   ** [[node1.html|Contents]]**\\ \\ + +===== [[| Bibliography]] ===== + +[[|aDMR88]] Brian W. Kernighan - Dennis M. Ritchie. \\ //The C Programming Language//. \\ Prentice Hall, 2nd edition, 1988. \\ ISBN 0-13-110362-8. + +[[|Hob77]] Hobbit. \\ Cifs: Common insecurities fail scrutiny. \\ January 1977. \\ http://www.ussrback.com/docs/cifs.txt or http://www.undergroundnews.com/files/texts/underground/hacking/cifs.html. + +[[|Pla92]] P. J. Plauger. \\ //The Standard C Library//. \\ Prentice Hall, 1992. \\ ISBN 0-13-131509-9. + +\\ + +---- + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node2.html.docuwiki b/dump/node2.html.docuwiki new file mode 100644 index 0000000..6cb445a --- /dev/null +++ b/dump/node2.html.docuwiki @@ -0,0 +1,20 @@ +[[node3.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node1.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node3.html|2. Introduction]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node1.html|Contents]]   ** [[node1.html|Contents]]**\\ \\ + +====== [[| 1. To Do]] ====== + +How to make a web site on SDF. Probably mention the "mkhomepg" (or whatever it's called) command & give pointers to other articles about HTML & CGI. + +Mention Tweak membership on SDF. + +Mention some games. + +Better discussion of membership levels on SDF. This is a toughie to do because this is mostly an introduction to unix, with only some SDF-specific goodies, not a full SDF policy document. Maybe it would be suitable to mention that any unix system might allow only certain users to run certain programs, & I could give brief details of SDF's membership levels. This was requested or suggested by at least two people on //bboard// / GENERAL, so it's not a frivolous request. Hmmm... + +Discuss Zmodem (//rz//, //sz//). + +Put it in gopher space. + +\\ + +---- + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node3.html.docuwiki b/dump/node3.html.docuwiki new file mode 100644 index 0000000..56567bb --- /dev/null +++ b/dump/node3.html.docuwiki @@ -0,0 +1,23 @@ +[[node4.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node2.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node4.html|3. What is Unix?]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node2.html|1. To Do]]   ** [[node1.html|Contents]]**\\ \\ [[|**Subsections**]] + + * [[#SECTION00310000000000000000|2.1 What to read first]] + +---- + +====== [[| 2. Introduction]] ====== + +This is for people who are new to unix, especially people who are new to unix & new to [[http://sdf.lonestar.org/|Super Dimension Fortress]] (SDF), a public access unix system. + +I sometimes hang out in the chat rooms on SDF, & almost every day someone enters who has recently created an account & asks how to get started using unix & the features of SDF. It's an awkward situation because there is a lot to know to get started with unix; it would be difficult to explain it all in a chat room. What's more, most of the regulars in those chat rooms have seen & answered the question enough times that they understandably do not look forward to doing so again. + +So I'm answering that question here, once. If all goes well, when someone enters a chat room & asks how to start learning about unix, someone can point them to this article. + +====== [[| 2.1 What to read first]] ====== + +If you already know what unix is, or if you don't but you also don't enjoy reading about petty controversies about a definition, skip the ``What is Unix'' chapter & start reading Chapter [[node5.html#basics|4]] ``Some Basic Commands''. + +---- + +[[node4.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node2.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node4.html|3. What is Unix?]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node2.html|1. To Do]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node4.html.docuwiki b/dump/node4.html.docuwiki new file mode 100644 index 0000000..d75a342 --- /dev/null +++ b/dump/node4.html.docuwiki @@ -0,0 +1,46 @@ +[[node5.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node3.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node5.html|4. Some Basic Commands]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node3.html|2. Introduction]]   ** [[node1.html|Contents]]**\\ \\ [[|**Subsections**]] + + * [[#SECTION00410000000000000000|3.1 Short Answer]] + * [[#SECTION00420000000000000000|3.2 Long Answer]] + * [[#SECTION00421000000000000000|3.2.1 My Opinion]] + * [[#SECTION00422000000000000000|3.2.2 Another Opinion]] + +---- + +====== \\ 3. What is Unix? ====== + +What is unix? That's a loaded question. + +====== [[| 3.1 Short Answer]] ====== + +The short answer is ``Unix is an operating system''. So is Gnu/Linux, which is often just called Linux. So are HP/UX, AIX, NeXT STEP (now called Apple Macintosh OS 10), & Microthought Winders (often called many uncomplimentary things). + +If this short answer is enough for you, congratulations on knowing the value of keeping things simple. Now skip ahead to Chapter [[node5.html#basics|4]] ``Some Basic Commands''. + +====== [[| 3.2 Long Answer]] ====== + +The long answer is ``It depends on who you ask''. + +===== [[| 3.2.1 My Opinion]] ===== + +In my opinion, unix is a description of the function of an operating system. I even say that unix is an Application Programmer's Interface (API). Any operating system which implements the unix API is a unix; it's an implementation of unix. Gnu/Linux is a unix.[[footnode.html#foot51|3.1]] Gnu/Linux is often called Linux, but strictly speaking, Linux is a unix kernel, but not a whole unix operating system. There are many other implementations of unix. I can name original BSD, OpenBSD, FreeBSD, NetBSD, HP/UX, AIX, Minix, Apple Macintosh OS 10, NeXT STEP, QNX, & Lynx. There are probably others. + +Now for some legal bullshit. ``UNIX'' is a trademark of [[http://www.opengroup.org/|The Open Group]]. From what I can infer from their web site about their opinions of what unix is, they would agree with me that it's a description of the function of a family of operating systems, but they would also add ``that we have certified to be UNIX''. So legally, it's not a UNIX unless The Open Group certifies it as a UNIX. So a lot of those operating systems I listed as unices are not UNIXes. It's a thoroughly sad case of legalities getting in the way of simplicity & sanity. + +Anyway, I say that if an operating system behaves like unix, then it's a unix, though not necessarily a UNIX{{img1.png?31x18|$^{(tm)}$}}. + +===== [[| 3.2.2 Another Opinion]] ===== + +Another opinion, which I don't share, is that Unix is a particular product. HP/UX is another. AIX is another. Gnu/Linux is another. You get the idea. + +Fine, except that there is no product simply called ``Unix'' for sale today. You can't even point at a product that is the direct descendant of the original Unix that Ritchie & Thompson wrote at AT&T. Their Unix was //the// definitive Unix, the original, the one named Unix. You can't buy it today, methinks. And many of those that you can obtain today shared code with the original Unix. BSD is Unix as modified by students at the University of California in Berkeley. That's where sockets were invented. BSD branched into many implementations, several of which are alive & well today. Theoretically, each of those implementations has at least some of the original Unix code in them. Yet somehow BSD isn't a unix? Get real. I'm sure there are similar examples of cross-pollination between the other unix operating systems available today. + +Another problem with the claim that BSD, Gnu/Linux, & the others are not unix is that it takes little effort to write a program that runs on all of them. There are enough differences that a non-trivial program requires a little care to be portable, but it's not like portability concerns affect the architecture of your program. All in all, it is easy to port code between HP/UX, AIX, Gnu/Linux, & the BSDs. This isn't an accident. Those products are implementations of a single idea of what an operating system should be. That idea needs a name so that when you ask me what kind of operating system I program for a living, I don't have to reply with ``I'm an HP/UX, Gnu/Linux, AIX, FreeBSD, NetBSD, OpenBSD, QNX, & others programmer''. I say the name for that concept is ``unix''. If not, then it's POSIX, but POSIX is also a trademarked term with a certification schedule from The Open Group (together with IEEE). + +So somewhat out of contempt for our legal system's petty concerns for terminology, I say it's all ``unix''. There you have it, in more detail & controversy than anyone with a sense of perspective would ever want. + +---- + +[[node5.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node3.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node5.html|4. Some Basic Commands]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node3.html|2. Introduction]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node5.html.docuwiki b/dump/node5.html.docuwiki new file mode 100644 index 0000000..31ea45f --- /dev/null +++ b/dump/node5.html.docuwiki @@ -0,0 +1,234 @@ +[[node6.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node4.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node6.html|5. Learning More]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node4.html|3. What is Unix?]]   ** [[node1.html|Contents]]**\\ \\ [[|**Subsections**]] + + * [[#SECTION00510000000000000000|4.1 The Command Line Shell]] + * [[#SECTION00520000000000000000|4.2 Listing Files]] + * [[#SECTION00530000000000000000|4.3 Moving Around the File System]] + * [[#SECTION00540000000000000000|4.4 The VI Cursor Commands]] + * [[#SECTION00550000000000000000|4.5 E-mail]] + * [[#SECTION00551000000000000000|4.5.1 mutt]] + * [[#SECTION00552000000000000000|4.5.2 Graphical E-mail Readers]] + * [[#SECTION00553000000000000000|4.5.3 My Own E-mail]]\\ + * [[#SECTION00560000000000000000|4.6 Viewing Files]] + * [[#SECTION00570000000000000000|4.7 Surf the Web]] + * [[#SECTION00580000000000000000|4.8 Upload & Download]] + * [[#SECTION00581000000000000000|4.8.1 FTP]] + * [[#SECTION00582000000000000000|4.8.2 scp]] + * [[#SECTION00583000000000000000|4.8.3 rcp]] + * [[#SECTION00584000000000000000|4.8.4 When FTP Doesn't Work]]\\ + * [[#SECTION00590000000000000000|4.9 Editing Files]] + +---- + +====== \\ 4. Some Basic Commands ====== + +====== [[| 4.1 The Command Line Shell]] ====== + +When you login to a unix system, you'll be on a command line. It'll have a prompt like ``"$"'' or ``"bash-2.04$ "'' or maybe ``"%"''. There are other variations. + +The command line is how you communicate with the //shell//. The shell is a program that reads commands from a command line & runs other programs. It does some other things, but they are mostly details. The main point of a shell is to run programs. + +The traditional, original shell on unix is called the Bourne shell. If you're wondering why it's called the Bourne shell, ask yourself who might have written it. + +The Bourne shell program is named "/bin/sh", but that program on most modern unices is actually a pointer to the Korn shell or the Born Again shell. Those two shells are more modern than the Bourne shell, but they are backward compatible with it. + +There are other shells, including C shell ("/bin/csh") & the restricted shell. You can change your shell on many unices with the "chsh" command. Since a shell is just a program, no magic behind it, you can use damned near any program you want as your shell. You could use Perl as your shell, I've used clisp as a shell (just for an experiment), or you could write your own shell. + +The important thing about a shell is that most of the things you type to it are interpreted as requests to run a program. If you type ``"ls"'', you're asking your shell to run a program called //ls//. If you type ``"bogie -k lap -f lap woo woo -d hickie"'', you're asking it to run a program called //bogie// with all that other crap as //command line arguments//. + +Enough about shells for now. + +====== [[| 4.2 Listing Files]] ====== + +On unix, the //ls// program gives you lists of files. + +If you just type ``"ls"'', you'll get a list of the files in the current directory. Like this: + + bash-2.04$ ls + #unx.tex# RCS unx.aux unx.bbl unx.blg unx.log unx.tex unx.tex~ unx.toc + bash-2.04$ + +Notice that //ls//, when used in this plain way, doesn't show you files sizes or permissions or anything like that. Unix is traditionally tery terse. Programs show you only the information you requested, plus error messages. You don't have progress messages like ``2003-12-06T16:16 beginning to read files'' and ``2003-12-06T16:17 reading first file'' and other nonsense cluttering your screen. The programs just print what's important. + +If you want //ls// to print the details about the files, give it the ``"-l"'' option. That's a minus sign ("-") followed by a letter //el// ("l"). Like this: + + bash-2.04$ ls -l + total 52 + -rw-r----- 1 gene gene 9181 Dec 6 16:18 #unx.tex# + drwxrwx--- 2 gene gene 4096 Dec 6 14:03 RCS + -rw-rw---- 1 gene gene 1390 Dec 6 14:47 unx.aux + -rw-rw---- 1 gene gene 49 Dec 6 14:47 unx.bbl + -rw-rw---- 1 gene gene 878 Dec 6 14:47 unx.blg + -rw-rw---- 1 gene gene 4201 Dec 6 14:47 unx.log + -rw-r----- 1 gene gene 6387 Dec 6 14:47 unx.tex + -rw-rw---- 1 gene gene 1212 Dec 6 13:49 unx.tex~ + -rw-rw---- 1 gene gene 658 Dec 6 14:47 unx.toc + bash-2.04$ + +The first column, which has all those minus signs, //r//s, & //w//s, shows the [[http://www.dartmouth.edu/~rc/help/faq/permissions.html|file permissions]]. The next column is the number of links to the file.[[footnode.html#foot89|4.1]] The next column is the user who owns the file. The next is the group of the file. Then there's the number of bytes in the file. Then the date the file was modified. Then the file's name. + +Here's an exercise: Type ``"echo *"'' on the command line, like this: + + bash-2.04$ echo * + #unx.tex# RCS unx.aux unx.bbl unx.blg unx.log unx.tex unx.tex~ unx.toc + bash-2.04$ + +Now go figure out why or how //echo// differs from //ls//. + +====== [[| 4.3 Moving Around the File System]] ====== + +All unix systems have a file system whose root directory is "/". Your home directory is somewhere inside a directory in the file system. Maybe your home directory is "/home/you" or "/usr/hm0/you" or whatever. The details depend on the unix. To learn your home directory, type ``"echo $HOME"'', like this: + + bash-2.04$ echo $HOME + /home/gene + bash-2.04$ + +Unix has a notion of a //current working directory//. To see what your current working directory is, type ``"pwd"'', like this: + + bash-2.04$ pwd + /home/gene/library/website/docsrc/unx + bash-2.04$ + +To change your current working directory, use the //cd// command. Give it the name of the new directory you want. If you want to move to the current working directory's parent, use ``".."''. Here are some examples: + + bash-2.04$ pwd + /home/gene/library/website/docsrc/unx + bash-2.04$ cd .. # move to parent + bash-2.04$ pwd + /home/gene/library/website/docsrc + bash-2.04$ cd .. # move to parent again + bash-2.04$ pwd + /home/gene/library/website + bash-2.04$ cd share # move into the "share" directory + bash-2.04$ pwd + /home/gene/library/website/share + bash-2.04$ cd /tmp # move to this absolute directory + bash-2.04$ pwd + /tmp + bash-2.04$ + +====== [[| 4.4 The VI Cursor Commands]] ====== + +[[node5.html#editors|vi]] is an editor, but its cursor-movement commands are often used by other programs. Figure [[node5.html#fig-vi-commands|4.1]] shows //vi//'s cursor-movement commands. + +**Figure 4.1:** The cursor-movement commands from //vi// +| {{img2.png?242x99|\begin{figure}\begin{tabular}{\vert r\vert l\vert} \hline {\bf command} & {\bf a... ...ve cursor up \\ \hline l & move cursor right \\ \hline \end{tabular}\end{figure}}} | + +The //vi// commands might not make much sense at first, but notice that you can use all of them with the fingers from the right hand. They may not be the most mnemonic commands, but they are very functional. + +Some programs besides //vi// which use the //vi// cursor-movement commands include: + + * the mail reader called [[node5.html#mutt|mutt]], but just the //j// & //k// keys in its menus + * "/usr/games/worm", an old game & an excellent way to learn the //vi// commands + * VIPER, a //vi//-emulator for [[node5.html#editors|emacs]] + +====== [[| 4.5 E-mail]] ====== + +Most unix systems give you multiple options for how to read your e-mail. + +If you want to read your e-mail with a text-only program you run from the command line (which is how I read e-mail), some common programs are //mutt// and //pine//. Just type the name of either of those programs. If you see a list of e-mail, it means the program is available, & you are running it. If you see an error message that says ``command not found'', it means your shell couldn't find it, maybe because it's not available on your unix. + +You can figure out the basics of //mutt// or //pine// just by using them. People become almost religiously devoted to their favorite e-mail programs, so you can learn more detailed or subtle ways of using a mail program by asking someone who prefers that program. People are usually happy to tell you more than you want to know about how to use their favorite e-mail program. So pick one of them, figure out the basics on your own, & then go find a long-time user of that program & strike up a conversation about it with him. + +I've never used //pine//, so I can't tell you how. I sometimes use //mutt//, so here is some super-quick info on using //mutt//. + +===== \\ 4.5.1 mutt ===== + +The official documentation about //mutt// is at http://www.mutt.org/. + +When you run //mutt//, you'll see a list of e-mail messages. Each line on your screen will show a subject, a date, & who sent the message. + +One of the messages will be selected. To view the selected message, type the Return, Enter, or Space-bar key (I can't remember which). You'll see the body of the message. + +When you are viewing the body of a message, type the Space bar to page down. When you come to the end of the message, type the Space bar to view the next unread message. If there are no more unread messages, you'll see the list of messages again. + +When you are viewing the body of a message, you can type ``"q"'' to quit that view & return to the list of messages. + +In the list of messages, the ``"j"'' key moves the cursor down & selects that message. The ``"k"'' key moves the cursor up & selects that message. The ``"q"'' key exits //mutt//. + +===== [[| 4.5.2 Graphical E-mail Readers]] ===== + +If you want to read your e-mail with a graphical e-mail reader, maybe the one in your web browser, you'll need a more elaborate setup. You'll need to instruct your mail client to use your unix account for sending & receiving messages. It sends messages via the Simple Mail Transport Protocol (SMTP). It downloads messages that you receive via the Post Office Protocol version 3 (POP3). Of course, the unix system where you have your account must be configured to allow these operations. You'll need to refer to the documentation for that computer system to do all this, but it can be done if the unix system allows it. + +===== [[| 4.5.3 My Own E-mail]] ===== + +For the record, I usually use the //rmail// mode in Gnu Emacs for reading & sending e-mail. + +====== [[| 4.6 Viewing Files]] ====== + +If you have a file you want to read, use the //less// program to read it. For example, if the file is called "README" & is in your current directory, type ``"less README"''. If that gets you a ``command not found'' error, try ``"more README"''. + +You'll see the first part of the file on your screen. (If it's a really short file, you'll see all of it on your screen.) To see the next screen-full, type the Space bar. To see the previous screen-full, type the ``"b"'' key. To quit viewing the file & return to the command line, type the ``"q"'' key. + +====== [[| 4.7 Surf the Web]] ====== + +A good web browser to use on a text-only command line is //lynx//. You can give it an URL to read on the command line, like this: ``"lynx http://lisp-p.org/"'' or ``"lynx http://google.com/"''. Use the Space bar to page down, the ``"b"'' key to page up, the arrow keys to select hyperlinks, & the Return or Enter key to follow a hyperlink. Use the ``"q"'' key to quit. + +Unless the unix system where you have an account is very trusting, you probably cannot run a graphical web browser on it. Technically it can be done using the graphical system called X (which is common on unices), setting permissions with the //xhost// program, & setting your DISPLAY environment variable, but it usually is not allowed on a public access unix. + +====== [[| 4.8 Upload & Download]] ====== + +===== \\ 4.8.1 FTP ===== + +To transfer files between your home computer & a remote unix, use the program called //ftp//. Your home computer almost certainly has a copy, even if you run Microthought Winders at home. + +To run //ftp//, first go to a command line. Then type ``"ftp ftp.freeshell.org"'' to connect to the FTP server at SDF. + +The //ftp// client has a command line interface. Here are some of the commands it understands: + +**cd //directory//**Change directory on the remote FTP server. **dir**Print a lsit of the files in the current directory on the remote FTP server. **ascii**Tell FTP to assume that files you transfer are text files. **binary**Tell FTP to assume that files you trnasfer are binary files. **hash**Tell FTP to print an octothorpe character (#) for each block it sends or receives. It helps you see the progress of the file transfer. **put //filename//**Upload a file. **get //filename//**Download a file. + +In general, use the //cd// command to enter the correct directory on the remote FTP server. Then set the correct mode (//ascii// or //binary//). Then use //get// to download a file or //put// to upload one. + +The //ftp// client program supports many more commands. Use ``"man ftp"'' for more information about FTP. + +In case you are interested: FTP refers to the File Transfer Protocol; it was one of the three requirements that created the Arpa Net which became the Internet. //Ftp// is also the name of the File Transfer Program which implements FTP. + +===== \\ 4.8.2 scp ===== + +//scp// is the Secure Shell Copy Program. It's name is also a reference to //rcp//, the Remote Copy Program. + +Use //scp// like you would use //cp//, but it can copy from one computer to another. + +For example, if I want to copy "myfile.cpio.bz2" on my computer into the "tmp" directory in my account on SDF, I would run this: ``"scp myfile.cpio.bz2 gms@freeshell.org:tmp/"''. The //scp// program will probably prompt me for my password, then it will copy the file. + +Run ``"man scp"'' to get more information about using //scp//. + +In my experience, //scp// takes longer than //ftp// to transfer files, & it gives up easily. If either computer or the network is slow, //scp// gives up quickly. So I prefer //ftp//. + +Ed Chang has told me that there is an implementation of //scp// for Microthought Winders called WinSCP, at http://winscp.sourceforge.net/eng/about.php. I haven't tried it myself, but it sounds like it might be pretty good. + +===== \\ 4.8.3 rcp ===== + +You can't use //rcp// on SDF, so this section applies when copying files between other unix systems. + +An old but pretty cool program for copying files between two unices is //rcp//, the Remote Copy Program. + +For //rcp// to work, you must first configure the ".rhosts" files in your accounts on the unix systems. Then you can copy files from one system to another with the //rcp// program. + +For example, if I want to copy "myfile.cpio.bz2" on the local computer into the "tmp" directory in my account on a computer called "overthere", I would run this: ``"rcp myfile.cpio.bz2 overthere:tmp/"''. The //rcp// program will copy the file; it won't ask me for my password. + +===== [[| 4.8.4 When FTP Doesn't Work]] ===== + +If you don't have FTP on your home computer, you can transfer files via e-mail. + +First, make sure you have an e-mail account that allows you to send files as attachments. You might use the e-mail account that your ISP supplied with your Internet connection, or you might create a Web e-mail account on Yahoo!, Hotmail, or any of the many other systems that provide free Web e-mail accounts. + +To transfer a file from your home computer to SDF, you create an e-mail message on your e-mail account that is //not// on SDF. Attach the file; with a Web e-mail account, it'll allow you to upload the file into the e-ail message. Then send the message. Give it a minute to arrive, then login to your account on SDF. Receive the message with an e-mail program which knows how to deal with attached files. Mutt & pine both know about attachments. Use that e-mail program to save the attachment to a file. + +To transfer a file from SDF to your home computer through e-mail, login to SDF & send the file to your non-SDF account as an attachment to an e-mail message. Then receive the message on your non-SDF e-mail account & save the file to your home computer's file system. + +====== \\ 4.9 Editing Files ====== + +There are two great religions in the modern world: //emacs// and //vi//. + +The two most popular file editors on unix are //emacs// and //vi//. + +//Emacs// is more properly called Gnu Emacs because emacs is a way of programming file editors, & Gnu Emacs is just one editor written in that way. I believe Gnu Emacs was the first big production product of Gnu. Richard Stallman wrote it himself. It is a Lisp with screen-handling functions built-in. It's a great big powerful editor, an operating environment, & I love it. To try emacs, type ``"emacs"'', wait for the screen to update, then type the Escape key, the "x" key, then ``"info"'', then press Return. Carefully read & follow the instructions you see on the screen. It's kind of difficult to learn emacs from the start, but once you do, it's great. + +The other popular editor on unix is //vi//. I don't use vi much. Two web sites that discuss it are [[http://www.eng.hawaii.edu/Tutor/vi.html|Mastering the VI editor]] at the Department of Engineering at the university of Hawaii, and the [[http://www.thomer.com/vi/vi.html|Vi Lovers Home Page]]. + +---- + +[[node6.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node4.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node6.html|5. Learning More]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node4.html|3. What is Unix?]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node6.html.docuwiki b/dump/node6.html.docuwiki new file mode 100644 index 0000000..c48456a --- /dev/null +++ b/dump/node6.html.docuwiki @@ -0,0 +1,65 @@ +[[node7.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node5.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node7.html|6. Super Dimension Fortress]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node5.html|4. Some Basic Commands]]   ** [[node1.html|Contents]]**\\ \\ [[|**Subsections**]] + + * [[#SECTION00610000000000000000|5.1 The Man]] + * [[#SECTION00611000000000000000|5.1.1 The man is for real]]\\ + * [[#SECTION00620000000000000000|5.2 Gnu info]] + * [[#SECTION00630000000000000000|5.3 Books]] + * [[#SECTION00640000000000000000|5.4 Folklore]] + +---- + +====== [[| 5. Learning More]] ====== + +====== [[| 5.1 The Man]] ====== + +Most of a unix system is documented in the online manual, called the //man//. If you want to know about a program, you look it up in the //man//. For example, if you want to learn more about the //ls// program, type ``"man ls"''. + +The man also has a simple search capability. The ``"-k"'' command line option tells the man to give you a list of entries that mention a particular keyword, which you also supply on the command line. If you want to get a list of the manual entries that menion networking, you would type ``"man -k network"''. + +The man is divided into sections. If you don't specify a section when you ask the man to lookup documentation for a program, the man takes a guess about what section you mean, & it usually assumes you mean the most general, high-level section available (section 1). You can specify a section as the second argument to //man//, before the keyword. For example, if I want to read about the "select" function in section 2 (the kernel API), I would type ``"man 2 select"''. + +Here are some things I recommend reading in the man to get started with unix. I give you the exact command to type, then an explanation of why I recommend that entry in the man. + +**man man**This tells you how to use the online manual. **man 1 intro**This tells you about the general section of the online manual. You should also try ``"man 2 intro"'' & all the other intros for sections 3 through 9. **man mutt**Tells you how to use //mutt//, the e-mail reader. **man pine**Tells you how to use //pine//, the e-mail reader. **man sh**Tells you how to use & program the shell. **man 4 tcp**Tells you how to program TCP sockets. I suggest it here as an example of the breadth of information that's available in the online manual. + +===== [[| 5.1.1 The man is for real]] ===== + +I tell newbies about the man all the time, but they usually don't try it. + +I don't know why they don't believe me. I started using unix in college in 1985. In a class, the professor gave everyone an account & told us to login after class & type ``"man man"''. He didn't tell us anything else, not even what ``man man'' would do. By exploring the manual on my own time for a couple of evenings, plus a couple of conversations with the unix gurus that worked in the lab, I was pretty good with unix. It was an excellent way to start using & programming unix. + +Maybe the newbies do believe me, but they're lazy. + +====== [[| 5.2 Gnu info]] ====== + +Besides the unix //man//, Gnu/Linux computers usually have some information in a hypertext system call //info//. + +To use //info// from the command line, just type ``"info"''. If you are a Gnu Emacs user, you can run emacs & type Meta-x "info", & you'll be presented with the same data in the same format that //info// would. + +//Info// is an interactive hypertext system. It predates the Web by at least five years, methinks. Read & follow the instructions on the screen & you'll be alright. + +//Info// systems are not always maintained as well as the man, but most are pretty good, & some have a lot of excellent information. It is often well-written, too. It's an enjoyable read, & since you can page through the entire system one screen-full at a time by typing the Space bar, it's convenient to read. + +Though it's not for beginning users, I'll mention here that one of my favorite sections in //info// is the documentation for Autoconf. + +====== [[| 5.3 Books]] ====== + +I can't recommend any books on using unix. I learned it so long ago that I don't remember what books I used, or even if I used any books. Here are some interesting books about unix, though not exactly about //using// unix. + +I like Mike Gancarz's book, //The Unix Philosophy//, a lot. It talks about the reasons behind writing applications the unix way: with small programs piped together, & with flat, plain text data files. I have heard that Eric Raymond's book, //The Art of UNIX Programming//, is similar & also good, but I haven't read it myself.[[footnode.html#foot277|5.1]] + +Even though we're talking about using unix, I think an understanding of how operating systems work is useful to know, & Andrew S. Tanenbaum's //Modern Operating Systems// is an excellent book. It includes a good section about unix. He points out that the defining characteristic about early unix was its 40 system calls. We've added more system calls, but the unix kernel still has a fairly small number of elegant, well-chosen system calls. That's an important part of what makes unix what it is. + +====== [[| 5.4 Folklore]] ====== + +One of the cool things about unix is that it has played an intimate part in the folklore of computing since the late 1970s. There are all sorts of interesting tales & personalities to explain or help you remember why something was done a particular way. The history is not hidden inside a corporation. It's out in the open, & lots of people know it. + +That's also one of the bad things about unix because it means you need to talk to people to learn what you need to learn next. Hopefully people will write downt he folklore & also link to it so that new unix users & programmers can find it. + +You can learn the folklore by talking (or typing) to an experienced unix user or programmer. A good place to read about it online is [[http://catb.org/~esr/jargon/html/|The Jargon File]]. + +---- + +[[node7.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node5.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node7.html|6. Super Dimension Fortress]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node5.html|4. Some Basic Commands]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node7.html.docuwiki b/dump/node7.html.docuwiki new file mode 100644 index 0000000..9239678 --- /dev/null +++ b/dump/node7.html.docuwiki @@ -0,0 +1,145 @@ +[[node8.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node6.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node8.html|7. Programming]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node6.html|5. Learning More]]   ** [[node1.html|Contents]]**\\ \\ [[|**Subsections**]] + + * [[#SECTION00710000000000000000|6.1 Getting Information on SDF]] + * [[#SECTION00720000000000000000|6.2 COM Mode]] + * [[#SECTION00721000000000000000|6.2.1 COM Commands Discussion]] + * [[#SECTION00722000000000000000|6.2.2 COM Session Example]] + * [[#SECTION00723000000000000000|6.2.3 What to Do if You Are Caught in the Newbie Loop]] + * [[#SECTION00724000000000000000|6.2.4 COM History]]\\ + * [[#SECTION00730000000000000000|6.3 Bulletin Board]] + +---- + +====== [[| 6. Super Dimension Fortress]] ====== + +Here is some quick reference information about using [[http://sdf.lonestar.org/|Super Dimension Fortress]] (SDF). I'm not a member of SDF's staff, so the information here is not definitive. If you find a discrepancy between what I say & how things actually work on SDF, it's an error in what I've said, not in how SDF behaves. + +====== [[| 6.1 Getting Information on SDF]] ====== + +Use the //faq// or //help// commands to get information about SDF. These are not standard unix programs. They are specific to SDF. + +The //help// command mostly gives you lists of other commands. If you type ``"help"'', you'll see a menu like this: + + SDF Help System - v8, 1993 - sdf!smj + + [a] Directory and File Utilities + [b] Email Information + [c] USENET Information + [d] User and Process Information + [e] Tutorials and Very Useful Commands + [f] ARPA Services (internetworking) + [g] Homepage, VHOST and MetaARPA Utilities + + [q] Quit SDF Help System + + Your Choice? + For more help, type 'faq' + For a list of basic UNIX commands, type 'unix' + to remove your account, type 'delme' + +Most of the letters in the menu will give you lists of commands. After you quit the //help// program with ``"q"'', you could run the commands or read more about them in the online manual I discussed earlier. Some of the programs are specific to SDF & are not discussed in the man. SDF's excellent //com// program is an example of a program that is not discussed in the man. + +To me, the //faq// program is more useful. In it, you can find short explanations of unix file permissions, uploading & downloading, SDF's policies, & the history of SDF. + +To enter the faq, type ``"faq"'' on the command line, & the //faq// program gives you a list of sections. This is faq's main menu. You can exit by typing ``"q"'' here. If you type ``"g"'', it will ask you for the name of a section. You enter a section name & press return, & you'll see the section's menu. + +In a section's menu, you have a numbered list of questions or topics. If you type ``"g"'', & press return, you'll see main menu again. If you type ``"t"'', you'll be prompted for the number of a question or topic. Type that & press return. You should type the number exactly as it appears in the menu, including leading zeros. + +Some things you can learn from the //faq// include: + + * SDF's policies (& prices, methinks) + * brief history of unix + +====== \\ 6.2 COM Mode ====== + +SDF has its own chat system, called "com". It's like a stripped-down IRC, but much cooler than IRC because people actually talk, & you don't get unwanted pop-up download files & you don't have tons & tons of bots waiting to download ``warez''. Anyway, "com" is like IRC except that "com" is cool. + +To use com, type ``"com"'' on the command line. You'll be plopped into the lobby, which is the default room. + +Com uses //single-key commands// mostly. If you are new to "com", you might want to read [[#com-command-discussion|COM Command Discussion]] in this same article. If you are having trouble exiting from the "com" program, then you definitely need to read [[#com-command-discussion|COM Command Discussion]]. + +Table [[node7.html#tab-com-commands|6.1]] shows the most frequently needed "com" commands. + +\\ + +**Table 6.1:** The most frequently needed commands for "com" +| | **key** | **meaning** | | h | Get a list of all the commands | | ? | Get a list of all the commands | | //space bar// | Enter text that you ``say'' into the room | | //return// | Enter text that you ``say'' into the room | | g | goto another room | | q | Quit COM Mode | | + +\\ + +Also, from COM Mode, you can compete with others in games of Nethack, Netris, & some others. If you can master the ``h'' command in COM, it will show you the commands for playing these games. + +===== \\ 6.2.1 COM Commands Discussion ===== + +The "com" commands are //hot//. By that, I mean that you type a command character, & "com" immediately takes action. You must be careful to type only the command character you intend. If you type other characters along with the character you intend, one of those other characters might be interpreted as a command, & the character you intend will be interpreted as an argument to that command. It might sound like I'm being pedantic, but people who are new to "com" often have this problem. + +Table [[node7.html#tab-proper-com|6.2]] shows the proper sequence of steps for entering a command in "com". It assumes you are already running "com" & that you are not currently processing any "com" commands. You are just reading the text in the room. + +\\ + +**Table 6.2:** The proper & detailed sequence of events for executing a command in "com" +| {{img3.png?537x684|\begin{table}\begin{enumerate} \item Put both hands in your lap so that neither ... ...the command key you intended, you did it incorrectly. \end{enumerate}\end{table}}} | + +\\ + +Step number 4 in Table [[node7.html#tab-proper-com|6.2]] is critically important & deserves further discussion. In step number 4, you touch (or ``type'') the command key. You do not touch (or type) any other keys on your keyboard or on any other keyboard. You don't need to ``enter'' the command by typing the Return or Enter key on your keyboard; "com" will acknowledge your command key immediately.[[footnode.html#foot488|6.1]] + +A common error for new users is to type the Return (or Enter) key after they type the command key. "Com" executes the command key fine, then it notices the Return key. Return is a command, so "com" executes it. The Return command gets you a prompt so that you may enter text that you ``say'' for other people to ``hear'' in the room. Because of the Return key, "com" is not interpreting the new user's keystrokes as commands. + +Then the new user tries to type another command, such as the ``q'' (quit) command, but "com" interprets it as text to say into the room. The new user is under the impression that he needs to end commands with Return, so he does that, which causes "com" to print ``q'' into the room for everyone to see. The new user is confused about why his command doesn't execute, so he types ``h'' & Return again. The ``h'' is interpreted as a command & gets him a menu, but the Return is also interpreted as a command & puts him into enter-a-line-of-text mode. He sees the ``q'' command in the menu, types it & Return, & the cycle repeats. + +All of this discussion may seem silly to most people, but a lot of new users have amazingly huge amounts of trouble when they learn to enter a command into "com".[[footnode.html#foot489|6.2]] + +===== [[| 6.2.2 COM Session Example]] ===== + +Let's walk a new user named //newbie// through his first session in "com". + + - Newbie starts on the unix command line. + - Newbie enters COM Mode by typing ``"com"'' & pressing the Return key. + - Newbie might have to wait a few seconds, but she eventually sees "com" start. (I think new users see a menu of the "com" commands & have to answer Yes that they have read & understood the menu.) After "com" starts, Newbie will be in the //lobby// & will see a list of the people in that room. (The lobby is the default room & is where most of the chatting happens.) + - Newbie wants to say hello to everyone, so she types the Space Bar & waits until she sees a ``"[newbie]"'' prompt. Then Newbie types ``Hi all. I'm new.'' & then types the Return key. + - Everyone in the room will see ``"[newbie] Hi all. I'm new."''. + - //Newbie is doing well so far, but now let's have her make a mistake.// + - Newbie wants to leave "com", but she can't remember the command, so she types ``h'' to get a menu & pressed Return. //This was a mistake. Newbie should have typed ``h'' alone & not pressed Return.// + - //"Com" sees Newbie's ``h'' command & prints the help menu. That's good, but "com" also sees Newbies Return & assumes Newbie wants to ``say'' a line of text into the room. So "com" prints a ``"[newbie]"'' prompt & waits for Newbie to type some text, but Newbie is busy reading the help menu & doesn't notice the prompt.// + - Newbie sees the ``q'' (quit) command on the help menu & types ``q'' & then Return. //This is a double mistake. "Com" thinks Newbie is typing a line of text to say into the room, so her ``q'' is not interpreted as a command. Also, Newbie is still under the incorrect belief that she must end "com" commands with a Return.// + - Because of Newbie's mistake in the previous step, "com" prints ``"[newbie] q"'' into the room. + - Newbie is confused that her ``q'' command didn't work, so she types ``h'' & Return. This takes her back to step 7. She'll repeat this who knows how many times. Other people in the lobby will notice her problem & try to help, but Newbie has to go through the error many times before she stops typing Return after her commands.The problem is compounded by "com"'s modality & Newbie's failure to realize that "com" is modal. Sometimes, "com" is waiting for Newbie to type a command. Some commands are single key. (The ``q'' & ``h'' commands are examples.) Other commands wait for Newbie to type something, & during that time, "com" does not interpret her keystrokes as commands. (The Space Bar and Return commands, both of which are for saying text into the room, are examples.)The other people in the room see what Newbie is going through, but there isn't much they can do because they can't see Newbie's screen & help her figure out whether "com" is waiting for her to type a command or waiting for her to type text. What's more, whenever they say something like ``Type //h// by itself'', Newbie types an ``h'' & then a Return. So Newbie keeps going around & around. + - Eventually, Newbie figures it out while "com" is waiting for her to type a command. At this time, Newbie types ``q'' (& does not type any other characters at all). + - Newbie might have to wait a few seconds, but she eventually sees "com" print an ``Unlinking tty'' message, & then Newbie is dropped back into her unix command line. + +===== [[| 6.2.3 What to Do if You Are Caught in the Newbie Loop]] ===== + +The problem is that "com" is modal & new users sometimes fail to realize that. + +What does it mean for a program to be **modal**? It means that sometimes, "com" is waiting for you to type a command, & sometimes it is waiting for you to type arguments to a command. Some commands are single key. (The ``q'' & ``h'' commands are examples.) Other commands wait for you to type something, & during that time, "com" does not interpret her keystrokes as commands. (The Space Bar and Return commands, both of which are for saying text into the room, are examples.) + +If you find yourself in the "Com" Newbie loop, here's how to get out of it. Follow the exact steps from Table [[node7.html#tab-exit-newbie-loop|6.3]]. Type only what it says to type. Do not type anything else. Do not type Return unless a step in the table says to type Return. + +\\ + +**Table 6.3:** The steps to get out of the "Com" Newbie loop. Do exactly what the steps say. Do only what the steps say. Do not type anything else. +| {{img4.png?534x194|\begin{table}\begin{enumerate} \item Type the Space Bar. \item Type the Return (... ...u may now re-enter {\tt com} or go do something else. \end{enumerate}\end{table}}} | + +\\ + +Here's why the steps in Table [[node7.html#tab-exit-newbie-loop|6.3]] work: + + - If "com" is waiting for you to type a command, then you could type the command anyway, but you type Space, which gets you a prompt ("com" isn't interpreting commands). Then you type Return, which ends that prompt. So now "com" is waiting for a command again. So the Space Bar & Return sequence was unnecessary, but it did not harm. (People in the room won't even see it because if you try to ``say'' an empty line, "com" doesn't print anything.) + - If "com" has prompted you & is not interpreting your commands, the Space Bar won't do anything useful, but the Return key will end that prompt. If you had mistakenly typed Return earlier & "com" was waiting for you to say something into the room, the Space Bar will do nothing, but the Return will end that mode, & "com" will now wait for you to type a command.. (If you had typed things before the Space Bar, you will ``say'' them into the room.) + +===== [[| 6.2.4 COM History]] ===== + +I have heard that early versions of COM Mode were fairly simple shell scripts that ran //tail// on a common file. Excellently unixly elegant. COM Mode is in about version 6 now, & it works across a bunch of computers networked at SDF, so I don't know if it's still just some shell scripts. + +====== [[| 6.3 Bulletin Board]] ====== + +If you type ``"bboard"'', you'll enter the bulletin board. Its commands resemble those of the //faq//: + +**g**Prompts you for a section name, which you type. Then takes you to that section. **t**From a section's menu, prompts you for a message number (which you must enter exactly, including leading zeros). Then it prints the message & all replies to your screen. **q**Quits the bulletin board. + +---- + +[[node8.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node6.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node8.html|7. Programming]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node6.html|5. Learning More]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node8.html.docuwiki b/dump/node8.html.docuwiki new file mode 100644 index 0000000..497f5a5 --- /dev/null +++ b/dump/node8.html.docuwiki @@ -0,0 +1,53 @@ +[[node9.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node7.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node9.html|8. Hacking]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node7.html|6. Super Dimension Fortress]]   ** [[node1.html|Contents]]**\\ \\ [[|**Subsections**]] + + * [[#SECTION00810000000000000000|7.1 Language]] + * [[#SECTION00820000000000000000|7.2 Languages on SDF]] + * [[#SECTION00830000000000000000|7.3 Theory]] + +---- + +====== [[| 7. Programming]] ====== + +So you want to learn to program? Good. Programming is fun, creative, & fascinating. (It used to be a well-paying career, too. I guess it still is, if you are in India or China.) + +====== [[| 7.1 Language]] ====== + +There are billions & billions of programming languages. Well, not that many, but there's a damned lot. + +You'll probably want to learn one of the most popular ones, which is too bad because most of the currently popular languages aren't very good. They are complex versions of the exact same features that have been available in programming languages since the 1960s. That's right: Even after forty years of hyped, new languages, we've effectively come full-circle to Algol 1960. + +But I'm a bitter & opinionated old programmer, so ignore what I just wrote. Here's some actually useful information: + +You can use just about any language you want on unix. At the moment, it might be difficult to find a fully functioning C# compiler for unix, but one is coming, & there is no technical reason that C# won't work on unix. Many other programming languages are available for unix. Heck, many were developed //on// unix. So you can pick pretty much whichever you want. + +No matter what you pick, I highly recommend that you also do some plain, vanilla C. That's because the programming language of unix is C. When you need to write some programs to experiment with some feature of unix to learn the details of how it works before you use it in a larger program you are writing, the best language for writing those experimental programs is C because it hides the least from you. It's not that C is better, & I'm not saying it's better for writing applications. I mean that because unix's API is for C, C is the best language for discovering how unix's system calls work. C doesn't hide anything from you. + +There are two books you need to do serious C programming. + +The first is the original & the classic //The C Programming Language//, by Kernighan & Ritchie ([[[node11.html#kandr|aDMR88]]]). Yeah, it's old & small, but since when is information bad just because it's old? And since when would you rather take days to read a humongous tome that contained no more information than in a small book like K&R? + +The second book you need for C programming is //The Standard C Library//, by P. J. Plauger ([[[node11.html#plauger:library|Pla92]]]). + +====== [[| 7.2 Languages on SDF]] ====== + +Here are some languages that are available on SDF. You may have to be validated or even ARPA to use some of them, but I don't know for sure. + +| **language** | **pathname** | +| Bourne (or other) | /bin/sh | +| C | /usr/bin/gcc | +| C++ | /usr/bin/g++ | +| Open Lisp (not Common) | /sys/pkg/uxlisp/uxlisp | +| Perl | /usr/pkg/bin/perl | +| Python | /usr/pkg/bin/python | + +To learn a language, I recommend studying at least one book, not just online sources. + +====== [[| 7.3 Theory]] ====== + +Obtain, read, & understand a book about data structures. Learn it & learn to love it. Data structures separates the scripters from the programmers. + +---- + +[[node9.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node7.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node9.html|8. Hacking]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node7.html|6. Super Dimension Fortress]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/node9.html.docuwiki b/dump/node9.html.docuwiki new file mode 100644 index 0000000..562f263 --- /dev/null +++ b/dump/node9.html.docuwiki @@ -0,0 +1,35 @@ +[[node10.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node8.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node10.html|9. Meta]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node8.html|7. Programming]]   ** [[node1.html|Contents]]**\\ \\ + +====== [[| 8. Hacking]] ====== + +So you want to hack? To break into computers? Take them over? Get root access? Crash them or use their CPU cycles to do work for you? + +Aim high, but I have some advice. Those activities aren't [[http://catb.org/~esr/jargon/html/H/hack.html|hacking]]. Those activities are part of [[http://catb.org/~esr/jargon/html/C/cracking.html|cracking]]. For more information about the meaning of //hack//, you might read two other chapters from The Jargon File: + + * [[http://catb.org/~esr/jargon/html/meaning-of-hack.html|The Meaning of 'Hack']] and + * [[http://catb.org/~esr/jargon/html/crackers.html|Crackers, Phreaks, & Lamers]]. + +You might find some people in COM Mode who would like to talk about these things, but most of them are really tired of kiddies coming into the lobby & asking ``Do any of you know how to hack?'' So you'll need to be more subtle. It's like real life; you don't walk into a room, interrupt the current conversation, & loudly ask if anyone will sell you nose candy. It's just rude. + +Information about security holes is pretty easy to find without help. Just use Google to search for things like ``computer security virus hole exploit''. What you need is the knowledge to make use of that information. You need to learn straightforward programming techniques, especially networking[[footnode.html#foot493|8.1]], before you can make use of all that security information that is readily available. So instead of asking people to teach you to crack, it might be more worthwhile & fun to talk programming with people. + +While we're on the topic, I guess I can throw out a bone. Take a look at ``CIFS: Common Insecurities Fail Scrutiny'' ([[[node11.html#hobbit:cifs|Hob77]]]). + +Also, be aware that most of the protocols in use on the Internet are defined in the Request For Comment (RFC) documents. One database of RFCs is [[http://www.rfc-editor.org/|The RFC Editor]]. Another such database is [[http://www.cis.ohio-state.edu/cs/Services/rfc/index.html|RFCs at Ohio State University]]. + +Why do you care about the RFCs? Because to find a hole in some protocol, you need to know the actual protocol, not just heresay that people slip to you in a chat room. To know the protocol, you need to refer to its definitive source. For most protocols on the Internet, that's the RFCs. + +For example, let's say you wanted to research holes in Internet multicast. You could go to either of those RFC databases & search for ``multicast''. You conclude that any of these RFCs were worth your time + +| **id** | **title** | **author** | **data** | +| RFC1112 | Host extensions ofr IP multicasting | S.E. Deering | 1 Aug 1989 | +| RFC3513 | Internet Protocol Version 6 (IPv6) Addressing Architecture | R. Hinden, S. Deering | Apr 2003 | +| RFC3261 | SIP: Session Initiation Protocol | lots of blokes | Jun 2002 | + +That's just an example. By the way, if none of those title make you at least a little curious to know what's in those documents, then you might not be cut-out to be a computer hacker or a cracker. + +---- + +[[node10.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node8.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node10.html|9. Meta]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node8.html|7. Programming]]   ** [[node1.html|Contents]]** + + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/permissions.html.docuwiki b/dump/permissions.html.docuwiki new file mode 100644 index 0000000..60ba020 --- /dev/null +++ b/dump/permissions.html.docuwiki @@ -0,0 +1,148 @@ +====== Permissions ====== + +===== Contents ===== + + - [[#introduction|Introduction]] + - [[#permissions|Permissions]] + * [[#permissiontypes|Permission types]] + * [[#userclasses|User classes]] + * [[#anexample|An example]] + * [[#linksandpermissions|Links and permissions]] + - [[#changing|Changing permissions…]] + - [[#explained|…explained]] + - [[#anotherway|…another way]] + - [[#flags|File Flags]] + +===== [[|Introduction]] ===== + +Unix was created to be a multi-user operating system. The intention was not for everybody to have full access to all files, but to allow file owners to specify which users should have what kind of access. + +===== [[|Permissions]] ===== + +A Unix file system allows users to assign to files (including directories: "In Unix, Everything Is a File.") they own any combination of three permission types (**r**, **w**, **x**) to three classes of users (**u**, **g**, **o**). When a user requests access to a file, Unix first determines the requester's user class relative to the target file, then checks if the permission type requested has been assigned to that user class. + +==== [[|Permission types]] ==== + +The effect of the three permission types varies depending on whether they apply to a file or a directory. + +^ Type ^ On file ^ On directory ^ +^ r | Read file contents. | List name, size, modification date, etc. of files in directory.1 | +^ w | Change (**w**rite) file contents. | Add or remove files from directory.2 | +^ x | Shell will attempt to e**x**ecute file if file name entered by itself on command line. | Access (read or write) the directory3 or any files in the directory or its subtree, or make the directory the user's working directory. | +| **Notes:** - File information can be obtained even without directory **r** permission if a file's full name is specified, - **w** directory permission allows a user to delete a file from the directory, //even if the user does not have **w** (change contents) permission for the file itself//. The reverse is also possible: a user who lacks **w** directory permission may be able to modify the contents of a file in the directory but not delete it. - Implementations vary on the permission required to list directory file names. SDF hosts (running NetBSD) will list directory files if the user has **r** permission for the directory. Other implementations require both **r** and **x** permissions to list directory files. ||| + +Unlike some other file systems, such as NTFS, neither **r** nor **w** directory permission have any influence on **r** or **w** permission for subdirectories or files anywhere in the directory's subtree. **r** or **w** permission is determined by what has been assigned to your user class for the directory in question without considering **r** and **w** permission for directories higher in the file system tree. + +However, directory **x** permission //does// affect permissions for subdirectories and files farther down the directory subtree. To access a file, a user must have **x** permission on every directory in the file's path. In other words, lack of **x** permission for a directory effectively prevents access to any files in the directory's subtree. + +==== [[|User classes]] ==== + +For a given file, the Unix file system divides users into three classes: + +^ Class ^ Users ^ +^ u | //**U**ser//. The current owner of the file. | +^ g | //**G**roup//. Members of the user group to which the file has been assigned. | +^ o | //**O**thers//. Users not in either of the above classes. This is the user class that SDF's web server uses when a web browser requests a file from your web site.1 | +| **Notes:** - The use of CGI programs on a web site complicates the permission check. Access to the CGI program file itself is checked with user class **o**. Many web servers are configured so that file access requests from CGI programs are also checked with user class **o**. However, the SDF web server has been configured to execute CGI programs with the permissions of the owner of the program file (//you//, for CGI programs you have installed on your SDF web site). Therefore if your CGI program accesses files owned by you, permissions will be checked with user class **u**. Files not owned by you will be checked with user class **o**. || + +==== [[|An example]] ==== + +File permission information can be obtained with the long listing option of the "ls" command: "ls -l" + +| "drwxr-xr-x" | "2" | "papa" | "arpa" | "512" | "Sep 29 01:02" | "arpastuff" | +| "-rwxr-x---" | "1" | "papa" | "arpa" | "11402" | "Sep 29 01:02" | "hello" | +| "-rw-r-----" | "1" | "papa" | "arpa" | "13" | "Sep 29 01:02" | "hello.txt" | +| //a// | | //b// | //c// | | | | + +Field //a// is the //file mode//, a string of ten one-character flags that indicate the file's permissions and other information. The following is a list of mode flags in character order with a partial list of possible flag values for each: + + - File type. "d"directory"-"ordinary file + - **r** permission for file owner (user class **u**). "r"yes"-"no + - **w** permission for file owner (user class **u**). "w"yes"-"no + - **x** permission for file owner (user class **u**). "x"yes"-"no + - **r** permission for file user group (user class **g**). "r"yes"-"no + - **w** permission for file user group (user class **g**). "w"yes"-"no + - **x** permission for file user group (user class **g**). "x"yes"-"no + - **r** permission for other users (user class **o**). "r"yes"-"no + - **w** permission for other users (user class **o**). "w"yes"-"no + - **x** permission for other users (user class **o**). "x"yes"-"no + +Field //b// is the user ID of the //file owner//. Field //c// is //user group// the file has been assigned to. + +So for the three files in the "ls" listing above: + +Directory "arpastuff"User "papa" can list, add, and delete files in "arpastuff", access the directory's subtree, or make the directory his working directory. Users in group "arpa" and all other users can list files in the directory, access the directories subtree, or make the directory their working directory, but not add or delete files. File "hello"User "papa" can read or modify the contents of "hello" or execute it from the command line (presumably the file contents are an executable binary or a script). Users in group "arpa" may view or execute the file but not modify it. Other users may not access the file. File "hello.txt"User "papa" can read or modify the contents of "hello.txt". Users in group "arpa" may view the file. Other users may not access the file. + +==== [[|Links and permissions]] ==== + +In general, the above discussion also applies to hard and symbolic file links. The files system automatically maintains links to keep the same effective permissions as the target file. (For symbolic links, the "ls" command displays a file mode with all permission types assigned for all user classes, but when file access is requested with the link, the permissions of the target file are applied.) + +However, it is possible for hard links to avoid directory **x** permission restrictions in some configurations. Suppose a user has access to a file "./d1/f1" to which there is a hard link outside directory "d1"'s subtree, "./h1". If the use loses **x** permission for "d1", he will not be able to access "./d1/f1", //but he will still be able to access the same file with his original permissions by using the hard link// "./h1". + +===== [[|Changing permissions…]] ===== + +Permissions are changed with the command "chmod": + +"chmod //permission-mode// //file-name//" + +Let's take a look at this example, + +"chmod 644 index.html" + +What does that number, 644, stand for? + +===== [[|…explained]] ===== + +The //permission-mode// is a numeric representation of the nine file mode permission flags. As mentioned earlier, there are three permission types of and three user classes. Each digit represents the permission types assigned to a user class. + +^ User class: ^ u ^ g ^ o ^ +^ Permission code: | 6 | 4 | 4 | + +The permission code for each use class is calculated by summing the values corresponding to the permission types assigned to the user class: 4 for **r** permission , 2 for **w** permission, 1 for **x** permission. + +In the above example, I want file "index.html" to be readable by all users but writable by only me. Therefore permission codes would be as follows: + +^ User class ^ Permission types ^ Permission code ^ +^ u (myself) | **r** (4), **w** (2) | 4 + 2 = **6** | +^ g (group) | **r** (4) | **4** | +^ o (others) | **r** (4) | **4** | + +Thus: + +"chmod 644 index.html" + +Et voila! + +===== [[|…another way]] ===== + +"chmod" supports an alternate syntax for specifying permission modes that is more convenient for changing one or a few permissions at a time and is slightly easier to remember than the numeric mode coding above. + +//<user-classes><operation><permission-types>//[,//<user-classes><operation><permission-types>//]… + +//user-classes//User class(es) for which permissions are to be changed. Specify with one-character class symbols "u", "g", "o", or "a" for all classes. May specify more than one class. //operation//One of the following: "+"Add permission types to user classes."-"Remove permission types from user classes."="Set permission types for user classes.//permission-types//Permission type(s) to be set or removed. Use one-character type symbols "r", "w", or "x". May specify more than one type. + +Therefore the command: + +"chmod u=rw,go=r index.html" + +would have the same effect as the example command: + +"chmod 644 index.html" + +If I later wanted to give **w** permission to members of the file's user group, I could use the command: + +"chmod g+w index.html" + +===== [[|File Flags]] ===== + +In addition to the file permissions we've already discussed, we also have file flags. File flags add additional security and control over files, but not directories. File flags are altered using the chflags(1) utility. + +"% chflags uunlnk foo" + +would be used to set the user undelete flag, and to disable that flag, simply add "no" in front of the option (in this example, uunlnk), like so: + +"chflags nouunlnk foo" + +---- + +$Id: permissions.html,v 1.8 2007/10/02 11:22:28 papa Exp $ \ No newline at end of file diff --git a/dump/pico.html.docuwiki b/dump/pico.html.docuwiki new file mode 100644 index 0000000..ac5d28e --- /dev/null +++ b/dump/pico.html.docuwiki @@ -0,0 +1,34 @@ +====== Pico Cheat Sheet ====== + +**pico** is a simple, display-oriented text editor originally developed for the **pine** e-mail client. pico is the default editor for SDF's **bboard** system. + +===== Survival guide ===== + +{{https://sdf.org/tutorials/images/pico-label.png}} + +===== Control keys ===== + +//(The key sequence "Esc Esc x" can be used instead of "^x".)// + +| ^B | Backward character | ^F | Forward character | +| ^P | Previous line | ^N | Next line | +| ^A | beginning of line | ^E | End of line | +| ^Y | backward page | ^V | forward page | +| ^W | search | ^L | refresh display | +| ^D | Delete character | ^^ | set mark | +| ^K | cut region | ^U | paste | +| ^I | Insert tab | ^J | Justify paragraph | +| ^T | spell check | ^C | Cursor position | +| ^R | Read insert file | ^O | Output file | +| ^G | Get help | ^X | save eXit | + +===== Function keys ===== + +| F1 | Get help | F5 | Read insert | F9 | cut region | +| F2 | save eXit | F6 | search | F10 | paste | +| F3 | Output file | F7 | backward page | F11 | Cursor position | +| F4 | Justify paragraph | F8 | forward page | F12 | spell check | + +---- + +$Id: pico.html,v 1.2 2020/06/28 06:17:53 papa Exp $ \ No newline at end of file diff --git a/dump/port_allocation.html.docuwiki b/dump/port_allocation.html.docuwiki new file mode 100644 index 0000000..c734a5c --- /dev/null +++ b/dump/port_allocation.html.docuwiki @@ -0,0 +1,32 @@ +==== Port Allocation ==== + +The elusive topic of users being able to allocate ports has come up several times on bboard and has yet to be documented. Here's official word from smj: + + TACKER: smj (Stephen M. Jones) + SUBJECT: .. SDF user port allocation + DATE: 20-Apr-13 22:35:45 + HOST: ol + + Its quite simple and should be add to the tutorials. The port number is + based on your numeric id. You may run a simple server process on + meta.sdf.org as long as it does not circumvent a membership (for instance, + running your own webserver to host your own domain name bypassing the VHOST + membership). IRC bots are fine and servers of reasonable or less foot + print. For instance if you ran a nickserver or bot you'll likely be fine. + If you run a minecraft server you'll probably get emails from other users + asking you to stop hogging CPU and Memory. + +\\ + + **How To:** + Now that you know the policy, you might ask yourself, how do I get my numeric id? + Which system provides the correct numeric id? Answer is simple, you run the + `id` command from any cluster server, and note your uid, this is your numerically + assigned port number. + **Example:** + $ id + uid=56395(user) gid=500(arpa) groups=500(arpa),600(MetaARPA),900(motd) + in the above example, note the port number would be 56395. You are now ready to setup + your server software. + +\\ $Id: port_allocation.html,v 1.5 2015/07/29 05:03:26 epl692 Exp $ \ No newline at end of file diff --git a/dump/privacy_policy.html.docuwiki b/dump/privacy_policy.html.docuwiki new file mode 100644 index 0000000..4a73131 --- /dev/null +++ b/dump/privacy_policy.html.docuwiki @@ -0,0 +1,11 @@ +=== SDF Privacy Policy === + +SDF will do its best to protect your privacy. SDF assumes that all content created on or uploaded to a user's disk space is owned by that user. No data in the user's disk space is used for analysis other than disk quota or the total amount of disk space used by the user. There is no analysis of user data for content and there are no metrics or demograhics collected, shared or sold. + +Users understand that on UNIX and other multi-user operating systems run at SDF that it is commonplace that some of their activities such as being logged in, process names, readability of directories, files, information displayed by finger, temporarily file system files and other details can be viewed by other users on our systems. Users are expected to maintain their own file permissions, password protection and password strength. + +Connections to SDF are logged in that the initial connection time for such services as http, pop3, ssh, ftp is recorded via the syslog utility. The content of these sessions are not logged, recorded or monitored in any way. + +In the event of an investigation SDF will work with local, state and federal law enforcement when justification is presented. Queries from other networks will be followed up with and carefully checked against SDF system logs. Users are expected to abide by the [[http://sdf.org/abuse/aup.html|SDF Acceptable Usage Policy]]. + +$Id: privacy_policy.html,v 1.4 2013/07/16 11:28:53 avoyager Exp $ \ No newline at end of file diff --git a/dump/privacy_protection.html.docuwiki b/dump/privacy_protection.html.docuwiki new file mode 100644 index 0000000..0c39321 --- /dev/null +++ b/dump/privacy_protection.html.docuwiki @@ -0,0 +1,46 @@ +====== Privacy protection ====== + +Have you ever wondered why so many web sites offer various services for free? Consider social networks. They let you stay in touch with friends, share photos, chat, recommend stuff, etc. Even if you are not involved in a social network, you are probably using one of those cool services around there such as a web feedreader, photo albums, online documents, and so on. + +Are they giving you "free" services? This depends on your definition of free. Using them doesn't actually cost you money //directly//. However, these companies do need money to operate. Their source of revenue is derived mostly by advertisers and the more information these companies have (tastes, thoughts, locations, relations, …), the more they can profit from selling it. Yes, that's right: they sell //your// information. + +Too much paranoia? Maybe. However, let's try a test. Visit the link below (it will redirect to doubleclick.net; it will work better if you visit it with a browser/computer used only by yourself with no blockers): + +http://www.google.com/ads/preferences/ + +It probably guessed your demographic information and/or interests. How do they know? They track your internet usage by means of an HTTP cookie, which is a small file that some websites leave on your computer when you visit them. While it is not a big issue //per se// (they can be used to, for example, save your preferences for a website), they can also be used to collect information about you, as shown above. + +A cool and informative visualization of the tracking process can be seen here: http://collusion.toolness.org/ + +===== Tracking methods ===== + +So, it would seem HTTP cookies (as just seen) are the problem. No, it is (was?) the most widely used/known method. There are various other techinques: + +Local Shared ObjectsLike standard cookies, but done with Adobe Flash. Check the [[http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager06.html|Website Privacy Settings panel]].Zombie cookiesYet another cookie type. This one's particular, though. It will be recreated even if the user has deleted it. Actually, it's not just a single cookie, like the HTTP or flash types. Other storage mechanisms will additionally be used (e.g., HTML5 Storage, Silverlight Isolated Storage, Web cache|history, etc. and if the user fails at removing them, they will repopulate the data storage. Read more here: http://en.wikipedia.org/wiki/Zombie_cookie.Web bugsA small or invisible object (like a 1x1 pixel image) is put into a web site or e-mail message which is loaded from a third party. Read the [[http://w2.eff.org/Privacy/Marketing/web_bug.html|Web Bug FAQ]]Browser fingerprintingYour browser can send information that makes could make your system uniquely identifiable. See http://panopticlick.eff.org/XXX More?? XXXXXX + +Even if you don't care about online privacy, you should be aware of the fact that some of the above techiques can be used to impersonate you. See, for instance, an article about [[http://en.wikipedia.org/wiki/HTTP_cookie#Cookie_theft_and_session_hijacking|Cookie theft and session hijacking]]. + +So far we have seen some of the hidden risks to your online privacy that don't require you to do something in particular, just that you browse the internet. There are also various activities that are based on the information you explicitly give (though, of course, the methods discussed above still apply): search engines and social networks. + +===== Search engines ===== + +Every time you submit a request to a search engine, they will log it and associate it with you. XXX expand XXX. Alternatives: http://duckduckgo.com/, ... + +===== Social networks ===== + +XXX expand XXX + +delete EXIF information + +===== Protect your privacy ===== + +So, how to protect your privacy on-line? Some useful suggestions: + + * Install an ad- or script-blocker and/or a filtering web-proxy: [[https://addons.mozilla.org/en-US/firefox/addon/noscript/|NoScript]] and [[https://addons.mozilla.org/en-US/firefox/addon/betterprivacy/|BetterPrivacy]] (for Firefox), [[http://www.privoxy.org/|Privoxy]]. + * Turn off HTML in your mail reader (for web bugs). + +===== Resources ===== + + * [[http://www.eff.org/wp/effs-top-12-ways-protect-your-online-privacy|EFF's Top 12 Ways to Protect Your Online Privacy]] + +$Id: privacy_protection.html,v 1.3 2011/11/28 16:58:03 jbaber Exp $ \ No newline at end of file diff --git a/dump/procmail.html.docuwiki b/dump/procmail.html.docuwiki new file mode 100644 index 0000000..a842875 --- /dev/null +++ b/dump/procmail.html.docuwiki @@ -0,0 +1,18 @@ +===== Procmail on SDF... ===== + +First, see the [[http://sdf.lonestar.org/index.cgi?faq?EMAIL?14|FAQ Email 14]] + + SDF receives mail for user from remote sender + SDF's local mail delivery agent (MDA) consults $HOME/.forward + if .forward calls procmail, then the MDA pipes the mail to procmail for filtering, with $HOME/.procmailrc + Procmail runs on the mail machine for which $MAILDIR (/mail/maildir/...) is local (not across the NFS (network file system) wire. + Best practice is for procmail filtering destinations to be local to where procmail is running, in $MAILDIR. + Unfiltered mail is then returned by procmail to the MDA which deposits it in $MAIL, also local to the mail machine, and is the users INBOX + User clients (i.e. mail, mutt, alpine, etc.) may read mail from $MAIL, and from $MAILDIR files, across the NFS wire to the $HOME machine for reading. + The local client may then store the mail locally in $HOME or back on the mail machine in $MAILDIR + +For procmail utilization ideas, see the [[http://sdf.org/?tutorials/e-mail-advanced|"Email, Advanced Topics" tutorial]] + +---- + +$Id: procmail.html,v 1.2 2010/05/02 21:52:34 avoyager Exp $ \ No newline at end of file diff --git a/dump/programming-languages.html.docuwiki b/dump/programming-languages.html.docuwiki new file mode 100644 index 0000000..f31f2d8 --- /dev/null +++ b/dump/programming-languages.html.docuwiki @@ -0,0 +1,14 @@ +===== PROGRAMMING ===== + +=== Programming Languages available at SDF === + + * C + * C++ + * LISP + * [[http://sdf.org/?tutorials/basic-language|BASIC]] + * awk + * perl + * python + * sed + * sh + * .. //This tutorial provides links to subsections for each programming language available on SDF. The subsections include a plethora of fun and interesting examples that can be readily entered and executed.//$Id: programming-languages.html,v 1.2 2016/08/10 15:26:32 smj Exp $ \ No newline at end of file diff --git a/dump/psshfs.html.docuwiki b/dump/psshfs.html.docuwiki new file mode 100644 index 0000000..8f5a6d7 --- /dev/null +++ b/dump/psshfs.html.docuwiki @@ -0,0 +1,97 @@ +===== Mounting SDF Folders on a NetBSD Local Machine via mount_psshfs(8) ===== + +---- + +==== What is mount_psshfs(8) ? ==== + +[[http://netbsd.org/|NetBSD]] has its own implementation of [[http://fuse.sourceforge.net/|FUSE]] called ReFUSE(3); mount_psshfs(8) creates sshfs mounts via PUFFS(4) (Pass-to-Userspace Framework File System). See the respective manpages and References section for details. + +==== Creating basic psshfs mounts: ==== + +You'll likely need root permissions to run mount_psshfs(8); examples below assume the sudo(8) tool is installed. + +**ex.1)** create a basic read-only mount of an SDF user's $HOME directory under /mnt: + + sudo mount_psshfs -o ro sdf_user@freeshell.org /mnt + sdf_user@freeshell.org's password: ******** + +Use the mount(8) command to see what the mount looks like: + + mount -t puffs\|psshfs + sdf_user@freeshell.org on /mnt type puffs|psshfs (read-only) + +**ex.2)** mount sdf_user@freeshell.org/gopher read-write with compression and public key authentication: + + sudo mount_psshfs -O Compression=yes -O IdentityFile=/home/local_user/.ssh/id_rsa sdf_user@freeshell.org:gopher /mnt + +For help setting up public key authentication see the [[http://sdf.org/?tutorials/SSH-SDF#public_key|SSH-SDF]] tutorial. + +**ex.3)** put the above in /etc/fstab; mount to local /puffsmnt: + + sudo mkdir /puffsmnt + + sudoedit /etc/fstab + ... + # psshfs PUFFS mount of gopher dir on sdf_user@.sdf.org + sdf_user@sdf.org:/ftp/pub/users/sdf_user /puffsmnt psshfs rw,noauto,-O=BatchMode=yes,-O=IdentityFile=$HOME/.ssh/id_rsa,-t=-1 + + sudo mount /puffsmnt + +==== Fixing the displayed file permissions with **mount_umap(8)** ==== + +With the above examples you'll probably notice that the UID:GID values for the psshfs mount are either numerical values or otherwise not what you might expect; this is because your local system doesn't have mappings for the remote UID:GID (what you're seeing) to the local system. If you like, you can create a local //sub-tree// of the puffs mount with re-mapped UID:GID values using mount_umap(8). The following example creates two mapfiles (must be root owned) and a new mount point under the local user's $HOME directory and mounts /puffsmnt from ex.4 above: + +**ex.5)** mount /puffsmnt to ~local_user/puffy with local_user:users permissions: + +First, we find who's who on local system (note: UID/GID are fields 3 & 4): + + ls -dnl /puffsmnt + drwxr-xr-x 42 012345 550 512 Aug 31 2011 puffsmnt + + grep local_user /etc/passwd + local_user:*:1000:100:Loco User ,Seattle,WA ,:/home/local_user:/bin/ksh + +From above we see that we need to re-map local UID 1000 to 012345, and local GID 100 to 550. We just have one remapping each so the uid-mapfile and gid-mapfile files get made like so: + + sudoedit /uid-mapfile + 1 + 1000 012345 + + sudoedit /gid-mapfile + 1 + 100 550 + +Now we make the ~local_user/puffy dir and mount the umap sub-tree of /puffsmnt on it: + + mkdir ~local_user/puffy + sudo mount_umap -o nocoredump -g /gid-mapfile -u /uid-mapfile /puffsmnt ~local_user/puffy + +Use mount(8) and ls(1) to see what the umap mount looks like: + + mount -t umap + /puffsmnt on /home/local_user/puffy type umap (nocoredump) + + ls -dl ~local_user/puffy + drwxr-xr-x 101 local_user users 512 Dec 6 2010 puffy + +Alternately, you can add the umap mount to /etc/fstab: + + sudoedit /etc/fstab + ... + /puffsmnt /home/local_user/puffy umap rw,noauto,nocoredump,-g=/gid-mapfile,-u=/uid-mapfile + + sudo mount ~local_user/puffy + +==== Unmounting umap and psshfs mounts: ==== + +Unmount umap and psshfs mounts in the usual way with umount(8), but do it in //reverse// order: + + sudo umount ~local_user/puffy + sudo umount /puffsmnt + +==== References: ==== + + * [[http://www.netbsd.org/docs/puffs/|NetBSD PUFFS documentation]] + * [[http://man.netbsd.org/|NetBSD manpages]] + +\\ $Id: psshfs.html,v 1.2 2011/12/13 05:53:48 jgw Exp $ \ No newline at end of file diff --git a/dump/repeaters.html.docuwiki b/dump/repeaters.html.docuwiki new file mode 100644 index 0000000..5c31471 --- /dev/null +++ b/dump/repeaters.html.docuwiki @@ -0,0 +1,46 @@ +====== [[index.html|SDF ARC]] ====== + +===== SDF.ORG's Amateur Radio Club ===== + + * [[index.html|Home]] + * [[roster.html|Roster]] + * [[net.html|NET]] + * [[repeaters.html|Repeaters]] + * [[contact.html|Contact Us]] + +===== Repeaters used by SDFARC members ===== + +^ **IRLP** ^ **EchoLink** ^ **Frequency** ^ **PL Tone** ^ **ID** ^ **Trustee** ^ **QTH** ^ **Users** ^ +| | 46246 | 443.850 | 110.9 | [[http://qrz.com/db/wr4ayc|WR4AYC]] | [[http://qrz.com/db/wr4ayc|WR4AYC]] | Coral Springs, FL, USA | [[http://qrz.com/db/kj4sre|KJ4SRE]] | +| 2596 | 148649 | 145.450 | 151.4 | [[http://qrz.com/db/ve3rix|VE3RIX]] | [[http://qrz.com/db/ve3rix|VE3RIX]] | Ottawa, Ontario, Canada | [[http://qrz.com/db/VA2BBW|VA2BBW]] | +| 7774 | 447770 | 146.960- | 103.5 | [[https://web.psrg.org|WW7PSR]] | [[http://qrz.com/db/w7uul|W7UUL]] | Seattle, WA USA | [[http://qrz.com/db/w0tty|W0TTY]] | +| 3330 | 417277 | 442.875 | 141.3 | [[http://wa7uhf.com|WA7UHF]] | [[http://qrz.com/db/kk7u|KK7U]] | Seattle, WA USA | [[http://qrz.com/db/w0tty|W0TTY]] | +| | 482474 | 444.650+ | 131.8 | [[http://wa7hjr.org|WA7HJR]] | [[http://qrz.com/db/W7HNH|W7HNH]] | Issaquah, WA USA | [[http://qrz.com/db/w0tty|W0TTY]] | +| 7378 | 111001 | 444.700 | 103.5 | [[http://qrz.com/db/ww7sea|WW7SEA]] | [[http://qrz.com/db/ww7sea|WW7SEA]] | Seattle, WA USA | [[http://qrz.com/db/w0tty|W0TTY]] | +| | 524887 | 147.360 | 110.9 | [[http://qrz.com/db/k5tsu|K5TSU]] | [[http://qrz.com/db/k5iiy|K5IIY]] | Stephenville, TX USA | [[http://qrz.com/db/wa5pb|WA5PB]] | +| | 48950 | 438.950 | 77.0 | [[http://qrz.com/db/hb9ag|HB9AG]] | [[http://qrz.com/db/hb9ag|HB9AG]] | Strihen AG, Switzerland | [[http://qrz.com/db/hb9kns|HB9KNS]] | +| 6739 | 331193 | 146.700- | 141.3 | [[http://qrz.com/db/vk7otc|VK7RAD]] | [[http://qrz.com/db/VK7RAD|VK7RAD]] | Tasmania, AUS | [[http://qrz.com/db/VK7NTK|VK7NTK]] | +| | | 147.135+ | 110.9 | [[http://qrz.com/db/w5ym|W5YM]] | [[http://qrz.com/db/w5ym|W5YM]] | Fayetteville, AR | [[http://qrz.com/db/kd5ryo|KD5RYO]],[[http://qrz.com/db/kg5rht|KG5RHT]] | +| | | 444.700+ | 97.4 | [[http://qrz.com/db/w5ym|W5AWX]] | [[http://qrz.com/db/w5ym|K5DVT]] | Springdale, AR | [[http://qrz.com/db/kd5ryo|KD5RYO]] | +| | 8231 | 146.760- | 162.2 | [[http://qrz.com/db/k9cu|K9CU]] | [[http://qrz.com/db/k9bf|K9BF]] | Champaign, IL | [[http://qrz.com/db/ab9fj|AB9FJ]] | +| | | 449.440 | 107.2 | [[http://qrz.com/db/K6XI|K6XI]] | [[http://qrz.com/db/K6XI|K6XI]] | San Diego, CA | [[http://qrz.com/db/NB0X|NB0X]] | +| | | 146.940 | 162.2 | [[http://qrz.com/db/W7ARA|W7ARA]] | [[http://qrz.com/db/W7ARA|W7ARA]] | Phoenix, AZ | [[http://qrz.com/db/KD7JNY|KD7JNY]] | +| | 872590 | 146.100 | 127.3 | [[http://qrz.com/db/W4IZ|W4IZ]] | [[http://qrz.com/db/N4UF|N4UF]] | Jacksonville, FL | [[http://qrz.com/db/KI4LHU|KI4LHU]] | + +===== Repeaters carrying the SDFARC weekly net ===== + +^ Frequency ^ PL Tone ^ ID ^ Trustee ^ QTH ^ +| 444.700+ | 97.4 | W5AWX | K5DVT | Springdale, Arkansas | +| 442.075+ | 97.4 | W5AWX | K5DVT | Siloam Springs, Arkansas | + +===== Digital voice services used by SDFARC members ===== + +^ DV Service ^ Users ^ +| DMR Brandmeister 31066 (SoCal)\\ [[http://hose.brandmeister.network/31066/|Hoseline]] [[https://brandmeister.network/?page=lh&DestinationID=31066|Last Heard]] | [[http://qrz.com/db/NB0X|NB0X]] | +| DMR Brandmeister 3106 (California)\\ [[http://hose.brandmeister.network/3106/|Hoseline]] [[https://brandmeister.network/?page=lh&DestinationID=3106|Last Heard]] | [[http://qrz.com/db/NB0X|NB0X]] | +| DMR TAC 310 (Brandmeister and DCI)\\ [[http://hose.brandmeister.network/310/|Hoseline]] [[https://brandmeister.network/?page=lh&DestinationID=310|Last Heard]] | [[http://qrz.com/db/w0tty|W0TTY]], [[http://qrz.com/db/NB0X|NB0X]], [[http://qrz.com/db/KD7JNY|KD7JNY]] | +| DMR SDFARC 31650 (Brandmeister)\\ [[http://hose.brandmeister.network/31650/|Hoseline]] [[https://brandmeister.network/?page=lh&DestinationID=31650|Last Heard]] | [[http://qrz.com/db/KD7JNY|KD7JNY]] | +| Echolink *TECHLINK* Conference (9229) | [[http://qrz.com/db/NB0X|NB0X]] (Also used during SDFARC Monday NET) | +| AllStarLink Node 47599\\ [[http://stats.allstarlink.org/nodeinfo.cgi?node=47699|Status]] | [[http://qrz.com/db/KD5RYO|KD5RYO]] (Transmitter occasionally disconnected) | + + Copyright © black_white | [[http://validator.w3.org/check?uri=referer|HTML5]] | [[http://jigsaw.w3.org/css-validator/check/referer|CSS]] | [[http://www.html5webtemplates.co.uk|Free CSS Templates]]$Id: repeaters.html,v 1.34 2019/11/16 12:26:16 thegiant Exp $ \ No newline at end of file diff --git a/dump/resources4web.html.docuwiki b/dump/resources4web.html.docuwiki new file mode 100644 index 0000000..8ac91e2 --- /dev/null +++ b/dump/resources4web.html.docuwiki @@ -0,0 +1,101 @@ +====== Resources for Developing Your Website ====== + +---- + +===== Contents ===== + + * [[#intro|Introduction]] + * [[#edit|Editing Text]] + * [[#html|Help with HTML]] + * [[#css|Cascading Stylesheets (CSS)]] + * [[#js|Javascript]] + * [[#other|Other Resources]] + * [[#books|Books]] + +===== [[|Introduction]] ===== + +So, you've followed the instructions. You've run "mkhomepg". You've created your first html document, and you've got as far as displaying "Hello, World" in a browser for all to see. So far so good. But what next? This brief tutorial aims to help you take that next step, so you can create a web page that looks good, performs well, and may even accomplish whatever goal you have for it. + +==== The Golden Rule ==== + +Unless your aim is simply (and exclusively) to learn how to code a web page, the most important consideration going into your project is content. In general, the purpose of any web page is to provide information or interaction of some sort. It could be to share photos with family and friends. It could be to exchange ideas with like minded individuals about some interest or hobby. It could be a blog for your fevered rantings.\\ The nature of the content is naturally up to you - that's the beauty of it. And as it is up to you, a discussion of content beyond this simple admonishment is beyond the scope of this tutorial. But it is important to remember that without interesting or useful content, there simply is no point. + +==== Strategy ==== + +I won't pretend that I can teach you all you need to know about making a web page. But as someone who has been working with web pages for more than five years, I do know my way around. My strategy in this tutorial is to bring up topics of interest and then direct you to online resources of high quality and free availability,based on open standards.\\ This strategy is designed to be in accord with the goals and ethos of SDF. So while you won't find much here about //what to do// - I hope you will benefit from my suggestions on //where to look//. + +===== [[|Editing Text]] ===== + +At their most basic level, web pages are text files. Thus, you need a way of editing the text that will make up your web pages. If you wish to build your web page from within your SDF shell account, numerous text editors are available. To see a list, enter the following commands at your shell prompt: + + $ faq + g basics + t 9 + +As you can see, there are quite a few to choose from. Some are simple, and some are complex and quite amazingly powerful. I find "pico" convenient and easy to use. Many on SDF like "nano". And for those who are willing to learn them there are much more powerful editors like "vi", "vim" and "emacs" which offer an unmatched degree of customization. What is important is to choose an editor that you are comfortable working with, as you will be spending considerable time using it.\\ Some folks, myself included, may find it easier to do their editing in their desktop environment. If you are an ARPA lifetime member (one-time fee of $36), this presents no obstacle as ftp (and sftp) is available for transfering your finished work to your html folder on SDF. + +===== [[|Help With HTML]] ===== + +Hypertext Markup Language (HTML) is the primary language of the world wide web. In its simplest terms, it provides for structuring the text of your web page, through the use of various "tags" which "mark" your text with structural attributes.\\ For example, text which falls between the opening tag <h1> and the closing tag </h1> is interpreted by a web browser as being a level one heading. + +A full description of HTML is well beyond the scope of a basic tutorial, yet it is important that you have access to complete information. Fortunately, what you need is indeed freely available on the web. If you choose to ignore everything else in this tutorial, I would like you nontheless to heed this advice. The website of the [[http://www.w3c.org|World Wide Web Consortium]] (who set the standards and conventions for the World Wide Web) is your friend. Visit it. Get to [[http://www.w3.org/Consortium/new-to-w3c|know]] it. Learn to love it. + +Some specific HTML related pages on the W3C site which may be helpful to you are listed below: + + * [[http://www.w3.org/MarkUp/Guide/Overview.html|Getting Started with HTML]] + * [[http://www.w3.org/MarkUp/Guide/Advanced.html|More Advanced Features]] + * [[http://validator.w3.org/|HTML Validator]] + * [[http://www.w3.org/People/Raggett/tidy/|HTML Tidy]] + +Of these, perhaps the most important is the Validator. By using the validator to check your work, you can ensure that your web page is standards compliant - built to work in a wide variety of browsers on any number of platforms. You'll find it also catches your typos (in your HTML, not your content). + +Other HTML resources you may find useful: + + * [[http://www.w3schools.com/|W3 Schools]] + * [[http://www.ncdesign.org/|Network Communication Design]] + +===== [[|Cascading Stylesheets (CSS)]] ===== + +Although HTML provides rudimentary formating capabilities through various tags and attributes, the preferred method of setting properties such as margins, text size, colors and other such goodies is through the use of stylesheets. Not only do stylesheets provide more power and flexibility than is available through pure HTML, they also make it much easier to maintain or adjust the appearance of your web pages. What is more, the use of style sheets can actually save bandwidth, thus decreasing the size of and increasing the responsiveness of you site.This is generally considered a [[http://www.catb.org/~esr/jargon/html/G/Good-Thing.html|Good Thing]]. \\ The W3C again provides a wealth of materials. I find the following links useful: + + * [[http://www.w3.org/Style/Examples/011/firstcss|Starting With HTML + CSS]] + * [[http://www.w3.org/MarkUp/Guide/Style|Adding a touch of style]] + * [[http://jigsaw.w3.org/css-validator/|CSSValidator]] + +===== Javascript ===== + +At its core, HTML is simply a markup language, a derivative of SGML. Even with the help of Cascading Stylesheets, it is not really a fully functional as a layout design tool. Rather it aims at page description - identifying your document heirarchy, describing lists and tables, and so on. For more elaborate construction work, it is often useful to employ a scripting language to expand your design capabilities. Several are available, but perhaps the most popular is the client-side running javascript. + + * [[http://www.mozilla.org/js/|Javascript information at Mozilla.org]] + * [[http://www.w3schools.com/js/default.asp|Javascript resources at W3 Schools]] + * [[http://www.javascriptkit.com/javatutors/primer1.shtml|Javascript Primer at javascriptkit.com]] + * [[http://www.irt.org/links/JavaScript_Resources/index.html|irt.org: JavaScript Resources]] + +===== [[|Other Resources]] ===== + +HTML, CSS, Javascript - these are all well established parts of your "general purpose" web design toolkit. There are lots of more specialized tools available as well. I will just list a few here that you can explore in case you are interested. + + * [[http://us3.php.net/FAQ.php|PHP FAQ at php.net]] - Server-side Scripting Language + * [[http://www.mysql.com/|MySQL]] - Database Software + * [[http://www.libpng.org/pub/png/|Information on PNG]] + * [[http://wordpress.org/|WordPress blogging software]] + * [[http://www.blackpearlcomputing.com/bpc/Bandwidth_stuff/default.html|The Bandwidth Conservation Society]] + +===== [[|Books]] ===== + +For those of you who, like me, find it beneficial to work with books in addition to online resources, I offer the following suggestions. You may purchase these books directly from [[http://www.oreilly.com/|O'Reilly]], or from a discount bookstore like [[http://www.bookpool.com|BookPool]], or you can locate a used copy from [[http://www.abebooks.com|ABE Books]] or [[http://www.alibris.com|Alibris]]. + +=== Friendly Introduction === + + * Head First HTML with CSS & XHTML Elisabeth Freeman & Eric Freeman, O'Reilly & Associates + +=== References === + + * HTML: The Definitive Guide Chuck Musciano & Bill Kennedy, O'Reilly & Associates + * Cascading Style Sheets: The Definitive Guide Eric A. Meyer, O'Reilly & Associates + * Javascript: The Definitive Guide David Flanagan, O'Reilly & Associates + * Web Design in a Nutshell: A Desktop Quick Reference Jennifer Niederst Robbins, O'Reilly & Associates + +---- + +$Id: resources4web.html,v 1.2 2006/05/22 16:02:59 jboy Exp $ \ No newline at end of file diff --git a/dump/roster.html.docuwiki b/dump/roster.html.docuwiki new file mode 100644 index 0000000..f170151 --- /dev/null +++ b/dump/roster.html.docuwiki @@ -0,0 +1,110 @@ +====== [[index.html|SDF ARC]] ====== + +===== SDF.ORG's Amateur Radio Club ===== + + * [[index.html|Home]] + * [[roster.html|Roster]] + * [[net.html|NET]] + * [[repeaters.html|Repeaters]] + * [[contact.html|Contact Us]] + +===== SDF ARC Roster ===== + +^ **Callsign** ^ **Name** ^ **Joined** ^ **uid** ^ **Comments** ^ +| W0TTY | Stephen M Jones | 06-MAR-2010 | smj | | +| K4EMB | Erin Brown | 06-MAR-2010 | emb | | +| VA2BBW | Ante Laurijssen | 06-MAR-2010 | | | +| WA5PB | William D. Allen | 06-MAR-2010 | wa5pb | | +| [[http://www.unixparty.com|KC8YHO]] | Robert J Johnson | 01-OCT-2017 | | Mi,USA,Fema,EMD,SOM,R.A.C.E.S,A.R.I.E.S, www.unixparty.com , www.kaylasoft.com | +| HB9KNS | Yargo Bonetti | 06-MAR-2010 | yargo | Switzerland | +| KD5RYO | Christopher M. Hobbs | 06-MAR-2010 | hobbsc | EM26re, FM Satellites, QRP LID, [[http://stats.allstarlink.org/nodeinfo.cgi?node=47699|AllStarLink node 47699]], [[https://qrz.com/db/KD5RYO|QRZ Bio]], [[http://hobbsc.sdf-us.org|SDF Page]]. | +| VK7NTK | Thomas Karpiniec | 06-MAR-2010 | thomask | | +| K7IBC | Patrick Kern | 11-MAR-2010 | | | +| K5WLF | Larry D. Barr | 13-MAR-2010 | | | +| KB3JC | Steve McNaughton | 16-MAR-2010 | | | +| KB1JCD | Trevor Bergeron | 20-MAR-2010 | | | +| KB9SZX | Charlie Dickson | 22-MAR-2010 | | | +| AF6KI | C. Poda | 29-MAR-2010 | | | +| KA3ZOF | D. Montalvo | 14-APR-2010 | | | +| KC0ZMX | Ben Sinclair | 20-APR-2010 | | | +| KB0MNX | Rick Fryar | 02-MAY-2010 | | | +| KA6JLT | Rob Louis Walker | 23-MAY-2010 | | | +| AB9FJ | Wayne Hamilton | 06-MAR-2017 | jwh | | +| KI7HQF | David Rocamora | 14-MAR-2017 | | | +| VE3KPV | Jesse Lawrence | 15-MAR-2017 | | | +| G0DUB | Greg Mossop | 16-MAR-2017 | | | +| KF7MIX | Joseph Lyman | 17-MAR-2017 | | | +| KM4EXS | Matthew Alberti | 18-MAR-2017 | | | +| KZ2X | Dan Cross | 20-MAR-2017 | | | +| KK4QGD | Derek Velez | 22-MAR-2017 | | | +| KG5SIZ | Trenton Ray | 23-MAR-2017 | | | +| VA7KSH | Seth Kushniryk | 23-MAR-2017 | | | +| KJ4VXB | Justin Elam | 24-MAR-2017 | | | +| K4KPW | Ted Wood | 24-MAR-2017 | elw | | +| N3HNR | Jason Galanter | 26-MAR-2017 | | | +| NV0N | Joey Stanford | 6-APR-2017 | | | +| KD6NRI | Robert A Book | 7-APR-2017 | | | +| N3JTW | Kurt Geisel | 14-APR-2017 | | | +| NB0X | Matthew Wishek | 18-APR-2017 | nonlinear | http://nonlinear.sdf.org | +| KB1ZJS | Joe O'Boyle | 23-APR-2017 | | | +| KE8GRY | Eric Lynema | 25-APR-2017 | epl692 | Holland, MI | +| KG5RHT | Tyrel Denison | 27-APR-2017 | | | +| N9MAZ | James L. Mazurek | 27-APR-2017 | | | +| N5RAS | Rob Sayers | 27-APR-2017 | | | +| KD7JNY | Jeff Brissette | 19-MAY-2017 | kd7jny | | +| AD0QM | Jeff | 19-MAY-2017 | | | +| [[https://gerryk.com|EI8DRB]] | Gerry | 08-JUN-2017 | | | +| KK6VQU | Duz | 07-JUL-2017 | | | +| KE8HKA | Matthew | 13-JUL-2017 | | | +| KB1KSF | Stan Wojnowski | 14-JUL-2017 | | | +| KD2NXQ | Benu | 27-JUL-2017 | | | +| WB5RAY | Ray Lopez | 02-NOV-2017 | | San Antonio, Texas, USA | +| K2GFM | Greg March | 01-JAN-2009 | | Montvale, NJ, USA | +| K1RPN | Michael Shriver | 21-NOV-2017 | shriver | Seattle, USA. | +| KC2UGV | Corey Reichle | 17-JUN-2010 | creichle | | +| KI6NIZ | Peter | 29-DEC-2017 | froggyme | | +| KD9IPQ | Matthew | 29-DEC-2017 | notptr | | +| KC2OQF | Michael Carson | 2017-12-29 | mcarson | New Jersey | +| AE5JL | Jesse B. Crawford | 2018-01-01 | jcrawford | Albuquerque, N. Mex. | +| VA3XMR | A.M. Rowsell | 2018-01-01 | amrowsell | Toronto, Ontario, Canada | +| G8XXM | Chris Beecher | 2018-01-04 | chrisb | Milton Keynes UK | +| EA4FVW | Eugenio de la Torre | 2018-01-04 | adeka | Madrid, Spain | +| KE0AZ | David | 2018-01-05 | dbrunner | Denver | +| KA9YNI | Greg | 2018-01-07 | koenig | Tennessee | +| K4ETC | Jonathan | 2009-11-24 | etctweak | | +| KJ4CAQ | AUDRA | 2008-10-08 | new | Novice | +| KJ4WAI | Spencer | 2014-12-10 | kj4wai | Pending General | +| W1PID | Jim | 2018-1-26 | w1pid | w1pid.com QRP /P pics | +| KK6TJF | Shang-Lin E. Chen | 2018-Jan-27 | shangril | | +| AG5RB | Ross | 2018-Jan-27 | bullet | | +| [[https://www.qrz.com/db/py2bil|PY2BIL]] | Guillermo Cremerius | 08-FEB-2018 | gcremeri | (former PU2TLU) Sao Paulo - Brazil | +| KJ4WNA | Max Heidel | 26-FEB-2018 | jsq | | +| KK6TND | Seth Nagao | 01-APR-2018 | dokuja | | +| AF7JM | Eugene | 10-APR-2018 | herdin | | +| KC4UPR | Rob French | 10-APR-2018 | scrape | | +| NB9F | Chris | 2018-04-13 | c25l | I'm Chris, NB9F c25l | +| K4OSS | Charlie | 05-APR-2018 | cwr | Nomadic (USA) | +| KB3HCG | Michael | 23-APR-2018 | mpop | | +| VK6HDX | Troy | 05-MAY-2018 | troy | | +| VK3FAJO | Dan | 07-MAY-2018 | vk3fajo | | +| KC3JFV | Mike | 10-JUNE-2018 | mikero | | +| KF5YDU | Austin Langley | 29-JUN-2018 | kf5ydu | Alexandria, VA | +| KC3LYZ | Robert Rodriguez | 28-AUG-2018 | robertr | Philadelphia, PA | +| W2CLM | Chris Maltese | 04-SEP-2018 | cmaltese | Boynton Beach, FL (I hang out on D-Star REF 020A) | +| [[http://tisho.sdf.org|LZ2DJT]] | Tihomir H | 15-JAN-2019 | tisho | From Varna, Bulgaria, DJ in aNONradio.net, Owner of the [[https://onlinedjradio.com|OnlineDJRadio]] | +| N4JEK | Johnny Kinsey | 24-FEB-2019 | codingcowboy | QTH: Jacksonville, FL | +| MW0MWZ | Andy Taylor | 14-MAR-2019 | ajt | Mr Pi-Star | +| K7XUU | Jon Lundy | 16-APR-2019 | xuu | QTH: Draper, UT | +| N5BJL | Ben Lindsey | 16-APR-2019 | blindsey | | +| KJ6HN | Samuel Rosan | 08-May-2019 | mrosan | | +| KC8BFI | Stephen Michael Kellat | 13-Jun-2019 | skellat | | +| KF6GPE | Raymond W Rischpater | 13-Jun-2019 | kf6gpe | | +| DL6MHC | Michael Clemens | 16-Jul-2019 | odie | | +| KC3NTG | Justin Overfelt | 17-Jul-2019 | jboverf | | +| KC0RJX | Bryan Bishop | 10-SEP-2019 | bjbishop | | +| WB1HIH | Sean M. Goodman | 24-OCT-2019 | amarand | Galloway, OH | +| KI4LHU | Matthew Blocker | 11-NOV-2019 | thegiant | | +| VE7KI | Michael A Beaveridge | ?? | ve7ki | *TECHLINK* Echolink node 9229 Trustee | +| KJ5T | Steve Anness | 19-MAY-2020 | sxanness | QTH: Austin, TX | + + Membership in SDF ARC is free and open to all people interested in amateur radio.\\ MetaARPA members can join by adding themselves to the roster\\ (just like editing a [[http://sdf.org/?tutorials/tutorial_editing|[Tutorial]]], path: /sys/html/tutorials/sdfarc.org/),\\ or generally just post to the HAMRADIO section of the BBOARD and say hello !\\ Copyright © black_white | [[http://validator.w3.org/check?uri=referer|HTML5]] | [[http://jigsaw.w3.org/css-validator/check/referer|CSS]] | [[http://www.html5webtemplates.co.uk|Free CSS Templates]]$Id: roster.html,v 1.102 2020/05/19 21:59:44 sxanness Exp $ \ No newline at end of file diff --git a/dump/rsync-backup.html.docuwiki b/dump/rsync-backup.html.docuwiki new file mode 100644 index 0000000..23a1e99 --- /dev/null +++ b/dump/rsync-backup.html.docuwiki @@ -0,0 +1,82 @@ +====== Backing Up $HOME Using rsync ====== + +---- + +===== Content ===== + + * [[#why|Why should I backup?]] + * [[#requirements|Requirements]] + * [[#rsync|Why rsync?]] + * [[#backup|Basic rsync backup.]] + * [[#restoring|Restoring]] + * [[#caveats|Caveats and extras]]\\ + * [[#slashes|Trailing directory slashes]] + * [[#delete|The "--delete" option]] + * [[#links|Rsync and symlinks]] + * [[#cron|Rsync and Cron]] + +\\ + +===== [[|Why should I backup?]] ===== + +As is [[http://sdf.lonestar.org/index.cgi?faq?MISC?01| clearly outlined in the FAQ]], SDF backups up system files only. SDF does NOT maintain backups of userspace. If there is something stored in your home directory that is important to you then you need to take on the responsibility of protecting it. Paragraph two of the [[http://sdf.lonestar.org/index.cgi?abuse/aup|SDF AUP]] also clearly outlines the fact that taking care of your files is your responsibility. + +===== [[|Requirements]] ===== + +What you will need to perform a mirror of your home directory on SDF to another location is a computer with ssh and rsync installed and enough space to store your SDF files. The instructions below are being run on an x86 running Linux, but should be suitable for Mac OS/X and Windows running cygwin. Please read the ssh and rsync documentation on those platforms for any differences. + +===== [[|Why rsync?]] ===== + +Rsync will allow you to syncronize your data on SDF to an area on another computer. Using rsync will enable you to copy only new files or files that have changed. This saves bandwidth for both parties and greatly speeds up the operation. Rsync is in current development, open source, and very flexible. It is possible to create a variety of different backups using rsync. + +===== [[|Basic rsync backup.]] ===== + +Only a portion of rsync's options and capabilities will be discussed here. See the rsync man page for further details. + +You may want to add the switch "-n" to your rsync commands while setting things up and testing. This option causes rsync to do a "dry run", executing the command and producing output without actually manipulating files. + +You will be using rsync on a machine to CONNECT TO SDF. What follows is NOT designed to be run from SDF. On the machine you wish to backup your SDF home directory to, issue the following: + +"rsync -avz -e ssh //username//@sdf.lonestar.org:/path/to/home /local/backup/dir" + +What does this mean? \\ + + * "-a" : archive mode. This preserves timestamps, owner and group information, mirrors recursivly, and copies symlinks as links. If you'd like to copy the link's referent, you will need to add the "-L" switch. + * "-v" : verbose mode. The names of files being copied will be sent to SDTOUT along with other information. + * "-z" : compress data being transmited. + * "-e" : specify the shell to be used. This is being used here to rsync over a secure shell connection. + * //username// : your SDF username. + * "/path/to/home" [[#caveat01|[1]]] : The path to the directory you wish to backup. + * "/local/backup/dir" : Where you would like the files to be stored locally. + +You will be prompted for your SDF password. Upon completion, rsync will report a few statistics to you such as the amount of data transfered and your average throughput. When you run this command subsiquently rsync will only backup new and changed files. + +===== [[|Restoring]] ===== + +Restoring a single file is as easy as using "sftp" or "scp" to transfer the file from your backup directory back to SDF. To restore your entire directory, simply issue the rsync command you used for backing up your SDF data with the source and destination reversed. + +===== [[|Caveats and extras]] ===== + +==== [[|Trailing directory slashes]] ==== + +Most often, the trailing slash when specifying a directory is optional. To rsync, however, the trailing slash has meaning when specifying the source directory. Omitting the trailing slash cause the entire directory structure of the source files to be recreated on the destination machine. Specifying the trailing slash, however, causes the directory structure only to be recreated from the given directory. + +For example: + +"rsync -avz -e ssh username@sdf.lonestar.org:/path/to/home /local/backup/dir" + +The above would produce "/local/backup/dir/path/to/home" on the destination machine. Adding the trailing slash on the source directory would simply dump the contents of of the directory into the destination dir. + +==== [[|The "--delete" option]] ==== + +Rsync's default behavior is to copy and update files on the source to the destination. If a file is removed from the source directory it is retained at the destination. Adding the "--delete" option causes files removed from the source directory to also be removed from the destination. + +==== [[|Rsync and symlinks]] ==== + +As stated above, the default behavior for copying links with rsync's "-a" option is to copy simlinks as links. On sdf $HOME/html and $HOME/gopher are links and will not be backed up unless you either specify the full path to those directories as separate backups or you add the "-L" option after the "-a" option to your rsync backup. + +==== [[|Rsync and Cron]] ==== + +Backups work best if they are done regularly. A nice way to make sure you don't forget to make regular backups is to have your computer remember for you by placing your rsync command in a cron job. Due to a password being involved, this is not a completly straightforward task and some caution is required. For a very good first read on this subject, please read [[http://troy.jdmz.net/rsync/index.html|Troy Johnson's]] nice writeup on the subject. + +$Id: rsync-backup.html,v 1.3 2007/04/26 18:11:08 avoyager Exp $ \ No newline at end of file diff --git a/dump/rubygems.html.docuwiki b/dump/rubygems.html.docuwiki new file mode 100644 index 0000000..71e8b28 --- /dev/null +++ b/dump/rubygems.html.docuwiki @@ -0,0 +1,25 @@ +====== Using RubyGems at SDF ====== + +[[http://rubygems.org/|RubyGems]] is the de facto standard [[http://en.wikipedia.org/wiki/Package_manager|package manager]] for the [[http://www.ruby-lang.org/|Ruby programming language]]. + +Consider requesting system-wide installation of gems that others may find useful instead of installing local copies for yourself. The usual way of making such requests is to post on the REQUESTS bboard. For a brief introduction to bboard, go [[http://sdf.org/tutorials/unx/node7.html#SECTION00730000000000000000|here]]. + +To install gems in your home directory, place the following in your ".gemrc": + + -- + gem: --no-ri --no-rdoc --user-install + +To access binaries installed by rubygems, append "/bin" to all gem paths listed by the "gem env" command and make sure they are in your path. For example, given: + + $ gem env + ... + - GEM PATHS: + - /usr/pkg/lib/ruby/gems/2.0.0 + - /arpa/ns/n/nerfling/.gem/ruby/2.0.0 + ... + +You should place both "/usr/pkg/lib/ruby/gems/2.0.0/bin" and "/arpa/ns/n/nerfling/.gem/ruby/2.0.0/bin" in your path. + +In bash, the command is: "export PATH=$PATH:`gem env gempath | sed -e 's!:!/bin:!'`/bin" + +$Id: rubygems.html,v 1.12 2014/06/05 02:36:25 nerfling Exp $ \ No newline at end of file diff --git a/dump/s3cmd_archive.html.docuwiki b/dump/s3cmd_archive.html.docuwiki new file mode 100644 index 0000000..7566037 --- /dev/null +++ b/dump/s3cmd_archive.html.docuwiki @@ -0,0 +1,21 @@ +====== How to use S3CMD to upload media files to the Internet Archive ====== + +Assume your band just had a show and you recorded the set and created MP3 tracks of all the songs you performed. Now you want to make those available for the whole world and for posterity. The Internet Archive is a great place to put them. Here's a way to do that from SDF in just four easy steps. + + - [[http://www.archive.org/account/login.createaccount.php |Open an IA account]] + - [[http://www.archive.org/account/s3.php|Generate your keys]] for the S3 API + - Create ".s3cfg" in your home directory: + access_key = KEY + secret_key = KEY + host_base = s3.us.archive.org + host_bucket = %(bucket)s.s3.us.archive.org + - Use "s3cmd" to create a bucket and upload media files: + # make a bucket + sm3cmd mb s3://foo-$$ + Bucket 's3://foo-29515/' created + # upload all MP3 files in the current directory + for F in *.mp3; do s3cmd put $F s3://foo-29515/$F; done + +Done! + +$Id: s3cmd_archive.html,v 1.3 2012/02/17 20:38:42 jboy Exp $ \ No newline at end of file diff --git a/dump/scmgit-intro.html.docuwiki b/dump/scmgit-intro.html.docuwiki new file mode 100644 index 0000000..6de56e1 --- /dev/null +++ b/dump/scmgit-intro.html.docuwiki @@ -0,0 +1,270 @@ +===== Introduction ===== + +git is a [[http://en.wikipedia.org/wiki/Revision_control|source control management]] tool similiar to CVS or SVN. This tutorial will give enough information to: + + * create a central git repository on your MetaARPA account + * clone that git repository to your off-site computer + * sync your changes with your repository copy on sdf + * create a public readonly copy of your repository + +The best reason why a person would use git instead of cvs or svn is that git does not require a central server. For example, let's say you were taking out a CVS repository to your laptop and would not be able to connect to the server for a month. When you get back, that entire months worth of work is seen as a single diff. Which you would have to merge by hand to the other changes, but also you couldn't differentiate between reasons you changed files. For example, let's say you fixed a bug and added a new feature. Which filechanges were for the new feature? Which for the bugfix? CVS has no clue. Enter git. You can locally "commit" changes without talking to the server, so you could have done a commit after the new feature and a commit after the bug fix and to the repository they are two unique changes. + +===== Configuring your account to use git on sdf ===== + +First, you must be MetaARPA to use git. + +Second, it may be necessary to update your "$PATH" on the main cluster to include git. The git pkg installs most binaries you need in /usr/pkg/libexec/git-core. This needs to be in your PATH. The easiest solution is to include the following in your "~/.profile": + +"export PATH=/usr/pkg/libexec/git-core/:${PATH}" + +If this is necessary and you plan on accessing the repository remotely over SSH, be sure this is done even on non-login shells. This may require including it in .kshrc, .bashrc, .zshenv, .cshrc, etc. + +Now any SSH session will have the necessary git binaries in the PATH. + +===== Creating a central git repository on SDF ===== + +I suggest creating a subdirectory that will hold nothing but your git repositories.. let's say it's ~/git. The server copy of the git repository need not be a useable repository (IE, the files under revision control do not need to exist.. we just need the git database to exist so we can clone from it). Under git this is called a "bare" repository. + +==== Create the server repository ==== + + mkdir -p ~/git/myproject + cd ~/git/myproject + git --bare init + +Note that the path is arbitrary and can be anywhere in your home directory. This can be done either on the Meta Array or on the main cluster. + +And that's it! on the server side. This remains empty until you first "push" your project to the server. + +===== Creating your local git repository. ===== + +On your local machine, let's assume you already have a project you want to start watching under git, with the files + + * "~/proj/" + * "~/proj/include" + * "~/proj/test.c" + * "~/proj/include/test.h" + +First, initialize the git project: + + cd ~/proj + git init + +Now your repository is initialized! Time to check in your current project. First we add the files to the repository. I like to manually add each file instead of doing a "commit all" because "commit all" tends to collect files you never wanted to add to source control (object files, temp editing files, etc). + + git add test.c include/test.h + git commit + +If the commit failed, follow the directions onscreen to configure your username and email so git can track you as a user in the repository. + +Now time to connect your local copy to the repository on the main cluster: + + git remote add origin user@sdf.org:git/proj + git push origin master + +Or, if you created your repo on the Meta Array, set up your remotes like this: + + git remote add origin user@ma.sdf.org:git/proj + git push origin master + +Git should ask for your password, and then tell you it uploaded the objects and that everything succeeded.\\ If not, ask on the sdf forum for advise. + +===== Copying (cloning) your central repository to a client machine ===== + +Last thing: Now that you have a central copy, how do you check it out? use "git clone" from your local machine: + +"git clone ssh://user@sdf.org/~/git/proj" + +If your repo was created on the Meta Array, adjust accordingly: + +"git clone ssh://user@ma.sdf.org/~/git/proj" + +===== Backing up all your existing git repos to a remote server ===== + +sdf doesn't backup your git repository.. while any cloned git tree is basically a backup it'd be nice to have an "official" backup to go along with your now "official" git server on sdf.\\ Here is a script that will, in sequence: + + * check your git repo for any changes + * if changes exist, tar up all your git repo + * ftp it to another host + +The script is expecting you to have a directory called ~/git, and under that directory have your git projects named as ~/git/proj1.git, ~/git/proj2.git, etc. Otherwise modify it as you see fit. + +==== The script, git-backup.sh ==== + + #!/usr/pkg/bin/bash + + cd ~/git + mv git-summary git-summary-old + for i in *.git; do + cd $i + git log --pretty=oneline >> ../git-summary + cd .. + done + + diff git-summary git-summary-old + if [ "$?" != "0" ]; then + #tgz up the whole git directory with today's date + cd .. + rm git-latest.tgz + tar -cvzf git-latest.tgz git + ftp ftp.your-host.com <<WOOPWOOPWOOP + cd git-backup + rename git-latest.tgz git-backup.tgz + put git-latest.tgz + quit + WOOPWOOPWOOP + fi + +Note: For the FTP to work, edit your ~/.netrc file so that ftp.your-host.com has an entry that looks like:\\ + + machine ftp.your-host.com + login your-user-name + password your-password + bin + +Also ensure to run "chmod 600 ~/.netrc" to hide your credentials to the rest of the world :). Now add this to your (daily or less) cron tasks with mkcron (MetaARPA only, just like git ;) and enjoy your timely backups! + +===== Updating your local copy with changes made to the repo ===== + +First, let's note that for git, each repository is equal. This is unlike older VCS like CVS or Subversion. Now, if you have not cloned from your SDF repo, do + +" git remote add origin user@sdf.org:git/project " + +where "origin" is the nickname for the repository on "sdf.org". Then, you do + +" git fetch " + +followed by + +" git merge " + +Git also provides the command "git pull" to do a fetch followed by a merge. This is unlike CVS and Subversion, where "update" works like "pull". The two commands are provided because your local repo is not meant to be a copy of the remote, so you need to be able to fetch the remote without merging it into your local repository. + +===== Creating a public access, read only repo ===== + +Once you have your repo setup for you to do your work in, you may have a need to make your work public. Making it public allows for other users to pull specific version of your project without having to have development rights. A slight modification to your repo is needed and some webspace to host it.\\ + +==== Setup some webspace ==== + +To host a readonly public access version of your repo you will need to setup some space in your html directory. For our example our public repo will be accessable at http://user.sdf.org/devel/proj.git\\ \\ "mkdir ~/html/devel"\\ + +==== hooks/post-update ==== + +In your repo directory for the project there is a directory that contains a set of scripts which are called at different times during your interaction with git. For more information about the "hooks" directory check out [[http://www.kernel.org/pub/software/scm/git/docs/githooks.html|githook]]. + +The script we will need to modify is post-update. This script is called after an update has occured on the server side of your repo. + + #!/bin/sh + # + # File: ~/git/proj.git/hooks/post-update + # + # Description: Called when an update is pushed to the server + # + + # Location of your repo on the server + GIT_DIR=/arpa/tz/u/user/git/proj.git + + # Location of your public version of the repo + HTTP_DIR=/arpa/tz/u/user/html/devel/proj.git + + # Update local repo info + git update-server-info + + # Make sure a clean copy is moved + rm -rf $HTTP_DIR + cp -rf $GIT_DIR $HTTP_DIR + chgrp -R nobody $HTTP_DIR + + # Directories must have Read and Execute Permissions + # for apache to be able to navigate them. + for d in `find $HTTP_DIR -type d`; do + chmod a+rx $d + done + + # Files must have Read Permissions for apache + # to be able to read them. + for f in `find $HTTP_DIR -type f`; do + chmod a+r $f + done + + # Display a message on the client side to show + # the action has been performed. + echo "Updated Public Access" + +Now that you have setup this script make sure its executable. + +" chmod a+x ~/git/proj.git/hooks/post-update" + +You can now run the script directly or wait until you have committed and pushed an update to your server. + +==== Verifying script is run. ==== + +When you push an update to your private development repo, a new output has been added by our script. + + $ git push + Counting objects: 5, done. + Compressing objects: 100% (2/2), done. + Writing objects: 100% (3/3), 256 bytes, done. + Total 3 (delta 1), reused 0 (delta 0) + remote: Updated Public Access + To user@sdf.org:git/proj.git + e60a9de..1f8a43f master -> master + $ + +In the above example there is a new line labled "remote" which means that during the push, the server produced output. The line matches the last line in our post-update script. Now you have two methods of access. + +**Private Access:** git clone user@sdf.org:~/git/proj.git\\ **Public Readonly Access:** git clone http://user.sdf.org/devel/proj.git\\ + +===== Allowing Multiple Users git Access ===== + +If you want to use your git repo for a group project and need multiple users access this can be done with the user of SSH Keys. + +==== Create SSH Key ==== + +The first step is creating an ssh key for a user. On their local machine generate a key pair and have them send you the public key. + + # ssh-keygen -t dsa + Generating public/private dsa key pair. + Enter file in which to save the key (/home/joe/.ssh/id_dsa): /home/joe/.ssh/sdf-dev + Enter passphrase (empty for no passphrase): + Enter same passphrase again: + Your identification has been saved in /home/joe/.ssh/sdf-dev + Your public key has been saved in /home/joe/.ssh/sdf-dev.pub. + The key fingerprint is: + 6e:aa:25:bb:2e:ec:ee:93:ff:ef:a1:21:8a:fe:df:fc joe@mypc + The key's randomart image is: + +--[ DSA 1024]----+ + |+++.+. | + |=*+ .. =+ | + |*++ . - .. | + |.o ..= S | + | E . S | + | o . o + | + | ++ . | + | + S o | + | +++ | + +-----------------+ + # ls /home/joe/.sdf + sdf-dev sdf-dev.pub + +==== Create a git access script ==== + +The next task is to create a script that runs git's shell command to create an instance of a shell that only allows git commands. Store this in your home directory along with all the other scripts and binaries you keep for personal use. + + #!/bin/sh + exec git-shell -c "$SSH_ORIGINAL_COMMAND" + +The "$SSH_ORIGINAL_COMMAND" variable contains the commands issued with your ssh session (try logging in with "ssh localhost ls"). + +==== Add User to Authorized Keys ==== + +The last step is to add the user's public key to your "authorized_keys" file. This will be a little different than you normally would enter one, as we want to force the user to run our git access script instead of a normal shell. At the end just paste the contents of the public key as you normally would. + + command="/arpa/gm/f/frank/gitaccess.sh",no-port-forwarding,no-agent-forwarding,no-x11-forwarding,no-pty ssh-rsa AAAB3... + +All the "no-*" flags disable all other types of ssh access (Port Forwarding, X11, PTY) so we only get git access and nothing else. Now if your friend uses your user name and his/her ssh key to connect to your git server they will be able to clone, pull, commit, etc. just as if they were you. Make sure they set their global settings in their git client so you can see your history correctly. + +===== TODO ===== + +merging/branching\\ Best look online for more in-depth tutorials.. I haven't needed these features yet as my projects are all just me, so I don't know how to do it!\\ \\ + +$Id: scmgit-intro.html,v 1.11 2020/01/01 22:52:17 niro Exp $ \ No newline at end of file diff --git a/dump/screen.html.docuwiki b/dump/screen.html.docuwiki new file mode 100644 index 0000000..7683a6a --- /dev/null +++ b/dump/screen.html.docuwiki @@ -0,0 +1,213 @@ +====== Screen ====== + +Contents + + - [[#intro|Introduction]] + - [[#start|Starting Screen, detaching and reattaching]] + - [[#multiwin|Multiple windows]] + - [[#multisession|Multiple sessions]] + - [[#split|Splitting windows]] + - [[#share|Sharing screen sessions]] + - [[#screenrc|.screenrc]] + - [[#cheatsheet|Cheat sheet]] + - [[#resources|Resources]] + +===== Introduction ===== + +[[http://savannah.gnu.org/projects/screen/|Screen]] is a terminal multiplexer, i.e., it will let you have multiple virtual terminals in a single window. You will also be able to 1) detach a screen session, and then detach it in a later moment; 2) share screen sessions. + +In this tutorial $   indicates a terminal prompt (just for visual convenience). + +A Screen command is usually of the form CTRL-a KEY, i.e., you'll have to press the CTRL key along with a, followed by a generic KEY. (Screen's default escape key is CTRL-a.) + +You'll need to be a [[http://sdf.org/?join#meta|MetaARPA]] member in order to use Screen on SDF + +If you want a screencast tutorial, type: + +"$ ttyplay /ftp/pub/users/jecxjo/howto/screen" + +on a terminal connected to SDF. + +Alternatively, you can watch the screencast online at [[http://playterm.org/r/brief-screen-tutorial-1307563176|PlayTerm.]] + +===== Starting Screen, detaching and reattaching ===== + +You can run screen by typing: + +"$ screen" + +When you run it, a window with some copyright and some other info will show up, with [Press Space or Return to end.] at the bottom. OK, as it says, you can now press Space or Enter. You will then see your shell prompt and nothing else. That's fine: you can now run your programs as usual, the difference is that they will run under a Screen session. You can detach it by typing CTRL-a d. Screen will keep your session running. Now if you logout, then log back in, and type: + +"$ screen -r" + +you'll see your terminal as you left it when you detached Screen! + +If you lost connection, or simply forgot to detach Screen, and want to resume your session by typing: + +"$ screen -d -r" + +The -d flag will detach Screen, while -r will reattach. There are various types of detach and flags. For instance, if you type the previous command and there was no screen session to be resumed, you'll get a There is no screen to be detached. message. In this case you'll probably need: + +"$ screen -d -R" + +which will first create a new session (or rettach an existing one). + +===== Multiple windows ===== + +You can create various windows under your Screen session, each one running their own program. When you are in a Screen session, typing: + +"$ screen" + +will create a new window, leaving the previous window untouched, though not visible. Instead of typing screen, you can use the shortcut CTRL-a c. + +You can create as many windows as you want. You can swith between windows with CTRL-a n (next window) and CTRL-a p (previous window). It's also possible to select windows by number. Typing CTRL-a 1 will open window number 1, CTRL-a 2, to window 2, and so on. + +How do you know what's a window number? Well, you can type CTRL-a " (yeah, that's a double quote). In that case a menu with a windows list will open. You can select a number and press enter to go to that screen. An easier way is to have a hard status line that shows you each window number. For doing this in a permanent manner, you'll have to create a .screenrc (Screen's customization file) in your $HOME directory and write in it the following lines: + + hardstatus alwayslastline + hardstatus string "%{WK}%-LW %{Y.}%n%f* %t%{-}%+LW" + +(We will see what that crazyness means later.) + +For your .screenrc file to be read by Screen, you'll have to start a new session. BTW, a Screen session ends when the last window is closed. + +===== Multiple sessions ===== + +It's possible to have various Screen sessions running, each one with their own set of windows open. If you started Screen by just typing screen, a new session is created. If you detach and type screen again, a new session will start. If you now type: + +"$ screen -ls" + +it will give you a list of Screen sessions like this: + + 3340.pts-6.HOST (Detached) + 4522.pts-8.HOST (Attached) + 2 Sockets in /tmp/screens/S-YOU + +where HOST is the hostname and YOU is your username. + +You can reattach a screen session by name. Say for instance that you want to resume the 4522.pts-8.HOST session. In this case you'll have to type: + +"$ screen -r 4522.pts-8.HOST" + +Obviously 4522.pts-8.HOST is not a very userfriendly session name. You can give a meaningful name by starting screen as: + +"$ screen -S mysession" + +where mysession is the name you want to give to your session (e.g., work). + +===== Splitting windows ===== + +It could be useful to split a window so that you can have two programs running on the viewport. In this case, type CTRL-a S and you'll see that the window will be split in two regions, with the one at the bottom blank. You can swith to it with CTRL-a TAB (TAB is the tab key) and then select a window by typing its number, or p (previous) or n (next), e.g., CTRL-a 2. You can always swith through regions with CTRL-a TAB. + +It's possible to split the window in more then two regions, each time by typing CTRL-a S + +If you want to split a window vertically, you'll have to either use a patch[1] or use a recent version of Screen. + +===== Sharing screen sessions ===== + +The scenario is... + +HOSTUSER and SOMEUSER are both MetaARPA members logged into sverige. + +HOSTUSER wants to give SOMEUSER read only access to screen session of HOSTUSER. + +HOSTUSER starts a screen session as normal. + +Only three commands are needed for basic read only access to the current active window. + +HOSTUSER types the following commands beginning with CTRL-a : each time ( //control and 'a' followed by a colon //) + +CTRL-a:multiuser on + +CTRL-a:password none + +CTRL-a:aclchg SOMEUSER -w "#" + +SOMEUSER should exit screen first, then in the shell, type: + +"$ screen -r HOSTUSER/" + +SOMEUSER now has read only access to the active window in HOSTUSER's screen session at the time of attaching. + +HOSTUSER can verify SOMEUSER is attached by typing: + +CTRL-a* + +HOSTUSER can disconnect SOMEUSER by typing: + +CTRL-a:acldel HOSTUSER + +HOSTUSER can verify SOMEUSER is no longer attached by typing: + +CTRL-a* + +HOSTUSER can allow SOMEUSER access to additional commands. + +The following commands allow SOMEUSER to cycle backwards and forward through the windows and detach. + +HOSTUSER types: + +CTRL-a:aclchg SOMEUSER +x next + +CTRL-a:aclchg SOMEUSER +x prev + +CTRL-a:aclchg SOMEUSER +x detach + +//// + +=== === + +Some notes: + +** Screen version that was used "Screen version 4.00.03 (FAU) 23-Oct-06" + +** At the time of writing ( Tue Apr 17 23:01:50 IST 2012 ) all attempts at achieving the above read only functionality by editing .screenrc failed, usually resulting in SOMEUSER having FULL access to HOSTUSER's screen and shell account. + +** HOSTUSER might notice that screen resizes to fit the smaller of the two terminals. + +** After SOMEUSER is detachs HOSTUSER might try CTRL-aF to resize the screen windows to fit the terminal. + +** For convenience and to reduce typing in screen HOSTUSER might want to have "multiuser on" and "password none" in .screenrc. HOSTUSER's screen is still private until a user is permitted to attach with aclchg. + +** HOSTUSER will hear/see lots of bells if SOMEUSER tries to type into the screen session. + +** HOSTUSER can check what window is being view by SOMEUSER by looking at the output of CTRL-a* + +** HOSTUSER might notice SOMEUSER appears to have rwx access in the output of CTRL-a* ...this is a bug or an undocumented feature. + +** SOMEUSER can remain attached even if HOSTUSER detachs. + +===== .screenrc ===== + +As we previously saw, it is possible to customize Screen by writing settings in a file named .screenrc in your $HOME directory. We will now some useful Screen settings. + +==== Avoiding the startup message ==== + +A full screen message with copyright and other stuff is usually displayed at startup. This can get annoying. In order to avoid it, you can put in your .screenrc the following: + + startup_message off + +==== Keybindings ==== + +It's possible to bind keys so that when you type CTRL-a KEY Screen willl open a new window launching some program. For instance, if you write in your .screenrc file + + bind m screen -t mail 1 mutt + +each time you'll type CTRL-a m a new window (named mail)with mutt will be created. Be careful: when you bind a key, you'll overwrite Screen's defaults (e.g., we just lost the lastmsg key). + +===== Cheat sheet ===== + +TODO + +===== Resources ===== + + * http://aperiodic.net/screen/start + * http://www.bangmoney.org/presentations/screen.html + * SDF has some [[http://sdf.org/?tutorials/dotfiles|annotated dotfiles]]. + +===== Notes ===== + +[1] http://fungi.yuggoth.org/vsp4s/ + +---- +$Id: screen.html,v 1.8 2012/05/08 14:45:50 dickey Exp $ \ No newline at end of file diff --git a/dump/sdf-blind.html.docuwiki b/dump/sdf-blind.html.docuwiki new file mode 100644 index 0000000..8b8b28c --- /dev/null +++ b/dump/sdf-blind.html.docuwiki @@ -0,0 +1,53 @@ +SDF is a useful resource for blind or visually impaired people. It allows you to interact with a computer using a command-line interface, which is more comfortable for those of us who, for any reason, find GUIs don't meet their needs. + + * SDF can be connected to in various ways including ssh, telnet and dialup. + * Several web browsers exist on the system; lynx, in particular, can be customized for more speech friendly use. + +====== Screen Readers ====== + +If your screen reader can work with your telnet or ssh client, all is well. If you are using jaws for windows, you may need to set your screen echo to "all" by pressing insert-s until "all" is spoken. To bring it back to defaults, hit "insert s" again until it says "highlighted". Some ssh clients known to work are (windows) UTF-8 Tera term pro, SecureCRT, and the cygwin ssh client. In my experience, Putty hasn't worked. Some people have gotten it to work, but I have no experience with it. + +UTF-8 Tera Term pro is an improvement over the old Tera Term. It now supports ssh2 and UTF-8 (I think only for japanese). It can be obtained from [[http://sleep.mat-yan.jp/~yutaka/windows/index.html|here]]. Setup instructions are below. + +SDF provides good opportunities to chat, using IRC, and several instant messaging protocols. + +If this is unclear, contact me as tspivey on sdf, or on skype at the same name. + +Below are some configuration tips for several programs. + +====== configuring Irssi ====== + +Irssi is a text client for IRC. It's available to meta-arpa members only. Here are the commands to type once irssi is loaded. Note that these are only suggested defaults; do with them what you will. + + /set timestamps off + /set use_status_window off + /set autocreate_own_query off + /set autocreate_windows off + /sbar window disable + +These settings will do the following: + + - Disable timestamps. Timestamps are the [10:48] you get at the beginning of each line. + - disable the status window. all text will come in in the same window. + - the next two tell irssi not to create queries, or create its own windows without you asking it to. + - The last one tells irssi to disable the window status bar, because it is rather chatty and reads at odd times. + +====== Configuring UTF-8 Tera Term for best JAWS accessibility ====== + +Once the program is installed, which can be accomplished by running the installer, the following steps should be taken. + + - Run the program, and press escape at the new connection dialog. + - Go to the setup menu with alt-s, press enter on Window. The Window Setup dialog will open. + - Press alt-v to set the cursor shape to vertical line, or tab to the radio button and use the arrows. + - Press alt-s to uncheck the scroll buffer. + - Press enter to exit the dialog. + - Go to the setup menu press f for font. Press tab, type 10, press enter. On some machines this may need to be done upon each connection. + - Go to the setup menu and press g for general. + - Press alt-l for language, go up to English and press enter. + - Press alt-s, s for save setup. When the dialog appears, press enter. + +The setup of Tera Term is now complete. To make a new connection, press alt-n and type in the host name, and select the protocol by pressing tab. + +---- + +$Id: sdf-blind.html,v 1.7 2007/01/04 04:35:55 tspivey Exp jboy $ \ No newline at end of file diff --git a/dump/sdf_minecraft.html.docuwiki b/dump/sdf_minecraft.html.docuwiki new file mode 100644 index 0000000..5201184 --- /dev/null +++ b/dump/sdf_minecraft.html.docuwiki @@ -0,0 +1,1045 @@ +//[[#oldver|(Jump to old version)]]// + +[[https://wm.sdf.org/gallery/thumbnails.php?album=803|{{http://sdf.org/tutorials/images/sdfmc-6-banner.png}}]] + +====== SDF Minecraft ====== + +The SDF Minecraft server is available for the sandboxing pleasure of all SDF members and their guests. SDF members are encouraged to invite and add as many of their friends as they'd like to join in and play on the SDF Minecraft server. + +===== News & Announcements ===== + +==== Sep. 12, 2017 — Overdue Update ==== + +Apologies for the long interval off the air. + +We've had an eventful year so far on SDF MC. I'll try to give more details later, but for now there are two pressing matters you should all be aware of: + + - To remedy the instability problems we were experienciing this Spring, the server has been reverted to vanilla MC with no plugins. SDF6 and all the earlier worlds have been backed up, but we no longer have the multiverse plugin, and won't be able to load any of the old worlds unless someone can figure out how to build a stable server with all the plugins we had before. + - The maint whitelist self-add utility is broken with the current MC server version and has been reset. Contact me on BBOARD or by e-mail to have yourself or your guests re-added. + + — //papa/Mefu// + +==== Jan. 21, 2017 — First SDF6 Seasonal Display ==== + +The SDF6 Seasonal Display is the lot off the northwest corner of the spawn zone that is reserved for a rotating decorative display to be recreated by a volunteer player once a month or so. Our first display is inspired by the beginning of the new Presidential administration in the US — Pepe the Frog. Pepe is //not// a political statement, but a sign of the times to be hailed or reviled as the viewer sees fit. If you're triggered by the sight of Pepe, be sure to attend our Pepe Detonation Ceremony in advance of next display rotation. — //papa/Mefu// + +[[https://wm.sdf.org/gallery/displayimage.php?album=804&pid=17146#top_display_media|{{tutorials/images/sdfmc-sdf62017-01.png}}]] + +==== Jan. 19, 2017 — Web page redesign ==== + +Welcome to the SDF Minecraft web site's new look! I've been meaning to update this page since smj brought the maint whitelist registration tool back, and I've taken the opportunity to rearrange the page to make it easier find information of permanent interest amid the ephemeral news items, resize the screenshots to sub-obnoxious, and give the page a bloggy style. + +The page is //not// actually a blog, but a single hand-coded HTML file. Although it has a special URI ([[http://sdf.org/minecraft|<http://sdf.org/minecraft>]]), it is actually just one of the MetaARPA tutorial files ("/sys/html/tutorials/sdf_minecraft.html") and so is updateable by any MetaARPA member. + +I will complete this project over the next few days by creating separate tutorials for the documents listed in the side bar and linking to them. — //papa/Mefu// + +==== Jan. 18, 2017 — New whitelist registration procedure ==== + +All SDF Minecraft whitelist requests are now once again being handled with the maint utility. + +Log in to your SDF cluster shell account, enter `maint`, select 'o' then 'x' from the menus, then enter the Mojang player ID (registered on the Minecraft web site, NOT your SDF ID; and case sensitive) for yourself or guests you want to invite to play on SDF Minecraft. + +(You will be held responsible for your guests' behavior. Teach them well. Don't invite those who can't handle themselves as members of an on-line community.) + +Please report trouble with the whitelist system to the MINECRAFT bboard, but whitelist add requests posted on bboard can no longer be processed. — //papa/Mefu// + +==== Jan. 15, 2017 — Minecraft playerdata corruption workaround ==== + +There is a playerdata corruption bug in recent versions of Minecraft which can cause the server to crash when a player with data corruption connects. A work around is now in place and available via the 'maint' menu. The bug looks to corrupt data in the player's location and/or inventory. Running a reset via 'maint' will allow you to specify a player on your whitelist and the world where you believe playdata has corrupted [maint menu choices 'o' then 'y']. + +If you have not been able to connect to mc.sdf.org successfully, try resetting your player. This will not affect any of your builds or chests, just your location and whatever you have on hand. + +Be mindful when you connect and crash the server as you affect all players that are connected at that time. + +===== CONNECT! ===== + +**minecraft.sdf.org:25565** [[/?tutorials/sdfmc-connecting|//(details …)//]] + +===== COMMUNE! ===== + +//(From SDF shell login:)// + + $ bboard + + g minecraft + +IRC: irc.sdf.org #minecraft + +E-mail: mc-admins@sdf.org + +===== MINE! … ===== + +==== [[/?tutorials/sdfmc-survival|Survival guide]] ==== + +==== [[http://minecraft.sdf.org:8123/|Dynamic map]] ==== + +==== [[/?tutorials/sdfmc-commands|Helpful commands]] ==== + +==== [[/?tutorials/sdfmc-plugins|Installed plugins]] ==== + +==== [[/?tutorials/sdfmc-worlds|World list]] ==== + +==== [[/?tutorials/sdfmc-gallery|Gallery]] ==== + +==== [[/?tutorials/sdfmc-links|Links]] ==== + +==== Server version ==== + +CraftBukkit ver. git-Bukkit-0fb3f8b (MC: 1.11.2) (API ver. 1.11.2-R0.1-SNAPSHOT) //(Jan. 22, 2017)// + +//(old version below this line)// + +---- +{{https://wm.sdf.org/gallery/albums/userpics/10024/2015-05-07_07_50_37.png}}\\ {{tutorials/images/sdf_minecraft/animals.png}}\\ [[tutorials/images/sdf_minecraft/1.jpg|{{http://sdf.org/tutorials/images/sdf_minecraft/1t.jpg}}]] [[tutorials/images/sdf_minecraft/2.jpg|{{http://sdf.org/tutorials/images/sdf_minecraft/2t.jpg}}]] [[tutorials/images/sdf_minecraft/3.jpg|{{http://sdf.org/tutorials/images/sdf_minecraft/3t.jpg}}]] [[tutorials/images/sdf_minecraft/4.jpg|{{http://sdf.org/tutorials/images/sdf_minecraft/4t.jpg}}]] + +==== minecraft.sdf.org:25565 ==== + +//IRC: irc.sdf.org #minecraft// / //E-Mail: mc-admins// + +The SDF Minecraft Servers are available to all SDF Members and their guests.\\ SDF Members are encouraged to invite and add as many of their friends as they'd like to join in and play on the SDF Minecraft Servers. + +If you are not currently an SDF member, and would like to join, [[http://sdf.org/?signup|please sign up here]]. + +**November 2015: Whitelist maintenance** + +The SDF Minecraft server whitelist is now being maintained manually by SDF member papa (Minecraft player Mefu). If you want to access the Minecraft server, post you and your guests' Minecraft names to the **MINECRAFT** board in **BBOARD**. + +**April 2015 Server update** + +The current server is a continuation of the old Craftbukkit server via Spigot. + +**SDF Minecraft Manifesto**\\ \\ This is the beginning of the SDF Minecraft Manifesto. Nothing here is intended as dogma, we hope to make some loose guidelines which will encourage friendly collabration. These items are open for discussion and voted upon in SDF's bboard. \\ \\ - **Transit Building** - Roads and paths are encouraged to help prevent getting lost. Please don't build a road on or against someone else's property without their permission. \\ \\ - **Trench Digging** - Trenches can be helpful for mining or other purposes. Too many of them can be a danger to other users. Bridges can help make these trenches safer for everyone. If you are done with a hole please fill it up. \\ \\ - **Home Turf** - A user's respected home turf is a bordered off or simply obvious to the eye. Usually signs in front of a building or a good indication of ownership. Please don't destroy or build on another person's property without their permission. \\ \\ + +\\ \\ + +**SDF Minecraft Worlds (Spigot/Bukkit - minecraft.sdf.org:25565)** + +==== SDF5 ==== + +**This is the most recent world. It has all the minerals right in your spawn area. It was started in April 2015** + + - **Mode** - Survival only + - **Difficulty** - Normal + + This world was started with version 1.8.4 + +==== SDF4 ==== + +**/mv tp sdf4** will get you there. + + - **Mode** - Survival only + - **Difficulty** - Normal + + This world was started with version 1.7.2 + +==== SDF3 ==== + +**/mv tp sdf3** will get you there. + + - **Mode** - Survival only + - **Difficulty** - Normal + + This world was started with version 1.6 + +==== SDF2 ==== + +Zombies will bust down your doors here. + + - **Mode** - Survival only + - **Difficulty** - Difficult + +==== SDF1 ==== + +Be sure to tour this place. There are a lot of awesome builds here. + + - **Mode** - Survival and Creative + - **Difficulty** - Normal + +==== WORLD ==== + +Our longest running map. This is the original map from the server's creation. Been around since July, 2011. Explore this wonderful archeological site. + + - **Mode** - Survival and Creative + - **Difficulty** - Normal + +==== FLAT_LANDS ==== + +Flat world sandbox. Go here to test stuff + + - **Mode** - Survival and Creative + - **Difficulty** - No monsters + +==== WORLD ==== + + - **Mode** - Survival + - **Difficulty** - Normal + +\\ \\ + +**SDF Minecraft Tips** + +==== Helpful Commands ==== + +The following commands are available to users. + + - **/help ** - Main help menu. + - **/cast <help>** - List spell casting options. //Warp to magic_spells to obtain spells.// + - **/colors ** - List all color codes available. + - **/dynmap <show|hide>** - Show or hide yourself on the map. + - **/ec balance ** - Check your balance. + - **/mvtp <world|sdf1|sdf2|sdf3|sdf4|flat_lands>** - Jump to different world. + - **/rtp <USER>** - Teleport to another user. Requires the other player to accept. + - **/warp help** - Warp to different locations. + - **/who** - List who is currently playing. + - **/tv <day|night>** - Vote for a time change. + - **/wv <sun|rain|thunder>** - Vote for a weather change. + - **/t <player> <message>** - Send private messages. + +==== Plugins ==== + +The servers utilize the [[http://bukkit.org/|Bukkit]] plugin system. The various plugins enhance the Minecraft experience and provide useful commands in the game. Below are a few of ther plugins installed on the server. You should take note that these might not all be currently working as expected because of the recent change to Spigot. + + - [[http://dev.bukkit.org/server-mods/sdfeconomy/|SDFEconomy]] - Economy support. + - [[http://dev.bukkit.org/server-mods/chestshop/|ChestShop]] - Sign based shops linked to chests. Buy and sell your wares. + - [[http://dev.bukkit.org/server-mods/deadbolt/|DeadBolt]] - Place a **[private]** sign above doors and next to chests to lock them. + - [[http://dev.bukkit.org/server-mods/dynmap/|Dynmap]] - A [[http://minecraft.sdf.org:8123|world map]] is generated in realtime. + - [[http://dev.bukkit.org/server-mods/ecocreature/|ecoCreature]] - Mobs drop money and other supplies. + - [[http://dev.bukkit.org/server-mods/fixit/|FixIt]] - Repair your items. Includes enchantments too! + - [[http://dev.bukkit.org/server-mods/motd/|Motd]] - Use commands like **/who**, and **/rtp <user>**. + - [[http://dev.bukkit.org/server-mods/magicspells/|MagicSpells]] - Cast magic spells with **/cast**. + - [[http://dev.bukkit.org/server-mods/multiverse-core/|MultiVerse]] - Create and manage worlds. + - [[http://dev.bukkit.org/server-mods/mywarp/|MyWarp]] - Warping for everyone. Type **/warp help** for details. + - [[http://dev.bukkit.org/server-mods/purpleirc/|PurpleIRC]] - Links game chat with IRC. + - [[http://dev.bukkit.org/server-mods/residence/|Residence]] - Self serve area protections. See the [[http://tx0.org/2o0|wiki]] for details. + - [[http://dev.bukkit.org/server-mods/scavenger|Scavenger]] - Inventory items are restored after every death. + - [[http://dev.bukkit.org/server-mods/stickyhelp/|StickyHelp]] - Enhanced help menu. See **/help** for more. + - [[http://dev.bukkit.org/server-mods/timeandweathercontrol/|TimeAndWeatherControl]] - Change time and weather.. + +==== Other Helpful Links ==== + + - [[http://www.minecraft.net/|Minecraft Homepage]] + - [[http://www.minecraftopia.com/|Minecraftopia]] + +\\ \\ + +===== MoreRecipees Mod ===== + +The Spigot server is running the [[http://dev.bukkit.org/bukkit-plugins/morerecipes/|MoreRecipees mod]]. Here's a list of most of the recipees in this mod, since the original documentation is down. I got them from the [[https://raw.githubusercontent.com/Owexz/MoreRecipes/master/MoreRecipes/src/net/owexz/morerecipes/MoreRecipes.java|GitHub page]] and left out the different leaves types. It depends on the server configuration which ones are activated, you'll have to try and find out, but most of them are working fine. + +==== silverfish ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: SMOOTH_BRICK\\ Ingredient **B**: COOKED_FISH\\ + +==== web ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | A | A | + +| A | A | A | + + Ingredient **A**: STRING\\ + +==== string ==== + +//Shapeless recipee//\\ Ingredient: Material.WOOL\\ + +==== chainBoots ==== + +//Shaped recipee//\\ + +| C | | C | + +| B | | B | + +| A | | A | + + Ingredient **A**: IRON_INGOT\\ Ingredient **B**: STRING\\ + +==== chainLeggings ==== + +//Shaped recipee//\\ + +| A | B | A | + +| B | | B | + +| A | | A | + + Ingredient **A**: IRON_INGOT\\ Ingredient **B**: STRING\\ + +==== chainChestplate ==== + +//Shaped recipee//\\ + +| A | | A | + +| B | A | B | + +| A | B | A | + + Ingredient **A**: IRON_INGOT\\ Ingredient **B**: STRING\\ + +==== chainHelmet ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | | A | + + Ingredient **A**: IRON_INGOT\\ Ingredient **B**: STRING\\ + +==== netherBrick ==== + +//Shaped recipee//\\ + +| A | A | | + +| A | A | | + +| | | | + + Ingredient **A**: NETHERRACK\\ + +==== saddle ==== + +//Shaped recipee//\\ + +| | A | | + +| B | A | B | + +| C | A | C | + + Ingredient **A**: LEATHER\\ Ingredient **B**: IRON_INGOT\\ Ingredient **C**: STRING\\ + +==== grass ==== + +//Shapeless recipee//\\ Ingredient: Material.SEEDS\\ Ingredient: Material.DIRT\\ + +==== mossStone ==== + +//Shaped recipee//\\ + +| A | B | A | + +| B | A | B | + +| A | B | A | + + Ingredient **A**: COBBLESTONE\\ Ingredient **B**: SEEDS\\ + +==== ice ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: SNOW_BALL\\ Ingredient **B**: WATER_BUCKET\\ + +==== mycelium ==== + +//Shapeless recipee//\\ Ingredient: Material.BROWN_MUSHROOM\\ Ingredient: Material.RED_MUSHROOM\\ Ingredient: Material.DIRT\\ Ingredient: Material.DIRT\\ + +==== crackedStoneBrick ==== + +//Shaped recipee//\\ + +| A | B | A | + +| B | A | B | + +| A | B | A | + + Ingredient **A**: SMOOTH_BRICK\\ Ingredient **B**: FLINT\\ + +==== mossyStoneBricks ==== + +//Shaped recipee//\\ + +| A | B | A | + +| B | A | B | + +| A | B | A | + + Ingredient **A**: SMOOTH_BRICK\\ Ingredient **B**: SEEDS\\ + +==== circleStoneBricks ==== + +//Shaped recipee//\\ + +| A | B | A | + +| B | A | B | + +| A | B | A | + + Ingredient **A**: SMOOTH_BRICK\\ Ingredient **B**: SEEDS\\ + +==== sand ==== + +//Shapeless recipee//\\ Ingredient: Material.SANDSTONE\\ + +==== clay ==== + +//Shapeless recipee//\\ Ingredient: Material.CLAY\\ + +==== apple ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: LEAVES\\ Ingredient **B**: SUGAR\\ + +==== clayBlock ==== + +//Shaped recipee//\\ + +| A | A | A | + +| B | B | B | + +| C | C | C | + + Ingredient **A**: SAND\\ Ingredient **B**: GRAVEL\\ Ingredient **C**: DIRT\\ + +==== sponge ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | B | A | + +| B | A | B | + + Ingredient **A**: SAND\\ Ingredient **B**: STRING\\ + +==== cocoaBeans ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: SUGAR\\ Ingredient **B**: COCOA\\ + +==== blackMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: INK_SACK\\ + +==== brokenMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: DIAMOND\\ + +==== cyanMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: CYAN DYE\\ + +==== forestGreenMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: ROSE RED DYE\\ + +==== goldMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: DANDELION YELLOW DYE\\ + +==== greenMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: LIME DYE\\ + +==== orangeMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: ORANGE DYE\\ + +==== purpleMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: PURPLE DYE\\ + +==== redMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: ROSE RED DYE\\ + +==== whiteMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: BONE MEAL\\ + +==== blueMusicDisc ==== + +//Shaped recipee//\\ + +| B | A | B | + +| A | C | A | + +| B | A | B | + + Ingredient **A**: OBSIDIAN\\ Ingredient **B**: GOLD_INGOT\\ Ingredient **C**: LAPIS\\ + +==== stick ==== + +//Shaped recipee//\\ + +| | A | | + +| | A | | + +| | A | | + + Ingredient **A**: SUGAR_CANE\\ + +==== wood ==== + +//Shaped recipee//\\ + +| A | A | | + +| A | A | | + +| | | | + + Ingredient **A**: STICK\\ + +==== glowstoneDust ==== + +//Shapeless recipee//\\ Ingredient: Material.GLOWSTONE\\ + +==== fern ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | A | A | + +| | A | | + + Ingredient **A**: LEAVES\\ + +==== vines ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | | A | + +| A | | A | + + Ingredient **A**: LEAVES\\ + +==== lilyPad ==== + +//Shaped recipee//\\ + +| A | | A | + +| A | A | A | + +| A | A | A | + + Ingredient **A**: LEAVES\\ + +==== tallGrass ==== + +//Shaped recipee//\\ + +| A | | A | + +| A | | A | + +| A | A | A | + + Ingredient **A**: LEAVES\\ + +==== ironOre ==== + +//Shapeless recipee//\\ Ingredient: Material.IRON_INGOT\\ Ingredient: Material.STONE\\ + +==== goldOre ==== + +//Shapeless recipee//\\ Ingredient: Material.GOLD_INGOT\\ Ingredient: Material.STONE\\ + +==== redstoneOre ==== + +//Shapeless recipee//\\ Ingredient: Material.REDSTONE\\ Ingredient: Material.REDSTONE\\ Ingredient: Material.REDSTONE\\ Ingredient: Material.REDSTONE\\ Ingredient: Material.REDSTONE\\ Ingredient: Material.STONE\\ + +==== lapisOre ==== + +//Shapeless recipee//\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: LAPIS\\ Ingredient: STONE\\ + +==== coalOre ==== + +//Shapeless recipee//\\ Ingredient: Material.COAL\\ Ingredient: Material.STONE\\ + +==== diamondOre ==== + +//Shapeless recipee//\\ Ingredient: Material.DIAMOND\\ Ingredient: Material.STONE\\ + +==== blazeRod ==== + +//Shaped recipee//\\ + +| A | A | B | + +| A | B | A | + +| B | A | A | + + Ingredient **A**: REDSTONE\\ Ingredient **B**: GOLD_INGOT\\ + +==== slimeball ==== + +//Shaped recipee//\\ + +| | C | | + +| B | A | B | + +| | | | + + Ingredient **A**: MILK_BUCKET\\ Ingredient **B**: LIME DYE\\ Ingredient **C**: FERMENTED_SPIDER_EYE\\ + +==== ghastTear ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: IRON_INGOT\\ Ingredient **B**: GOLD_NUGGET\\ + +==== netherWart ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | C | A | + + Ingredient **A**: REDSTONE\\ Ingredient **B**: RED_MUSHROOM\\ Ingredient **C**: BROWN_MUSHROOM\\ + +==== gunpowder ==== + +//Shaped recipee//\\ + +| | A | | + +| A | A | A | + +| | A | | + + Ingredient **A**: SOUL_SAND\\ + +==== enderPearl ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: LAPIS\\ Ingredient **B**: GLASS_BOTTLE\\ + +==== allMonsterEggs ==== + +==== monsterEggs.creeper ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: SULPHUR\\ Ingredient **B**: EGG\\ + +==== monsterEggs.skeleton ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: BONE\\ Ingredient **B**: EGG\\ + +==== monsterEggs.spider ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: STRING\\ Ingredient **B**: EGG\\ Ingredient **C**: SPIDER_EYE\\ + +==== monsterEggs.giant ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: ROTTEN_FLESH\\ Ingredient **B**: EGG\\ Ingredient **C**: GOLD_INGOT\\ + +==== monsterEggs.zombie ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: ROTTEN_FLESH\\ Ingredient **B**: EGG\\ + +==== monsterEggs.slime ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: SLIME_BALL\\ Ingredient **B**: EGG\\ + +==== monsterEggs.ghast ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: GHAST_TEAR\\ Ingredient **B**: EGG\\ + +==== monsterEggs.pigzombie ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: ROTTEN_FLESH\\ Ingredient **B**: EGG\\ Ingredient **C**: PORK\\ + +==== monsterEggs.enderman ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: ENDER_PEARL\\ Ingredient **B**: EGG\\ + +==== monsterEggs.cavespider ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: SPIDER_EYE\\ Ingredient **B**: EGG\\ Ingredient **C**: STRING\\ + +==== monsterEggs.silverfish ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: IRON_INGOT\\ Ingredient **B**: EGG\\ + +==== monsterEggs.blaze ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: BLAZE_ROD\\ Ingredient **B**: EGG\\ + +==== monsterEggs.magmacube ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: MAGMA_CREAM\\ Ingredient **B**: EGG\\ + +==== monsterEggs.pig ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: PORK\\ Ingredient **B**: EGG\\ + +==== monsterEggs.sheep ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: WOOL\\ Ingredient **B**: EGG\\ + +==== monsterEggs.cow ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: RAW_BEEF\\ Ingredient **B**: EGG\\ Ingredient **C**: LEATHER\\ + +==== monsterEggs.chicken ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: FEATHER\\ Ingredient **B**: EGG\\ + +==== monsterEggs.squid ==== + +//Shaped recipee//\\ + +| A | A | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: INK_SACK\\ Ingredient **B**: EGG\\ + +==== monsterEggs.wolf ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: WOOL\\ Ingredient **B**: EGG\\ Ingredient **C**: BONE\\ + +==== monsterEggs.mooshroom ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: RAW_BEEF\\ Ingredient **B**: EGG\\ Ingredient **C**: RED_MUSHROOM\\ + +==== monsterEggs.snowgolem ==== + +//Shaped recipee//\\ + +| A | C | A | + +| A | B | A | + +| A | A | A | + + Ingredient **A**: SNOW_BALL\\ Ingredient **B**: EGG\\ Ingredient **C**: PUMPKIN\\ + +==== monsterEggs.ocelot ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: WOOL\\ Ingredient **B**: EGG\\ Ingredient **C**: RAW_FISH\\ + +==== monsterEggs.irongolem ==== + +//Shaped recipee//\\ + +| | A | | + +| C | B | C | + +| C | | C | + + Ingredient **A**: PUMPKIN\\ Ingredient **B**: EGG\\ Ingredient **C**: IRON_BLOCK\\ + +==== monsterEggs.villager ==== + +//Shaped recipee//\\ + +| A | C | A | + +| C | B | C | + +| A | C | A | + + Ingredient **A**: PORK\\ Ingredient **B**: EGG\\ Ingredient **C**: LEATHER\\ + +$Id: sdf_minecraft.html,v 1.64 2017/09/11 17:39:08 papa Exp $ \ No newline at end of file diff --git a/dump/sdf_specific_commands.html.docuwiki b/dump/sdf_specific_commands.html.docuwiki new file mode 100644 index 0000000..f79503b --- /dev/null +++ b/dump/sdf_specific_commands.html.docuwiki @@ -0,0 +1,109 @@ +==== SDF Specific Commands ==== + +Much of this was pulled from [[http://jwodder.freeshell.org/sdf/commands.html|jwodder's reference]], he deserves a huge thanks for putting this list together. + +^ Informative Commands ^^ +| address | prints out an address & paypal information for sending money to SDF; used by some other commands | +| arpa | prints out information about the ARPA membership level | +| bbs | gives information about purchasing a BBS documentary DVD set from SDF; seems to be a bit outdated | +| commands | prints out a list of basic Unix commands; also available as "unix" | +| dba | prints out information about the DBA membership | +| dialup | gives information on SDF's dialup internet service | +| downtime | displays the reason(s) for recent server downtime | +| dsl | refers the user to http://dsl.tenex.org to find out about the availability of SDF DSL in one's area | +| editors | displays the list of text editors from FAQ BASICS #09 | +| faq | interactive command for viewing the SDF Frequently Asked Questions (and their answers); uses the same command set as bboard | +| gallery | lists some of the commands that users can use to contribute to the SDF galleries (see below) | +| games | prints a list of some of the games installed on SDF | +| getdialup | lists dialup internet services available in your area code | +| help | a small interactive program listing useful commands from certain categories. Note that this program is located at /usr/pkg/bin/help and is not to be confused with the help command built into most shells. | +| how | gives an overview of the types of memberships available | +| maxusers | displays the current record for the maximum number of users logged into SDF at once | +| meta | prints out information about the MetaARPA membership level | +| mil | gives information on how the validation process can be waived for those on active military duty | +| music | prints out information about purchasing the SDF music compilations | +| order | outdated command; now consists of a pointer to the store on SDF's website | +| software | lists the software packages available to the various membership levels | +| sticker | prints information on obtaining an SDF bumper sticker | +| twenex | prints out summaries of (most of) the user-contributed software in /sys/sdf/bin | +| unix | same as commands | +| vhost | prints out information about the VHOST membership | +| vpn | prints out information about the VPN membership | +^ Inter-User Communication & Social Networking ^^ +| bboard | bulletin board system for SDF | +| com (a.k.a. commode) | inter-user chat system for SDF | +| guestbook | sign or view the guestbook | +| happening | submit an anonymous journal entry or view a random entry | +| helpdesk | request help from & give help to other SDF users | +| mesg | send messages to other users | +| notes | leave urgent notes for other users | +| profiles | set up a profile for viewing by other SDF users | +^ Account Management Commands ^^ +| addlink | publish your website; invoked by mkhomepg | +| bksp | set your backspace key | +| greylist | toggle greylisting for your e-mail address(es) (VPM membership required) | +| maint | change your password, shell, & contact information | +| mdns | assign a domain name to a dynamic IP address (MetaARPA membership required); also available as "udns" | +| metaarray | For MetaARPA members. Will first generate a random login password for your MetaArray account followed by a random database password sent via local e-mail if you have a DBA membership. If you ever forget your MetaArray password or your MetaArray MySQL password, this will reset it. | +| mkcron | set up & manage cronjobs (MetaARPA membership required) | +| mkfinger | control what information to display for finger requests from remote hosts | +| mkgopher | set up a gopherspace on SDF | +| mkhomepg | set up a website on SDF | +| mkvhost | create & maintain DNS and/or VHOST membership features | +| mkvpm | manage virtual POP3 mailboxes (VPM membership required) | +| motd | manage MOTD membership | +| mypasswd | change your MySQL password. | +| phlog | list (or delist) your Gopher blog on SDF's registry of phlogs | +| reset-mysql | resets your MySQL password and sends you a new one via local mail. | +| setdialup | manage DIALUP membership | +| setgrp | add & remove users to & from your personal group (MetaARPA membership required) | +| setvmail | toggle e-mail addresses at various SDF domains (MetaARPA membership required) | +| setvpn | configure your PPTP VPN login on SDF (VPN membership required) | +| startsql | set up a MySQL database (DBA membership required) | +| tweak | redistribute your file storage quotas (TWEAK membership required) | +| udns | same as mdns | + +| vpmclear | clear out a virtual POP3 mailbox (VPM membership required) | +^ Account Information ^^ +| disk | display filesystem usage for your home directory, mail spool, gopherspace, & webspace | +| domains | list the SDF domains available to you for webhosting & e-mail addresses | +| dues | give details on your membership dues | +| expire | show how long until your account expires (pre-validated users only) | +| vpmstat | display information about your virtual POP3 mailboxes (VPM membership required) | +| vpnstats | view VPN usage statistics (VPN membership required) | +| webquota | show web transfer quotas for your website | +^ User Information ^^ +| online | prints the amount of time that the given user (or yourself, if none is given) has spent logged in today; does not work correctly | +| sentry | prints notices of logins & logouts on the system | +| uinfo | print the date & time when the given user joined SDF & the various membership levels | +| url | print the URL at which the given SDF user's website is located | +^ Gallery Commands ^^ +| artgallery | add photography & artwork to the SDF art gallery | +| astrogallery | add astronomical photographs to the astro gallery | +| deskshots | add a picture of your computer desktop to the deskshots gallery | +| patches | add pictures of SDF 20^th anniversary patches to the patches gallery | +| sdfers | add a picture of yourself to the SDF member photos gallery | +| stickers | add pictures of SDF stickers to the SDF stickers gallery | +| vintage | add a picture of a vintage computer to the vintage computers gallery | +^ Other ^^ +| due (delete, undelete, expunge) | two-step file deletion for Unix machines. Currently, this program does not actually seem to be installed, but its source is available in /sys/sdf/src/due. | +| freeirc | allows non-ARPA members to use IRC on the weekend | +| game-review | submit a review for a game on ascii-games.org | +| instruct | manage student shell accounts (INSTRUCTOR membership required) | +| mkgallery | produce a thumbnail gallery page for the given images | +| mud | telnet to SDFmud | +| nospam | defers obvious spam messages to separate files; run nospam -i for more information | +| oneliner | print a random line by another SDF member, or add your own | +| pledge | pledge money to the SDF Public Access UNIX System | +| psh | the restricted shell used by pre-validated SDF accounts | +| quote | display the current price for a given stock; does not seem to currently be working properly | +| smj | print a random quote from the SDF sysadmin | +| surl | SDF's URL shortening service | +| teach | fill out a survey about virtual classes taught on SDF machines | +| thxmoo | a MOO based around the world of THX-1138 | +| uinfo | account information for a given user or yourself | +| upload | wrapper around rz for uploading files | +| url | show the url for yourself or a given user | +| vote | vote on a currently open SDF ballot (ARPA membership required) | + +\\ $Id: sdf_specific_commands.html,v 1.6 2017/08/03 14:30:33 hobbsc Exp $ \ No newline at end of file diff --git a/dump/sdf_voip.html.docuwiki b/dump/sdf_voip.html.docuwiki new file mode 100644 index 0000000..91a1371 --- /dev/null +++ b/dump/sdf_voip.html.docuwiki @@ -0,0 +1,86 @@ +=== Setting up a SIP phone with SDF VoIP === + +SDF Voice over Internet Protocol Telephony is a service feature available to the [[http://sdf.org/?join|ARPA]], [[http://sdf.org/?join|META]] and Validated [[http://sdf.org/?join|USERS]] membership levels. It allows an SDF user to make voice and video calls to other SDF users and to linked Telephony services via a SIP client on a 3G or WIFI cellphone, WIFI enabled mobile device, or an Internetworked computer. + +SDF VoIP set up and server configuration can be accessed via 'maint' at the shell ('maint' -> v -> p). + +Below is a list of known-to-work [[#sip_clients|sip clients]], and [[#general_instructions|general instructions]] on configuring and setting up a SIP client. There may also be [[/?tutorials/sdf_voip_client|client-specific instructions]] as well. + +Wikipedia also has a list of notable [[http://en.wikipedia.org/wiki/List_of_SIP_software#SIP_clients|SIP clients]]. + +=== Tested SIP Hardware === + +== Routers (with SIP capabilities) == + + * [[http://en.avm.de/service/fritzbox/fritzbox-7340/overview/|FritzBox 7340]] + +== Desktop == + + * Grandstream GXP2000 + * Grandstream DP750 with DP720 handset + * snom 300 + * [[http://www.cisco.com/en/US/products/hw/phones/ps379/ps1854/index.html|Cisco 7940G]] ([[/?tutorials/sdf_voip_7940g|Client Instructions]]) + +== Analog Phone Adaptor == + + * [[http://www.grandstream.com/products/ht_series/ht286/ht286.html|Grandstream HandyTone 286]] + * Grandstream HT801 + +=== [[|Tested SIP clients]] === + +== Cross-platform == + + * [[http://www.linphone.org|Linphone]] for iOS, Android, and Linux + * [[https://www.counterpath.com/plan-select-solo/|Bria Solo]] (formerly X-lite) Windows, Mac OS X - Desktop Client + * [[http://icanblink.com|Blink]] Windows, Mac OS X, Linux - Desktop Client + * [[http://ekiga.net|Ekiga]] Windows and Linux - Supports Video + +== Android == + + * CSipSimple + * Unlocked 2.3 (Gingerbread), 4.0 and up (including Android 10) handsets have native SIP support + +== iPhone/iPad/iTouchU == + + * [[http://www.fring.com/default.php|Fring]] on the Apple iPhone, iPod, iPad + * [[https://www.acrobits.net/sip-client-ios-android/|Acrobits Groundwire]] + +== Nokia == + + * Built-in client on Nokia phones and tablets (N810) + +== Mac OS X == + + * [[http://itunes.apple.com/gb/app/telephone/id406825478?mt=12|Telephone]], available through the App Store. + +== Unix-ish == + + * XMeeting + +== Windows == + + * [[https://www.microsip.org/|MicroSIP]] Open Source SIP client for Windows + +=== [[|General Instructions]] === + +All SIP clients must have at least 3 bits of information: + +extensionThe "username" used for authentication. Currently, the **extension is a series of numbers** such as "6000". A [[http://sdf.org/?tutorials/sdf_voip_ext|directory]] of users is also available. The assigned extension will be given in an email. Do not use your SDF username.domainThis may also be known as the server to connect with. Use **sip.sdf.org** as the server; use the default port of **5060/udp**. Please note: some clients infer the domain from the extension. In this case, the extension will be in the form of "extension@domain", or "sip:extension@domain"; eg, "6000@sip.sdf.org" would be a valid username that includes the domain.passwordThis is the password used to authenticate to the SIP server. This will be provided in the email as well, but may change very soon in the future. The password can be reset via the maint command. + +=== [[|Client Instructions]] === + +Please see the [[/?tutorials/sdf_voip_client|client instructions]] page for specific client instructions. + +=== [[|Voicemail]] === + +Voicemail messages will be automatically mailed to your SDF email address in WAV format. + +=== [[|PSTN]] === + +Want to call the public switched telephone network? Read the info [[/?tutorials/voip_pstn|here]] + +This tutorial is far from complete. Wanna make it better? Edit it! + +---- + +$Id: sdf_voip.html,v 1.43 2019/12/13 03:39:56 jasmaz Exp $ \ No newline at end of file diff --git a/dump/sdf_voip_7940g.html.docuwiki b/dump/sdf_voip_7940g.html.docuwiki new file mode 100644 index 0000000..147f7bc --- /dev/null +++ b/dump/sdf_voip_7940g.html.docuwiki @@ -0,0 +1,51 @@ +====== Using a Cisco 7940G or compatiable phone with SDF VOIP ====== + +//Note: You must have the **SIP** firmware installed on the phone, not the SCCP or the MGCP firmware. Flashing the phone is outside the scope of this tutorial, you're welcome to try searching [[http://www.google.com/|here]].// + +There are two methods that you can use to configure the phone. The simplest way is to configure it using the settings menus although there are some settings that you cannot set in this way to unlock the more advanced features of the phone, for this you'll need to use a TFTP server which you can find more details for elsewhere online. + +===== Basic Setup ===== + +==== Prerequistities ==== + + * If you are behind a NAT gateway, you can gain access to the gateway device. + * You know the phone's password. + +==== Network Configuration ==== + +To begin, you'll have to configure some IP settings. Hit the settings button on the phone to bring up the settings menu. This button is either labelled "Settings" or looks like a box with a tick in it depending on where your phone was originally purchased. + +All the settings are initially locked. You must unlock the settings by going to menu option 9. Either use the arrows to navigate to the option and use the soft key to select it, or just press 9. You'll be asked for the password. If you do not know it, the default password "cisco" may work. Enter it as if you were writing a text message using the numeric keypad and then press the "Accept" soft key. + +You'll now be returned to the settings menu. You should now select option 3 for "Network Configuration". If DHCP is active on your network, the phone will have requested a DHCP lease and a lot of the information will have been filled out for you. The phone should have a static IP address whether in global address space or private. You can arrange this by having the DHCP server assign a fixed address every time the phone requests one. The phone's MAC address is displayed in this menu rather convieniently. + +The important ones to configure are: + + * IP address + * Subnet Mask + * Default Router 1 + * DNS Server 1 + * DNS Server 2 //if available// + +Once configured, hit the "Save" soft key. Now from the settings menu, you should select option 4. If you are behind a NAT gateway, set option 24 (NAT Enabled) to Yes and option 25 (NAT Address) to your external IP address. At this time you should also forward UDP ports 5060, 16384-32766 to the IP address of the phone. + +==== SIP Configuration ==== + +You're now ready to configure the line settings. Option 1 in the SIP configuration menu allows you to enter your SDF VOIP details. These should be as follows: + + - Name: <YOUR_EXT> + - Shortname: <YOUR_EXT> + - Authentication Name: <YOUR_EXT> + - Authentication Password: <YOUR_PASSWORD> + - Display Name: <YOUR_NAME> + - Proxy Address: sip.sdf.org + - Proxy Port: 5060 + - Messages URI: 1085 + - Preferred Codec: g729a + - Register with Proxy: YES + +Hit the "Save" soft key and once you return to the home screen, you'll be connected. Hit the "New Call" soft key and dial 1004 to hear the milliwatt test tone to confirm it's working. + +---- + +$Id: sdf_voip_7940g.html,v 1.8 2017/11/07 11:37:31 irl Exp $ \ No newline at end of file diff --git a/dump/sdf_voip_adv.html.docuwiki b/dump/sdf_voip_adv.html.docuwiki new file mode 100644 index 0000000..a917bd3 --- /dev/null +++ b/dump/sdf_voip_adv.html.docuwiki @@ -0,0 +1,16 @@ +=== SDF VoIP Advanced Features and Setup === + +//Please note that making unsolicited calls may be considered rude// + +SDF's VoIP Telephony Service is linked into "[[https://www.ckts.info|C*NET]]" or what is called the "**//Telephone Collectors Network//**". This network is a collection of vintage telephones, electro-mechanical office switches, digital switches and PBXes (Private Branch eXchange) as well as newer VoIP equipment. The purpose of this network is to allow access from both C*NET linked exchanges and the PSTN (Public Switched Telephone Network) (available in some areas) from around the world. No changes need to be made to your SIP setup for you to be able to access C*NET from SDF's VoIP server. + +=== Dialing a C*NET number === + + * C*NET numbers are in the format of COUNTRY CODE + EXCHANGE + EXTENSION + * For external numbers, you'll need to dial the C*NET gateway extension of 1929 and wait for the prompt, then enter the COUNTRY CODE + EXCHANGE + C*NET number + * //When dialing a number within SDF VoIP, the COUNTRY CODE + EXCHANGE or EXCHANGE number is not necessary// + * The format of an SDF C*NET number would be 1 333 1004 (SDF's Milliwatt Test Tone) + * To test from SDF, try dialing 1929, then 1 736 5000 (You could hear the song PEnnsylvania-6 5000) + * Please view the [[https://www.ckts.info/directory/|C*NET Member Directory Listings]] for available numbers + ---- + $Id: sdf_voip_adv.html,v 1.5 2019/11/25 00:20:21 thegiant Exp $ \ No newline at end of file diff --git a/dump/sdf_voip_baresip.html.docuwiki b/dump/sdf_voip_baresip.html.docuwiki new file mode 100644 index 0000000..4063c78 --- /dev/null +++ b/dump/sdf_voip_baresip.html.docuwiki @@ -0,0 +1 @@ +­ ­$Id­$ \ No newline at end of file diff --git a/dump/sdf_voip_client.html.docuwiki b/dump/sdf_voip_client.html.docuwiki new file mode 100644 index 0000000..54222f7 --- /dev/null +++ b/dump/sdf_voip_client.html.docuwiki @@ -0,0 +1,85 @@ +=== Client Instructions === + +Below are instructions on configuring a SIP client to work with SDF's VOIP service. Please see the [[?tutorials/sdf_voip|SDF VOIP tutorial]] for more information. + +== List of Clients == + + * [[#linphone_for_ios|Linphone for iOS]] + * [[#ekiga_on_multi|Ekiga for Windows and linuxy things]] + * [[#grandstream|Grandstream GXP2000]] + * [[#handytone|Grandstream Handytone 286]] + * [[#android_native|Android native client]] + +=== [[|Client Instructions]] === + +== [[|Linphone for iOS]] == + +Linphone may be installed by searching for "Linphone" in the App Store or by clicking [[http://itunes.apple.com/us/app/linphone/id360065638?mt=8|here]] to open the App Store page on your iOS device.\\ Once you have installed the application, open the **general settings** application on your iOS device. There are no settings within the app itself. In the general settings application, scroll down until you find an entry for Linphone. Tap it to open Linphone's settings\\ The following settings need to be filled:\\ **User name** - Enter your SIP extension number**Password** - Enter your SIP password**Domain** - Enter **sip.sdf.org****Transport** - Be sure it is set to **UDP****Background Mode** - Turn this setting on if you wish to allow Linphone to run and receive calls in the background + +== [[|Ekiga for Windows and linuxy things]] == + + Download and install [[http://ekiga.org/|ekiga]]. During the initial run, a wizard will appear. Cancel out of the wizard and **manually add an account** with the steps below. More information can also be found on ekiga's [[http://wiki.ekiga.org/index.php/Documentation|documentation site]]. + + - **Cancel out of the wizard**, if it is still running. + - **Add an account** through "Edit→Accounts" + - In the pop up, go to **"Accounts→Add a SIP account"** and fill in the fields. + - Give the account a name in the Name field. + - For **Registrar**, use **sip.sdf.org**. + - For **User**, use the **numeric extension ID** supplied in the email. + - For **Authentication User**, use the **numeric extension ID** supplied in the email. + - For Password, use the password supplied in the email. + - For **Timeout**, make sure the value is large like **3600**. + - Select the "Enable Account" box. + - Select OK to complete this process. + - Have fun. + +== [[|Grandstream GXP2000]] == + +The Grandstream GXP2000 is an office SIP phone. It is fairly straightforward to setup via the phone's web interface. Below is a screenshot with highlighted options needed for it to register and work properly with SDF's VOIP system. Here are some items to note: + + * Replace 1134 with your extension ('SIP User ID' and 'Authenticate ID' options), and slugmax ('Name' option) with your own user ID (or whatever you want - the 'Name' option gets displayed on the phone's LCD display, but is not useful otherwise). + * The 'Voice Mail UserID' is really the extension number for the voicemail system. Currently, this is 1085. Once setup, hitting the phone's 'msg' button will dial this extension. + * I have NAT traversal disabled, as I have my home router configured to forward UDP port 5060 to the phone's IP. You may need NAT traversal, depending on your setup. **I've found it necessary with a standard UDP port forwarding setup to select 'No, but send keep-alive' for this option, without it longer duration calls were being dropped after about 10 minutes.** + * Make sure you choose 'via RTP' for the 'Send DTMF' configuration option. Otherwise the voicemail system will not allow you to login. + * The 'Authenticate Password' option is the password given to you in the VOIP signup email + +{{tutorials/images/grandstream_voip.png}} + +== [[|Grandstream Handytone 286]] == + +The Grandstream Handytone 286 is a simple analog telephone adapter. It can allow you to use any analog phone with the SDF VOIP service. It can be configured using the built-in web interface or through voice prompts by dialing *** on an analog phone. + + * Add 'sip.sdf.org' to the SIP Server field + * Add your extension to the SIP User ID and Authenticate ID fields + * Add your VOIP password provided from 'maint' to the Authenticate Password field + * Add your name to the Name field, if you wish + * Set Use DNS SRV to 'Yes' + * Set NAT Traversal to 'No' + * UN-check 'in-audio' and check 'via RTP (RFC2833)' for Send DTMF + +You should also forward UDP port 5060 to the Handytone's IP address through your router. It may be a good idea to set the Handytone to a static IP address, which can be done on the Basic Settings tab. Don't forget when doing this to add all the relevent fields, including a proper DNS server, else the Handytone won't be able to resolve the sip.sdf.org address. + +== [[|Android native client]] == + +Android 2.3 and up seems to have a built-in SIP client. The screenshots below are from Android 4.3. This is tested with wifi data, and 3G/HSPA on tmo. Some carriers or specific android versions may disable SIP calling over cellular data. + + - From the Android home screen, tap the phone icon to go to the dialpad. {{/tutorials/images/sdf_voip_client_instructions/native_android/01-home.png}} + - Tap the settings icon on the lower left button. {{/tutorials/images/sdf_voip_client_instructions/native_android/02-dialpad.png}} + - Select the Settings option. {{/tutorials/images/sdf_voip_client_instructions/native_android/03-dialpad_settings.png}} + - Optionally, select the "Use Internet calling" option to select when to use SIP calling, and when to use the regular calling function. In this case, I slect "Only for Internet calls" only for SIP calls. (See contacts discussion below.) {{/tutorials/images/sdf_voip_client_instructions/native_android/04-call_settings.png}}{{/tutorials/images/sdf_voip_client_instructions/native_android/05-internet_calling_setting.png}} + - Select Accounts to create the SIP account. {{/tutorials/images/sdf_voip_client_instructions/native_android/05.5-call_settings2.png}} + - Optionally, select "Receive incoming calls" if you want to receive SIP calls on this phone. {{/tutorials/images/sdf_voip_client_instructions/native_android/06-add_account.png}} + - Select the "Add Account" option near the bottom. {{/tutorials/images/sdf_voip_client_instructions/native_android/06.5-add_account.png}} + - On the next screen, tap Username and enter only the extension number. Tap password and enter your password. Tap Server and enter sip.sdf.org. Optionally, select "Set as primary account." This option does not seem to be necessary to make an outbound call. Maybe this is only used when multiple SIP accounts are configured? Tap save to save the settings. Now things should be ready for a test call. {{/tutorials/images/sdf_voip_client_instructions/native_android/07-account_details.png}} + +When making a call from the dialpad, there does not seem to be a way to enter the @ sign. If "Use Internet calling" is set to "For all calls", then this is not an issue: just type the extension number and tap call.. + +Another way to make SIP calls is to add the SIP number (nnnn@sip.sdf.org) into the contacts, and select the number from the address book. Android seems to detect the @ sign and automatically switch to internet calls regardless of what the "internet calling" setting and the "Set as primary account" setting is set to. + +Finally, Google Contacts also has the option of labeling a number as "Internet call" which will trigger SIP calling as well. + +This tutorial is far from complete. Wanna make it better? Edit it! + +---- + +$Id: sdf_voip_client.html,v 1.2 2013/09/07 18:41:38 wliao Exp $ \ No newline at end of file diff --git a/dump/sdf_voip_ext.html.docuwiki b/dump/sdf_voip_ext.html.docuwiki new file mode 100644 index 0000000..79e9293 --- /dev/null +++ b/dump/sdf_voip_ext.html.docuwiki @@ -0,0 +1,126 @@ +=== SDF VoIP Extension Directory === + + * SDF's [[http://ckts.info|C*NET]] NXX is 333 (ex. +1-333-1000 connects you with our Milliwatt) + * For listings that have enabled 'Direct VoIP' dial extension (@) sip.sdf.org + * //Please note that making unsolicited calls may be considered rude//=== Test and Service Extensions === + | **Extension** | **Subscriber** | **Description** | **24/7** | + | 1001 | internal | Date and Time UTC | YES | + | 1002 | internal | Linear Sine Test from 16Hz to 20kHz | YES | + | 1003 | internal | Exponential Sine Test from 16Hz to 20kHz | YES | + | 1004 | internal | Milliwatt (1004Hz @ 0dB) | YES | + | 1005 | internal | Echo Response Test (USA) | YES | + | 1006 | internal | CQ Serenade | YES | + | 1009 | internal | IVR Adventure Game | YES | + | 1026 | internal | 2600Hz @ 0dB | YES | + | 1030 | internal | Music on Hold | YES | + | 1085 | internal | Voice Mail System | YES | + | 1086 | internal | Conference Bridge (no mute) | YES | + | 1088 | internal | Conference Bridge (//Press #1 to toggle mute//) | YES | + | 1929 | internal | C*NET Gateway | YES | + | 5004 | internal | Milliwatt (1004Hz @ 0dB) (EU) | YES | + | 5005 | internal | Echo Response Test (EU) | YES | + | 5085 | internal | Voice Mail System (EU) | YES | + | 5088 | internal | Conference Bridge (EU) (//Press #1 to toggle mute//) | YES |=== Subscriber Extension Directory === + | **Extension** | **UTC +/- Offset** | **Subscriber** | **Description** | **Unsolicited Calls** | **Direct VoIP** | + | 1100 | -08:00 | smj | Nokia e70 S60 | YES | YES | + | 1022 | -07:00 | developer | Blink | YES | | + | 1057 | -06:00 | jebug29 | X-Lite for Windows | YES | YES | + | 1058 | -05:00 | adamd | Linphone on Linux | YES | YES | + | 1066 | -07:00 | shufei | Blink, Linphone | YES | YES | + | 1084 | -04:00 | benharri | builtin android client | YES | YES | + | 1087 | -04:00 | moondoggy | Linphone | YES | YES | + | 1101 | -07:00 | br | Nokia N900, Ekiga | YES | | + | 1103 | +00:00 | yargo | linphone, Twinkle, etc | YES | | + | 1106 | -06:00 | ecelis | csipsimple, ekiga | YES | | + | 1107 | -05:00 | nsweeney | iPhone | YES | | + | 1111 | -08:00 | testing | testing | NO | | + | 1112 | -08:00 | anthonyg | Nexus S, Linphone | YES | YES | + | 1116 | +05:30 | rmj | Blink | YES | | + | 1118 | +01:00 | vosi | various clients | YES | | + | 1119 | -05:00 | carbine | Aastra 9133i | YES | | + | 1120 | -05:00 | bb | Asterisk 1.6 | YES | | + | 1121 | +00:00 | jones | Various Clients | YES | | + | 1127 | -08:00 | alancf | Various Clients | YES | | + | 1130 | -07:00 | ajgraves | Linphone | YES | | + | 1131 | -06:00 | wa5pb | Ekiga | YES | | + | 1132 | -05:00 | tg | s60 / Blink | YES | | + | 1133 | -07:00 | samos | Droid | YES | | + | 1134 | -05:00 | slugmax | Grandstream GXP2000 | YES | | + | 1139 | -05:00 | xcitor | Blink SIP Client, HT-502 ATA | YES | YES | + | 1140 | +01:00 | wyan | iPad, Nexus One | YES | | + | 1141 | -08:00 | dhaber | | YES | | + | 1144 | +00:00 | phm | linphone | YES | | + | 1145 | -06:00 | xexyz | Linphone | YES | | + | 1146 | +11:00 | thomask | Nokia E63 | YES | | + | 1151 | -06:00 | jecxjo | Zoiper | YES | YES | + | 1155 | -09:00 | ta2 | linphone on iPhone | YES | YES | + | 1159 | -06:00 | zeptar | Blink | YES | | + | 1165 | -04:00 | amrowsell | Pixel 2 XL, Jami on Linux | YES | YES | + | 1166 | -05:00 | grobe0ba | Bria on iOS/CSipSimple on Android, via FreeSwitch PBX | YES | | + | 1169 | -06:00 | sirmxe | Various | YES | | + | 1174 | +00:00 | nb0yjxtr | Ekiga | YES | | + | 1177 | -06:00 | kdavis | GS-DP715 | YES | YES | + | 1192 | -07:00 | nblade | CSipSimple on Android | YES | YES | + | 1225 | -05:00 | bac | Aastra 9133i | YES | | + | 1270 | -08:00 | niro | CSipSimple | YES | YES | + | 1291 | +08:00 | yupeng | speedtouch st780wl | YES | YES | + | 1313 | +00:00 | nicknick | Grandstream GXP2100 | YES | YES | + | 1343 | +02:00 | tisho | Linphone on Android | YES | YES | + | 1359 | +12:00 | thom | Ekiga | YES | YES | + | 1366 | -07:00 | dbk | Nokia N900 & softphone(s) | YES | YES | + | 1380 | -05:00 | thegiant | [[http://pbxes.org|PBXes]] hosted PBX | YES | YES | + | 1388 | +00:00 | irl | Asterisk (using FreePBX) | YES | YES | + | 1399 | -08:00 | vandys | Asterisk | YES | YES | + | 1423 | -08:00 | ladams | Cisco 7960G | YES | YES | + | 1460 | -08:00 | weevie | Grandstream Handytone 286, Jitsi, Blink | YES | YES | + | 1483 | -08:00 | quintin | Obihai OBi1062 | YES | YES | + | 1504 | -06:00 | overland | Pirelli DP-L10 | YES | | + | 1517 | -05:00 | epl692 | Grandstream HT503 | YES | YES | + | 1542 | -05:00 | handyc | Linphone | YES | YES | + | 1572 | -05:00 | hobbsc | Grandstream DP250/270, Linphone, Cortelco 2500 via Grandstream HT801 | YES | YES | + | 1584 | -05:00 | ki | Nexus 5, VDV23 | YES | YES | + | 1605 | +01:00 | beni | [[http://beni.sdf.org/phone.html|This]] on a FritzBox | YES | YES | + | 1617 | -05:00 | webwiz | Various | YES | YES | + | 1632 | +00:00 | hugh.mayfield | Various clients on GNU/Linux and Replicant | YES | YES | + | 1662 | -07:00 | slunky | [[http://slunky.tx0.org/stuff/Blink.dmg|Blink]], Bria, Hacked VDV23 | YES | YES | + | 1679 | -04:00 | michaeldavis | Cisco 303 | YES | | + | 1688 | -06:00 | dbvelez | Linphone iPhone 5s | YES | | + | 1692 | -08:00 | nydel | blink, Linphone iPhone4s | YES | YES | + | 1696 | -08:00 | edgchacon | Various | YES | | + | 1739 | -06:00 | jasmaz | Grandstream HT286 | YES | | + | 1770 | -04:00 | cel | [[http://creytiv.com/baresip.html|baresip]], Linphone | YES | YES | + | 1794 | -06:00 | jwh | Linphone | YES | YES | + | 1795 | -08:00 | wireddude | Linphone | YES | | + | 1797 | -04:00 | snowdusk | Telephone for Mac OS X, Linphone for iOS | YES | YES | + | 1799 | -04:00 | robmusial | Various for Linux, *BSD, macOS | YES | YES | + | 1877 | -08:00 | nonlinear | Various | YES | YES | + | 1897 | -05:00 | tomasino | Google Pixel, native Android client | YES | YES | + | 1908 | -06:00 | mnw | Linphone on macOS X | YES | YES | + | 1913 | -05:00 | zelbrium | Telephone on Mac | YES | | + | 1917 | -08:00 | dokuja | OBi110 | YES | YES | + | 1999 | +10:00 | cat | Cisco SPA112 and various Australian phones | YES | YES |=== Totally 80s Rewind ===//Whether it's playing vintage computer games or listening to classic record albums, the meteoric rise of technology is what made the 1980s so transformative. From personal computers to answering machines and arcade cabinets to Walkmans, Living Computers set out to recreate a day in the life of an 80s teenager with Totally 80s Rewind.//\\ \\ Want to call the 80s? + The Bit Zone payphone (425) 256-7525 + The basement desk phone (425) 256-7518 + === Private Phone Museum Access ===smj and jgw visited a private phone collection, pictures can be seen [[https://wm.sdf.org/gallery/thumbnails.php?album=548|here]]. Want to call that switch? Dial 1929 from SDF VoIP then dial any of these: + 1-377 -1111 Welcome msg, and General Switch Info + 1-377 -2525 Asterisk Time Of Day + 1-377 -5000 Common Line in Garage. + 1-377 -51xx 120 Ipm tone. All Ckts busy + 1-377 -5244 Rings no Phone 24 x 7 + 1-377 -5252 General Telephone Number + 1-377 -5299 Always busy. 60 IPM 24x7 + 1-377 -5521 1a2 SWFR 3 24 x 7 + 1-377 -5531 SWFR # 5 24 x 7 + 1-377 -5536 REAR OF SWFR #4 24 x 7 + 1-377 -5555 Central office Telephone number 24 x 7 + 1-377 -5575 Trimline on SWFR #5 24 x 7 + 1-377 -5611 211 Set mounted on side of #24 Testboard 24 x + 1-377 -5627 Rings no phone 24 x 7 + 1-377 -5845 Vac Number Intercept 24 x 7 + 1-377 -5870 Ring, no phone. 24 x 7 + 1-377 -5888 PATTIS WORK ROOM (code Ring) 24 x 7 + 1-377 -5911 Tst line on workbench 24 x 7 + 1-377 -7777 Live Listen In Line to switchroom. (NOT A RECORDING) 24 x 7 + 1-377 -9901 W E 1C1 Payphone out side of Central Office 24 x 7 + ---- + //$Id: sdf_voip_ext.html,v 1.177 2020/07/03 17:02:08 robmusial Exp $// \ No newline at end of file diff --git a/dump/sdf_voip_freepbx.html.docuwiki b/dump/sdf_voip_freepbx.html.docuwiki new file mode 100644 index 0000000..b6f0ad4 --- /dev/null +++ b/dump/sdf_voip_freepbx.html.docuwiki @@ -0,0 +1,42 @@ +====== Using FreePBX with SDF VOIP ====== + +This tutorial shows how to add your SDF VOIP extension as a trunk in [[https://www.freepbx.org/|FreePBX]]. + +===== Prerequisites ===== + + * A working FreePBX setup + * Access to the FreePBX admin interface + +===== Procedure ===== + +In the admin interface follow these steps, replacing "$EXTENSION" and "$PASSWORD" with your extension number and password respectively: + + - Go to //Connectivity// » //Trunks// + - Select //Add Trunk// and choose //Add SIP (chan_sip) trunk// + - Set //Trunk Name// to "sdf" + - Set //Outbound Caller ID// to "<$EXTENSION@sip.sdf.org>" + - Set //CID Options// to //Force Trunk CID// + - Go to the //sip Settings// tab + - Set //Trunk Name// to "SDF" + - Set peer details to: host=sip.sdf.org + username=$EXTENSION + secret=$PASSWORD + type=friend + context=from-trunk + insecure=port,invite + trustrpid=yes + sendrpid=yes + directmedia=no + qualify=yes + keepalive=45 + nat=yes + dtmfmode=rfc2833 + disallow=all + allow=ulaw + - Go to the //Incoming// tab + - Set //Register String// to "$EXTENSION:$PASSWORD@sip.sdf.org" + - Click //Submit// + +You can now define Inbound and Outbound routes using this new trunk. To test inbound calls, you can queue a test call through "maint". + +$Id: sdf_voip_freepbx.html,v 1.2 2017/11/07 12:49:54 irl Exp $ \ No newline at end of file diff --git a/dump/sdf_voip_raspbx.html.docuwiki b/dump/sdf_voip_raspbx.html.docuwiki new file mode 100644 index 0000000..a4762b3 --- /dev/null +++ b/dump/sdf_voip_raspbx.html.docuwiki @@ -0,0 +1,5 @@ +=== Configure Asterisk on Raspberry Pi and Beaglebone Black === + +Below are instructions on setting up a Raspberry Pi or Beaglebone Black single board computer as an Asterisk server. Please see the [[?tutorials/sdf_voip|SDF VOIP tutorial]] for more information. + +$Id: sdf_voip_raspbx.html,v 1.3 2015/06/07 22:51:04 grobe0ba Exp $ \ No newline at end of file diff --git a/dump/sdf_volunteers.html.docuwiki b/dump/sdf_volunteers.html.docuwiki new file mode 100644 index 0000000..1ce53a6 --- /dev/null +++ b/dump/sdf_volunteers.html.docuwiki @@ -0,0 +1,22 @@ +==== SDF Volunteer Moderator and Administrator Guidelines ==== + +This document outlines the guidelines to be followed by SDF Volunteer Moderators and Administrators. By volunteering you are helping to continue the long development of SDF as a user driven community. Volunteers are granted certain benefits and privileges which place them above regular users and members. Because of this, volunteers must be mindful and respectful of their position when interacting with the SDF systems and its members. + +=== Prerequitsites === + + * Candidate must be a current MetaARPA member + * Provide a current CV/Resume (.txt of .pdf) + * Be able to demonstrate a needed skill or present new idea + * Have good documenting skills (txt, info man, html) + * Willing to help SDF users in a courteous and respectful manner at all times + * Dedicated to the success and longevity of SDF === A Volunteer Candidate at SDF does not === + * want access or privileges for personal gain, data collection or profit + * want access to install back doors or hack SDF internals + * use SDF for abuse, spamming or advertising purposes + * use SDF as 'cheap or free server' platform to host and/or develop their own services + * borrow or steal ideas from SDF to implement on their own systems + * solicit SDF users to use their own public or private services === Volunteer Benefits and Privileges === (//Benefits and Privileges vary with respect to each project//) + * Access to project group which may include special commands, files, daemons and servers + * Software and hardware remote control access + * Hardware site visitation for maintenance (//requires background check and ID to be kept on file for some datacenters//) + * Monetary compensation for costs, travel and expenses //While SDF Volunteers do not have access to user's personal data (mail or home directory) they may have direct access to user data associated with the project they are working on.//=== Resigning === SDF Volunteers may resign at anytime for any reason by sending an e-mail to 'volunteers' from the shell. While there is no obligation to do an exit review/report or hand off to other volunteers working on the same project, it would appreciated. === Applying === To apply, simply make a proposal for a project or idea you have that you believe would benefit the SDF community. Your proposal should be at least a paragraph long, but may be longer if needed and include a basic outline. A CV or resume can be attached as a .txt or pdf file to provide documentation of your skill set and level. Proposals may be sent via e-mail to 'volunteers' from the shell. $Id: sdf_volunteers.html,v 1.5 2014/01/02 00:46:51 smj Exp $ \ No newline at end of file diff --git a/dump/sdfmc-commands.html.docuwiki b/dump/sdfmc-commands.html.docuwiki new file mode 100644 index 0000000..a5e9311 --- /dev/null +++ b/dump/sdfmc-commands.html.docuwiki @@ -0,0 +1,18 @@ +====== Helpful Commands ====== + +The following commands are available to users. + + - **/help ** - Main help menu. + - **/cast <help>** - List spell casting options. //Warp to magic_spells to obtain spells.// + - **/colors ** - List all color codes available. + - **/dynmap <show|hide>** - Show or hide yourself on the map. + - **/ec balance ** - Check your balance. + - **/mvtp <world|sdf1|sdf2|sdf3|sdf4|flat_lands>** - Jump to different world. + - **/rtp <USER>** - Teleport to another user. Requires the other player to accept. + - **/warp help** - Warp to different locations. + - **/who** - List who is currently playing. + - **/tv <day|night>** - Vote for a time change. + - **/wv <sun|rain|thunder>** - Vote for a weather change. + - **/t <player> <message>** - Send private messages. + +$Id: sdfmc-commands.html,v 1.2 2017/01/23 00:21:18 papa Exp $ \ No newline at end of file diff --git a/dump/sdfmc-connecting.html.docuwiki b/dump/sdfmc-connecting.html.docuwiki new file mode 100644 index 0000000..364cc0f --- /dev/null +++ b/dump/sdfmc-connecting.html.docuwiki @@ -0,0 +1 @@ +$ID$ \ No newline at end of file diff --git a/dump/sdfmc-gallery.html.docuwiki b/dump/sdfmc-gallery.html.docuwiki new file mode 100644 index 0000000..364cc0f --- /dev/null +++ b/dump/sdfmc-gallery.html.docuwiki @@ -0,0 +1 @@ +$ID$ \ No newline at end of file diff --git a/dump/sdfmc-links.html.docuwiki b/dump/sdfmc-links.html.docuwiki new file mode 100644 index 0000000..364cc0f --- /dev/null +++ b/dump/sdfmc-links.html.docuwiki @@ -0,0 +1 @@ +$ID$ \ No newline at end of file diff --git a/dump/sdfmc-plugins.html.docuwiki b/dump/sdfmc-plugins.html.docuwiki new file mode 100644 index 0000000..ac4a904 --- /dev/null +++ b/dump/sdfmc-plugins.html.docuwiki @@ -0,0 +1,22 @@ +====== Plugins ====== + +The servers utilize the [[http://bukkit.org/|Bukkit]] plugin system. The various plugins enhance the Minecraft experience and provide useful commands in the game. Below are a few of ther plugins installed on the server. You should take note that these might not all be currently working as expected because of the recent change to Spigot. + + - [[http://dev.bukkit.org/server-mods/sdfeconomy/|SDFEconomy]] - Economy support. + - [[http://dev.bukkit.org/server-mods/chestshop/|ChestShop]] - Sign based shops linked to chests. Buy and sell your wares. + - [[http://dev.bukkit.org/server-mods/deadbolt/|DeadBolt]] - Place a **[private]** sign above doors and next to chests to lock them. + - [[http://dev.bukkit.org/server-mods/dynmap/|Dynmap]] - A [[http://minecraft.sdf.org:8123|world map]] is generated in realtime. + - [[http://dev.bukkit.org/server-mods/ecocreature/|ecoCreature]] - Mobs drop money and other supplies. + - [[http://dev.bukkit.org/server-mods/fixit/|FixIt]] - Repair your items. Includes enchantments too! + - [[http://dev.bukkit.org/server-mods/motd/|Motd]] - Use commands like **/who**, and **/rtp <user>**. + - [[http://dev.bukkit.org/server-mods/magicspells/|MagicSpells]] - Cast magic spells with **/cast**. + - [[http://dev.bukkit.org/server-mods/multiverse-core/|MultiVerse]] - Create and manage worlds. + - [[http://dev.bukkit.org/server-mods/mywarp/|MyWarp]] - Warping for everyone. Type **/warp help** for details. + - [[http://dev.bukkit.org/server-mods/purpleirc/|PurpleIRC]] - Links game chat with IRC. + - [[http://dev.bukkit.org/server-mods/residence/|Residence]] - Self serve area protections. See the [[http://tx0.org/2o0|wiki]] for details. + - [[http://dev.bukkit.org/server-mods/scavenger|Scavenger]] - Inventory items are restored after every death. + - [[http://dev.bukkit.org/server-mods/stickyhelp/|StickyHelp]] - Enhanced help menu. See **/help** for more. + - [[http://dev.bukkit.org/server-mods/timeandweathercontrol/|TimeAndWeatherControl]] - Change time and weather.. + - [[http://dev.bukkit.org/server-mods/autowhitelist/|Whitelist]] - Dynamically updated via **maint**. + +$Id: sdfmc-plugins.html,v 1.1 2017/01/23 00:23:54 papa Exp $ \ No newline at end of file diff --git a/dump/sdfmc-survival.html.docuwiki b/dump/sdfmc-survival.html.docuwiki new file mode 100644 index 0000000..7aac3f5 --- /dev/null +++ b/dump/sdfmc-survival.html.docuwiki @@ -0,0 +1,70 @@ +====== SDF Minecraft Survival Checklist ====== + +This tutorial is intended for new Minecraft players trying the game for the first time. It assumes you are playing on one of the SDF Minecraft server worlds in survival mode, though much of the guidance will also be applicable to other Minecraft servers and to creative mode. + +===== Preliminaries ===== + + - Download and install Minecraft Launcher + - Register a Minecraft user ID + - Purchase a Minecraft Multiuser license + - Add your ID to the SDF Minecraft whitelist + +===== Connecting to the Minecraft Server ===== + + - Start Minecraft launcher + - Create a profile with your Minecraft user ID(For now, specify server version 1.8. If you also want to connect to servers that have alredy upgraded to version 1.9, create a separate profile.) + - Click "Play" button to launch Minecraft client + - Create an entry for the SDF server + - Connect to the server + +===== First Steps ===== + + - //(Optional)// Teleport to the world you want to play in: "/mvtp <world>"[[#fn1|1]] //("MultiVerse TelePort")//The first time you connect to the SDF Minecraft server, you will be deposited in the default world, SDF5, but you are free to play in any of the worlds hosted here. See [[|[Worlds section of MC page]]]. + - Basic controls + | Change facing direction | Mouse | + | Move forward/backward/left/right | W/S/A/D keys | + | Jump/climb/swim upward | Space bar | + | Break block/attack mob | Left mouse button | + | Place block/use object | Right mouse button | + | Open inventory display | E key | + | Select object in hand | 1-9 keys or mouse wheel | + | Game menu/close display | Esc key | + +===== Surviving Your First Day ===== + +In Minecraft, many wonders beckon to be explored, but the day is short, and the night is long[[#fn2|2]] and full of monsters! So in survival mode, protecting yourself is the first order of business. + +Start by gathering basic resources, crafting simple tools, and building your first shelter. + + - Collect 5 blocks of woodFind a tree and attack the trunk blocks. You will have to punch[[#fn3|3]] the block for a few seconds, but it will eventually break and fall to the ground. Move over the fallen block to collect it into your inventory. + - Craft planks from your wood blocksOpen your inventory display, drop your 3 wood blocks into one of the spaces in the 2x2 crafting area, and turn all the blocks into wood planks (you should get 12 planks). + - Craft a crafting tableKeep your inventory display open, drop 1 plank in each of the 4 spaces in the 2x2 crafting area, and make a crafting table. + - Place your crafting tableMake sure the crafting table is in one of your ___ slots, then close your inventory display and place the crafting table on any nearby open ground block. + - Craft 4 sticks from wood planksOpen your crafting table[[#fn4|4]], drop 2 planks in the crafting area [recipe? link?], and make 4 sticks. + - Craft a wood pickIn your crafting table drop 3 planks and 2 [recipe? link?], and make a wood pick. + - Craft 3 wood doorsIn your crafting table drop 6 planks [recipe? link?] and make 3 wood doors[[#fn5|5]]. + - Break your crafting table and pick it up. You will use it again once you've made your first shelter. + - Search for fuelYour next steps will depend on your surroundings in the Minecraft world. The most convenient form of fuel is coal, which can often be found in exposed veins on the surface. Look for mountains, hills, or rock outcroppings. You can also search well-lit cave entrances, but do not venture into the dark interior until you are equipped.Watch the sun's position to keep track of time. Break-off the search and make a shelter before it gets dark. + +==== If you find an exposed coal vein ... ==== + + - Collect coal by breaking the blocks with your pick and picking up the coal lumps. You need at least 1 lump, but you may as well take the entire vein as long as you have daylight. + - Carve out your first shelterA rock outcropping, hillside, cliffside, or cave entrance is a good place for your first shelter. Nothing fancy, but a quickly constructed safe place to spend the night. + +===== The Rest of Your Minecraft Life ===== + +===== Advanced Tricks ===== + +creep, run + +===== Community / Getting Help ===== + +===== Notes ===== + + - The Minecraft display will switch to the command console when you press "/". + - Minecraft day and night are both ten minutes long by default, but the night seems long when there is a horde of zombies converging on you! + - Using an axe will break wood blocks more quickly. Craft one once you have a safe shelter. See ___. + - You may also use the crafting area in your inventory display. The only difference between the inventory crafting area and a crafting table is size (2x2 versus 3x3). Crafting recipes that fit in a 2x2 grid can be used in the inventory crafting area as well as in a crafting table. + - You actually only need 1 door, but 3 is the smallest number you can make. + +$Id: sdfmc-survival.html,v 1.1 2019/12/06 20:50:52 thegiant Exp $ \ No newline at end of file diff --git a/dump/sdfmc-worlds.html.docuwiki b/dump/sdfmc-worlds.html.docuwiki new file mode 100644 index 0000000..951819d --- /dev/null +++ b/dump/sdfmc-worlds.html.docuwiki @@ -0,0 +1,72 @@ +====== SDF Minecraft Worlds ====== + +==== SDF6 ==== + +**Current world under development. Created Dec. 31, 2016** + + - **Mode** - Survival only + - **Difficulty** - Normal + +Initial version 1.11.2 + +==== SDF5 ==== + +**It has all the minerals right in your spawn area. It was started in April 2015** + + - **Mode** - Survival only + - **Difficulty** - Normal + +This world was started with version 1.8.4 + +==== SDF4 ==== + +**/mv tp sdf4** will get you there. + + - **Mode** - Survival only + - **Difficulty** - Normal + +This world was started with version 1.7.2 + +==== SDF3 ==== + +**/mv tp sdf3** will get you there. + + - **Mode** - Survival only + - **Difficulty** - Normal + +This world was started with version 1.6 + +==== SDF2 ==== + +Zombies will bust down your doors here. + + - **Mode** - Survival only + - **Difficulty** - Difficult + +==== SDF1 ==== + +Be sure to tour this place. There are a lot of awesome builds here. + + - **Mode** - Survival and Creative + - **Difficulty** - Normal + +==== WORLD ==== + +Our longest running map. This is the original map from the server's creation. Been around since July, 2011. Explore this wonderful archeological site. + + - **Mode** - Survival and Creative + - **Difficulty** - Normal + +==== FLAT_LANDS ==== + +Flat world sandbox. Go here to test stuff + + - **Mode** - Survival and Creative + - **Difficulty** - No monsters + +==== WORLD ==== + + - **Mode** - Survival + - **Difficulty** - Normal + +$Id: sdfmc-worlds.html,v 1.2 2017/01/23 00:16:26 papa Exp $ \ No newline at end of file diff --git a/dump/shacks.html.docuwiki b/dump/shacks.html.docuwiki new file mode 100644 index 0000000..aae038d --- /dev/null +++ b/dump/shacks.html.docuwiki @@ -0,0 +1,33 @@ +====== [[index.html|SDF ARC]] ====== + +===== SDF.ORG's Amateur Radio Club ===== + + * [[index.html|Home]] + * [[roster.html|Roster]] + * [[net.html|NET]] + * [[repeaters.html|Repeaters]] + * [[shacks.html|Shacks]] + * [[contact.html|Contact Us]] + +===== SDFARC Members' Shacks and Gear ===== + +If you a member, please feel free to add information, links, pictures of your gear and shacks here. + +==== KD5RYO ==== + +My "shack" is rarely in a single location and I try to stay highly portable. More info can be found on my QRZ page. + + * Yaesu FT-60R - 2m/440 used for hiking, driving, local chat, and satellites + * Comet SMA dual band whip for general use + * Tram 1191 for vehicle use + * Home made dual band half wave flower pot for base use + * Home made dual band tape measure yagi for satellite ops + * LNR Precision MTR-5B - QRP CW rig, mostly used on 40m + * Home made 40m speaker-wire dipole for use while hiking + * MFJ G5RV Junior (40m-10m) for backyard ops + * ASUS X101CH EeePC - EchoLink and SDR computer + * Generic RTL-SDR dongle for monitoring/exploring + * RadioShack DX-398 (Rebranded Sangean ATS-909) - Portable SWL + * RadioShack 278-1374A wind up antenna or random wire for general use + + Copyright © black_white | [[http://validator.w3.org/check?uri=referer|HTML5]] | [[http://jigsaw.w3.org/css-validator/check/referer|CSS]] | [[http://www.html5webtemplates.co.uk|Free CSS Templates]]$Id: shacks.html,v 1.5 2017/12/29 20:19:08 smj Exp $ \ No newline at end of file diff --git a/dump/shells.html.docuwiki b/dump/shells.html.docuwiki new file mode 100644 index 0000000..87e630b --- /dev/null +++ b/dump/shells.html.docuwiki @@ -0,0 +1,110 @@ +====== Ultimate Differences Amongst UNIX® Shells ====== + +This tutorial is a work in progress (WIP). + +===== Contents ===== + + * [[#Introduction|Introduction]] + * [[#ThompsonShell|Thompson Shell]] + * [[#BourneShell|Bourne Shell]] + * [[#CShell|C Shell]] + * [[#OtherShells|Other Shells]] + * [[#Conclusion|Conclusion]] + +===== [[|Introduction]] ===== + +The UNIX shells described in this tutorial include: osh (a port of the Thompson shell), sh (and sh-like shells), csh (and csh-like shells), and others. + +What are the critical differences and/or similarities among the various UNIX shells? The differences are generally command-line syntax issues. + +In the following sections, each example command line is noted by "Ecl [123]:". You can get an idea of how the shells differ by comparing the "Ecl [123]:" from each section against its corresponding "Ecl [123]:" in the other sections. + +The similarities among the UNIX shells described in this tutorial are more important than the differences. This is because when you learn how to use one shell, you in effect also learn how to use the others. In essence, each of the shells plays the same role from the user's perspective. That role is to act as an interface to the functionality which is available in the UNIX operating system. + +===== [[|Thompson Shell]] ===== + +In UNIX history, the Thompson shell preceded both the Bourne shell and the C shell, and its command language is a subset of both of these shells. Control flow in the Thompson shell is implemented via [[http://v6shell.org/man/if.1.html|if]](1) and [[http://v6shell.org/man/goto.1.html|goto]](1), which are external shell utilities. However, flow control in the Bourne and C shells is built into each shell. + +An enhanced port of the Thompson shell is available on SDF as "`/usr/pkg/bin/osh'". You can read its manual by doing a "`man osh'" at the command prompt. You can also read its manual [[http://v6shell.org/man/osh.1.html|online]] if you prefer to do so. + + Ecl 1: + + % setenv PATH /usr/pkg/bin:/usr/bin:/bin ; printenv PATH + /usr/pkg/bin:/usr/bin:/bin + + Ecl 2: + + % which osh if goto ^ ( tr '\n' ' ' ; echo ) ^ sed 's/.*/ls -l &/' ^ osh + -r-xr-xr-x 1 root wheel 7880 Jul 18 21:37 /usr/pkg/bin/goto + -r-xr-xr-x 1 root wheel 14160 Jul 18 21:37 /usr/pkg/bin/if + -r-xr-xr-x 1 root wheel 38216 Jul 18 21:37 /usr/pkg/bin/osh + + Ecl 3: + + % if -r /netbsd echo /netbsd: Is readable ; \ + if -w /netbsd echo /netbsd: Is writable + /netbsd: Is readable + +... \\ Notice that the "`setenv'" command above is not available in the original Thompson shell. This is just one of the **osh** enhancements. Do we want to say anything about the PWB shell? + +===== [[|Bourne Shell]] ===== + +This includes the original Bourne shell, its derivatives, and workalikes. A true Bourne shell or a Bourne-like shell typically serves as the standard command interpreter on most UNIX systems. + +A Bourne-shell workalike is available on SDF as "`/bin/sh'". You can read its manual by doing a "`man sh'" at the command prompt. You can also read its manual [[http://netbsd.gw.com/cgi-bin/man-cgi?sh+1.alpha+NetBSD-2.1|online]] if you prefer to do so. + + Ecl 1: + + $ PATH=/usr/pkg/bin:/usr/bin:/bin ; export PATH ; printenv PATH + /usr/pkg/bin:/usr/bin:/bin + + Ecl 2: + + $ ls -l `which sh ksh bash` + -r-xr-xr-x 1 root wheel 298431 Oct 24 2005 /bin/ksh + -r-xr-xr-x 1 root wheel 199717 Oct 24 2005 /bin/sh + -rwxr-xr-x 1 root wheel 963696 Jun 4 08:57 /usr/pkg/bin/bash + + Ecl 3: + + $ if test -r /netbsd ; then echo /netbsd: Is readable ; fi ; \ + > if test -w /netbsd ; then echo /netbsd: Is writable ; fi + /netbsd: Is readable + +===== [[|C Shell]] ===== + +This includes the original C shell, its derivatives, and workalikes. + +The C shell is available on SDF as "`/bin/csh'". You can read its manual by doing a "`man csh'" at the command prompt. You can also read its manual [[http://netbsd.gw.com/cgi-bin/man-cgi?csh+1.alpha+NetBSD-2.1|online]] if you prefer to do so. + + Ecl 1: + + % setenv PATH /usr/pkg/bin:/usr/bin:/bin ; printenv PATH + /usr/pkg/bin:/usr/bin:/bin + + Ecl 2: + + % ls -l `which csh tcsh zsh` + -r-xr-xr-x 1 root wheel 214333 Oct 24 2005 /bin/csh + -r-xr-xr-x 1 root wheel 459408 Jun 29 2005 /usr/pkg/bin/tcsh + -r-xr-xr-x 2 root wheel 6352 May 11 2007 /usr/pkg/bin/zsh + + Ecl 3: + + % if (-r /netbsd) echo /netbsd: Is readable ; \ + if (-w /netbsd) echo /netbsd: Is writable + /netbsd: Is readable + +===== [[|Other Shells]] ===== + +Is this section needed? + +This section will include information about the Z shell, rc (AT&T Plan 9 shell), and any other UNIX shell which does not neatly fall into one category..? + +===== [[|Conclusion]] ===== + +Expand on the differences/similarities in light of the preceding content. One important thing to notice is that though there are differences... The similarities are more important IMO. After all, it is the similarities that allow the user to switch from one shell to another with little difficulty. + +---- + +UNIX® is a registered trademark of [[http://www.opengroup.org/tm-guidelines.htm|The Open Group]]. \\ \\ $Id: shells.html,v 1.1 2008/12/19 16:35:57 jwodder Exp $ \ No newline at end of file diff --git a/dump/skey_tutorial.html.docuwiki b/dump/skey_tutorial.html.docuwiki new file mode 100644 index 0000000..2ded668 --- /dev/null +++ b/dump/skey_tutorial.html.docuwiki @@ -0,0 +1,87 @@ +===== Using Skey One-Time Pass-phrases for Logging in at Insecure Terminals ===== + +---- + +Note: skey(1) is currently only enabled for ssh(1) sessions on SDF. It also appears to only work with MD4 hashes. + +==== Concept: ==== + +By creating a set of one-time use pass-phrases, the **skey(1)** utility lets users securely login remotely at insecure terminals without exposing their real password. + +==== Precautions: ==== + +Once logged in, its important for security reasons that the user NOT type his/her real password during the session. + +==== Creating your skeys: ==== + +Your skeys are created via the 'skeyinit' command. There are some options available (see 'man skeyinit') but the defaults work just fine. Typing 'skeyinit' starts the process. You'll be prompted for your real password, so its important that you be securely logged in via ssh or similar. After you enter your password you're prompted for a skey-specific password (alphanumeric; 10+digits) which you'll need to enter twice. Things went correctly if you get something like this: + + member@sdf: {4} skeyinit + Password: + [Adding member] + Reminder - Only use this method if you are directly connected + or have an encrypted channel. If you are using telnet + or rlogin, exit with no password and use skeyinit -s. + + Enter secret password: + Again secret password: + + ID member skey is otp-md4 99 sdf65974 + Next login password: AGEE HOE HANK TAR MAY AID + + member@sdf: {5} + +Aside from your secret skey password, the important bit of information here is the ID: in this example member's unique skey ID is sdf65974, there are 99 pass-phrases available (default), and they are encrypted using MD4. + +As you can see, the first pass-phrase is provided. However, the default settings produce 99 pass-phrases, some or all(!) which you can display for printing purposes. To display the next six pass-phrases in the above example, we type 'skey -n 6 99 sdf65974' and reenter the secret password: + + member@sdf: {10} skey -n 6 99 sdf66315 + Reminder - Do not use this program while logged in via telnet or rlogin. + Enter secret password: + 94: HURT PO WAS COLT TEET ALGA + 95: OBEY MONK BOP GELD ELY ALL + 96: DUCK AIM BEND TENT FORK OAT + 97: ANA ITCH TOOL THAN CAM GIN + 98: LEAR STAG BELT BABY FEW WAY + 99: TOW CUE WELL REP GRIT MINI + +Incidentally, the pass-phrases get used starting at 99 and can be entered in upper or lower case (the spaces must be included however). To see what our next skey pass-phrase number is we type 'skeyinfo': + + member@sdf: {11} skeyinfo + Your next otp-md4 98 sdf66315 + +This means I need to use pass-phrase #98 next time I want to login with an skey pass-phrase. To make obtaining the next pass-phrase easier, create an alias: + + (for ksh shell; other shells work differently) + + % alias skey-next='skey -n 1 $(skeyinfo | cut -d " " -f 4-)' + % skey-next + Reminder - Do not use this program while logged in via telnet or rlogin. + Enter secret password: + LEAR STAG BELT BABY FEW WAY + +==== Deleting Skeys: ==== + +To delete your skeys type 'skeyinit -z' and enter your real password (do it via ssh session!). To verify deletion type 'skeyinfo': + + member@sdf: {2} skeyinit -z + Password: + member@sdf: {3} skeyinfo + You have no s/key + +==== Logging in: ==== + +To connect via ssh or sftp use your usual login name and you next skey pass-phrase (lowercase is fine; keep the spaces). Generally, the password prompt will provide some visual indication that you can enter an skey pass-phrase: + + % ssh member@sdf.org + otp-md4 98 sdf66315 + S/Key Password: + +On some systems and/or skey implementations you must first enter the login "skey", then your regular login name, then the skey pass-phrase. + +==== References: ==== + + * man pages for skey, skeyinit, and skeyinfo + * Internet search phrase "using skeys" + +\\ $Id: skey_tutorial.html,v 1.5 2012/06/03 15:10:45 jgw Exp $ \ No newline at end of file diff --git a/dump/smtpauth.html.docuwiki b/dump/smtpauth.html.docuwiki new file mode 100644 index 0000000..4ea4ec9 --- /dev/null +++ b/dump/smtpauth.html.docuwiki @@ -0,0 +1,180 @@ +====== POP3, IMAP and SMTP AUTH for Popular Mail Clients ====== + +==== Introduction ==== + +SDF uses SMTP Authentication to allow remote network clients such as desktop, tablet and phone mail applications to use its SMTP server for the purpose of sending (relaying) e-mail messages. SDF users with the VPM, VHOST and MetaARPA memberships have access to the SMTP server. + +==== Quick Starter Notes ==== + +=== Receiving Email === + + * SDF's POP3 server address is **mx.sdf.org** port 110 + * SDF's IMAP server address is **mx.sdf.org** port 143 (993 for TLS/SSL) + +=== Sending Email === + + * SDF's SMTP server is **mx.sdf.org** + * SDF's SMTP server listens on **port 25** as well as **ports 23, 53, 587 and 8080**. Some ISPs throttle or block activity on port 25. + * Set your SMTP AUTH secret with **mkvpm set //secret//** at the shell. The auth secret is not your SDF password; plese do not set //secret// to your SDF password. + * Your SMTP AUTH username is your **domain name@sdf.org** (ex. alan8r.sdf.org@sdf.org) + * SMTP via **STARTTLS** is recommended. Some email clients may refer to STARTTLS as TLS. TLS/SSL is not STARTTLS. + +Please note: the SMTP AUTH secret is set on the command line via mkvpm. The command history of the shell may keep the secret in the history file. + +==== The Mail Client Configurations ==== + + * [[#k-9mail|K-9 Mail for Android]] + * [[#outlookexpress|Outlook Express under Windows]] + * [[#macosx|Mail.App under MacOS X]] + * [[#thunderbird|Mozilla Thunderbird under Windows]] + * [[#heirloommailx|Heirloom Mailx under Linux/BSD]] + * [[#postfix-netbsd6|Postfix MTA on NetBSD 6.x]] + * [[#iphone-mail-application|iPhone Mail Application]]Please note that BlueMail on Android does not support the correct password encryption algorithm, and therefore you cannot set up your SDF email account under BlueMail. The devs have been notified of this bug; if they do fix it, the instructions here will be updated. + ---- + ==== K-9 Mail for Android ====//retrieve// + | imap server | mx.sdf.org | + | Security | SSL/TLS | + | Port | 993 | + | Username | //sdf user name (eg, alan8r)// | + | Authentication | Normal password | + | Password | //password associated with sdf user above// |\\ //send// + | SMTP server | "mx.sdf.org" | + | Security | "STARTTLS" | + | Port | "587" | + | Username | //Your domain name//* | + | Authentication | "Encrypted password" | + | Password | //string set via "mkvpm set YOUR_PASSWORD_HERE"// |//not// + ---- + ==== Outlook Express under Windows ==== + * Open Outlook Express + * Tool -> Accounts + * Click Add -> Mail to start the Account Wizard + * Display name: Your Name + * E-Mail address: Your email address (ex. bill@microsoft.com) + * Select POP3 + * Incoming Mail server: mx.sdf.org + * Outgoing mail (SMTP) server: mx.sdf.org + * Account name: Your email address (full email address for VPM and VHOST members, just username for MetaARPA) + * The wizard will now save, double click on the new configuration under the Mail tab to continue + * Select the Advanced tab + * Outgoing mail (SMTP) change from 25 to 587 (not completely necessary, but recommended) + * Select the Servers tab + * Check the box 'My server requires authentication, then click Settings + * Select Log on using: + * Account name: YOUR DOMAIN NAME (ex. alan8r.sdf.org, traumhost.com) + * Password: What you set with the **mkvpm set //secret//** command at the shell + * Click 'Apply' + ---- + ==== Mail.App under Macos X ==== + * Open Mail.app + * In the Mail menu, select Preferences + * Click the Accounts tab + * Select the account on the left you wish to edit + * On the Account Information tab, find "Outgoing Mail Server (SMTP):" + * Click the arrows for the dropdown menu, and select Edit Server List... + * Make sure the server you wish to use is selected in the list, and click on the Advanced tab + * In the Authentication dropdown, select "MD5 Challenge-Response" + * Type in your SDF username in User Name field + * Type in your password in Password field + * Click ok, and close the Preferences window. + ---- + ==== Mozilla Thunderbird ==== + * Tools -> Account Settings -> Add Mail Account + * Your name: Your Name (ex. Bill Gates) + * Email address: your email address (ex. amrowsell@sdf.org) + * Password: your normal shell login password + * Click Continue and then click Manual Config + * Incoming IMAP + * Incoming Server Hostname: mx.sdf.org + * Security: STARTTLS + * Port: 143 + * Authentication: Normal password + * Outgoing SMTP (only works if you are MetaARPA or pay for dialup) + * Outgoing Server Hostname: mx.sdf.org + * Port 587 + * Security: STARTTLS + * Authentication: Encrypted password + * Username: Your domain name, @sdf.org ... for example, amrowsell.sdf.org@sdf.org + * Click Re-Test and Create Account + * You will be prompted for your SMTP password the first time you go to send mail. This is the password generated by mkvpm on the command line. + ---- + ==== Heirloom Mailx under Linux/BSD ====Add the following to ~homeuser/.nailrc to set the default SMTP relay: + # Remote SDF SMTP relaying (use SDF 'mkvpm' tool to set auth user:pw): + set ssl-verify="ignore" + set smtp-use-starttls + set smtp=mx.sdf.org:587 + set smtp-auth=cram-md5 + set smtp-auth-user="sdf_user.sdf.org@sdf.org" + set smtp-auth-password="my_password" + The SDF CA is self-signed but can still be used if desired. Retrieve and store\\ somewhere (ie. under ~/.openssl/) as pem file, then edit ~homeuser/.nailrc like so: + set ssl-ca-file="/home/home_user/.openssl/sdf_self-signed_ca.pem" + set ssl-verify="warn" # will issue "self-signed CA" warning + ... + Account-specific smtp settings are possible; see the Heirloom Mailx documentation. + ---- + ==== Postfix MTA using libsaslc(3) on NetBSD 6.x: ==== + * first, verify that //postfix(1)// knows about //libsaslc// : + % sudo postconf -A + saslc + * create (as superuser) the following postfix config files: ///etc/postfix/main.cf// + myhostname = mypc.my.box + mydomain = my.box + mynetworks_style = host + alias_maps = hash:/etc/mail/aliases + # SMTP client settings: + relayhost = [mx.sdf.org]:submission + smtp_generic_maps = hash:/etc/postfix/generic + smtp_sasl_auth_enable = yes + smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd + smtp_sasl_security_options = noplaintext, noanonymous + smtp_sasl_tls_security_options = noanonymous + ## explicitly allow/prohibit certain SSL protocols: + #smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, TLSv1 + ## use of "may" option allows fallback to cleartext + #smtp_tls_security_level = may + smtp_tls_security_level = encrypt + smtp_sasl_type = saslc + ///etc/postfix/generic// + # applies to msgs to be delivered off-site + me@mypc.my.box sdf_login@sdf.org + ///etc/postfix/sasl_passwd//\\ (for security set ownership to "root:wheel", permissions to "600") + [mx.sdf.org]:submission sdf_login.sdf.org:smtp_passwd + * hash ///etc/postfix/{generic,sasl_passwd}, then check and reload configs//: + % cd /etc/postfix/ + % sudo postmap generic sasl_passwd # creates generic.db & sasl_passwd.db + % sudo postfix check # no output unless errors + % sudo /etc/rc.d/postfix reload + * test to verify everything is working correctly: + % mailx sdf_login@sdf.org + Subject: test + 123 + . + EOT + % sudo tail -n10 /var/log/maillog | grep smtp + Apr 27 08:53:42 mypc postfix/smtp[13387]: A61631F1FDC: to=<sdf_login@sdf.org>, \ + relay=mx.sdf.org[192.94.73.24]:587, delay=3.9, delays=0.02/0/3.7/0.11, dsn=2.0.0, status=sent \ + (250 2.0.0 s3RFrfvZ010436 Message accepted for delivery) + ---- + You should now be set up to use SDF's SMTP server. Enjoy!===== iPhone Mail Application =====//This tutorial was written on iOS version 13.3. The exact prompts on other versions may vary.// + - In **Settings**, scroll to **Passwords & Accounts**. Tap **Add Account** + - On the next screen, select **Other**, then **Add Mail Account** + - Fill in the details (examples below), then tap **Next** + - **Name** "Joe Bleaux" + - **Email** "jbleaux@sdf.org" + - **Password** //your SDF password// + - **Description** "SDF Mail for Joe Bleaux" (or whatever floats your boat) + - You will need to fill in pretty much //all// the details by hand. + - For **Incoming Mail Server** section: + - **Hostname** "mx.sdf.org" + - **Username** "jbleaux" + - **Password** //your SDF password// + - For **Outgoing Mail Server** (MetaARPA Users Only!) + - **Hostname** "mx.sdf.org" + - **Username** "jbleaux.sdf.org@sdf.org"//This will be the URL you have set up if you have a custom one. If not, then model it after this example.// + - **Password** //your SDF password// + - Click **Save** on the next screen. + - Select the account from the **Passwords & Accounts** screen. On the next screen, Tap **Account** (which will show your username ("jbleaux@sdf.org") + - Scroll down and click **Advanced**. + - Under **Incoming Settings**, tap to enable **Use SSL**, and for **Server Port**, put "993". + - Tap **SMTP** (Under **Outgoing Mail Server**), to view outgoing mail options, then tap the **Primary Server** (should be **mx.sdf.org**. Change **Authentication** to "MD5 Challenge-Response". Click **Done** at the top. + - Tap **<Account** at the top to go back, then tap **Done**. You should be sending and receiving your SDF mail on your iPhone! $Id: smtpauth.html,v 1.20 2020/01/19 02:03:26 mrguilt Exp $ \ No newline at end of file diff --git a/dump/social_network.html.docuwiki b/dump/social_network.html.docuwiki new file mode 100644 index 0000000..8aa07ad --- /dev/null +++ b/dump/social_network.html.docuwiki @@ -0,0 +1,34 @@ +===== SDF - The Ethical Social Network ===== + +=== What 'Social Network' means to us (a history lesson) === + +Electronic Social Networking has been around since the days of the ARPAnet. In the late 1960s and through the 1970s the ARPAnet allowed researchers to communicate and collaborate via //Electronic Mail// and FTP //File Sharing//. Protocols such as SEND allowed for //Instant Messaging// among users of systems and systems of other networks. //Electronic Mailing Lists// were //Discussion Groups// that later spawned the largest //Distributed Social Network// of the 1980s: USENET and its transport system UUCP. Paralleling this were many privately owned Social Networks called //Electronic Bulletin Boards//. These were usually stand alone, but some used //Interconnected Conferencing// and were linked together as //Nodes//, while some were also part of the UUCP network. USENET eventually made its way back to the ARPA/Internet where it continued to reign through the 1990s as the largest //Distributed Social Network// and it is still widely used to this day. + +To the users of the SDF Public Access UNIX System, 'SDF Social' is based on the concepts and principles of the early Social Networks that we have always been a part of and not the highly commercialized, for-profit and ethically questionable Social Networks of the late 1990s and 2000s. + +Simply put, SDF has always been about Collaboration, Non-Commercialism, Choice and Privacy. + +=== Shell Based Systems (only Accessible via an SDF shell account) === + +Most of these systems have been in daily use since our start as a BBS in 1987 + + * notes - send an 'at login time' displayed notification to a user + * msg - send an instant message to a user across SDF systems (Based on TOPS-20 SEND) + * bboard - a threaded multi discussion bulletin board + * com - a multi room interactive chat (Based on TOPS-20 COMMODE) + * oneliner - a oneline message (anonymous) + * happening - an anonymous journal === Web Based Systems (these are enabled via the 'maint' command at the shell) === + * https://mastodon.sdf.org - Mastodon / GNU Social + * https://gs.sdf.org - Quitter / GNU Social + * http://sdf.org/elearn - An Online Classroom for Electronic Learning + * http://sdf.org/gallery - An Image Gallery + * http://motd.org - Blogging for the UNIX savvy + * http://tx0.org - URL Shortening Service + * http://sdf.org/minecraft - Private MineCraft Server === What Makes SDF Social Different === + * SDF predates 'the web' (gopher / http) by several years + * SDF has **never** used advertising 'banners', links or embeds + * SDF does not monetize its access logs + * SDF does not use any user data for market research + * SDF does not share any data with 3rd parties + * SDF has outlived many commerical / for-profit internet endeavours + * SDF encourages individual creativity and collaboration $Id: social_network.html,v 1.21 2017/05/17 23:39:27 smj Exp $ \ No newline at end of file diff --git a/dump/software.html.docuwiki b/dump/software.html.docuwiki new file mode 100644 index 0000000..3fca699 --- /dev/null +++ b/dump/software.html.docuwiki @@ -0,0 +1,659 @@ +===== Software Packages on SDF by Category ===== + +This page is intended to present the many, many software packages & programs currently installed on SDF, sorted into categories for ease of reference. New users can refer to this file when trying to find programs, and even long-time SDFers can possibly discover something new here. + +Note that this list is not expected to contain every single package currently installed. For a complete list of packages on SDF, see [[http://sdf.org/index.cgi?software|here]]. For a complete list of software that //could// be installed see [[ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/README-all.html|here]]. Software requests are made by making a post on the 'bboard' board. + +Programs marked "ARPA", "MetaARPA", "DBA", or similar can only be run by users with the specified membership level. + +**Note:** If you are planning on adding to this file, you are advised to follow the [[#rules|recommendations below]]. + +=== Text Editors === + + * "ce" + * "ed" — the standard text editor + * "[[http://mahon.cwx.net/|ee]]" + * "[[http://www.gnu.org/software/emacs/|emacs]]" + * "ex" + * "[[http://rigaux.org/hexedit.html|hexedit]]" + * "[[http://www.jedsoft.org/jed/|jed]]" + * "[[http://joe-editor.sourceforge.net/|joe]]" + * "jove" + * "[[http://mined.sourceforge.net/|mined]]" + * "[[http://www.nano-editor.org/|nano]]" + * "ne" — Cambridge text editor + * "[[http://www.bostic.com/vi/|nvi]]" + * "[[http://www.washington.edu/alpine/mans.html/#pico|pico]]" + * "[[http://www.aquest.com/emacs.htm|uemacs]]" + * "ve" + * "[[http://ex-vi.sourceforge.net/|vi]]" + * "[[http://invisible-island.net/vile/|vile]]" + * "[[http://www.vim.org|vim]]" — Vi IMproved + * "[[http://www.gnu.org/software/zile/|zile]]" + +=== Binary File Editors === + + * "beav" + * "[[http://bvi.sourceforge.net/|bvi]]" + * "hexedit" + * "id3" + * "id3ed" + * "id3v2" + * "mp3asm" + +=== E-mail Clients === + + * "[[http://www.washington.edu/alpine/|alpine]]" + * "[[http://www.instinct.org/elm/|elm]]" + * "mail" + * "mailto" + * "mailx" + * "mm" + * "mush" + * "[[http://www.mutt.org|mutt]]" + * "nmh" + * "pine" + * "rmail" + * "xmh" + +=== Mail-Processing & Other Mail-Related Programs === + + * "biff" — notifies you when new mail arrives + * "[[http://www.fetchmail.info/|fetchmail]]" — fetch mail from a remote server + * "formail" + * "frm", "nfrm" — list "From:" and "Subject:" of selected messages in mailbox or folder + * "from" + * "getmail" + * "imapfilter" + * "mailstat" + * "mdfrm" — parses Maildir files + * "metamail" + * "metasend" + * "mhn" + * "[[http://www.procmail.org/|procmail]]" + * "sendfiles" + * "splitmail" + * "ssmtp" + +=== Shells === + + * "bash" + * "csh" + * "ksh" + * "[[http://kornshell.org/|ksh93]]" + * "mudsh" — "M.U.D. game-like shell" + * "[[http://www.v6shell.org|osh]]" — a port of the Sixth Edition Thompson shell + * "[[http://web.cs.mun.ca/~michael/pdksh/|pdksh]]" + * "rc" + * "sh" + * "[[http://www.tcsh.org|tcsh]]" + * "[[http://www.zsh.org/|zsh]]" + +=== Filesystem Utilities === + + * "basename" + * "chflags" + * "chgrp" + * "chmod" + * "colorls" — like "ls", but with a "-G" option that enables colorized output + * "cp" — copy files + * "df" + * "dirname" + * "du" + * "file" — determine the type of a file + * "ln" + * "ls" — list the contents of a directory + * "mkdir" — create a directory + * "mv" — move/rename a file + * "quota" + * "readlink" + * "rm" — delete files + * "rmdir" — delete empty directories + * "stat" + * "touch" + +=== File Processing & Filtering === + + * "awk" + * "cat" — output the contents of a file + * "cmp" — display differences between two files byte by byte + * "colrm" + * "column" + * "comm" — display line common to two files + * "cut" + * "dd" + * "diff" — display differences between two files line by line + * "diff3" — display differences between three files line by line + * "dos2unix" — convert CRLF line endings to LF + * "expand" + * "fmt" + * "fold" + * "grep" — search files for lines matching a pattern + * "head" — print the first few lines of a file + * "hexdump" + * "indent" + * "join" + * "look" + * "mawk" + * "merge" + * "nl" — number lines + * "od" + * "par" + * "paste" + * "patch" — apply the output of a "diff" command to a file + * "pr" — format text files for printing + * "rev" + * "sdiff" + * "sed" + * "sort" — sort lines + * "split" — split a file into pieces + * "states" + * "tabs" + * "tail" — print the last few lines of a file + * "tidy" + * "tr" + * "uniq" + * "unix2dos" — convert LF line endings to CRLF + * "vis" + * "wc" — count the number of bytes, characters, words, and/or lines in a file + * "xxd" + +=== Web Browsers === + + * "dillo" — only available on the NetBSD 5.0 hosts + * "[[http://elinks.or.cz/|elinks]]" + * "[[http://links.sourceforge.net/|links]]" + * "[[http://lynx.isc.org/|lynx]]" + * "[[http://w3m.sourceforge.net/|w3m]]" + +=== Newsreaders === + + * "Pnews" (ARPA) + * "[[http://www.nndev.org/|nn]]" (ARPA) + * "pine" (ARPA) + * "rn" (ARPA) + * "[[http://slrn.sourceforge.net|slrn]]" (ARPA) + * "[[http://www.tin.org/|tin]]" (ARPA) + * "trn" (ARPA) + +=== File Transfer & Retrieval Programs === + + * "[[http://curl.haxx.se/|curl]]" + * "ftp" (ARPA) + * "gopher" + * "kermit" (ARPA) + * "ncftpget" (ARPA) + * "rcp" + * "[[http://rsync.samba.org/|rsync]]" (MetaARPA) + * "scp" — copy files between machines using SSH (ARPA) + * "sftp" — secure file transfer protocol (ARPA) + * "snarf" (ARPA) + * "sz, rz, sb, rb, sx, rx" + * "tftp" (ARPA) + * "[[http://www.cis.upenn.edu/~bcpierce/unison/|unison]]" (MetaARPA) + * "uucp" + * "[[http://www.gnu.org/software/wget/|wget]]" (ARPA) + +=== Network Utilities === + + * "[[http://toxygen.net/6tunnel/|6tunnel]]" — tunnel IPv6 connections over IPv4 + * "cidr" + * "cu" + * "dig" + * "[[http://www.maxmind.com/app/api|geoip]]" + * "host" — get the IP address for a domain name or vice versa + * "[[http://www.gnu.org/software/jwhois/|jwhois]]" + * "ldapsearch" + * "netstat" + * "nmap" + * "nslookup" + * "ping" + * "ruptime" + * "sipcalc" + * "traceroute" — follow the path packets take to a remote host + * "uux" + * "whois" + * "yuptime" + * "yusers" + * "ywho" + +=== Remote Networking === + + * "dict" — DICT protocol client + * "rlogin" (ARPA) + * "rsh" + * "[[http://www.openssh.org/|ssh]]" (ARPA) + * "telnet" (ARPA) + * "tn3270" + +=== Chat-System Clients === + + * "bitchx" (ARPA) + * "[[http://bsflite.sourceforge.net/|bsflite]]" — AIM client (ARPA) + * "[[http://www.centerim.org/|centerim]]" (ARPA) + * "[[http://www.climm.org/|climm]]" — ICQ client (ARPA) + * "epic" — IRC client (ARPA) + * "[[http://www.pidgin.im/|finch]]" — IRC client; only available on the NetBSD 5.0 hosts (ARPA) + * "[[http://www.irssi.org/|irssi]]" — IRC client (MetaARPA) + * "[[http://naim.n.ml.org/|naim]]" — AIM client (ARPA) + * "ninja" (ARPA) + * "[[http://www.scrollz.com|scrollz]]" — IRC client (ARPA) + * "sic" (ARPA) + * "silc" (ARPA) + * "tac" (ARPA) + * "[[http://www.floodgap.com/software/ttytter/|ttytter]]" — terminal-based Twitter client (ARPA) + * "xaric" — IRC client (ARPA) + * "[[http://ysmv7.sourceforge.net/|ysm]]" — ICQ client (ARPA) + +=== Inter-user Communication Software === + + * "mesg" + * "talk" + * "wall" + * "write" + * "ytalk" + +=== User Information === + + * "finger" + * "groups" + * "id" + * "logname" + * "whoami" + +=== System Information === + + * "date" + * "domainname" + * "hostname" + * "machine" + * "uname" + * "uptime" + * "users" + +=== Process Information & Control === + + * "env" + * "kill" + * "killall" + * "lsof" + * "nice" + * "nohup" + * "pkill" + * "printenv" + * "ps" + * "pstree" — display a tree of processes + * "time" — time how long it takes a program to run + * "top" (MetaARPA) + * "w" + * "watch" — watch a program with update intervals + * "who" + +=== Compilers === + + * "c++" (ARPA) + * "c89" (wrapper around "cc") + * "cc" (ARPA) + * "clisp" (MetaARPA) + * "distcc" + * "distccd" + * "[[http://gcc.gnu.org|g++]]" — GNU C++ compiler (ARPA) + * "[[http://gcc.gnu.org|g77]]" + * "[[http://gcc.gnu.org|gcc]]" — GNU C compiler (ARPA) + * "jikes" (MetaARPA) + * "nasm" (MetaARPA) + +=== Programming Language Interpreters & Virtual Machines === + + * "cint" — C interpreter + * "[[http://www.haskell.org/hugs/|hugs]]" — Haskell interpreter + * "java" (MetaARPA) + * "[[http://www.kaffe.org/|kaffe]]" (MetaARPA) + * "lisp" (MetaARPA; wrapper around "uxlisp") + * "[[http://www.perl.org|perl]]" — pathologically eclectic rubbish lister practical extraction & report language (ARPA) + * "[[http://www.php.net|php]]" — PHP: hypertext preprocessor (ARPA) + * "[[http://www.python.org|python]]" (ARPA) + * "ruby" (ARPA) + +=== Version Control Systems === + + * "cvs" + * "[[http://git.or.cz/|git]]" (MetaARPA) + * "[[http://www.selenic.com/mercurial/|hg]]" + * "[[http://www.cs.purdue.edu/homes/trinkle/RCS/|rcs]]" + * "sccs" + * "[[http://subversion.tigris.org|svn]]" (MetaARPA) + +=== Miscellaneous Software Development Programs === + + * "[[http://ant.apache.org/|ant]]" (MetaARPA) + * "as" (ARPA) + * "[[http://asp2php.naken.cc/|asp2php]]" + * "[[http://www.gnu.org/software/autoconf/|autoconf]]" + * "[[http://sources.redhat.com/automake/|automake]]" + * "[[http://www.gnu.org/software/bison/|bison]]" — GNU yacc + * "chicken" + * "cim" + * "cook" + * "cpp" — C preprocessor + * "[[http://cscope.sourceforge.net/|cscope]]" + * "flex" — GNU lex (ARPA) + * "gcov" + * "[[http://www.gnu.org/software/gdb/|gdb]]" — GNU debugger + * "[[http://www.gnu.org/software/make/|gmake]]" + * "gprof" + * "ld" (ARPA) + * "lex" (ARPA) + * "lint" + * "m4" + * "make" (ARPA) + * "mkdep" + * "phpize" + * "yacc" — yet another compiler compiler (ARPA) + +=== Encryption & Cryptography Programs === + + * "cksum" + * "[[http://gnupg.org/|gpg]]" + * "md5" + * "openssl" + * "pgp5" + * "sha1" + * "sum" + +=== File Format Converters (non-image) === + + * "2vcard" + * "[[http://www.winfield.demon.nl/|antiword]]" + * "[[http://www.methods.co.nz/asciidoc/|asciidoc]]" + * "[[http://vitus.wagner.pp.ru/software/catdoc/|catdoc]]" + * "[[http://hevea.inria.fr/|hevea]]" + * "[[http://latex2rtf.sourceforge.net/|latex2rtf]]" + * "makeinfo" + * "[[http://pdftohtml.sourceforge.net/|pdftohtml]]" + * "[[http://www.foolabs.com/xpdf/|pdftotext]]" + * "richtext" + * "[[http://sourceforge.net/projects/rtf2html|rtf2html]]" + * "rtf2LaTeX" + * "rtf2text" + * "rtf2troff" + * "texi2dvi" + * "[[http://www.snake.net/software/troffcvt/|troffcvt]]" + * "[[http://chicago.sourceforge.net/xlhtml/|xlhtml]]" + +=== File Archival & Compression Utilities === + + * "aetar" + * "ar" + * "bsdtar" + * "bzip2" + * "compress" + * "cpio" + * "freeze" + * "gtar" + * "gzip" + * "lzop" + * "mousetar" + * "pax" + * "shar" + * "tar" + * "zip" + * "znew" + * "zoo" + +=== File Encoding === + + * "caesar" + * "iconv" + * "mimencode" + * "rot13" + * "uuencode" + * "yencode" + +=== File Managers === + + * "[[http://www.ibiblio.org/mc/|mc]]" + * "[[http://cade.datamax.bg/vfu/|vfu]]" + * "[[http://vifm.sourceforge.net/|vifm]]" + +=== Typesetting === + + * Manpages & *roff + * "colcrt" + * "eqn" + * "groff" + * "groffer" + * "grog" + * "grotty" + * "nroff" + * "pic" + * "refer" + * "tbl" + * "troff" + * "vgrind" + * PostScript & PDFs + * "abcm2ps" — "Converts ABC to music sheet in PostScript format" + * "diffpp" + * "enscript" + * "[[http://pages.cs.wisc.edu/~ghost/|gs]]" ("ps2pdf", "ps2ascii", "pdf2ps", "epstopdf", etc.) + * "ps2eps" + * "psnup" + * "yup" + * TeX, LaTeX, etc. + * "dvipdf" + * "dvips" + * "etex" + * "[[http://www.latex-project.org/|latex]]" + * "lgrind" + * "mf" + * "mktexmf" + * "mktexpk" + * "mpost" + * "pdfetex" + * "pslatex" + * "tex" + +=== XML Processing Programs === + + * "xmllint" + * "xmlto" + * "xsltproc" + +=== Text File Pagers === + + * "less" + * "more" + * "most" + * "pg" + +=== Games === + + * "adv770" + * "animal" — the computer tries to guess what animal you're thinking of + * "atc" — air traffic controller game + * "backgammon" — the game of backgammon; play against the computer or a friend + * "battlestar" — "a tropical [text] adventure game" + * "bluemoon" — one of many solitaire card games + * "boggle" + * "c4" — Connect Four + * "canfield" — the solitaire card game canfield + * "cribbage" — the card game cribbage (played against the computer) + * "dinkum" — an Australian text-adventure game + * "[[http://dopewars.sourceforge.net/|dopewars]]" + * "dungeon" + * "fish" — Go Fish + * "[[http://www.gnu.org/software/chess/|gnuchess4]]" + * "hack" + * "knight" — Knight's Tour — move the knight to visit every square on the board + * "larn" — "exploring the caverns of Larn" + * "mdg" + * "monop" — Monopoly + * "moon-buggy" + * "moria" + * "motti" + * "[[http://www.nethack.org|nethack]]" + * "[[http://www.netris.org|netris]]" — "A free networked version of T*tris" + * "nobs" — cribbage game + * "phantasia" + * "robots" + * "robots2" + * "rogue" + * "saa" — play the solitaire card game "streets and alleys" + * "ski" — "an unusual skiing simulation game" + * "snake" + * "sokoban" + * "tetris" + * "[[http://www.thxmoo.org/|thxmoo]]" + * "tttt" — 4×4 Tic-Tac-Toe with wraparound edges + * "wand" + * "worm" + * "wump" — Hunt the Wumpus + * "zombies" + +=== Diversions === + +//(Things otherwise classified as games but without a goal or in which the user doesn't really do anything)// + + * "anagram" — search the dictionary for anagrams of a word + * "arithmetic" — quiz on simple arithmetic + * "autopun" — "Phonetically Reparse an English Phrase" + * "aybabtu" — ASCII recreation of the ZeroWing opening sequence + * "banner" + * "bcd" + * "cookie" + * "countmail" — a program for laughing at the size of your inbox + * "[[http://www.nog.net/~tony/warez/cowsay.shtml|cowsay]]" — an ASCII cow says stuff + * "crypto" — "a program to generate and/or solve cryptograms" + * "cursive" + * "dive" + * "factor" + * "[[http://www.figlet.org/|figlet]]" + * "fortune" + * "macarena" — the horror... //the horror...// + * "macarena1" — the horror revisited + * "morse" + * "number" — convert Arabic numerals to English + * "phoon" — shows the phase of the moon with an ASCII image + * "pig" — anslatetray exttay intoway Igpay Atinlay + * "pom" — display the phase of the moon + * "ppt" + * "primes" + * "quiz" — "random knowledge tests" + * "rain" — animated ASCII raindrops on a terminal + * "sonnet" + * "suicide" + * "suicide1" + * "suicide2" + * "suicide3" + * "wargames" + * "worms" — animate worms on a terminal + * "wtf" + +=== Game Interpreters & Clients === + + * "frotz" + * "tf" + +=== Mathematical & Statistical Programs === + + * "bc" + * "dc" + * "[[http://www.gnuplot.info/|gnuplot]]" + * "mathomatic" + +=== Image Creation, Conversion, & Manipulation === + + * ImageMagick ("animate", "compare", "composite", "conjure", "convert", "display", "identify", "import", "mogrify", "montage", "stream") + * "compface" + * "gif2png", "web2png" — convert GIFs to PNGs + * "jhead" — digital camera JPEG exif header manipulation tool + * "[[http://netpbm.sourceforge.net|netpbm]]" + * "[[http://www.povray.org|povray]]" + +=== Spellcheckers === + + * "[[http://www.abisource.com/enchant/|enchant]]" + * "[[http://hunspell.sourceforge.net/|hunspell]]" + * "[[http://www.lasr.cs.ucla.edu/geoff/ispell.html|ispell]]" + +=== Productivity & Reminder Software === + + * "calendar" + * "leave" + * "[[http://www.roaringpenguin.com/products/remind|remind]]" + * "[[http://swapoff.org/DevTodo|todo]]" + +=== X11 Programs === + +//(MetaARPA membership required)// + + * "bitmap" + * "ico" + * "imake" + * "luit" + * "mwm" + * "resize" + * "startx" + * "twm" + * "xcalc" + * "xclock" + * "xeyes" + * "xgamma" + * "xlsfonts" + * "xman" + * "xmh" + * "xsnow" + * "[[http://invisible-island.net/xterm/|xterm]]" + +=== Database Programs === + + * "[[http://www.mysql.com/|mysql]]" (DBA) + * "psql" (DBA) + * "[[http://www.sqlite.org/|sqlite]]" (DBA) + * "sqlite3" (DBA) + +=== Feed Readers === + + * "[[http://rss2email.infogami.com/|r2e]]" + * "[[http://kiza.kcore.de/software/snownews/|snownews]]" (ARPA) + +=== Terminal Management Programs === + + * "clear" — clear the screen + * "lock" — reserve a terminal + * "stty" — set various options for the current terminal + * "tput" + * "tset" + * "tty" — give the name of your terminal + +=== Information & Help === + + * "apropos" — search for programs by keywords in documentation + * "ascii" + * "info" + * "man" — view the manual page for a command + * "[[http://pinfo.sourceforge.net|pinfo]]" — like "info", but better + * "vilearn" + * "vimtutor" + * "whatis" — get a brief description of a command + +=== Finding Files & Programs === + + * "find" — search a directory tree for files that match given criteria (MetaARPA) + * "locate" — search a database of files for ones with the given name + * "whereis" + * "which" — locate a program in your PATH + +=== Guidelines for Maintaining This File === + + * Only programs that are located in the default users' PATH should be listed here; i.e., user-written software in "/sys/sdf/bin" should be left out. + * Custom commands specific to SDF should be left out. There is already a list of them [[http://jwodder.freeshell.org/sdf/commands.html|here]]. + * Make sure that a program is currently installed by seeing whether it exists in the PATH (e.g., with ""command -v program"" or ""finbin program""). There are many programs that don't have manual pages, and in some cases there may be manual pages left behind from old programs that were uninstalled. + * While you don't have to, it would be nice if you included a brief description of what each command does along with a link to its official project page (if any). + * Be sure to list membership requirements for programs that only ARPA or MetaARPA users can run. + * Try to only list programs that fall into a specific category. You may add a new category if you feel one is needed, but only if you can find more than one program that fits into the new category (three or four programs seems like a good minimum, but we won't force you to follow this rule). + * If you don't know what a program does (at least not well enough to place it into a category), don't add it. + * If several closely-related programs come together as part of the same package (e.g., "strfile" and "unstr" with "fortune", or all of the GhostScript programs), only give the name of the main program. + * If a program currently just doesn't work (e.g., "hnb"), don't list it here. + + $Id: software.html,v 1.16 2012/01/25 21:49:32 smj Exp $ \ No newline at end of file diff --git a/dump/sshfs.html.docuwiki b/dump/sshfs.html.docuwiki new file mode 100644 index 0000000..ddffb04 --- /dev/null +++ b/dump/sshfs.html.docuwiki @@ -0,0 +1,78 @@ +====== SSHFS-SDF ====== + +===== How to mount your SDF user folder locally on your linux workstation. ===== + +[[#intro|Overview]][[#install|Installing on your machine]][[#athome|Use on your machine]][[#atma|Use on the Meta-Array]] + +====== OVERVIEW:What is sshfs? ====== + +SSHFS (SSH File System or Secure SHell File System) is a file system client to mount and interact with directories and files located on a remote server or workstation. The client interacts with the remote file system via SFTP. It appears on your file system as if it were a local directory and you can manipulate the files as you would normally on your workstation. + +The current implementation of SSHFS using FUSE is a rewrite of an earlier version. The rewrite was done by Miklos Szeredi, who also wrote FUSE sshfs is a way to mount file systems on a network server on your client machine sshfs to mount network drives via ssh to local machine. + +====== How to install Ubuntu/Debian Linux example ====== + + * On command line use apt-get to install sshfs + +sudo apt-get install sshfs + + * Create a director in your /media folder to mount the sdf user folder to + +sudo mkdir /media/sdf + + * Change ownership to you local systems user name + +sudo chown your-local-system-username /media/sdf + + * Add you local system user name to the fuse group + +sudo adduser your-local-system-username fuse + +====== How to mount the SDF user folder ====== + +Your path to your user name depends on the letter your user name begins with. Someuser is below in the example you will need to tailor it to your own user name. You can use the pwd command at the shell to see where exactly it is. The last part of the command tell it where to mount on local system. + +You could also mount your www folder as well you need to run the mkhompg command to see where it is. Note if you plan to mount both you need to create a seperate folder for each folder you plan to mount on your local machine. + +sshfs sdf.lonestar.org:/arpa/ns/s/someuser /media/sdf + +====== How to unmount the SDF user folder ====== + + * Adds it to modprobe + +sudo modprobe fuse + + * Unmounts file system + +fusermount -u /media/sdf + +====== More info on sshfs ====== + +http://fuse.sourceforge.net/sshfs.html + +---- + +====== Mounting directories from other machines on the [[http://sdf.org/?tutorials/metaarray|Meta-Array]] ====== + +fuse-sshfs is installed on the Meta-Array, so you may use the above instructions to mount any ssh accessible machine to a local folder on ma.sdf.org + +sshfs example@example.com:/home/example "$HOME/example_mountpoint" -o follow_symlinks + +As above, you can unmount using fusermount + +fusermount -u $HOME/example_mountpoint + +In order to map your remote userid and groupid so that permissions and ownership works use the idmap and gid options + +sshfs example@example.com:/home/example "$HOME/example_mountpoint" -o follow_symlinks -o idmap=user -o gid=500 + +where 500 is the gid for the ARPA group + +[0 ~/remote/code]$ touch main.c + +After creating file over an sshfs-mounted filesystem, a listing indicates correct user and group ownership + +-rw------- 1 xcitor arpa 0 Jul 10 01:08 main.c + +---- +$Id: sshfs.html,v 1.9 2012/07/10 10:51:33 xcitor Exp $ \ No newline at end of file diff --git a/dump/stat.html.docuwiki b/dump/stat.html.docuwiki new file mode 100644 index 0000000..5de1582 --- /dev/null +++ b/dump/stat.html.docuwiki @@ -0,0 +1,56 @@ + 11/3/70 + STAT (I) + + NAME stat - get file status + + SYNOPSIS stat name + + DESCRIPTION stat gives several kinds of information about + one file: + files: + + access mode + number of links + owner + size in words + name + + All information is self-explanatory except the + mode. The + mode is a five-character string whose charac- + ters mean the + following: + + 1 s: file is small (smaller than 4096 + words) + l: file is large + d: file is a directory + + 2 r: owner can read + -: owner cannot read + + 3 w: owner can write + -: owner cannot write + + 4 r: non-owner can read + -: non-owner cannot read + + 5 w: non-owner can write + -: non-owner cannot write + + All numeric values are printed in octal + if he cannot be found in "/etc/uids" a number + is given. + + FILES + + SEE ALSO ls with the -l option gives the same informa- + tion as stat, except that it also shows the i- + node number for each file. + + DIAGNOSTICS "name ?" for any error. "nofiles" if no file + name is given. + + BUGS none + + OWNER wkt \ No newline at end of file diff --git a/dump/survival-teco-2.0.html.docuwiki b/dump/survival-teco-2.0.html.docuwiki new file mode 100644 index 0000000..ab08437 --- /dev/null +++ b/dump/survival-teco-2.0.html.docuwiki @@ -0,0 +1,38 @@ +====== Survival TECO ====== + +== Version 2.0 == + +You can perform useful editing with TECO, the venerable, line-noise-for-command-language Editor that Time Forgot, knowing just 3 rules and 16 commands. + +===== Rules ===== + + - Pressing the Escape key (shown as **$** below — **not** a dollar sign) twice executes typed commands instead of the Enter key. (A single **$** terminates string arguments for some commands.) + - Commands don't have to be executed one-at-a-time. You can type a long series of commands then "**$ $**" and TECO will execute the commands in order. + - TECO is character-oriented, so it remembers the character position of your current location in the file, called "**pointer**". Most commands display or change the file's contents at pointer, or move pointer to another location in the file. + +===== Commands ===== + +| 1. | ER//file//**$**Y[[#n1|1]] | Open //file// for input | 9. | J | Jump to beginning of file | +| 2. | EW//file//**$**[[#n1|1]] | Open //file// for output | 10. | ZJ | Jump to end of file | +| 3. | EX | Save and exit | 11. | T[[#n3|3]] | Type from pointer to end of line | +| 4. | **^C ^C** | Exit (no save) | 12. | V | Type current line | +| 5. | C[[#n2|2]] | Move character forward | 13. | D[[#n2|2]] | Delete character at pointer | +| 6. | R[[#n2|2]] | Move character backward | 14. | K[[#n3|3]] | Delete current line | +| 7. | L[[#n3|3]] | Move to beginning of next line | 15. | S//text//**$** | Search for //text// | +| 8. | I//text//**$** | Insert //text// | 16. | FS//text1//**$**//text2//**$** | Substitute //text2// for //text1// | + +| [[|1]] | Some versions of TECO accept a file name as a command line argument, making 1. and 2. unnecessary. Some versions of TECO have a command EB//file//**$**Y that does the same as 1. and 2. in one step. | +| [[|2]] | Numeric prefix: move/delete multiple characters (negative reverses direction) | +| [[|3]] | Numeric prefix: move/type/delete multiple lines (negative reverses direction); (T, K only) prefix **H**: type/delete whole file | + +===== TECO on SDF ===== + +SDF clusterTE is a port of the Ultrix version of TECO. It is actually a visual editor that displays file contents around pointer after commansds are submitted, so you won't need to use type/display commands as much (TE automatic display sometimes gets a little wonky, so you occassionally need a T or a V as a last resort). TE takses a file name as a command line argument, so you don't need ER/EW/EB commands..TWENEXTECO on the TOPS-20 system at twenex.org is one of the original implementations of the editor. No command line arguments, so read and write your file with commands ER and EW. And no wimpy visual stuff, so enter your own display commands if you can't remember where you left pointer. + +Using TECO seems unnatural at first, but with a little effort invested in learning the basic commands above, it's quite useful and fun! Perhaps the ultimate retro editor. + +---- + +The previous version of this tutorial is available [[/?tutorials//survival-teco|here]]. + +//"You can hack anything you want with TECO ..."// \ No newline at end of file diff --git a/dump/survival-teco.html.docuwiki b/dump/survival-teco.html.docuwiki new file mode 100644 index 0000000..9823b02 --- /dev/null +++ b/dump/survival-teco.html.docuwiki @@ -0,0 +1,61 @@ +====== Survival TECO ====== + +Below is a subset of commands for minimal useful editing with TECO, the venerable command-based, character-oriented text editor. + + * Commands are executed by following them with the key sequence **Esc Esc** instead of **Enter**. An arbitrarily long sequence of commands can be entered and executed together. + * TECO doesn't file name arguments passed on the command line. Instead, after starting TECO you have to specify the input and/or output file with the commands **ER**, **EW**, or **EB**, then read the input file into the edit buffer with the command **Y**. + * TECO considers files containing form-feed characters (ASCII 0x0b, **^L**) to be composed of multiple pages with each page consisting of the text between form-feed characters or the beginning or end of the file. TECO will only read into the buffer and edit one page at a time. To edit a multi-page file, complete editing on the first page then use the **P** command to save the page to the output file, reinitialize the buffer, and read the next page from the input file. Once a page has been saved with the **P** command, it may not be revisited except by saving the entire file and restarting the editing process from the beginning. Repeat the process until all necessary pages have been edited. The **EX** command automatically copies any unedited pages in the input file to the output file before exiting. + +^ File I/O and Termination ^^ +| EB//file//**Esc** | Open //file// for **B**oth input and output | +| ER//file//**Esc** | Open //file// for **R**ead-only (input) | +| EW//file//**Esc** | Open //file// for **W**rite-only (output) | +| Y | Initialize buffer and read from input file (one page) | +| P | Append buffer to output file, reinitialize buffer, read next **P**age from input file | +| EX | Write buffer to output file and **EX**it | +| **^C ^C** | Abandon buffer changes and exit | +^ Movement ^^ +| [//n//]C | Move one///n// **C**haracter(s) forward | +| -[//n//]C\\ [//n//]R | Move one///n// **C**haracter(s) backward (**R**everse) | +| [//n//]L | Move to beginning of first///n//th following **L**ine | +| -[//n//]L | Move to beginning of first///n//th preceding **L**ine | +| 0L | Move to beginning of current line | +| :L | Move to end of current **L**ine | +| [//n//]J | **J**ump to first///n//+1 character in buffer | +| ZJ | **J**ump to end of buffer | +^ Display ^^ +| [//n//]T | **T**ype from current position to end of current///n//-1 following line(s) | +| 0T | **T**ype from beginning of line to curent position | +| -[//n//]T | **T**ype one///n// preceding line(s) and current line up to position | +| HT | **T**ype whole buffer | +^ Useful Combinations ^^ +| 0TT | Type current line (current position unchanged) | +| 0LT | Type current line, moving position to beginning of line | +^ Insertion ^^ +| I//text//**Esc** | **I**nsert //text// at current position | +^ Deletion ^^ +| [//n//]D | **D**elete one///n// character(s) after position | +| -[//n//]D | **D**elete one///n// character(s) before position | +| [//n//]K | Delete from position through end of current///n//-1 following line(s) | +| -[//n//]K | Delete one///n// preceding lines to current position | +| 0K | Delete from beginning of current line to position | +| :K | Delete from position to end of current line leaving end-of-line | +| HK | Delete whole buffer | +^ Search/Replace ^^ +| [//n//]S//text//**Esc** | **S**earch for next///n//th occurrence of //text// | +| [//n//]FS//text1//**Esc**//text2//**Esc** | Replace next///n//th occurrence of //text1// with //text2// | +^ Copy/Paste ^^ +| [//n//]X//q// | Copy from position through end of current///n//-1 following line(s) to register //q// (single character A-Z, 0-9) | +| G//q// | Insert text in register //q// into buffer at current position | + +===== References ===== + + * [[http://www.avanthar.com/~healyzh/_info_/its.primer|Golden, V. Ellen. An Introduction to ITS for the MACSYMA User. Massachusetts Institute of Technology Laboratory for Computer Science Mathlab Group. 14 April 1981. <http://www.avanthar.com/~healyzh/_info_/its.primer> accessed 4 June 2010.]] + * [[http://www.avanthar.com/~healyzh/teco/TecoPocketGuide.html|TECO Pocket Guide. Digital Equipment Corporation. 1978. <http://www.avanthar.com/~healyzh/teco/TecoPocketGuide.html> accessed 4 June 2010.]] + * [[http://www.hactrn.net/sra/alice/alices.pdp10|You can hack anything you want, with TECO and DDT.]] + +---- + +| Edited with | **TECO** | + +$Id: survival-teco.html,v 1.4 2010/06/12 09:44:01 papa Exp $ \ No newline at end of file diff --git a/dump/talking_to_strangers.html.docuwiki b/dump/talking_to_strangers.html.docuwiki new file mode 100644 index 0000000..7dc5bda --- /dev/null +++ b/dump/talking_to_strangers.html.docuwiki @@ -0,0 +1,52 @@ +====== How to Interact with Practical Strangers ====== + +---- + +===== Contents ===== + + * [[#introduction|Introduction]] + * [[#reasonable_people|Reasonable people can disagree and still be friends.]] + * [[#focus_on_the_message|Focus on the message.]] + * [[#communication_is_bidirectional|Communication is bi-directional.]] + * [[#we_are_not_mindreaders|We cannot read your mind through com alone.]] + * [[#let_it_go|Learn to let it go.]] + +===== [[|Introduction]] ===== + +Below are five suggestions for interacting with practical strangers in an imprecise medium. These are lessons taken from my life, and modified for com. + +They are not meant to be hard rules to be followed in com. They should be seen as suggestions on dealling with or avoiding confrontional situations. + +===== [[|Reasonable people can disagree and still be friends.]] ===== + +We live our own lives with our own experiences. Reasonable people can disagree for perfectly valid reasons, and it should not stop us from being friendly with each other. + +===== [[|Focus on the message.]] ===== + +We see each other through the lens of com. We do not "know" the secret heart and nature of each other. As such, we should keep criticisms focused on the actions and not the person. + +Criticising the person (bad):wliao is stupid and says random things.Criticising the action (better):wliao is saying a lot of stupid and random things. + +We should also try to be polite and kind with the words we use. + +Criticising the action (even better):wliao, I disagree for these 3 reasons, and we can still be friends. + +Sometimes personal remarks will be made, or we interpret a comment to be of a personal nature. Very little can be gained from responding in kind. We should try to overlook these comments and move on. After all, reasonable people can disagree and still be friends. + +===== [[|Communication is bi-directional]] ===== + +"Communication" is bi-directional: all parties are both speakers and listeners. We should not expect other people to listen if we do not listen to others in turn. Sometimes, people will agree; sometimes, people will disagree. This is OK, because reasonable people can disagree and still be friends. + +===== [[|We cannot read your mind through com alone]] ===== + +Much of our communication habits are based on the spoken words we hear, as well as the tone and inflections of how the words are presented, and the visual cues of facial expressions. When we use com, we lose a lot of the non-verbal hints. We may intend a statment to be ironic, sarcastic, snarky, or funny, but that intent may not be fully expressed in com. + +Be very, very clear about attempts at humor; be very, very sure that the audience appreciates the effort. Please be prepared to "ruin the joke" if the intention is not clear. + +===== [[|Learn to let it go]] ===== + +At the end of it all, sometimes emotions are too strong for a converstaion, feelings are hurt, etc. At that time, it is best to walk away and let everybody cool down. In the wise words of Dobler, you must [[http://www.youtube.com/watch?v=TpP8N-X1dF4|chill]]. + +---- + +$Id: talking_to_strangers.html,v 1.1 2011/11/13 00:19:28 wliao Exp $ \ No newline at end of file diff --git a/dump/template.html.docuwiki b/dump/template.html.docuwiki new file mode 100644 index 0000000..bb74324 --- /dev/null +++ b/dump/template.html.docuwiki @@ -0,0 +1,13 @@ +====== [[index.html|SDF ARC]] ====== + +===== SDF.ORG's Amateur Radio Club ===== + + * [[index.html|Home]] + * [[roster.html|Roster]] + * [[repeaters.html|Repeaters]] + * [[shacks.html|Shacks]] + * [[contact.html|Contact Us]] + +==== {INSERT YOUR TITLE HERE} ==== + + {YOUR CONTENT HERE} {THIS IS THE BASE TEMPLATE FOR OTHER PAGES} Copyright © black_white | [[http://validator.w3.org/check?uri=referer|HTML5]] | [[http://jigsaw.w3.org/css-validator/check/referer|CSS]] | [[http://www.html5webtemplates.co.uk|Free CSS Templates]]$Id: template.html,v 1.2 2017/07/11 22:24:25 nblade Exp $ \ No newline at end of file diff --git a/dump/tmux.html.docuwiki b/dump/tmux.html.docuwiki new file mode 100644 index 0000000..9609200 --- /dev/null +++ b/dump/tmux.html.docuwiki @@ -0,0 +1,104 @@ +====== Tmux ====== + +Contents + + - [[#intro|Introduction]] + - [[#start|Starting Screen, detaching and reattaching]] + - [[#multiwin|Multiple windows]] + - [[#multisession|Multiple sessions]] + - [[#share|Sharing screen sessions]] + - [[#tmux.conf|.tmux.conf]] + - [[#cheatsheet|Cheat sheet]] + - [[#reset|Reset Lost Session]] + - [[#resources|Resources]] + +===== Introduction ===== + +A newer alternative to the classic [[http://savannah.gnu.org/projects/screen/|Screen]] is [[http://tmux.sourceforge.net/|Tmux]]. As a terminal multiplexer, enables you to have multiple terminals open in a windows, saved in a session. You can detach from that session and come back later, and all your windows and programs running on it will still be alive, and share sessions. + +A Tmux command is usually of the form CTRL-b KEY, i.e., you'll have to press the CTRL key along with b, followed by a generic KEY. This initial part of a command is called prefix, and can be configured. + +You'll need to be a [[http://sdf.org/?join#meta|MetaARPA]] member in order to use Tmux on SDF + +===== Starting Tmux, detaching and reattaching ===== + +You can run tmux with: + +"$ tmux" + +You will create a tmux session name 0. If you want to create a session with a more meaningful name, use: + +"$ tmux new-session -s session_name" + +In your terminal a status bar will show up, with the name of your shell in the bottom left (actually, the name of the terminal window you're on), and a clock in the bottom right. There are many customizations possible for this status bar, you can check the documentation for all available options. To detach from a session, type CTRL-b d, and you will return to a normal promopt. Tmux will keep your session alive, and to resume it run: + +"$ tmux attach -t session_name" + +===== Multiple windows ===== + +By default, a Tmux session starts with only one window. You can create more by typing CTRL-b c. All windows have a numeric id, and start named as the current shell or command being run. To rename the current window, type CTRL-b ,. Then you can switch between windows typing CTRL-b number, where number is the number of a window. CTRL-b n and CTRL-b p are both shortcuts to, respectively, the next and previous window. + +===== Multiple sessions ===== + +As said before, "$ tmux new-session -s session name" creates a new session, with the given name. To list all running session, run: + +"$ tmux ls" + +Now, supose you want to connect to your tmux session from one machine, let's say your work computer connected to SDF, and open the same tmux session from another machine, e.g. your home computer. By design, you can't do this directly, like in Screen. To achieve that, you "clone" the existing session in a new one, and then connect to it, so both session will contain the same windows and data. Note that the main assumption here is that you are logging on SDF (or any other server with tmux) with the **same user**. You can do that running: + +"$ tmux new-session -t existing_session -s new_session_name" + +It is possible to split windows in a session with CTRL-b " or CTRL-b %, respectively, for horizontal or vertical orientation. Each one of these split windows is called a pane. In fact, a window in Tmux terminology is a collection of panes, so a window with no splits also contains an unique pane. + +===== Sharing screen sessions ===== + +Sharing a tmux session between users is simple. Optionally, when starting a shared session, you should specify a socket file, running: + +"$ tmux -S /tmp/socket_file new-session -s session_name" + +Then, you need to change the permissions of that socket to 777 + +"$ chmod 777 /tmp/socket_file" + +And finally, you will be able to share a session with other users. A caveat is that all users connected to that section will use the Tmux configuration of the user who created it. To attach to a shared session: + +"$ tmux -S /tmp/socket_file attach" + +===== .tmux.conf ===== + +Tmux is configured by a file located at $HOME/.tmux.conf, and a sample configuration file is presented below. + + # makes window's indexes start from 1 + set -g base-index 1 + + # resize windows only when a smaller client is using a session + setw -g aggressive-resize on + + # disables panel selection using mouse + set -g mouse-select-pane off + + # open a man page in a separated split pane + bind m command-prompt -p "man page:" "split-window -h 'exec man %%'" + + # set default terminal + set -g default-terminal "screen-256color" + +===== Reset Lost Sessions ===== + +If you lose the ability to attach a session of tmux (or even see it in `tmux list-sessions`), but can see it's pid is still running, try the following: + +"$ killall -s SIGUSR1 tmux" + +"$ tmux attach" + +===== Resources ===== + + * [[http://www.dayid.org/os/notes/tm.html| http://www.dayid.org/os/notes/tm.html]] + * [[http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/| http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/]] + * [[https://wiki.archlinux.org/index.php/Tmux| https://wiki.archlinux.org/index.php/Tmux]] + * [[http://robots.thoughtbot.com/post/2641409235/a-tmux-crash-course| http://robots.thoughtbot.com/post/2641409235/a-tmux-crash-course]] + * [[http://en.wikipedia.org/wiki/Tmux| http://en.wikipedia.org/wiki/Tmux]] + +---- + +$Id: tmux.html,v 1.6 2014/06/09 06:08:42 ike Exp $ \ No newline at end of file diff --git a/dump/toobnix.html.docuwiki b/dump/toobnix.html.docuwiki new file mode 100644 index 0000000..4327705 --- /dev/null +++ b/dump/toobnix.html.docuwiki @@ -0,0 +1,32 @@ +===== Using the SDF Video Gallery ===== + +Important: //Please follow this tutorial carefully to successfully post videos.\\ Keep in mind that you must limit your posts to one (1) video each and you\\ must click **Publish** to initiate the post-upload processing required\\ for successful playback.// + + * This feature is in alpha test and is open to ARPA and MetaARPA members + * Video formats supported: mov, avi, wmv, qt, flv, ogv/ogg .. try others too + * Uploads should be of highest quality when possible. + * The gallery uses ffmpeg and server side processing (vcodec h.264, acodec faac) + * The user / public front end is customized wordpres with plugins. === Initial setup === + * Login to the maintenance server by typing 'maint' at the shell + * Select option 'o' to set or reset your SDF Video Gallery password under Social Networking === Logging into the Wordpress CMS ===//Referenced links in the images are circled in red// + * Open a browser to http://toobnix.org + * Click the '**login**' link on the lower right side of the screen {{http://sdf.org/tutorials/images/toobnix/toob0_1.jpg}}\\ + * Type in your SDF login and password you set via the 'maint' command {{http://sdf.org/tutorials/images/toobnix/toob1_1.jpg}}\\ + * You will be presented with the **dashboard** + * You can use the **QuickPress** frame or click **+ New** to add a video {{http://sdf.org/tutorials/images/toobnix/toob2_1.jpg}}\\ + * Click on **Upload/insert** to add your video {{http://sdf.org/tutorials/images/toobnix/toob3_1.jpg}}\\ + * Either drag your video file to the drop area or click on **Select Files**{{http://sdf.org/tutorials/images/toobnix/toob5_1.jpg}}\\ + * You will see a status bar run while your video is uploaded {{http://sdf.org/tutorials/images/toobnix/toob4_1.jpg}}\\ + * Once your video has uploaded, click on **Generate** to create thumbnails + * You do not need to fill out any of the other fields {{http://sdf.org/tutorials/images/toobnix/toob6_1.jpg}}\\ + * Select which thumbnail you'd like to represent your video + * Click **Insert into Post** to proceed {{http://sdf.org/tutorials/images/toobnix/toob7_1.jpg}}\\ + * Check your **title** and add your **tags** + * Do not edit the inserted code or add text (your video may not process) + * Do not set **Visibility** to private, your video will not be processed. + * Click the **Publish** button {{http://sdf.org/tutorials/images/toobnix/toob8_1.jpg}}\\ + * Click on [[http://toobnix.org|toobnix.org]] to see your published video + * Depending the duration the video processing may take up to 45 minutes + * You will receive an email when your video is received and once its processed + * Once your first video has been processed, a short URL of http://toobnix.org/username will be created for you + * You can now add a description **below** your video by editing your post. {{http://sdf.org/tutorials/images/toobnix/toob9_1.jpg}}$Id: toobnix.html,v 1.10 2013/08/12 06:43:54 jgw Exp $ \ No newline at end of file diff --git a/dump/tops20-interactive.html.docuwiki b/dump/tops20-interactive.html.docuwiki new file mode 100644 index 0000000..664e775 --- /dev/null +++ b/dump/tops20-interactive.html.docuwiki @@ -0,0 +1,244 @@ +====== TOPS-20 Interactive Tutorial ====== + +This file is a log of a session with the TOPS-20 interactive tutorial on twenex.org. It has been added to the SDF tutorials to make the content available on the World-Wide Web, but it is a much more effective learning experience to work through the tutorial interactively by logging-in to twenex.org and running the TOPS20 program. + +===== Executive Summary ===== + +The tutorial introduces a number of useful keystroke commands for working with in the TOPS-20 EXEC environment. + +| Output control ||| +| | ^S | Pause output scrolling | +| | ^Q | Resume output scrolling | +| | ^O | Toggle output suppression | +| Command guidance ||| +| | ESC | Command completion and guide words | +| | ? | Expected input guidance | +| Command line editing ||| +| | ^R | Retype current line | +| | DEL (or BackSpace) | Erase previous character | +| | ^W | Erase previous word | +| | ^U | Erase current line | +| Program status and control ||| +| | ^T | Session status | +| | ^C | Exit program (may need 2 or more) | + +===== TOPS20 Tutorial Log ===== + + @tops20 + + Following is a brief explanation of some conventions of Tops-20. + Learning and remembering them will be a great help when exploring the + facilities on this system. If you are already familiar with Tops-20, + you should ^C out of this program. If not, you might want to take + notes. + + The first things you should learn are the control characters ^S and + ^Q. A "control character" is made by striking some letter WHILE + HOLDING DOWN the control key (marked "CTRL"). They are represented + in print by putting ^ before the letter. So ^S is made by striking S + while holding down the CTRL key. (S need not be typed in upper case.) + + ^S and ^Q are used to stop and start output (typing) to the terminal. + This is useful mostly on a CRT (video) terminal, where things you + want to look at have a habit of going off the top of the screen + before you can read it. + + ^S - stop output temporarily + ^Q - continue stopped output + + A ^S typed by you will be simulated now. (Type ^Q to continue.) + + Very good! It is also possible (but we won't go into how here) to + have the line set up so that it automatically pauses at the end of an + uninterrupted page of output. Practice using ^S and ^Q every so + often throughout this lesson. (Remember: When output stops where you + wouldn't expect it to, the system is frequently just waiting for a + ^Q.) + + The next concept you should learn is that of ESCAPE and "?". Most + commands are given with words. You needn't type out the complete + command. A unique abbreviation is sufficient. After typing the + abbreviation, an ESCAPE (sometimes called ALTMODE, labeled "ESC" or + "ALT") will cause the system to type out the rest of the command + word. This is called recognition. + + ESC - complete an abbreviated command + + Here is an example - type an ESCAPE at the end of this example: + + TOPS20>recogNITION + + Good. See how the system completed the word for you? There is + another advantage to using ESCAPE for recognition - guide words. + When you type ESCAPE to recognize a command, the system will often + supply a hint as to what it wants to see next. These hints, which + are always typed in parentheses, are called guide words. Try typing + ESCAPE again and see how it works: + + TOPS20>gUIDE (WORDS) + + Alright! The "(WORDS)" above is an example of a guide word. Guide + words are also sometimes called noise words. Usually they give some + hint as to what should come next, as + + TYPE (FILES) - you should give it names of files to type + LOGIN (USER) - you should type your user name + + Sometimes, though, this doesn't give a big enough hint. If this is + the case, you can find out what is expected of you next by typing a + question mark. + + ? - show what is expected here + + Ok, now try out using a question mark ("?"). (If the system doesn't + do anything when you're done, type a carriage return.) + + How do you spell 3? ? one of the following: + ONE THREE TWO + How do you spell 3? three + + Ok, next we'll work on changing what you've typed in. First of all, + sometimes, the line you are entering gets broken or messed up in some + other way. If you type a ^R, the system will retype the prompt and + any input you have typed. + + ^R - retype the current line + + Here a broken line will be demonstrated. Type a ^R to have it + redisplayed. + + TOPS20>This line is + SANTA.CLAUS, TTY45, 23-May-2010 5:41AM + Have you been good? + TOPS20>This line is not broken + There - you see how the line got retyped all in one piece? + Sometimes, something you typed was not what you meant. There are + special characters which you can use to edit what you have typed + already. The first of these is DELETE (which may also be labelled as + either "DEL", "RUBOUT", or "RO"). Its function is to erase the last + character typed. + + DEL - erase the previous character + + Use a DELETE to correct the following error: + + TOPS20>correction + + Hey, you're moving right along now. The next line editing character + to learn is ^W. Sometimes your mistake doesn't involve just the last + couple of letters. Sometimes you'll goof up a word or two. DELETEs + aren't convenient when you have to delete so many letters. ^W will + delete characters a word at a time. + + ^W - erase the previous word + + Use one or more ^W (along with some other features you've learned) to + correct the following error: + + TOPS20>This example is not wrong + + That's it! Almost done with the editing control characters... The + last of these is ^U. If, somehow, the line you typed in was not at + all what you were intending to type, ^U will erase the entire line of + input. + + ^U - erase the entire line + + Use ^U (and some other features you've learned) to correct the + following error (we're getting tricky now): + + TOPS20> + + Wonderful! Now you know all about editing characters for commands on + Tops-20. Only a couple more things to learn. The next is ^O. If a + lot of typing is coming out on your terminal which you don't want to + see, but you don't want to interrupt the program which is doing the + output (we'll get to how to do that in a minute), you should type a + ^O. The first time you type ^O, it redirects output for your + terminal off into nowhere (sort of sends it to the "bit bucket"). + The next time you type ^O, output is directed back to your terminal + again. All output in the interim is lost. + + ^O - toggles output suppression + + For practice with ^O, I'm going to dump a lot of output to your + terminal. Try typing a few ^O's to see how they work. + + Type carriage return when you're ready. + This is trip number 1 thru the loop. + This is trip number 2 thru the loop. + This is trip number 3 thru the loop. + This is trip number 4 thru the loop. + This is trip number 5 thru the loop. + [...] + This is trip number 46 thru the loop. + This is trip number 47 thru the loop. + This is trip number 48 thru the loop. + ^O...s trip number 49 thru the loop. + he loop. + This is trip number 53 thru the loop. + This is trip number 54 thru the loop. + [...] + This is trip number 98 thru the loop. + This is trip number 99 thru the loop. + This is trip number 100 thru the loop. + + So there's ^O for you. Quite useful at times, isn't it... + + Would you like to try it again? no + + Ok, one last thing which you'll find useful before the final lesson. + That's ^T. ^T tells you information about what you are currently + doing. It's output looks something like this: + + 17:03:57 TOPS20 IO wait at 2332 Used 0:34:41.4 in 10:05:05, Load + 3.58 + + In the above example, "TOPS20" is the the name of the program which + you are running. "IO wait" tells what the program is doing. (In + this case, it's waiting for some input or output to complete - maybe + waiting for the user to type something.) The number following "at" + is the address at which the program is executing. The number + following "Used" is the amount of time your program(s) have actually + spent running, and the one after "in" is how long you've been logged + on. The number following "Load" is roughly the number of people + trying to use the machine "right now." + + Try typing a ^T... + + 05:36:28 TOPS20 SLEEP at PS5+11 Used 0:00:01.5 in 0:07:49, Load + 0.03 + + Well, would you believe you've made it to the last part of this + lesson? The last (but not least important) thing you'll learn here + is about ^C. Typing ^C's is how you get out of almost any program on + Tops-20. If the program is waiting for input, one ^C will interrupt + it. If not, probably two will work, but sometimes as many as four + are needed. ^C is usually used as a panic exit from a program. + + ^C - exits (immediately) from the program + + Oh, yes... Before you try it out, if you'd like to run this program + again sometime, it's TOPS20:TOPS20.EXE. + + Ok - Now for the last bit of practice - ^C out of this program. + ^C + + To summarize: + + ^C - Cease program immediately + ^O - Output suppress + ^Q - Qontinue output + ^R - Redisplay line + ^S - Stop output + ^T - Tells what's happening + ^U - Undoes line being typed in + ^W - Word deletion + ? - what?s expected here + DEL - DELetes one character + ESC - rESCognitiion invoked + + Ok, good luck... + @ + +$Id: tops20-interactive.html,v 1.1 2010/05/23 16:55:57 papa Exp $ \ No newline at end of file diff --git a/dump/trac-on-sdf.html.docuwiki b/dump/trac-on-sdf.html.docuwiki new file mode 100644 index 0000000..954e45e --- /dev/null +++ b/dump/trac-on-sdf.html.docuwiki @@ -0,0 +1,88 @@ +====== Trac on SDF ====== + +This tutorial discusses how to install [[http://trac.edgewall.org/|Trac]], in the words of its creators a minimalistic approach to web-based management of software projects. + +==== Contents ==== + + - [[#intro|Introduction]] + - [[#install|Installation]] + - [[#running|Running Trac]] + - [[#further|Further reading]] + +---- + +===== Introduction ===== + +Trac includes wiki, bug tracker, milestone plan and an interface to Subversion. It is installed on SDF, so you can setup your own instance and manage your projects. + +===== Installing a Trac instance on SDF ===== + +==== Setting up an SVN repository ==== + +Skip this step if you want to use Trac //without// a repository. Otherwise run the commands + +$ mkdir .svn_repos $ svnadmin create .svn_repos/my-cool-project + +to setup a repository named "my-cool-project" in your homedir under "$HOME/.svn_repos". You can then checkout your repository from your home using the [[http://svnbook.red-bean.com/en/1.4/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sshauth|svn+ssh protocol]]. + +==== Setting up Trac ==== + +Get started with + +trac-admin /path/to/trac initenv + +where "/path/to/trac" is the directory where Trac will be installed (it will be created if doesn't exist). The installation routine will ask you a bunch of questions, including your project's name, database connection (default is fine), repository type and path (type in the path you have chosen above, e.g. "~/.svn_repos/my-cool-project") or leave it blank if you didn't setup a repository. **Whenever you are not sure what to do, just hit [return] to use the default.** + +If the output finally reads Project environment for 'My cool project' created and Congratulations!, you have just successfully installed Trac. Pat yourself on the back and read on! + +===== Running Trac ===== + +There are currently two ways to run Trac on SDF: with the standalone server "tracd" and as CGI within Apache. + +==== Using the standalone server "tracd" ==== + +This is by far the least painful, but requires the MetaARPA membership because "tracd" opens a port on the machine. + +First, run the command + +id -u + +and note down the number that is printed on the terminal. This will be your port number (to avoid conflicts between users) and will be refered to as "PORT" from here on. + +Next, run the command + +tracd --port PORT /path/to/trac + +You will now be able to connect to your Trac instance with your Browser of Choice™ at http://sverige.freeshell.org:PORT/trac + +==== Running Trac as CGI within Apache ==== + +With this setup, you will be able to run Trac under your own domain. The tradeoff is performance – "tracd" is considerably faster. + +Copy "trac.cgi" into your "html/" directory: + +cp /usr/pkg/share/trac/cgi-bin/trac.cgi html/ + +and fix the permissions using "mkhomepg -p". Add the following lines to "trac.cgi" just after the comments: + +import os os.environ['TRAC_ENV']='/path/to/trac' + +Now Trac can locate the directory containing your instance. + +If you rename the CGI to "index.cgi", it can be called just by the directory. In that case, you may consider setting up a subdirectory (like MYPROJECT) and copying the CGI there. + +Point your browser to http://YOURLOGIN.freeshell.org/trac.cgi (or even just YOURLOGIN.freeshell.org/MYPROJECT if you renamed the CGI and copied it to the MYPROJECT subdirectory of your html/) to check that it works. Please be patient, CGI takes a while to load the page. + +**Note:** If you want to use Trac in your VHOSTed domain at SDF, be sure to put "trac.cgi" into the corresponding domain directory under "html/". + +===== Further reading ===== + +To use prettier URLs, please refer to [[http://trac.edgewall.org/wiki/TracPrettyUrls#Usingmod_rewritefrom.htaccessfiles|Prettier URLs for Trac]]. + +Most basic information (tickets, milestones, etc.) can be changed through the web interface. However, administrative tasks must be done on the command line using the "trac-admin" command. Please refer to [[http://trac.edgewall.org/wiki/TracAdmin|Trac Admin]] for details. + +Lastly, [[http://trac.edgewall.org/wiki/0.10/TracGuide|the Trac User and Administration Guide]] is pretty thorough and should answer all Trac-related questions. + +---- + +$Id: trac-on-sdf.html,v 1.4 2014/10/18 19:00:12 grobe0ba Exp $ \ No newline at end of file diff --git a/dump/ttrss.html.docuwiki b/dump/ttrss.html.docuwiki new file mode 100644 index 0000000..eccee40 --- /dev/null +++ b/dump/ttrss.html.docuwiki @@ -0,0 +1,25 @@ +====== Tiny Tiny RSS ====== + +===== Introduction ===== + +With Google announcing the end of Google Reader, SDF brought its own alternative to RSS reading: our own instance of [[http://tt-rss.org/|Tiny Tiny RSS]]. It's a RSS service much like Google Reader, with many options of customization, sharing, filtering, etc. The SDF's server is hosted [[https://wm.sdf.org/tt-rss/|here]]. + +===== Activation and Configuration ===== + +As with any other social service of SDF, it comes disabled by default, and can be turned on with the maint utility. It is available to MetaARPA members.\\ \\ After enabling the service, make sure to change the default password (Actions -> Preferences -> Personal data/Authentication). If you have your old feed subscriptions exported from Google Reader, you can upload them here (Actions -> Preferences -> Feeds -> Import and export) or subscribe to new ones (Actions -> Subscribe to feed).\\ \\ {{http://sdf.org/tutorials/images/ttrss_passwd.png?800x500|Example}}\\ Browsing and reading RSS feeds are similar to using Google Reader and other web-based RSS readers. There are many options to fine-tune how it behaves, see Actions -> Preferences for more. + +===== External clients ===== + +This service provides an API enabling external clients to connect to it and interact. Be sure to enable the external API support before trying to use an external client.\\ \\ {{http://sdf.org/tutorials/images/ttrss_api.png?800x500|Example}}\\ + +==== Fever API Plugin ==== + +This plugin, if enabled, allows third party clients to connect to SDF's tt-rss via the fever API.\\ \\ To enable, navigate to Actions -> Preferences -> Plugins; check the box next to "fever", and click "Enable selected plugins".\\ Once enabled, you will find the "Fever Emulation" menu under the Preference's Preferences tab. You will need to set a password.\\ {{http://sdf.org/tutorials/images/ttrss_fever_api.png?800x500|Example}}\\ + +==== Newsbeuter ==== + +[[http://www.newsbeuter.org/|Newsbeuter]] is a feed reader for text terminals. Even though newsbeuter 2.6 has support for ttrss, newer versions of the latter broke the external API, so to connect to the SDF's server you will need to compile the code from git or wait until version 2.7 comes out. + +\\ urls-source "ttrss"\\ \\ ttrss-url "https://wm.sdf.org/tt-rss/"\\ ttrss-mode multi\\ ttrss-login "username"\\ ttrss-password "password"\\ + +$Id: ttrss.html,v 1.7 2014/03/06 23:09:16 edgchacon Exp $ \ No newline at end of file diff --git a/dump/tutorial_editing.html.docuwiki b/dump/tutorial_editing.html.docuwiki new file mode 100644 index 0000000..7279b69 --- /dev/null +++ b/dump/tutorial_editing.html.docuwiki @@ -0,0 +1,295 @@ +====== SDF Tutorial Editing Guide ====== + + * [[#intro|Introduction]] + * [[|Creating and Editing Tutorials]] + * [[#create-tutorial|Creating a New Tutorial]] + * [[#edit-tutorial|Editing an Existing Tutorial]] + * [[#edit-faq|Editing the FAQs]] + * [[#coding|Coding A Tutorial]] + * [[#before-you-code|Before You Start Coding!]] + * [[#using-images|Using Images]] + * [[#citing-references|Citing References]] + * [[#which-html|Which HTML Version?]] + * [[#coding-style|Coding Style]] + * [[#template|Tutorial Template]] + +===== Introduction ===== + +> Many young and very impressionable people discover SDF every day. They ask us what we might feel are stupid questions, but it's not their fault. They've grown up only knowing that hackers destroy computer networks and exploit people and their information. The solution is not to ridicule or shun these kiddiots, but to show them that there is a better and truer way.\\ — From the README.TXT + +This guide has been introduced to help members more easily contribute to the SDF Tutorials project. The [[#rcs|first section]] of the guide gives brief instructions for creating or editing tutorial files using RCS for version control. The [[#coding|second part]] of the guide discusses tutorial-specific HTML coding and contains some template code. + +It would behoove you to read the original "README.TXT" of the SDF Tutorials Project in the tutorial files directory ("/sys/html/tutorials"). It not only expresses the aim of the project, but it also contains more detailed information on the use of RCS than is given here. + +This guide assumes knowledge of basic shell use and text file editing. Familiarity with HTML is not necessary, though it may prove helpful. + +===== Creating and Editing Tutorials ===== + +To create or edit a tutorial, change your working directory to "/sys/html/tutorials" in your shell on the main SDF cluster (e.g. sdf.org, not MetaArray): + + $ cd /sys/html/tutorials + +==== Creating a New Tutorial ==== + +Inside the tutorials directory, you can use "echo" to quickly create an empty HTML file with an RCS Id tag at the bottom. Use the "umask" command first to make sure that the permissions on the new file will allow the web server (and other users) to read it. + + $ umask 022 + $ echo -e "\n\$Id\$" > your_tutorial_filename.html + +Use the command "ci -u" to check-in the file with RCS and leave it unlocked it so that anyone can edit it. + + $ ci -u your_tutorial_filename.html + +The first time you check-in a file, you will be asked for a description of it. Please write something useful. + +You may now edit your tutorial using the instructions in the [[#edit-tutorial|next section]] to check the file in and out of RCS. + +Once your tutorial is ready for public display, please add it to the list of available tutorials so people can actually find it on the web. You must edit the "index.html" file in the tutorials directory to do this. When editing the "index.html" file, use the same check-in/check-out procedure that you do when editing a tutorial. + +==== Editing an Existing Tutorial ==== + +Inside the tutorials directory, use the command "co -l" to check out the file with RCS and lock it while you make your edits. + + $ co -l filename + +**If when using "co -l" you are told that the file is already locked please STOP what you are doing and wait for it to be checked back in. If it does not get checked back in, email the author and let them know you want to check out the file and edit it.** + +You may now edit the file using your preferred text editor. If you save your work periodically, you can load and reload the tutorial in your web browser to see your changes. The URL for the tutorial file will be "http://sdf.org/?tutorials/filename_without_extension" (e.g., if you are editing "/sys/html/tutorials/nmap_for_dummies.html", the URL will be "http://sdf.org/?tutorials/nmap_for_dummies"). + +When you are finished editing the file, use the command "ci -u" to check the file back in with RCS and unlock it so that others may edit it. + + $ ci -u filename + +When you check-in a file, you will be asked to describe the changes you've made to it. Be as terse as you like, but please write something useful. + +==== Editing the FAQs ==== + +MetaARPA users can also edit the [[http://sdf.org/?faq|FAQs]]. These are plain text files, found in "/sys/html/tutorials/FAQ/". The list of FAQs for each section is in a dotfile '".list"'. These FAQ files are synced regularly with those shown by the "faq" command. + +===== Coding A Tutorial ===== + +Tutorials are coded using HTML. If you are already handy with HTML, then you are just moments away from editing your tutorial! Please read the [[#before-you-code|Before You Start Coding]] section for some implementation specifics, and at least skim the [[#coding-style|Coding Style]] section before proceeding. + +If you are **not** familiar with HTML, the W3C site has a very brief tutorial, [[http://www.w3.org/MarkUp/Guide/|Getting Started With HTML]], which will teach you enough of the rudiments to be able to author a tutorial. In addition, the [[#template|template]] on this page is furnished with ample comments to help HTML beginners. + +If you don't have the time or inclination to learn HTML, you may still be able to contribute to the Tutorials Project. Write a tutorial (or a section, correction, addendum, etc.) in plain text and tack a note in "bboard:<TUTORIALS>". One of your MetaARPA colleagues may just volunteer to HTMLize your work for you. + +==== Before You Start Coding! ==== + +SDF tutorial files contain HTML code, but **they are not complete HTML documents**. When they are served to web browsers, the site's "index.cgi" wraps them in the site-wide navigation header and footer. The code in tutorial files represents the contents of a "<body>" element, and **must not contain** the following elements/tags: + + * "<html>, </html>" + * "<head>, </head>" + * "<meta>" + * "<base>" + * "<body>, </body>" + +Tutorial files will also contain an RCS **$Id** tag, which will look something like: "$Id:filename.html,v 1.11 2011/01/01 11:11:11 username Exp $". There is no need to edit this, as it is automatically generated by RCS. It is best to leave it as the last line of the file. + +=== Using Images === + +**Do not hotlink images from other sites**. Put a copy of any image files you wish to use in "/sys/html/tutorials/images", and make sure their permissions allow the web server to read them ("chmod a+r" will do this). + +**Always provide a description of the image** for users of text-based browsers and the visually impaired in the "alt" attribute of the "<img>" tag. + +Incorrect: + + "<img src="tutorials/images/example.png">" + +Correct: + + "<img src="http://sdf.org/tutorials/images/example.png" + alt="Image of a Blickensderfer No. 5 typewriter">" + +=== Citing References === + +In the event that you rely heavily upon a source in your tutorial, //particularly// if you use any direct quotations from it, you should cite the work properly. + +Include a heading for "References", or "Notes" in your tutorial (typically at the end) and use a numbered list ("<ol>") to enumerate your sources in the [[http://www.chicagomanualofstyle.org/tools_citationguide.html|Chicago Style for Notes]]. + + "<h2 id="notes">Notes</h2> + <ol> + <li id="bartles">James Bartles, <cite>Boogers For Breakfast</cite> + (Sacramento: Wine Cooler Press, 1979), 74.</li> + <li id="moribund">Delron Moribund, "Crossover Calisthenics", <cite> + Travesties of Better Judgement</cite> 64 (2009): 56-60.</li> + </ol> + " + +Then, where the sources are cited in the text of your tutorial, use a superscript ("<sup>") number or a number in parenthesis hyperlinked to the appropriate list item. + + "<p>The secret to a proper nose-goblin ganache is in the picking<sup><a + href="#bartles">1</a></sup>. (...)</p>" + +Or, + + "<p>Without adequate stretching beforehand, you are certain to suffer a + Ludmilian haemorrhage(<a href="#moribund">2</a>). (...)</p>" + +There are further examples of this in the [[#template|code template]] below. + +=== Which HTML Version? === + +The current W3C recommendation is [[http://www.w3.org/TR/html5/|HTML 5]]. In most respects, the core elements of HTML haven't changed since the mid 1990s; some tags have been added, and some removed. To maximize backwards compatibility, you might restrict yourself to the following elements, which have gone unchanged since 1996: + + * Structural Elements + * "<h1>", ..., "<h6>" + * Grouping/Block-Level Elements + * "<p>" + * "<pre>" + * "<ul>","<ol>", "<dl>" and their subordinates + * "<blockquote>" + * "<hr>" + * "<table>" and its subordinates + * and, of course, "<div>" + * Text-level/Inline Elements + * "<br>" + * "<a>" + * "<img>" + * "<code>", "<samp>", and "<kbd>" + * "<sup>" and "<sub>" + * "<strong>", "<small>", and "<em>" + * "<i>", "<b>", "<u>", and "<s>" + * "<dfn>", "<var>", and "<cite>" + +Many closing tags are optional, but for code clarity they can be nice. Stay away from XHTML self-closing tag forms, however (ie. "<br/>", "<hr/>", "<img src="some_url"/>", et cetera). + +==== Coding Style ==== + +You can do //a lot// with HTML and CSS. You can do even more if you throw Javascript into the mix. + +But don't. + +SDF tutorials are a resource for all users, and the means by which the tutorials will be accessed are as diverse as the users themselves. Some will be reading with text-based browsers over telnet connections, some may be disabled and require the use of a screen-reader. If your tutorial makes heavy use of CSS or — god forbid — Javascript, then you're not taking the needs of all users into consideration. + +Furthermore, the tutorials are a collaborative effort. You may be the first author to work on a tutorial, but you probably won't be the last. If your tutorial is a hairball of style attributes and idiosyncratic tag/element usage, it only makes it harder for the next author to edit/expand — particularly if they're not as well-versed in web coding as you are. + +**Please try as much as possible to use plain HTML when coding tutorials.** Everything you should need to write a clear tutorial is already in the language: + + * Structure your tutorial using headings ("<h1>,<h2>,...,<h6>"), and stay away from using "<div>"s. + * Use paragraphs ("<p>") for blocks of prose, and preformatted blocks ("<pre>") for source code listings, sample console output, or wherever else whitespace needs to be retained and a monospaced font used. + +Rather than use styled "<span>" tags or other generic grouping elements, use semantic tags which describe the text you want to differentiate from body text. If the user's browser supports the tag, it will be presented differently. + + * For important text, use "<strong>". + * For emphasis, use "<em>". + * For the names of commands, file names, or source code listings, use "<code>". + * For example console text, use "<samp>" inside a "<pre>" block. + * And so-on... + +There is a [[http://www.w3.org/TR/html5/text-level-semantics.html#usage-summary|usage summary of text-level semantic elements]] for the current W3C recommendation (HTML 5). It's handy. Not all tags are supported by all browsers, but a semantically tagged tutorial is more useful — and easier to style — than a document full of custom styled spans. + +==== HTML Template ==== + +The code below may be used as a template if you are creating a new tutorial, or re-writing one from scratch. You don't have to use it; it is merely provided as a convenience. + +The text contained between the "<!--" and "-->" tokens are //comments//, and may be discarded. + + " + //<!-- SDF Tutorial Template + ====================================================================== + Use of this code is entirely optional. It is provided as a sample of + coding style, and a quick way to start a new tutorial for users who + may be beginners with HTML. -->// + + <style type="text/css"> + @import url('http://sdf.org/tutorials/tutorials.css'); + </style> + + //<!-- The title of the tutorial should be the only level-1 header + (<h1>) in the document. -->// + <h1>Title of Tutorial</h1> + + //<!-- For longer tutorials, a table of contents is nice. Shorter + tutorials (like this one) really don't need it, so this section can be + omitted. Replace the <ul> tags with <ol> tags for a numbered list. -->// + <ul> + <li> + <a href="#section-1">Section Heading</a> + //<!-- to get an indented section of the list, we simply embed a + list inside of a list item -->// + <ul> + <li> + <a href="#subsection-1">Subsection Heading</a> + </li> + </ul> + </li> + <li><a href="#section-2">Another Section Heading</a></li> + <li><a href="#notes">Notes</a></li> + </ul> + + //<!-- This is the beginning of a section. It starts with a level-2 + heading (<h2>) and has been given an 'id' attribute so that it may be + linked to. -->// + <h2 id="section-1">Section Heading</h2> + + //<!-- Remember to always contain your paragraphs in <p> tags. For + strings of code, filenames, commands, etc., which appear inside of a + paragraph, wrap them in <code> tags to differentiate them from the + rest of the paragraph's text. -->// + <p>By issuing the <code>sac -nar</code> command, your spirit animal + will be changed to the narwhal.</p> + + //<!-- For entire blocks of code, place the <code> inside of a <pre> + instead of a <p>. Text inside of a <pre> has its whitespace characters + (space, tab, carriage-return) interpreted literally, unlike text + inside of a <p>. -->// + <pre><code>10 PRINT "DO YOU EAT BOOGERS?" + 20 INPUT X + 30 IF X="YES" THEN PRINT "YOU'RE A GOOD MAN, CHARLIE BROWN.": END + 40 IF X="NO" THEN PRINT "WHAT, YOU THINK YOU'RE BETTER THAN ME?" + </code></pre> + + //<!-- For sample program output, console sessions, etc., use <samp> + inside a <pre> block. -->// + <pre><samp>$ finger man@arms + Login: man Name: Duncan + Directory: /eternia/heroic_warriors/man Shell: /bin/bashasaurus + No mail. + Plan: Make Orko clean-up the mess he left in my workshop. + </samp></pre> + + //<!-- This sub-section begins with a level-3 heading (<h3>). HTML + provides tags for sections nested six levels deep (tags <h1> + through <h6>). If you need to nest sections seven or more levels deep + ...you might consider restructuring your tutorial! -->// + <h3 id="subsection-1">Subsection Heading</h3> + + //<!-- For VERY IMPORTANT TEXT, make it <strong>. To add emphasis to a + word or phrase, use <em>. -->// + <p><strong>Do not forget to flush the buffer</strong>. If you do, the + smell will be <em>intolerable</em>.</p> + + <h2 id="section-2">Another Section Heading</h2> + + //<!-- This paragraph gives an example of two styles of footnote + referencing. Both are hyperlinked to corresponding list items (<li>) + in the Notes section below. -->// + <p>The Honeywell 6080 can be induced to perform a samba by pressing + the button labeled "Samba" on the operator's + console<a href="#fn1"><sup>1</sup></a>. That mainframe's forté, + however, is the foxtrot(<a href="#fn2">2</a>), but the inducement of + that particular step is beyond the scope of this tutorial.</p> + + //<!-- Here is a sample footnotes section. In this example, we're using + footnotes to cite a reference, but this same style can be used for + footnotes of any kind. Your tutorial may not require any footnotes. If + it doesn't, feel free to snip this entire section out. -->// + <h2 id="notes">Notes</h2> + + //<!-- We're using an ordered list (<ol>) so that the notes are + automatically numbered. A single reference is cited twice in the + tutorial. As you can see, you may use an abbreviated form of citation + for subsequent references to a single work. -->// + <ol> + <li id="fn1">Zurgone Vemliat, <cite>Mainframe Dancing Habits</cite> + (Milwaukie: Brewers' Press, 1988), 96.</li> + <li id="fn2">Vemliat, <cite>Mainframe</cite>, 112.</li> + </ol> + + //<!-- At the very end, here, is the RCS Id tag. Let it be, my friend. -->// + $Id: tutorial_editing.html,v 1.24 2018/08/28 02:39:56 moondoggy Exp $ + + " + +To see how this template looks when rendered, visit [[http://sdf.org/?tutorials/tutorial_template|"http://sdf.org/?tutorials/tutorial_template"]]. \ No newline at end of file diff --git a/dump/tutorial_template.html.docuwiki b/dump/tutorial_template.html.docuwiki new file mode 100644 index 0000000..2d8268f --- /dev/null +++ b/dump/tutorial_template.html.docuwiki @@ -0,0 +1,37 @@ +====== Title of Tutorial ====== + + * [[#section-1|Section Heading]] + * [[#subsection-1|Subsection Heading]] + * [[#section-2|Another Section Heading]] + * [[#notes|Notes]] + +===== Section Heading ===== + +By issuing the "sac -nar" command, your spirit animal will be changed to the narwhal. + + "10 PRINT "DO YOU EAT BOOGERS?" + 20 INPUT X + 30 IF X="YES" THEN PRINT "YOU'RE A GOOD MAN, CHARLIE BROWN.": END + 40 IF X="NO" THEN PRINT "WHAT, YOU THINK YOU'RE BETTER THAN ME?" + " + + $ finger man@arms + Login: man Name: Duncan + Directory: /eternia/heroic_warriors/man Shell: /bin/bashasaurus + No mail. + Plan: Make Orko clean-up the mess he left in my workshop. + +==== Subsection Heading ==== + +**Do not forget to flush the buffer**. If you do, the smell will be //intolerable//. + +===== Another Section Heading ===== + +The Honeywell 6080 can be induced to perform a samba by pressing the button labeled "Samba" on the operator's console[[#fn1|1]]. That mainframe's forté, however, is the foxtrot([[#fn2|2]]), but the inducement of that particular step is beyond the scope of this tutorial. + +===== Notes ===== + + - Zurgone Vemliat, Mainframe Dancing Habits (Milwaukie: Brewers' Press, 1988), 96. + - Vemliat, Mainframe, 112. + +$Id: tutorial_template.html,v 1.2 2015/01/11 12:18:59 laemeur Exp $ \ No newline at end of file diff --git a/dump/twenex-multiprg.html.docuwiki b/dump/twenex-multiprg.html.docuwiki new file mode 100644 index 0000000..37f5b6f --- /dev/null +++ b/dump/twenex-multiprg.html.docuwiki @@ -0,0 +1,91 @@ +====== Using Multiple Interactive Programs on TWENEX ====== + +December 28, 2011 + +TOPS-20 allows you to use multiple interactive programs simultaneously from a single login session. For example, in the middle of editing a document you can run other programs or commands, lookup help files, refer to e-mail messages, etc., and then return to your editing session in the same state you left it. + +(Multiple non-interactive programs can be run using the TOPS-20 batch facility. See the TOPS-20 User's Guide[[#n1|[1]]] chapter 10 "Using Batch".) + +The functions described in this tutorial are equivalent to those on Unix systems invoked with the Ctrl-Z key and commands like fg, jobs, etc. + +There are two ways to run multiple interactive programs[[#n2|[2]]] in TOPS-20: + + - Push/Pop: From an interactive session you run another program, then return to the first program when the called program is complete. + - Multiforking: You run two or more interactive programs in parallel and switch among them as needed, preserving the program session state from the last time you visited the program. + +===== Push/Pop ===== + +This method involves starting a new EXEC command level subordinate to your login EXEC. The state of your original program is preserved in your login EXEC while you run one or more programs in the child EXEC level. When done, you terminate the child EXEC and return to your original program. + + *^C ! Return from program session to EXEC + ^C ! (only single ^C will echo). + + @PUSH ! Start child EXEC instance. + + TOPS-20 Command processor 7(4168)-1 + @MM ! Start a program in the child EXEC. + + ... ! Use program then exit. + + @POP ! Terminate child EXEC and return to + ! parent EXEC. + + @CONTINUE[[#n3|[3]]] ! Return to original program session. + * ! Depending on the program you may + ! continue entering commands or + ! refresh the display. + +===== Multiforking ===== + +With multiforking, you run multiple programs in the same EXEC by forking a separate address space to maintain each program's state. You can then move between the forks and their corresponding programs at will. You do not need to end a program before returning to a previously used program session, and may revisit any of the forked programs multiple times preserving each program's session status. + + *^C ! Return from program session to EXEC + ^C ! (only single ^C will echo). + + @KEEP ! Create separate address space for + ! new program. + + @MM ! Start new program. + + ... ! Use program. + + MM>^C ! Return from second program to EXEC. + + @INFORMATION FORK-STATUS[[#n3|[3]]] + ! List forks in current EXEC. + ! (Current fork marked with "=>".) + + TECO (1): Kept, ^C from IO wait at TYI+3, 0:00:00.0 + => MM (2): ^C from IO wait at $COMND+3, 0:00:00.0 + + @FORK TECO ! Switch to original program's fork + ! ("TECO"). + + @CONTINUE ! Return to original program session. + + ... ! Use original program. + + *^C ! Return to EXEC. + + @INFORMATION FORK-STATUS + => TECO (1): Kept, ^C from IO wait at TYI+3, 0:00:00.0 + MM (2): ^C from IO wait at $COMND+3, 0:00:00.0 + + @FORK MM ! Switch to second program fork ("MM"). + + @CONTINUE ! Resume second program session. + +===== More Information ===== + +More information can be found in TOPS-20 User's Guide[[#n1|[1]]] sections 8.6 "Running Programs Without Destroying Memory" and 8.7 "Running Multiple Programs". + +===== Notes ===== + +[[|[1]]]TOPS-20 User's Guide. Available on Twenex.org in file DOC:USERS.MEM or on the WWW at http://tilt.twenex.org/.[[|[2]]]It is only necessary to use these methods when you wish to use two or more user programs at the same time. Running a user program from EXEC without first running PUSH or KEEP will overwrite the user program address space and destroy the session state of the previously running program. However, EXEC commands generally do not disturb user program address space. You can halt an active program (with ^C^C), run several EXEC commands (e.g. DIRECTORY, HELP, TYPE), and return to your original program (with CONTINUE) in the state you left it.[[|[3]]]EXEC commands and options may be abbreviated to the minimum unique prefix, for example: + + CONTINUE => CONT + INFORMATION FORK-STATUS => IN FO + +---- + +$Id: twenex-multiprg.html,v 1.2 2011/12/28 09:43:56 papa Exp $ \ No newline at end of file diff --git a/dump/unix50th.html.docuwiki b/dump/unix50th.html.docuwiki new file mode 100644 index 0000000..5d09085 --- /dev/null +++ b/dump/unix50th.html.docuwiki @@ -0,0 +1,136 @@ +=== -+- H Y S T E R I C A L -+- U N I X E S -+- === + +//this is meant to be a tutorial and/or tips 'n tricks for the hysterical unixes on https://unix50.org.// + +Available instances are: + + [a] UNICS (Version Zero) PDP-7 Summer 1969 + [b] First Edition UNIX PDP-11/20 November 1971 + [c] Fifth Edition UNIX PDP-11/40 June 1974 + [d] Sixth Edition UNIX PDP-11/45 May 1975 + [e] Seventh Edition UNIX PDP-11/70 January 1979 + [f] Research UNIX 8 VAX-11/780 1981 + [g] AT&T UNIX System III PDP-11/70 Fall 1982 + [h] AT&T UNIX System V PDP-11/70 1983 + [i] AT&T UNIX System V 3b2/400 1984 + [j] 4.3 BSD MicroVAX June 1986 + [k] 2.11 BSD PDP-11/70 January 1992 + + * Some features, such as persistent images, multiple TTYs and networking are only available on the SDF MetaArray ===== 1969 – 50 Years of Unix – 2019\\ 1987 – 32 Years of SDF – 2019 =========== unix50th — In Search of Ancient Unix ====== + * [[#section-1|Introduction]] + * [[#subsection-1|Notation]] + * [[#section-2|UNICS (Version Zero)]] + * [[#section-3|First Edition UNIX]] + * [[#section-4|Fifth Edition UNIX]] + * [[#section-5|Sixth Edition UNIX]] + * [[#section-6|Seventh Edition UNIX]] + * [[#section-7|Research UNIX 8]] + * [[#section-8|AT&T UNIX System III]] + * [[#section-9|AT&T UNIX System V (PDP-11/70)]] + * [[#section-10|AT&T UNIX System V (3b2/400)]] + * [[#section-11|4.3 BSD]] + * [[#section-12|2.11 BSD]] + * [[#section-13|Another Section Heading]] + * [[#subsection-1|Subsection Heading]] + * [[#notes|Notes]] + * [[#refs|References]]===== Introduction =====For the double celebration of the 50th anniversary of the creation of the Unix operating system and the 32nd anniversary of the establishment of the SDF Public Access Unix system, a collection of simulated historical Unix systems has been prepared for your exploration and entertainment.You can connect to the systems from the web page: [[https://unix50.org|"https://unix50.org"]].If you have a MetaArray account, you can also access the historical systems by logging in and entering the following shell command: "unix50th"The rest of this documents consists of notes and command “cheat sheets” to help new users on each of the historical systems. It is assumed the reader is already somewhat familiar with contemporary Unix-like systems.//Note to SDF MetaARPA members: I am not an expert on any of the historical systems and it's unlikely I'll be able to investigate all of them in sufficient depth, so feel free to check out this document and enhance it with your own insights and discoveries, or features or tricks I have missed. — papa//==== Notation ==== + | "command" | Command name or other fixed syntax;enter as-is. | + | //place-holder// | Place-holder for user-supplied value. | + | [//item//] | //item// is optional. | + | //item// … | //item// may be repreated one or more times. |===== UNICS (Version Zero) =====Release: Summer 1969\\ Platform: PDP-7The operating system hacked together so Ken Thompson could play //Space Travel// after Bell Labs withdrew from the Multics Project. The new operating system was named as a parody of “Multics”.This version of the operating system has a file system, a shell, a text editor, an assembler, and very little else. + * **commands available**: as, bc, cat, chdir, chmod, chown, chrm, cp, date, ln, ls, mv, stat //ken writes// + here is sme stuff.. + adm and apr submit jobs to the central + batch processing machine (ge-635 gcos) + i only remember a command to submit a print + job. the pdp-7 had no printer. actually, there + was a newer print job that got the printing + done by rejecting the batch job for some + trivial syntax error. printing would cost. + job rejection was free. + sys save generated a core file that, + when executed, would continue after the + sys save. it was used for breakpointing + long jobs and for jobs that had a lot of + initialization so they would start up faster. + a note; this unix did not have a hierarchial + file system. there were only a fixed number + of directories. each was linked to by the + directory directory dd. to get to another + directory, you did + chdir dd + chdir dir + but the chdir command would take + multiple arguments so the above is + chdir dd dir + if you ever unlinked your link to dd, + you would be cut off. + later dd became .. meaning up. one could + not reference a file in another directory + directly. thus you had to link to it by a local + name and then reference through the local + name. this + link; sys; x; y + made a local link y to the file x in directory + sys referenced off of dd. does that clear + up some of the naming confusion. + i will work on some of the other stuff you + mention. some of it sends gravity waves + through the cobwebs, but nothing specific. + ken + Logging on to the "ken" or "dmr" account - password is the same as the username=== Notes on the TELETYPE === Yeah, remember you're on an ASR33 Teletype - you can only go forward!\\ //(Special thanks to Dan Cross and Mary Ann Horton for discovering and demonstrating these at UNIX50)// + * @ = kill's the current line + * # = erase character + * } = intr (equiv to ^C) + * ^D = EOT (used to close a file) === Notes on the Commands === + * //bc// - not the calculator, but the B compiler. + * //ls// - supports the -l option which displays inum, type[dls]/umode/omode, nlink, uid, size and name - //warren toomey// + * [[https://sdf.org/tutorials/man/unixv0|Manual Pages for UNIX Version 0 for the PDP-7]] (//special thanks to wkt and tuhs//) There is no concept of filesystem paths or '..' in Unics 0. It is also important to note that 'dd' is a Multicism and stands for\\ the "Directory Directory". This concept will become '/' or 'root' in Version 1 UNIX. The shell searches two locations: 'system' and '.'\\ However, '.' must be linked with the following command: + * //ln dd userdirectory .// - links 'userdirectory' in the 'directory directory' to '.' aka the current directory. + * //ln dd dd udd// - creates a new link named 'udd' to 'directory directory directory directory' in the current directory. (You'll need to do this for the next example)=== A **Hello, World!** written in B for Unics Version 0 === + * login as //dmr//, //dmr// + * //ln dd dmr .//Now you can type //ls// and see the contents of the directory + * The file //hello.b// contains: + @ cat hello.b + main $( + write('He'); + write('ll'); + write('o,'); + write(' W'); + write('or'); + write('ld'); + write(!*n'); + $) + * //bc hello.b hello.s// # bc will compile hello.b and produce hello.s + * //as ops.s bl.s hello.s bi.s// # as will assemble hello.s along with the standard libraries and produce an a.out + @ a.out + Hello, World! + === Notes on using 'as' under Unics Version 0 === + * //ops.s, bl.s and bi.s// Opcodes and System Calls - must be included in any assembly For the UNIX 50th on 10-Jul-2019 SDF held a **//B Language//** challenge on the DEC PDP-7 running UNIX Version 0 under simh.\\ A herd of hackers gave it a go over the course of 2 hours and in the end there were 4 that put in best efforts: + * Karl Koscher (@supersat) - WINNER + * Dan Cross - Runner UP + * Mary Ann Horton - Valiant Effort + * Seth Morabito (@twylo) - Flailing Attempt (awarded with a '?') Karl's effort implements a somewhat ROT1 and was the only working example of TTY IO. The code follows:**fdip.b** + main $( + auto c; + while (1) $( + c = read(); + write(c + 1); + flush(); + $) + $) + supersat) + // gplv3 lol + // karl koscher + The winner was awarded a handsome **ASVEL //UNIX WARE//(tm)** Japanese write storage container and a delicious bag of **Tamanishiki** //Premium Short Grain Rice//===== First Edition UNIX =====Release: November 1971\\ Platform: PDP-11/20===== Fifth Edition UNIX =====Release: June 1974\\ Platform: PDP-11/40===== Sixth Edition UNIX =====Release: May 1975\\ Platform: PDP-11/45===== Seventh Edition UNIX =====Release: January 1979\\ Platform: PDP-11/70===== Research UNIX 8 =====Release: 1981\\ Platform: VAX-11/780===== AT&T UNIX System III =====Release: Fall 1982\\ Platform: PDP-11/70===== AT&T UNIX System V (PDP-11/70) =====Release: 1983\\ Platform: PDP-11/70===== AT&T UNIX System V (3b2/400) =====Release: 1984\\ Platform: 3b2/400===== 4.3 BSD =====Release: June 1986\\ Platform: MicroVAX3900===== 2.11 BSD =====Release: January 1992\\ Platform: PDP-11/70By issuing the "sac -nar" command, your spirit animal will be changed to the narwhal. "10 PRINT "DO YOU EAT BOOGERS?" + 20 INPUT X + 30 IF X="YES" THEN PRINT "YOU'RE A GOOD MAN, CHARLIE BROWN.": END + 40 IF X="NO" THEN PRINT "WHAT, YOU THINK YOU'RE BETTER THAN ME?" + " $ finger man@arms + Login: man Name: Duncan + Directory: /eternia/heroic_warriors/man Shell: /bin/bashasaurus + No mail. + Plan: Make Orko clean-up the mess he left in my workshop. + ==== Subsection Heading ====**Do not forget to flush the buffer**. If you do, the smell will be //intolerable//.===== Another Section Heading =====The Honeywell 6080 can be induced to perform a samba by pressing the button labeled "Samba" on the operator's console[[#fn1|1]]. That mainframe's forté, however, is the foxtrot([[#fn2|2]]), but the inducement of that particular step is beyond the scope of this tutorial.===== Notes ===== + - Zurgone Vemliat, Mainframe Dancing Habits (Milwaukie: Brewers' Press, 1988), 96. + - Vemliat, Mainframe, 112.===== References =====The Open Group. 2018. “History and Timeline”. http://www.unix.org/what_is_unix/history_timeline.html.Eric Steven Raymond. 2003. “Origins and History of Unix, 1969-1995”. The Art of Unix Programming. http://www.catb.org/esr/writings/taoup/html/ch02s01.html.Ken Thompson and Dennis M. Ritchie. 1971. UNIX Programmer's Manual. Bell Labs. https://www.bell-labs.com/usr/dmr/www/1stEdman.html.Unix Heritage Wiki. 2015. “PDP-7 Unix”. https://wiki.tuhs.org/doku.php?id=systems:pdp7_unixWikipedia. 2018. “History of Unix”. https://en.wikipedia.org/wiki/History_of_Unix. $Id: unix50th.html,v 1.12 2019/07/12 15:52:37 smj Exp $ \ No newline at end of file diff --git a/dump/unx.html.docuwiki b/dump/unx.html.docuwiki new file mode 100644 index 0000000..1f3d2e0 --- /dev/null +++ b/dump/unx.html.docuwiki @@ -0,0 +1,66 @@ +[[node1.html| {{../img/latex2html/next.png?37x24|next}}]] {{../img/latex2html/up_g.png?26x24|up}} {{../img/latex2html/prev_g.png?63x24|previous}} [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node1.html|Contents]]   ** [[node1.html|Contents]]**\\ \\ + +====== Introduction to Unix & SDF ====== + +**[[../contacting/|Gene Michael Stover]]** + +**created Saturday, 2003 December 6 December \\ updated Sunday, 2005 May 8** + +//Copyright © 2003, 2004, 2005 by Gene Michael Stover. All rights reserved. Permission to copy, store, & view this document unmodified & in its entirety is granted.// + +\\ + +---- + + * [[node1.html|Contents]] + * [[node2.html|1. To Do]] + * [[node3.html|2. Introduction]] + * [[node3.html#SECTION00310000000000000000|2.1 What to read first]]\\ + * [[node4.html|3. What is Unix?]] + * [[node4.html#SECTION00410000000000000000|3.1 Short Answer]] + * [[node4.html#SECTION00420000000000000000|3.2 Long Answer]] + * [[node4.html#SECTION00421000000000000000|3.2.1 My Opinion]] + * [[node4.html#SECTION00422000000000000000|3.2.2 Another Opinion]]\\ + * [[node5.html|4. Some Basic Commands]] + * [[node5.html#SECTION00510000000000000000|4.1 The Command Line Shell]] + * [[node5.html#SECTION00520000000000000000|4.2 Listing Files]] + * [[node5.html#SECTION00530000000000000000|4.3 Moving Around the File System]] + * [[node5.html#SECTION00540000000000000000|4.4 The VI Cursor Commands]] + * [[node5.html#SECTION00550000000000000000|4.5 E-mail]] + * [[node5.html#SECTION00551000000000000000|4.5.1 mutt]] + * [[node5.html#SECTION00552000000000000000|4.5.2 Graphical E-mail Readers]] + * [[node5.html#SECTION00553000000000000000|4.5.3 My Own E-mail]] + * [[node5.html#SECTION00560000000000000000|4.6 Viewing Files]] + * [[node5.html#SECTION00570000000000000000|4.7 Surf the Web]] + * [[node5.html#SECTION00580000000000000000|4.8 Upload & Download]] + * [[node5.html#SECTION00581000000000000000|4.8.1 FTP]] + * [[node5.html#SECTION00582000000000000000|4.8.2 scp]] + * [[node5.html#SECTION00583000000000000000|4.8.3 rcp]] + * [[node5.html#SECTION00584000000000000000|4.8.4 When FTP Doesn't Work]] + * [[node5.html#SECTION00590000000000000000|4.9 Editing Files]]\\ + * [[node6.html|5. Learning More]] + * [[node6.html#SECTION00610000000000000000|5.1 The Man]] + * [[node6.html#SECTION00611000000000000000|5.1.1 The man is for real]] + * [[node6.html#SECTION00620000000000000000|5.2 Gnu info]] + * [[node6.html#SECTION00630000000000000000|5.3 Books]] + * [[node6.html#SECTION00640000000000000000|5.4 Folklore]]\\ + * [[node7.html|6. Super Dimension Fortress]] + * [[node7.html#SECTION00710000000000000000|6.1 Getting Information on SDF]] + * [[node7.html#SECTION00720000000000000000|6.2 COM Mode]] + * [[node7.html#SECTION00721000000000000000|6.2.1 COM Commands Discussion]] + * [[node7.html#SECTION00722000000000000000|6.2.2 COM Session Example]] + * [[node7.html#SECTION00723000000000000000|6.2.3 What to Do if You Are Caught in the Newbie Loop]] + * [[node7.html#SECTION00724000000000000000|6.2.4 COM History]] + * [[node7.html#SECTION00730000000000000000|6.3 Bulletin Board]]\\ + * [[node8.html|7. Programming]] + * [[node8.html#SECTION00810000000000000000|7.1 Language]] + * [[node8.html#SECTION00820000000000000000|7.2 Languages on SDF]] + * [[node8.html#SECTION00830000000000000000|7.3 Theory]]\\ + * [[node9.html|8. Hacking]] + * [[node10.html|9. Meta]] + * [[node11.html|Bibliography]] + +\\ + +---- + Gene Michael Stover 2005-07-07 \ No newline at end of file diff --git a/dump/userbins.html.docuwiki b/dump/userbins.html.docuwiki new file mode 100644 index 0000000..c34ebb3 --- /dev/null +++ b/dump/userbins.html.docuwiki @@ -0,0 +1,14 @@ +SDF will be using both amd64 and alpha architectures for the next several years, and other CPU types may be added as well. Those who have their own compiled binaries in their home directory are advised to make two separate bin directories, one for alpha, one for amd64, and to populate them with programs compiled on the respective architectures. You can then use '"uname -m"' to determine the CPU type of your current host when logging in and update your $PATH appropriately. + +For example, something as simple as: + + case `uname -m` in + alpha) export PATH=$PATH:$HOME/alpha_bin ;; + amd64) export PATH=$PATH:$HOME/amd64_bin ;; + esac + +could be added to your .profile or to any script that you may need to run from cron (MetaARPA/sverige users only). Invoking one of your compiled binaries will then always result in the correct executable being run. + +---- + +$Id: userbins.html,v 1.2 2010/05/27 18:34:52 jwodder Exp $ \ No newline at end of file diff --git a/dump/uucp.html.docuwiki b/dump/uucp.html.docuwiki new file mode 100644 index 0000000..7f2210e --- /dev/null +++ b/dump/uucp.html.docuwiki @@ -0,0 +1,179 @@ +====== Doing UUCP with SDF ====== + +**UUCP** (Unix-to-Unix Copy) is a great way to get your mail and news, even without a stable or static Internet connection. + + * [[#section-1|Request a login]] + * [[#section-2|UUCP node configuration]] + * [[#taylor-config|Taylor UUCP configuration]] + * [[#hdb-config|HDB UUCP configuration]] + * [[#poll-sdf|Poll SDF]] + * [[#testing|Test settings]] + * [[#mta|MTA configuration]] + * [[#postfix|Postfix UUCP configuration]] + * [[#sendmail|Sendmail UUCP configuration]] + * [[#notes|Notes]] + +===== Request a login ===== + + * Know your uuname (run "uname -n") + * Post a message on "<REQUEST>" + +===== UUCP Node Configuration ===== + +==== Taylor UUCP ==== + +Configuration files are typically located in "/etc/uucp", but the location varies from OS to OS. In FreeBSD if you installed "freebsd-uucp" from ports the configuration files will be at "/usr/local/etc/uucp". + +The main file you need to edit is the sys file. A sample of the "sys" config file you could use is as follows: + + " + system sdf + alias mx + address uucp.sdf.org + call-login Uusername + call-password Password + time Any + port TCP + chat "" \d\d\r\c login: \d\L word: \P + protocol t + myname your_uname + " + +You will also need a "config" file. + + " + nodename uyour_name + spool /var/spool/uucp + pubdir /var/spool/uucppublic + logfile /var/log/uucp/Log + statfile /var/log/uucp/Stats # The UUCP statistics file + debugfile /var/log/uucp/Debug # The UUCP debugging file + " + +And a "port" file. + + " + port TCP + type tcp + " + +==== HDB UUCP ==== + +TODO ... + +===== How to POLL SDF ===== + +You can poll SDF manually by running "uucico sdf", or more likely for long term useage a cron job running every so often. + +An example crontab line for polling every 15 minutes would be: + + " */15 * * * * /usr/sbin/uucico -s sdf" + +===== Testing your config ===== + + "uucico -s sdf + uulog -10" + +Check the log; output like this is a good sign: + + uucico sdf - (2013-08-09 01:00:05.613221) Login successful + uucico sdf - (2013-08-09 01:00:07.80 3221) Handshake successful (protocol 't') + uucico sdf - (2013-08-09 01:00:07.98 3221) Call complete (2 seconds 0 bytes 0 bps) + +===== MTA Configuration ===== + +==== Postfix UUCP settings ==== + +"/etc/mailname" + + "uucp_name.natverk.org" + +"/etc/postfix/main.cf" + + " + myhostname = uucp_name.natverk.org + alias_maps = hash:/etc/aliases + alias_database = hash:/etc/aliases + myorigin = /etc/mailname + mydestination = uucp_name.natverk.org, uucp_name, uucp_name.UUCP.user, host, localhost.localdomain, localhost + default_transport = uucp + relayhost = sdf + relay_transport = uucp + mynetworks = 127.0.0.0/8 + mailbox_size_limit = 0 + recipient_delimiter = + + inet_interfaces = loopback-only + inet_protocols = ipv4 + " + +==== Sendmail UUCP settings ==== + +"/etc/mail/sendmail.mc" + + " + divert(-1) + divert(0) + VERSIONID(`$patito.ninja uucp sdf 20150425 ecelis$') + OSTYPE(freebsd6) + DOMAIN(generic) + + FEATURE(access_db, `hash -o -T /etc/mail/access') + FEATURE(blacklist_recipients) + FEATURE(local_lmtp) + FEATURE(mailertable, `hash -o /etc/mail/mailertable') + dnl UUCP + FEATURE(promiscuous_relay)dnl + FEATURE(accept_unresolvable_domains)dnl + FEATURE(nocanonify) + FEATURE(uucpdomain) + define(`SMART_HOST', `uucp-dom:sdf') + + dnl Uncomment the first line to change the location of the default + dnl /etc/mail/local-host-names and comment out the second line. + dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw') + define(`confCW_FILE', `-o /etc/mail/local-host-names') + + dnl Enable for both IPv4 and IPv6 (optional) + DAEMON_OPTIONS(`Name=IPv4, Family=inet') + DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O') + + define(`confBIND_OPTS', `WorkAroundBrokenAAAA') + define(`confNO_RCPT_ACTION', `add-to-undisclosed') + define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy') + dnl UUCP + define(`UUCP_RELAY', uucp.sdf.org) + define(`UUCP_MAX_SIZE', 200000) + define(`UUCP_MAILER_PATH', `/usr/local/bin/uux')dnl + define(`confDONT_PROBE_INTERFACES') + + MAILER(local) + MAILER(smtp) + dnl UUCP + MAILER(uucp)dnl + Cw uucp_name.UUCP.user + Cw uucp_name.UUCP + divert(-1) + " + +"/etc/mail/local-host-names" + + " + uucp_name.natverk.org + uucp_name + uucp_name.UUCP.user + host + localhost.localdomain + localhost + " + +"/etc/mail/mailertable" + + " + sdf.org uucp-dom:sdf + .sdf.org uucp-dom:sdf + .UUCP local: + .UUCP.user local: + . uucp-dom: + " + +$Id: uucp.html,v 1.8 2015/04/30 00:28:01 ecelis Exp $ \ No newline at end of file diff --git a/dump/vacation_auto-responder.html.docuwiki b/dump/vacation_auto-responder.html.docuwiki new file mode 100644 index 0000000..b55e926 --- /dev/null +++ b/dump/vacation_auto-responder.html.docuwiki @@ -0,0 +1,154 @@ +===== Setting up the vacation(1) email auto-responder on SDF: ===== + +==== What: ==== + +The vacation(1) tool allows users to schedule automated email replies, useful for letting people know when you're away for a while. + +==== Prerequisites: ==== + + * SDF ARPA membership or higher + * public key authentication (only for Meta Array users) + +==== How vacation(1) works: ==== + +The tool uses two files - "$HOME/.vacation.msg" and "$HOME/.vacation.db" by default - to a) issue an auto-reply message, and b) track who and when a sender was replied to. vacation(1) is usually called via a user's "$HOME/.forward" file, but as the tool can read from stdin(4) there are other possibilities, ie. in conjunction with procmail(1). + +=== Basic setup procedure: === + + * initialize the DB file; initialization creates the DB file if it doesn't exist and sets/resets the vacation interval timer - the period it waits to resend an auto-reply. The default interval is one (1) week; to specify an different interval use "'-t nu'", where "n" is an integer and "u" is "s", "m", "h", "d", or "w" (seconds, minutes, hours, days, weeks; week is default). If "n" = 0 and "u" is omitted, a notice is sent for every message. If "n" is set to a very large number, say 9999, no sender will ever receive more than one notice. + * create the auto-reply message. The message needs to be a routable email file with a header and body section. A "$SUBJECT" variable is supported for a more customized response. + * edit the "$HOME/.forward" file to pipe mail through vacation(1); it's good idea to test the configuration beforehand using the vacation(1) "'-d'" debug option. + +==== Some examples: ==== + +=== ex.1) minimal setup using defaults: === + + % vacation -I # initialize DB; defaults to 30 days + + % cat > $HOME/.vacation.msg # create minimal auto-reply message + From: sdf_user@sdf.org + Subject: Vacation notice + Precedence: bulk + + I will be out of the office until next week. + ^D + + % cat > $HOME/test.msg # create test message for debugging + From frog@mud.bog + To: sdf_user@sdf.org + Subject: Hop on over here + + Check out my new pad! + ^D + + % vacation -d sdf_user < test.msg # test w/o actually replying + => + To: frog@mud.bog + Auto-Submitted: auto-replied + From: sdf_user@sdf.org + Subject: Vacation notice + Precedence: bulk + + I will be out of the office until next week. + + note: if executed as-is more than once there won't be any output; use + the '-t0' option to override the default 30 day response time. + + % cat > $HOME/.forward # retain a copy & pipe to vacation(1) + \sdf_user, "|/usr/bin/vacation sdf_user" + ^D + +=== ex.2) customized auto-reply sent every 2 days: === + + % vacation -I -t 2d # initialize DB; set timer to 2 days + % cat > $HOME/.vacation.msg # create custom auto-reply message + From: sdf_user@sdf.org + Subject: Out of the office + Delivered-By: vacation(1) on SDF + Precedence: bulk + + I will be out of the office until next week; please contact + George about $SUBJECT if it's urgent. + ^D + + % cat > $HOME/test2.msg # create test message for debugging + From frog@mud.bog + To: sdf_user@sdf.org + Subject: the penski account + + Can you get this done this week? + ^D + + % vacation -d sdf_user < test2.msg # test w/o actually replying + => + To: frog@mud.bog + Auto-Submitted: auto-replied + From: sdf_user@sdf.org + Subject: Out of the office + Delivered-By: vacation(1) on SDF + Precedence: bulk + + I will be out of the office until next week; please contact + George about the penski account if it's urgent. + + % cat > $HOME/.forward # retain a copy & pipe to vacation(1) + \sdf_user, "|/usr/bin/vacation sdf_user" + ^D + +=== ex.3) SDF Meta Array setup: === + +SDF users who have their mail sent to the Meta Array (host //ma.sdf.org//) will need to use ssh(1) with public key authentication to the SDF Cluster (host //tty//) as vacation(1) is not available natively on the Meta Array. + +Basic setup: + + - setup vacation(1) on the SDF cluster as previously shown + - setup ssh(1) [[http://sdf.org/?tutorials/SSH-SDF#public_key|public key authentication]] to host //tty// + - on //ma.sdf.org// create a test.msg and test things before committing: + sdf_user@ma: cat test.msg | ssh sdf_user@tty "cat - | vacation -d -t0 sdf_user" + => + To: frog@mud.bog + Auto-Submitted: auto-replied + From: sdf_user@ma.sdf.org + Subject: Vacation notice + Precedence: bulk + ... + - edit "$HOME/.forward" on //ma.sdf.org// like so: + # .forward + \sdf_user, "| ssh sdf_user@tty 'cat - | vacation sdf_user' " + +=== ex.4) using vacation(1) with procmail(1): === + +Users of the procmail(1) program probably won't want to disable it just to make use of vacation(1). The following illustrates how to integrate vacation(1) into a typical user's "$HOME/.procmailrc" file; it should be inserted above any "delivery" recipes so all messages are passed through: + + # ~sdf_user/.procmailrc + ... + ## selective vacation(1) auto-responder filter setup: + VACATION_SENDER=`formail -rx "To:"` + VACATION_LIST=$HOME/.vacation.list + VACATION_MSG=$HOME/.vacation.msg + VACATION_DB=$HOME/.vacation.db + + ## Send vacation(1) notification if SENDER is in VACATION_LIST : + :0 c # "c" => keep a copy of msg + ## uncomment next line to do selective notifications + #* ? egrep $VACATION_SENDER $VACATION_LIST + | /usr/bin/vacation -F R -f $VACATION_DB -m $VACATION_MSG sdf_user + +The "$HOME/.vacation.list" is just a simple text file listing those email addresses you want to send notifications to, one per line. If you don't need the functionality just leave the "'egrep'" line commented out. + +Note that "$HOME/.vacation.db" still needs to be initialized since this filter is just a pipe to vacation(1) which does the real processing. + +==== Misc: ==== + + * There is a "pure procmail" filter option that implements much of the vacation(1) functionality; see the procmailex(5) manpage for code. + * Passing the "'-F R'" option to vacation(1) forces checking of the Return-Path: field which can help in some cases. See the vacation(1) manpage for details as well as other options. + * The "$HOME/.vacation.db" file is a hashed Burkeley DB binary file. It can be read somewhat using strings(1); useful for determining who has been auto-replied to: + % strings $HOME/.vacation.db | grep "@" + frog@mud.bog + itchy@bed.bug + +\\ + +---- + +$Id: vacation_auto-responder.html,v 1.4 2014/11/23 00:05:00 jgw Exp $ \ No newline at end of file diff --git a/dump/vcfmw.html.docuwiki b/dump/vcfmw.html.docuwiki new file mode 100644 index 0000000..aeb4785 --- /dev/null +++ b/dump/vcfmw.html.docuwiki @@ -0,0 +1 @@ +$Id: vcfmw.html,v 1.1 2019/08/08 01:40:30 jasmaz Exp $ \ No newline at end of file diff --git a/dump/voip_pstn.html.docuwiki b/dump/voip_pstn.html.docuwiki new file mode 100644 index 0000000..a1389ef --- /dev/null +++ b/dump/voip_pstn.html.docuwiki @@ -0,0 +1,19 @@ +====== Calling the PSTN with SDF VoIP ====== + +You first need to be an ARPA member, which costs $36. It's a one time payment, and then you're an SDF member for life! Then it's just $15/qtr for unlimited calls anywhere in the world. + +Follow the steps on the [[https://sdf.org/?tutorials/sdf_voip|VOIP tutorial page]] to get your SIP account set up with your app/phone of choice. + +==== Calling North America ==== + +Calling North America is easy. You just need to prefix the 10-digit number with a 1. For example: 1 (208) 555-1234 It **does not** need a + in front. This will cause the call to fail. The same thing will happen if you do not have the 1 out front. + +==== Calling internationally ==== + +I have called Europe a few times now. For those of us in North America, we are used to prefixing European numbers with +011 or 011. **You don't need to do this** when calling Europe. For example: + +Calling Norway, country code 47: 47 585 66 972 + +So the country code followed by the 8 digit phone number... Pretty simple! + +$Id: voip_pstn.html,v 1.2 2019/09/29 15:26:06 amrowsell Exp $ \ No newline at end of file diff --git a/dump/windows_telnet.html.docuwiki b/dump/windows_telnet.html.docuwiki new file mode 100644 index 0000000..8b60f5f --- /dev/null +++ b/dump/windows_telnet.html.docuwiki @@ -0,0 +1,19 @@ +====== Using Micorosoft Windows (tm) telnet ====== + +===== 1. Escape Character back to Telnet ===== + +To escape back into Telnet, hold down Ctrl and hit the ] key: + +{{tutorials/images/escape1.jpg|Escape}} + +===== 2. unset crlf ===== + +Type in "unset crlf" and hit Enter + +{{tutorials/images/unset1.jpg|unset crlf}} + +===== 3. Return to SDF ===== + +Hit Enter once more to return to SDF. + +{{tutorials/images/login1.jpg|Login}} $Id: windows_telnet.html,v 1.4 2007/05/11 21:46:18 eamonnw Exp $ \ No newline at end of file diff --git a/dump/x11_forwarding.html.docuwiki b/dump/x11_forwarding.html.docuwiki new file mode 100644 index 0000000..89b1784 --- /dev/null +++ b/dump/x11_forwarding.html.docuwiki @@ -0,0 +1,35 @@ +=== Setting up X11 forwarding on SDF === + +=== Contents === + + * [[#ssh|X11 forwarding through ssh ]] + * [[#direct|Sending X11 directly]] + * [[#metaarray|X11 On The MetaArray]] + +//Please note that MetaARPA membership is required to run X11 applications// + +=== X11 forwarding through ssh === + +This should be the preferred method of running X. By tunneling through an existing ssh connection, extra firewall ports or port forwarding is not needed. The traffic is also protected by ssh. Note that this tutorial references //sverige.freeshell.org// however //iceland.freeshell.org// is also available to MetaARPA members and supports X forwarding. + + * Install and run an X server such as [[http://sourceforge.net/projects/xming/|Xming]]. + * ssh to sverige.freeshell.org with "ssh -X //user//@sverige.freeshell.org". + * **Note:** If you see an error just after connecting that //xauth// is missing, try adding an option to the ssh command: "ssh -o XAuthLocation=`which xauth` -X //user//@sverige.freeshell.org". + * [[http://www.chiark.greenend.org.uk/~sgtatham/putty/|Putty]] users should use sverige.freeshell.org as the Host Name and change the Port to 443: {{/tutorials/images/puttyx1.png}} + * Then click on the little "+" besides "SSH" on the left list, click on "X11" and tick the "Enable X11 forwarding" box: {{/tutorials/images/puttyx2.png}} + * Click Open, login then run //xeyes// and play + * Running "xhost +localhost" on the local machine may be needed. + +=== Direct X11 === + +The advantage of sending X11 traffic directly is performance (screen updates) should be slightly faster because the data is not encrypted first. The disadvantage of sending X11 traffic directly is the data is not encrypted first. The X client will send the traffic directly to the local X server, so care must be taken to open up firewalls and forward the ports 6000/TCP - 6063/TCP as necessary. + +== __On your side__: == + + * Open an xterm on your computer + * Run '//xhost +//' to enable server access + * Run '//ssh -X -p443 userid@sverige.sdf.org//' where 'userid' is your SDF user id== __On the SDF side__: == + * Run //export DISPLAY=`echo $SSH_CLIENT|awk '{print $1}'`:0.0// + * Run //xeyes// and play === X11 On The MetaArray === The above methods no longer seem to be working, but you can still use x11 via SSH on the MetaArray. The command to do this is "ssh -Y //userid//@ma.sdf.org", where //userid// is your SDF user id. + ---- + $Id: x11_forwarding.html,v 1.9 2016/04/19 20:53:21 sethkush Exp $ \ No newline at end of file diff --git a/dump/xscrabble.html.docuwiki b/dump/xscrabble.html.docuwiki new file mode 100644 index 0000000..52cfc12 --- /dev/null +++ b/dump/xscrabble.html.docuwiki @@ -0,0 +1,95 @@ +=== Contents === + + * [[#introduction|Introduction]] + * [[#everybody|Steps for Everybody]] + * [[#configuring|Configuring]] + * [[#post|After the Game Steps]] + * [[#tips|Tips]] + +=== [[|Introduction: xscrabble at SDF]] === + +xscrabble is scrabble over X11. This will cover the basic steps on setting up xscrabble over SSH on SDF. + +xscrabble is an X11 application, and requires the [[http://sdf.org/?join#meta|MetaARPA membership]] level for running X applications on SDF. + +xscrabble is started by the Dungeon Master (DM). The DM will also be a player. The DM controls how many players participate, and configures the parameters of the game. Players who wish to join a game must allow the DM to send an X client to the local X server (the X server that is running on the player's local machine). + +**Players must be aware of this, and the potential nuisance/safety issues.** Like so many things in life, play with people you trust. + +The instructions below will cover the general steps for the players and the DM to begin playing xscrabble. + +=== [[|Everybody do this first]] === + + * The DM and players must all be logged into the same machine. + * The DM and players must have the correct [[http://sdf.org/?join#meta|membership]] to run X clients on SDF. + * Working X-over-ssh setup; please test this by running xterm or xeyes first. For help, please read this [[http://sdf.org/?tutorials/x11_forwarding#ssh|tutorial]] or ask in [[http://sdf.org/?tutorials/comnotirc|com]] or bboard. + * Check the DISPLAY environment variable set by ssh: "echo $DISPLAY". The output will look like + iceland:wliao$ echo $DISPLAY + localhost:10.0 + If this value is not set automatically, then something may not be configured correctly. + +=== [[|Configuring]] === + +== Players == + + * Log into the designated SDF machine. This should be the server where the DM will be running the game from. + * From the command line, run this command to generate the magic cookie information: "myxauth". The output will look like + iceland:wliao$ myxauth + iceland/unix:13 MIT-MAGIC-COOKIE-1 155866ddc1ec4439ca6b6b10c211369e + * Please note the display name of the cookie information. The display name will be the first white space separated field in the cookie information ("iceland/unix:10"). + * Send the cookie information to the DM. Please take care to privately send this information. This is the information that allows the DM to start X clients on the player's X server + +== DM Add Access == + + * Log into the designated SDF machine. This should be the server where the DM told everybody else to log into. + * For every player, collect their magic cookie information. Please take care to track which player corresponds to which magic cookie. + * Also note the display field in the cookie information. The display field is the first white space separated field in the cookie information ("iceland/unix:10") + * Start the xauth command: "xauth". This will drop the DM into a subshell. + * For each magic cookie, add the cookie information: "add iceland/unix:10 MIT-MAGIC-COOKIE-1 fd61840e6ae37fbccc74ac8dfa7ce1fd". + iceland:wliao$ xauth + Using authority file /arpa/tz/w/wliao/.Xauthority + xauth> add iceland/unix:10 MIT-MAGIC-COOKIE-1 fd61840e6ae37fbccc74ac8dfa7ce1fd + xauth> add iceland/unix:13 MIT-MAGIC-COOKIE-1 41660822631aa698c4fe791d6b4fbd7f + xauth> + * When complete, use exit to save the data and exit xauth. + iceland:wliao$ xauth + Using authority file /arpa/tz/w/wliao/.Xauthority + xauth> add iceland/unix:10 MIT-MAGIC-COOKIE-1 fd61840e6ae37fbccc74ac8dfa7ce1fd + xauth> add iceland/unix:13 MIT-MAGIC-COOKIE-1 41660822631aa698c4fe791d6b4fbd7f + xauth> exit + Writing authority file /arpa/tz/w/wliao/.Xauthority + +== DM Add Players == + + * Start xscrabble: "xscrabble &" + * Select the number of players.{{tutorials/images/xscrabble/xscrabble_players.png}} + * For each player, add the player's name and the player's display. The display will be "localhost://n//.0" where //n// corresponds to the number in the display field of the cookie information.For example, player 1 has a cookie information where the display field is "iceland/unix://10//". The n for display will be 10. If the display number is m.n (eg, iceland/unix:10.1), please use m.n in the display instead.{{tutorials/images/xscrabble/xscrabble_name_display.png}}Do not forget to add the DM's display as well + * Click "start game" to start the game + +=== [[|After the game]] === + +After the game is complete, the players should revoke the DM's access to the X server. Players should run "xauth remove iceland/unix:12" where //iceland/unix:12// is the display name of the cookie information. + +DMs should remove their access to the player's X server by running the same command for every cookie information they received: "xauth remove iceland/unix:12". + +Both players and DM can remove the xauth file to ensure the revocation: "rm ~/.Xauthority". The xuath information will be recreated when logging back into SDF. + +=== [[|Tips]] === + + * The various windows have "Dismiss" buttons. Use the buttons! If the window is closed, then the game will end. + * At the end of the game, the high score board will only appear for the DM. Of course, all players may examine the score board at any time through the "Extras Menu". + * screen users who reattach, please note the DISPLAY from //within// screen may be invalid. Remember to look at the DISPLAY variable (and thus, the myxauth command) outside of screen. + * Remember to take screenshots as a trophy of your conquest. This one-liner will take a screenshot of the entire screen and save it to a file named war_trophy.png: + iceland:/tmp/wl$ xwd -root | /usr/pkg/bin/xwdtopnm | /usr/pkg/bin/pnmtopng > war_trophy.png + This command may take a while to run. + * For the impatient, the actual game may be started by hand. jgw says: + --- jgw@iceland ------------------------------------------- + you can also call xscrab directly: + XSCRAB='xscrab -players 1 -time 0 -d1 ${DISPLAY} -t1 0' + ssh -24Y -c blowfish -p 443 jgw@miku.sdf.org ${XSCRAB} + --- jgw@iceland ------------------------------------------- + +This tutorial is far from complete. Wanna make it better? Edit it! + +---- +$Id: xscrabble.html,v 1.12 2014/09/11 09:01:04 grobe0ba Exp $ \ No newline at end of file diff --git a/site-tutorials/FAQ/BASICS/01 b/site-tutorials/FAQ/BASICS/01 new file mode 100755 index 0000000..3c3a7cb --- /dev/null +++ b/site-tutorials/FAQ/BASICS/01 @@ -0,0 +1,55 @@ +[01] WHAT IS SDF? (QUICK SUMMARY) + + Welcome to the only all 64bit public access supercomputing center! + + The Super Dimension Fortress is a networked community of free software + authors, teachers, students, researchers, hobbyists, enthusiasts and + the blind. It is operated as a federally recognised non-profit 501(c)7 + and is supported by its members. + + Our mission is to provide remotely accessible computing facilities for + the advancement of public education, cultural enrichment, scientific + research and recreation. Members can interact electronically with each + other regardless of their location using passive or interactive forums. + Further purposes include the recreational exchange of information + concerning the Liberal and Fine Arts. + + Members have access to games, email, usenet, chat, bboard, gopherspace, + webspace, programming utilities, archivers, browsers, and more. The SDF + community is made up of caring, highly skilled people who operate behind + the scenes and in the underground to maintain a non-commercial INTERNET. + + While we did initially start out on a single computer in 1987, the + SDF is now a network of 8 64bit enterprise class servers running + NetBSD realising a combined processing power of over 21.1 GFLOPS! + + Our mass storage configuration is comprised of 60 spindles of mostly + 36.4gb and a few 9.1gb SCA LVD SCSI drives using DIGITAL Storage Works + hotswap disk arrays. We have roughly 2 terabytes of storage online. + + We are networked via two sprintlink T1s and a T1 to savvis. We do BGP + peering and try out best to load balance between the links via a CISCO + 7xxx router/switch. We are using a 'swamp' class C 192.94.73 which has + basically been assigned to our site admin along with his class C back + when you could request one from the INTERNIC without much fuss. + + The userbase is comprised of two major user groups: USERS and ARPA + + 'user' accounts are free and offer many features. + 'arpa' accounts are permanent members and can vote on SDF features. + + Supplemental ARPA privilidges include: + + MetaARPA ('trusted' member privs (cron, tcp port forwarding)) + TWEAK (tweakable and additional disk quota) + VPM (Virtual POP3 mailboxes) + DNS (Domain Name Service) + DBA (MySQL database access) + VHOST (Virtual Web hosting - includes VPM, DNS and DBA) + SERVER (Server process (mud, nameserver, et cetera)) + MDNS (Dynamic DNS) + MLIST (Mailing List service) + DIALUP (over 10,000 numbers in the USA + Canada) + + Sponsorship information can be found on our website or in the FAQ. + diff --git a/site-tutorials/FAQ/BASICS/02 b/site-tutorials/FAQ/BASICS/02 new file mode 100755 index 0000000..851e396 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/02 @@ -0,0 +1,468 @@ +[02] WHAT ARE SDF'S ORIGINS AND HISTORY? (LONG SUMMARY) + + (For related information on SDF and the history behind this public + access UNIX system, read "The HACKER CRACKDOWN" by Bruce Sterling) + + 1987 - SDF was originally an APPLE ][e microcomputer running + "Magic City Micro-BBS" customized by Ted Uhlemann (iczer). The + system was run as a Japanese Anime SIG and was known as the SDF-1. + + The SDF-1 at that time was just your typical BBS: One phone line + plugged into a 1200bps modem, 128 kilo-nibbles of core and two flexible + disk drives with 280 kilo-nibbles storage capacity each. + + Stephen Jones (smj) helped locate a 5 megabyte mass storage unit for + the micro. Ted was only able to get about 3 megabytes out of the disk. + By adding a 2400bps modem and this new mass storage unit, SDF's users + noticed a substantial performance increase. + + In 1989 Ted and Stephen began running SDF as a CITADEL BBS. It was + the filesystem like structure of the Bulletin Board that piqued their + interest. Both the Apple ][e and the IBM PC XT served logins. + + Ted, Stephen and Daniel Finster (df) had been dialing into a system + run by an AT&T employee named Charlie Boykin. Charlie's system + was called The UNIX Connection (AKA attctc or killer.dallas.tx.us). + Charlie's public access UNIX was such a breath of fresh air compared + to restrictive BBS menus that when killer was abruptly shutdown (20-Feb-90) + during Operation SunDevil, it was greatly missed. At that point the three + decided they would form a replacement for killer. + + 16-Jun-91 - SDF.ORG + + At this time UNIX had been runable on i386 machines for a couple of + years. Ted took on the responsbility of setting up the machine and + contacting UUCP network administrators around town to get UUCP mail + going. After trying to use an inexpensive UNIX clone (COHERENT) + which turned out to be a CROCK, Ted decided to go with Kodak's + Interactive release of UNIX SYSTEM 5 r3.2 1.0. The caseless + computer ran laid across Ted's desk. + + 01-Aug-91 - SDF.ORG + + Interest in the public access UNIX system began to grow and it was + decided that the system be moved to another location so that more + phone lines (4) could be installed. Richard Losey (rlosey) contributed + to the project so that an AST four port board could be purchased to + support the 4 - 2400 dialups. There was also a sidewalk sale booth + which was mostly comprised of donated goods and half of Aaron Schmiedel's + (aaron) garage. From that point, SDF grew. + + Summer-92 + + Ted and Daniel talked with David Lippke, a network manager at the + Unversity of Texas at Dallas (UTD), about an ARPANET connection for + the SDF. By then SDF had been running as a UNIX system for about a + year. The idea was considered by David, but eventually turned into + a proposed commercial venture. By the Fall of 1992 Ted, Daniel and + three SDF users Steven Parker (sp), Steve Linebarger (srl) and + Bill Middleton (wjm) had left SDF to form Texas Metronet, Dallas' + first (if not in Texas) commercial internet service provider. Stephen + remained behind continuing to administer to the SDF. + + 04-Aug-93 + + With the help of Charlie Boykin(SMU) and Rich Andrews(SMU), Stephen + was able to replace the INTEL based PC UNIX with a hardworking and + reliable WE32100 based minicomputer designed by AT&T (the 3B2). Brian + Rogers (brogers) helped Stephen install 9 - 14.4kbps telephone lines. + + At this time, SDF's configuration was as follows: + + uname Machine Description + ------------------------------------------------------------------ + sdf 3b2/400 4 Megs Memory, 2(72) Meg disk + sdf1 3b2/400 4 Megs Memory, 2(72) Meg disk SCSI HA 338 Meg disk + sdf2 3b2/310 4 Megs Memory, 1(72) Meg disk + + sdf handled dialup access, sdf1 handled UUCP and sdf2 handled USENET + news processing. The machine used RFS (Remote File Sharing) over a + STARLAN network to share data. + + Spring-94 + + 4 3B2/400 machines were purchased from South Carolina State University. + Two were put in immediate service along with the original 3B2/310 system. + The machines were networked over a 1 megabit local area network (STARLAN) + and shared resources to give the illusion of one machine. Also purchased + were several terminals and an AT&T UNIX PC 7300 called 'minmei'. + + 04-Aug-95 + + The system is made up of one AT&T 3b2/400 and one AT&T 3b2/310. + The 310 has a SCSI BUS and handles the majority of USENET processing. + The 310's SCSI BUS has an EMULEX ESDI to SCSI converter which gives + support to 4 ESDI drives and only takes up one SCSI ID. By using this, + the SCSI BUS could very easily support 24 hard drives. The 400 handles + all user sessions. When you dialup into SDF you are connected to + the 400. The 310 and the 400 are on a STARLAN network. STARLAN is a + local area network which can be 1mbit or 10mbit in speed. The two + machines share disks through the Remote File Sharing package. When + you read USENET news on the 400 (sdf) it is actually reading the + articles over the network from the 310 (news) machine. + + 03-Mar-96 ANONBBS + + Ted and Stephen got together very late one night and decided to start a + short lived project they called 'ANONBBS'. ANONBBS was just as it sounds, + it ran on an i386sx25 toshiba laptop with 60mb of storage and 10mb of RAM + under Digital Research DOS 5.0 .. The entire BBS was written in TELIX SALT + with an extremely functional, but minimalistic interface that Ted and + Stephen literally hashed out over tacos and nachos at 3am in a Taco Cabana. + The asethetic proved extremely useful and the system became busy. Users + would type up messages on their machines and then upload them to the + 'C:\BBOARD>' directory. Files were stored in 'C:\XFER>' .. some users + signed their handles on messages while others just remained anonymous. + It was an experiment to see what people would do in an environment where + they had completely anonyomity and control. + + + 01-May-96 SDF + + Lucent Technologies/AT&T Bell Laboratories donated a 3b2/500 with an + XM (disk) cabinet that replaced the older setup. Special thanks to + Michael Dolan (Lucent) and John Marinho (AT&T) for their help. + + AT&T 3B2 SYSTEM CONFIGURATION: Memory size: 8 Megabytes + System Peripherals: + + Device Name Subdevices Extended Subdevices + + SBD + Floppy Disk + SCSI + (S.E. BUS ID0) + SD01 ID1 + 155 Megabyte Disk ID0 + ST01 ID2 + Tape ID0 + SD01 ID5 + 155 Megabyte Disk ID0 + 155 Megabyte Disk ID1 + 155 Megabyte Disk ID2 + NI + EPORTS + MAU + VCACHE + + SBD System Board. This board contains the 3b2's main processor. + It is possible to have up to 3 processor boards in this machine. + SCSI Small Computer Systems Interface. This BUS allows the system to + support up to 24 storage devices. + NI Network Interface. This feature card is a 10base5 interface which + support ETHERNET protocol. + EPORTS Enhanced PORTS. This feature card supports 8 38400bps serial + connections. + MAU Mathematics Accelerator UNIT. + VCACHE This board aides the processor by CACHE'ing commonly used + 3b2/32200 32100 processor instructions. + + 30-Mar-97 + + Aaron Schmiedel (aaron) donated several large disk drives and a + higher capacity tape backup system. The system was reconfigured + to take advantage of the new storage resources. + + 24-Nov-97 + + Vincent Helliwell (thecave) donated a 2.1 gig SCSI drive which was used + to replace the old /udd (user directory directory) filesystem and allow + the last remaining 5.25" full height drive to be decommissioned. + + 15-Dec-97 + + A new server built almost entirely out of user donated parts was configured + and installed. The initial plan was for it to run NetBSD (and it just + may someday) but for the interim it runs a highly modified GNU system + with a slightly modified Linux kernel. Donated hardware that makes up + a portion of this machine: + + P166+ CPU and 16megs RAM (aaron) + 1.0 gig HD (cjc) (Traded for old SDF SCSI drives) + 170 meg HD (iczer) + 210 meg HD (wmills) + case w/ PS, motherboard, cabling, ethernet and video adapters (smj) + + For the moment the machine spools news and serves NNTP connections to + both SDF hosted users and SLIP/PPP dialup users. It also batches news + up for UUCP hosts and for outbound local posts. X windows has been + installed on it along with CMU Common Lisp system for UNIX so that we + can begin porting tons of SDF specific programs to LISP. + + 24-May-99 + + The domain "freeshell.org" was registered as an alias for sdf.org + as a marketing strategy to help sdf grow. Since the "arpa" vote that + occured early in this year, SDF's amount sponsorship as grown. We are + hoping by making this general marketing step that sdf can continue to + grow and make a more obvious name for itself. + + 23-Aug-99 + + A secondary server 'sdf-2' is now acting as the main http server. It is + a PII/450MHz with 256mb of RAM and about 18 gigs of hard drive space. + it has a 13 gig file system which it sdf mounts so that shell users can + setup their homepages without having to login to the other machine. + + 01-Jan-00 + + System Configuration: + + 'sdf' P233, 94mb of RAM, 20gig mixed mass storage (EIDE/SCSI) + linux 2.0.37 kernel (modified), GNU software and 'linux' utilities + role: shell server, primary dns, secondary http server, mail server, + pop3 server, ftp server. + + 'sdf-2' PII/450MHz, 256mb of RAM, 18gigs mass storage (EIDE) + linux 2.2.14 kernel (modified), GNU software and 'linux' utilities + role: http server, secondary dns (others will migrate) + + Network connectivity: DSL 1.4mb/768kb, 10mbit ethernet, 2b+d ISDN + + 11-May-00 + + 'sdf' as a P233 has been decomissioned along with support hardware. + + 'sdf' AMD Athlon 750MHz, 384mb of RAM 36gig mixed mass storage (UDMA/SCSI) + linux 2.0.36 kernel (modified), GNU software and 'linux' utilities + same roles. + + 31-Oct-00 + + 'sdf-2' now has two 30 gigabyte disks and has taken over as the primary + mail server for 'sdf.org'. It handles incoming and outgoing + SMTP/POP3 requests as well as primary webservice and minor functions. + + 'sdf-1' role is to primary that of a shell server. Mail can be sent + outgoing from it and ~login webpages will still be served. This sort + of modification should help greatly with uptime and load balancing. + + 15-May-01 + + Major hardware failure (sdf-2, now called 'otaku') basically overheated + and fried its motherboard when its powersupply fan died. On top of + that, SDF's root disk (main drive) decided to give up and die. This is + the third disk we've lost this year. Crappy consumer hardware. + + 09-Aug-01 + , , + /( )` + \ \___ / | + BYE BYE LEENOX! /- _ `-/ ' + BYE BYE x86! (/\/ \ \ /\ + / / | ` \ + | ) / | + `-^--'`< ' + ? (_.) ) / + _o) `.__ ` / + /\\ __ `-----' / + (O_ _\/V / \---. __ / __ \ + (o< //\ \\/---|====O)))==) \) /==== + //\ V|/_ (._ (o_/\ >-)---' `--' `.__,' \ + V_/_ | /\\<--)-> , | | + (:_ (~< //\ \_/_\/ \ / + / /\ //\ V_/_ (._ ` ______( (_ / \_____ + \/_/_ (o_ V\/_ (/) , ,' ,-----' | \ + (\) (o_ (-< . `--{__________) (smj) \/ + (O_ >O) //\ (~< //\.- (fl) + / (\) V_/_ _|_ V\/_ . + //\ //L\\ + Oo.V|/_ V\_/V + - - + + 10-Aug-01 - The minicomputers return! + + System Configuration: + + 'sdf' Dec ALPHA 5305, 1024mb of RAM, 55gig SCA SCSI-2 UW + NetBSD 1.5.1 performance tuned and hacks + role: 'users' shell server, primary dns, secondary http server, + anonymous ftp server + + 'otaku' Dec ALPHA 5305, 1024mb of RAM, 60gig SCA SCSI-2 UW + NetBSD 1.5.1 performance tuned and hacks + role: 'arpa' shell server, secondary dns, primary http server + + 00-SEP-01 THE FATE OF THE OLD 3B2/500 THAT WAS SDF + + I just learned what happened to the 3B2/500 I lent to user '*****' who had + hopes to buy it when he got money. It came into his possession in late + 1997 or 1998 when I decided to try to run SDF on x86 with linux (the + biggest mistake I've made, and I apologise). I gave '*****' the complete + 3B2/500 setup, a full set of manuals, software and a 4425 AT&T Death Star + terminal. When he moved out of his mother's house in 1999 he put it in + the trunk of his car. It stayed there for 6 months!! through the Texas + heat. He once went to '**'s house to pick up his friend and they decided + they needed some trunk space, so they took the 3B2 out and brought it up + to the house. '**' really hates UNIX and refused to allow the machine in + the house, so they left it on his porch. It sat there for 3 months, + through the rain and elements. '**' finally put into 'storage' with + some other computers, but I seriously doubt it will ever run again. + '*****' never paid a cent to sdf and will not respond to my emails from + is new email address (he no longer uses sdf). + + 10-OCT-01 SDF Public Access UNIX System, INC. + + On this day, the entity SDF Public Access UNIX System was formed + as a NOT-FOR-PROFIT corporation in the state of Delaware. + + 22-DEC-01 - 27-DEC-01 MULTIHOMED DS3 CONNECTION + + The 'sdf' along with 'otaku', 'sverige', 'neguse' and 'norge' were moved + to a new datacentre location in Bellevue Washington. Besides the luxury + of having a cooled machine room, high availability UPS and monitored site + security, we also gained a multi-homed 155mbit connection to the net. + + Although only 'sdf' and 'sverige' were production machines at the time, + the others were installed in preparation for 'SHIT DAY 01-JAN-02' + + Total 'sdf' downtime was exceptionally minimal during the move (1 hour). + + 25-JAN-02 - ALL MACHINES ONLINE - bjrk runs NetBSD-current SMP today! + + All machines are now online at the datacentre .. configuration info: + + uname platform version storage memory function + --------------------------------------------------------------------- + sdf dual alpha 5305 1.5.3 64gigs 1024mb Primary shell/UUCP + otaku dual alpha 5305 1.5.3 118gigs 1024mb SMTP & ARPA member + droog dual alpha 5305 1.5.3 118gigs 1024mb freeshell.org.uk + bjork dual alpha 5305 1.5ZA SMP 9gigs 512mb Experimental test + norge dual sparc ss20 1.5.3 18gigs 512mb ROBOT (irc 'bot') + sverige dual sparc ss20 1.5.3 18gigs 512mb MUD server + + 21-Sep-02 - DISK REPLACEMENT + + SDF purchased roughly 30 36.4GB SCA SCSI disks to replace the old + 4.3GB and 9.1GB as necessary. + + 20-Nov-02 - ICELAND ONLINE + + SDF purchased four API CS20 machines to replace the old ss20s and act + primarily as shell servers. This will help to keep resources free on + 'sdf' and 'otaku' so they can fileserve to the API machines. + + iceland.freeshell.org a dual 833MHz CS20 w/ 1024mb of RAM went online. + + 10-Jan-03 - VINLAND ONLINE + + The second of the CS20s went into service. It has the exact same + configuration as iceland. + + 27-Jan-03 - MOVE TO THE GIGAPOP + + Today NWLINK had its Bellevue co-location customers move to the SIX + (Seattled Internet Exchange) AKA the Gigapop. The move took about + 3 hours. + + 30-Jan-03 - NWLINK TERMINATES SDF CONTRACT + + NWLink.com has decided to terminate sdf.org's + co-location contract because of a DDoS attack which apparently was + directed at sdf. The termination notice was not written and was + carried out immediately (approximately 10:30am today). + + We attempted to quickly get another co-location contract with two other + prominent providers, but were turned down because of what happened at + NWLINK. Fortunately, we were able to bring services back up late in the + evening of February 4th, with DNS updating by the afternoon of the 5th. + This was made possible by a free hosting offer with SiteSpecific.NET + + Many SDF members have expressed the need for recourse as we all + are a victim in this. If you feel inclined to do so, you + may file a personal complaint against NWLINK online via + the NW Better Business Bureau. If you choose to do this, + please be sure to give concise, mature and correct information. + + NWLINK has released a letter via the BBB which quotes a director of + SDF even though it was explicitly stated in a telephone conversation + that any joint statement would have to be approved by the SDF board. + + 04-FEB-03 - SITESPECIFIC.NET PROVIDES FREE CO-LO FOR SDF + + Sitespecific has graciously given SDF a free lease while we arrange + our own site (we've decided to move back to Dallas). The Dallas + site is to be composed of brand new machines with two circuits that we + will own to prevent any ISP from doing what NWLINK did to us. + + 15-MAR-03 - MIGRATION TO OUR NEW HOME + + droog (sdf-eu.org) was the first to migrate and was basically done + over the internet in less than a day. + + ol was created to do fileservice and was setup so that only the DEC + SBBs (disks) would have to be shipped from Seattle to Dallas, saving + us quite a bit. ol currently has 14 disk drives in two StorageWorks + SCSI arrays. + + sdf, otaku and norge were all recreated as client machines which slave + off of ol. The whole migration took less than a week, with users being + able to access either site at anytime making the migration extremely + smooth and transparent to most. The disks drives, which held old mail, + web and home directories were plugged in with 16 hours of them leaving + Seattle for Dallas next day air. + + 31-MAR-03 - AS1200 DECOMMISSION PARTY + + 50 members were in attendence in 'com' as we decommissioned the DEC + AS1200 computer which served as SDF. The four AS1200 systems were + then auctioned off to the users. + + Summer and Fall 2003 + + A number of new hosts (DS10Ls and CS20s) were brought online. As well, + all of the 4.3GB and 9.1GB drives were replaced with 36GB 10K SCA + SCSI drives. A third t1 was installed to aide with peering and dialup + was expanded to include 16323 numbers in the USA and Canada. A mirror + for 'otaku' was brought online called 'ukato'. ARPA member websites + were split between these two hosts. 'mx' became the primary pop3/imap + server with its mirror 'xm' balancing out requests. + + Spring 2004 + + 'sverige' is now soley for MetaARPA member use. 'screen' is now allowed + on this machine with limited usage background processes. + + 10-Jun-2005 + + After patience and extensive testing all machines were updated from + NetBSD 1.6.2 to 2.0.2. The upgrade event was mostly automated and was + performed in about 2.5 hours which included updates to the fileserver + and mail server as well as all 6 NFS client systems. Apart from + external problems (such as power and UPS related datacentre issues) + the NFS performance problems we saw with 1.6.2 have seem to have been + minimised. + + 15-Jun-2005 SDF-EU.ORG TEMPORARILY OFFLINE + + Due to inconsistencies in the power at the datacentre we seem to have + lost the DS10L that was 'sdf-eu.org' .. The DEC StorageWorks disk array + is fine, and all incoming sdf-eu.org mail is queuing via UUCP. However + we had to wait about 5 days for the datacentre technician to get to + the machine to replace it with a spare. This was due to a back injury + he suffered (please note, the site technician is NOT smj ;-) + + 20-Jun-2005 NEW DOMAINS + + Victor Bragga (vothr) has donated the 'shellacct' domains to SDF. + These domains will soon be available to ARPA members for website + vanity domains as well as virtual email addresses to VPM and MetaARPA + members. + + 22-Jun-2005 THXMOO + + A MOO (virtual world) is currently being designed and implemented on + SDF. It is based on the post world war III THX-1138 world where humans + live underground and are dependent on pills, television and prayers to + keep their mental states in subservient check. The beta THXMOO should + be available this fall. Further updates will be posted on thxmoo.org + + August - September 2006 DISK MAINTENANCE AND UPGRADES + + All of the 36.4GB disks in the three arrays were slated to be replaced. + This was mainly for preventative maintenance, though one or two drives + had gone bad of their 3 years or so of service. 28 73.8GB SCA2 15KRPM + drives were installed during this time and a subsequent ARPA vote + increased the base disk quota to 600MB. MetaARPA members were given + an 800MB quota with an increase of files to 15000 per filesystem. + diff --git a/site-tutorials/FAQ/BASICS/03 b/site-tutorials/FAQ/BASICS/03 new file mode 100755 index 0000000..bb69600 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/03 @@ -0,0 +1,17 @@ +[03] WHAT IS THE UNIX OPERATING SYSTEM? + + UNIX originated in 1969 when Ken Thompson, facinated with the game + Space Travel, decided it would be easier to write an operating + system for the DEC PDP-7 to run his game rather than to write a + PDP-7 cross compiler on the lab's GE-645. UNIX inhereted features + from MULTiplexed Information and Computer System (MULTICS), a project + that Bell Labs, General Electric and RAND were involved in. However, + Ken never bothered to include more important features of MULTICS. + After all, UNIX was just for a game. But, UNIX became popular in the + labs and soon was given away to Universites. The system was never + standardized though its name suggested UNIformity. The west coast was + given the UNIX source code and soon Berkeley UNIX (BSD) was born. + + SYSTEM 5 and BSD have a distinct flavor which sets them apart. Many + view SYSTEM 5 hackers as being conservative while BSD hackers are + seen as being liberal. diff --git a/site-tutorials/FAQ/BASICS/04 b/site-tutorials/FAQ/BASICS/04 new file mode 100755 index 0000000..a10bb4c --- /dev/null +++ b/site-tutorials/FAQ/BASICS/04 @@ -0,0 +1,43 @@ +[04] WHAT ARE YOUR POLICIES? + + +**limitations and policy** +--------------------------------------------------------------------- + +The SDF Public Access UNIX System, a 501(c)7 non-profit corporation, +reserves the right to deny access to anyone regardless if the user +has made a donation or paid membership dues. If a user's activities +are interferring with another user or users (on this system or on +another) the user in question will have their account access limited +or possibly removed. Spamming of any sort is not permitted and would +result in account removal. Illegal activities that actively involve +SDF (id est, using SDF to run crack or for guessing passwords and/or +trading copyrighted work) will most likely result in account removal. + +The SDF Public Access UNIX System makes no guarantees in the +reliability or preservation of account accessibility, email received, +files uploaded or created by online editing or compilation. That +being said, data loss should only occur during a catastrophic hardware +failure where critical files would be restored from daily tape backups. + +Membership does not imply a support contract, and while things will +generally be fixed as soon as possible, there can be no guarantee +that this will happen immediately or at all. + +Members of the SDF Public Access UNIX System are expected to conduct +themselves in an appropriate manner when using our facilities. + +Lifetime ARPA membership is based on the lifetime of SDF, not +of the user and is non-transferable. SDF has existed since 1987 +and with your support maybe it just might out live you. ;-) + +Any illegal activities which includes, but certainly isn't limited +to spamming, portflooding, portscanning, unauthorised connections to +remote hosts and any sort of scam can really not be tolerated here. +Why? Because there are many here on this system that can suffer from +this sort of abuse. If you want to use SDF, you really have to care +about this system and the people here. If you don't want to care, +then you really shouldn't use this resource. + + + diff --git a/site-tutorials/FAQ/BASICS/05 b/site-tutorials/FAQ/BASICS/05 new file mode 100755 index 0000000..1f1d5b1 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/05 @@ -0,0 +1,16 @@ +[05] WHERE CAN I FIND "HELP" ON USING THIS SYSTEM? + + If you would like help with the UNIX system, type "help". A small + help menu with a reference to UNIX commands has been installed. + + To get a larger list of commands, type 'unix' at the shell. + + This FAQ handles most of the Frequently Asked Questions that new + users have. If you can't find your answer here, you can always + join the discussions on the 'bboard'. + + Also, a really great way to learn about this system is by not + asking questions, but by just looking around, reading and trying + things out. Don't worry about 'breaking' anything, just be + adventurous and read the manual pages for interesting commands + you might discover. (type 'man ' to read a manpage) diff --git a/site-tutorials/FAQ/BASICS/06 b/site-tutorials/FAQ/BASICS/06 new file mode 100755 index 0000000..2784acb --- /dev/null +++ b/site-tutorials/FAQ/BASICS/06 @@ -0,0 +1,19 @@ +[06] WHAT IS THE ARPANET AND INTERNETWORKING? + + An internet describes just what it sounds like, an INTERconnected + NETwork of networks. The word itself is an adjective. There is + no INTERNET as an entity to speak of. What mass media calls "The + INTERNET" was actually started in the late 1960's by the U.S. Defense + Dept. Advanced Research Project Agency or DARPA. There is a great + history surrounding the concept of internetworking and the initial 36bit + computing systems involved that is sadly over looked these days. + + Here is what could be said about internetworking today: + + The concept of Internetworking allows us to realise an all-encompassing + global network that links together hundreds, even thousands of privately + owned networks. Through this shared resource of private networks, it is + possible to send data across the network in the matter of seconds. + + Branching off from these networks are slower dedicated lines, packet + switching, DIALNET and UUCP sites. diff --git a/site-tutorials/FAQ/BASICS/07 b/site-tutorials/FAQ/BASICS/07 new file mode 100755 index 0000000..1452058 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/07 @@ -0,0 +1,48 @@ +[07] WHY CAN'T I USE FTP TO TRANSFER MY FILES? + + Inbound FTP connections (via FTP, scp or sftp) are available to + validated members and above. For more information about validation + please type 'validate' at the shell. + + A slower, but still acceptable method of sending/receiving files + from SDF can be found with the XYZMODEM tools. Infact, SDF used + XYZMODEM for file transfers before we installed FTP. If you don't + know about XYZMODEM, these are a protocol set for transfering files + over a dialup modem connection. Some TELNET programs such as + TERATERM support these protocols. + + Examples + -------- + + Uploading a file to SDF: + + 1. Tell SDF you want to send a file: + + $ rz (or 'upload') + + 2. Start the file transfer from your TERMINAL. + + Downloading a file from SDF: + + 1. Tell SDF which files you want to download: + + $ sz filename + + Usually (with ZMODEM) your TERMINAL will automatically respond by + initiating a file transfer session. + + We recommend using ZMODEM as it seems to be the fastest and most + reliable method. You can use "sb/rb - YMODEM or sx/rb - XMODEM" + if ZMODEM doesn't seem to work for you. + + Finally, you can also use the C port of Columbia's KERMIT protocol. + This program was original developed to transfer files between the + DECSystem-10 and the IBM PCs that students and faculty were using + as terminals. + + C KERMIT actually has a C implementation of CMND-JSYS, the command + parser which implementions command completion and recognition that + made TOPS-10 and TOPS-20 so popular. Also, there is support for + ZMODEM/XMODEM/YMODEM in KERMIT. Use 'set proto zmodem' to turn it + on. + diff --git a/site-tutorials/FAQ/BASICS/08 b/site-tutorials/FAQ/BASICS/08 new file mode 100755 index 0000000..c05680c --- /dev/null +++ b/site-tutorials/FAQ/BASICS/08 @@ -0,0 +1,64 @@ +[08] WHAT MACHINE DO I LOG INTO FOR SHELL ACCESS? HOW MANY CONCURRENT LOGINS? + + If you are an SDF-EU member there is currently only one host which + is 'odin.sdfeu.org' or just 'sdfeu.org'. This is due to the very + small userbase and usage. In the future more servers will be + added to 'sdfeu.org' as needed. + + If you are an SDF member, please keep reading. + You may use the following aliases to access SDF: + + telnet/ssh: tty.sdf.org + ftp/sftp/scp: ftp.sdf.org + + ARPA member server: arpa.sdf.org + MetaARPA member server: meta.sdf.org + + Historically you would login to 'sdf.lonestar.org' .. however, SDF + has grown so much, we've got a number of machines available all sharing + the same disks. So, no matter what machine you login to, the same + files, mail and user programs show up. If you are at a library or + school which only allows the use of a web browser, you might be + able to use a java applet ssh client at http://sdf.org/ssh + + Here is a quick list of machines available for public access: + + ------------------------------------------------------------------------------ + FQDN (hostname) Hardware Configuration Op System Membership Access + ------------------------------------------------------------------------------ + ol.sdf.org AMD64 4GB 4TB DISK NetBSD 6.1.2 NONE (fileserver) + mx.sdf.org AMD64 4GB 2TB DISK NetBSD 6.1.2 NONE (mail server) + sdf.org AMD64 4GB NFS client NetBSD 6.1.2 General access + ukato.sdf.org AMD64 4GB NFS client -current Development + bjork.sdf.org AMD64 2GB NFS client NetBSD 6.x Development + miku.sdf.org AMD64 4GB NFS client NetBSD 6.1.2 motd.org toobnix.org + faeroes.sdf.org AMD64 4GB NFS client NetBSD 6.1.2 ARPA access + norge.sdf.org AMD64 4GB NFS client NetBSD 6.1.2 VHOST member access + iceland.sdf.org AMD64 4GB NFS client NetBSD 6.1.2 MetaARPA only + ma.sdf.org AMD64 32GB 6TB DISK Centos 6.4 MetaARPA only + vpn.sdf.org ALPHA 2GB 73GB DISK NetBSD 4.0.1 VPN PPTP + vps1.sdf.org AMD64 32GB 2TB DISK NetBSD 5.1 VPS members only + vps2.sdf.org AMD64 32GB 2TB DISK NetBSD 5.1 VPS members only + ------------------------------------------------------------------------------ + + You may not login to ol.sdf.org. It is a fileserver. ('maint' is ok) + You may not login to mx.sdf.org. It is a fileserver. + + HOW MANY CONCURRENT LOGINS CAN I HAVE? + + You can login as many times as you need within reason. Meaning, if + you need to login 10 times to get your code working, go for it! + + ARE THERE ANY SSH SERVERS RUNNING ON NON-STANDARD PORTS? + + MetaARPA members may connect via SSH on ports 22, 23, 53, 110, 143, + and 993 to meta.sdf.org. These instances of the SSH server support + TCP Tunneling and X11 Forwarding. Both iceland and sverige run + https on port 443, but sdf, otaku, ukato, faeroes and miku support + tunnelling on ports 53, 110, 143 and 443. + + SDF-EU (sdf-eu.org) run instances of the SSH server on ports 465, 587, + 995, 996 1025, 8080 and 7070 which support TCP Tunneling and X11 + Forwarding. Port 22 is of course available, but does not support Meta- + ARPA features. + diff --git a/site-tutorials/FAQ/BASICS/09 b/site-tutorials/FAQ/BASICS/09 new file mode 100755 index 0000000..e35f1ee --- /dev/null +++ b/site-tutorials/FAQ/BASICS/09 @@ -0,0 +1,41 @@ +[09] CAN I GET A LIST OF EDITORS AVAILABLE HERE? + + Here is a list of most of the editors available on SDF. To use + one of these as a default, set the environment variables EDITOR + and VISUAL with the path to the editor. + + ed Ken Thompson's editor (original UNIX editor) + + ex An EXtended ed line editor (between ed & vi) + + vi Bill Joy's editor (VIsual editor) + nvi new vi + bvi Gerhard Buergmann's VI based binary hex editor + vim A VI clone + vilearn VI interactive tutorial + + vile VI Like Emacs (between vi & emacs) + + EMACS EMACS was written in ITS TECO and is not available for UNIX + emacs Richard Stallman's emacs clone + uemacs MicroEMACS + beav A slightly emacs like binary editor + zile Sandro Sigala's emacs clone + ce Chet Ramey's emacs clone + jed John E Davis' emacs clone + jove Jonathan Payne's emacs clone + + pico Mark Crispin's MM SEND editor (?) + nano a pico clone + + hexedit Pascal Rigaux's binary hex editor + ee Hugh Mahon's Easy Editor + hnb The Hierachical NoteBook browser/editor + ne Cambridge Text Editor (not 64bit compatible) + ve NTHU-CS Maple BBS editor (supports Chinese) + + id3ed Peter Karlsson's mp3 TAG editor + id3 Robert Woodcock's mp3 TAG editor + id3v2 Myer Carpenter's mp3 TAG editor + + mp3asm A command line mp3 frame level editor diff --git a/site-tutorials/FAQ/BASICS/10 b/site-tutorials/FAQ/BASICS/10 new file mode 100755 index 0000000..1a34e29 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/10 @@ -0,0 +1,50 @@ +[10] WHAT IS COMMON SENSE AND HOW DO I USE IT? + + People tend to be more abusive or defensive while typing away on a + computer keyboard. People are also more apt to being gulliable + or confused by the text of others displayed on their screen. + It is very important when you feel these exaggerated emotions to take + a deep breath and think. Here are a list of 'common sense' notions + that you should keep in mind when using SDF. + + 1. Don't tell your password to anyone. NO ONE, not even your god + should know your password let alone ask you for it. + + 2. Check email headers if you get a slightly strange (or obviously + strange) email from someone saying they are an 'admin' or 'info' + or 'sysop' or 'support' or 'help'. In 100% of the cases you will + find that these do not actually originate on SDF and most likely + contain a malicious Microsoft virus. Delete these and do not + forward them to anyone. + + 3. DON'T PANIC - If something goes wrong such as your URL disappears + or your session 'freezes' or you get a strange error, be patient + and wait .. if you just wait 5 minutes, the problem will have + 'fixed itself' or disappeared. Also, check bboard: for + system notices, maintenance schedules and resolved issues. + + 4. Becareful with emotions. Sometimes users can provoke each other + to get a reaction, embarrass or hurt one another's feelings. The + best medicine if you are being flamed or trolled is to 'walk away'. + Also, if you meet someone on SDF and decide to meet in person, + please use caution and follow these simple guidelines: + + a. Arrange a meeting in a public place. Don't invite someone + to your home and don't go to a stranger's home. + b. Meet in groups. Avoid meeting one on one with a stranger. + c. If you are going to fall in love, please do so AFTER you + have met. If the feeling isn't mutual, do not persist. + d. Don't let your failed relationship affect your desire to + be a part of SDF. + + 5. Don't compromise membership priviledges. If you are an ARPA member + don't compile or install programs in /tmp or your home directory + that would otherwise only be available to ARPA members. Most notably + are programs that allocate sockets or allow a user to gain access to + other ARPA only utilities. + + 6. Use /tmp for temporary storage, but be aware. Each client system + has roughly 2GB of 'temporary' space available to all users. You + may use this space, but use 'df /tmp' to check that you are not + going to cause other users problems. Note, files in /tmp expire + at around 60 days. diff --git a/site-tutorials/FAQ/BASICS/11 b/site-tutorials/FAQ/BASICS/11 new file mode 100755 index 0000000..682407e --- /dev/null +++ b/site-tutorials/FAQ/BASICS/11 @@ -0,0 +1,89 @@ +[11] CAN I GET A LIST OF TERMS USED OR AN SDF GLOSSARY? + + Additional recommended sources: Try 'dict word' and also 'jargon' + + This is not a comprehensive list of terms used, but it should be + enough to get you started if you are a complete neophyte. Keep in + mind this is not a dictionary, but a 'glossary' describing how + words are used in the scope of the SDF Public Access UNIX System. + + ACCESS Your membership level, permission settings for a file or + your ability to use one or more of SDF's features. + + ARPA (aka Advanced Research Projects Agency) A lifetime member + of the SDF Public Access UNIX System. A permanent member + who has paid a $36 initiation fee and has voting privileges. + + BBOARD The SDF (electronic) Bulletin Board. Think of it as a + corkboard at a community center where members post notes + with thumb tacks. All system notices are posted on the + ANNOUNCE bboard. + + COM (aka 'COM MODE') An online communication forum where SDF users + can interact with each other in real time. + + DBA DataBase Administrator membership. + + DISK Your personal data storage and the 60+ disk drives that make + up all SDF data storage. Try 'disk' or 'quota' for more info. + + DNS Domain Name System. This is a method (and network protocol) + which allows Domain Name information to propogate throughout + the INTERNET. It is important to note that DNS does not + provide services such as SMTP (mail), HTTP (web) nor any other + service other than announcing WHERE services can be found. + + EMAIL Electronic MAIL. This can be accessed from the shell using + a number of programs (elm, mutt, mailx, mm ..). Your mail is + stored in the file: /mail/$LOGNAME + + FTP File Transfer Protocol. Allows you to send and receive + files from a HOST. + + HOST A computer which provides services to users. To connect to + SDF, please use 'tty.freeshell.org' as your HOST. + + MDNS (Meta DNS) A membership for Dynamic DNS which can be used + to point your IP address to $LOGNAME.mdns.org or with your + own domain using the DNS membership. (sdf-eu.org uses + zdns.org (Zeta DNS)). + + MetaARPA (Above ARPA) A membership with annual dues of $36. This + membership is considered to be 'trusted' and is mostly + made up of people who care about SDF very much. In exchange + for their dues, they have access to tools and features that + could be abused by people who do not care about SDF. + + POINTER A membership for VHOST members who wish to point an additional + domain to their VHOST membership space. + + POP3 Post Office Protocol Version 3. A protocol that allows an SDF + member to transfer their mail from SDF to their computer. Also + see VPM and IMAP. + + TELNET Telephone Network. TELNET is a protol which allows you to + run a terminal session on a remote computer. This can become + convoluded easily by running a remote TELNET client to open + a session on another remote host to open another remote TELNET + session to your local computer. (See the TELNET song by Guy + L. Steele for more info). Basically, TELNET is a protocol for + remote ACCESS to a (HOST) computer. + + URL Uniform Resource Locator. Mainly used to express a 'web site + address', is also used to express protocol. Ex: + + gopher://sdf.org SDF's Gopher Address + http://sdf.org SDF's WWW Address + ftp://sdf.org SDF's FTP address + telnet://sdf.org SDF's TELNET address + + URL on SDF mainly refers to the 'vanity URL' that you assign + to your 'website'. You do this via the 'mkhomepg -a' command. + + VHOST A Virtual HOST. A membership that allows an ARPA member to + Virtually HOST a domain name on SDF particularly for the + purpose of serving webpages and receiving EMAIL. VHOST includes + the DBA, VPM and DNS memberships. + + VPM Virtual POP3 Mail. A membership that allows an ARPA member to + manage mail files for his/her domain name or an SDF vanity URL. diff --git a/site-tutorials/FAQ/BASICS/12 b/site-tutorials/FAQ/BASICS/12 new file mode 100755 index 0000000..2880862 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/12 @@ -0,0 +1,22 @@ +[12] WHAT IF I FORGET MY USER PASSWORD? CAN I RESET MY PASSWORD? + + If you have unfortunately forgotten your user password, it can be + a bit of a pain on our behalf to figure out who you are and to + ensure that your request to 'reset' your password is legitimate. + + BEFORE YOU HAVE FORGOTTEN YOUR PASSWORD login to the maintenance + shell (type chfn or chsh) and select the 'set up password recovery'. + + When you have forgotten your password, you can then login as 'new' + and type 'recover' (the menu option is not listed). + + To disable password recovery, login to the maintenance shell and + provide an empty answer to a question. + + If you have not setup recovery, you may politely (and with patience) + contact membership (at) sdf.org or send a letter to the SDF mailbox. + You may consider making a donation at that time, as it will greatly + improve your chances of getting a password 'reset'. + + Please note that the password recovery mechanism is not yet + available on 'sdf-eu.org', but will be in the future. diff --git a/site-tutorials/FAQ/BASICS/13 b/site-tutorials/FAQ/BASICS/13 new file mode 100755 index 0000000..4fa8700 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/13 @@ -0,0 +1,59 @@ +[13] WHY DOES BACKSPACE AND DELETE NOT WORK HERE? + + The question should be: + + "WHY DO THE BACKSPACE AND DELETE KEYS WORK INCONSISTENTLY ON COMPUTERS?" + + The reason requires a history lesson, but you probably aren't interested + in learning why it has become inconsistent and would rather just fix it + and move on. If that is what you want, then type: + + $ stty erase '^H' + + - or - + + $ stty erase '^?' + + There is no way to know for sure which will work for you, so try them both. + Alternatively you could type 'stty erase ' and then your backspace key. + (NOTE: don't type the ' symbols and also, mind the whitespace .. but you + probably don't even understand that, so just try the two examples above). + + If one of them works for you, then put the one that did in your .profile + + A HISTORY LESSON + + So why do we have [RUBOUT], [DELETE/DEL], [ERASE] and [BACKSPACE/BKSP] + keys on (some) computer keyboards? It actually goes back to the input + devices used to create punched cards and papertape. These devices were + similar to manual typewriters. They would punch holes into a paper media + that could then be read by a computer later on. While we all strive to be + perfect typists, we all create mistakes ... once you punch holes into + paper, its nearly impossible to get the 'chads' you've created back in to + repunch. So a correction was made by pressing the [BACKSPACE] key, which + would move the carriage back one character space and you would then press + the [DELETE] key to punch all the bits out of that space. + + ASCII HEX OCTAL DEC CHAR + ---------------------------------------- + ASCII BS 0x08 0010 8 ^H + ASCII DEL 0x7F 0177 127 ^? + + When input devices were developed that allowed users to program directly + into a computer and store programs as files on disks (or have the computer + punch the tape or card stack for you once you had properly typed in and ran + your program), the behaviour of the aforementioned keys became inconsistent. + Most people probably expect [BACKSPACE/BKSP] to move the cursor to the left + erasing characters as you press it, and the [DELETE/DEL] key not moving the + cursor, but 'eating' characters and whitespace from the right. + + A USER'S PERSPECTIVE + + On my Symbolics LISPM keyboard I have a [RUBOUT], [DELETE] and [ERASE] + key .. but on my Apple Powerbook I just have a [DELETE] key. The [RUBOUT] + key is located where your [CAPS LOCK] key is, so in order to rubout + characters, you use the pinky on your left hand. On the Powerbook I have + to use my right hand to press the [DELETE] key which is located all the way + up (and out of the home row position) in the top right hand corner of the + keyboard. The LISPM keyboard might sound weird, but you get used to it + really quick if you are a traditional 'home row' touch typist. diff --git a/site-tutorials/FAQ/BASICS/14 b/site-tutorials/FAQ/BASICS/14 new file mode 100755 index 0000000..0d7db16 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/14 @@ -0,0 +1,13 @@ +[14] WHY DO I GET DOUBLE PROMPTS OR DOUBLE RETURNS WHEN I TELNET HERE? + + If you're asking this you are probably using Windows 2K or XP. The + easiest solution is to not use Windows TELNET, but use a free SSH + client such as 'putty' or to connect to http://sdf1.org/ssh + + If you can only use Windows TELNET, then you follow these simple + instructions: + + 1. Escape back to the TELNET> prompt by pressing CTRL and your ] key. + 2. type 'unset crlf' + 3. press return TWICE to return to SDF. + diff --git a/site-tutorials/FAQ/BASICS/15 b/site-tutorials/FAQ/BASICS/15 new file mode 100755 index 0000000..1ac68e7 --- /dev/null +++ b/site-tutorials/FAQ/BASICS/15 @@ -0,0 +1,19 @@ +[15] WHAT HAPPENED TO THE SDF.ORG WIKIPEDIA ARTICLE? + +At one point, the Wikipedia article describing SDF.org was removed on account of Wikipedia's policies and politics. However, the +article has been restored and currently provides a concise overview of SDF.org's services, history and current status. It is +somewhat out of date as of 28-FEB-2013 however. + +You can view the article here: +http://en.wikipedia.org/wiki/SDF_Public_Access_Unix_System + +It is hoped that SDF.org users and enthusiasts will help maintain and keep current this Wikipedia article. Actively curating the +content will demonstrate to the Wikipedia community that it is a valuable topic and should remain online so that more people will know +the history and current status of SDF.org. + + diff --git a/site-tutorials/FAQ/CHAT/01 b/site-tutorials/FAQ/CHAT/01 new file mode 100755 index 0000000..8cd21e0 --- /dev/null +++ b/site-tutorials/FAQ/CHAT/01 @@ -0,0 +1,21 @@ +[01] CAN I RUN AN IRC BOT HERE?? + + IRC BOTs are pretty intensive and most systems and networks ban them. + + In an experiment conducted in 1996 on this system, we allowed users + to compile and run their bots. The result was hundreds of megs of + disk space became occupied because each user insisted on having their + own version of eggdrop uncompressed and untarred in their home directory. + All physical memory was in use as ~45 eggdrop processes were running + concurrently. The system was basically USELESS and it took 1.5 hours + to login if you were patient enough (even from the system console). + + The ARPA members called a vote on the issue and the result was almost + a resounding unanimous NO. + + However, there are times when running a bot is useful, for instance + keeping a channel open, providing information or just logging a + channel. Basically the bot policy here is a bit relaxed for MetaARPA + members. Common sense is the rule. As long as you aren't running + a harmful process, such as a hijack bot, warez bot or connecting to + a server that does not allow bots, then you may run a bot process. diff --git a/site-tutorials/FAQ/CHAT/02 b/site-tutorials/FAQ/CHAT/02 new file mode 100755 index 0000000..20c6909 --- /dev/null +++ b/site-tutorials/FAQ/CHAT/02 @@ -0,0 +1,18 @@ +[02] CAN I USE AIM OR ICQ HERE? + + YES! + + Use 'tac' to start AIM. + use 'icq' to start ICQ. + + For AIM, you must already have an AIM account and password created + (you can go to their website to create it). ICQ will allow you to + create a new UIN or you can use your own. + + tac.conf holds configuration information for AIM + .micqrc holds configuration information for ICQ + + Its best to have these files only readable by you (see BASICS for + information on UNIX file permissions). Within these files you can + setup who you want to chat with (friends, buddylists) as well as + chat parameters. diff --git a/site-tutorials/FAQ/CHAT/03 b/site-tutorials/FAQ/CHAT/03 new file mode 100755 index 0000000..55a7b05 --- /dev/null +++ b/site-tutorials/FAQ/CHAT/03 @@ -0,0 +1,25 @@ +[03] IS THERE A CHAT SERVER OR FORUM ON SDF? + + Yes, there are several ways to interact (chat) in real time + with users locally: + + write - links and displays text on a specified user's TTY + (commands cannot be sent to the user's TTY) + msg - send messages between users on local or remote SDF servers + Also will email messages if a user is not logged in. + commode - SDF's official interactive chat system (local and remote) + irc - irc.freeshell.org 6667 (SSL via port 6697) + + For passive communication there are also several ways to interact + in threaded discussions locally: + + notes - send a message to a user to be displayed at login + bboard - SDF's official bulletin board system + usenet - sdf.* are local groups accessible via rn/trn/tin/pine + emacs rnews, slrn and other NNTP readers + webforum - Part of the secure webmail system which is accessible + via https://wm.sdf.org/bbs + sdf-jp.org - SDF's Japanese site with its own webforum which supports + the Japanese language input method. + sdfclub.cn - (external site) A Chinese language webforum + diff --git a/site-tutorials/FAQ/CHAT/04 b/site-tutorials/FAQ/CHAT/04 new file mode 100755 index 0000000..095a4d5 --- /dev/null +++ b/site-tutorials/FAQ/CHAT/04 @@ -0,0 +1,10 @@ +[04] CAN I OPERATE MY SIG (SPECIAL INTEREST GROUP) HERE? + + For the most part, yes. There are several system components such as + the bboard, webforum, commode and irc where you can conduct your + meetings and correspondence. You are also welcome to create your + own methods via your personal webspace, VHOST webspace or the MOTD + memberships. + + If you need a webforum for communication, you can use the SDF secure + webforum for your SIG. Just email 'smj' for info. diff --git a/site-tutorials/FAQ/DIALUP/01 b/site-tutorials/FAQ/DIALUP/01 new file mode 100755 index 0000000..b93006d --- /dev/null +++ b/site-tutorials/FAQ/DIALUP/01 @@ -0,0 +1,27 @@ +[01] WHAT IS THE SDF DIALUP/ISDN PPP MEMBERSHIP? + + The SDF DIALUP/ISDN PPP Membership is a Nationwide (USA + Canada) MODEM + network consisting of over 10,000+ telephone numbers. This is a shared + network of 'alliance partners' that allow SDF to have the maximum + AREA Code/Exchange coverage for the cheapest price. + + This allows you to internetwork your computer using Point to Point + Protocol (PPP) at v.92 (typically 52000 bits per second). Digital + service via ISDN (64kb and 128kb) is available in most cities. + + There no setup fees, contract term limits .. infact, you'll get a + discount if you prepay your dues for 3 or more months! + + Any computer that supports PPP can be used, no matter what Operating + System is being used. This includes, but is not limited to the + following operating systems: + + * MACOS 7.5 - X + * NetBSD/FreeBSD + * System V R4 + * MS DOS 3.10 (see http://www.fdisk.com) + * OS/2 + * BeOS + * Windows (all 500+ versions of it) + * Various cellphones, PDAs and GPRS devices + diff --git a/site-tutorials/FAQ/DIALUP/02 b/site-tutorials/FAQ/DIALUP/02 new file mode 100755 index 0000000..25c2230 --- /dev/null +++ b/site-tutorials/FAQ/DIALUP/02 @@ -0,0 +1,32 @@ +[02] HOW MANY DIALUP NUMBERS? CAN I USE ANY NUMBER? (ROAM) + + There are over 10,000 DIALUP/ISDN numbers Nationwide and Canada. + You can use *ANY* number you wish, so its perfect for people + who travel. + + Most numbers are v.92, which means you can most likely connect + anywhere between 52000 bps and 56000 bps if your modem/serial + port supports that data rate. Bit rates as low as 1200 are + supported if your hardware requires that. ISDN connections + support 64000 bps per B channel. + + If you want to be really geeky about your connectivity, 'getdialup' + provides you with the DIALUP NETWORK you would be gaining access to. + Here are a list of the two letter acronyms and who the represent. + + ALERON te + QWEST qw + UUNET uu/u3 + WORLDNET wn + ELI el + O1 COMM o1 + CP WS cp + LEVEL 3 l3 + FULLNET n1 + SPRINT n3 + WISPNET n5 + GRANDE COMM tx + STARNET st + PACWEST pw + CORETEL ct + BITWISE bw diff --git a/site-tutorials/FAQ/DIALUP/03 b/site-tutorials/FAQ/DIALUP/03 new file mode 100755 index 0000000..0ff99f9 --- /dev/null +++ b/site-tutorials/FAQ/DIALUP/03 @@ -0,0 +1,13 @@ +[03] HOW DO I PAY MY MEMBERSHIP DUES? + + Dues can be paid through PAYPAL or the SDF PO BOX just like all + other dues. Accepted forms are cash, cheque or money order. + + Membership dues are discounted for prepayment according to the + following schedule: + + monthly $10 + quarterly $27 + semi-annually $48 + annually $84 + diff --git a/site-tutorials/FAQ/DIALUP/04 b/site-tutorials/FAQ/DIALUP/04 new file mode 100755 index 0000000..145f32c --- /dev/null +++ b/site-tutorials/FAQ/DIALUP/04 @@ -0,0 +1,5 @@ +[04] WHAT IF I FORGET MY PASSWORD? + + You can always set your password via the 'setdialup' command at + the shell. When you run this command any previous set password + is over written. diff --git a/site-tutorials/FAQ/DIALUP/05 b/site-tutorials/FAQ/DIALUP/05 new file mode 100755 index 0000000..fb1bdd5 --- /dev/null +++ b/site-tutorials/FAQ/DIALUP/05 @@ -0,0 +1,5 @@ +[05] HOW DO @TENEX.ORG AND @SDF.ORG EMAIL DIFFER? + + Currently @TENEX.ORG is not used for email. It is only used + as the RADIUS REALM for authentication to occur. At a later + time the @TENEX.ORG domain may be available for email. diff --git a/site-tutorials/FAQ/DIALUP/06 b/site-tutorials/FAQ/DIALUP/06 new file mode 100755 index 0000000..91a7dff --- /dev/null +++ b/site-tutorials/FAQ/DIALUP/06 @@ -0,0 +1,20 @@ +[06] IS THERE A TIME LIMIT? HOW MANY HOURS DO I GET A MONTH? + + Analogue (56kbps or lower) MODEM connections are metered and + can be used to an average of 15 hours a day per month. If you + regularly exceed 15 hours a day, you may be 'banned' by the + tier 1 networks as you will be in violation of their terms of + service. + + ISDN (64kbps-128kbps) NT1/TA connnections are metered up to 300 + hours per month. Once you reach the 300 hour limit (roughly + 10+ hours of service a day!) your connection will drop and you + will be unable to authenticate until the 1st of the next month. + + Since ISDN connections can be established so much faster than + analogue connections, its recommended that you set your NT1/TA + in 'dial on network demand' mode to avoid using up your hours. + + You can use the 'dialstats' command to view your current usage. + Usage numbers are reset on the first of every month. Only users + who have used a total of 50 hours in a single month are listed. diff --git a/site-tutorials/FAQ/EMAIL/01 b/site-tutorials/FAQ/EMAIL/01 new file mode 100755 index 0000000..91a0852 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/01 @@ -0,0 +1,55 @@ +[01] HOW CAN I SEND OR FORWARD INTERNETWORKED E-MAIL FROM HERE? + + If you know a user's email address, then that is basically all you + need. The mail readers most users prefer here are elm and pine. + + You can send email from within a mail reader, or directly from the + UNIX shell with the mail or mailx commands. + + Say you wanted to EMAIL a person named "Bill Gosper". + + $ mail rwg@MC.AI.MIT.EDU + + Where rwg@MC.AI.MIT.EDU is "Bill's" ARPANET email address. + When you are done with your message to "Bill", just type a "." + on a single line and then return. + + Your email address is login@SDF.ORG where "login" is the + name you use to login to the system. + + You can use the local email clients from the shell or use the + POP3 protocol to retrieve your email from 'mx.sdf.org' + + If you would like to use the SDF SMTP server for sending mail from + a remote machine, please look into the VPM membership. + + FORWARDING MAIL and HOLIDAY AUTOREPLY + + Forwarding is available to ARPA members and above. This is a useful + feature which can be very helpful if you want to give people your + SDF.ORG address but want emails sent to it end up somewhere else. + Just create a file called ".forward" in your home directory with the + address you want your mail forwarded to. When you want to end forwarding, + rm .forward + + Example: + + $ echo "joe@joeuser.com" > $HOME/.forward + + If you are going on holiday and want people to get an automatic reply + to messages sent to you, use 'vacation'; see the "Setting up vacation(1)" + tutorial at http://sdf.org/?tutorials#advanced for setup examples. When + you return again, remove or rename the $HOME/.forward file. + + + NOTES: + + SDF does not condone the sending of UCE (Unsolicited Commercial Email), + threats, sexual solicitations and other annoyances via our systems. Any + accounts found doing this will be promptly terminated without notice. + + The maximum number of recipients allowed is 200, which is a very liberal + amount. If you need to send to more than 200 people at a time, you'd + should have a good reason. If you would need to send email to a large + list of people from time to time, you might consider getting a MLIST + (Mailing LIST) membership. diff --git a/site-tutorials/FAQ/EMAIL/02 b/site-tutorials/FAQ/EMAIL/02 new file mode 100755 index 0000000..ac4841e --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/02 @@ -0,0 +1,32 @@ +[02] WHAT MAIL PROGRAMS ARE AVAILABLE HERE? + + There are SO MANY mail readers, its unbelievable. Many share + the same functionality, interface and commands .. pointless!! + + mailx System 7 standard mail client. Very minimal, but + quick and useful. You could use it from a teletype. + + rmail (emacs -f rmail) East Coast mail / babyl reader + + pine West Coast mail reader. Actually incorporates MM + (from TOPS-20) as its core, though you'd probably + never know that. Slow, but user friendly. + + alpine A complete recode of pine. Supposed to fix all of + pines problems but probably just makes new ones. + + nail A very simple mail reader and processor. + + elm A simple and easy mail reader. Though, has a tendancy + to barf on MIME encoded attachments. + + mutt A stripped down version of elm, but with better + support for MIME encoded attachments. + + pop3 your POP3 mail server is 'mx.sdf.org' + (NOTE, there is no SMTP support here, no relaying + from unknown and non-local networks). + + procmail this can be used for filtering incoming mail and + doing what you will with it. fairly powerful. + diff --git a/site-tutorials/FAQ/EMAIL/03 b/site-tutorials/FAQ/EMAIL/03 new file mode 100755 index 0000000..cf080d7 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/03 @@ -0,0 +1,19 @@ +[03] WHAT IS THE POP3/IMAPs AND SMTP SERVER ADDRESS HERE? + + If you are going to use our machines for POP3/IMAP service + *please keep your requests to 5 minute or longer intervals*. + + For both of these services, please use 'mx.sdf.org' + or 'mx.sdf-eu.org' depending on which site you use. + + Your POP ID and password are the same as your login account. + + SMTP is now done by password authentication. Due to the + method we've chosen, only VHOST and VPM members may use the + SMTP server. The SMTP server is 'mx.sdf.org' + + If you're really desperate to use our SMTP server and don't + need to VHOST, we HIGHLY recommend a VPM account. Check + out the answer to: + + HOW DO I SETUP EMAIL ACCOUNTS WITH 'MKVPM'? diff --git a/site-tutorials/FAQ/EMAIL/04 b/site-tutorials/FAQ/EMAIL/04 new file mode 100755 index 0000000..569f6da --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/04 @@ -0,0 +1,35 @@ +[04] WHAT IS MY EMAIL ADDRESS HERE? + + The default is: + + yourlogin@sdf.org + + You are welcome to use: + + yourlogin@freeshell.org + + Its really your preference. All of these have MX (Mail Exchangr) + records pointing to our SMTP server, so you'll get mail all the + same by using either of them. + + You may also apply tags to your email address between your login ID + and the @ sign. This is useful to determine where you've given out + specific email addresses to, such as for mailing lists. In this case + your address could look something like this: + + yourlogin+job-search@sdf.org + + The tag above is '+job-search' and could be useful if you are posting + a resume online which you know could generate spam later. If you did + start receiving spam at that address, as an ARPA member, you could use + procmail to filter out all email to that address and discard it. + + IMPORTANT: No matter what machine you login in to, your address + always defaults to yourlogin@sdf.org. There are a number + of other domains listed here, most of which are only available to + ARPA members as their URL. However, these URL domains can be used + for email address with a VPM membership. + + If you are interested in having, say 'grog@sixbit.org' as your + email address rather than say 'groggy@grog.sixbit.org', you can + do this by using the 'setvmail' command as a MetaARPA member. diff --git a/site-tutorials/FAQ/EMAIL/05 b/site-tutorials/FAQ/EMAIL/05 new file mode 100755 index 0000000..a12368d --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/05 @@ -0,0 +1,25 @@ +[05] HOW CAN I MAKE A SECURE TUNNEL/CONNECTION FOR POP3/IMAP? + + To do this, you must first be a MetaARPA member. Second, you must + have a flexible SSH client on your computer that will allow you to + create an ssh tunnel/tcp port forward rule. + + To set up a secure pop3 or imap tunnel, you'll want to issue a + command on *your* computer similar to this: + + ssh -l -p 443 -n -N -q -L :mail: tty.freeshell.org + + -l Your SDF user id + -p 443 The MetaARPA sshd server port + -L :mail: A local port, the mailserve and a remote port + Examples: + + pop3: -L 9999:mx.sdf.org:110 + imap: -L 9999:mx.sdf.org:143 + + Once you have set up this tunnel, then all you need to do is point your + client (a mailreader, fetchmail, web browser, et cetera) to the 9999 + port on your local host. You will then be using the ssh tunnel to + connect to SDF. + + Also, note that wm.sdf.org runs imaps as well. diff --git a/site-tutorials/FAQ/EMAIL/06 b/site-tutorials/FAQ/EMAIL/06 new file mode 100755 index 0000000..33db4a8 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/06 @@ -0,0 +1,45 @@ +[06] CAN I USE EMAIL WITH '@LOGIN.FREESHELL.ORG' OR '@LOGIN.SDF-EU.ORG'? + + Yes you can! This falls under the Virtual POP3 Mailbox (VPM) + service. This is the same feature that VHOST members have. + + Basically, your subdomain 'yourlogin.freeshell.org' or + 'youlogin.sdf-eu.org' is FREE and is setup when your run + 'addlink'. You can join the VPM membership level and then + have 20 VPMs associated with your free domain name! + + Say you are 'Bob Grady' and your user id is 'grady'. You create + a subdomain 'grady.freeshell.org' for your family. You can then + create VPMs for your entire family! + + You could have: + + bob@grady.freeshell.org + mom@grady.freeshell.org + dad@grady.freeshell.org + + The same thing applies to your church! With the user id 'fbcd' + which could be 'First Baptist Church of Dulles' .. with VPM you + could create: + + rector@fbcd.freeshell.org + vicar@fbcd.freeshell.org + bishop@fbcd.freeshell.org + cantor@fbcd.freeshell.org + acolyte@fbcd.freeshell.org + + And so on! + + But even more important, the free subdomain is all yours. By default + 'ANYTHING@fbcd.freeshell.org' would go to 'fbcd' mailbox. This helps + in guarding against spam, as then you would be able to use a random + username for say a website query. You could then filter on that + username to block any spam, et cetera. + + You can use the 'mkvpm' command to manage your mailboxes. For + more information, checkout the 'VHOST' section of the FAQ. + + All VPM mailboxes (active and inactive) including their sizes and + last time/date of writing can be seen using the 'vpmstat' command. + + Old or large mailboxes can be cleared out with the 'vpmclear' command. diff --git a/site-tutorials/FAQ/EMAIL/07 b/site-tutorials/FAQ/EMAIL/07 new file mode 100755 index 0000000..2839ec6 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/07 @@ -0,0 +1,52 @@ +[07] WHAT IS GREYLISTING? HOW DOES HELP WITH SPAM OR UCE? + + SPAM that you receive can be forwarded to 'spam-bucket@sdf.org'. + This file is accessible to all users and the purpose of it is to help + identify spammer networks and spam content. + + WHAT IS GREYLISTING? + + Greylisting is a passive approach to dealing with spam. It allows the + SDF SMTP server to keep track of the SMTP servers that communicate with it + by establishing a tuple: IP of the sending server, address of the sender + and address of the recipient. When SDF receives a connection from an + unknown SMTP server it issues a 451, which basically means "I'm busy, + please retry later". This sort of response occurs normally for a multiple + of reasons everyday such as: The user is over quota, the file system is + full, the load average is too high and so on. A properly configured MTA + will follow the SMTP protocol and respect a 451 by using its default retry + interval which can be anywhere between 5 minutes to 60 minutes typically. + SDF's greylisting is only in effect for 1 minute from the sending server's + first attempt. This is well within a reasonable retry period of a + properly configured SMTP server. When the previously greylisted server + connects back within 20 hours of its first attempt, SDF accepts its + connection and allows the email to be delivered. The tuple is then + whitelisted for 72 hours. This also takes in account for other SMTP + servers on the same or neighbouring networks since greylisting on SDF only + matches numbers up to CLASS B/16 (255.255.0.0) and therefore the smaller + CIDRs and all host numbers are ignored. This allows greylisting to work + with massively large e-mail harvesting farms such as Gmail. + + Senders with SPF compliant headers are automatically passed without + being deferred. + + There is a simple utility called 'greylist' you can use to see what tuples + apply to you. Its important to note that if you do see a tuple in the + greylist that you known is legtimate it will always show up in the + autowhitelist, for 72 hours, when the sending host retries. Because it + is possible that a spam host could resend before they change their IP + address, you could receive that spam on a retry. However, it is unlikely + that they will retry and therefore you will always receive legitimate + email with a very low percentage of that possibly being spam. + + By default greylisting is enabled for all SDF members. If you would + like to disable it, which is not recommended, you may do so by typing + 'greylist -t'. You can re-enable it with the same command. + + MetaARPA members can also use the 'greylist -tw' command to create their + own rules to apply to mail delivery specific to their email addresses and + their domains. You must have greylisting enabled otherwise there will be + no need for a whitelist. This custom whitelist is a flat text file called + .wl in the user's home directory with a single email address on each row + of the file. The file can only contain email addresses and + meta-characters will be stripped and ignored. diff --git a/site-tutorials/FAQ/EMAIL/08 b/site-tutorials/FAQ/EMAIL/08 new file mode 100755 index 0000000..dd44f29 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/08 @@ -0,0 +1,70 @@ +[08] HOW DO I CONFIGURE SMTP AUTH WITH AN EMAIL CLIENT ON MY COMPUTER + + First - are you a META, VHOST, VPM or DIALUP member? If not, you will + not be able to use our SMTP server. + + SDF and SDF-EU SMTP servers require the use of SMTP AUTH mechanism + STARTTLS (which clients may refer to as 'TLS') for relaying. Your + 'secret' is set with 'setdialup' or 'mkvpm'. Your 'username' will be + your VPM or tenex.org domain. Alternatively you can set a RELAY IP if + you have a static IP address or a dynamic IP address that doesn't + change very often. + + Also, if you cannot access the SMTP server via port 25 (due to your ISP + blocking that port), you can use port 23, 53, 587 or 8080. + + ==============SETUP EXAMPLES FOR MACOS AND WINDOWS============== + + To use SMTP AUTH with your VHOST or VPM membership, you + will use the following information: + + SMTP server: 'mx.sdf.org' or 'sdfeu.org' + SMTP LOGIN: Your full domain name, appended with "@sdf.org" + SMTP PASSWD: Your secret which you have set with 'mkvpm' + + EXAMPLES for a VPM mailbox of 'bob@bob.freeshell.org' with a + password of 'bob' and an SMTP AUTH secret of 'FUBAR': + + Apple OS X w/ Mail.APP: + + Start the Mail.APP program. + Open preferences (CMD-,) + Click on + to add a new account. Fill in the following: + + Account Type: POP + Description: SDF VPM address + Email Address: bob@bob.freeshell.org + Full Name: Bob Freeshell + + Incoming Mail Server: mx.sdf.org + User Name: bob@bob.freeshell.org + Password: bob + + Select 'add server' .. + Outgoing Mail Server: mx.sdf.org + Server Port: 25 + Authentication: STARTTLS + User Name: bob.freeshell.org@sdf.org + Password: FUBAR + + Microsoft OutLook and LookOut Express + + $ mkvpm set FUBAR # where FUBAR is the SMTP password you want + + Open LookOut (or LookOut Distress) + Click TOOLS-->ACCOUNTS-->ADD-->MAIL + + pop3: mx.sdf.org + smtp: mx.sdf.org + + Account Name: bob@bob.freeshell.org + + Select ACCOUNT-->PROPERTIES-->SERVERS + Toggle on 'My server requires authentication" under Outgoing + + Settings + Choose "Log on using" + Account name: bob.freeshell.org@sdf.org + Password: FUBAR + Do not toggle on "Log on using Secure Password Authentication" + diff --git a/site-tutorials/FAQ/EMAIL/09 b/site-tutorials/FAQ/EMAIL/09 new file mode 100755 index 0000000..09a1e5a --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/09 @@ -0,0 +1,19 @@ +[09] WHY IS INCOMING EMAIL SOMETIMES DELAYED? WHERE IS MY MAIL? + + SDF has used UUCP (UNIX to UNIX CoPy) to transfer both incoming + and outgoing mail since the late 1980s. This is referred to as + a 'Store and Forward' method, so it is not always instantaneous. + + SDF does receive email directly using SMTP, but at the same + time also uses a secondary host which queues up email via UUCP + for pick up each hour via 'uucico' using the 't' protocol. The + result: sometimes you get your mail in a few seconds, sometimes + you have to wait a bit. This also means that if for some reason + the primary SMTP server at SDF is down, offline for maintenance + or on fire, email will still be written to an SDF UUCP queue for + future delivery rather than sit waiting in a foreign outbound + SMTP queue where it may be deleted or returned. + + All SDF hosted email domains use the SMTP primary and UUCP secondary + MX (Mail eXchanger) method with the except of VHOSTed domains which + have the option to use the UUCP secondary via 'mkvhost'. diff --git a/site-tutorials/FAQ/EMAIL/10 b/site-tutorials/FAQ/EMAIL/10 new file mode 100755 index 0000000..bf948a3 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/10 @@ -0,0 +1,17 @@ +[10] CAN I ASSIGN ALIASES TO FORWARD TO MY MAIN ADDRESS? + + In a way, yes. Basically the delimiter to use is '+'. You can then + use procmail (ARPA) to parse the To: header and route the email to + a file, software or another address. By default, all email addressed + this way will end up in your $MAIL file. + + Example: Userid is 'joe', email address is 'joe@sdf.org' + Aliases could be 'joe+private@sdf.org' or + 'joe+usenet@sdf.org' or + 'joe+mlist@sdf.org' + + While the '+' is documented in the SMTP standard, some html based + mailing lists may barf on it and render it useless. + + All MetaARPA members who use 'setvmail' to toggle on/off the various + 'domains' available at SDF may also use this aliasing technique. diff --git a/site-tutorials/FAQ/EMAIL/11 b/site-tutorials/FAQ/EMAIL/11 new file mode 100755 index 0000000..dc695cb --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/11 @@ -0,0 +1,64 @@ +[11] HOW DOES THE SDF MAIL SERVER WORK? IS IT RELIABLE? HOW? + + INTERNET Electronic Mail on SDF is handled by the 'sendmail' daemon + configured to answer up to 128 requests at a time. 'sendmail' implements + the TCP/IP SMTP (Simple Mail Transfer Protocol). The server is at any + given time working on 25-50 incoming/outgoing pieces of mail with a queue + of just under 200 messages (as of 31-Mar-06). + + IS IT RELIABLE? + + Yes, it is reliable. However, it is not recommended for emergencies. + If you are dying, please call 911. Do not use email. Likewise, if + you need to communicate something quickly, please call the recipient. + + IF THE MAIL SERVER IS DOWN, WHERE DOES MY MAIL GO? DO I LOSE IT? + + Absolutely not. All SMTP mail servers should be configured to retry + to send email to a recipient SMTP server at a set interval for, + at the very least, 5 days before returning to sender. + + SDF is configured to retry to send pending your outgoing messages every + 30 minutes for 5 days before returning them to you. + + Again, no properly configured sending server is going to dump your + email just because the server didn't respond the first time, or the + second time or even the 30th time. It will take a server being down + the good portion of a week for mail to be 'bounced' back to the sender. + You may assume that it works otherwise, but that just is not the truth. + + SDF also has secondary MXes (Mail eXchangers) which can accept SDF + email during the very rare occassions that the primary MX is down + for maintenance or otherwise. This email is then queued via UUCP + (UNIX to UNIX CoPy) and is polled by the mail server every 60 minutes. + + DOES SDF FILTER EMAIL BY CONTENT? + + ABSOLUTELY NOT! Your email is yours. We honestly have no time and no + desire to scan email content. Regardless, we find the idea of content + scanning highly unethical. + + DO YOU BLOCK OR WHITELIST ANY SMTP SENDING SERVERS? + + SDF, like other organizations, uses the Open Relay Database ordb.org. + The ORDB is a very reliable method of preventing reception from rogue + SPAM senders. It essentially denies reception for email from hosts + that are either purposely or accidentally configured to allow anyone + to send email to anyone through them. It also tracks senders that do + not have a PTR record (a DNS reverse look up pointer). + + You possibly will still receive spam as it is an unfortunately + inevitability with internet email these days. The best words of + advice is to not use your email address on the WWW, or if you must, + obscure it in such a way that only a human could figure it out. + + We also feel that if you want to filter your own email, then it is up + to you. You also deserve to receive every email directed towards you + and we should not, in any way, censor or filter email destined to you + with exception of the highly regarded ORDB project. + + We recommend that any filtering you do be done offsite. Most client + email programs such as Mail.APP (MACOS X) will do a sufficient job at + filtering 'junk' for you. While procmail could be used for the same + purpose, it is highly more advantagous for you to not use SDF's CPU but + rather just download all of your email and filter it on your machine. diff --git a/site-tutorials/FAQ/EMAIL/12 b/site-tutorials/FAQ/EMAIL/12 new file mode 100755 index 0000000..1d374fa --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/12 @@ -0,0 +1,41 @@ +[12] WHAT ARE THE LIMITS ON SENDING EMAIL FROM SDF? + + There are no limits on the number of messages you can send from SDF + as long as it falls within the guildelines of the AUP. That basically + boils down to: Send messages to your friends all you'd like, but + under no circumstances use the SDF mail server to send retaliatory or + bulk/spam email. If you do this, you will lose your account ASAP. + + MESSAGE SIZE: Approximately 100MB, total size (header/body/attachments) + + This has changed (increased) over the years and probably will continue + to increase as pipes fatten and disk prices drop. Historically it + has been as low as 1MB during the early to mid 1990s. It has increased + over the past few years from 5mb, 8mb, 10mb, 16mb, 20mb and 30mb. + + MAX NUMBER OF RECIPIENTS: 20 addresses. + + This is the number of people in the To:, Cc: and Bcc: lines in your + header that can receive a single piece of email from you. If you are + going to send email to so many people on a regular basis, we suggest + the MLIST membership. + + Some server info: + + MAX NUMBER OF SERVERS: 128 + + We currently allow up to 128 simultaneous server connections. The + average number of active connections we have at the time of writing + this is less than 50. What this means is that, there would have to + be over 128 connections before the server begins denying connections. + Those incoming emails would not be lost, but deferred for when the + email flood dies down. For more information about how SMTP works, + see the previous entry for this FAQ. + + QUEUE RUN: 60 minutes + + When an outgoing email it deferred, it remains in the mailq queue for + up to 5 days before being returned to sender. Every message in the + queue is retried every 60 minutes or roughly 120 times before it is + returned to you. For more information about how SMTP works, see the + previous entry for this FAQ. diff --git a/site-tutorials/FAQ/EMAIL/13 b/site-tutorials/FAQ/EMAIL/13 new file mode 100755 index 0000000..e3282a4 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/13 @@ -0,0 +1,17 @@ +[13] CAN I ACCESS MY EMAIL SECURELY VIA THE WEB? + + Yes, SDF provides access to email using IMAP over a Secure Socket + Layer (SSL) via the Squirrel Mail HTML interface. This application + is highly customizable with many features. You can access the client: + + https://mx.sdf.org + + The certificate is self-signed at the moment, so your browser may warn + you prior to you accepting it. + + Because this webmail interface is a bit experimental, you may find that + some preference settings will cause it to not load. If you ever get + in that situation, you can run 'reset-webmail' at the shell (or from + the maintenance shell by logging into 'ol.freeshell.org') to clear + your preferences and reset them back to the defaults. This will not + remove your address book or your signature file. diff --git a/site-tutorials/FAQ/EMAIL/14 b/site-tutorials/FAQ/EMAIL/14 new file mode 100755 index 0000000..d38bc16 --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/14 @@ -0,0 +1,14 @@ +[14] WHERE IS PROCMAIL LOCATED ON THIS SYSTEM? + + The procmail executable is located on the mailserver. You will not + be able to access it via an NFS client and it should only be called + from your .forward file similarly to this: + + "|exec /usr/pkg/bin/procmail -f-||exit 75 #$LOGNAME" + + For best performance and less of a burden on shared resources it + is asked that you only do mail processing in /tmp or in $MAILDIR. + + Do not process mail in your home directory. Calling procmail from + or performing mail processing on an NFS mount can sometimes result + in data loss. diff --git a/site-tutorials/FAQ/EMAIL/15 b/site-tutorials/FAQ/EMAIL/15 new file mode 100755 index 0000000..69b2fdd --- /dev/null +++ b/site-tutorials/FAQ/EMAIL/15 @@ -0,0 +1,29 @@ +[15] WHERE IS MY EMAIL!!?? ITS IN WEBMAIL BUT NOT THE SHELL! + + It's OK, your email has probably been sorted by the email client or + protocol you have used to read your email. First be sure that you + are looking on the right group of machines. If you are using webmail + on the SDF cluster, the URL you use is https://mx.sdf.org. If you are + using webmail on the SDF MetaArray, the URL you use is https://ma.sdf.org. + + Some quick places to check for your email on those groups of machines + at the shell would be: + + $HOME/mbox + $HOME/mail/mbox + $HOME/Mail/received + + Traditionally your email is received and stored in what is called a + 'spool file'. This file is defined by the $MAIL environment variable. + + 'mail', 'mailx', 'mutt', 'elm' and such always read mail from that + defined location unless told otherwise. + + However, programs such as 'pine' and 'alpine' insist on moving your + email out of the spool and into your home directory. This is their + default behaviour and can be confusing to new users. They use the + 'IMAP' or Internet Message Access Protocol. The webmail system also + uses IMAP. It does have its advantages once you get over the shock + of thinking you've lost your email. You haven't though, IMAP thinks + it has improved things for you and maybe you'll feel that way someday. + diff --git a/site-tutorials/FAQ/GAMES/01 b/site-tutorials/FAQ/GAMES/01 new file mode 100755 index 0000000..3e4c50c --- /dev/null +++ b/site-tutorials/FAQ/GAMES/01 @@ -0,0 +1,6 @@ +[01] HOW DO I PLAY GAMES HERE? + + Most games on SDF are located in /usr/pkg/games. They usually + use 'vi' movement keys to play, which means h,j,k & l + + To get a list of most games, type 'games' at the $ prompt. diff --git a/site-tutorials/FAQ/GAMES/02 b/site-tutorials/FAQ/GAMES/02 new file mode 100755 index 0000000..5f9367a --- /dev/null +++ b/site-tutorials/FAQ/GAMES/02 @@ -0,0 +1,24 @@ +[02] WHAT INTERESTING MULTIUSER GAMES CAN I PLAY HERE? + + netris Two player tetris game. Most players hang out + in 'com'. To start a game, one player will run + 'netris -w' while the other runs 'netris -c sdf' + + mazewar Mazewar is a multi player hunt and shoot maze + game. Players can come and go as they please. + + hunt Hunt is a bit more involved than mazewar. read the + man page before entering. Its a bit like a cross + between nethack and mazewar. Just a simplified + arena where you can blow up your friends. + + mdg Multiuser Dungeon Game. Up to 9 players play + this 2D 'hack' style adventure game. Players + can come and go as they please. + + phantasia Phantasia a matrix based adventure game. Players + can come and go as they please. + + dopewars A drug trading game based in (for the most part) + New York City. Players buy and sell drugs, hire + pushers, get loans and pay off debts. diff --git a/site-tutorials/FAQ/GAMES/03 b/site-tutorials/FAQ/GAMES/03 new file mode 100755 index 0000000..2c514cf --- /dev/null +++ b/site-tutorials/FAQ/GAMES/03 @@ -0,0 +1,15 @@ +[03] WHAT INTERESTING SINGLE USER GAMES CAN I PLAY HERE? + + nethack Based on 'hack' which was based on 'rogue', this + 2D adventure game takes you deep into the depths + of the earth where you will find the greatest + treasures and most likely, your grave. + + sokoban 2D push and traps game. + + wand Wanderer is a 2D push and traps game, similar to + sokoban but with incredible ASCII graphics. + + robots The robots are coming to get you. + + robots2 The more advanced robots are coming to get you. diff --git a/site-tutorials/FAQ/GAMES/04 b/site-tutorials/FAQ/GAMES/04 new file mode 100755 index 0000000..0df0475 --- /dev/null +++ b/site-tutorials/FAQ/GAMES/04 @@ -0,0 +1,22 @@ +[04] HOW DO I PLAY HUNT? + + DEATHMATCH style games got their start in the late 1960's with + SPACEWAR. HUNT is essentially a 2D multiuser maze game where + the goals are: Blow up your friends and avoid being blown up + yourself. Its not as complicated as it seems. + + Movement keys are: + K + H L + J + + These are known as 'VI' keys and apply to most games. To fire a + charge at an opponent, you must be heading in that direction. Use + the SHIFT key and a VI key to change direction. + + There are a number of ways to kill other players. You can use + single shots, grenades, satchel bombs and slimes. These are all + documented in the man page. But to get you started, '1' will fire + a single shot, '2' a grenade and so on. + + For more information, read the manual page 'man hunt' diff --git a/site-tutorials/FAQ/GAMES/05 b/site-tutorials/FAQ/GAMES/05 new file mode 100755 index 0000000..72736e9 --- /dev/null +++ b/site-tutorials/FAQ/GAMES/05 @@ -0,0 +1,22 @@ +[05] HOW ARE NETRIS RANKINGS KEPT IN COM? + + When you play NETRIS matches in COM, player rankings are stored and + tallied after each new match. Ranking is first by number of matches + played, then by wins. This allows for the biggest winners and losers + to be listed at the top. Only 20 rankings are listed and are considered + for the HALL of FAME. + + The HALL of FAME is tallied at the beginning of each quarter (beginning + 01-JAN). At that time, the ranking list is cleared and those scores are + tallied to create an updated HALL of FAME. + + Because there is potential for conflicts between usernames on sdf-eu.org + and sdf.org, com makes a distincting by attributing either + '@sdf' or '@sdf-eu' to the username in the rankings. However, you + still need to specify the actual host name your opponent is playing + from when starting a new match. + + History on players is also available. Such as, you can see how many + times a potential opponent lost to a player you might beat regularly. + + For more information, check 'com'. diff --git a/site-tutorials/FAQ/GOPHER/01 b/site-tutorials/FAQ/GOPHER/01 new file mode 100755 index 0000000..2a413c7 --- /dev/null +++ b/site-tutorials/FAQ/GOPHER/01 @@ -0,0 +1,27 @@ +[01] WHAT IS GOPHER AND GOPHERSPACE? + + GOPHER is a network protocol that enables multiple servers + to create a single, uniform filesystem that transcends system + architecure and operating systems (GOPHERSPACE). With GOPHER, + information holds the most value. Since presentation is uniform + across GOPHERSPACE, the user does not encounter any challenges + in 'learning' a new site. Because of its simplicity and its + emphasis on the importance of informational texts, GOPHER is + ideal for those who are visually impared. + + A GOPHER client can be called from SDF by typing 'gopher'. A URL + (Uniform Resource Locator) can be given as an argument. The client + itself is a document examiner. You can use it to search text documents + or download files. Clients under X11, Macintosh and other systems + can view pictures, and stream audio / video. + + Many people think the http protocol has deprecated gopher, but that + just isn't true. Where do you think GOPHERs live? underground. + + When you build your GOPHERSPACE on SDF, you are contributing to an + underground network of systems that still believe in the gopher + protocol. There is no commercialism, no banner ads, no spam, no + pop-up ads. GOPHER gives you what you want: information and files + (in any form) without the silliness of HTML and clumsiness of websites. + No HTML development is needed to contribute to GOPHERSPACE.. since + sites are uniform, all you need to do is upload or create your files. diff --git a/site-tutorials/FAQ/GOPHER/02 b/site-tutorials/FAQ/GOPHER/02 new file mode 100755 index 0000000..f9b9a68 --- /dev/null +++ b/site-tutorials/FAQ/GOPHER/02 @@ -0,0 +1,53 @@ +[02] HOW CAN I SETUP MY GOPHERSPACE? + + This document was written with 'mkgopher' in mind. You may be + managing your space from the UNIX shell, but since 'mkgopher' + uses common UNIX commands, this should still be helpful. + + SETUP + ---- + This will create the directory for the top level of your GOPHERSPACE. + Your URL will be "gopher://sdf.org/1/users/username" (or + "gopher://sdf-eu.org/1/users/username") where 'username' is your UNIX + user id. During your 'mkgopher' session, this directory will be + present. If you don't create anyfiles or directories, the space + will be removed to keep our site clean. + + NOTE: Unfortunately, most web browsers do not render gopher pages + properly, let alone grok Gopher URLs. + + TITLE + ----- + Your GOPHER URL is gopher://sdf.org/1/users/login (or + gopher://sdf-eu.org/1/users/login) where 'login' is the UNIX user id + you use to login to SDF. Your SITE name is your 'login'. Since that + is limited to 8 characters, you can use TITLE to set a 50 character + or less title for your site. + + DESCRIBE + -------- + For each directory you create in your GOPHERSPACE you can use the + DESCRIBE command to create a detailed description. This entry is + limited to 9 lines of roughly 50 characters per line. + + MKDIR + ----- + Create a subdirectory within your GOPHERSPACE. + + RMDIR + ----- + Remove a subdirectory within your GOPHERSPACE. + + PICO + ---- + Edit and publish a document. You can also use this as a way to + cut and paste text from your computer terminal to SDF. ASCII upload + mode can also be used, just start sending text once you open the + editing buffer. + + UPLOAD + ------ + This should be used for large text files or binary data that cannot + be transmitted via an ASCII transfer. UPLOAD uses the ZMODEM file + transfer protocol which some terminal emulators support (TeraTerm ..) + diff --git a/site-tutorials/FAQ/GOPHER/03 b/site-tutorials/FAQ/GOPHER/03 new file mode 100755 index 0000000..73ece97 --- /dev/null +++ b/site-tutorials/FAQ/GOPHER/03 @@ -0,0 +1,4 @@ +[03] WHERE CAN I FIND A LIST OF GOPHER SITES? + + Checkout gopher://sdf.org and follow 'Other GOPHER sites' + diff --git a/site-tutorials/FAQ/MDNS/01 b/site-tutorials/FAQ/MDNS/01 new file mode 100755 index 0000000..dbb81fc --- /dev/null +++ b/site-tutorials/FAQ/MDNS/01 @@ -0,0 +1,23 @@ +[01] WHAT IS A DOMAIN NAME SYSTEM (DNS)? + + Domain Name System (DNS) is the registration of a domain namespace + with a TOP-LEVEL (root) domain name servers on the internet. + + There seems to quite a misunderstanding among internet newbies regarding + what DNS is .. to make it clear, here is a short list of what DNS is + and isn't. + + A DNS record lists: + + * The IP addresses for the domain and hosts associated with the domain. + * The aliases associated with the domain. + * The mail exchanger servers responsible for the domain. + + A DNS record is NOT: + + * webservice + * mail service + * ftp, telnet, finger .. et cetera + + In short DNS basically is a DOCUMENT which states where services can + be found, but no services (other than the information) is provided. diff --git a/site-tutorials/FAQ/MDNS/02 b/site-tutorials/FAQ/MDNS/02 new file mode 100755 index 0000000..843bcb7 --- /dev/null +++ b/site-tutorials/FAQ/MDNS/02 @@ -0,0 +1,22 @@ +[02] WHAT IS DYNAMIC DNS? + + Dynamic DNS is basically an answer to someone who always wants + 'xyz.com' to map to a changing IP address. Since there are a + limited number of IP addresses available, many providers will + assign their dialup, ISDN, DSL and cable subscribers an IP address + taken from a pool of addresses that will only be assigned to them + for the duration of their session. If your session is dropped or + you reset your connection, you have a chance of losing your IP + assignment. + + By using dynamic updates, you can tell SDF your new IP address as + soon as you are assigned one and SDF will begin resolving your + MDNS hostname to your IP. + + The default for mdns and currently what we offer our users is: + + login.mdns.org - where login is your username. + + You can run whatever services you wish to run on your host, keeping in + mind that you are bound not by SDF's AUP, but rather, your ISP's AUP. + diff --git a/site-tutorials/FAQ/MDNS/03 b/site-tutorials/FAQ/MDNS/03 new file mode 100755 index 0000000..5414c73 --- /dev/null +++ b/site-tutorials/FAQ/MDNS/03 @@ -0,0 +1,10 @@ +[03] HOW DO I SET MY DYNAMIC IP ADDRESS? + + You can set your dynamic IP address with the 'mdns' command. + Simply run the command just as so: + + $ mdns 10.0.0.1 + + Where 10.0.0.1 is your currently assigned IP address. Updates + will occur within a minute of you running the command. + diff --git a/site-tutorials/FAQ/MEMBERS/01 b/site-tutorials/FAQ/MEMBERS/01 new file mode 100755 index 0000000..fc053a3 --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/01 @@ -0,0 +1,148 @@ +[01] WHAT ARE THE MEMBERSHIP LEVELS? HOW DO I BECOME ONE? + +The best way to donate or to pay dues is to use PAYPAL.COM. The contact +address via PAYPAL is 'paypal@freeshell.org' For the land mail address, +go to the bottom of this file or type 'address' at the shell. + +Here is a break down of the SDF donation schedule. + +These are SUGGESTED amounts voted upon by the ARPA membership. +In order to receive your premium, you must donate the suggested +amount at the very least. + +FREE Default Shell (users) +-------------------------- + . Access to email (elm/mutt/pine/mailx) OR pop3 + . Local chat (com/send/bboard) + . Choice of UNIX shell + . Hundreds of shell utilities, games and programs + . Network utilities: ping, finger, whois, traceroute + . 20 MB disk quota for your email + . 20 MB disk quota for your home directory + . 20 MB disk quota for your webspace (yourlogin.freeshell.org) + . 20 MB disk quota for your gopherspace +(Inbound FTP, scp and sftp access is available after validation) + +$36 (one time initiation fee) LIFETIME ARPA Membership (arpa) +------------------------------------------------------------- + . Use of ARPA utilities (telnet/rlogin/ftp/nslookup) + . Use of Supplementary network utilities (ssh/irc/tf) + . Use of System Development Kit (gcc/g++/f77/perl/python) + . 150 MB / 1 file quota for your email + . 150 MB / 5000 file quota for your home directory + . 150 MB / 5000 file quota for your webspace + . 150 MB / 5000 file quota for your gopherspace + +$10 MONTHLY DIALUP (user/arpa) +----------------------------- + . PPP (network) or UNIX login + . 1200bps to 52000bps analogue + . 64kbps to 128kbps ISDN + . Outbound SMTP access + . access all over the US and Canada + +DSL (user/arpa) +------------------------------ + . dues vary by location + . 256kbps - 7mbit ADSL + . SMTP auth access (via 'setdialup') + . dialup access (for emergency use) + +$20 ANNUAL DNS (arpa) +--------------------- + . direct access to your dns database + . secondary served on a seperate network + . we handle 'soa' so you don't have to + . access to all other record types + . updates incorporated every 2 hours evenly + +$20 ANNUAL VPM (arpa) +--------------------- + . 20 vpm (virtual pop3 mailboxes) + . smtp access via AUTH or IP + +$15 ANNUAL REGIS (arpa) +----------------------- + . Domain registration + . Includes the DNS membership + . VHOSTers who pay their dues annually get domain + registration in com, net and org for free + +$5 - $20 MONTHLY VHOST (arpa) +----------------------------- + . dns for 'yourdomain.anything' + . 100mb to 1000mb daily transfer quota + . direct access to your html + . mail service, autoresponse & procmail + . private accesslog w/ monthly reports + . SQL database access + . domain registration with annually paid dues + + VHOST membership quota tiers: + -------------------------------- + $5/mo 100mb daily + $10/mo 250mb quota + $14/mo 500mb quota + $20/mo 1000mb quota + +$30 ANNUAL POINTER (arpa) +------------------------- + . allows you to point an additional domain + name to an existing VHOST membership + . DNS+VPM memberships are included + +$30 ANNUAL DBA (arpa) +--------------------- + . MySQL database access + . 100mb quota + all modules + . php and cgi accessible + +$20 MONTHLY SERVER (arpa) +------------------------- + . ability to run a server (mud, moo, irc) + . background process on private server + . access to compiler & crontab + +$20 ANNUAL TWEAK (arpa) +----------------------- + . ability to modify your 600mb quota + . 100mb for each additional tweak membership + +$30 ANNUAL MLIST (arpa) +----------------------- + . ability to run a list of up to 500 members + . mailing list archiving and digesting + . direct management of your list + . configuration via 'mkvlist' + +$36 ANNUAL MetaARPA (arpa) +-------------------------- + . trusted, card carrying ARPA member + . addtional development tools (clisp/ecl/git/jikes/kaffe/rails/scheme) + . cron jobs managed via 'mkcron' + . user group/access list via 'setgrp' + . ssh tunnel/forwarding w/ alt port + . dynamic domain nameservice (mdns.org) + . ability to toggle email addresses via 'setvmail' + . ability to run 'screen' for non-bot purposes. + . 200 MB / 1 file quota for your email + . 200 MB / 15000 file quota for your home directory + . 200 MB / 15000 file quota for your webspace + . 200 MB / 15000 file quota for your gopherspace + +HOW DO I DONATE? + +You can send cash (USD, YEN or EUR), cheque or a money order to: + +SDF Public Access UNIX System +PO Box 17355 +Seattle WA 98127 + +(OR) + +PAYPAL.COM ID: paypal@FREESHELL.ORG + +**BE SURE TO SEND YOUR 'login' NAME WITH YOUR DONATION** + +(INTERNATIONAL users, use an 'international money order' from your bank) + diff --git a/site-tutorials/FAQ/MEMBERS/02 b/site-tutorials/FAQ/MEMBERS/02 new file mode 100755 index 0000000..0cb92fa --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/02 @@ -0,0 +1,26 @@ +[02] WHEN ARE MY MEMBERSHIP DUES DUE? + + Membership dues reminders are sent to your SDF email address on the + first of every month or the month of your membership anniversary. + + Membership dues are due on the 1st of the month and will be marked + as past due by the 15th. If you join a membership after the 15th of + the month, you will be given a credit of up to two weeks so that your + due date will be on the 1st of the month. Memberships are not removed + automatically. If you decided to remove a membership follow the + instructions in the email you receive when your dues are due. + + You are welcome to check the status of your DUES at anytime by typing + 'dues'. It will list your current memberships, the dues and when those + dues are due. Also, if your account is PAST DUE, 'dues' will display + each time you login to the system. + + When paying your dues, please be sure to clearly state the following + information: + + 1. your login (user id) + 2. your membership level + 3. domain name (VPM/DNS/VHOST only) + 4. period (ie, for Apr-May) + + Thank you for supporting SDF! diff --git a/site-tutorials/FAQ/MEMBERS/03 b/site-tutorials/FAQ/MEMBERS/03 new file mode 100755 index 0000000..4d12399 --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/03 @@ -0,0 +1,20 @@ +[03] SUMMARY OF EXTENDED COMMANDS + + This commands are available to ARPA members. However, if you have not + activiated your extended membership (by paying membership dues) then + you will only get to 'play' with these commands. ;-) + + COMMAND MEMBERSHIP DESCRIPTION + --------------------------------------------------------------------- + mdns MetaARPA Update your dynamic DNS + mkcron MetaARPA Manage your cron jobs + setvmail MetaARPA Toggle domains you want to use for mail + setgrp MetaARPA Add/Remove users from your access list + mkgopher all Initialise and manage your gopherspace + mkhomepg users Initialise and manage your webspace + mkvhost ARPA Manage your webspace / DNS for your domain (VHOST/DNS) + mkvlist ARPA Manage your mailing lists + mkvpm ARPA Manage your virtual POP3 mailboxes (VHOST/VPM) + mysql ARPA Login to your mysql database (DBA) + tweak ARPA Adjust and increase your disk quota (TWEAK) + diff --git a/site-tutorials/FAQ/MEMBERS/04 b/site-tutorials/FAQ/MEMBERS/04 new file mode 100755 index 0000000..b2ad9c2 --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/04 @@ -0,0 +1,26 @@ +[04] HOW CAN I CHANGE MY USERNAME? CAN I HAVE MULTIPLE ACCOUNTS? + + If you are an ARPA member, it is possible to change your username + by making a one time donation of $10 to SDF. Please follow this + procedure if you wish to change your username: + + 1. login as 'new' and create your new userid + 2. send in your $10 donation via our PO Box or paypal and + state the old username and the new username. + 3. specify if you wish to have email forwarded from your old + username to your new username. + + FEATURES: + + * All files (including mail, gopher and web files) will be transfered + from your old user account to your new user account. + * Creation, validation and membership start dates transfer to new account + * Forwarding will last 60 days (optional) + * Your userid will be restricted from use for 60 days. + * Your personal URL (if you have one) will be modified to reflect + your new username. + + CAN I HAVE MULTIPLE ACCOUNTS? + + It is interesting that you have to ask. Why not? If you love SDF + that much, use it and enjoy it! diff --git a/site-tutorials/FAQ/MEMBERS/05 b/site-tutorials/FAQ/MEMBERS/05 new file mode 100755 index 0000000..ef219a6 --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/05 @@ -0,0 +1,21 @@ +[05] WHEN AND HOW ARE ACCOUNTS EXPIRED? + + user (both prevalidated and validated) accounts are the only login + accounts subject to automated purges. These purges occur monthly and + are based on your last UNIX login time if you are validated, or the + number of days since your account was created if you are prevalidated. + + Prevalidated accounts are automatically purged whether they are in + use or not approximately 600 days of their creation. Validated accounts + will expire if the user does not login at least once during a 2 year + period. + + ARPA members are exempt from inactivity purges, though an ARPA member + may lose their membership by violating the AUP. When disk space becomes + an issue, ARPA members who have not logged in for 1 year or longer may + have their files compressed. No files will be deleted and the user is + welcome to login an uncompress files as needed. + + Keep in mind that using SDF for only webmail or pop3/imap service does + not log you in to the UNIX system. You will have to login to the shell + account regularly to avoid being flagged as an inactive account. diff --git a/site-tutorials/FAQ/MEMBERS/06 b/site-tutorials/FAQ/MEMBERS/06 new file mode 100755 index 0000000..6176cdc --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/06 @@ -0,0 +1,89 @@ +[06] CAN I GET A HISTORY OF ARPA MEMBER VOTES? + + ARPA member votes are usually called to help shape membership policies + and dues. A vote will usually stem from a discussion on the BBOARD if + the topic seems like a worthwhile voting topic. Votes are handled + through the 'vote' command. + + 1994 SUSTAINING MEMBERSHIP DUES (pre-ARPA) + + A meeting was held at The Great Outdoors sandwich shop at Preston RD + in Dallas. There were 10 SDF members in attendance. There an idea + was proposed to create an SDF Membership to help with operational + costs. Prior to this, donating to SDF was purely voluntary. In order + to make the membership desirable, it was discussed and decided that + the 'ARPA Network Services' be a premium and available to SDF members + that supported SDF. A vote was called on the system to set the dues + at $5/month. + + 1996 ARPA MEMBERSHIP DUES REVIEW + + A meeting was held at Pasand Indian Restaurant at Coit Rd and Campbell RD + in Richardson. There were 16 SDF members in attendance. The group + proposed a review of the ARPA membership dues as there was only 1 or + 2 people paying the monthly dues. A discounted schedule was proposed + and later voted on SDF to have the following dues schedule: + + $8 - Monthly + $20 - Quarterly + $36 - Bi-annually + $60 - Annually + + It was also noted that ARPA membership would allow SLIP/PPP via SDF's + dialup numbers as well as an IRC BOT process. + + 1998 ARPA MEMBERSHIP REVIEW AND SUPPLEMENTAL MEMBERSHIPS + + In order to make the membership dues easier to pay, it was proposed + that it become a one time 'initiation fee'. It was then discussed what + would be considered an appropriate one time initiation fee. A survey + was run on the system with roughly 200 responses with ranges between + $200 - $10. It was decided that the intiation fee for SDF ARPA + membership would be set at $36 so that it would be large enough so + people would take the membership seriously, but still affordable and + not a financial burden. Also a vote was taken on new supplemental + memberships with specific features for ARPA members. These supplemental + features would help with operational costs: + + users - free + arpa - $36 one time + 100mb home, 100mb web, 100mb mail + telnet, ssh, ftp, ytalk, irc, snarf, + gcc, g++, perl, python, ruby, php + dns - $20 a year + domain name service for an internet domain name + vhost - $14 a month + webhosting for your domain + dns, vpm and a private http log + server - $20 a month + ability to run a server (talker, mud, bbs) + background process on a private server + access to crontab + robot - $10 a month + ability to run an IRC bot + background process on a private server + access to crontab + tweak - $20 a year + ability to customise and increase your quota + vpm - $20 a year + 20 'virtual pop3' mailboxes + + 2003 METAARPA MEMBERSHIP + + MetaARPA was proposed as a sustaining membership and a tier above the + one time ARPA membership. This membership was designed to allow for + IRC bots and server processes which were previously their own + memberships. MetaARPA would also have advanced programming privileges + to languages such as lisp, java and other CPU / memory intensive + systems which would be run on dedicated MetaARPA-only servers. Software + collaboration was also made available with the addition of individual + member groups, as well as a shared bin directory which could be made + available to all SDF users. + + MetaARPA - $36 a year + - MetaARPA only server + - crontab (mkcron) and background processes (screen) + - access to advanced programming languages (lisp, java, squeak) + - shared public bin dir (/sys/sdf/bin) + - user collaboration (setgrp) + diff --git a/site-tutorials/FAQ/MEMBERS/07 b/site-tutorials/FAQ/MEMBERS/07 new file mode 100755 index 0000000..1d1598e --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/07 @@ -0,0 +1,20 @@ +[07] HOW DOES MEMBER VOTING WORK? + + Voting on SDF is a non-regular privilege of the ARPA membership. + Typically the 'bboard' is used to discuss new and current features + and how members would like to see them introduced or updated. If + 10 or more ARPA members are involved in a discussion, such as the + review of membership dues, or creation of a new membership, then a + vote can be called once a consensus as been reached. + + Voting works by majority rule and in the event of a 50/50 between + two differing outcomes, a new vote can be called with a finer grain + of selections. + + You may cast and re-cast your vote at any time during the duration + that the polls are open (typically 3 weeks). + + Voting is a very important activity of the ARPA membership. ARPA + members are given this has an oppourtunity to help shape what SDF is. + + To participate in an active vote, type 'vote' at the shell. diff --git a/site-tutorials/FAQ/MEMBERS/08 b/site-tutorials/FAQ/MEMBERS/08 new file mode 100755 index 0000000..af75445 --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/08 @@ -0,0 +1,27 @@ +[08] HOW CAN I RUN X11 APPLICATIONS REMOTELY FROM SDF? + + The following is meant to be a generic setup which should work on + most UNIX systems. If you have a non-UNIX setup, you might have + to try some experimentation on your own or ask on the bboard. + + First of all, you must have the following: + + 1. Are you running X11R6 on your computer? + 2. If you are firewall or NATed, do you have ports 6000-6063 open + and forwarded to your computer's IP address? + 3. Do you have an SSH client? + 4. Do you have SDF MetaARPA membership? + + If you answered no to any of these, you cannot proceed. + + 1. Start your X11R6 server on your computer if you haven't already + done so. Type 'X' or 'startx' at your local shell prompt. + 2. Type 'xhost +' at your shell. + 3. ssh -X -p443 YOURLOGIN@tty.freeshell.org + 4. Once logged into an SDF machine, type 'export DISPLAY=$MYIP:0.0 + (Check that 'MYIP' is set, if it is not, then set it to your + IP address or the IP of the NATing router.) + 5. Type 'xeyes' and knock yourself out. + + If you've run into any snags, double check your configuration. If + you still need help, then try asking for help on the 'bboard'. diff --git a/site-tutorials/FAQ/MEMBERS/09 b/site-tutorials/FAQ/MEMBERS/09 new file mode 100755 index 0000000..8b7b422 --- /dev/null +++ b/site-tutorials/FAQ/MEMBERS/09 @@ -0,0 +1,12 @@ +[09] WHAT IS 'FREEIRC' SUNDAY ALL ABOUT? + + Validated 'users' are permitted to access public, or private if + authorized, IRC networks from 'ukato.freeshell.org' or 'sdf-eu.org' + on any Saturday between 00:00:01 through Sunday 23:59:59 UTC. + To access irc during this time, just type 'freeirc' at the shell. + + 'users' are expected to behave themselves and abide by the SDF AUP. + + All users using 'freeirc' 5 minutes prior to 23:59:59 UTC will be + notified that the free period is nearly over. If you are interested + in using 'irc' anytime during the week, check out 'arpa'. diff --git a/site-tutorials/FAQ/MISC/01 b/site-tutorials/FAQ/MISC/01 new file mode 100644 index 0000000..74258e0 --- /dev/null +++ b/site-tutorials/FAQ/MISC/01 @@ -0,0 +1,23 @@ +[01] HOW OFTEN DO YOU BACKUP YOUR SERVERS? + + Back ups are done incrementally at a minimum of a weekly basis for + MetaARPA members. The majority of files on the file servers get + backed up at that time provided there is space. The priority is + SDF specific files, then MetaARPA, ARPA and finally USERS. + + The only files that are not backed up are the ones in /tmp across all + clients and servers. If you use /tmp for storage it should only be + considered as short term storage. For instance, if a client machine + has to be replaced due to hardware failure, you are not guaranteed + that files in /tmp will appear on the replacement host. + + The back up disk array is only brought online during the weekly + backup session. It is not accessible to members. + + File restores can be requested by posting a message on the bboard + and specifying the full path location to the files or + directory. You will receive an email with the location of your + restored files. + + Its recommended to use the SDF 'delete, undelete and expunge' utilities + which you can alias rm to in your .profile. diff --git a/site-tutorials/FAQ/MISC/02 b/site-tutorials/FAQ/MISC/02 new file mode 100644 index 0000000..09b28e4 --- /dev/null +++ b/site-tutorials/FAQ/MISC/02 @@ -0,0 +1,8 @@ +[02] CAN I TOUR YOUR FACILITIES? + + Someday, yes! But for now, sorry, no. + + We have ASCII diagrams of what our setup looks like in ~ftp/pub/sdf. + + We're wanting to move into a warehouse (live/work space) and are + going to build a raised floor machine room for all our computers. diff --git a/site-tutorials/FAQ/MISC/03 b/site-tutorials/FAQ/MISC/03 new file mode 100644 index 0000000..7268b34 --- /dev/null +++ b/site-tutorials/FAQ/MISC/03 @@ -0,0 +1,21 @@ +[03] HAS SDF EVER BEEN COMPROMISED? + + The first time was in 1991 when a person from France dialed in + to our machine (then running SystemVr3.2 1.0) and was able to get + root (administrative) access. He promptly notified us. + + During our short lived stint of attempting to run SDF under 'linux' on + IBM compatibles the system was compromised a number of times, but the + individuals who did it were much more secretive and malicious. For + each case users were forced to change their passwords and patched + software was installed (though this of course introduced other bugs + that could be found later on) + + After dumping linux and x86 in favour of return to real computers, we + have not had any major security issues. We are however, just as vigilant + to be sure that your account here on SDF is safe and that any security + issues are resolved quickly before public announcements (cert, et cetera) + + Please NOTE, an administrator will NEVER ask you for your password. + Anyone impersonating an administrator is BREAKING THE LAW. You can + report them to your local authorities if you identify them. diff --git a/site-tutorials/FAQ/MISC/04 b/site-tutorials/FAQ/MISC/04 new file mode 100644 index 0000000..0bdf950 --- /dev/null +++ b/site-tutorials/FAQ/MISC/04 @@ -0,0 +1,12 @@ +[04] WHERE ARE ALL THE BANNER ADS? + + To us, banner ads and advertising on the NET is a NEW thing. + I personally (smj) did not want to see the commercialisation + of the internet. Its VERY important to me that there are no + banner ads and that SDF's 'web' presence remain stark and + minimal. If you've noticed, I've only used non-text where + its absolutely necessary. Once 'links' came around, I + decided FRAMES were okay. Then I decided that they weren't + OKAY again .. ;-) + + Anyway, enjoy SDF and say NO to commercialism. diff --git a/site-tutorials/FAQ/MISC/05 b/site-tutorials/FAQ/MISC/05 new file mode 100644 index 0000000..19a1b76 --- /dev/null +++ b/site-tutorials/FAQ/MISC/05 @@ -0,0 +1,13 @@ +[05] WHAT IS SDF'S TAX STATUS? IS MY DONATION TAX DEDUCTABLE? + + SDF is federally recognised as a tax exempt, non-profit + organisation under section 501(c)7 of the internal revenue + code. We do not, at the moment, hold a charitable status, + as the IRS does not see us as a religious, educational (?), + or other charitable organisation. We are viewed as a + 'social club' that is supported by its members. + + Donations to SDF are not deductible beyond a standard deduction. + For more information about standard deductions, check the IRS + publication included with your tax return form. + diff --git a/site-tutorials/FAQ/MISC/06 b/site-tutorials/FAQ/MISC/06 new file mode 100644 index 0000000..d506c36 --- /dev/null +++ b/site-tutorials/FAQ/MISC/06 @@ -0,0 +1,9 @@ +[06] DO YOU HAVE AN OMEN TECHNOLOGIES SOFTWARE LICENSE? + + Yes, we were granted a software license for the 'rzsz' file + transfer suite in September of 2001. This is an educational + software license and Chuck Fosberg was kind enough to extend + that to include our Public Access UNIX System. + + Please note that taking any software from this system and + using it on your own without permission is a criminal act. diff --git a/site-tutorials/FAQ/MISC/07 b/site-tutorials/FAQ/MISC/07 new file mode 100644 index 0000000..5de5a7c --- /dev/null +++ b/site-tutorials/FAQ/MISC/07 @@ -0,0 +1,17 @@ +[07] HOW MANY USERS HAVE BEEN LOGGED IN AT ONCE? + + Try 'maxusers' (-h for options). We only started keeping + track of maximum concurrent user counts in 2001. But we have + archived wtmp logs going back as far as 1993: + + 1 users in 1987 (1 telephone) + 4 users in 1991 (4 telephone + console) + 10 users in 1993 (10 telephone (later slip) + 25 users in 1994 (10 telephone + slip) + 50 users in 1995 (4 telephone + isdn) + 100 users in 1996 (4 telephone + dsl) + 125 users in 1997 (2 telephone + dsl) + 150 users in 1999 (2 telephone + dsl) + 200 users in 2001 (dsl only) + 250 users in 2002 (ds3 only) + 300 users in 2003 (ds3 only) diff --git a/site-tutorials/FAQ/MISC/08 b/site-tutorials/FAQ/MISC/08 new file mode 100644 index 0000000..6755cfa --- /dev/null +++ b/site-tutorials/FAQ/MISC/08 @@ -0,0 +1,85 @@ +[08] HOW MUCH DOES IT COST TO RUN SDF? + + So you're curious? Well, hopefully you'll be more willing to + donate if you know what it cost to run SDF. I'm looking for + ways to make this information a bit more public so that it will + hopefully increase donations. + + In the old days, when we had 9 telephone lines, the cost was + relatively high. GTE phone lines could be as cheap as $24 a + month, but SWBell lines could be $9.99 a month. How? Because + I stripped everything off even DTMF (touch tone) dialing! But + I still remember the nightmare of $380 a month phone bills. + + ISDN was about $48 a month and would be later used to replace + two analogue lines (an analogue phone line could run over a single + B channel). No real savings with GTE, but nonetheless was tried. + So here are the rough numbers. + + Old Old Days .. 1987-1989 + + Basically $0, as Ted's mother covered the cost of the dedicated + line (214-358-xxxx) and Ted got our first computer on his birthday + from ComputerCraft in Dallas in June of 1985 for $1065.95. A 5mb + hard drive was purchased in 1989 prior to going with UNIX, but + again other than the IBM XT running briefly running citadel BBS + Ted's mom covered the cost for the 386 20. + (See http://sdf.org/?tour/1985/index) + + Old Days .. 1990-1993 (when we went multiline): + + Rent: $4200 a year + Phones: $1344 a year (four/five lines GTE) + Electricity: $180 a year + Network: $0 a year (thank you Eric, Doug & Roy) + ------------------------- + Total: $6084 + + 1994-1996 + + Rent: $5580 a year + Phones: $1320 a year (nine/ten lines SWB) + ISDN: $576 a year + Electricity: $200 a year + Network: $0 a year (thank you Eric & Aaron) + ------------------------- + Total: $7876 + + 1997-2000 + + Rent: $0 a year (thank you MALR) + ISDN: $600 a year (two phone lines GTE) + DSL: $3588 a year (768k/256k) + Electricity: $230 a year + ------------------------- + Total: $4878 + + 2001-2003 + + Rent: $14436 a year (includes circuit provision) + DSL: $3480 a year (1.5mbit/1.5mbit) + Electricity $360 a year + ------------------------- + Total: $18276 + + 2003 - 2009 + + Rent: $15300 a year (includes multi-DS3 circuit provision) + DSL: $1329 a year (DSL memberships) + Dialup: $2060 a year (Dialup memberships + POP lease) + Misc: $248 a year + ------------------------- + Total: $18937 + + 2010 - Present + + Rent (SEA): $11832 a year (full cabinet and storage + network) + Rent (DFW): $1800 a year (4U + network allocation) + Rent (EU): $0 a year (1U donated value is 840 EU/year) + DSL: $1329 a year (DSL Memberships) + Dialup: $2060 a year (Dialup memberships + POP lease) + ------------------------- + Total: $17021 + + Interested in helping out now? Try typing 'pledge'. Thank you!! + diff --git a/site-tutorials/FAQ/MISC/09 b/site-tutorials/FAQ/MISC/09 new file mode 100644 index 0000000..a8da7d5 --- /dev/null +++ b/site-tutorials/FAQ/MISC/09 @@ -0,0 +1,53 @@ +[09] WHAT SHOULD I DO IF A SYSTEM CRASHES OR LOCKS UP? + + Hopefully this will not happen at all to you, but if you experience + 'lock ups' or 'freezes', please follow these steps to help prevent + your own data loss. + + Also, it is important to note that you do not have a direct connection + to SDF and are mostly likely hopping through 10 or more networks to + get to SDF. You can use ping and traceroute to measure lag between + your computer and SDF. So, your experience of lag on SDF is subjective + and it is very important for you to understand that. + + Typically a lockup will occur when you are trying to access a + file that is resident on the fileserver. For instance, say you + are trying to cat a file and instead of seeing the contents you + get either nothing or a message similar to: + + ol1:/sys: not responding + + Be patient, the fileserver will recover shortly and your task + will be completed .. you will probably see: + + ol1:/sys: is alive again + + which means your request will actually begin to be processed. + + During the hang time, you can use ^T (CTRL T) to display the + status of your job .. for instance: + + load: 2.04 cmd: tail 12966 [select] 0.00u 0.00s 0% 808k + + [select] is the current state of the process id 12966 which + is the 'tail' program. If the system is waiting on actual + disk I/O, you'll probably see [biowait]. In cases of a hang + you may see either [nfsrcvlk] (Network File System Received Lock) + or [vnlock] (Virtual Node Lock) which the system will usually + recover from, but can be telling of a serious resource problem + on the NFS client should this state be prolonged. + + In the event that the fileserver becomes unavailable, it is + important that you do not become impatient and interrupt, quit + or suspend your jobs (^C, ^\ or ^Z) but rather, wait them out. + If you are patient your chances of losing data will be + significantly reduced. Usually the fileserver will respond + within a few seconds, but usually no longer. In the case when + it is the NFS client's problem (vnlock for more than say 20 + seconds) that particular host will most likely need to be reset. + + More on this. SDF is pushing NetBSD to its limits and we are + currently (2003-2004) doing quite a bit of investigation with + the uvm/vfs/vnode code developers to help NetBSD become scalable + in high usage situations such as the loads we experience on SDF. + Solutions we find will be incorporated into the public code. diff --git a/site-tutorials/FAQ/MISC/10 b/site-tutorials/FAQ/MISC/10 new file mode 100644 index 0000000..224a102 --- /dev/null +++ b/site-tutorials/FAQ/MISC/10 @@ -0,0 +1,20 @@ +[10] ARE THERE ANY SORT OF IDLE TIMEOUTS? + + Yes, they fluctuate based on the number of users that are logged + into the same machine as you. For the best spread of resources, try + connecting to SDF using 'tty.freeshell.org'. Also, MetaARPA + members using the server 'sverige' are pretty much exempt from + these timeouts at the present time + + Number of Users Hours Idle + ============================ + 100+ 1:00+ + 90-99 2:00+ + 80-89 3:00+ + 70-79 4:00+ + 60-69 5:00+ + 50-59 6:00+ + 40-49 7:00+ + 30-39 8:00+ + 20-29 9:00+ + 0-19 10:00+ diff --git a/site-tutorials/FAQ/MISC/11 b/site-tutorials/FAQ/MISC/11 new file mode 100644 index 0000000..8422bb7 --- /dev/null +++ b/site-tutorials/FAQ/MISC/11 @@ -0,0 +1,11 @@ +[11] HOW LONG DO FILES STAY IN /TMP BEFORE BEING DELETED? + + As a general rule files that have a creation date older than + 60 days are candidate for deletion. This rule is flexible in + in regards to space constraints (id est, the largest, oldest + files go first). + + Each system has about 2048MB or more of /tmp space and is not + NFS mounted. Please be thoughtful about what you put in tmp, + while permissions you set on those files and what the current + usage of /tmp is. diff --git a/site-tutorials/FAQ/MISC/12 b/site-tutorials/FAQ/MISC/12 new file mode 100644 index 0000000..d251497 --- /dev/null +++ b/site-tutorials/FAQ/MISC/12 @@ -0,0 +1,77 @@ +[12] WHEN ARE THE SYSTEM MAINTENANCE WINDOWS? WHY THE LOW UPTIME? + + Typically the SDF Public Access UNIX System is available to its + members and, in some cases, the general public 24 hours a day, + 7 days a week, 365 days a year, 10 years a decade, 25 years a + quarter century .. and so on. + + That being said there are unforeseen issues that can cause the + system to become unavailable: + + 1. Hard Disk Crash - We have several spare drives, some of + them already plugged in and ready to be used. In the + best case scenario no maintenance window is required. + + 2. Fire - In the case of fire all SDF machines must be shut + down unless the fire is an isolated occurance. + + 3. Natural Disaster - In the Spring (Apr-May) we do get + affected by lighting strikes in our area due to heavy + thunderstorms. Best case scenario the UPS systems filter + the spikes and dips which allow SDF to run uninterrupted. + + 4. Software Bug - This due crop up from time to time and are + usually related to system updates. On SDF we typically + will let the public access machines lag behind NetBSD + development in order to test new releases in our lab before + subjecting the userbase to 'new bugs'. + + 5. Routine and Scheduled Maintenance - Please read below. + + 6. Hardware Component Failure - We have many spare machines, + some completely cabled up and ready to go at the flick of + a remote command. If an SDF client host becomes completely + unrecoverable, a spare can be put into operation within + minutes. Keep in mind that while all of your personal files + are hosted on the file server, the /tmp directory is exclusive + to each SDF client host. + + ROUTINE AND SCHEDULED MAINTENANCE + + There is a weekly maintenance window on Sunday mornings beginning at + 02:00 AM until 03:00 AM. This windows is not always used and when it + is, it is used very briefly. 5 minutes prior to a shutdown or runlevel + transition all logged in members will be notified on their terminals. + If you see this message alerting you to system maintenance, you should + save all open files and prepare to logout. + + Scheduled maintenance is always announced several days in advance on + the bboard in the board. If it that maintenance window + requires extended time (basically anything over 5 to 10 minutes) the + /etc/motd file (displayed at login) will note the details of the event. + + Scheduled maintenance is really only used when hardware upgrades have + to take place. In most cases, software updates can occur while the + systems are up and available. + +WHY THE LOW UPTIME? + + Uptime is relative. What we're after is 'high availability'. This + means that our goal is to have the servers answering at least 99.9% + of the time. In the 20+ years of service SDF has been able to meet + this goal. The most uptime you'll see on any given server will be + about 3 to 4 weeks. After 3 weeks performing maintenance is necessary. + This helps with clearing buffers, caches and other inconsistencies + that can occur as the systems run from cold or warm boot. Rather + than waiting for the system to fail due to kernel panic or a hang, + a warm boot is performed, during the weekly maintenance window, which + takes roughly 5 minutes or less. Keep in mind, this doesn't occur + weekly but usually after 3 to 4 weeks of linear uptime. + + Why is this necessary? (aka "My box runs for years under my desk"). + We too have very low usage non-public NetBSD systems that run for years + without requiring a reboot. However, SDF is extremely high volume with + sophsiticated NFS, NIS and VNODE caching. While these do not cause + problems with light loads, with 40,000 active users they become an + issue. Again, our goal is high availability which doesn't necessarily + have to translate it long uptimes. diff --git a/site-tutorials/FAQ/MISC/13 b/site-tutorials/FAQ/MISC/13 new file mode 100644 index 0000000..1c2c458 --- /dev/null +++ b/site-tutorials/FAQ/MISC/13 @@ -0,0 +1,20 @@ +[13] WHY DOES SFTP / SCP STOP WORKING FOR ME? + + To use SFTP or SCP you must first be an ARPA member. If you are + an ARPA member, then please continue reading. + + What did you change? Both sftp and scp use 'sftp-server' via the + ssh session you establish. Any output from the /etc/motd and + your ENV setup files (.login, .profile .. et cetera) are read + into a buffer and not output to your SFTP / SCP client. Because + of this, the server may exit abruptly citing: + + Received message too long 778199659 + + /etc/motd is always kept to just a few lines to accomodate users + who like to have 'fortune' or the output of other programs displayed + when they login. The result can be sporatic use of SFTP/SCP. + + The best bet is to just not display a large amount of data when you + login (such as the process table, who is logged in or who has logged + in for the past 6 months). diff --git a/site-tutorials/FAQ/MOTD/01 b/site-tutorials/FAQ/MOTD/01 new file mode 100755 index 0000000..014742f --- /dev/null +++ b/site-tutorials/FAQ/MOTD/01 @@ -0,0 +1,13 @@ +[01] WHAT IS THE MOTD MEMBERSHIP? + + The MOTD membership is a special privileged membership for SDF users + who are primarily interested in 'web based' journals, forums, wikis, + galleries and more. The primary focus is to allow members to + collaborate together and produce/maintain the best possible code + in regards to performance and security. + + MOTD members can just be users as well, but the coding aspect may + be attractive to UNIX savvy users. + + (MOTD = Message Of The Day and basically relates the web based + journal to the historical /etc/motd file) diff --git a/site-tutorials/FAQ/MOTD/02 b/site-tutorials/FAQ/MOTD/02 new file mode 100755 index 0000000..bc52496 --- /dev/null +++ b/site-tutorials/FAQ/MOTD/02 @@ -0,0 +1,33 @@ +[02] WHAT IS THE BENEFIT OF HAVING A JOURNAL, GALLERY, ET CETERA SDF? + + The single most important aspect of this all is that you and + you alone own and retain all rights to your content. There are + many commercial sites on the INTERNET these days and while they + offer you services without taking your money, they aren't + necessarily free. In nearly all cases you are forced to accept + an end user agreement that releases all rights to what you put + on their servers. You may not care about this but most SDF + members realize that in the long term giving up rights to your + photos, music, artwork, thoughts and ideas in exchange for + "free hosting" will most likely be something you'll regret. + + Another aspect is that SDF allows you access to several key areas + that the majority of commercial operations restrict: + + 1) You have access to your logfile. This documents every + request made for your URL. MOTD logfiles persist for a year + and are rolled over on January 1st 00:00:01. + + 2) You have access to your database. You can log directly into + your database and manipulate your tables and data yourself. + + 3) You have access to the framework. All software packages used + in the MOTD membership are available to MOTD members to make + updates, changes and fixes. Likewise, members can submit + their own software for other members to use and collaborate + on. The main benefit of this is the ability to quickly update + source distributions when security flaws are discovered. + + Source distributions are kept in /sys/motd which is available from + all systems on the SDF network. Files are versioned via the RCS. + diff --git a/site-tutorials/FAQ/MOTD/03 b/site-tutorials/FAQ/MOTD/03 new file mode 100755 index 0000000..fd33acc --- /dev/null +++ b/site-tutorials/FAQ/MOTD/03 @@ -0,0 +1,16 @@ +[03] WHAT ARE THE MOTD COMMANDS? WHERE ARE THE MOTD DIRECTORIES? + + The main MOTD command is 'motd'. It current does: + + motd -l Lists all available packages and versions + motd -i Installs are particular package + motd -a Allows you to update your http://motd.org listing + + /sys/motd is the location for the source distributions. Not all + files need to be in the RCS, only files that have been edited + or added by members should be in the RCS. + + /sys/motd/README.TXT contains details for MOTD members who are + interested specifically in the coding aspects of the project. + In that file you will find detailed steps on using RCS, adding + packages and more. diff --git a/site-tutorials/FAQ/MYSQL/01 b/site-tutorials/FAQ/MYSQL/01 new file mode 100755 index 0000000..991bdf0 --- /dev/null +++ b/site-tutorials/FAQ/MYSQL/01 @@ -0,0 +1,14 @@ +[01] DO I HAVE ACCESS TO A DATABASE? + + If you are a VHOST (non-basic) or DBA member then you will have have + access to the SDF MySQL database server 'ol.sdf.org' + + If you are a MetaARPA member and a DBA member then you will have access + to both the SDF MySQL database server 'ol.sdf.org' and the MetaARPA + MySQL database server 'ma.sdf.org' + + It is possible to have two databases, one on each MySQL server, by + having both a MetaARPA and VHOST or DBA membership. + + You will be allocated 500mb of storage for your database, + and you have complete priviliges to your area. diff --git a/site-tutorials/FAQ/MYSQL/02 b/site-tutorials/FAQ/MYSQL/02 new file mode 100755 index 0000000..f3e0e97 --- /dev/null +++ b/site-tutorials/FAQ/MYSQL/02 @@ -0,0 +1,42 @@ +[02] HOW DO I CONNECT TO MY DATABASE? + + From any sdf machine, type: + + $ mysql -h ol.sdf.org -u $LOGNAME -p $LOGNAME + + - OR - + + $ mysql -h sdf-eu.org -u $LOGNAME -p $LOGNAME + + A short cut called 'startsql' has been created for you so you + don't have to type the command above. + + $ mysqladmin -h ol.sdf.org -u $LOGNAME -p password 'mynewpass' + + - OR - + + $ mysqladmin -h sdf-eu.org -u $LOGNAME -p password 'newpw' + + (NOTE! its a bit confusing, but you will be prompted for your + OLD password). + + If that doesn't work for you, then try 'mypasswd' + + If you have forgotten your password, you can reset it back to your + login id (not your login password) by typing 'reset-mysql' + + ***SPECIAL INSTRUCTS FOR SDF CLASSROOMS*** + + If you have MYSQL access via an SDF class, then you must access a + different database server. You must also use the bins in + /sys/classroom/bin. + + To access your database: + + $ /sys/classroom/bin/mysql -h faeroes -u $LOGNAME -p $LOGNAME + + To change your password: + + $ /sys/classroom/bin/mysqladmin -h faeroes -u $LOGNAME -p password 'newpw' + + If you still have problems, please contact your instructor. diff --git a/site-tutorials/FAQ/MYSQL/03 b/site-tutorials/FAQ/MYSQL/03 new file mode 100755 index 0000000..62dd62e --- /dev/null +++ b/site-tutorials/FAQ/MYSQL/03 @@ -0,0 +1,85 @@ +[03] IS THERE AN SQL PRIMER I CAN USE? + + MySQL conforms pretty much to SQL92. There are many + documents/tutorials/faqs available on the net .. besides that, + its beyond the scope of the SDF FAQ to cover this. + + HOWEVER, here are a few quick commands to get your started! + The best way to learn SQL is by using it. + + (SQL commands are in UPPER CASE, objects are in lowercase) + + CREATING A TABLE + ---------------- + + CREATE TABLE test ( + name VARCHAR (15), + email VARCHAR (25), + phone INT, + ID INT NOT NULL AUTO_INCREMENT, + PRIMARY KEY (ID)); + + DESCRIBING A TABLE + ------------------ + + DESC test; + + +-------+-------------+------+-----+---------+----------------+ + | Field | Type | Null | Key | Default | Extra | + +-------+-------------+------+-----+---------+----------------+ + | name | varchar(15) | YES | | NULL | | + | email | varchar(25) | YES | | NULL | | + | phone | int(11) | YES | | NULL | | + | ID | int(11) | | PRI | NULL | auto_increment | + +-------+-------------+------+-----+---------+----------------+ + + INSERTING A ROW INTO A TABLE + ---------------------------- + + INSERT INTO test VALUES + ('Ted Uhlemann', 'iczer@sdf.org', '5551212', NULL); + + SELECTING RECORDS FROM A TABLE + ------------------------------ + + SELECT * FROM test; + + +--------------+------------------------+---------+----+ + | name | email | phone | ID | + +--------------+------------------------+---------+----+ + | Ted Uhlemann | iczer@sdf.org | 5551212 | 1 | + +--------------+------------------------+---------+----+ + + DELETING A ROW FROM A TABLE + --------------------------- + + DELETE FROM test; + + ALTER A TABLE + ------------- + + ALTER TABLE test RENAME friends; + + ALTER TABLE friends ADD birthday DATE; + + ALTER TABLE friends CHANGE name fullname VARCHAR (25); + + ALTER TABLE friends DROP name; + + UPDATING A ROW + -------------- + + UPDATE test SET email = 'iczer@sdf.org'; + + UPDATE friends SET birthday = '1978-06-16' WHERE id = '1'; + + DROPPING A TABLE + ---------------- + + DROP TABLE friends; + + COPY DATA BETWEEN TABLES + ------------------------ + + INSERT IGNORE INTO wp2_posts SELECT * FROM wp_posts; + diff --git a/site-tutorials/FAQ/MYSQL/04 b/site-tutorials/FAQ/MYSQL/04 new file mode 100755 index 0000000..826aad3 --- /dev/null +++ b/site-tutorials/FAQ/MYSQL/04 @@ -0,0 +1,24 @@ +[04] HOW DO I BACKUP OR RESTORE MY MYSQL DATABASE? + + To backup your MySQL database: + ------------------------------ + + From any SDF system type: + $ mysqldump -h ol -u $LOGNAME -p $LOGNAME > backup_file_name.sql + + Note: ol is the short name for the MySQL host system, ol.freeshell.org + + To restore your database from a dump file: + ------------------------------------------ + + From any SDF system type: + $ mysql -h ol -u $LOGNAME -p $LOGNAME < backup_file_name.sql + + Important Notes: Backup and Restore differ in the following ways - + + To backup a MySQL database use the mysqldump command and the + output redirector > + + To restore a MySQL database use the mysql command and the + input redirector < + diff --git a/site-tutorials/FAQ/TEACH/01 b/site-tutorials/FAQ/TEACH/01 new file mode 100755 index 0000000..5669198 --- /dev/null +++ b/site-tutorials/FAQ/TEACH/01 @@ -0,0 +1,25 @@ +[01] CAN MY UNIX CLASS/STUDENTS USE SDF.ORG? + + Yes, and this service is available freely to K-12/College instructors + and their students. While SDF membership is encouraged, it is not + required of you and your students. + + A number of UNIX classes have been taught using the SDF. From the + basics of getting acquainted with the various shells, commands and + environment to learning the VI editor, EMACS, sed and awk, SDF is + an extremely flexible learning environment for students. + + perl and python are also available for script programming as well, + your students will have 20mb of storage space to design their own + webpages and even can create their own subdomain based on their login. + + Students in an active class who wish to validate their accounts may + do so by having their instructor send a list of usernames created + and used by students as well as a copy of the class syllabus. + + Access limitations *may* inhibit your class. Please plan ahead and + contact 'classroom@sdf.org' with any goals or specific needs. + + It GREATLY helps us if you would run the 'student-survey' command once + you have a login account to help let us know how we are doing. Teachers + and students are both welcome to participate in this survey. diff --git a/site-tutorials/FAQ/TEACH/02 b/site-tutorials/FAQ/TEACH/02 new file mode 100755 index 0000000..c7495e2 --- /dev/null +++ b/site-tutorials/FAQ/TEACH/02 @@ -0,0 +1,41 @@ +[02] HOW CAN I SETUP MY CLASSROOM ON SDF? + + *** Please have your students ssh to 'classroom.sdf.org' *** + *** once they have logged in as 'new' to make their accounts *** + *** Alternatively they can use SSH via http://classroom.sdf.org *** + + There currently are no templates, but more than likely you already + have your own syllabus, lesson plan and students all ready to go. + + All you need to do is send your syllabus/lesson plan in email to + 'classroom@sdf.org' and request that your classroom be opened. Once + your class is approved you will be able to run the 'instruct' command + to validate your students. If a student is validated or an SDF member, + they can still be added to your class with the 'instruct' command. For + further information about this command, type 'man instruct' at the shell. + + Your classroom will be open indefinitely while your students will + only be validated for a 15 week semester. If you need to extend + their validation, you can do so with the 'instruct' command. + + Your students should be instructed to create their own accounts + by telnetting to 'ol.freeshell.org' and logging in as 'new'. When + asked "Where did you hear about SDF?" please instruct them to provide + the school, your name and the course number. After they have done + that, you will be able to use 'instruct' to validate their accounts. + + Classroom specific utilities that would otherwise be only available + to ARPA members (such as gcc, python, ruby, perl ..) are located in + /sys/classroom. If you need to provide your students with other + utilities, you can request that they be installed for classroom use. + + Your students will need to set the PATH environment variable with + something like this: + + export PATH=/sys/classroom/bin:$PATH + + This will allow the /sys/classroom/bin directory to be searched + prior to the other directories in the $PATH variable. + + At the end of the semester, it is very important that you have your + students run the 'teach' survey. Please do not forget! diff --git a/site-tutorials/FAQ/TEACH/03 b/site-tutorials/FAQ/TEACH/03 new file mode 100755 index 0000000..888f4f0 --- /dev/null +++ b/site-tutorials/FAQ/TEACH/03 @@ -0,0 +1,31 @@ +[03] HOW CAN I BECOME A STUDENT ON SDF? + + Do you have an instructor? Are you K-12 or in college? There are + always going to be more students than instructors on SDF and if you + are current enrolled you can propose the idea of using SDF to your + conventional instructors and see what they think. Some of the + benefits of having a classroom on SDF are: + + 1. Instructor/Students can manage their own accounts. + + Typically at community colleges, universities and schools + there is quite a bit of bureaucracy involved with direct + UNIX shell access. SDF provide both instructors and students + with the liberty to create and delete their UNIX shell accounts. + + 2. Less access restrictions. + + Even if you do get a request through to have accounts created, + you are typically limited by tiny quotas, slow machines and + access to programs/utilities + + SDF allows the instructors to determine exactly what they want + their students to use. As well, SDF provides access to more + esoteric and newer programming utilities. + + 3. SDF is for a lifetime. + + After a semester is over, or when you are no longer enrolled, + your account is typically removed from a university or K-12 + system. SDF allows both instructors and students to become + permanent members of the organization. diff --git a/site-tutorials/FAQ/TEACH/04 b/site-tutorials/FAQ/TEACH/04 new file mode 100755 index 0000000..fdb6a80 --- /dev/null +++ b/site-tutorials/FAQ/TEACH/04 @@ -0,0 +1,34 @@ +[04] WHAT PROGRAMS AND UTILITIES ARE AVAILABLE TO STUDENTS? + + This is not a complete list of all the programs and utilities that + are available. Listing those would be really beyond the scope of + the faq. However, in /sys/classroom there some very specific + programs that are most useful to students learning UNIX programming. + Normally these programs are only reserve for ARPA member use. + + For more details on these tools, have your students run 'man program' + + gcc (2.95.3) Has slowly become the standard in C/C++ development + under UNIX. It is not always the best choice for + any occasion, but you'll find it everywhere. + + python (2.5) An object oriented programming language that has + a very strict, but intuitive syntax. + + perl (5.8.8) Its everywhere you go today. The number of modules + available make programming in perl a thing of the past + + ruby (1.8.5) A relatively new programming language which is + designed with the web in mind + + lisp (8.3.0) One of the oldest and most powerful programming languages + still widely used today. + + php (5.1.6) A near object oriented C like programming language which + is most useful for generating HTML. + + rcs (5.7) RCS (Revision Control System) is a good way for + students to learn about file versioning under UNIX. + + mysql (5.0) Each instructor and student is given their own SQL + database and login. diff --git a/site-tutorials/FAQ/TECHIES/01 b/site-tutorials/FAQ/TECHIES/01 new file mode 100755 index 0000000..c82fe60 --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/01 @@ -0,0 +1,63 @@ +[01] WHAT IS HACKING? + + HACKING is an educational process of working through a problem + with limited knowledge to arrive at a solution which improves the + individual's understanding of the problem. + + The word HACK (as techie JARGON) originated with the MIT Tech Model + RailRoad Club (TMRC) in the 1950's. Members of the club would call + their clever modifications to electronic switching relays 'hacks'. + When the TX-0 and PDP-1 machines were introduced, the TMRC members + began using their jargon to describe what they were doing with the + computers. This went on for years as new machines such as the PDP-6 + and later the PDP-10 were introduced. + + A HACK is a solution that has seemingly magical properties. "Its not + suppose to work, but I HACKed it into working." + + What the TMRC (Tech Model RailRoad Club) says about hacking: + + We at TMRC use the term "hacker" only in its original + meaning, someone who applies ingenuity to create a + clever result, called a "hack". The essence of a "hack" + is that it is done quickly, and is usually inelegant. + It accomplishes the desired goal without changing the + design of the system it is embedded in. Despite often + being at odds with the design of the larger system, a + hack is generally quite clever and effective. + + This original benevolent meaning stands in stark + contrast to the later and more commonly used meaning of + a "hacker", typically as a person who breaks into + computer networks in order to steal or vandalize. Here + at TMRC, where the words "hack" and "hacker" originated + and have been used proudly since the late 1950s, we + resent the misapplication of the word to mean the + committing of illegal acts. People who do those things + are better described by expressions such as "thieves", + "password crackers". or "computer vandals". They are + certainly not true hackers, as they do not understand + the hacker ethic. + + There is nothing wrong with HACKING or being a HACKER. + + What you must understand is that TRESPASSING, MALICE, BREAKING AND + ENTERING and DECEPTION have absolutely nothing to do with HACKING. + + TRESPASSING: The act of unlawfully entering or damaging property or + the rights of another. Logging into or accessing someone else's + computer (property) without their consent. + + MALICE: A desire to harm others or to see others suffer; extreme ill + will or spite. + + BREAKING AND ENTERING: The act of entering property without permission + by way of the act or force through picking or breaking a lock; guessing + a computer account password or other methods of trespass. + + DECEPTION: The act of altering another's perception of the truth by + taking advantage of their trust for personal gain and without concern + for the consequences. + + If you believe these or other criminal actions have anything to do with + HACKING, then please consider not using SDF. diff --git a/site-tutorials/FAQ/TECHIES/02 b/site-tutorials/FAQ/TECHIES/02 new file mode 100755 index 0000000..8de97ce --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/02 @@ -0,0 +1,68 @@ +[02] HOW DO I CONFIGURE MY ENVIRONMENT SETTINGS AT LOGIN? + + This file (.profile) is already setup for you with some generic defaults. + In the file you will find information on customizing your session. You + can edit the file directly using an editor (emacs, ed, vi or pico). Note + that any changes to the file effect future login sessions. + + --- UNIX Shell HACKS --- + + If you are using the UNIX Bourne Shell or Korn Shell, you need to + be aware of the ".profile" file in your home directory. This acts + as an init file by setting up various environment variables and + such. If a ".kshrc" file is present and you are using the Korn + Shell, then those variables, functions and aliases will also be + loaded. + + [ ENV SETTINGS ] + + A typical .profile looks much like this: + + MAIL=/usr/mail/$LOGNAME + TERM=vt100 + LINES=24 + COLUMNS=80 + EDITOR=/bin/ed + VISUAL=/usr/bin/vi + HZ=60 + + PS1="$ " + PS2="> " + + stty erase '^h' intr '^c' echoe + + export MAIL TERM LINES COLUMNS EDITOR VISUAL HZ + + For both the Bourne and Korn shells, the default for PS1 is "$". + If you'd rather have the current directory for your prompt, here + is a ksh hack to do it. Put this function in your .kshrc file. + + chdir () + { + \cd ${*:-$HOME} ** PS1="$(pwd)> " + } + + alias cd=chdir + + Another way of doing this without defining a function and alias + would be a hack on the PS1 environment variable itself: + + PS1=['$?:${PWD#${PWD%/*/*/*}/}> ' + + This hack also gives you the return code for the last command executed. + + For the novice user, both of these are useful. Being able to make + aliases like: + + alias dir=ls -xsFb + + make using UNIX a little bit easier. + + To get a list of processes currently being run by your userid, type: + + ps -U $LOGNAME + + If you have a process running that you wish to terminate (but don't + have a TTY associated with it) get the pid, then use the kill command: + + kill -HUP (other signals include -9) diff --git a/site-tutorials/FAQ/TECHIES/03 b/site-tutorials/FAQ/TECHIES/03 new file mode 100755 index 0000000..d43eafd --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/03 @@ -0,0 +1,34 @@ +[03] CAN I USE SLIP OR PPP WITH SDF? + + Yes you can. You can find software and configuration guides in + ~ftp/pub/internet. + + The majority of SLIP/PPP software configuration requires this + information: + + nameserver=63.68.131.237 + gateway=63.68.131.237 + netmask=255.255.255.0 + ip= + + Other less important configuration: + + host name=CPM (or whatever you want to call your computer) + domain=lonestar.org + POP3 server=mx.sdf.org + SMTP server=mx.sdf.org + + SLIP/PPP software usually require you to create a LOGIN script + which connects you with your service provider. This is called + a "CHAT SCRIPT" .. and to use SLIP/PPP on SDF, your script needs + to follow this outline: + + output : \r ; (\13 or ^M) + look for : ogin: + respond with : cochese ; where "cochese" is your SDF login + look for : sword: + respond with : RELGUD ; where "RELGUD" is cochese's password + look for : $ + respond with : slip ; Note, this is for SLIP only, if you + ; wish to use PPP, then have your respond + ; with "ppp". diff --git a/site-tutorials/FAQ/TECHIES/04 b/site-tutorials/FAQ/TECHIES/04 new file mode 100755 index 0000000..1907665 --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/04 @@ -0,0 +1,22 @@ +[04] CAN MY BBS OR UNIX COMPUTER DO UUCP WITH SDF? WHAT IS LONESTAR.ORG? + + Yes. The SDF can also provide your BBS or UNIX host with an ARPANET + domain. UUCP can be used to transfer files, email and USENET articles + between two networked hosts. It is recommended that you read the UUCP + setup text file ~ftp/pub/sdf/uucp/uucp_with_sdf for all the details. + + To join SDF's UUCP network, send your uuname and optionally a domain + name in an email to sdf!uucp from an SDF host. A password and + instructions for connecting will be sent. + + Also, the FTP directory can be accessed via ANONYMOUS UUCP using + the "nuucp" login (no password). The UUPATH to the FTP directory + is ~ftp/pub/ + + WHAT IS LONESTAR.ORG? + + The LONESTAR.ORG namespace was created in 1987. This domain is + used to network several UUCP sites in Texas and some outside of Texas. + + SDF continues to be a member of LONESTAR.ORG for historical reasons. + We currently include all new UUCP hosts in the natverk.org domain. diff --git a/site-tutorials/FAQ/TECHIES/05 b/site-tutorials/FAQ/TECHIES/05 new file mode 100755 index 0000000..9fefb4f --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/05 @@ -0,0 +1,15 @@ +[05] HOW CAN I CHANGE THE SYSTEM TIME TO REFLECT MY TIMEZONE? + + You need to set the environment variable TZ with your + timezone. SDF is set to UTC (universal earth time). If + you want the system date to be offset to your timezone, + try the following: + + $ date + Wed Jun 23 18:26:20 UTC 2004 + $ export TZ=CST6CDT + $ date + Wed Jun 23 13:28:22 CDT 2004 + + CST6CDT will offset system time to US Central time. For + a listing of timezones, look in /usr/share/zoneinfo diff --git a/site-tutorials/FAQ/TECHIES/06 b/site-tutorials/FAQ/TECHIES/06 new file mode 100755 index 0000000..29fb0dc --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/06 @@ -0,0 +1,19 @@ +[06] HOW CAN I ENABLE DEBUGGING WITH OPENLISP? + + For more information, check out /usr/pkg/uxlisp/doc/olus.txt + (pgs. 71 & 72) + + First, you have to activate/load the debugger by calling '(debug t)' + You can then get help in the debugger by typing '?' + + There are several functions used for profiling functions: + + 'profile' (profile function-name) + 'profile-all' (profile-all) + 'unprofile' (unprofile function-name) + + Reporting is handled by 'profile-log' which can be set with 'time + 'call or 'not-used depending on what you want to see. + + Thanks to 'water' Brian T. Rice for 'discovering' the debugger + diff --git a/site-tutorials/FAQ/TECHIES/07 b/site-tutorials/FAQ/TECHIES/07 new file mode 100755 index 0000000..80201b4 --- /dev/null +++ b/site-tutorials/FAQ/TECHIES/07 @@ -0,0 +1,14 @@ +[07] DOES SDF SUPPORT SSH AUTHORIZED_KEYS FOR AUTHENTICATION? + + Yes, to set this up, please follow these steps: + + 1. Run 'ssh-keygen -t dsa' on your host. This will create + a public and private key pair. + + 2. Add the contents of the *.pub key to $HOME/.ssh/authorized_keys + + 3. Be sure your $HOME/.ssh directory is not world or group readable: + chmod -R 700 $HOME/.ssh + + You should now be able to login via SSH without being + prompted for a password. diff --git a/site-tutorials/FAQ/TWENEX/01 b/site-tutorials/FAQ/TWENEX/01 new file mode 100755 index 0000000..98f8a4b --- /dev/null +++ b/site-tutorials/FAQ/TWENEX/01 @@ -0,0 +1,26 @@ +[01] WHAT IS PROJECT TWENEX? HOW CAN I BECOME INVOLVED? + + Project TWENEX is a microcosm of the Free Software Movement and is + comprised wholey of SDF members. The idea is to create a central + catalogue of software for use on SDF and other systems. While + there are no platform restrictions, it is required that all software + is free of the restrictions of Open Source and other licenses. + + Why TWENEX? Because this is about HACKING and TWENEX (as well as + other systems and the communities built around them) were always + about HACKING. Its meant to be used reverently, with respect + to those who worked on the PDP-8, PDP-10, Multics, LISPM(s) and + other interesting computers. It is also meant as a history lesson + to show the misguided that real HACKERS care about people and do + not participate in criminal or malicious activities. + + You can become involved by writing free software. If you are a + MetaARPA member on SDF, you can install your own software in the + appropriate directories so all users can benefit. If you don't + program so well, you can participate by critiquing software from + a user's point of view. + + For now, the official site is http://twenex.net. This is the portal + to the catalogue, source and comments. As well, all software + associated with the project is kept in /sys/sdf. There is a BBOARD + named 'TWENEX' for members to communicate and make announcements. diff --git a/site-tutorials/FAQ/TWENEX/02 b/site-tutorials/FAQ/TWENEX/02 new file mode 100755 index 0000000..6f53bf7 --- /dev/null +++ b/site-tutorials/FAQ/TWENEX/02 @@ -0,0 +1,42 @@ +[02] HOW DO I INSTALL MY OWN PROGRAMS FOR OTHERS TO USE? + + MetaARPA members have the priviledge of being able to install and + maintain their own software for others of the SDF community to use. + This is the 'UNIX' side of project TWENEX (a web based gallery system + for free software presentation and distribution sponsored by the SDF). + + Basic rules: + + * the software must be free (GPL is fine) + * the software must be documented (unix manpage preferred) + * the software does not create conflicts (unique command name) + * the software does not do anything malicious + * the software does not bypass membership restrictions + * the software does not violate sdf's AUP + + To install your software, use the prefix of '/sys/sdf' .. the hiearchy + can be described as follows: + + /sys/sdf/bin # the location of executables + /sys/sdf/lib # the location of libraries + /sys/sdf/man # the location of manual pages + /sys/sdf/src # the location of your source + /sys/sdf/share # the location of shared files + + Anytime a piece of software is installed or updated an announcement + must be made in the bboard: group. + + /sys/sdf/bin and /sys/sdf/man are *not* (by default) included in the + user's PATH and MANPATH. The user must willing include these directories + in their environment. It is strongly encouraged that these directories + are added as last elements to the PATH and MANPATH variable. + + When placing your source in /sys/sdf/src follow these guide lines: + + * make a subdirectory in /sys/sdf/src using the name of your software. + * create a .desc file in that directory with a ONE LINE description + + Your software will be listed using the 'twenex' command. + + If a member installs software that does intentionally violate the AUP, + their account will be immediately suspended and possibly removed. diff --git a/site-tutorials/FAQ/UNIX/01 b/site-tutorials/FAQ/UNIX/01 new file mode 100755 index 0000000..e08fe24 --- /dev/null +++ b/site-tutorials/FAQ/UNIX/01 @@ -0,0 +1,21 @@ +[01] WHAT UNIX SHELLS ARE AVAILABLE HERE? + + A 'shell' is how you interact with the 'kernel'. The kernel is the + software that translates your commands into instructions that the + hardware (machine) can understand. The origin of the word 'shell' + actually comes from MULTICS, which UNIX attempts to mimic. + + /bin/sh Stephen Bourne's Shell + /bin/csh A shell with a C-like syntax + /bin/ksh David Korn's Shell (default) + /usr/pkg/bin/bash GNU's Broken Again SHell + /usr/pkg/bin/tcsh BBN TENEX Shell .. Not quite like EXEC + /usr/pkg/bin/rc PLAN 9 'Run Commands' Shell + /usr/pkg/bin/zsh Paul Falstad's Shell + + The best thing to do is read up on the shell using the 'man' + command. You can run the shell by just executing it. When + you are sure you really want to change to that shell you: + + run the 'maint' command at shell to connect to 'ol.freeshell.org' + and maintain/adjust password and shell settings. diff --git a/site-tutorials/FAQ/UNIX/02 b/site-tutorials/FAQ/UNIX/02 new file mode 100755 index 0000000..ae917af --- /dev/null +++ b/site-tutorials/FAQ/UNIX/02 @@ -0,0 +1,29 @@ +[02] WHAT ARE UNIX FILE PERMISSIONS AND HOW DO THEY WORK? + + UNIX treats directories, paging, memory, hardware devices, nearly + everything as a FILE. Files have modes, and here they are explained. + NOTE, this is just basic information and not complete. The following + should be all you need to know about UNIX FILES. + + u g o l owner group bytes date file + --------------------------------------------------------------- + drwxr-xr-x 7 nova users 352 Jul 11 1992 /udd/nova + + UNIX treats everything (devices, directories, et cetera) as a file. + + u = user + g = group + o = other (everyone else) + l = links + d = directory + t = sticky bit + p = pipe + owner = the user id who owns the file + group = the group that owns the file + + You can use the chown, chmod and chgrp commands to modify files + chmod (change mode) allows you to alter the permissions of a file + using "u,g,o" .. for instance: chmod ou-rx /udd/nova would make + the above file unreadable to other users and users in the "users" + group. chmod ou+rwx /udd/nova would give all other users access + to your directory (read and write). diff --git a/site-tutorials/FAQ/UNIX/03 b/site-tutorials/FAQ/UNIX/03 new file mode 100755 index 0000000..98c4b33 --- /dev/null +++ b/site-tutorials/FAQ/UNIX/03 @@ -0,0 +1,14 @@ +[03] MY TERMINAL GETS MESSED UP ON SOME PROGRAMS. WHATS WRONG? + + You've either told UNIX that you're using a terminal emulation that + you actually aren't, or you have a crappy terminal program that doesn't + work right. You can find out what terminal UNIX thinks you're using + by typing "echo $TERM". You can change this variable by editing the + corresponding line in your ".profile" file. If you can do vt100 + emulation, that's probably the best choice. If you find out we don't + have the files to support your terminal type, mail "admins" and they'll + be found. If your problem is a buggy terminal program, just find a + better one. Telix is a good choice for IBM PC's. + + For TELNET/SSH try PuTTY, NiftyTelnet and TeraTerm .. You can find + most of these on public FTP sites. Check ~ftp/pub/internet too. diff --git a/site-tutorials/FAQ/UNIX/04 b/site-tutorials/FAQ/UNIX/04 new file mode 100755 index 0000000..a9ce723 --- /dev/null +++ b/site-tutorials/FAQ/UNIX/04 @@ -0,0 +1,17 @@ +[04] HOW DO I UPLOAD AND DOWNLOAD FROM THIS SYSTEM? + + You can use the sx, sb and sz (XMODEM, YMODEM and ZMODEM) for + downloading and rx, rb and rz (XMODEM, YMODEM and ZMODEM) for + uploading. + + You can download files by saving them into your home directory + from your mail or newsreader, and then running them through whatever + conversion programs are necessary to convert them to their original + form (as discussed in #10 above). Then you can download them using + "sz" (Zmodem - recommended), "sb" (Ymodem batch), "sx" (Xmodem), or + "kermit" (Kermit). There are help files on all of this stuff posted + regularly to the respective newsgroups. Particularly helpful is the + "How to find sources" posting in alt.sources.wanted. Some of the + newsgroups that distribute sources and binaries are alt.sources, + comp.sources.misc, comp.binaries.ibm.pc, alt.binaries.pictures.misc, + and there are many others. diff --git a/site-tutorials/FAQ/UNIX/05 b/site-tutorials/FAQ/UNIX/05 new file mode 100755 index 0000000..8bda382 --- /dev/null +++ b/site-tutorials/FAQ/UNIX/05 @@ -0,0 +1,27 @@ +[05] HOW DO I CHANGE MY LOGIN PASSWORD? + + You can change your login password at the UNIX shell by entering the command 'maint' + from sdf shell. This tool will log you in securely to 'ol.freeshell.org'. + + You will see the maintenance menu, looking like: + + SDF ACCOUNT MAINTENANCE INTERFACE - (use 'tty.sdf.org' for LOGIN access) + p - change your password + + Press 'p'. The system will ask you to enter your current password and then your + new password. + + Some suggestions for choosing a password are: + + 1) Try to use non-English words + 2) use ESCAPE, CTRL or META characters along with a non-English word + 3) use numbers or special characters + + Making a good password will ensure your privacy on this system. + + When you have changed your password, you should also set up online password recovery + while you are there: + + a - setup automatic password recovery + + When you are done, press 'q' to quit and go back to shell. diff --git a/site-tutorials/FAQ/UNIX/06 b/site-tutorials/FAQ/UNIX/06 new file mode 100755 index 0000000..79c20e7 --- /dev/null +++ b/site-tutorials/FAQ/UNIX/06 @@ -0,0 +1,49 @@ +[06] WHAT IS A DISK QUOTA? WHAT ARE THE DISK QUOTA POLICIES ON SDF? + + When you create an account on this system, you immediately have an + allocation of 20 megabytes and about 500 inodes (or number of files) + for your home directory, located in the /udd filesystem. You also + have a 20 megabyte allocation in /mail, /www and /ftp (for gopher). + Please note that the exception being /mail, which has a limited inode + allocation of 5. When you get a message stating you have EXCEEDED YOUR + QUOTA this means that you either have more than 20 megabytes in your + home directory or more than 500 files. + + If you are going to need more disk space for a more elaborate home + page, a lot of email or just room for archiving, you can obtain a + 150 megabyte quota (5000 files) for each of the four file systems + by becoming an ARPA member. Type 'arpa' at the shell. + + If you still need more inodes and space you can join the MetaARPA + membership which will automatically triple the total number of files + you may have, per file system (15000 inodes) and give you an additional + 50 megabyte quota (200 MB per filesystem). Type 'meta' at the shell. + + Furthermore, you can custom tailor your disk quota by typing + 'tweak' at the shell. The TWEAK membership is designed for people + who need get the most out of SDF's disk resources. This membership + allows you to use your standard disk allocation as a 'chunk' from + which you can assign specific amounts to each of the four filesystems. + For instance, if you want more space allocated for /mail than for + your /www, you could run tweak to allocate 250mb for /mail and 50mb + for /www, 50mb for home and 50mb for /ftp (gopher). + + GRACE PERIODS - HOW LONG CAN I REMAIN OVER QUOTA? + + A grace period is the number of days your disk use may be over its + limits. In this version of NetBSD this feature DOES NOT WORK. Please + note that this is stated in the setquota(8) man page. If you view + your quota settings with the 'quota' command you will notice 'none' + under grace if you have exceeded your disk quota. Ideally SDF would + like to limit this period to 5-10 days. Remember, you are sharing a + system with tens of thousands of other people, please be responsible. + + Most applications will exit or report an error if you exceed your + disk quota. Ignorance of your current quota, quota settings or blatant + disregard of 'EXCEEDED QUOTA' messages is no excuse. You CAN and WILL + lose data if you have exceeded your disk quota and do not take + immediate action. As per the SDF user agreement, SDF can not be held + responsible for any data loss you may incur. If you are going to use + our disks with a close to or maxed out quota, it is highly recommend + that you run the 'quota' command often or put it in your .profile so + you will be aware of the situation. diff --git a/site-tutorials/FAQ/UNIX/07 b/site-tutorials/FAQ/UNIX/07 new file mode 100755 index 0000000..337e91f --- /dev/null +++ b/site-tutorials/FAQ/UNIX/07 @@ -0,0 +1,27 @@ +[07] WHERE ARE PROGRAMS LOCATED ON THIS SYSTEM? + + Standard UNIX utilities can be found in: + + /bin + /usr/bin + + Programs compiled and installed for use on SDF can be found in: + + /usr/pkg/bin + + Most games can be found in: + + /usr/pkg/games + + Programs authored and maintained by SDF MetaARPA members are in: + + /sys/sdf/bin + + The 'find' utility has been restricted to MetaARPA member use only. + This was due to abuse by users, usually newbies, running find / + which means a search will be conducted over 68 individual disk drives + with most of them being mounted via NFS. The bottom line is that + doing a search like this is highly intensive and takes a significant + amount of CPU time. As an alterative you should use 'locate' to find + programs and utilities located in public paths. + diff --git a/site-tutorials/FAQ/USENET/01 b/site-tutorials/FAQ/USENET/01 new file mode 100755 index 0000000..8dae6d5 --- /dev/null +++ b/site-tutorials/FAQ/USENET/01 @@ -0,0 +1,27 @@ +[01] WHAT IS USENET? HOW DO I GO ABOUT BEING A PART OF USENET? + + USENET consists of thousands of topic related "newsgroups". Submissions + to these newsgroups propogate via internetworked news servers through + out the world. + + From the UNIX shell, create a file in your home directory called + .newsrc. Add the list of groups you want to read like this: + + comp.lang.lisp: + rec.music.makers.synth: + comp.os.cpm: + comp.36bit.multics: + comp.36bit.twenex: + + The popular news readers seem to be trn and tin. You can run either + from the UNIX shell. + + Posting messages can be done from within a newsreader, or by using + the "postnews" or "Pnews" commands. + + NOTE FOR PINE USERS! + + If you want to read news from within pine, set the NNTP server to be + "news.sdf.org" Note that news can't be reached outside of sdf. However + if you have a tunnel running (either via the MetaARPA or VPN memberships) + you can connect to the news server. diff --git a/site-tutorials/FAQ/USENET/02 b/site-tutorials/FAQ/USENET/02 new file mode 100755 index 0000000..413e0f7 --- /dev/null +++ b/site-tutorials/FAQ/USENET/02 @@ -0,0 +1,12 @@ +[02] WHAT ARE THE SDF SPECIFIC USENET GROUPS? + + In 1999 SDF migrated to the local.* to the sdf.* hiearchy. The + current groups are: + + sdf.announce - moderated. SDF News and Announcements + sdf.classifieds - Buy, Sell and Trade + sdf.general - General discussions + sdf.music - Listening and Making music + sdf.requests - SDF Software install and update requests + sdf.helpdesk - Users helping users + diff --git a/site-tutorials/FAQ/USENET/03 b/site-tutorials/FAQ/USENET/03 new file mode 100755 index 0000000..34f50cf --- /dev/null +++ b/site-tutorials/FAQ/USENET/03 @@ -0,0 +1,4 @@ +[03] IS THE USENET SERVER ACCESSIBLE OUTSIDE OF THE SDF NETWORK? + + No, it is only accessible via the shell or either through the SDF Virtual + Private Network (vpn) or a ssh tunnel. diff --git a/site-tutorials/FAQ/VHOST/01 b/site-tutorials/FAQ/VHOST/01 new file mode 100755 index 0000000..24c111d --- /dev/null +++ b/site-tutorials/FAQ/VHOST/01 @@ -0,0 +1,52 @@ +[01] CAN I HAVE MY DOMAIN HOSTED HERE? CAN YOU HOST A COMMERCIAL SITE? + + Yes. SDF will do DNS (primary and secondary) for your domain + and even host webpages for that domain if you so desire. + + There are basically three pacakges for ARPA members. + + DNS ($20 annual) Name Service for your domain. You can + update your DNS record whenever you want + and SDF will reload it every 2 hours evenly. + + REGIS ($15 annual) Domain Name Registration in com, net and org. + VHOSTers who pay their dues annually have + free domain registration. + + VHOST This includes DNS, MAIL service and WEB + service. Daily transfer quotas are soft (not + strictly enforced by the servers) and scaled + based on your need: + + Membership dues Quota + $5/mo 100MB + $10/mo 250MB + $14/mo 500MB + $20/mo 1000MB + + If you are an ARPA member, type 'mkvhost' to get started. + + When you run 'mkvhost' to create a virtual host, a directory is + created in your html directory, similar to: + + $HOME/html/mydomain.xxx + + You are given the subdomain 'www' by default. If you wish to add + more subdomains, then a directory is created similar to: + + $HOME/html/subdomain.mydomain.xxx + + Just place your HTML/cgi/images/php4 in these directories and you + are good to go. + + CAN YOU HOST A COMMERCIAL SITE? + + Certainly! Your webspace is for your content and it doesn't matter + if it is a commercial or personal website, it can be hosted here. + + However, we do not allow the following 'types' of commercial sites: + + 1. Photographic and Film Pornography + 2. Piracy or Torrent serving / indexing + 3. Illegal profit schemes (Nigerian, Pyramid, Ponzi .. et cetera) + diff --git a/site-tutorials/FAQ/VHOST/02 b/site-tutorials/FAQ/VHOST/02 new file mode 100755 index 0000000..6310955 --- /dev/null +++ b/site-tutorials/FAQ/VHOST/02 @@ -0,0 +1,42 @@ +[02] WHAT ARE THE DIFFERENT DNS RECORD TYPES? + + This is a pretty quick and basic description. The most + important records are the A, MX and CNAME. You can probably + figure out how the DNS database entry works. + + SOA Start Of Authority. Is probably the most complicated + portion of the DNS database to understand. SDF takes + care of this record for you. + + A Address record. The IP address for a host or domain. + + MX Mail Exchanger. The host who handles mail for your + domain/hosts. There is a numeric value before the + MX host to specify preference (typically 75 for + a primary, and 100 for a secondary) + + CNAME Canonical Name - an equivilent host name. + + A typical database (without the SOA) might look like this: + + $ORIGIN mydomain.org. + + foo IN A 10.0.0.1 + IN MX 75 foo.mydomain.org. + IN MX 100 mail.anotherhost.org. + bar IN CNAME foo.mydomain.org. + + Notice that the "." at the end of text is of importance. + the $ORIGIN is a tag in the database, which tells the nameserver + that all information following needs to have 'mydomain.org.' + appended to the initial tag (id est, foo.mydomain.org. instead + of just 'foo'). + + In the above example, host 'foo' has an address of 10.0.0.1 and + its favourite mail exchanger is itself. In the event that it + is unavailable, its second favourite mail exchanger is + 'mail.anotherhost.org' which lives outside of this database. + + Host 'bar' in basically just an equivilent name for 'foo' .. although + you could of just had another A and MX records for 'bar', this is + the most efficient and clean way to build your database. diff --git a/site-tutorials/FAQ/VHOST/03 b/site-tutorials/FAQ/VHOST/03 new file mode 100755 index 0000000..c2fed0a --- /dev/null +++ b/site-tutorials/FAQ/VHOST/03 @@ -0,0 +1,7 @@ +[03] WHAT ARE THE PRIMARY AND SECONDARY DNS SERVERS? + + Please use: + + ns-a.sdf.org 192.94.73.20 (primary) + ns-b.sdf.org 192.67.63.35 (secondary) + ns-c.sdf.org 178.63.35.194 (ternary) diff --git a/site-tutorials/FAQ/VHOST/04 b/site-tutorials/FAQ/VHOST/04 new file mode 100755 index 0000000..2e8ba8e --- /dev/null +++ b/site-tutorials/FAQ/VHOST/04 @@ -0,0 +1,16 @@ +[04] CAN YOU REGISTER A DOMAIN NAME FOR ME? + + Certainly. We can register anything under most TLD (Top Level + Domains) that includes com, net, org, tv, uk, info, cc .. + + VHOSTers who pay their dues annually are eligible for FREE + domain registration in com, net and org. + + SDF is an open-registrar affiliate. The annual dues to keep a + domain name registered is $15. The DNS membership is also + included and can be set up with the 'mkvdom' command. + + Although we are registering the name for you, it is YOURS .. + (Becareful, some sites that want to help you register your + own domain name retain the rights to that domain!) + diff --git a/site-tutorials/FAQ/VHOST/05 b/site-tutorials/FAQ/VHOST/05 new file mode 100755 index 0000000..960510c --- /dev/null +++ b/site-tutorials/FAQ/VHOST/05 @@ -0,0 +1,25 @@ +[05] WHERE DO I UPLOAD MY VHOST'ED HTML? + + When you run 'mkvhost' for a particular domain, you are + told that your files reside in $HOME/html/domain.xxx + for that particular domain. These follow the same + conventions as any other directory .. you can create + .htpasswd/.htaccess files, index.html et cetera + + Also, its important to note if you want to host say + 'foo.com' and you also have a CNAME such as 'www.foo.com' + you'll see that 'mkvhost' makes both a 'foo.com' and + a 'www.foo.com' directory. + + This is fine if you want content to differ .. however, + you probably don't. In order to help you by not having + to duplicate your storage, you can make one of the directories + a symbolic link by doing the following: + + $ cd $HOME/html + $ rm -rf www.foo.com # be sure its empty or backed up! + $ ln -s foo.com www.foo.com + + Now you can put all your files in the directory 'foo.com' and + they show up when you access 'www.foo.com' as well as 'foo.com' + diff --git a/site-tutorials/FAQ/VHOST/06 b/site-tutorials/FAQ/VHOST/06 new file mode 100755 index 0000000..b0e62c1 --- /dev/null +++ b/site-tutorials/FAQ/VHOST/06 @@ -0,0 +1,119 @@ +[06] HOW DO I SETUP VHOST/VPM EMAIL ACCOUNTS WITH 'MKVPM'? + + Main reception and redirection is handled by the 'mkvpm' command. + This will allow you to create POP3 mail accounts for addresses + associated with your domain. You will also be able to create + aliases so that you can have typical addresses (like sales@, + info@, root@ .. et cetera) forward to another address or even + your ARPA shell account. + + Keep in mind, you must use 'mkvpm' before any email reception + or redirection is to occur. + + 'mkvpm' also lets you define a shared secret for SMTP authentication. + (SDF Supports the CRAM-MD5, DIGEST-MD5 and PLAIN AUTH Mechanisms) + + Once you have used the 'mkvpm' command, system updates will + incorporate your changes every 2 hours evenly. + + When you've created a new 'virtual pop3 mailbox' (ex user@domain.com) + you can check your messages with these settings: + + POP3 SERVER: mx.sdf.org + POP3 USER: user@yourdomain + POP3 PASS: yourpassword + + SMTP SERVER: mx.sdf.org + SMTP USER: yourdomainname@sdf.org + SMTP PASS: secret + AUTH TYPE: MD5 Challenge-Response + + By default you can have up to 50 VPMs associated with each + domain you have VHOSTed with SDF. + + 'mkvpm' has six commands: + + add - adds a new email address + del - deletes an email address + mod - modifies the POP3 password for an email address + aka - toggles (on/off) an alias mapped to an email address + set - creates an SMTP AUTH secret (mandatory for SMTP service) + all - toggles (on/off) wildcard reception to an email address + + Please note, aliases can not be deleted, they can only be toggled + on or off with the 'aka' command. + + It is also important to note that you can not define other aliases + if you have wildcarding enabled. + + You can also list all of your mail files associated with your + domain with the 'vpmstat' command. This will list all files + whether they are active or inactive. + + Old or large mailboxes can be cleared out with the 'vpmclear' command. + + If you wish to access VPM mailboxes via wm.sdf.org, follow + these steps: + + Click on 'options', then pop3 fetch mail. Fill in the necessary + information with your VPM username and password for the specific + account you want to fetch. Specify the folder you want the mail + to go to, by default it goes to your INBOX, but you could have it + go to a different folder. Click 'add server'. Now you can click + on 'fetch' in the main menu at any time you want to check VPM mail. + + ==============SETUP EXAMPLES FOR MACOS AND WINDOWS============== + + To use SMTP AUTH with your VHOST or VPM membership, you will use + the following information: + + SMTP server: 'mx.sdf.org' or 'sdfeu.org' + SMTP LOGIN: The domain name for your VHOST or VPM membership @sdf.org + SMTP PASSWD: Your secret which you have set with 'mkvpm' + + EXAMPLES for a VPM mailbox of 'bob@bob.freeshell.org' with a + password of 'bob' and an SMTP AUTH secret of 'FUBAR': + + Apple OS X w/ Mail.APP: + + Start the Mail.APP program. + Open preferences (CMD-,) + Click on + to add a new account. Fill in the followign: + + Account Type: POP + Description: SDF VPM address + Email Address: bob@bob.freeshell.org + Full Name: Bob Freeshell + + Incoming Mail Server: mx.sdf.org + User Name: bob@bob.freeshell.org + Password: bob + + Select 'add server' .. + Outgoing Mail Server: mx.sdf.org + Server Port: 25 + Authentication: MD5 Challenge-Response + User Name: bob.freeshell.org@sdf.org + Password: FUBAR + + Microsoft OutLook and LookOut Express + + $ mkvpm set FUBAR # where FUBAR is the SMTP password you want + + Open LookOut (or LookOut Distress) + Click TOOLS-->ACCOUNTS-->ADD-->MAIL + + pop3: mx.sdf.org + smtp: mx.sdf.org + + Account Name: bob@bob.freeshell.org + + Select TOOLS-->ACCOUNT-->PROPERTIES-->SERVERS + Check 'My server requires authentication" under Outgoing Mail Server + Click Settings + Choose "Log on using" + Account name: bob.freeshell.org@sdf.org + Password: FUBAR + + DO NOT Toggle on "Log on using Secure Password Authentication" + diff --git a/site-tutorials/FAQ/VHOST/07 b/site-tutorials/FAQ/VHOST/07 new file mode 100755 index 0000000..c24548b --- /dev/null +++ b/site-tutorials/FAQ/VHOST/07 @@ -0,0 +1,30 @@ +[07] WHERE IS MY PRIVATE LOG FILE LOCATED? + + All access requests for your domain (successful and failed) + can be found in norge:/var/log/httpd/vhosts + + You will receive a detailed summary once a month of your usage when + the logfiles are archived (see norge:/var/log/httpd/vhosts/ARCHIVE) + The previously archived log has a .o appended to it in the ARCHIVE + directory, while the latest archive does not. + + Daily detailed usage stats of all VHOST members are posted on + http://sdf.org/webstats .. select the year, then the + month and the host for stats (norge currently hosts all VHOST members). + + The detailed monthly summary mentioned above is the aggregate of + your daily stats in the same format. + + To get up to date stats on your site in graphical charts, check out + the analog stats http://sdf.org/vhosts (updated every 2 hours) + + The log file has the following format using | as a delimiter: + + 1. timestamp (UTC) + 2. your domain name + 3. path and file + 4. remote IP + 5. bytes xfered + 6. number of seconds spent serving the request + 7. HTTPD return code + diff --git a/site-tutorials/FAQ/VHOST/08 b/site-tutorials/FAQ/VHOST/08 new file mode 100755 index 0000000..e57a77f --- /dev/null +++ b/site-tutorials/FAQ/VHOST/08 @@ -0,0 +1,12 @@ +[08] CAN I POINT ADDITIONAL DOMAINS TO MY VHOST SPACE? + + Yes! You can do this with our 'POINTER' membership. Say you have + 'mydomain.com, mydomain.net and mydomain.org' or you wish to register + those domains. You do not need to get a VHOST membership for each + domain. Instead, you just need to pick a primary domain for the + VHOST membership and then pay $30/year for the additional domains + you wish to point to your VHOST space. + + To get started adding additional domains, run 'mkvhost' for the + domains you want to point to your VHOST domain. Pay your POINTER + dues of $30/year and specify where you want the domain pointed to. diff --git a/site-tutorials/FAQ/VHOST/09 b/site-tutorials/FAQ/VHOST/09 new file mode 100755 index 0000000..4b4387e --- /dev/null +++ b/site-tutorials/FAQ/VHOST/09 @@ -0,0 +1,12 @@ +[09] CAN I HAVE SEPARATE WEB DIRECTORIES FOR MY SUBDOMAINS? + + Yes! When you run the 'mkvhost' command only the web directory for + domain is created in $HOME/html/yourdomain.com. Requests for + yourdomain.com and www.yourdomain.com are served out of that directory. + + If you'd like to enable VHOST for subdomain.yourdomain.com then just + simple create the directory $HOME/html/subdomain.yourdomain.com and + put your content there. + + Each subdomain VHOST has a separate log file from the main VHOST + domain. Quotas are aggregated across all log files. diff --git a/site-tutorials/FAQ/WEB/01 b/site-tutorials/FAQ/WEB/01 new file mode 100755 index 0000000..2ae6145 --- /dev/null +++ b/site-tutorials/FAQ/WEB/01 @@ -0,0 +1,28 @@ +[01] HOW DO I MAKE MY HOMEPAGE NETWORK ACCESSIBLE? + + You'll need to run a script called "mkhomepg". In short, this script + does the following: + + - Creates a symbolics link called "html" in your home directory. + This points to your HTML storage area on the /www filesystem. + This is where you keep your html, image and cgi files. + + - Set proper file permissions on your directories. + (if you ever botch your file permissions, run 'mkhomepg -p') + + "index.html" is the file the http daemon will try to serve to clients + requesting your URL. + + CGIs will work as long as their are compiled bins that don't require + sockets, shell scripts or simple perl scripts. + + A CGI can run from ANY PLACE in your html directory. + + Once you have built a page, run the "mkhomepg -a" script. Your URL will + then become login.freeshell.org (or if you are an ARPA member, you may + choose from an array of host names). The update will occur within the + first even hour of running the command. + + If you are an ARPA member, you may also run "mkhomepg -d" to enable + traditional UNIX directory hosting. Then http://sdf.org/~login will + serve files in your "public_html" directory. diff --git a/site-tutorials/FAQ/WEB/02 b/site-tutorials/FAQ/WEB/02 new file mode 100755 index 0000000..0b8d50d --- /dev/null +++ b/site-tutorials/FAQ/WEB/02 @@ -0,0 +1,72 @@ +[02] IS PHP, ASP, PERL, SSI, CGI AVAILABLE HERE? + + YES! + + This is probably #1 FAQ regarding SDF hosted web sites. + + We use suEXEC and suPHP. What this means is that the tools + you have access to under your SDF membership are the tools + you can use in your website scripting. + + To make use of SSI, be sure to use .shtml as your filename + extension. + + Need to see php options? Create a file called 'test.php' + in your web directory, and put the following inside: + + + + Don't forget to run 'mkhomepg -p' afterwards to set the + proper permissions. Display results in web browser pointed + at "http://.sdf.org/test.php". + + + How about CGI? + + CGI scripts ARE allowed. Giving a detailed tutorial is + beyond the scope of this FAQ, however, below are some rather + simple examples: + + If you want to create a simple CGI, you don't need to use + PERL, you can do it the UNIX way in ksh! (PS, PERL != CGI) + + #!/bin/ksh + # + # My silly.cgi + # + echo Content-type: text/html + echo + echo "my silly output" + echo "

my silly hello world.

" + + To create powerful CGIs using LISP, you can use OpenLISP on + SDF by simply: + + #!/usr/pkg/uxlisp/uxlisp -quiet + ; + ; My powerful.cgi + ; + (print "Content-type: text/html") + (print) + (print "my powerful output") + (print "

my powerful hello world.

") + + For more information and a tutorial on using LISP on SDF + for the web, see http://lisp-p.org + + While we don't directly support 'ASP' you can convert any + ASP format file to a PHP file using 'asp2php' + + ------------------------------------------------------------ + + Yes, use the extension '.cgi' for a script to be executed by + the webserver. You can run 'mkhomepg -p' to set proper file + permissions after you have uploaded or created new files. Also, + you don't need to keep scripts in a '.cgi-bin' directory; CGIs + can be run from any directory within your web directory. + + Users are encouraged to educate themselves and take resposibility + to ensure their web content is properly formed, secure and not + using excessive system resources. diff --git a/site-tutorials/FAQ/WEB/03 b/site-tutorials/FAQ/WEB/03 new file mode 100755 index 0000000..b9b0bdb --- /dev/null +++ b/site-tutorials/FAQ/WEB/03 @@ -0,0 +1,34 @@ +[03] DO YOU HAVE A HIT COUNTER I CAN USE? + + Yes, here is one that smj wrote in KORN shell which does basic locking. + + Follow these steps (after you've run mkhomepg): + + $ cat > $HOME/html/counter.cgi + + Now copy and past the following into your terminal: + +#!/bin/ksh +# smj's no nonsense house. +loop=0 # set the while counter. +while [ -f .lck ] # while the lock file exists, +do + sleep 1 # sleep 1. + loop=$((${loop} + 1)) # then increment the counter. + if [ "$loop" -gt "10" ] # if it increments beyond 10, + then rm -f .lck # clear the lock file. + fi +done +touch -f .lck # create a new lock file. +count=`cat .cnt` # get the current count. +if [ "$count" = "" ] # if its empty, + then count=1 # start the counter over. + else count=$((${count} + 1)) # otherwise just increment +fi +echo $count > .cnt # write out the new count. +rm .lck # clear the lock +echo "Content-type: text/html" # make some html noise. +echo +echo "[$count]" + + ^D to close the 'cat' and run 'mkhomepg -p' to set proper permissions. diff --git a/site-tutorials/FAQ/WEB/04 b/site-tutorials/FAQ/WEB/04 new file mode 100755 index 0000000..60f2994 --- /dev/null +++ b/site-tutorials/FAQ/WEB/04 @@ -0,0 +1,41 @@ +[04] CAN I PASSWORD PROTECT MY DIRECTORIES? + + Yes you can. You can create usernames and passwords for + directories using the 'htpasswd' command. + + Follow these steps first! + + 1. Create a file called '.htaccess' in the directory you + want to protect (NOTE, its not a directory in your + HOME directory, but on the /www file system) + + AuthUserFILE /www/path/to/directory/.htpasswd + AuthGroupFILE /dev/null + AuthNAME "my protected files" + AuthTYPE Basic + require valid-user + <limit GET POST PUT> + order allow,deny + allow from all + </limit> + + 2. run the 'htpasswd' command, for the first time: + + htpasswd -c .htpasswd myuser1 + + You will be prompted to enter a password for the + new user. After this first user is created, you + can then add additional users with: + + htpasswd .htpasswd myuser2 + + When you run 'mkhomepg -p', file permissions will be set so that + only yourself and the webserver can read, execute and possibly + write. This helps if you have a cgi that requires your mysql + password to be stored in it. + + If you wish to password protect a directory on the metaarray, + you will need to enter the path + AuthUserFile /meta/www/a-z/username/private/.htpasswd + where a-z is the beginning letter of your username and then + replace username for your username. \ No newline at end of file diff --git a/site-tutorials/FAQ/WEB/05 b/site-tutorials/FAQ/WEB/05 new file mode 100755 index 0000000..ad0234a --- /dev/null +++ b/site-tutorials/FAQ/WEB/05 @@ -0,0 +1,41 @@ +[05] WHAT ABOUT THE ACCESS LOGS, STATISTICS AND QUOTAS? + + If you just want to check your web quota stats, you can type + 'webquota' at the shell, or see http://sdf.org/over + + Daily stats are posted at http://sdf.org/webstats + VHOST member web stats at http://sdf.org/vhosts + + VHOST members receive webstats in email once a month on the first + day of the month. + + If you want *more* information, then: + + Logfiles are are created based on the machines that run the + actual servers. + + host location members rollover archived + ------------------------------------------------------------------ + sdf /var/log/httpd users daily @ 00:00 1 day + faeroes /var/log/httpd ARPA daily @ 00:00 1 day + iceland /var/log/httpd MetaARPA daily @ 00:00 1 day + norge /var/log/httpd/vhosts vhost monthly 30 days + + The log file has the following format using | as a delimiter: + + 1. timestamp (UTC) + 2. your domain name + 3. path and file + 4. remote IP + 5. bytes xfered + 6. number of seconds spent serving the request + 7. HTTPD return code + 8. Refering URL (MetaARPA, VHOST and MOTD only) + 9. User Agent (Browser) (MetaARPA, VHOST and MOTD only) + + All CGIs (including PHP scripts) are run under the user's ID + There are two logfiles in /var/log/httpd of each server which + logs suexec and suphp attempts. + + If you're still confused, a good rule of thumb is to ssh to + LOGNAME@your-url and poke around in /var/log/httpd diff --git a/site-tutorials/FAQ/WEB/06 b/site-tutorials/FAQ/WEB/06 new file mode 100755 index 0000000..f7a7712 --- /dev/null +++ b/site-tutorials/FAQ/WEB/06 @@ -0,0 +1,55 @@ +[06] MY WEBSITE DOESN'T WORK! HOW CAN I TROUBLESHOOT ON MY OWN? + + OK! Take a deep breath and relax. In *most* cases you can solve + any issues on your own without bothering anyone. + + The main utility for setting up and maintaining your vanity URL + at SDF is the 'mkhomepg' command. To setup your URL do the + following: + + 1. Run 'mkhomepg' to setup your html directory. + a. Use FTP or other transfer method to place your + html files in that directory. Please note that + your must have a minimum of an 'index.*' file! + 2. Run 'mkhomepg -p' to set proper permissions + 3. Run 'mkhomepg -a' to add your vanity URL (keep in + mind this takes just under 2 hrs to update). + + 'mkhomepg -p' is your friend. Anytime you add new files, run + this command to ensure appropriate file permissions. + + Its good to use 'ping' and 'lynx' to check your URL locally. Sometimes + DNS updates do not propogate instantly. + + CGI permissions? Premature end of headers? 550 Internal Server Error? + + D O N T P A N I C + + Are you an ARPA member? To use 'python', 'perl' and a few others as + CGI you must be an ARPA member. You should see permission denied in + the logfiles if you attempt to use the programs in your CGIs. You + may use any shell, sed, awk and others for CGIs. + + Check the FAQ: answer in regards to location of logfiles. A + common problem is the use of the incorrect location of the executable + for the CGI. For instance: + + #!/usr/bin/perl + + is a common misconception. Use 'locate' or 'whereis' to find the + actual location of the perl, python, lisp, awk, ksh or any other + program you wish to use for your CGI. Also, your CGIs will use a + uniform file extension of '.cgi' + + Again, use 'mkhomepg -p' to set proper file permissions. Verify + the error or log messages in both the 'errlog' and 'suexec.log' + files. + + Also, keep in mind there is no restriction for CGIs to exist in a + 'cgi-bin' .. However, you may only run CGIs that exist on the + /www mounted filesystems. These CGIs can not be symbolic links in + or outside of the /www mounted filesystems. + + Sometimes embedded control characters (such as ^M) can cause problems + in CGI execution. You can use the 'fromdos' command to strip these + characters out. diff --git a/site-tutorials/FAQ/WEB/07 b/site-tutorials/FAQ/WEB/07 new file mode 100755 index 0000000..aa8b863 --- /dev/null +++ b/site-tutorials/FAQ/WEB/07 @@ -0,0 +1,9 @@ +[07] CAN I DEFINE MY OWN 403, 404 and 405 ERRORDOCUMENTS? + + Yes, just create an .htaccess file in your base html + directory and populate it with an entry like this: + + ErrorDocument 404 /404.html + + When the '404.html' file contains your custom 404 + file not found error message. diff --git a/site-tutorials/FAQ/WEB/08 b/site-tutorials/FAQ/WEB/08 new file mode 100755 index 0000000..c230f9b --- /dev/null +++ b/site-tutorials/FAQ/WEB/08 @@ -0,0 +1,20 @@ +[08] HOW CAN I GET P5-XXX-XXXX MODULE INSTALLED FOR CGI USE? + + All software requests can be made via the 'bboard'. + Check the 'software' command to see what is already installed. + Once your request is made, installation should occur within the + same day. Sometimes multiple packages must be updated, so please + be thoughtful and patient. + + Please note ImageMagick, as do many other packages, uses X11 + libraries. The X11 system is restricted to MetaARPA members only. + + It is very helpful to point out where obscure software packages + might be located if they aren't already included in NetBSD pkgsrc. + If porting needs to occur, please be extra patient and consider + making a donation prior to the software being ported. + + Requesting "XYZ" be installed usually will result in non-action. + Its best to explain what the software is and what you'll be using + it for. That way other users reading the thread can understand + what you are asking for as well. diff --git a/site-tutorials/Gate_One.html b/site-tutorials/Gate_One.html new file mode 100644 index 0000000..da3e95c --- /dev/null +++ b/site-tutorials/Gate_One.html @@ -0,0 +1,4 @@ +

Gate One SSH Interface

+

SDF provides a HTTPS based SSH client using Gate One at ssh.sdf.org. This allows use of SSH behind networks that filter or block SSH traffic. +It also maintains a persistent connection over unstable network connections.

+$Id: Gate_One.html,v 1.1 2019/03/19 19:05:32 kj8am Exp kj8am $ diff --git a/site-tutorials/InstantMessaging.html b/site-tutorials/InstantMessaging.html new file mode 100644 index 0000000..cbb205a --- /dev/null +++ b/site-tutorials/InstantMessaging.html @@ -0,0 +1,107 @@ +

Instant Messaging on SDF

+

+On SDF you can use nearly all of the popular instant messaging +protocols via fast and efficient text clients. Many users have set +up scripts so that they can use various IM clients via their computers +or wireless devices such as two way pagers, blackberry, palm pilots and +cellphones, and you can too. +

+

Some of the clients listed in this page are able to connect simultaneusly +to various IM networks as centerim and finch (which is purple/pidgin based). +Links are provided to web pages with detailed steps to connect to the +various IM networks using the available clients at SDF

+

Also, some clients are not very actively maintained, so may not be able +to connect to the networks they claim are able to connect to, your best bet +are centerim and finch.

+ +

Available clients

+

(+) In AMD64 hosts. (*) In Alpha hosts.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 bsflite (+)centericq (+)centerimekg (+)finch (*)naim (+)mcabber (+)
AIMYESYESYES YESYES 
Gadu-Gadu YESYESYESYES  
Jabber/XMMP +  YESYES YES YES
MSN YESYES YES  
YAHOO YESYES YES  
ICQ YESYES YES  
+ +

Bitlbee

+

+Bitlbee is an IRC gateway to MSN, ICQ, Jabber, Yahoo, and AIM. +It allows you to connect to these services using an irc client. +

+
    +
  1. connect with your favorite irc client to im.bitlbee.org.
  2. +
  3. say "help" to the root nick, or just type help. everything you need is there.
  4. +
+ +

A list of Instant Messaging libraries available

+
  • p5-Net-AIM-1.22 - Implementation of the AOL Instant Messenger TOC protocol +
  • libyahoo-0.18.4 - Yahoo! Messenger client library +
  • ... +

    +$Id: InstantMessaging.html,v 1.2 2013/07/17 03:16:52 tcj Exp $ diff --git a/site-tutorials/InstantMessenging.html b/site-tutorials/InstantMessenging.html new file mode 100644 index 0000000..592c34b --- /dev/null +++ b/site-tutorials/InstantMessenging.html @@ -0,0 +1,107 @@ +

    Instant Messaging on SDF

    +

    +On SDF you can use nearly all of the popular instant messaging +protocols via fast and efficient text clients. Many users have set +up scripts so that they can use various IM clients via their computers +or wireless devices such as two way pagers, blackberry, palm pilots and +cellphones, and you can too. +

    +

    Some of the clients listed in this page are able to connect simultaneusly +to various IM networks as centerim and finch (which is purple/pidgin based). +Links are provided to web pages with detailed steps to connect to the +various IM networks using the available clients at SDF

    +

    Also, some clients are not very actively maintained, so may not be able +to connect to the networks they claim are able to connec to, your best bet +are centerim and finch.

    + +

    Available clients

    +

    (+) In AMD64 hosts. (*) In Alpha hosts.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     bsflite (+)centericq (+)centerimekg (+)finch (*)naim (+)mcabber (+)
    AIMYESYESYES YESYES 
    Gadu-Gadu YESYESYESYES  
    Jabber/XMMP +  YESYES YES YES
    MSN YESYES YES  
    YAHOO YESYES YES  
    ICQ YESYES YES  
    + +

    Bitlbee

    +

    +Bitlbee is an IRC gateway to MSN, ICQ, Jabber, Yahoo, and AIM. +It allows you to connect to these services using an irc client. +

    +
      +
    1. connect with your favorite irc client to im.bitlbee.org.
    2. +
    3. say "help" to the root nick, or just type help. everything you need is there.
    4. +
    + +

    A list of Instant Messaging libraries available

    +
  • p5-Net-AIM-1.22 - Implementation of the AOL Instant Messenger TOC protocol +
  • libyahoo-0.18.4 - Yahoo! Messenger client library +
  • ... +

    +$Id: InstantMessenging.html,v 1.11 2011/02/08 21:32:28 clemens Exp $ diff --git a/site-tutorials/POTENTIALTOPICS.TXT b/site-tutorials/POTENTIALTOPICS.TXT new file mode 100644 index 0000000..51d6c92 --- /dev/null +++ b/site-tutorials/POTENTIALTOPICS.TXT @@ -0,0 +1,28 @@ +$Id: POTENTIALTOPICS.TXT,v 1.5 2008/01/09 13:52:57 wliao Exp $ + +List of programs + email + editors + games + chat + shells + programming languages + +Using VI + I'll likely convert http://geekbot.freeshell.org/index.php?iPage=ViEditor + The url for this is now http://geekbot.freeshell.org/static/060717/ViEditor.html + But perhaps a link to the vi faq would be simpler? + http://www.faqs.org/faqs/editor-faq/vi/part1/ + http://www.faqs.org/faqs/editor-faq/vi/part2/ + +Using emacs + +List of links to useful UNIX resources + +Web design/shell scripting + +What is a moo + +Gopher howto + +Things to consider when participating in BBOARD discussions diff --git a/site-tutorials/PPTP.html b/site-tutorials/PPTP.html new file mode 100644 index 0000000..3868c54 --- /dev/null +++ b/site-tutorials/PPTP.html @@ -0,0 +1,334 @@ + + + Connecting to the SDF VPN with PPTP + + + +

    Connecting to the SDF VPN with PPTP

    +

    Contents

    + + +

    Overview

    +

    The Virtual Private Network (VPN) provided by SDF has a number of uses. The most beneficial of that is to allow confidential communication over a public network. Basically, the SDF VPN will allow you (once routing is enabled) to communicate securely over an insecure connection such as a public Wireless Fidelity (Wi-Fi) network.

    +

    The major benefit of this over SSH forwarding/tunneling is that it is much easier to configure and automatically tunnels all connections leaving your computer, and not just those specifically configured for forwarding. Some may see this as a negative aspect of the VPN, however.

    + +

    Setting it up

    +

    The SDF VPN is quite easy to set up. You must first choose a VPN plan that is right for you, based on assumed bandwidth usage. Pricing and more package information is available through the shell by typing 'vpn' without the quotes.

    +

    Once you've been added to the VPN membership level (you'll receive an email notification of this), you must set up your VPN access by typing 'setvpn' in the shell, without quotes. This will allow you to configure your VPN secret (password) for connecting.

    +

    You should make note of the VPN's IP address when setting up your secret.

    +

    Once you've configured your VPN account, it's time to connect. Continue reading below for step-by-step instructions on connecting to the VPN.

    + +

    Connecting in Windows XP

    + +
      +
    1. Open the Windows Control Panel.
    2. +
    3. Open the Network Connections item in Control Panel. Generally you would click the "Network and Internet Connections" option, then click "Network Connections". A list of existing dial-up and LAN connections will be displayed.
    4. +
    5. Click on the "Create a new connection" option from the left-hand side of the window. The Windows XP New Connection Wizard will come up.
    6. +
    7. Click the "Next" option to begin the wizard. Then choose the "Connect to the network at my workplace" option from the list and click "Next".
    8. +
    9. On the Network Connection page of the wizard, choose the "Virtual Private Network connection" option and click "Next".
    10. +
    11. Choose a name for this connection on the "Connection Name" screen. Windows will use this to reference the VPN connection.
    12. +
    13. Choose an option on the "Public Network" screen and click "Next". The default option, "Automatically dial this initial connection" can be used if the VPN connection will always be initiated when the computer is not already connected to the Internet. Otherwise, choose the "Do not dial the initial connection" option. This requires that the public Internet connection be established first, before this new VPN connection will be initiated. Choose this option.
    14. +
    15. Enter the IP address for the VPN on the "VPN Server Selection" screen. This is obtained via the 'setvpn' command (without quotes) in the shell.
    16. +
    17. Choose an option on the "Connection Availability" screen and click "Next". The default option, "My Use Only", ensures that Windows will make this VPN connection available only to the user that is currently logged in to the computer. If you don't want this, select the "Anyone's use" option.
    18. +
    19. Click "Finish" to complete the wizard. You may wish to select the option to create a desktop shortcut for easy access. The information for the VPN connection will be saved for current and/or future use.
    20. +
    + +

    Connecting in Windows Vista

    +

    Connecting to the VPN is slightly different in Windows Vista. Please use these instructions to connect to SDF's VPN through Vista.

    + +
      +
    1. Click on the "Start" button and then choose "Connect to".
    2. +
    3. Click on the "Set up a connection or network" option on the window that follows. It's near the bottom.
    4. +
    5. On the window that comes up, scroll down and click on the "Connect to a workplace" option. Then click "Next".
    6. +
    7. A question asking "Do you want to use a connection you already have?" may appear. Select "No, create a new connection." if it does and then click "Next".
    8. +
    9. Next you'll be asked "How do you want to connect?" Select "Use my Internet connection (VPN)".
    10. +
    11. You'll then be asked for the Internet address. Enter the address you remembered when accessing 'setvpn' (without quotes) in the SDF shell.
    12. +
    13. Enter a name for this VPN connection in the "Destination name:" field. This is how Windows Vista will reference the VPN.
    14. +
    15. If you don't want to connect immediately, check the "Do not connect now; just set it up so I can connect later." option.
    16. +
    17. Do not check the "Use a smart card." option.
    18. +
    19. When finished, click "Next"
    20. +
    21. You'll then configure the username and password needed to authenticate to the VPN. The username is your SDF username and the password is the secret you set up via the 'setvpn' command in the shell.
    22. +
    23. Leave the "Domain" field blank.
    24. +
    25. Click the "Create" button once you are done. You should then see a window pop up saying that "The connection is ready to use." Click on "Close".
    26. +
    + +

    Connecting in Linux

    + +
      +
    1. Make sure PPP and PPTP are installed. The can be accomplished in Debian or Ubuntu by entering 'sudo apt-get install pptp-linux' into a terminal.
    2. +
    3. Create a file named sdfpptp in /etc/ppp/peers by entering 'sudo gedit /etc/ppp/peers'. Replace gedit with your choice of text editor. Add the following to the file: (Be sure to replace username with your username.)

      + Note: Make sure to replace IP Address with the IP address/hostname provided when running 'setvpn' in the shell.
      +
      +remotename sdfpptp
      +linkname sdfpptp
      +ipparam sdfpptp
      +pty "pptp --loglevel 0 IP Address --nolaunchpppd"
      +name username
      +refuse-eap
      +refuse-pap
      +refuse-chap
      +refuse-mschap
      +require-mppe
      +nomppe-stateful
      +require-mppe-128
      +nomppe-40
      +noauth
      +nodetach
      +lock
      +bsdcomp 9,15
      +deflate 9,15
      +idle 0
      +	
      +
    4. Save the file.
    5. +
    6. Edit /etc/ppp/chap-secrets by entering 'sudo gedit /etc/ppp/chap-secrets'. Add the line username stfpptp password * replacing username and password with your SDF username and your password set by 'setvpn'.
    7. +
    8. Make sure a specific route to the VPN exists. Run 'sudo route add VPN-IP gw GW-IP' replacing VPN-IP with the IP address/hostname provided when running 'setvpn', and replace GW-IP with your gateway IP address. If you do not know the IP address of your gateway, enter 'route'. It is the gateway IP next to the destination default.
    9. +
    10. Enter 'sudo pppd call sdfpptp' into a terminal. Wait for it to show the local and remote IP addresses. You should now be connected. Do not close the terminal until you are ready to disconnect.
    11. +
    12. Open another terminal. Enter 'sudo route add -net 192.94.73.0/24 dev ppp0'. This will route all your connections to SDF through the VPN.
    13. +
    + +
    Alternatively to steps 5 and 6, you might use a wrapper script like this:
    +
    +#!/bin/bash
    +SDFVPNHOST=IP Address
    +RT=`ip route get $SDFVPNHOST | head -1`
    +DEV=`echo $RT | awk '{while ($num != "dev") {num++}{print $(num+1)}}'`
    +VIA=`echo $RT | awk '{while ($num != "via") {num++}{print $(num+1)}}'`
    +ip route add $SDFVPNHOST via $VIA dev $DEV
    +ip route add $SDFVPNHOST via $VIA dev $DEV table sdftun
    +pppd call sdfpptp
    +ip route del $SDFVPNHOST via $VIA dev $DEV
    +ip route del $SDFVPNHOST via $VIA dev $DEV table sdftun
    +
    + +This automatically detects the default gateway and adds appropriate routes, starts the VPN and deletes the routes after VPN has been +stopped. If you do not use a custom routing table dedicated to the SDF VPN you should delete the lines ending in "table sdftun".
    +
    +

    GUI Setup With NetworkManager

    + +

    + Any of the newer Linux distros that use + NetworkManager (Debian, Ubuntu, Fedora, etc.) on their + default desktops have a GUI interface to PPTP VPN + configuration. You'll need to install a package to get + this capability (although this now seems to be included in the + latest Ubuntu 10.10 release): +

    + +

    Fedora:

    + +
    +                  yum install NetworkManager-pptp
    +                
    + +

    Debian/Ubuntu:

    + +
    +                  apt-get install network-manager-pptp
    +                
    + +

    + Once installed, restart the NetworkManager service + (/etc/init.d/NetworkManager + restart) and left-click on the network + manager icon in your + taskbar. Highlight VPN + Connections and click + on Configure + VPN: +

    + +

    + Network Manager - Overview Settings +
    + Network Manager - VPN Settings Overview +

    + +

    + Click on + the Add + button, and + choose Point-to-Point + Tunneling Protocol (PPTP), then click + Create. Fill out the User + name, Password + and Gateway + fields with appropriate values + (from when you + ran setvpn): +

    + +

    + Network Manager Settings - VPN Settings Detail +

    + +

    + Now click on + Advanced: +

    + +

    + Network Manager Settings - Advanced VPN Details +

    + +

    + Under + Authentication, de-select + all the methods except MSCHAPv2. Then select + Use Point-to-Point Encryption (MPPE) and choose + 128-bit (most + secure) in + the Security + dropdown. Click OK, then Apply + and close all other configuration dialogs. Now when + you left-click on the network manager icon, you + should have your PPTP VPN listed + under VPN + Connections. Just select it and wait. If it + is successful, you'll see a little lock icon appear + over the usual network manager icon. If not, check + your system log for errors. This will + be /var/log/messages + or /var/log/syslog, + depending on your distro. +

    + +

    A Note on Routing

    + +

    + If you use network manager, all traffic will be + routed through the PPTP VPN for you once you are + connected. If that's not what you want, you can + click on IPV4 + Settings and + then Routes + to have simple static routes added for you + automatically when the VPN connects. You can also + check Use this + connection only for resources on this + network, which in our case means only + connections to SDF hosts will be encrypted. +

    + +

    + Network Manager Settings - Add Routes +

    + +

    Connecting in FreeBSD

    +
      +
    • Install mpd4 from ports or packages. +
    • Add the following section to your /usr/local/etc/mpd4/mpd4.conf: + +sdfvpn: + new -i ng1 sdfvpn sdfvpn + set iface disable on-demand + set iface idle 0 +# disconnect the client after 8 hours + set iface session 28800 + set iface route 10.0.0.0/24 + set iface route default + set bundle disable multilink + set auth authname "USERNAME" + set auth password "PASSWORD" + set link yes acfcomp protocomp + set link no eap + set link no pap + set link accept chap + set link mtu 1460 + set link keep-alive 10 75 + set ipcp yes vjcomp + set ipcp ranges 0.0.0.0/0 + set ipcp yes req-pri-dns req-sec-dns + +# +# The five lines below enable Microsoft Point-to-Point encryption +# (MPPE) using the ng_mppc(8) netgraph node type. +# + set bundle yes compression + set ccp yes mppc + set ccp yes mpp-compress + set ccp yes mpp-e128 + #set bundle accept crypt-reqd + set ccp yes mpp-stateless + open + +
    • You will have to replace three (3) things in this config: +
        +
      1. Your USERNAME +
      2. Your PASSWORD +
      3. The local address of SDF's VPN host. This can be found in /etc/hosts on SDF. The local IP will start with 10.0.0, but have the same last octet as the public IP. +
      +'
    • Add this in your /usr/local/etc/mpd4/mpd4.links file: + +sdfvpn: + set link type pptp + set pptp peer + set pptp enable originate outcall + set pptp disable incoming + +
    • You will have to replace one (1) thing in this config: +
        +
      1. The public address of SDF's VPN host. You can get this by running setvpn at the shell. +
      +
    • Now, as root, run mpd4 sdfvpn. +
    • You should now be connected to SDF over a layer 3 tunnel across the Internet. +
    • Your new routes are only for SDF's hosts, and use their internal IP addresses. These are the 10.0.0.x ones. I'm working on how to route to the public ones over the VPN without creating a routing loop to the VPN host. I copied SDF's /etc/hosts file to my machine so that I can run 'ssh sdf1' to connect through the tunnel. +
    + + +

    Connecting in Mac OS X

    +
      +
    1. Open /Applications/Internet Connect.app
    2. +
    3. Click on the VPN button.
    4. +
    5. Click on the Configuration dropdown and go to "Edit Configurations..."
    6. +
    7. Press the + button at the bottom left of the window to add a configuration.
    8. +
    9. Under "Description" put whatever you want. SDF VPN is a good choice. +
    10. Under the "Server Address," Enter the IP address for the VPN on the "VPN Server Selection" screen. This is obtained via the 'setvpn' command (without quotes) in the shell.
    11. +
    12. Under Username put your SDF username and the password is the secret +you set up via the 'setvpn' command in the shell.
    13. +
    14. Choose "Automatic" encryption.
    15. +
    16. Click "OK".
    17. +
    18. Then, whenever you want to connect you can return to this Internet Connect Application and go to the VPN, choose the SDF VPN and click connect. Optionally, you can click "Show VPN status in the menu bar" and you can connect to the VPN from the menu bar icon.
    19. +
    + + + +

    Connecting On An iPad

    +
      +
    1. Log into SDF and run the 'setvpn' command. +
    2. Hit 'p' to set up your password. +
    3. Enter your password twice. The password must be 14 characters or less, and ideally should contain letters, numbers, upper and lower case, and a special symbol, though there are no actual complexity requirements. +
    4. After you have set up your password, the setvpn wizard will tell you what IP address to connect to. It will be 192.94.73.X. Write this whole IP address down. You will need it in a later step. +
    5. Hit 'q' to exit the configuration. + +
    6. Turn on your iPad and go to the Settings. +
    7. Go into the Network subsection. +
    8. Go into the VPN subsection. This will bring up the 'Add Configuration' window. +
    9. Select "PPTP" at the top. +
    10. In the Description field, label this connection something useful to identify it, such as 'SDF VPN'. +
    11. In the 'Server' field, put in the IP address that you wrote down earlier. +
    12. In the 'account' field, put your SDF user name. +
    13. In the 'Password' field, put the password that you set up while running the setvpn wizard in the set above. This will cause the iPad to remember your password for you. If you wish to type it in each time you connect, leave this field blank. +
    14. Set the encryption level to 'Maximum' +
    15. Leave the 'Send All Traffic' slider set to 'On', unless you specifically want to (and know how to) set up VPN usage in individual applications. +
    16. Hit the 'Save' button at the top + +
    17. To turn on VPN, slide the VPN slider to 'On' for the connection called SDF and open the browser. Connect to http://whatsmyip.org and verify that the IP address it shows as your source. +
    + +

    The wrap-up

    +

    Now that you have your VPN configured to connect, make sure that you don't forget to use it! Using the VPN while connected through a public access network (or even your home network!) will tunnel all connections through SDF and out to the Internet (once routing is enabled). Please make sure to use the VPN responsibly, as all actions and activity will be traced back to SDF.

    +

    Enjoy!

    +
    +$Id: PPTP.html,v 1.2 2011/06/15 15:51:32 avoyager Exp $ + + + diff --git a/site-tutorials/Rails_Basic_Application.html b/site-tutorials/Rails_Basic_Application.html new file mode 100644 index 0000000..2f412c3 --- /dev/null +++ b/site-tutorials/Rails_Basic_Application.html @@ -0,0 +1,190 @@ + + Building a Basic Ruby on Rails Application + + + + + +

    Building a Basic Ruby on Rails Application

    + + + +
    + +

    Introduction

    + +

    [ To Be Written ]

    + + +

    Creating a Rails Project

    + +

    All rails applications reside in their own directory tree. This tree is +automatically generated by the 'rails' command ( 'man rails +' for more information ). To create our project's directory structure, +execute the following:

    + + + (alterego@sverige)# rails ~/html/bookmarks --database=sqlite3
    + (alterego@sverige)# ln -s bookmarks ~/html/rails
    + (alterego@sverige)# cd ~/html/rails +
    + +

    The first command creates our project's directory tree under the +'~/html/bookmarks' directory. Then we create a symlink from this +directory, to '~/html/rails' so that the SDF utility scripts will +be able to find, and work with this project. ( +More info )

    + +

    The '--database=sqlite3' argument to the 'rails' +executable, informs Rails to configure the new project to use an SQLite3 +database backend. If you have 'dba' membership then you can use MySQL as your +backend by substituting 'sqlite3' with 'mysql'. This +tutorial will however focus in using SQLite3 as it is available to all MetaARPA +members. If you are going to use MySQL as your database backend, then you'll +have to read this in order to configure +your backend properly.

    + +

    The final command changes your working directory to your new projects' root. +The rest of the commands in this tutorial rely on you being at this location in +order to execute correctly.

    + + +

    Building The Data Model

    + +

    Now we are sitting in our nice new Rails project's root directory, we can +start building our application. The most important thing in any database driven +application like this one, is the data model. It specifies what data our +application interacts with, and how we interact with it.

    + +

    In this application, we only have one data type, that is a 'Link', this link +must have a name, some descriptive information and the target URI. Normally at +this stage you'd have to roll-up your sleaves and write one of those fugly SQL +statements to create your table. Not us, Rails has cunningly abstracted database +interaction for us, so no more SQL! In order to create our mode we must run +this command:

    + + + (alterego@sverige)# ruby script/generate model link + + +

    This command line executes the Ruby script, 'script/generate'. +The 'generate' script is extremely useful, it automates the process +of creating files to add specific functionality to our applications. You can +tell what operations a 'generate' command has performed by reading +it's output. This command created the two files required to create our 'Link' +model.

    + +

    Next we need to edit the 'db/migrate/001_create_links.rb' file. +Files located under the 'db/migrate' directory are used to perform +revision changes on your project's database. This file will allow us to specify +our databases table without the need for any SQL, and, if required, roll our +database back to before this migration occured.

    + +

    Edit 'db/migrate/001_create_links.rb'

    + +
    +class CreateLinks < ActiveRecord::Migration
    +  def self.up
    +    create_table :links do |t|
    +      t.column :name, :string
    +      t.column :info, :string
    +      t.column :url,  :string
    +    end
    +  end
    +
    +  def self.down
    +    drop_table :links
    +  end
    +end
    +
    + +

    Now we've specified our 'links' table's structure. We have to +commit the revision in order to create the table. To do this execute the +following:

    + + + (alterego@sverige)# rake db:migrate + + +

    Going into the details of this command is way outside the scope of this +document, I wouldn't have used it in this tutorial if it wasn't for it being +such an easy way to generate a database across different backends.

    + + +
    +

    A Quick Demonstration!

    + +

    Before we move on to defining the application controller, I thought I would +try and impress you with Rails magic. The next two commands will allow you to +list, view, edit and delete items from your database through your web browser: +

    + + + (alterego@sverige)# ruby script/generate scaffold link
    + (alterego@sverige)# ruby script/server -p `id -u` +
    + +

    Right, those two commands did quite a bit. The first one generated a basic +set of HTML templates and application logic. The second command started a +web server, written in Ruby, running on a port that was specified from your +userid. You'll notice on the second line of output from the 'server +' script, the address that it has bound itself too, along with the port +number ( your user id ) it is running on in standard URI format.

    + +

    So, open up a web browser, and point it to +'http://sverige.freeshell.org:[ YOUR USER ID ]' substituting your +user id. Your browser should open 'Ruby on Rails: Welcome aboard' page. This +just indicates that the Rails environment and server are running. Now, go back +to your browsers' address bar, and append '/links' after your user +id. Your browser should now show a rather rubbish looking list view, with no +elements.

    + +

    At this point it will probably be a good idea to play around and add some +items as we'll need them for the next sections. Besides, I need to make myself a +drink ...

    + +

    To Be Continued ...

    + + +
    +

    Appendix A: SDF Utility Scripts

    + +

    There are two utility scripts written specifically for Rails applications +on SDF. The first 'ror' toggles whether the Rails project under ' +~/html/rails' has it's server started when the syste boots. The second +script 'railsctl', is start/stop daemon, which starts or stops the Rails +project located in the standard SDF project location.

    + +

    As you may want to play with multiple Rails projects, it doesn't really +matter where you put them, or what you call them. But if you plan on using the SDF utility scripts, which is a good idea if you want to host your project, +then it's probably a good idea to symlink your current project directory to +'~/html/rails'

    + + +

    Appendix B: Configuring A Database

    + +

    [ To Be Written ]

    + +
    +$Id: Rails_Basic_Application.html,v 1.2 2006/12/31 14:27:54 alterego Exp $ +
    diff --git a/site-tutorials/Ruby_on_Rails.html b/site-tutorials/Ruby_on_Rails.html new file mode 100644 index 0000000..c37f47e --- /dev/null +++ b/site-tutorials/Ruby_on_Rails.html @@ -0,0 +1,291 @@ + +Ruby on Rails on SDF + + +

    Ruby on Rails on SDF

    +

    + +

    Content

    +
    + +

    + +

    What is Rails?

    + +

    +Ruby on Rails is a WebDev framework written in the +Ruby programming language. +

    + +

    Prerequisites

    + + + +

    Getting started

    + +

    +Step 1: Run mkhomepg if you have not already done so +(see the +building_a_website +tutorial for more information on the mkhomepg command). +

    + +

    +Step 2: Use the rails command to construct the base for your new rails application: +

    + +
    +$ cd $HOME/html
    +$ rails rails
    +      create
    +      create  app/controllers
    +      create  app/helpers
    +      create  app/models
    +      create  app/views/layouts
    +      create  config/environments
    +      create  components
    +      create  db
    +      create  doc
    +      create  lib
    +      create  lib/tasks
    +      create  log
    +      create  public/images
    +      create  public/javascripts
    +      create  public/stylesheets
    +      create  script/performance
    +      create  script/process
    +      create  test/fixtures
    +      create  test/functional
    +      create  test/integration
    +      create  test/mocks/development
    +      create  test/mocks/test
    +      create  test/unit
    +      create  vendor
    +      create  vendor/plugins
    +      create  tmp/sessions
    +      create  tmp/sockets
    +      create  tmp/cache
    +      create  Rakefile
    +      create  README
    +      create  app/controllers/application.rb
    +      create  app/helpers/application_helper.rb
    +      create  test/test_helper.rb
    +      create  config/database.yml
    +      create  config/routes.rb
    +      create  public/.htaccess
    +      create  config/boot.rb
    +      create  config/environment.rb
    +      create  config/environments/production.rb
    +      create  config/environments/development.rb
    +      create  config/environments/test.rb
    +      create  script/about
    +      create  script/breakpointer
    +      create  script/console
    +      create  script/destroy
    +      create  script/generate
    +      create  script/performance/benchmarker
    +      create  script/performance/profiler
    +      create  script/process/reaper
    +      create  script/process/spawner
    +      create  script/runner
    +      create  script/server
    +      create  script/plugin
    +      create  public/dispatch.rb
    +      create  public/dispatch.cgi
    +      create  public/dispatch.fcgi
    +      create  public/404.html
    +      create  public/500.html
    +      create  public/index.html
    +      create  public/favicon.ico
    +      create  public/robots.txt
    +      create  public/images/rails.png
    +      create  public/javascripts/prototype.js
    +      create  public/javascripts/effects.js
    +      create  public/javascripts/dragdrop.js
    +      create  public/javascripts/controls.js
    +      create  public/javascripts/application.js
    +      create  doc/README_FOR_APP
    +      create  log/server.log
    +      create  log/production.log
    +      create  log/development.log
    +      create  log/test.log
    +
    + +

    It has become SDF policy to have the project that you want to be served under '$HOME/html/rails' in actuality you can locate the rails project directory anywhere and call it what you like. The 'railsctl' and 'ror' command expect the project that you want to host to be located in the afore-mentioned directory. So, if you want your server to be started when the host starts and 'railsctl' to find your project then you should symlink your current project to that location, or use that location.

    + +step 3: + +

    Start the webrick server on the port that is equal to your uid, which you can obtain by executing 'id -u':

    + +
    +$ railsctl start
    +- or -
    +$ ruby $HOME/html/rails/my_first_project/script/server -p `id -u`
    +=> Booting WEBrick...
    +=> Rails application started on http://0.0.0.0:60844
    +=> Ctrl-C to shutdown server; call with --help for options
    +
    + +

    Then point your browser at http://yourdomain:<YOUR UID> You should now be looking at the default 'Welcome to Rails page'. Now you can begin to develop your rails app.

    + +

    Hello, world of Rails!

    + +

    +Rails is a Model-View-Controller framework. Rails accepts incoming requests +from a browser, decodes the request to a controller, and calls an action +method in that controller. The controller then invokes a particular view to +display the results to the user. The good news is that Rails takes care of most +of the internal plumbing that links all these actions. To write our simple Hello, World! application, we need code for a controller and a view. We don't need +code for a model, because we're not dealing with any data. Let's start with the +controller.

    + +

    +In the same way that we used the rails command to create a new Rails application, +we can also use a generator script to create a new controller for our +project. This command is called generate, and it lives in the script subdirectory +of the my_first_project project we created. So, to create a controller called Say, we make +sure we're in the my_first_project directory and run the script, passing in the name of +the controller we want to create. +

    + +
    +$ ruby $HOME/html/rails/my_first_project/script/generate controller Say
    +exists app/controllers/
    +exists app/helpers/
    +create app/views/say
    +exists test/functional/
    +create app/controllers/say_controller.rb
    +create test/functional/say_controller_test.rb
    +create app/helpers/say_helper.rb
    +
    + + +

    +The script logs the files and directories it examines, noting when it adds new +Ruby scripts or directories to your application. For now, we're interested in +one of these scripts and (in a minute) the new directory. +The source file we'll be looking at is the controller. You'll find it in the file +app/controllers/say_controller.rb. Let's have a look at it. +

    + + +
    +class SayController < ApplicationController
    +end
    +
    + +

    +Pretty minimal, eh? SayController is an empty class that inherits from ApplicationController, +so it automatically gets all the default controller behavior. Let's +spice it up. We need to add some code to have our controller handle the incoming +request. What does this code have to do? For now, it'll do nothing. We simply need an empty action +method. +

    + +

    +Let's add an action called hello to our say controller. Adding a hello action means +creating a method called hello in the class SayController. But what should it do? +For now, it doesn't have to do anything. Remember that a controller's job is to set up +things so that the view knows what to display. In our first application, there's nothing +to set up, so an empty action will work fine. Use your favorite editor to change the +file say_controller.rb in the app/controllers directory, adding the hello method +as shown. +

    + + +
    +class SayController < ApplicationController
    +   def hello
    +   end
    +end
    +
    + +

    +Now let's try calling it. Navigate to the URL +http://yourdomain:60844/say/hello in a +browser window. (Note that in the development environment we don't have any +application string at the front of the path - we route directly to the controller.) +You'll see something that looks like an error. +

    + +

    +It might be annoying, but the error is perfectly reasonable (apart from the +weird path). We created the controller class and the action method, but we +haven't told Rails what to display. And that's where the views come in. Remember +when we ran the script to create the new controller? The command added +three files and a new directory to our application. That directory contains the +template files for the controller's views. In our case, we created a controller +named say, so the views will be in the directory app/views/say. +To complete our Hello, World! application, let's create a template. By default, +Rails looks for templates in a file with the same name as the action it's handling. +In our case, that means we need to create a file called hello.rhtml in the +directory app/views/say. (Why .rhtml? We'll explain in a minute.) For now, let's +just put some basic HTML in there. +

    + + +
    +<html><head><title>Hello, Rails!</title></head> <body> 
    +<h1>Hello from Rails and SDF!</h1> </body> </html>
    +
    + + +

    +Save the file hello.rhtml, and refresh your browser window. You should see it +display our friendly greeting. Notice that we didn't have to restart the application +to see the update. During development, Rails automatically integrates +changes into the running application as you save files. +

    + +

    Maintenance and Utility Scripts

    + +There are currently two main scripts that MetaARPA members can run to manage +their RoR instance. The first is ror which is used to toggle automatic +startup of your RoR instance upon system boot. The second is railsctl +which allows you to start, stop and restart your RoR +instance. +

    + +


    Footnotes:

    + +
    1Use the id command to find your +uid + +
    +$ id
    +uid=60844(phm) gid=500(arpa) groups=500(arpa),600(MetaARPA)
    +
    + +

    + +Note: if you do not see metaARPA here you're not in the metaARPA group and Rails won't work for you. + +

    + + +

    +$Id: Ruby_on_Rails.html,v 1.7 2006/12/29 06:54:24 phm Exp $ + + diff --git a/site-tutorials/SSH-SDF.html b/site-tutorials/SSH-SDF.html new file mode 100644 index 0000000..a50943e --- /dev/null +++ b/site-tutorials/SSH-SDF.html @@ -0,0 +1,228 @@ + SSH on SDF + +

    Using SSH for connections/transfer to/from SDF

    +

    Contents

    + +

    Overview

    +

    This tutorial discusses some important points concerning use of + SSH for encrypted traffic to and from SDF. Your first source for + information are the manpages: man ssh - read + them, if you want to make good use of ssh and company!

    +

    Note: this text has been assembled from articles written + by several users; therefore, layout and wording may vary, + and topics can be referred at several places.

    +

    SSH stands for Secure SHell, and is a replacement for telnet, to + permit secure terminal connections. The system mainly consists of the + following programs:

    +
    +
    ssh
    +
    This is the main program, used for direct terminal connections to a + remote computer. In principle it is used like ssh + remoteuser@some.remote.host.
    +
    scp
    +
    This is a replacement for ftp or rcp, and permits secure copying of + files to and from a remote computer. Its basic syntax is + scp localfile remoteuser@some.remote.host:remotefile to + copy a file to the remote computer, and + scp remoteuser@some.remote.host:remotefile localfile to + copy a file from the remote computer. Note that you can also + use wildcards in the remote and local file description (which may need + quotes around the remote file name, depending on your shell). +
    +
    sftp
    +
    This is a replacement for ftp, permitting listing of a remote file + system and copying to and from it. It has more capabilities than scp, + but needs a remote service running under ssh. In principle it is used + like sftp remoteuser@some.remote.host.
    +
    +

    On the client side, a lot of programs are available; you may be best + off by using a search engine with the keywords ssh client and + your local operating system. +

    + + +

    SDF issues

    +

    Here we discuss some peculiarities concerning SDF and SSH.

    +

    file and directory permissions

    +

    Public key authentication will not work, + if the home directory ($HOME) or the user's ssh directory + $HOME/.ssh are world writable. Your home directory should + never be world writable, anyway!

    +

    To make sure you have the right permissions, execute the following + command in the shell while logged into your account:
    + chmod go-w $HOME $HOME/.ssh

    +

    You should look up chmod in the manpages, if you don't + understand this command.

    + +

    special topics

    + +

    How to enable Port Tunneling and Why

    +

    What is port tunneling good for

    +

    Port tunneling is the ability to tunnel from your internet point for presence + back to SDF servers and use the SDF servers like a Socks 4 Proxy. This allows + your connection to be encrypted via SSL between your internet access point and + SDF. This allows your traffic to be more secure if you are on a public internet + access point

    +

    What tools are needed

    +
    • A good SSH Client that allows tunneling (PuTTY in my examples)
    • +
    • Any software package that understands SOCKS 4 (Trillian in my example)
    • +
    • MetaARPA membership
    • +
    +

    How to set up PuTTY

    +

    + First you need to connect to a SSL enabled SDF server: otaku.freeshell.org on port 443. + putty screenshot 1
    + + Then you need to configure the port to tunnel on your local machine. Generally Socks proxies + use port 1080 so that is a good port. Click on the Tunnels category and configure the tunnel as + shown below. + putty screenshot 2
    + + Click on the "Add" button and you should see the screen as listed below. + putty screenshot 3
    + + Then go back to session + and name and save the session. Click connect and the tunnel should become active. +

    +

    How to use the Tunnel you just enabled

    +

    + I am now going to configure Trillian (A great multi IM chat program) to use the Tunnel. + It should be obvious how to configure other applications from these screenshots. +
    + First click on the "Trillian Prefernces" and select "Advanced Preferences". Select "Proxy" + If you want all your chat services to use the proxy select use one setting for all services checkbox. + Otherwise configure this on each service you want to encrypt over the tunnel. + Trillian screenshot 1
    + + Click on "Close". Now your service should be able to connect through the tunnel. + Again this will encrypt all traffic from your Internet Access Point to SDF. + Once it leaves SDF it will no longer be encrypted (Unless you are hitting a HTTPS + page or something already encrypted). +

    + Technically any program that supports a Socks 4 proxy can be used with the tunnel. +

    + +

    SSH Public Key Authentication

    +

    These instructions attempt to explain the basic concepts of SSH Public Key Authentication, what it is, and the steps required to use it. +

    Note: Please make sure to have set the + correct permissions in your SDF account, + before attempting to set up public key authentication! Also note + that there is another way of doing this, explained further down by + another user. Your mileage may vary! +

    Logging in with SSH key authentication means that you do not have to use your SDF account password. Instead, you generate a 'key' -- which is two long strings of characters stored in a pair of files -- and these files are used to verify that you are who you say you are. Since your key can reliably identify you, you can authorize the user of this key (you, hopefully) to log in to your SDF account. You can authorize any key you wish, and adding someone's key would allow them to log in to your SDF account, without even using or knowing your password. +

    This may sound insecure or easily exploitable. In fact though, due to much research and theory, it can be very secure. Notice "can be" in that last sentence. The key files are taking the place of a password in proving to the server that you're really you. Just like you have to keep passwords secret, the strength of this method relies on you following certain guidelines. You will generate a pair of mathematically related keys: one public and the other private. You should never give out your private key, nor should you make the file that contains it readable by any other user. This would be like storing your password in a world-readable file. Only your *public* key will be listed on the server. Ensuring that your private key remains private is the most important of the guidelines that I mentioned. On to the instructions: +

    Windows instructions:

    + You will need an SSH client and a key generator for Windows. These instructions are written for the popular programs PuTTY and PuTTYgen. Both are available at www.chiark.greenend.org.uk/~sgtatham/putty/download.html. +

    Run PuTTYgen. At the bottom of the window, you can select which type of key you want to generate. You will need to pick between RSA and DSA encryption: go with RSA -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . Your choice will have no effect on the rest of the steps here. For current applications, 1024 bits is plenty for a key to have. If youre feeling paranoid, 2048 bits should (barring any revolutions in prime factoring) keep your key secure for a decade or two. +

    Now press Generate and wave your mouse around to seed some randomness in the key generator. Viola, you have a key. +

    You can then add a passphrase to your key, and use just that one passphrase whenever you log in to an ssh server using your key. Alternately you can use no passphrase. Be aware though that if you don't have to use a password to login from your computer, then neither would anyone else that sits down at your computer or otherwise accesses your local account. +

    The key comment is for your personal convenience, I reccomend youruser@yourlocalmachine and maybe the date, but of course it's up to you. Now save both the private and public key file somewhere (My Documents is a good choice, but pick somewhere that only *you* will have read access to.) +

    Next, you need to configure PuTTY to use this key. Fire up PuTTY and load your session or create a new one. Then in the Category list on the left, selecct Connection > SSH > Auth. Browse for your key and load it up. Also, you'll want to allow changes of username if your SDF account name is different from your local one. +

    You're almost done! Now you need to let the server know about your new key. After you do this, the ssh, scp and sftp programs will use the key files automatically. So (optionally, but it is recommended) save your session, and then connect. Now do the following to authorize your key: +

    0. Copy the contents in the Key Generator window ("Public key for pasting into OpenSSH authorized_keys file") +

    1. Log in as normal and run the following commands. +

    2. $ mkdir ~/.ssh +

    3. $ cd ~/.ssh/ +

    4. $ touch authorized_keys +

    5. Open the authorized_keys file you just created in a text editor. +

    6. Paste the contents of that box in to the authorized_keys file. In PuTTY, right click copies and pastes. +

    7. Save the authorized_keys file. +

    You should now be able to log in using SSH Key Authentication. +

    +

    +
    + +

    I succeeded somewhat differently. In my trial, public key should be + rather copied not from the saved public key, but from Public key for + pasting into OpenSSh authorized_keys file: textbox in the PuTTYgen + window. Note that we can also extract from existing PuTTYgen-type private + keys (just load into it, and the public key should be there.). +

    +

    OpenSSH instructions:

    + You can get OpenSSH at www.openssh.com or through package installers like rpm or apt-get. There are versions for most major non-Windows operating systems (and even one for Cygwin.) Once you have the OpenSSH suite set up, the program you will need to run is "ssh-keygen -t". The -t option is required, and specifies the type of encryption algorithm used in generating a key. You should use RSA encryption to generate your key -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . +

    you@yourcomputer:~ $ ssh-keygen -t rsa +

    You can then add a passphrase to your key, and use this passphrase whenever you log in to an SSH-enabled server. Alternately you can use no passphrase. Be aware though that if you don't have to use a password to login from your user account, then neither would anyone else that sits down at your computer or otherwise accesses your local account. +

    You now have two new files in the ~/.ssh/ directory. These files are your public and private key and will be named id_rsa.pub and id_rsa respectively. The ssh, scp and sftp programs use these files automatically. To enable the server to recognize your key, follow these steps: +

    1. Log in as normal and run the following commands. +

    2. $ mkdir ~/.ssh +

    3. $ cd ~/.ssh/ +

    4. $ touch authorized_keys +

    5. Open the authorized_keys file you just created in a text editor. +

    6. Paste the contents of your id_dsa.pub file in to the authorized_keys file. +

    7. Save the authorized_keys file. +

    You should now be able to log in using SSH Key Authentication. +

    + + + + +

    connecting to SDF from a network

    +

    ... or configuring SSH clients to use a SOCKS proxy server

    + +

    Assuming that you are having trouble connecting to SDF from your college network you will probably have to configure a connection through a SOCKS proxy. This tutorial gives help on configuring various clients to use a SOCKS proxy.

    + +

    You will need to know the following information from your system administrator...

    + +
      +
    • Proxy hostname i.e. socks-proxy.example.com
    • +
    • SOCKS version (4 or 5)
    • +
    • Port number to connect to (default is 1080)
    • +
    • Your username and password
    • +
    + +

    SSH(C) – SSH Communications Security Corp

    + +

    This client is often supplied by universities to their students.

    + +
      +
    1. Access the settings dialogue under Edit → Settings
    2. + +
    3. Under the Connection section, make sure that the tickbox marked Connect through firewall is checked
    4. + +
    5. Under the Firewall section (near the bottom of the list) enter your SOCKS proxy settings in the form of socks://[host]:[port] Illustrated are the settings for TCD.
    6. + +
    7. Connect as normal!
    8. + +
    + +

    PuTTY

    + +

    A popular free SSH client.

    + +
      +
    1. Select in the left window Proxy (located under the Connection branch)
    2. + +
    3. Enter in your details. Illustrated are those for TCD.
    4. + +
    5. Connect as normal! (You may want to save these details for future use)
    6. +
    + +

    Commandline ssh client

    + +

    Those using MacOSX, Linux, SunOS or some BSD or other will be used to using the commandline ssh client to connect to SDF. Connecting via SOCKS is slightly more difficult and relies on an external program known as 'connect'.

    + +

    All the details for using this program are documented on its webpage at http://zippo.taiyo.co.jp/~gotoh/ssh/connect.html

    + +

    Good luck!

    + +

    Alternatively, issue a command from your workstation similar to this one (MetaARPA membership required):

    +

    ssh -D 9999 -p 443 username@sverige.freeshell.org

    +

    Then, configure your browser to use the SOCKS proxy on "localhost" using port 9999 as shown here using Firefox:

    +

    +

    For additional security and privacy, configure Firefox to do +remote DNS lookups rather than the default local DNS lookups. In +about:config search for network.proxy.socks_remote_dns +and toggle its value to true. + + +


    + $Id: SSH-SDF.html,v 1.8 2008/07/12 05:38:37 cowl Exp cowl $ + + diff --git a/site-tutorials/SSH_Key_Authentication.html b/site-tutorials/SSH_Key_Authentication.html new file mode 100644 index 0000000..83f4ce6 --- /dev/null +++ b/site-tutorials/SSH_Key_Authentication.html @@ -0,0 +1,47 @@ +

    SSH Public Key Authentication

    +

    These instructions attempt to explain the basic concepts of SSH Public Key Authentication, what it is, and the steps required to use it. +

    Logging in with SSH key authentication means that you do not have to use your SDF account password. Instead, you generate a 'key' -- which is two long strings of characters stored in a pair of files -- and these files are used to verify that you are who you say you are. Since your key can reliably identify you, you can authorize the user of this key (you, hopefully) to log in to your SDF account. You can authorize any key you wish, and adding someone's key would allow them to log in to your SDF account, without even using or knowing your password. +

    This may sound insecure or easily exploitable. In fact though, due to much research and theory, it can be very secure. Notice "can be" in that last sentence. The key files are taking the place of a password in proving to the server that you're really you. Just like you have to keep passwords secret, the strength of this method relies on you following certain guidelines. You will generate a pair of mathematically related keys: one public and the other private. You should never give out your private key, nor should you make the file that contains it readable by any other user. This would be like storing your password in a world-readable file. Only your *public* key will be listed on the server. Ensuring that your private key remains private is the most important of the guidelines that I mentioned. On to the instructions: +

    Windows instructions:

    +You will need an SSH client and a key generator for Windows. These instructions are written for the popular programs PuTTY and PuTTYgen. Both are available at www.chiark.greenend.org.uk/~sgtatham/putty/download.html. +

    Run PuTTYgen. At the bottom of the window, you can select which type of key you want to generate. You will need to pick between RSA and DSA encryption: go with RSA -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . Your choice will have no effect on the rest of the steps here. For current applications, 1024 bits is plenty for a key to have. If youre feeling paranoid, 2048 bits should (barring any revolutions in prime factoring) keep your key secure for a decade or two. +

    Now press Generate and wave your mouse around to seed some randomness in the key generator. Viola, you have a key. +

    You can then add a passphrase to your key, and use just that one passphrase whenever you log in to an ssh server using your key. Alternately you can use no passphrase. Be aware though that if you don't have to use a password to login from your computer, then neither would anyone else that sits down at your computer or otherwise accesses your local account. +

    The key comment is for your personal convenience, I reccomend youruser@yourlocalmachine and maybe the date, but of course it's up to you. Now save both the private and public key file somewhere (My Documents is a good choice, but pick somewhere that only *you* will have read access to.) +

    Next, you need to configure PuTTY to use this key. Fire up PuTTY and load your session or create a new one. Then in the Category list on the left, selecct Connection > SSH > Auth. Browse for your key and load it up. Also, you'll want to allow changes of username if your SDF account name is different from your local one. +

    You're almost done! Now you need to let the server know about your new key. After you do this, the ssh, scp and sftp programs will use the key files automatically. So (optionally, but it is recommended) save your session, and then connect. Now do the following to authorize your key: +

    0. Copy the contents in the Key Generator window ("Public key for pasting into OpenSSH authorized_keys file") +

    1. Log in as normal and run the following commands. +

    2. $ mkdir ~/.ssh +

    3. $ cd ~/.ssh/ +

    4. $ touch authorized_keys +

    5. Open the authorized_keys file you just created in a text editor. +

    6. Paste the contents of that box in to the authorized_keys file. In PuTTY, right click copies and pastes. +

    7. Save the authorized_keys file. +

    You should now be able to log in using SSH Key Authentication. +

    +

    +
    + +

    I succeeded somewhat differently. In my trial, public key should be +rather copied not from the saved public key, but from Public key for +pasting into OpenSSh authorized_keys file: textbox in the PuTTYgen +window. Note that we can also extract from existing PuTTYgen-type private +keys (just load into it, and the public key should be there.). +

    +

    OpenSSH instructions:

    + You can get OpenSSH at www.openssh.com or through package installers like rpm or apt-get. There are versions for most major non-Windows operating systems (and even one for Cygwin.) Once you have the OpenSSH suite set up, the program you will need to run is "ssh-keygen -t". The -t option is required, and specifies the type of encryption algorithm used in generating a key. You should use RSA encryption to generate your key -- the relevant website is here: the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter8.html#8.2.2 . +

    you@yourcomputer:~ $ ssh-keygen -t rsa +

    You can then add a passphrase to your key, and use this passphrase whenever you log in to an SSH-enabled server. Alternately you can use no passphrase. Be aware though that if you don't have to use a password to login from your user account, then neither would anyone else that sits down at your computer or otherwise accesses your local account. +

    You now have two new files in the ~/.ssh/ directory. These files are your public and private key and will be named id_rsa.pub and id_rsa respectively. The ssh, scp and sftp programs use these files automatically. To enable the server to recognize your key, follow these steps: +

    1. Log in as normal and run the following commands. +

    2. $ mkdir ~/.ssh +

    3. $ cd ~/.ssh/ +

    4. $ touch authorized_keys +

    5. Open the authorized_keys file you just created in a text editor. +

    6. Paste the contents of your id_dsa.pub file in to the authorized_keys file. +

    7. Save the authorized_keys file. +

    You should now be able to log in using SSH Key Authentication. +

    + +$Id: SSH_Key_Authentication.html,v 1.5 2006/08/17 16:35:08 samble Exp $ \ No newline at end of file diff --git a/site-tutorials/UTF-8.html b/site-tutorials/UTF-8.html new file mode 100644 index 0000000..5801565 --- /dev/null +++ b/site-tutorials/UTF-8.html @@ -0,0 +1,65 @@ + + + + + + +

    Localization and You: UTF–8 on NetBSD

    + +

    NetBSD is a great little operating system, but it’s a much smaller project than Linux. This means there isn’t as much call for better internationalization support, as most of the users and developers are perfectly comfortable with ASCII or the ISO–8859–1 western European locale. This can cause some problems when using software that expects Unicode, also known as UTF–8, also known as the one true text encoding for the future. Here’s how to fix it. These instructions assume you’re using a bourne-compatible shell like ksh, bash, or zsh. If you’re using (t)csh you’re on your own.

    + +

    Environment Variables

    + +

    Most of the time, you can “fake” proper UTF–8 support by exporting three environment variables and leaving it up to your local terminal emulator to handle the rest. Add the following three lines to your ~/.profile :

    + +
    export LANG="en_US.UTF-8"  
    +export LC_CTYPE="en_US.UTF-8"  
    +export LC_ALL="en_US.UTF-8"
    +
    + +

    Save, kill any screen or tmux sessions or other background processes, and log out. When you log in again, you should have a proper UTF–8 terminal as far as most programs are concerned.

    + +

    Perl will throw the following error when invoked:

    + +
    perl: warning: Setting locale failed.
    +perl: warning: Please check that your locale settings:
    +        LC_ALL = "en_US.UTF-8",
    +        LC_CTYPE = "en_US.UTF-8",
    +        LANG = "en_US.UTF-8"
    +    are supported and installed on your system.
    +perl: warning: Falling back to the standard locale ("C").
    +
    + +

    Feel free to ignore this error. As long as you’ve got those environment variables set, you should be fine.

    + +

    Python 3 expects all source files to be UTF–8 text, so please make sure to change these things before working on python3 code.

    + +

    Rxvt-Unicode

    + +

    Rxvt-Unicode, urxvt, rxvt-unicode–256color. By whatever name you call it, it’s a very popular terminal among Linux and *BSD “power users.” Unfortunately, using urxvt adds an extra degree of difficulty to connecting to SDF - there’s no $TERM setting that corresponds with it! I’m sure some of you have tried logging in to SDF from urxvt, only to have scary warnings printed to stderr and have everything treated like a dumb paper teletype. Don’t worry, there’s a very simple fix for that as well. Open up ~/.profile again and add these lines:

    + +
    if [ $TERM == "rxvt-unicode" ] || [ $TERM == "rxvt-unicode-256color" ]; then
    +    export TERM="rxvt"
    +fi 
    +
    + +

    In simple terms, this tricks NetBSD into thinking your terminal is rxvt, the original program urxvt is based on. If you have a MetaArpa account, don’t worry - the MetaArray is running CentOS, which understands urxvt just fine.

    + +

    Escape Characters

    + +

    NetBSD’s terminal has what are called “escape characters.” These are characters in the “high ASCII” (decimal 129–255) range that manipulate the shell session when read from stdin or written to stdout. As you might imagine, this screws with programs that write large amounts of arbitrary characters to standard output, like the “kermit -s” or “sz” file transfer programs. For sx/sy/sz (X/Y/ZMODEM protocols) your best bet is to just not use them with SDF for now. If you’re on a TCP/IP connection (which most of you are) it’s easier to stick with scp/sftp for secure transfers, and http or ftp for insecure. If you really need “in-line” file transfer, there is a way to make “kermit -s” work around NetBSD’s escape characters. This is adding the -8 and -0 flags. If I wanted to transfer the SQLite database “winning-lottery-numbers.sqlite” from SDF to my home machine, I would do it like this:

    + +
    tidux@sdf:~$ kermit -s -8 -0 winning-lottery-numbers.sqlite
    +
    + +

    Then my local kermit program would receive the transfer and I could continue working on SDF as usual. If you do this often, it may be wise to add an alias in your shell configuration files, like so:

    + +
    alias send='kermit -s -8 -0'
    +
    + +
    + +

    I hope this guide has been helpful to you. Happy UTF–8 hacking!

    + + + diff --git a/site-tutorials/UsingTunneling.html b/site-tutorials/UsingTunneling.html new file mode 100644 index 0000000..a47b0dc --- /dev/null +++ b/site-tutorials/UsingTunneling.html @@ -0,0 +1,53 @@ + + How to enable Port Tunneling and why + + +

    How to enable Port Tunneling and Why

    +

    What is port tunneling good for

    +

    Port tunneling is the ability to tunnel from your internet point for presence + back to SDF servers and use the SDF servers like a Socks 4 Proxy. This allows + your connection to be encrypted via SSL between your internet access point and + SDF. This allows your traffic to be more secure if you are on a public internet + access point

    +

    What tools are needed

    +
    • A good SSH Client that allows tunneling (PuTTY in my examples)
    • +
    • Any software package that understands SOCKS 4 (Trillian in my example)
    • +
    • MetaArpa membership
    • +
    +

    How to set up PuTTY

    +

    + First you need to connect to a SSL enabled SDF server: otaku.freeshell.org on port 443. + putty screenshot 1
    + + Then you need to configure the port to tunnel on your local machine. Generally Socks proxies + use port 1080 so that is a good port. Click on the Tunnels category and configure the tunnel as + shown below. + putty screenshot 2
    + + Click on the "Save" button and you should see the screen as listed below. + putty screenshot 3
    + + Then go back to session + and name and save the session. Click connect and the tunnel should become active. +

    +

    How to use the Tunnel you just enabled

    +

    + I am now going to configure Trillian (A great multi IM chat program) to use the Tunnel. + It should be obvious how to configure other applications from these screenshots. +
    + First click on the "Trillian Prefernces" and select "Advanced Preferences". Select "Proxy" + If you want all your chat services to use the proxy select use one setting for all services checkbox. + Otherwise configure this on each service you want to encrypt over the tunnel. + Trillian screenshot 1
    + + Click on "Close". Now your service should be able to connect through the tunnel. + Again this will encryte all traffic from your Internet Access Point to SDF. + Once it leaves SDF it will no longer be encrypted (Unless you are hitting a HTTPS + page or something already encrytped). +

    + Technically any program that supports a Socks 4 proxy can be used with the tunnel. +

    + $ID: $ + + diff --git a/site-tutorials/VPN.html b/site-tutorials/VPN.html new file mode 100644 index 0000000..d7281b5 --- /dev/null +++ b/site-tutorials/VPN.html @@ -0,0 +1,506 @@ + + + Connecting to the SDF VPN + + + + +

    SDF's VPN servers

    + + +

    Connecting to the SDF VPN with OpenVPN (USA/EU)

    +

    Contents

    +

    Generic Instructions

    + +

    Targeted Instructions

    + +

    Overview

    + +

    OpenVPN is the prefered VPN method to connect with SDF. OpenVPN uses Transport Layer Security (TLS) to authenticate users and encrypt communications. When SDF users register for VPN service they are issued a certificate and private key. Connecting via OpenVPN also results in users being issued a static public facing IP address for their VPN session.

    +

    The Virtual Private Network (VPN) provided by SDF has a number of uses. The most beneficial of that is to allow confidential communication over a public network. Basically, the SDF VPN will allow you (once routing is enabled) to communicate securely over an insecure connection such as a public Wireless Fidelity (Wi-Fi) network.

    +

    The major benefit of this over SSH forwarding/tunneling is that it is much easier to configure and automatically tunnels all connections leaving your computer, and not just those specifically configured for forwarding. Some may see this as a negative aspect of the VPN, however.

    +

    Registration instructions and VPN dues are found by running the vpn command from an SDF login session.

    +

    Before proceeding please mind the following note.

    +

    NEVER send your private key to anyone in an email message.
    NEVER post your private key in a bboard posting, online forum, or chat session.

    + +

    Getting the OpenVPN software

    +
  • Download OpenVPN for Windows or UNIX/Linux +
  • Download the TunnelBlick OpenVPN client for MacOS X + +

    Setting it up

    +

    You will receive your OpenVPN certificate via SDF internal email for both the USA and EU server. If you lose this email, you must make post on the internal bboard:REQUESTS to have them reissued. You may use either server when it suits you. The server addresses are: +

  • openvpn.sdf.org (Tukwila, Washington USA) +
  • openvpn.sdfeu.org (Falkenstein, Germany EU) +

    Obtaining your certificates

    +

    The email message from the SDF administrator will contain: +

      +
    • A certificate for the SDF Certificate Authority (CA).
    • +
    • A certificate for your VPN user certificate.
    • +
    • A private key which is associated with your user certificate.
    • +
    • The port and port of the SDF and SDF Europe OpenVPN servers.
    • +
    • Settings to use for your OpenVPN configuration file.
    • +
    +

    You must extract each of the certificates and the private key from the email message. You must also create an OpenVPN configuration file. +

    One thing to note about the OpenVPN configuration file that you may receive with your email: If the line that begins with remote follows with 192.94.73.x (where x will be the number you're assigned to) you'll need to change that to 205.166.94.x. This is because the sdf IP block had to change near the end of 2016. This may have been corrected on emails sent since the change. +

    Verifying your certificates

    +

    Let us assume that the SDF CA has been saved into a file called sdf.ca. Let us also assume that your user certificate has been saved into a file called yourCert.crt. You can use openssl to verify the extraction steps have been performed correctly.

    +


    $openssl verify -CAfile sdf.ca yourCert.crt
    + yourCert.crt:OK

    + $openssl x509 -noout -serial -fingerprint -subject -in sdf.ca
    + serial=88FF6DD2D8A905FE
    + SHA1 Fingerprint=BA:26:E0:3C:25:10:80:CF:FA:51:2B:05:A1:81:AD:C7:48:94:07:74
    + subject= /C=US/ST=WA/L=SEATTLE/O=sdf.org/CN=sdf.org CA/emailAddress=smj@sdf.org

    + $openssl x509 -noout -serial -fingerprint -subject -in yourCert.crt
    + serial=YOUR_SERIAL_NUMBER
    + SHA1 Fingerprint=YOUR_CERT_FINGERPRINT
    + subject= /C=US/ST=WA/L=SEATTLE/O=sdf.org/CN=YOUR_USER_NAME@sdf.lonestar.org/emailAddress=smj@sdf.org

    + + +

    Connecting in OpenWRT

    +

    These instructions were created using OpenWRT Bleeding Edge, r33132.

    + +

    Installing OpenVPN

    +

    Run the following command to install openvpn with opkg:

    +

    + +root@OpenWrt:~# opkg install openvpn

    + +
    +

    +
    + + + +

    Connecting to the SDF VPN server (PPTP) (USA)

    +

    Contents

    + + +

    Overview

    +

    PPTP is a legacy method to connect to the SDF VPN. Dynamic IP addresses are assigned if you use this method.

    +

    The Virtual Private Network (VPN) provided by SDF has a number of uses. The most beneficial of that is to allow confidential communication over a public network. Basically, the SDF VPN will allow you (once routing is enabled) to communicate securely over an insecure connection such as a public Wireless Fidelity (Wi-Fi) network.

    +

    The major benefit of this over SSH forwarding/tunneling is that it is much easier to configure and automatically tunnels all connections leaving your computer, and not just those specifically configured for forwarding. Some may see this as a negative aspect of the VPN, however.

    + +

    Setting it up

    +

    The SDF VPN is quite easy to set up. You must first choose a VPN plan that is right for you, based on assumed bandwidth usage. Pricing and more package information is available through the shell by typing 'vpn' without the quotes.

    +

    Once you've been added to the VPN membership level (you'll receive an email notification of this), you must set up your VPN access by typing 'setvpn' in the shell, without quotes. This will allow you to configure your VPN secret (password) for connecting.

    +

    You should make note of the VPN's IP address when setting up your secret.

    +

    Once you've configured your VPN account, it's time to connect. Continue reading below for step-by-step instructions on connecting to the VPN.

    + +

    Connecting in Windows XP

    + +
      +
    1. Open the Windows Control Panel.
    2. +
    3. Open the Network Connections item in Control Panel. Generally you would click the "Network and Internet Connections" option, then click "Network Connections". A list of existing dial-up and LAN connections will be displayed.
    4. +
    5. Click on the "Create a new connection" option from the left-hand side of the window. The Windows XP New Connection Wizard will come up.
    6. +
    7. Click the "Next" option to begin the wizard. Then choose the "Connect to the network at my workplace" option from the list and click "Next".
    8. +
    9. On the Network Connection page of the wizard, choose the "Virtual Private Network connection" option and click "Next".
    10. +
    11. Choose a name for this connection on the "Connection Name" screen. Windows will use this to reference the VPN connection.
    12. +
    13. Choose an option on the "Public Network" screen and click "Next". The default option, "Automatically dial this initial connection" can be used if the VPN connection will always be initiated when the computer is not already connected to the Internet. Otherwise, choose the "Do not dial the initial connection" option. This requires that the public Internet connection be established first, before this new VPN connection will be initiated. Choose this option.
    14. +
    15. Enter the IP address for the VPN on the "VPN Server Selection" screen. This is obtained via the 'setvpn' command (without quotes) in the shell.
    16. +
    17. Choose an option on the "Connection Availability" screen and click "Next". The default option, "My Use Only", ensures that Windows will make this VPN connection available only to the user that is currently logged in to the computer. If you don't want this, select the "Anyone's use" option.
    18. +
    19. Click "Finish" to complete the wizard. You may wish to select the option to create a desktop shortcut for easy access. The information for the VPN connection will be saved for current and/or future use.
    20. +
    + +

    Connecting in Windows Vista

    +

    Connecting to the VPN is slightly different in Windows Vista. Please use these instructions to connect to SDF's VPN through Vista.

    + +
      +
    1. Click on the "Start" button and then choose "Connect to".
    2. +
    3. Click on the "Set up a connection or network" option on the window that follows. It's near the bottom.
    4. +
    5. On the window that comes up, scroll down and click on the "Connect to a workplace" option. Then click "Next".
    6. +
    7. A question asking "Do you want to use a connection you already have?" may appear. Select "No, create a new connection." if it does and then click "Next".
    8. +
    9. Next you'll be asked "How do you want to connect?" Select "Use my Internet connection (VPN)".
    10. +
    11. You'll then be asked for the Internet address. Enter the address you remembered when accessing 'setvpn' (without quotes) in the SDF shell.
    12. +
    13. Enter a name for this VPN connection in the "Destination name:" field. This is how Windows Vista will reference the VPN.
    14. +
    15. If you don't want to connect immediately, check the "Do not connect now; just set it up so I can connect later." option.
    16. +
    17. Do not check the "Use a smart card." option.
    18. +
    19. When finished, click "Next"
    20. +
    21. You'll then configure the username and password needed to authenticate to the VPN. The username is your SDF username and the password is the secret you set up via the 'setvpn' command in the shell.
    22. +
    23. Leave the "Domain" field blank.
    24. +
    25. Click the "Create" button once you are done. You should then see a window pop up saying that "The connection is ready to use." Click on "Close".
    26. +
    + +

    Connecting in Linux

    + +
      +
    1. Make sure PPP and PPTP are installed. The can be accomplished in Debian or Ubuntu by entering 'sudo apt-get install pptp-linux' into a terminal.
    2. +
    3. Create a file named sdfpptp in /etc/ppp/peers by entering 'sudo gedit /etc/ppp/peers'. Replace gedit with your choice of text editor. Add the following to the file: (Be sure to replace username with your username.)

      + Note: Make sure to replace IP Address with the IP address/hostname provided when running 'setvpn' in the shell.
      +
      +remotename sdfpptp
      +linkname sdfpptp
      +ipparam sdfpptp
      +pty "pptp --loglevel 0 IP Address --nolaunchpppd"
      +name username
      +refuse-eap
      +refuse-pap
      +refuse-chap
      +refuse-mschap
      +require-mppe
      +nomppe-stateful
      +require-mppe-128
      +nomppe-40
      +noauth
      +nodetach
      +lock
      +bsdcomp 9,15
      +deflate 9,15
      +idle 0
      +	
      +
    4. Save the file.
    5. +
    6. Edit /etc/ppp/chap-secrets by entering 'sudo gedit /etc/ppp/chap-secrets'. Add the line username stfpptp password * replacing username and password with your SDF username and your password set by 'setvpn'.
    7. +
    8. Make sure a specific route to the VPN exists. Run 'sudo route add VPN-IP gw GW-IP' replacing VPN-IP with the IP address/hostname provided when running 'setvpn', and replace GW-IP with your gateway IP address. If you do not know the IP address of your gateway, enter 'route'. It is the gateway IP next to the destination default.
    9. +
    10. Enter 'sudo pppd call sdfpptp' into a terminal. Wait for it to show the local and remote IP addresses. You should now be connected. Do not close the terminal until you are ready to disconnect.
    11. +
    12. Open another terminal. Enter 'sudo route add -net 192.94.73.0/24 dev ppp0'. This will route all your connections to SDF through the VPN.
    13. +
    + +
    Alternatively to steps 5 and 6, you might use a wrapper script like this:
    +
    +#!/bin/bash
    +SDFVPNHOST=IP Address
    +RT=`ip route get $SDFVPNHOST | head -1`
    +DEV=`echo $RT | awk '{while ($num != "dev") {num++}{print $(num+1)}}'`
    +VIA=`echo $RT | awk '{while ($num != "via") {num++}{print $(num+1)}}'`
    +ip route add $SDFVPNHOST via $VIA dev $DEV
    +ip route add $SDFVPNHOST via $VIA dev $DEV table sdftun
    +pppd call sdfpptp
    +ip route del $SDFVPNHOST via $VIA dev $DEV
    +ip route del $SDFVPNHOST via $VIA dev $DEV table sdftun
    +
    + +This automatically detects the default gateway and adds appropriate routes, starts the VPN and deletes the routes after VPN has been +stopped. If you do not use a custom routing table dedicated to the SDF VPN you should delete the lines ending in "table sdftun".
    +
    +

    GUI Setup With NetworkManager

    + +

    + Any of the newer Linux distros that use + NetworkManager (Debian, Ubuntu, Fedora, etc.) on their + default desktops have a GUI interface to PPTP VPN + configuration. You'll need to install a package to get + this capability (although this now seems to be included in the + latest Ubuntu 10.10 release): +

    + +

    Fedora:

    + +
    +                  yum install NetworkManager-pptp
    +                
    + +

    Debian/Ubuntu:

    + +
    +                  apt-get install network-manager-pptp
    +                
    + +

    + Once installed, restart the NetworkManager service + (/etc/init.d/NetworkManager + restart) and left-click on the network + manager icon in your + taskbar. Highlight VPN + Connections and click + on Configure + VPN: +

    + +

    + Network Manager - Overview Settings +
    + Network Manager - VPN Settings Overview +

    + +

    + Click on + the Add + button, and + choose Point-to-Point + Tunneling Protocol (PPTP), then click + Create. Fill out the User + name, Password + and Gateway + fields with appropriate values + (from when you + ran setvpn): +

    + +

    + Network Manager Settings - VPN Settings Detail +

    + +

    + Now click on + Advanced: +

    + +

    + Network Manager Settings - Advanced VPN Details +

    + +

    + Under + Authentication, de-select + all the methods except MSCHAPv2. Then select + Use Point-to-Point Encryption (MPPE) and choose + 128-bit (most + secure) in + the Security + dropdown. Click OK, then Apply + and close all other configuration dialogs. Now when + you left-click on the network manager icon, you + should have your PPTP VPN listed + under VPN + Connections. Just select it and wait. If it + is successful, you'll see a little lock icon appear + over the usual network manager icon. If not, check + your system log for errors. This will + be /var/log/messages + or /var/log/syslog, + depending on your distro. +

    + +

    A Note on Routing

    + +

    + If you use network manager, all traffic will be + routed through the PPTP VPN for you once you are + connected. If that's not what you want, you can + click on IPV4 + Settings and + then Routes + to have simple static routes added for you + automatically when the VPN connects. You can also + check Use this + connection only for resources on this + network, which in our case means only + connections to SDF hosts will be encrypted. +

    + +

    + Network Manager Settings - Add Routes +

    + +

    Connecting in OpenWRT

    +

    Overview

    +

    OpenWRT provides both a kernelspace and userspace method for connecting to PPTP networks as a client. The userspace and kernelspace methods are both outlined below, you only need to use one of them to start a connection. This documentation was created using OpenWRT Bleeding Edge (r33006), so older versions may have trouble. The full OpenWRT PPTP Client documentation can be found on the OpenWRT wiki here: http://wiki.openwrt.org/doc/howto/vpn.client.pptp +

    PPTP Kernel Module

    +

    For this setup you'll need to install the following kernel module packages: kmod-pptp, kmod-mppe.

    +
      +
    1. Login to your OpenWRT device via SSH.
    2. +
    3. Install the required kernel modules and plugins: opkg install kmod-pptp kmod-mppe ppp-mod-pptp
    4. +
    5. Open /etc/config/network with the editor of your choice. Example: vi /etc/config/network. Add the following lines to the end of the file: (change USERNAME to your SDF Username, and the values PASSWORD and SDF.VPN.IP.ADDRESS to thoes set in the setvpn command.
    6. + + #### VPN configuration + config 'interface' 'vpn' + option 'ifname' 'pptp-vpn' + option 'proto' 'pptp' + option 'username' 'USERNAME' + option 'password' 'PASSWORD' + option 'server' 'SDF.VPN.IP.ADDRESS' + option 'buffering' '1' + option 'defaultroute' '0' +
    7. Open /etc/ppp/options.pptp with the editor of your choice. Example: vi /etc/ppp/options.pptp. Add the following lines to the end of the file (the plugin may need to be changed to match your system):
    8. + + noipdefault + nodefaultroute + maxfail 0 + debug + plugin "/usr/lib/pppd/2.4.5/pptp.so" + refuse-eap + refuse-pap + refuse-chap + refuse-mschap + mppe required,stateless + noauth + nodetach + bsdcomp 9,15 + deflate 9,15 + idle 0 + +
    9. Restart networking to connect to the VPN: /etc/init.d/networking restart.
    10. +
    11. If everything worked correctly, the ifconfig command should display a new interface named pptp-vpn looking something like this:
    12. + + pptp-vpn Link encap:Point-to-Point Protocol + inet addr:192.94.73.44 P-t-P:192.94.73.25 Mask:255.255.255.255 + UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1460 Metric:1 + RX packets:21 errors:0 dropped:0 overruns:0 frame:0 + TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:3 + RX bytes:1159 (1.1 KiB) TX bytes:128 (128.0 B) + + +
    13. Routing can be set up like any Linux OS, so follow the routing instructions found above: Linux.
    14. +
    +

    PPTP Userspace Utility

    +
      +
    1. Login to your OpenWRT device via SSH.
    2. +
    3. Install the required userspace tools and module for MPPE: opkg install pptp kmod-mppe
    4. +
    5. Follow the Linux directions above like normal.
    6. +
    7. If you are still having trouble, look over the official OpenWRT documentation found here: http://wiki.openwrt.org/doc/howto/vpn.client.pptp
    8. +
    +

    +

    +

    Connecting in FreeBSD

    +
      +
    • Install mpd4 from ports or packages. +
    • Add the following section to your /usr/local/etc/mpd4/mpd4.conf: + +sdfvpn: + new -i ng1 sdfvpn sdfvpn + set iface disable on-demand + set iface idle 0 +# disconnect the client after 8 hours + set iface session 28800 + set iface route 10.0.0.0/24 + set iface route default + set bundle disable multilink + set auth authname "USERNAME" + set auth password "PASSWORD" + set link yes acfcomp protocomp + set link no eap + set link no pap + set link accept chap + set link mtu 1460 + set link keep-alive 10 75 + set ipcp yes vjcomp + set ipcp ranges 0.0.0.0/0 + set ipcp yes req-pri-dns req-sec-dns + +# +# The five lines below enable Microsoft Point-to-Point encryption +# (MPPE) using the ng_mppc(8) netgraph node type. +# + set bundle yes compression + set ccp yes mppc + set ccp yes mpp-compress + set ccp yes mpp-e128 + #set bundle accept crypt-reqd + set ccp yes mpp-stateless + open + +
    • You will have to replace three (3) things in this config: +
        +
      1. Your USERNAME +
      2. Your PASSWORD +
      3. The local address of SDF's VPN host. This can be found in /etc/hosts on SDF. The local IP will start with 10.0.0, but have the same last octet as the public IP. +
      +'
    • Add this in your /usr/local/etc/mpd4/mpd4.links file: + +sdfvpn: + set link type pptp + set pptp peer + set pptp enable originate outcall + set pptp disable incoming + +
    • You will have to replace one (1) thing in this config: +
        +
      1. The public address of SDF's VPN host. You can get this by running setvpn at the shell. +
      +
    • Now, as root, run mpd4 sdfvpn. +
    • You should now be connected to SDF over a layer 3 tunnel across the Internet. +
    • Your new routes are only for SDF's hosts, and use their internal IP addresses. These are the 10.0.0.x ones. I'm working on how to route to the public ones over the VPN without creating a routing loop to the VPN host. I copied SDF's /etc/hosts file to my machine so that I can run 'ssh sdf1' to connect through the tunnel. +
    + + +

    Connecting in Mac OS X

    +
      +
    1. Open /Applications/Internet Connect.app
    2. +
    3. Click on the VPN button.
    4. +
    5. Click on the Configuration dropdown and go to "Edit Configurations..."
    6. +
    7. Press the + button at the bottom left of the window to add a configuration.
    8. +
    9. Under "Description" put whatever you want. SDF VPN is a good choice. +
    10. Under the "Server Address," Enter the IP address for the VPN on the "VPN Server Selection" screen. This is obtained via the 'setvpn' command (without quotes) in the shell.
    11. +
    12. Under Username put your SDF username and the password is the secret +you set up via the 'setvpn' command in the shell.
    13. +
    14. Choose "Automatic" encryption.
    15. +
    16. Click "OK".
    17. +
    18. Then, whenever you want to connect you can return to this Internet Connect Application and go to the VPN, choose the SDF VPN and click connect. Optionally, you can click "Show VPN status in the menu bar" and you can connect to the VPN from the menu bar icon.
    19. +
    + + + +

    Connecting On An iPad

    +
      +
    1. Log into SDF and run the 'setvpn' command. +
    2. Hit 'p' to set up your password. +
    3. Enter your password twice. The password must be 14 characters or less, and ideally should contain letters, numbers, upper and lower case, and a special symbol, though there are no actual complexity requireme + nts. +
    4. After you have set up your password, the setvpn wizard will tell you what IP address to connect to. It will be 192.94.73.X. Write this whole IP address down. You will need it in a later step. +
    5. Hit 'q' to exit the configuration. + +
    6. Turn on your iPad and go to the Settings. +
    7. Go into the Network subsection. +
    8. Go into the VPN subsection. This will bring up the 'Add Configuration' window. +
    9. Select "PPTP" at the top. +
    10. In the Description field, label this connection something useful to identify it, such as 'SDF VPN'. +
    11. In the 'Server' field, put in the IP address that you wrote down earlier. +
    12. In the 'account' field, put your SDF user name. +
    13. In the 'Password' field, put the password that you set up while running the setvpn wizard in the set above. This will cause the iPad to remember your password for you. If you wish to type it in each time you connect, leave this field blank. +
    14. Set the encryption level to 'Maximum' +
    15. Leave the 'Send All Traffic' slider set to 'On', unless you specifically want to (and know how to) set up VPN usage in individual applications. +
    16. Hit the 'Save' button at the top + +
    17. To turn on VPN, slide the VPN slider to 'On' for the connection called SDF and open the browser. Connect to http://sdf.org/ip and verify that the IP address it shows as your source. +
    + +

    Connecting with Viscosity

    +

    Viscosity is an OpenVPN client for Mac and Windows

    +
      +
    1. Open Viscosity's preferences window.
    2. +
    3. Create a new connection
    4. + Viscosity screenshot #1 +
    5. In the New Connection window, +
        +
      • Give your connection a name
      • +
      • Enter the server IP you received via e-mail under Remote Server
      • +
      • Make sure protocol is set to tap not tun
      • +
      • Uncheck Enable DHCP.
      • +
      + Viscosity screenshot #2 +
    6. Move on to the Authentication tab
    7. +
        +
      • You will need to copy the certificates and keys you received in e-mail to a SECURE location on your local disk.
      • +
      • Select the appropriate certificate or key for each of the three SLL file locations
      • +
      + Viscosity screenshot #3 +
    8. Now move to the Options tab
    9. +
    10. Set LZO Compression to On or On (Adaptive)
    11. + Viscosity screenshot #4 +
        +

        That's it! Hit Save, and you're ready to roll securely through the SDF VPN.

        + +

        Wrap-up

        +

        Now that you have your VPN configured to connect, make sure that you don't forget to use it! Using the VPN while connected through a public access network (or even your home network!) will tunnel all connections through SDF and out to the Internet (once routing is enabled). Please make sure to use the VPN responsibly, as all actions and activity will be traced back to SDF.

        +

        Enjoy!

        +
        + + $Id: VPN.html,v 1.43 2019/11/15 17:55:21 thegiant Exp $ + + + diff --git a/site-tutorials/VPS_Centos.html b/site-tutorials/VPS_Centos.html new file mode 100755 index 0000000..8ed7fcd --- /dev/null +++ b/site-tutorials/VPS_Centos.html @@ -0,0 +1,179 @@ + +

        CentOS on SDF VPS

        +Updated for CentOS 7 +

        Contents

        + + +

        Basics

        +

        +Logging into your VPS for the first time you will need to use the default username and password listed below.
        +Default Username: root
        +Default Password: rootroot +

        +

        One of the first things you will want to do is change the default root password by typing passwd at the prompt. Don't forget this password as there is currently no way to recover it.

        + +

        It is a good habit to create a regular user account for working, using su to obtain root privileges as needed. To create a regular user account:

        + +
        	useradd -Gwheel <username>
        + +

        This user will be able to perform administrative tasks by runing su to obtain superuser privileges using the root password. CentOS ships with sudo installed, so adding the new user to wheel group and editing /etc/sudoers with visudo to uncoment the following line:

        +
        +	## Allows people in group wheel to run all commands
        +	%wheel  ALL=(ALL)       ALL
        +
        + + +

        Networking

        +

        +You will need to ssh into the vps control panel server that you were given in your welcome email which should have the format of vps<number>.sdf.org. +

        +

        Once logged into your control panel you will see a line at the top of the screen that details your chosen Operating System and IP Address.
        +VPS Maintenance Shell for <os> (205.166.94.xxx)
        +This information will be important for setting up your server to have network access. +

        + +

        Start your server, and log in via the console. (default= root:rootroot)

        + +

        Open /etc/sysconfig/network-scripts/ifcfg-eth0 in an editor and add the following, replacing the 'xxx' with the last octet of your assigned IP address, add:

        +
        +	DEVICE=eth0
        +	BOOTPROTO=none
        +	IPADDR=205.166.94.xxx
        +	NETMASK=255.255.255.0
        +	GATEWAY=205.166.94.1
        +	DNS1=205.166.94.20
        +	ONBOOT=yes
        +
        +

        Your MAC address could be in the eth0 script, but if you only have one network interface with only one IP assigned to it, this should be enough.

        + +

        Change the next line in /etc/sysconfig/network:

        +
        	HOSTNAME=my.host.name
        +

        Change hostname (FQDN and alias) in /etc/hosts so it reads like this:

        +
        +	127.0.0.1       localhost.localdomain localhost
        +	::1             localhost6.localdomain6 localhost6
        +	205.166.94.xxx 	my.host.name   my
        +
        +

        You should also run the following commands (or reboot your server) in order for the changes to take effect:

        +
        +	/bin/hostname
        +        /bin/systemctl restart rsyslog
        +	/bin/systemctl restart network
        +
        + +

        Setting up SSH

        +

        You may wish to add ssh access to your VPS. It is highly recommended that you disable root login via ssh and use a normal user account to login. In CentOS the OpenSSH service is installed and enabled by default.

        + +

        Disable root Login

        + +

        Edit /etc/ssh/sshd_config and uncomment the line:

        +
        +	#PermitRootLogin yes
        +
        +

        To:

        +
        +	PermitRootLogin no
        +
        +

        Also you can raise the security level in OpenSSH a little bit by allowing only to certain users ssh access to your vps (eg. the user you have created before)

        +

        Add one line at the end of /etc/ssh/sshd_config like this: +

        	AllowUsers username anotheruser
        + +

        Now restart sshd by running/typing:

        +
        +	/bin/systemctl restart sshd
        +
        +

        You can now test ssh by running ssh user@localhost.

        + +

        Security

        +

        In CentOS SELinux is enabled by default, SDF's CentOS VPS has SELinux configured to run in permissive mode, so it will log any security problem but won't enforce any policy. If you are not familiar with SELinux I suggest you to leave it this way, you can learn more about SLinux in CentOS in the Deployment Guide

        +

        CentOS 7 uses firewalld, you can learn more about configuring firewalld here. +

        Software Management

        +

        Yellow Dog Updater Modified (yum) is the default package manager used in CentOS ( all versions ). It is used to install and update packages from CentOS (and 3rd party) Repositories.

        +

        You can configure this repositoires in /etc/yum.repos.d, by default CentOS Base and CentOS Updates are enabled by default, SDF seems to be running [citation needed] default CentOS kernel, but to play safe I advise you to add the following line in /etc/yum.repos.d/CentOS-Base.repo once under sections [base] and [updates]:

        +
        +	exclude=kernel-PAE* kernel-debug* kernel-devel* kernel-doc* kernel-xen*
        +
        +

        CentOS is aimed to be 100% binary compatible with RHEL, so it is very enterprise oriented and the best advise is to stick with pre-built packages.

        +

        Searching software

        +If you wanted to look for GNU Screen, you can search yum database by running: +
        +	yum search screen
        +
        +

        yum will return a list of package names and descriptions matching the word used as parameter for search. CentOS has groups of packages available you can know what software groups are available for install as the software groups installed already.

        +

        +	yum grouplist
        +
        +

        This command will return installed and available for install software groups.

        +

        +Installed Groups in SDF VPS CentOS image: +

        • DNS Name Server +
        • Dialup Networking Support +
        • Editors +
        • FTP Server +
        • Legacy Network Server +
        • Mail Server +
        • MySQL Database +
        • Network Servers +
        • News Server +
        • Server Configuration Tools +
        • System Tools +
        • Text-based Internet +
        • Web Server +
        • Windows File Server +
        • Yum Utilities +
        +

        + +

        Installing software

        +

        If you want to install GNU screen as in the example above, you must run the following:

        +
        +	yum install screen
        +
        +

        If you wish to install the development toolchain you can do it by running this command:

        +
        +	yum groupinstall "Development Tools"
        +
        +

        Be aware that this can be a lot of stuff and you may run out of space in hard drive, so start by removing unused software groups (e.g., yum groupremove "Windows File Server") and then move to install desired/needed software groups or standalone packages.

        + + +

        3rd party repos

        +

        Most needs could do it well with repositoires shiped by default CentOS, but there are other options like the CentOS Plus repository, shiped but disabled by default, since this repo contains items that actually upgrade certain base CentOS components. This repo will change CentOS so that it is not exactly like the upstream provider's content. Popular packages from this repository include: postfix with database support, a rebuilt kernel with additional drivers & filesystem support, php5 and mysql5.

        +

        contrib is also a disabled default in CentOS. +This repository contains packages contributed by CentOS users which do not overlap with any of the core distribution packages. These packages have not been tested by the CentOS developers and may not track the upstream version releases very closely.

        +

        To enable repositories temporarily, append --enablerepo=reponame before the command for yum, such as:

        +
        +	yum --enablerepo=centosplus --enablerepo=contrib search postfix
        +
        +

        Other popular repos are RPMForge, this repository provides over 4000 packages for CentOS. Read the instructions on Installing RPMForge. This repository is considered by many in the community to be stable and safe. +

        EPEL, this repository (See http://fedoraproject.org/wiki/EPEL) provides rebuilds of Fedora packages for RedHat Enterprise Linux.

        + + + + +

        Updating the System

        +

        To update your system, run the following command: +

        • yum update
        + +

        References

        + +
        +
        + $Id: VPS_Centos.html,v 1.10 2017/01/04 17:30:19 kickback Exp $ +
        diff --git a/site-tutorials/VPS_Debian.html b/site-tutorials/VPS_Debian.html new file mode 100644 index 0000000..387edd7 --- /dev/null +++ b/site-tutorials/VPS_Debian.html @@ -0,0 +1,277 @@ + + + + +
        + +
        + +

        Debian on SDF VPS

        + +

        Contents

        + + +

        Basics

        + +

        The root user on a fresh Debian VPS has the default password "rootroot".

        + +

        After logging in to your VPS for the first time, please change this password +to something more secure. Type passwd at the prompt and follow +the instructions. Don't forget this password as there is currently no way to +recover it.

        + +

        It is a good habit to create a regular user account for +working, using su to obtain root privileges as needed. +To create a regular user account:

        + +
        useradd -m <username>
        +
        + +

        This user will be able to perform administrative tasks by runing +su to obtain superuser privileges using the root +password.

        + +

        Set Your Timezone

        + +
        dpkg-reconfigure tzdata
        + +

        Networking

        + +

        In your control panel at vps.sdf.org, note YOUR_IP +(e.g. 205.166.94.255) on the top line, and YOUR_HOSTNAME +(e.g. debian99).

        + +

        Start your server, and log in via the console. (default= root:rootroot)

        + +

        Open /etc/network/interfaces in an editor and add the following, replacing the text YOUR_IP with your own actual IP number, add:

        + +
        auto eth0
        +iface eth0 inet static
        +address YOUR_IP
        +netmask 255.255.255.0
        +network 205.166.94.0
        +broadcast 205.166.94.255
        +gateway 205.166.94.1
        +dns-nameservers 205.166.94.20
        +
        + +

        Note: For VPS installations of Debian 8.4 (jesse) on VPS3, please omit the above dns-nameservers line from the interfaces file, and +instead add this line to /etc/resolv.conf:

        + +
        nameserver 205.166.94.20
        + +

        Add this to /etc/hosts:

        + +
        YOUR_IP 	YOUR_HOSTNAME.sdf.org 	YOUR_HOSTNAME
        +
        + +

        Change /etc/hostname to:

        + +
        YOUR_HOSTNAME
        +
        + +

        Run/Type:

        + +
        /etc/init.d/networking restart
        +
        + +

        Setting up SSH

        +

        You may wish to add ssh access to your VPS. It is +highly recommended that you disable root +login via ssh and use a normal user account to login.

        + +

        Install SSH

        +

        Run/Type:

        +
        apt-get install openssh-server
        + +

        Disable root Login

        +

        Edit /etc/ssh/sshd_config and change the line:

        +
        PermitRootLogin yes
        +

        To:

        +
        PermitRootLogin no
        + +

        Now restart sshd by running/typing:

        +
        /etc/init.d/ssh restart
        + +

        You can now test ssh by running +ssh user@localhost. + +

        Package Management

        + +

        Refer to the following article to see how to clean up (remove packages) from your VPS:

        + + +

        Firewall Setup

        + +

        Disable IPv6:

        +
        # echo "blacklist ipv6" >> /etc/modprobe.d/blacklist
        + +

        Edit rules:

        +
        # vi /etc/firewall
        +
        +*filter
        +
        +-A INPUT -i lo -j ACCEPT
        +-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
        +
        +-A OUTPUT -j ACCEPT
        +-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        +
        +-A INPUT -p tcp --dport 80 -j ACCEPT
        +-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
        +
        +-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
        +
        +-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
        +
        +-A INPUT -j REJECT
        +-A FORWARD -j REJECT
        +
        +COMMIT
        +
        + +

        Load rules (now):

        +
        # iptables -F
        +# iptables-restore < /etc/firewall
        +
        + +

        Load rules (boot):

        +
        # vi /etc/network/if-pre-up.d/firewall
        +
        +#!/bin/sh
        +/sbin/iptables-restore < /etc/firewall
        +
        +# chmod 755 /etc/network/if-pre-up.d/firewall
        +
        +

        Software and Distribution Updating

        +

        To update your system, run the following commands: +

      1. apt-get update +
      2. apt-get dist-upgrade -y +

        + +

        Reducing Memory Usage

        +

        If you are using a 128MB slice, it's a good idea to reduce the memory usage of some processes or even disable them.

        + +

        cron and at

        +You might not need one or both of those, so you can deactivate them with +
        +# update-rc.d -f atd remove
        +# update-rc.d -f cron remove
        +
        + +This frees up ca. 7MB (if both are deactivated). + +

        getty / virtual terminals

        +This being a virtual system, you won't need getty on tty1-6. In order to eliminate them, edit /etc/inittab and modify the corresponding lines like this: +
        +co:2345:respawn:/sbin/getty hvc0 9600 linux
        +
        +#1:2345:respawn:/sbin/getty 38400 tty1
        +#2:23:respawn:/sbin/getty 38400 tty2
        +#3:23:respawn:/sbin/getty 38400 tty3
        +#4:23:respawn:/sbin/getty 38400 tty4
        +#5:23:respawn:/sbin/getty 38400 tty5
        +#6:23:respawn:/sbin/getty 38400 tty6
        +
        +You need to keep the line with hvc0 so you can attach a serial console from vps.sdf.org to your vps. + +This frees up ca. 10MB. + +

        rsyslogd

        +rsyslogd eats a lot of memory by default (26MB on my vps) which can be reduced by the usage of ulimit. Edit /etc/init.d/rsyslog and include the following line just before the command where rsyslogd will be started: +
        +ulimit -s 256
        +
        + +Example: +
        +case "$1" in
        +  start)
        +        ulimit -s 256
        +        log_daemon_msg "Starting $DESC" "$RSYSLOGD"
        +        create_xconsole
        +        do_start
        +        case "$?" in
        +                0) sendsigs_omit
        +                   log_end_msg 0 ;;
        +                1) log_progress_msg "already started"
        +                   log_end_msg 0 ;;
        +                *) log_end_msg 1 ;;
        +        esac
        +
        +        ;;
        +
        +This frees up about 23MB. + +

        portmap

        +I don't need portmap, so i removed it completely: +
        +apt-get remove --purge portmap
        +
        + +

        openssh vs. dropbear

        +If you dont need all the extra features openssh has compared to dropbear, you can reduce memory consumption from 23MB to 5MB while being connected with 1 non-root user to the system by replacing openssh with dropbear. +
        +apt-get install dropbear
        +
        +Edit /etc/defaults/dropbear and set NO_START to 0 and add the extra args "-w -s -g" to disallow root and password logins (You'll be only able to login with a non root user and ssh keys): +
        +# disabled because OpenSSH is installed
        +# change to NO_START=0 to enable Dropbear
        +NO_START=0
        +
        +# the TCP port that Dropbear listens on
        +DROPBEAR_PORT=22
        +
        +# any additional arguments for Dropbear
        +DROPBEAR_EXTRA_ARGS="-w -s -g"
        +
        +# specify an optional banner file containing a message to be
        +# sent to clients before they connect, such as "/etc/issue.net"
        +DROPBEAR_BANNER=""
        +
        +# RSA hostkey file (default: /etc/dropbear/dropbear_rsa_host_key)
        +#DROPBEAR_RSAKEY="/etc/dropbear/dropbear_rsa_host_key"
        +
        +# DSS hostkey file (default: /etc/dropbear/dropbear_dss_host_key)
        +#DROPBEAR_DSSKEY="/etc/dropbear/dropbear_dss_host_key"
        +
        +# Receive window size - this is a tradeoff between memory and
        +# network performance
        +DROPBEAR_RECEIVE_WINDOW=65536
        +
        +
        + +Afterwards, you can deactivate openssh with +
        +update-rc.d ssh remove
        +
        +or uninstall it: +
        +apt-get remove openssh-server
        +
        + +
        +$Id: VPS_Debian.html,v 1.19 2018/02/22 02:06:34 slugmax Exp $ diff --git a/site-tutorials/VPS_NetBSD.html b/site-tutorials/VPS_NetBSD.html new file mode 100644 index 0000000..fd39d0c --- /dev/null +++ b/site-tutorials/VPS_NetBSD.html @@ -0,0 +1,178 @@ + + + +
        + +
        + +

        NetBSD on SDF VPS

        + +

        Contents

        + + +

        First Steps

        + +

        User Accounts

        + +

        After you have installed and started your NetBSD VPS, go to the +console and log-in as user root with the default password, "root".

        + +

        One of the first things you +will want to do is change the default root password by typing +passwd at the prompt. Don't forget this password as there is +currently no way to recover it.

        + +

        It is also a good habit to create a regular user account for +working, using su to obtain root privileges as needed. +To create a regular user account which is part of the administrative +wheel group:

        + +
        useradd -m -G wheel <username>
        + +

        Then immediately set its password with:

        + +
        passwd <username>
        + +

        This user will be in the wheel group and will be able +to perform administrative tasks by runing su to obtain +superuser privileges using the root password.

        + +

        System Clock

        + +

        It is customary on UNIX systems for the system clock to be set +to UTC. To set the local time zone, find your zone file in +/usr/share/zoneinfo/ and link to it at +/etc/localtime as follows:

        + +
        ln -fs /usr/share/zoneinfo/Europe/Helsinki /etc/localtime
        + +

        Networking

        + +

        Look at the first line of your control panel at vps.sdf.org and note YOUR_HOSTNAME +(e.g. netbsd99), EXTERNAL_IP (e.g. 205.166.94.nnn), and INTERNAL_IP +(e.g. 10.1.0.nnn):

        + +
        +VPS Maintenance Shell for netbsd99 (205.166.94.nnn / 10.1.0.nnn)
        +                          --------  -------------   ----------
        +                          ^         ^               ^
        +                          |         |               |
        +                          |         EXTERNAL_IP     INTERNAL_IP
        +                          |
        +                          YOUR_HOSTNAME
        +
        + +

        Open /etc/rc.conf in an editor and, replacing the text YOUR_HOSTNAME, +EXTERNAL_IP, and +INTERNAL_IP with your own actual host name and IP numbers, add:

        + +
        +hostname=YOUR_HOSTNAME.sdf.org
        +defaultroute=205.166.94.1
        +auto_ifconfig=yes
        +ifconfig_xennet0="inet EXTERNAL_IP netmask 0xffffff00"
        +ifconfig_xennet1="inet INTERNAL_IP netmask 0xffffff00"
        +
        + +

        Then put this in /etc/resolv.conf:

        + +
        nameserver 205.166.94.20
        + +

        Add this to /etc/hosts:

        + +
        EXTERNAL_IP 	YOUR_HOSTNAME.sdf.org 	YOUR_HOSTNAME
        + +

        Run/Type:

        + +
        /etc/rc.d/network restart
        + +

        pkgsrc

        + +

        On NetBSD you can mount a pre-built (and still in progress) pkgsrc DESTDIR. +Following the procedures below will effectively install the 2000+ included +packages on your virtual NetBSD system.

        + +

        Note that at the moment the pre-built pkgsrc assumes that its +path is /pkgshare. Some programs won't work under a different +prefix since they won't be able to find their shared libraries.

        + +
        +mkdir -p /pkgshare
        +rmdir /usr/pkg
        +ln -s /pkgshare /usr/pkg
        +rm -rf /var/db/pkg
        +ln -s /pkgshare/db/pkg /var/db/pkg
        +mount -t nfs 10.1.0.1:/pkgshare /pkgshare
        +export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin
        +
        + +

        It is read only.

        + +

        To set this up on boot, execute the steps above and then:

        + +
        +echo "nfs_client=YES" >> /etc/rc.conf
        +echo "rpcbind=YES" >> /etc/rc.conf
        +echo "10.1.0.1 vps" >> /etc/hosts
        +echo "vps:/pkgshare /pkgshare nfs ro" >> /etc/fstab
        +echo "export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin" >> /etc/profile
        +
        + +

        Note that you cannot use both this pre-built pkgsrc and pre-built packages +from netbsd.org. It may be possible to set the system up so you can, however +this is best left to the experienced NetBSD administrator.

        + +

        Miscellaneous Tips

        + +

        Free up disk space by removing unwanted sets

        + +

        The default image comes with all distribution sets installed. You can free +up some disk space by removing the ones you don't need.

        + +

        First, check which distribution sets are installed:

        + +
        ls /etc/mtree
        + +

        Decide which sets you want to remove and examine their contents. For example, +to remove games and all X11 sets:

        + +
        +for set in games xbase xcomp xetc xfont xserver ; do \
        +  tar tzf /usr/INSTALL/$set.tgz | sed -e 's/^\.//' >> /tmp/purgelist ; \
        +done
        +
        + +

        After examining /tmp/purgelist and removing any files you want to +keep, do:

        + +
        cat /tmp/purgelist | xargs rm
        + +

        References

        + + + +
        + +
        +$Id: VPS_NetBSD.html,v 1.23 2018/02/22 15:12:01 slugmax Exp $ +
        diff --git a/site-tutorials/VPS_NetBSD.html.bak b/site-tutorials/VPS_NetBSD.html.bak new file mode 100644 index 0000000..d27a1fa --- /dev/null +++ b/site-tutorials/VPS_NetBSD.html.bak @@ -0,0 +1,150 @@ + + + +
        + +
        + +

        NetBSD on SDF VPS

        + +

        Contents

        + + +

        Basics

        + +

        Upon logging in to your VPS for the first time, one of the first +things you will want to do is change the default root password +by typing passwd at the prompt. Don't forget this +password as there is currently no way to recover it.

        + +

        It is customary on UNIX systems for the system clock to be set +to UTC. To set the local time zone, find your zone file in +/usr/share/zoneinfo/ and link to it at +/etc/localtime as follows:

        + +
        ln -fs /usr/share/zoneinfo/Europe/Helsinki /etc/localtime
        +
        + +

        It is also a good habit to create a regular user account for +working, using su to obtain root privileges as needed. +To create a regular user account which is part of the administrative +wheel group:

        + +
        adduser -m -G wheel <username>
        +
        + +

        This user will be in the wheel group and will be able +to perform administrative tasks by runing su to obtain +superuser privileges using the root password.

        + +

        Networking

        + +

        In your control panel at vps.sdf.org, note YOUR_IP +(e.g. 192.94.73.255) on the top line, and YOUR_HOSTNAME +(e.g. netbsd99).

        + +

        Start your server, and log in via the console. (default= root:root)

        + +

        Open /etc/rc.conf in an editor and, replacing the text YOUR_HOSTNAME and YOUR_IP with +your own actual host name and IP number, add:

        + +
        hostname=YOUR_HOSTNAME.sdf.org
        +defaultroute=192.94.73.1
        +auto_ifconfig=yes
        +ifconfig_xennet0="inet YOUR_IP netmask 0xffffff00"
        +
        + +

        Then put this in /etc/resolv.conf:

        + +
        nameserver 192.94.73.120
        +
        + +

        Add this to /etc/hosts:

        + +
        YOUR_IP 	YOUR_HOSTNAME.sdf.org 	YOUR_HOSTNAME
        +
        + + +

        Run/Type:

        + +
        /etc/rc.d/network restart.
        +
        + +

        pkgsrc

        + +

        On NetBSD you can now mount a pre-build (and still in progress) +pkgsrc DESTDIR. +Following the procedures below will effectively install the 2000+ included +packages on your virtual NetBSD system.

        + +

        Note that at the moment the pre-built pkgsrc assumes that its path is +/images/pkg_neb501 - otherwise some programs won't work (will not be +able to use their shared libraries). The instructions below will show +how to make this work.

        + +

        Simply:

        + +
        mkdir -p /images/pkg_neb501
        +rmdir /usr/pkg
        +ln -s /images/pkg_neb501 /usr/pkg
        +rm -rf /var/db/pkg
        +ln -s /images/pkg_neb501/db/pkg /var/db/pkg
        +mount -t nfs 192.94.73.120:/images/pkg_neb501 /images/pkg_neb501
        +export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin
        +
        + +

        It is read only.

        + +

        To set this up on boot:

        + + + + + +
        + +
        mkdir -p /images/pkg_neb501
        +rmdir /usr/pkg
        +ln -s /images/pkg_neb501 /usr/pkg
        +rm -rf /var/db/pkg
        +ln -s /images/pkg_neb501/db/pkg /var/db/pkg
        +
        +
        +
        (These commands are only necessary if you didn't execute the procedure above.)
        +
        +echo "nfs_client=YES" >> /etc/rc.conf
        +echo "rpcbind=YES" >> /etc/rc.conf
        +echo "192.94.73.120 vps" >> /etc/hosts
        +echo "vps:/images/pkg_neb501 /images/pkg_neb501 nfs ro" >> /etc/fstab
        +echo "export PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin" >> /etc/profile
        +
        + +

        Note that you cannot use both this pre-build pkgsrc and pre-built +packages from netbsd.org - it may be possible to set the system up +so you can, however this is best left to the experienced NetBSD +administrator.

        + +

        References

        + + + +
        + +
        +$Id: VPS_NetBSD.html.bak,v 1.1 2019/12/06 20:50:52 thegiant Exp $ +
        diff --git a/site-tutorials/VPS_NetBSD_OpenLDAP.html b/site-tutorials/VPS_NetBSD_OpenLDAP.html new file mode 100644 index 0000000..d190988 --- /dev/null +++ b/site-tutorials/VPS_NetBSD_OpenLDAP.html @@ -0,0 +1,282 @@ + +

        Installing an OpenLDAP Server on a NetBSD VPS

        + +

        Note: This tutorial assumes you’ve already followed the NetBSD on SDF VPS tutorial to set up networking, the time zone and pkgsrc using the SDF VPS pkgsrc.

        + +

        An LDAP server can be used for an endless number of things. Essentially, LDAP is just an object-oriented hierarchical database. Common uses include authentication and authorisation, host management, a backend for Kerberos, a backend for a DHCP server, a shared address book and forming a part of some public key infrastructures.

        + +

        In this tutorial, I will be setting up the LDAP server to provide authorisation and authentication for a nix client, but the first few stages are the same for almost any application of LDAP.

        + +

        The OpenLDAP server is available in the SDF VPS pkgsrc and so the software is already installed, but does require some configuration.

        + +

        Jargon and Tools

        + +
        +
        OpenLDAP
        + +
        The LDAP server that will be used
        + +
        Suffix
        + +
        The suffix appended to all LDAP objects, which normally related to a domain name
        + +
        Root DN
        + +
        The administrative user of the server, with read and write access to all data objects. The password for this user should be kept secure
        + +
        slapd
        + +
        The name of the executable of the OpenLDAP server
        + +
        slappasswd
        + +
        The name of the executable tool used for creating password hashes
        + +
        pwd_mkdb
        + +
        The name of the executable tool that generates the password databases
        +
        + +

        Initial Setup

        + +

        To begin with, we’ll create the chroot environment. Whilst the OpenLDAP server is running, this is the only part of the file system it will be able to see.

        + +

        The first step is to create the directories and copy the initial configuration that comes from pkgsrc.

        + +
        # mkdir /var/chroot/openldap
        +# mkdir /var/chroot/openldap/etc /var/chroot/openldap/var
        +# cp -r /usr/pkg/etc_example/openldap /var/chroot/openldap/etc/
        +# cp -r /usr/pkg/var/openldap /var/chroot/openldap/var/
        + +

        The next step is to create the user and group that the server will run as, and allow for this information to be available in the chroot.

        + +
        # groupadd -g 17 slapd
        +# useradd -u 17 -g 17 -d /var/chroot/openldap slapd
        +# grep slapd /etc/master.passwd > /var/chroot/openldap/etc/master.passwd
        +# pwd_mkdb -d /var/chroot/openldap /var/chroot/openldap/etc/master.passwd
        +# grep slapd /etc/group > /var/chroot/openldap/etc/group
        + +

        No password needs to be set for the slapd user as no one will ever log in using its username. This disallows logins from that user.

        + +

        Finally, we’ll need to set the correct permissions necessary for OpenLDAP to access its data while keeping it secure.

        + +
        # chown -R slapd:slapd /var/chroot/openldap
        +# chmod -R 700 /var/chroot/openldap/var/openldap/openldap-data
        + +

        Initial Configuration

        + +

        The next stage involves editing some configuration files so that paths are correct within the chroot and the chroot is enabled with the correct user and group.

        + +

        This step also includes setting the password for the root DN (Distinguished Name), the LDAP administrative user.

        + +

        Begin by creating a hash of the password you wish to use for the root DN. This should be a secure password, as the root DN can read and write to the database, regardless of any access restrictions that we set up later on. The slappasswd tool is used to do this.

        + +
        # slappasswd -s 'reallysecurepassword'
        +{SSHA}1LuiLGmSO+EoPA0uk80v4TC5xwacBOWg
        + +

        Note: The -s flag passed here tells slappasswd that we want to pass the secret on the command line. If you execute slappasswd without any arguments, it will prompt for the password on the terminal allowing you to avoid having the password show up in any logs or in the running process list.

        + +

        You should copy the whole line to your clipboard as we will need it shortly. Then open up /var/chroot/openldap/etc/openldap/slapd.conf in your favourite editor.

        + +

        The first three lines that need changing are near the top of the file. They start with include, pidfile and argsfile and have a path to a file following them. These paths point to the read-only filesystem of the SDF VPS pkgsrc and not our chroot, so they should be changed like so:

        + +
        include         /etc/openldap/schema/core.schema
        +[...SNIPPED...]
        +pidfile         /var/openldap/run/slapd.pid
        +argsfile        /var/openldap/run/slapd.args
        + +

        Next, we’ll need to set the suffix, the root DN, and the password for the root DN. The suffix is normally formed from your domain name. In this example, the domain name is shiftout.org, and so the suffix should be dc=shiftout,dc=org. The suffix should then be copied onto the end of the root DN, so in this example, it becomes: cn=manager,dc=shiftout,dc=org. For the root DN’s password, replace secret with the string you copied to your clipboard earlier.

        + +
        suffix          "dc=shiftout,dc=org"
        +rootdn          "cn=manager,dc=shiftout,dc=org"
        +[...SNIPPED...]
        +rootpw          {SSHA}1LuiLGmSO+EoPA0uk80v4TC5xwacBOWg
        + +

        Then there is one final path to modify. This is the directory that OpenLDAP uses for storing its data. Currently, it is set to point at the read-only SDF VPS pkgsrc, so this needs to be changed.

        + +
        directory       /var/openldap/openldap-data
        + +

        The final step before running the server for the first time is to configure the rc scripts. These allow for the server to be started on boot.

        + +

        First, copy the example rc script for slapd into the /etc/rc.d directory.

        + +
        # cp /usr/pkg/share/examples/rc.d/slapd /etc/rc.d/
        + +

        Then edit the new file /etc/rc.d/slapd with your favourite editor.

        + +

        There are two lines you need to edit here. The line defining where to find slapd is fine as the read-only filesystem is fine for executing programs from, it’s only the configuration and data store we needed to move.

        + +

        The first line that needs to be edited is the location of the configuration file, which should look like this:

        + +
        required_files="/var/chroot/openldap/etc/openldap/${name}.conf"
        + +

        The second line is the command line arguments that are passed to slapd when it is started. This should look like:

        + +
        command_args="-u slapd -g slapd -r /var/chroot/openldap/ -f /etc/openldap/slapd.conf"
        + +

        The -u and -g flags are used to specify the user and group that slapd should be running as. The -r flag tells slapd where to chroot, and the -f flag tells slapd where to find the configuration file. All configuration files are read after the chroot has happened, which is why the path does not include /var/chroot/openldap in it.

        + +

        Finally, it is necessary to enable slapd in the rc.conf file.

        + +
        # echo "slapd=YES" >> /etc/rc.conf
        + +

        You can edit the file manually and add this line if you would like to keep your rc.conf organised in some way.

        + +

        Testing

        + +

        Before starting slapd as a daemon, it would be wise to first test that it is working fine using debug mode. The following command will start slapd in debug mode with the command line arguments we specified in slapd’s rc file. 255 represents the debug level.

        + +
        # /usr/pkg/libexec/slapd -u slapd -g slapd -r /var/chroot/openldap/ -f /etc/openldap/slapd.conf -d 255
        + +

        If you see something similar to:

        + +
        502c06bd slapd starting
        +502c06bd daemon: added 4r listener=0x0
        +502c06bd daemon: added 6r listener=0x7f7ffc427180
        +502c06bd daemon: added 7r listener=0x7f7ffc427240
        +502c06bd daemon: select: listen=6 active_threads=0 tvp=NULL
        +502c06bd daemon: select: listen=7 active_threads=0 tvp=NULL
        +502c06bd daemon: activity on 1 descriptor
        +502c06bd daemon: waked
        +502c06bd daemon: select: listen=6 active_threads=0 tvp=NULL
        +502c06bd daemon: select: listen=7 active_threads=0 tvp=NULL
        + +

        Then you have succeeded in configuring an OpenLDAP to a point where it will start successfully. Press Ctrl+C to stop the server. You can start or stop the server as a daemon using /etc/rc.d/slapd {start,stop} just like you would with other daemons on NetBSD.

        + +

        Note: From this point, configuration will become specific to providing authentication and authorisation services for nix clients. If you’re looking to use LDAP for another application, hopefully you’ve got to a point where a more generalised tutorial is able to help you.

        + +

        Including extra schemata

        + +

        Three schemata will need to be used by slapd to enable you to store objects representing users and groups.

        + +
        +
        cosine.schema
        + +
        Includes “generally useful” objects and attributes (sic)
        + +
        nis.schema
        + +
        Includes objects and attributes for use in representing fields from BSD-style flat file authentication and authorisation files
        + +
        inetorgperson.schema
        + +
        Includes objects and attributes for representing contact information and organisational information
        +
        + +

        These files are included by adding the following three lines underneath the first include we changed earlier in the /var/chroot/openldap/etc/openldap/slapd.conf file:

        + +
        include         /etc/openldap/schema/cosine.schema
        +include         /etc/openldap/schema/nis.schema
        +include         /etc/openldap/schema/inetorgperson.schema
        + +

        At the end of this file, we’ll also add another index. Searching on non-indexed fields can result in no results being returned, so this is important.

        + +
        index           uid         eq
        + +

        Configuring ACLs

        + +

        The sample configuration in /var/chroot/openldap/etc/openldap/slapd.conf is sane for using LDAP for authentication and authorisation so this step simply involves uncommenting the following:

        + +
        access to dn.base="" by * read
        +access to dn.base="cn=Subschema" by * read
        +access to *
        +        by self write
        +        by users read
        +        by anonymous auth
        + +

        A second test

        + +

        To ensure that no errors have been made while configuring, it would be a good idea now to run slapd again with the debug option. Any errors will be apparent in the output if they have occurred.

        + +
        # /usr/pkg/libexec/slapd -u slapd -g slapd -r /var/chroot/openldap/ -f /etc/openldap/slapd.conf -d 255
        + +

        Importing data

        + +

        Assuming you’ve got this far with no problems, it’s time to import some data. The data used for interactions with an OpenLDAP server is stored in a text file in LDIF (LDAP Data Interchange Format). Once we have performed this initial import, further interactions can be performed through graphical clients.

        + +

        Copy the following example into a text file:

        + +
        # Create top-level object in domain
        +dn: dc=shiftout,dc=org
        +objectClass: top
        +objectClass: dcObject
        +objectclass: organization
        +o: shiftOut
        +dc: shiftOut
        +description: shiftOut
        +
        +dn: ou=people,dc=shiftout,dc=org
        +objectClass: organizationalUnit
        +ou: people
        +
        +dn: ou=groups,dc=shiftout,dc=org
        +objectClass: organizationalUnit
        +ou: groups
        +
        +dn: uid=irl,ou=people,dc=shiftout,dc=org
        +objectClass: inetOrgPerson
        +objectClass: posixAccount
        +objectClass: shadowAccount
        +uid: irl
        +sn: Learmonth
        +givenName: Iain
        +cn: Iain Learmonth
        +displayName: Iain R. Learmonth
        +uidNumber: 2000
        +gidNumber: 2000
        +userPassword: password
        +gecos: Iain R. Learmonth
        +loginShell: /bin/bash
        +homeDirectory: /home/irl
        +shadowExpire: -1
        +shadowFlag: 0
        +shadowWarning: 7
        +shadowMin: 8
        +shadowMax: 999999
        +shadowLastChange: 10877
        +mail: irl@sdf.org
        +homePhone: +1 (206) 299 2120 x1388
        +title: System Administrator
        +initials: IRL
        +
        +dn: cn=irl,ou=groups,dc=shiftout,dc=org
        +objectClass: posixGroup
        +cn: irl
        +gidNumber: 2000
        + +

        The following is used in this example:

        + +
          +
        • Suffix: dc=shiftout,dc=org
        • + +
        • Initial user: irl
        • + +
        • Organisation name: shiftOut
        • +
        + +

        These three values will need to be changed. Hopefully you can also use common sense to identify names and contact information that will need to be changed.

        + +

        Assuming you have saved your LDIF file as /tmp/ldif, run the following command to import it:

        + +
        ldapadd -D "cn=manager,dc=shiftout,dc=org" -Wx -f /tmp/ldif
        + +

        You will need to replace the bind DN here with the correct root DN and suffix you specified earlier.

        + +

        Note for experienced users: Tools such as slapadd, slapcat, etc. work directly on the OpenLDAP database files. As the path for this is set in a configuration file that assumes it’s being used in the chroot, they will not work. Experienced users may decide to setup another slapd.conf file for use outside the chroot, but the ldapadd, ldapsearch, etc. tools work just as well while the server is running.

        + +

        You can check the import was successful by running:

        + +
        ldapwhoami -D "uid=irl,ou=people,dc=shiftout,dc=org" -Wx
        + +

        Replace the uid and suffix with the ones that you have created. You should see an output similar to:

        + +
        dn:uid=irl,ou=people,dc=shiftout,dc=org
        + +

        If you see this, you have correctly configured a working LDAP server, to which you can add, query, modify, and remove data representing users and groups.

        + +

        Graphical Client

        + +

        Apache Directory Studio provides a graphical browser that you can use to add, query, modify and remove data from your LDAP database. It can be downloaded from http://directory.apache.org/studio/.

        + +$Id: VPS_NetBSD_OpenLDAP.html,v 1.5 2012/08/16 00:47:07 irl Exp $ + diff --git a/site-tutorials/VPS_Plan9.html b/site-tutorials/VPS_Plan9.html new file mode 100644 index 0000000..d7067c4 --- /dev/null +++ b/site-tutorials/VPS_Plan9.html @@ -0,0 +1,387 @@ + + + +

        Plan 9 on SDF VPS

        + + +
        + +
        + +

        Note!

        + +

        Some parts of this tutorial are copy&paste from Plan 9 wiki because they +fit the flow of the writing as they are, so no claim from SDF's users is made +over the authorship of such parts, which are clearly labeled as taken from Plan +9's wiki.

        + +

        Contents

        + + + +

        Get involved

        + +

        Plan 9 has active comunities which mostly interact by email. You are +encouraged to join the 9fans + mailing list where discussion about Plan 9 and related technologies +happen.

        + +

        SDF also host a mailling list mainly for sdfers running Plan 9 in one SDF's +VPS slice.

        + +

        SDF Plan9 Boot Camp

        + +

        SDF periodically runs a Plan9 Boot Camp which is open to anyone with an SDF user account. This Plan9 Boot Camps are announced on the bboard and are typically a Summer or Fall annual occurence and run for about 3 months.

        + +

        Activities of the SDF Plan9 Boot Camp include:

        + +
      3. Installation or pre-generated Plan9 instance under Xen +
      4. Self Guided Discoveries in: ed, network configuration +
      5. Self Guided Discoveries in: drawterm (from your computer), rio and stats +
      6. Self Guided Discoveries in: acme, sam, abaco, mothra and man +
      7. Self Guided Discoveries in: mapdemo, catclock, juggle and tetris +
      8. Self Guided Discoveries in: 9front and contrib via ftpfs +
      9. Self Guided Discoveries in: 9fans mailing list and faces + +

        During the SDF Plan9 Boot Camp you are encouraged to make screenshots and vidoes of your Self Guided Discoveries and share your experiences on plan9-l to inspire others to do the same.

        + +

        Install

        + +

        After you have been allocated a VPS slice, connect by ssh <SDF member ID>@<VPS slice>.sdf.org (for example, ssh papa@vps2.sdf.org; you may omit your SDF member ID and the "@" if you are connecting from your SDF shell account). Your password is the same as your SDF member log-in.

        + +

        At the VPS console and type x.

        + +

        If asked install from the ISO type no. At some point there +was an option to install from Plan9 iso image; at the time of updating the +tutorial it does not ask for that option anymore.

        + +
        
        +Do you wish to continue? (yes/no) yes
        +Would you like to install Plan9 yourself from the ISO? (yes/no)
        +
        +% Copying a fresh plan9 image [PLEASE WAIT]
        +[COMPLETE]
        +(continue)
        + +

        After the install ends type z and then r to +restart the instance.

        + + +

        Basics

        + +

        The Plan9 SDF VPS is the only VPS which is provided freely to SDF MetaARPA members. This slice includes cluster access to the SDF Plan9 Community 9p server as well as limited access to the Bell Labs server. It is highly recommend that you get involved in the 9fans mailing list and request commit access. With your help, Plan9 at SDF can continue to grow. To request your free Plan 9 VPS, type 'plan9' at the shell. + +

        When your Plan 9 system boots, it will ask you where root is from (via the network, or a local disk). Just hit [ENTER] to select local (the default):

        + +
        root is from (tcp, local)[local!#S/sd00/fossil]:
        + +

        Next, you will be prompted to log in. Log in as the default user, glenda:

        + +
        
        +user[none]: glenda
        +time...
        +fossil(#S/sd00/fossil)...version...time...
        +
        +init: starting /bin/rc
        +#m/mousectl: rc: can't open: unknown device in # filename
        +init: rc exit status: rc 24: error
        +
        +init: starting /bin/rc
        +%
        + +

        You will now be sitting at an rc prompt, Plan 9's shell.

        + +

        Things To Know When You Get to Plan 9's shell

        +
          +
        • ctl-h is backspace, kind of. ctl-u erases the +current line. As with backspace, screen output may not be what you +expect. + +
        • To exit Plan 9 and be able to return without rebooting your server, Press ctl-] to close the +console, then press 'q' to disconnect. You can return again by sshing to your allocated VPS server again +(see above) and getting back to the VPS console, and pressing 'c' to connect. + +
        • The only line editor installed by default in the Plan 9 Image. is ed. For initially setting +your DNS below or other tasks before you get DrawTerm running, read this tutorial for this excrutiating experience (but +then you can install DrawTerm). + +
        + +

        Networking

        + +

        Configuring Your IP Address

        + +

        In your control panel at vps3.sdf.org, note YOUR_IP +(e.g. 205.166.94.x) on the top line.

        + +

        Start your server, and log in via the console. (default=glenda)

        + +

        At the rc prompt (%), enter:

        + +
        ip/ipconfig -g 205.166.94.1 ether /net/ether0 YOUR_IP 255.255.255.0
        + +

        This configuration lasts until you reboot Plan 9. To make this permanent it is recommended to add this line to your /rc/bin/termrc.local file. + +

        To exit Plan 9 and be able to return without rebooting your server, see above.

        + + +

        DNS Resolution

        + +

        You can get DNS resolution by editing /lib/ndb/local +and changing:

        + +
        ip=127.0.0.1 sys=localhost dom=localhost
        + +

        to

        + +

        ip=YOUR_IP sys=plan9 dom=plan9 dns=205.166.94.20

        + +

        Once you've done that, from rc type

        +
        ndb/cs
        +ndb/dns -r
        + +

        This configuration lasts until you reboot Plan 9. To make this permanent it is recommended to add those two lines to your /rc/bin/termrc.local file.

        + +

        To exit Plan 9 and be able to return without rebooting your server, see above.

        + +

        Drawterm

        +

        Drawterm is essentially a BLIT terminal emulator which allows you to +connect to your Plan9 system and load the rio windowing system. +Rio is a direct successor of UNIX 'layers' and Plan 9 '8½'.

        + +

        At the rc prompt (%) in your Plan 9 VPS, enter these +two lines.

        + +
        echo 'key proto=p9sk1 dom=plan9 user=glenda !password=PASSWORD' >/mnt/factotum/ctl
        +aux/listen1 -t tcp!*!ncpu /bin/cpu -R &
        +
        + +

        Replace PASSWORD with the password you want. This password lasts until +you reboot Plan 9.

        + +

        To exit Plan 9 and be able to return without rebooting your server, see above.

        + + +

        Getting Started with Drawterm

        +
        + +

        Follow the instructions +to download and build Drawterm for your operating system. YOUR_IP must match +the IP address described in Networking.

        + +
        ./drawterm -a YOUR_IP -c YOUR_IP -u glenda
        + +

        After typing your password, press the right button of your mouse. +A menu should appear. Then, release the button over the New +option.
        +Now, press the right button again near the upper-left corner of drawterm, and +drag the mouse to the lower right before releasing the button, drawing +a rectangle.
        +You should now have a terminal window. The first +thing you should probably do is to type cat readme.rio (or read +it from here)

        + +

        Plan 9 Applications

        + +

        Browsing the Web

        + +

        You can use Abaco to +browse the web. (Abaco is available in a default Plan 9 system.)

        + +

        You'll need to have your IP configured and DNS working in order to browse +the web. After that, you'll have to run webfs and +then abaco. (You may want to add +webfs in your $home/lib/profile just before +plumber and rio; also, if you don't have a $home/lib/webcookies +file, touch it.)

        + +

        + +

        When abaco starts, you can go to a webpage by clicking "New" +with the middle button of the mouse, typing the address in the row below the +one with "Del Snarf Get …" (see the previous figure: +it's the one where the current address is), and pressing "Enter" on your +keyboard. You can follow links by clicking on them, as is usual, with the +left button (the shape of the cursor won't change, though).

        + +

        Adding a User

        + +

        You may wish to add a user to your system once you get the hang of things. +There is really no need to create a new user when you are first starting out. +To create a new user, you will have to connect to the file server console by +typing:

        + +
        con -l /srv/fscons
        + +

        Now, at the file server prompt, create a new user. Replace USER with what +you want your new user to be named:

        + +
        uname USER USER
        + +

        You will need to add that user to the sys group if you want +it to be able to change system configuration files. Again, change USER to +what your new user name is:

        + +
        uname sys +USER
        + +

        Exit the file server console by typing: ctrl+\. You will now +be at a >>> prompt; type q to quit.

        + + +

        Configure Time zone

        + +

        Taken from Plan + 9 Wiki Installation Instructions

        + +

        You might want to configure your system's timezone. Figure out in which +timezone you are, and then, assuming e.g. you are in the CET zone log in as +user adm, then:

        + +
        cp /adm/timezone/CET /adm/timezone/local
        + +

        Last, but not the least, you may also want to edit/change the +TIMESYNCARGS in your /rc/bin/termrc or +/rc/bin/cpurc; for example, to use an NTP service, set it to:

        + +
        TIMESYNCARGS=(-n 0-north-america.pool.ntp.org)
        + +and reboot. + + +

        Working in Plan 9

        +

        TODO check if title works

        + +

        Now that you are connected to your Plan 9 console with your new user you +should run:

        + +
        /sys/lib/newuser
        + +

        And setup a password for the user in factotum so you can login from +Drawterm.

        + +

        Taken from Plan + 9 Wiki Installation Instructions

        + +

        When you drawterm to a Plan 9 cpu server, your local files will be available +at /mnt/term. This means you can freely copy files between Plan 9 and your +other os without the use of any additional protocols. In other words, when +working with drawterm, your environment is actually a composite of your local +os and the Plan 9 system - technically it is a three node grid, because the +Drawterm program acts as an ultra-minimal independent Plan 9 terminal system, +connecting your host os to the Plan 9 cpu server.

        + + +

        Useful Plan9 Commands

        + +

        While there are many similarities between UNIX and Plan9, there are specific +commands which may be unfamiliar to UNIX users. However, some of these commands +have their roots in early UNIX systems as well as BTL Research UNIX. + +

          +
        • fshalt -h - This will gracefully shutdown Plan 9
        • +
        • ed - This archaic line editor is the only one installed by default in the Plan 9 Image. For +initially setting your DNS above or other tasks before you get DrawTerm running, read this tutorial for this excrutiating experience (but +then you can install DrawTerm).
        • +
        + + + + +

        Tutorials

        + + + +

        Utilities

        + + + +

        Videos

        + + + +

        Books

        + + + + +
        +$Id: VPS_Plan9.html,v 1.41 2020/06/16 00:17:20 smj Exp $ diff --git a/site-tutorials/agent.html b/site-tutorials/agent.html new file mode 100644 index 0000000..13789e6 --- /dev/null +++ b/site-tutorials/agent.html @@ -0,0 +1,52 @@ +

        Using an SSH agent to avoid typing your password

        + + +

        Do not use this tutorial until you make a unix account accessible via public key authentication following this tutorial.

        + +

        Not only is typing your passphrase once convenient, you can make your password very complicated and only ever type an easy to remember passphrase to access all your accounts.

        + + +

        At the shell

        +At any time, you can type

        + +ssh-agent /bin/ksh
        +ssh-add $HOME/private_key.rsa
        +
        +
        +(you can replace /bin/ksh by your favorite shell). Any command issued from then on that uses ssh to interact with a server that hosts your public key (e.g. ssh, sshfs, rsync) will not require a password e.g. +

        + +home_pc$ ssh-agent /bin/ksh
        +home_pc$ ssh-add $HOME/public_key.rsa
        +Enter passphrase for /home/user/public_key.rsa:
        +Identity added: /home/user/public_key.rsa (/home/user/public_key.rsa)
        +home_pc$ ssh miku.freeshell.org
        +miku$ +
        +

        + +

        Any Window Manager

        +Arrange to have

        + +ssh-add $HOME/private_key.rsa + +

        +run at login (e.g. via $HOME/.xinitrc or as a "Startup Application in Gnome/KDE"). You should get a popup asking for your passphrase. + + +

        Gnome

        +

        KDE

        +

        Mac OS X

        +

        Windows

        +You may have to change your openssh formatted private key to PuTTY's .ppk format via PuTTYgen. +

        +$Id: agent.html,v 1.3 2011/09/11 13:31:10 jbaber Exp $ diff --git a/site-tutorials/anonradio-dj.html b/site-tutorials/anonradio-dj.html new file mode 100644 index 0000000..8c0f166 --- /dev/null +++ b/site-tutorials/anonradio-dj.html @@ -0,0 +1,146 @@ +

        To DJ on ANONRADIO

        + +

        To become a DJ, first you must subscribe to the anonradio-l mailing +list by sending an email to majordomo@sdf.org that says:

        + +
        subscribe anonradio-l
        + +

        Then, send a message to the list and introduce yourself. Tell us about the +show you want to do, and request a time-slot — for the current schedule, +just visit anonradio.net. When you are +ready to schedule your show, email membership and you will be +given a username, password, mountpoint and server name to stream your show to. +Scheduled shows are automatically switched-in by the server.

        + +

        Before getting your own show, you may like to try broadcasting during OpenMIC.

        + +

        Streaming

        + +

        There are a variety of tools that can be used to stream to aNONradio from a +variety of operating systems.

        + +

        Regardless of what software you use, please ensure that your outgoing stream +conforms to the following specifications:

        + +
          Bit rate:     192 Kbps
        +  Sample Rate:  44.1 KHz
        +  Channels:     2 (stereo)
        +  Format:       mp3
        + +

        liquidsoap

        + +

        It is possible to stream a collection of audio files using liquidsoap:

        + +
         liquidsoap 'output.icecast(%mp3, host="anonradio.net", port=8010,
        +user="YOURSDFUSERNAME", password="YOURICECASTPASSWORD",
        +mount="/YOURSDFUSERNAME", mksafe(playlist("/path/to/playlist.m3u")))'
        +
        + +

        playlist.m3u must then contain a list of these files. The +above command must be terminated at the end of the show; if not, it will loop, +resulting in weird behavior.

        + +

        Mixxx

        + +Mixxx is an open-source cross-platform +graphical DJ tool which can stream to Icecast servers, including aNONradio. It +is recommended if you are playing tracks from audio files stored on your +computer. + +

        butt

        + +

        "butt (broadcast using +this tool) is an easy to use, multi OS streaming tool. It supports SHOUTcast +and Icecast and runs on Linux, Mac OS X and Windows. The main purpose of butt +is to stream live audio data from your computers Mic or Line input to an +Shoutcast or Icecast server. Recording is also possible. It is NOT intended to +be a server by itself or automatically stream a set of audio files."

        + +

        Instructions on using butt to stream to aNONradio are +forthcoming.

        + +

        Nicecast

        + +

        There is an SDF +tutorial for setting-up Nicecast on Mac OS X with iTunes / Skype / whatever +else, all with voice-over capability.

        + +

        Ezstream

        + +

        To stream during your timeslot or during openmic, create a playlist of your desired songs:

        + +

        ls -d -1 /PATH/TO/YOUR/MUSIC/*.* >> playlist.m3u

        + +

        Copy the default ezstream config to your home directory:

        + +

        +

        +    mkdir ~/.ezstream
        +    cp /usr/share/doc/ezstream/examples/ezstream_mp3.xml ~/.ezstream/
        +  
        +

        + +

        Edit your newly copied config thusly:

        + +

        +

        +      <ezstream>
        +        <url>http://anonradio.net:8010/YOUR_DJ_MOUNT_NAME</url>
        +        <sourceuser>YOUR_DJ_USER_NAME</sourceuser>
        +        <sourcepassword>YOUR_DJ_PASSWORD</sourcepassword>
        +        <format>MP3</format>
        +        <filename>/PATH/TO/YOUR/playlist.m3u</filename>
        +        <svrinfobitrate>192</svrinfobitrate>
        +        <svrinfosamplerate>44100</svrinfosamplerate>
        +        <stream_once>1</stream_once>
        +      </ezstream>
        +  
        +

        + + +

        And start your stream with this command:

        + +

        ezstream -c ~/.ezstream/ezstream_mp3.xml

        + +

        If you are streaming a group of varying format files, you can homogenize them like this:

        + +

        +

        +     <ezstream>
        +       <url>http://anonradio.net:8010/YOUR_DJ_MOUNT_NAME</url>
        +       <sourceuser>openmic</YOUR_DJ_USER_NAME>
        +       <sourcepassword>YOUR_DJ_PASSWORD</sourcepassword>
        +       <format>MP3</format>
        +       <filename>/PATH/TO/YOUR/playlist.m3u</filename>
        +       <svrinfobitrate>192</svrinfobitrate>
        +       <svrinfosamplerate>44100</svrinfosamplerate>
        +       <stream_once>1</stream_once>
        +         <reencode>
        +         <enable>1</enable>
        +         <encdec>
        +         <format>MP3</format>
        +         <match>.mp3</match>
        +         <decode>/usr/pkg/bin/madplay -v -Q -i -b 16 -R 44100 -S -o raw:- @T@</decode>
        +         <encode>/usr/pkg/bin/lame --preset cbr 192 -r -s 44.1 --bitwidth 16 - -</encode>
        +         </encdec>
        +         </reencode>
        +     </ezstream>
        +
        +

        There are alsoinstructions for +streaming with ezstream on Debian using PulseAudio.

        + +

        Streaming Metadata Manually

        + +

        During your show you can login here:

        + +

        http://anonradio.net/playlist/

        + +

        Login with your anonradio.net streaming credentials. You will ONLY be able +to login during your show.

        + +

        This feature will be helpful to DJs who stream from analogue devices like +turntables, cassettes and such that don't send playlist MetaData.

        + +$Id: anonradio-dj.html,v 1.9 2020/06/15 06:14:02 smj Exp $ diff --git a/site-tutorials/anonradio-nicecast.html b/site-tutorials/anonradio-nicecast.html new file mode 100644 index 0000000..9cfb52b --- /dev/null +++ b/site-tutorials/anonradio-nicecast.html @@ -0,0 +1,85 @@ + +Setting up Nicecast on a Mac to work with Skype, iTunes, and whatever other app you want, all at once (plus voice-over!) + + + +

        Setting up Nicecast on a Mac to work with Skype, iTunes, and whatever other app you want, all at once (plus voice-over!)

        + +

        I. Set system input/output to something that won't feed back

        + +

        In my case I'm using a Logitech USB headset (mic plus earphones), so I go into my System Preferences' Sound section and choose that headset for both input and output.

        + +

        For Nicecasting purposes I find it's better to control your mic gain at the system level. On Mac OS X, you can click the mic icon at the right of the input volume slider to move the input (USB mic, in my case) sensitivity all the way up, and click the similar lefthand icon to move it all the way down.

        + + + +

        Keep this "System Preferences > Sound" window open. If you don't have a headset then you can probably use audio jack earphones and your computer's built-in microphone. Or, just a USB mic plus audio jack earphones. Etc. The idea is to prevent the computer's input from taking in the computer's output (feedback).

        + +

        II. Open Nicecast and set it up

        + +

        Nicecast has four windows:

        + + +

        1.The Broadcast window, which has several sub-areas, each activated by a button at the bottom of the window. The first button, "Source", is important -- you'll want to select "System Audio" from the drop-down menu there, and if it's your first time doing this then probably Nicecast will direct you to download an add-on program that enables system audio to be captured (it did this for me). The point of the "System Audio" option is that all outbound audio in your computer is fed into Nicecast and broadcasted, so, for example, you can use the audio from a few different applications at once. Other options on that dropdown are "Application", for specific and exclusive use of a program like Skype or iTunes, and then "Audio Device" for a some specific system-level audio input/output path (I have never used "Audio Device").

        + + + +

        If you're dealing with only one application such as Skype, then it would be good to check the "Include Audio Inputs" box under "Advanced", so Nicecast can hear you talking at all times and not just your conversation partner. However in this tutorial I'm primarily concerned with the "System Audio" dropdown option, which doesn't have any advanced options itself.

        + +

        2.The Server window, which is where you control how Nicecast connects on a network. It has a "Built-In Server" option that allows you to broadcast from your own IP address and enables others to connect to you and hear you without involving a third party such as SDF; I have never tried this. However, I use the built-in server to test my setup, because it behaves the same way as a connection to the SDF ANONRADIO server. So while you're fiddling around you can use the built-in server, and then when it comes time to present your show you can switch to ANONRADIO, with the round radio buttons in the server pop-out drawer, controlled by little right and left buttons toward the top of the Server window.

        + + + +

        The options in the server window should look something like those above, with your username instead of "mjt" and the password given to you for ANONRADIO instead of my blanked-out password. Of course if you don't have the ANONRADIO server in the Nicecast server drawer, you'll first want to create it by clicking "+".

        + +

        3. The effects window

        + + + +

        Along with the "Gain" box at the top left (move it all the way to the right, probably, to 238%) you'll just need one effect: VoiceOver; maybe you can play with some other effects but I don't find them necessary or desirable. To add VoiceOver, click the first, top-left space in the Effects window where it says "Click here to insert effect", and choose "VoiceOver" from the dropdown "4X Effect" submenu. You can try playing with the VoiceOver effect's additional gain controls if it seems like you need to (especially after you check your archived audio file...see below).

        + + + + + +

        Directly on the lower left of the VoiceOver plugin, there's a tiny nonstandard button that says "EDITOR". Click it, and a window pops up, with three subsections: 1. Audio Input -- leave this alone. 2. Crossfade -- put the slider in the middle. 3. Auto Ducking -- move the slider all the way to the right, to "Off" (otherwise, constantly trying to overcome the mic's threshold is tiresome for the voice -- it's easier just to control the mic at the computer system level). Also on this window is the "Start" button for the voiceover. Go ahead and start it now, if you like. Sometimes order of operations seems to matter in Nicecast broadcasting, and sometimes it does not; a good general order seems to be: system, then Nicecast, then audio programs. That said, sometimes stopping then restarting some program or service within a program is helpful (like the VoiceOver plugin, or even clicking on the system level mic input controls to "wake it up").

        + +

        4. The archiving window

        + + + +

        This controls parameters for producing an mp3 recording of your broadcasts. This is useful for checking your levels and just making sure everything works and sounds the way you want it to. Click the "Archive" button to turn archiving on, if it's not on already. In this window you can also control some things like bitrate, channels, type, and most importantly where the archive file is saved.

        + +

        III. Put on your headset

        + +

        IV. Start your audio-generating programs

        + +

        In this example, these are Skype and iTunes. Hopefully you heard the Skype startup sound through your headset. Play an mp3 in iTunes for a few seconds just to see that that sounds through the headset too.

        + +

        You should double check your Skype preferences and under "Audio/Video" and make sure your headset, or whatever you've decided to use, is selected for everything. Mac OS X has system level audio controls, and then programs have program level audio controls, and I've found it's best to pay attention to both even if it seems like you don't need to.

        + +

        V. Get ready to start broadcasting...

        + +

        Nicecast should start archiving immediately if you've set that option on the Archiving window -- I save the archive on my desktop. On the Broadcast window: "Source" should be system audio..."Info" should be filled in if you want anonradio.net:8000 to read correctly..."Titles" won't register unless your source is only an audio player like iTunes..."Quality" is whatever you want...ignore "Share"...and "Effects" is superfluous.

        + + + +

        Click "Start Broadcast" on the Nicecast Broadcast window! The archived mp3 should show up on your desktop. Play an mp3 in iTunes, and then check to see if you can hear it and if the level meter in the Nicecast Broadcast window is moving appropriately.

        + + + +

        Make sure your VoiceOver plugin is started. Make sure your mic input is turned up at the system level in your "System Preferences > Sound" window. You should hear the iTines mp3 and an echo-back of your own voice through your headset. Make sure the LeveL indicator in the Nicecast Broadcast window is active, depending on what audio is being fed to it.

        + +

        Now let's try Skype. While letting iTunes play on, go to Skype, call your "Skype call testing service" contact, and do what it says (leave a message). Probably you will hear iTunes automatically turn itself down while Skype is going -- I think this is a function of Skype, and it's possible this can be changed in preferences. Yep -- under Preferences > General, if you like, de-check "pause iTunes during calls".

        + +

        You can try playing with other apps like video games, a movie player, etc etc, and locally outputting the sound. Nicecast should capture it all and send it out, along with your voice-over!

        + +

        VI. At some point, stop broadcast

        + +

        You should have an archive of your broadcast in the form of an mp3 file waiting for you on your desktop or wherever you chose to save it. When you're ready to broadcast during your time slot on SDF ANONRADIO, then in the Nicecast server window, select "ANONRADIO" rather than "Built-In Server". If you want, you can turn archiving off before you broadcast remotely (especially as your show will be archived at anonradio.net/archive).

        + + + +

        +$Id: anonradio-nicecast.html,v 1.1 2015/08/06 14:40:28 smj Exp $ + diff --git a/site-tutorials/anonradio.html b/site-tutorials/anonradio.html new file mode 100644 index 0000000..5de4565 --- /dev/null +++ b/site-tutorials/anonradio.html @@ -0,0 +1,102 @@ + + +

        ((( o )))
        +    |
        +    |
        +    |
        +---===---
        +ANONRADIO

        +

        ANONRADIO (formerly SDF Radio) is a streaming "internet radio station".

        + +

        To see the program schedule, visit http://anonradio.net

        + +

        To Listen to ANONRADIO

        + +

        The easiest way to start listening is to visit http://anonradio.net/listen in your web browser, and launch the web player.

        + +

        Alternatively, you can use your favorite media player to open the live stream at http://anonradio.net:8000/anonradio

        + +

        Don't know how to do that? Fear not! Below are instructions for how to do that with some popular media players.

        + +

        On Windows

        + +

        VLC media player (http://videolan.org)

        +
          +
        1. File -> Open Network +
        2. enter: http://anonradio.net:8000/anonradio +
        + +

        To get around occasional drops in the stream which may occur when DJs/programs are changing, select Playback -> Repeat One.

        + +

        On MacOSX

        + + +

        On Linux or BSD

        + +

        VLC media player (http://videolan.org)

        +

        Using the GUI:

        +
          +
        1. Go to Media → Open Network Stream
        2. +
        3. Enter the address http://anonradio.net:8000/anonradio and press the Play button
        4. +
        +

        Using the ncurses interface ("nvlc"):

        +
          +
        1. Press P to show the playlist screen.
        2. +
        3. Press A to add an item to the playlist
        4. +
        5. Enter http://anonradio.net:8000/anonradio in the "Open:" field and press Enter
        6. +
        + +

        Or, if you start VLC from the command line, you can specify the stream to open:

        +
        $ vlc "http://anonradio.net:8000/anonradio"
        + +

        mplayer (https://www.mplayerhq.hu)

        +

        At your shell, type:

        +
        $ mplayer http://anonradio.net:8000/anonradio
        + +

        mpv (http://mpv.io)

        +

        This one's a little different — wait, no it's not. At your shell, type:

        +
        $ mpv "http://anonradio.net:8000/anonradio"
        + +

        ncmpcpp (http://rybczak.net/ncmpcpp/)

        +
          +
        1. In ncmpcpp, press 2 to access playlists
        2. +
        3. Press a to add a station.
        4. +
        5. Add http://anonradio.net:8000/anonradio and press enter.
        6. +
        + +

        SoX (http://sox.sourceforge.net)

        +

        At the shell:

        +
        $ play -t mp3 http://anonradio.net:8000/anonradio.m3u 
        + +

        note: the play command is part of the SoX program.

        + +

        To make it more useful for ANONRADIO use, it's helpful to put it into a shell script like so:

        + +
        #!/bin/sh -e
        +#  anonradio - streams SDF ANONradio via sox(1);
        +#  retries automatically if stream dropped
        +if [ -x $(which sox) ]; then
        +  trap 'printf "\n anonradio stream terminated... \n" && exit 0' 2
        +  clear
        +  while [ 1 ]
        +    do clear
        +    printf "\nSDF ANONradio - http://anonradio.net - ^C to cancel\n"
        +    sox -V0 -t mp3 http://anonradio.net:8000/anonradio.m3u -d
        +    sleep 5
        +  done
        +else
        +  echo 'sox(1) not found or not executable - exiting...'
        +  exit 1
        +fi
        +exit 0
        + +

        The above script will automatically reconnect to the anonradio stream if it gets dropped due to +a DJ change or network abberation. Stream is terminated using the CNTL+C keys. See + the sox(1) manpage for the full list of options.

        + +$Id: anonradio.html,v 1.17 2019/01/15 05:34:50 jgw Exp $ diff --git a/site-tutorials/ascii-gaming.html b/site-tutorials/ascii-gaming.html new file mode 100755 index 0000000..719980d --- /dev/null +++ b/site-tutorials/ascii-gaming.html @@ -0,0 +1,184 @@ +

        ASCII Gaming on SDF...

        +

        Who says you need to shell out $500US for a video card to play a decent game?

        +

        Contents

        +
          +
        1. Introduction
        2. +
        3. General Tips
        4. +
        5. Games by Category
        6. + +
        7. Dopewars, Mazewars, and Netris
        8. +
        9. Credits
        10. +
        + +
        + +

        Introduction

        +

        Long before today's multi-million color pallets and 3d rendering engines there was one color and a TTY. +

        +

        +That is not to say, however, that text games are "old" or "outdated" or that games that were created decades ago cannot still be fun. Not only are some of the older ASCII games still incredibly playable and enjoyable today but there are many ASCII games still in active development with new ones being created all the time. +

        +

        +SDF has a good selection of text based games for your enjoyment with many genres from which to choose. Within those categories you'll also find a diverse selection of games. Maybe you are looking for a quick hit of space invaders while your code compiles. Perhaps you'd like to start a game of nethack which could take you many session over many months to complete. If you'd like to sit and play a game of tetris by yourself SDF can accommodate you but if you'd rather interact with other SDFers in a game of mazewar or netris those options are also available. No matter what your preferences are, no matter what your current mood is, odds are good that SDF will have something for you. +

        +

        General Tips

        +

        All games are started by typing the game's name at the command line on the appropriate system. You may be able to get information on command line options and game play by typing man gamename on SDF or help gamename on twenex.org(TOPS-20). +

        +

        +Please keep in mind that many of these games utilize the "vi" keys for directional movement. +

        +       k (up)
        +h (left)   l (right)
        +      j (down)
        +
        +Also, most games contain some sort of in game help. To get the most out of your ASCII gaming experience, it is advised that you consult this during your first time playing a particular game. This is especially useful for text adventure and RPG/Dungeon games as the author has frequently written a back-story which is typically both entertaining and useful during game play. +

        +

        +Did you play a game on SDF and loved it? Hated it? Then use the "game-review" command at the SDF shell to submit a review for ascii-games.org. Your reviews will help others find a game that suits their gaming tastes. +

        + +

        Games by Category

        +

        Here is a rough categorization of the games available on SDF and SDF's TOPS-20 system. A complete list of games on SDF can always be found by typing "games" at the shell prompt. TOPS-20 games can be listed by typing "help games" on twenex.org. Please visit ascii-games.org for user submitted reviews of these games. +

        + + + +

        Dopewars, Mazewars, and Netris

        +

        +A special note for Dopewars, Mazewars, and Netris: +

        + +

        +These games are fairly popular. They represent a good way to have fun and interact with fellow SDFers. Though they can be started from the command line, the best way to start a multiplayer game of dopewars, mazewars, or netris is to hop into SDF's COMMODE by typing com at the shell. You can then find other's to play with and launch those games directly from com. +

        + +

        Credits

        +

        +Much information contained herein was gleaned from "games", "help games"(TOPS-20), and ascii-games.org. Much thanks to the maintainer(s) of those resources. +

        + +$Id: ascii-gaming.html,v 1.10 2012/05/28 23:20:43 credmon Exp $ diff --git a/site-tutorials/att605.html b/site-tutorials/att605.html new file mode 100644 index 0000000..eaf1808 --- /dev/null +++ b/site-tutorials/att605.html @@ -0,0 +1,47 @@ +
        +

        +The SDF Travelling AT&T 605 UNIX Terminal +

        +

        What is it?

        +This is a former terminal used on the AT&T 3B2/500 (retired 1998). It has been modified to work +as a stand alone computer using a Raspberry Pi Zero W. Just give it a WIFI/hotspot and coordinate +with SDF to use it at a vintage computer festival and help spread awareness of SDF's past as well +as what we're doing today. +

        How do I get it?

        +The terminal can be borrowed for up to 2 weeks. It is shipped in a double box with signage, an +ipod/headphones (for the NPR story) and an assortment of SDF stickers and CDs to give away. To +reserve the terminal for use at your event, contact 'membership' and provide full details. Please be +sure to give enough lead time, preferrably 2 weeks prior to your event. +

        I wanna use it! Where will the SDF Travelling AT&T 605 UNIX Terminal be next?

        +
      10. Mar 23-24, 2019 - Seattle, WA - Vintage Computer Festival Pacific Northwest COMPLETED +
      11. May 3-5, 2019 - Wall, NJ - Vintage Computer Festival East COMPLETED +
      12. Jul 10, 2019 - Seattle, NJ - USENIX UNIX50th @ Living Computers COMPLETED +
      13. Aug 3-4, 2019 - Mountainview, CA - Vintage Computer Festival West COMPLETED +
      14. Sep 14-15, 2019 - Elmhurst, Il - Vintage Computer Festival Midwest COMPLETED +
      15. Nov 6, 2019 - Manhattan, NY - Suspenders NYC - Install Fest COMPLETED +
      16. Dec 4, 2019 - Brooklyn, NY - NYC*BUG Holiday Party at Boat Bar COMPLETED +
      17. Mar 19-22, 2020 - Tokyo, Japan - AsiaBSDcon - Tokyo UniversityCANCELLED +

        Technical Information

        +Configuration / New setup:
        +Login as the user 'pi' with the randomly generated password and run 'sudo raspi-config'. This will +allow you to setup the network once you're on site. Enter your SSID and passphrase through this dialog

        +Usage:
        +While featuring raspian isn't really the point, you could use the terminal to feature local programs. +If you login as user 'menu' password 'menu' and you have a network, you'll be connected to the Living +Computer Museum's TTY service which will then allow you to connect to several vintage machines. Logging +in as 'sdf' will take you to the old AT&T 3B2/500 when it is running in Seattle, WA (can be arranged).

        +It also features sdfer Seth Morabito's AT&T 3B2/400 emulator which is a bit of a surreal experience - just login +as '3b2' to spin up a virtual historical SDF.

        + +The terminal does not have a battery installed (due to leakage) so when you turn it on, it will default +to 1200 7E1 with function key labels on. You'll want to set it to 9600 8N1 with labels off.

        +

        +

        +The SDF Travelling AT&T 605 UNIX Terminal Setup Screen +

        +

        Weight and Dimensions of the shipping box

        +
      18. 40 lbs +
      19. 20 x 20 x 24 in +
      20. Terminal goes into the inner box. There is a piece of foam to craddle the back +
      21. The keyboard can be wrapped up outside the box +$Id: att605.html,v 1.9 2020/02/26 15:32:52 smj Exp $ diff --git a/site-tutorials/basic-language.html b/site-tutorials/basic-language.html new file mode 100644 index 0000000..ad7ff01 --- /dev/null +++ b/site-tutorials/basic-language.html @@ -0,0 +1,205 @@ +

        BASIC

        +

        The basics of BASIC

        + +

        + BASIC, which stands + for Beginners All-Purpose Symbolic Instruction Code + is a programming language which was created at Dartmouth University + by John Kemeny and Thomas Kurtz in the early 1960's. BASIC's + authors intended to create a programming language and environment + which would be useful to people who's primary interest was something + other than computer programming. It was intended to be used by + average users, scientists, and programming students alike. BASIC + was instantly popular among the students and faculty of Dartmouth, + and it saw rapid adoption on other systems. When the microcomputer + revolution started to take hold in the 1970's and 1980's, BASIC was + the default user environment of choice. As a result, many of + today's programmers cut their teeth on BASIC. This tutorial will + help you get started with this wonderful little language. BASIC + remains a very easy to learn language, and it is great for writing + small programs. Best of all, a lot of the concepts in BASIC + transfer to other languages, so this can serve as a great jumping + off point for your programming career! +

        + +

        + One of the difficulties in learning BASIC lies in the wide array of + BASIC compilers and interpreters that are currently in circulation. + Each one of these programs comes with their own nuances and + extensions to the BASIC programming language. The good news is that + there is a lot of commonality between the various versions of BASIC, + and once you've gained familiarity with one you can move to another + pretty quickly. Best of all, there is a common thread which runs + through all the various BASICs, and that is where we will begin. + We'll start with a minimal subset of the language, one which will + get you up and running with all the interpreters available on SDF. +

        + +

        + Let's start with a simple working example. A classic one which + children the world over have typed into computers since the dawn of + the 80's! +

        +
        +    10 PRINT "HELLO"
        +    20 GOTO 10
        +  
        + +

        + If this is run through a BASIC interpreter, it will have the + following output: +

        + +
        +    HELLO
        +    HELLO
        +    HELLO
        +    HELLO
        +    ....  and so on off into infinity
        +  
        + +

        + In fact, why don't we try this out in one of our several BASIC + interpreters! Go ahead and fire up bwbasic. To do this, just type + "bwbasic" at the sdf prompt. Type in the program listed above, and + then type RUN and press enter. Once you've been greeted enough + times, press Ctrl-C to halt the program. The hole session should + look like this: +

        +
        +########  ##    ## ##      ##    ###    ######## ######## ########            
        +##     ##  ##  ##  ##  ##  ##   ## ##      ##    ##       ##     ##           
        +##     ##   ####   ##  ##  ##  ##   ##     ##    ##       ##     ##           
        +########     ##    ##  ##  ## ##     ##    ##    ######   ########            
        +##     ##    ##    ##  ##  ## #########    ##    ##       ##   ##             
        +##     ##    ##    ##  ##  ## ##     ##    ##    ##       ##    ##            
        +########     ##     ###  ###  ##     ##    ##    ######## ##     ##           
        +                                                                              
        +                                                                              
        +                                    ########     ###     ######  ####  ###### 
        +                                    ##     ##   ## ##   ##    ##  ##  ##    ##
        +                                    ##     ##  ##   ##  ##        ##  ##      
        +                                    ########  ##     ##  ######   ##  ##      
        +                                    ##     ## #########       ##  ##  ##      
        +                                    ##     ## ##     ## ##    ##  ##  ##    ##
        +                                    ########  ##     ##  ######  ####  ###### 
        +                                                                              
        +Bywater BASIC Interpreter, version 3.00
        +Copyright (c) 1993, Ted A. Campbell
        +Copyright (c) 1995-1997, Jon B. Volkoff
        +Copyright (c) 2014-2015, Howard Wulf, AF5NE
        + 
        +bwBASIC: 10 PRINT "HELLO"
        +bwBASIC: 20 GOTO 10
        +bwBASIC: RUN
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +HELLO
        +Program interrupted at line 10
        +bwBASIC:  
        +
        + +

        To exit bwbasic, just type "quit" and press enter.

        + +

        Structure of BASIC Lines of Code

        +

        + Ok, so let's unpack what we just did a little bit. The basic layout + of a BASIC statement works like this: +

        LINE_NUMBER  COMMAND  PARAMETERS
        + Each of these parts serves a specific purpose. +
          +
        • LINE_NUMBER - Present in most BASICS. This serves as a label + for the line so you can refer to it later, and in some BASICs it + also serves as a method of editing lines. (more on this later!) +
        • COMMAND - This is what you want your program to do. There are + lots of these, we'll discuss them in detail later. +
        • PARAMETERS - Most commands require some additional + information. That's what this one is about. +
        +

        +

        + So now with that in mind, let's take a look at our happy little + program! The first line

        10 PRINT "HELLO"
        is line number + 10. The command that we are using is "PRINT", and the parameter is + "HELLO". PRINT puts information on the screen, and "HELLO" is that + something we are putting on the screen. Pretty simple, right? +

        +

        + Now, what about the next line?

        20 GOTO 10
        GOTO is a + command which tells them computer what line to execute next. + Normally, the computer will just step through the lines of the + program in order, but when it hits a GOTO, that's your chance to + send it somewhere else. Here, we are sending it back to line 10. + This causes it to print out "HELLO" again, then it hits line 20 + again, and then it goes back to 10. This will go on and on forever, + or until someone stops the program. Computers are very patient, so + you can run this to your heart's content! +

        + +

        The BASIC Line Editor

        +

        + Before we go any further with the language, we should explore what's + going on with those line numbers. The answer lies in BASIC's + origins. Originally, BASIC was run on a GE-235 running Dartmouth's + Time Sharing System. The primary mode of interface was a teletype + printer (this was the 1960's after all!) so everything was + constantly being typed out to paper. This meant that modern + text editing just wasn't available to BASIC programmers. To combat + this, Kurtz and Kemeny implemented a line based editing scheme. The + line numbers were the key to this. +

        + +

        + First and foremost, these line numbers provide a guide for + sequencing the program. The computer sorts them into increasing + order. They need not be consecutive, and traditionally BASIC + programmers would count by 10's or by 100's. The reason for this is + that you could go back and insert new lines of code in between lines + of code. Imagine, for instance, that you had entered our little + program, but then decided you wanted a second line of output that + said "GOODBYE". You could type the whole thing over again, or you + could just type the following: +

        +    15 PRINT "GOODBYE"
        +  
        + Now, we can take a look at what the computer thinks the program is + by using the LIST command: +
        +    LIST
        +    10 PRINT "HELLO"
        +    15 PRINT "GOODBYE"
        +    20 GOTO 10
        +  
        + + You can also use the line number to change the lines: +
        +    15 PRINT ":-D"
        +  
        + Or you can delete lines all together +
        +    15
        +  
        + So in short, these line numbers are both your labels in your + program, and they are also a means to edit your program. Of course, + I should mention that not all BASIC interpreters support this sort + of direct editing. In those cases, you'll want to edit your program + in a standard text editor (like ed!) [ok, or vi or emacs]. But for + that old-school feel, you'll want to use line number editing. +

        +

        Available BASIC Interpreters at SDF

        +
      22. bwbasic +
      23. yabasic +
      24. brandy +
      25. .. +

        +This is exactly how to use BASIC at SDF with a plethora of fun and interesting programming examples just for you! +

        +$Id: basic-language.html,v 1.4 2016/08/11 02:11:08 pngwen Exp $ diff --git a/site-tutorials/basic_programs.html b/site-tutorials/basic_programs.html new file mode 100644 index 0000000..8baac80 --- /dev/null +++ b/site-tutorials/basic_programs.html @@ -0,0 +1,224 @@ + + + + + +

        Basic Programs

        +

        A collection of basic programs for running on new and old hardware. Feel free to add your own programs and platforms.

        + + + + +

        TOPS-20 Programs

        + + +

        The following programs run on TOPS-20 Basic (BASIC-10)

        + + +

        Multi

        +

        This is a simple multiplication table, altering line 5's data statement lets you change the length of the table. Give it a try, and put some crazy numbers in to see how it goes!

        +
        +  
        +    00001 REM Multi by epl692
        +    00002 REM Change line 5 to alter the length of the table, try 24, or even 240.
        +    00005 DATA 12
        +    00100 READ T
        +    00110 A$ = "#### "
        +    00120 FOR X=1 TO T
        +    00130 FOR Y=1 TO 12
        +    00140 PRINT USING A$,X*Y;
        +    00150 IF Y=12 THEN  00160 ELSE 00170
        +    00160 PRINT ""
        +    00170 REM NOTHING HERE
        +    00180 NEXT Y
        +    00190 NEXT X
        +    00200 END
        +  
        +  
        +

        Here is a example of the output from a run

        + + MULTI.B20 + Sunday, October 16, 2016 08:58:02 + + 1 2 3 4 5 6 7 8 9 10 11 12 + 2 4 6 8 10 12 14 16 18 20 22 24 + 3 6 9 12 15 18 21 24 27 30 33 36 + 4 8 12 16 20 24 28 32 36 40 44 48 + 5 10 15 20 25 30 35 40 45 50 55 60 + 6 12 18 24 30 36 42 48 54 60 66 72 + 7 14 21 28 35 42 49 56 63 70 77 84 + 8 16 24 32 40 48 56 64 72 80 88 96 + 9 18 27 36 45 54 63 72 81 90 99 108 + 10 20 30 40 50 60 70 80 90 100 110 120 + 11 22 33 44 55 66 77 88 99 110 121 132 + 12 24 36 48 60 72 84 96 108 120 132 144 + + + Compile time: 0.005 secs + Run time: 0.026 secs Elapsed time: 0:00:00 + +
        + +

        CDC6500 Programs

        + +

        The following programs run on CDC6500 Basic

        + +

        Multi

        +

        This is a simple multiplication table, altering line 5's data statement lets you change the length of the table. Give it a try, and put some crazy numbers in to see how it goes!

        +
        +  
        +    1 REM Multi by epl692
        +    2 REM Change line 5 to alter the length of the table, try 24, or even 240.
        +    5 DATA 12
        +    100 READ T
        +    110 A$ = "#### "
        +    120 FOR X=1 TO T
        +    130 FOR Y=1 TO 12
        +    140 PRINT USING A$,X*Y;
        +    150 IF Y=12 THEN  160 ELSE 170
        +    160 PRINT ""
        +    170 REM NOTHING HERE
        +    180 NEXT Y
        +    190 NEXT X
        +    200 END
        +  
        +  
        +

        Here is a example of the output from a run

        + + 17/01/06. 16.25.32. +PROGRAM MULTI + + 1 2 3 4 5 6 7 8 9 10 11 12 + 2 4 6 8 10 12 14 16 18 20 22 24 + 3 6 9 12 15 18 21 24 27 30 33 36 + 4 8 12 16 20 24 28 32 36 40 44 48 + 5 10 15 20 25 30 35 40 45 50 55 60 + 6 12 18 24 30 36 42 48 54 60 66 72 + 7 14 21 28 35 42 49 56 63 70 77 84 + 8 16 24 32 40 48 56 64 72 80 88 96 + 9 18 27 36 45 54 63 72 81 90 99 108 + 10 20 30 40 50 60 70 80 90 100 110 120 + 11 22 33 44 55 66 77 88 99 110 121 132 + 12 24 36 48 60 72 84 96 108 120 132 144 + +SRU 0.366 UNTS. + +RUN COMPLETE. + +
        + +

        Jefferson Disk Cipher

        +

        Some Simple Encryption by tfurrows

        +
        +
        +001 REM Jefferson Disk Cipher, tfurrows@sdf.org
        +100 REM Setup the disks
        +101
        +104 DIM A$(16)
        +105 A$(1)="PDN HCAUBKQXEOZVRMGYJSFTWIL"
        +106 A$(2)="ECSGFONUHMR YXDZPTLQAJBWVKI"
        +107 A$(3)="TYFPZJS UNBWLXQREACDIOHMVKG"
        +108 A$(4)="XHTNOZSFUJKREDQAC MGPBLYWIV"
        +109 A$(5)="CPOMQZA TRFBGIWDLVHESJUKNXY"
        +110 A$(6)="SXCOFRKJZVEG BAPWDNIHLQMUTY"
        +111 A$(7)="H CLKIOZFSUPGREDBNVTYMAJWQX"
        +112 A$(8)="NTAJULBWZYCPDSR HVMIFGKOXEQ"
        +113 A$(9)="MHWNPZVLXCYJRKUSOEFADI TBGQ"
        +114 A$(10)="UVEZHPSDNAYLJQTXWFBG CKIROM"
        +115 A$(11)="ICNTHWZE LRMSQFGDAKXYJBOVUP"
        +116 A$(12)="SEMB QTFLPIOZCUKYVRDWXJHGNA"
        +117 A$(13)="RFTJWUZV HIYQOSLCMEXGDKPNAB"
        +118 A$(14)="EM FNZPGUQROYVXCBAHTISWDLKJ"
        +119 A$(15)="QPSGZDLNCIOUJK EXRAYHWFMTVB"
        +120 A$(16)="GSFYRQBDI ALKXPVUTZJONEWCHM"
        +121
        +150 PRINT "Enter message to encode/decode"
        +151 INPUT M$
        +152
        +200 REM Loop through message and set the jefferson disks
        +205
        +210 FOR I = 1 to LEN(M$)
        +215 C=C+1
        +220 IF C>16 THEN C=1
        +225 L = POS(A$(C),SUBSTR(M$,I,1),1)
        +230 IF L < LEN(A$(C)) THEN PRINT SUBSTR(A$(C),L+1,LEN(A$(C))-L);
        +235 IF L > 1 THEN PRINT SUBSTR(A$(C),1,L) ELSE PRINT SUBSTR(A$(C),1,1)
        +240 NEXT i
        +
        +  
        +

        Here is a example of the output from a run

        + + 17/01/06. 16.50.11. +PROGRAM JDC + +ENTER MESSAGE TO ENCODE/DECODE +? THE CAKE IS A LIE +WILPDN HCAUBKQXEOZVRMGYJSFT +MR YXDZPTLQAJBWVKIECSGFONUH +ACDIOHMVKGTYFPZJS UNBWLXQRE +MGPBLYWIVXHTNOZSFUJKREDQAC +POMQZA TRFBGIWDLVHESJUKNXYC +PWDNIHLQMUTYSXCOFRKJZVEG BA +IOZFSUPGREDBNVTYMAJWQXH CLK +QNTAJULBWZYCPDSR HVMIFGKOXE +TBGQMHWNPZVLXCYJRKUSOEFADI +ROMUVEZHPSDNAYLJQTXWFBG CKI +QFGDAKXYJBOVUPICNTHWZE LRMS +QTFLPIOZCUKYVRDWXJHGNASEMB +BRFTJWUZV HIYQOSLCMEXGDKPNA +FNZPGUQROYVXCBAHTISWDLKJEM +NCIOUJK EXRAYHWFMTVBQPSGZDL + ALKXPVUTZJONEWCHMGSFYRQBDI +OZVRMGYJSFTWILPDN HCAUBKQXE + +SRU 0.308 UNTS. + +RUN COMPLETE. + + Try running the program with FURCYBLXIKMBNMDDX. + +
        + + +$Id: basic_programs.html,v 1.5 2017/01/07 01:00:12 epl692 Exp $ diff --git a/site-tutorials/bboard-tutorial.html b/site-tutorials/bboard-tutorial.html new file mode 100644 index 0000000..a013aa6 --- /dev/null +++ b/site-tutorials/bboard-tutorial.html @@ -0,0 +1,329 @@ + + + +bboard + + + +

        bboard

        +

        +The bboard is a threaded multi discussion bulletin board. It goes back when the original SDF was just a BBS. You may think of it as a corkboard at a community center where members post notes with thumb tacks. It is, along with commode, one of the best ways to get help and news from SDF-EU. Voting of new features and changes on SDF-EU policies also take place at the bboard (ARPA membership or above required) +

        + + + +

        Some relevant bboards

        + +
          +
        • To ask for help, use <HELPDESK> +to have your query answered by another user +
        • +
        • All system notices are posted on <ANNOUNCE> +
        • +
        • Current discussions about SDF-EU happen on <SDFEU> +
        • +
        • You can make requests for new software and discuss account +issues at <REQUESTS> +
        • +
        • <ARPA> and <META> boards are used for ARPA and MetaARPA related questions. +
        • +
        • Member services (such as VPN or VOIP) have their own board for questions and support. +
        • +
        + + + +

        Getting around

        + + + + +

        Listing boards

        + + +

        +Type bboard on your shell. You will be presented with a list of current bboards (Boards Listing), sorted by most recent activity. +

        +
        S D F - 1  Bulletin Board
        +================================================================================
        +[BBOARD]    [POSTS] [TOPIC]
        +================================================================================
        +SDFEU        [0066] SDF-EU User discussions
        +META         [0022] No Description
        +HELPDESK     [0690] Users Helping Users
        +NETWORKING   [0008] No Description
        +ARPA         [0148] ARPA members helping ARPA members
        +REQUESTS     [0534] Software Updates and Installs for SDF and SDF-EU
        +
        +[ SCROLL (F)ORWARD, (B)ACKWARD - (G)OTO or (Q)UIT ]
        + +

        +To navigate the boards listings, use F (Forward) and B (Backward) keys to go up and down. When you reach the end of the list (or you press Q), you will enter in Command Mode, and a prompt will be presented to you. Every time you run bboard you are placed in the <GENERAL> board by default, hence the prompt <GENERAL> Command: . +

        + + + +

        Browsing messages

        + + +

        +Say you want to review the <SDFEU> bboard for news about SDF-EU. On the Command Mode, type G (GOTO) followed of the name of the bboard (in this case G → SDFEU) You will enter in Posts Listing, with all entries at the <SDFEU> bboard sorted by activity (most recent first) +

        +
        ================================================================================
        +[ID]     [DATE]          [AUTHOR]  [REP]  [SUBJECT]
        +================================================================================
        +[1]   03-May-12            [john]    [0]  New feature: SDF-EU intertubes
        +--------------------------------------------------------------------------------
        +[2]   02-May-12            [jane]    [0]  SSH Port Forwarding question
        +      02-May-12             [jim]    [1]
        +      02-May-12           [james]    [2]
        +--------------------------------------------------------------------------------
        +[3]   02-May-12            [jess]    [0]  Meetup at EuroBSDcon
        +      02-May-12          [joshua]    [1]
        +      02-May-12            [jack]    [2]
        +
        +[ SCROLL (F)ORWARD, (B)ACKWARD - (T)YPE, (R)EPLY or (Q)UIT ]
        + +

        +Like in the Boards Listing, you can navigate the Posts Listing with keys F and B. Pressing Q will return you to Command Mode. +

        + + + +

        Read a message

        + + +

        +Post #3 “Meetup at EuroBSCcon” caught your attention. To read it, press T (TYPE), followed by the post number (in this case T → 3) This will put you on Reading Mode at the first message from the thread. You could also start reading the thread from a specific message; simply enter T → 3.2 if you want to start reading the thread #3 from the second reply. +

        +
        TACKER:  jess (Jessica G. Doe)
        +SUBJECT: Meetup at EuroBSDcon
        +DATE:    02-May-12 21:44:05
        +HOST:    odin
        +
        +Anybody wanting to organize a meetup @EuroBSDcon?
        +
        +<SDF.3.0>(3)[ <ENTER> to follow thread, (R)EPLY or (Q)UIT ] 
        + + + +

        Post a message/reply

        + + +

        +To post a new thread on the bboard you are currently in, press P (POST) and enter a subject. To publicly reply to a post, press R (REPLY) If you are in Reading Mode, you will reply to the thread you are currently in. If you are in Posts Listing, you will be asked for the post number you want to reply. Either way you will end up in the pico editor . Write down your reply and press CTRL-x to finish you post. +

        + + + + + + + + + + + + + +
        New Post
        <SDFEU.1> Command: POST
        +
        +Subject: Timezone?
        +
        +You have written:
        +-----------------------------------------------------------
        +In which timezone(s) SDF-EU servers are?
        +
        +This BULLETIN contains 40 characters in 6 words of 2 lines.
        +-----------------------------------------------------------
        +POST your BULLETIN? (y/n)
        +% Rebuilding symbol table for BBOARD:<SDFEU>  [QUEUED]
        +Would you like to add a READERS POLL? (y/n)
        +
        Reply
        <SDFEU.1> Command: REPLY (A NUMBER) 3
        +
        +REPLY to "Meetup at EuroBSDcon" ? (y/n)
        +
        +You have replied:
        +-----------------------------------------------------------
        +I would love to!
        +
        +This BULLETIN contains 16 characters in 4 words of 2 lines.
        +-----------------------------------------------------------
        +POST your REPLY? (y/n)
        +
        + + + +

        ...and much more

        + + +

        +Now that you are confortable with the bboard, try exploring additional features: +

        +
          +
        • Post (P), reply (R) and depost (D) a message (use the <TEST> board for that) +
        • +
        • Review current voting polls (V) or propose your own. +
        • +
        • Explore the archives (A) and acquire ancient wisdom. +
        • +
        • See how many people are reading the bboard (W) and get amazed by their idle times. +
        • +
        • Read the the intro (?) and the list of commands (H). +
        • +
        • Check the man page (type man bboard at your shell) for a complete reference of settings at startup. +
        • +
        + + + +

        Command Reference

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        (?) What is the BBOARD?
        (L)IST List bulletin summaries
        (G)OTO View another BBOARD (“GOTO” lists boards)
        (T)YPE Displays the selected bulletin
        (S)EARCH SEARCH the entire BBOARD on a KEYWORD
        (N)EW SCAN SCAN the current BBOARD for NEW messages
        (n)EW SCAN SCAN all BBOARDs for NEW messages
        (V)IEW POLLS SCAN the entire BBOARD for READER POLLS
        (F)ORWARD View the next thread within the current BBOARD
        (B)ACKWARD View the previous thread within the current BBOARD
        (P)OST POST a new bulletin (bulletins live 30 days)
        (D)EPOST DEPOST a bulletin you have posted
        (R)EPLY Respond to a bulletin
        (M)KBOARD Create a new BBOARD
        (K)ILL Toggle a BBOARD to and from your KILL list
        (A)RCHIVE Enter/Exit the BBOARD archives
        (C)OLORS Enable/disable colors
        (W)HO Who is reading the bboard
        (I)GNORE Manage your user ignore list
        (Q)UIT QUIT the BBOARD
        +
        + + +If you want to change your default editor, check the bboard man page via the man bboard command at the shell prompt. +

        + +

        Customizing bboard(1)

        +

        Many SDF users find the lack of word-wrap and spell-checking when +posting in bboard(1) frustrating. If a Vi editor is acceptable, some +rudimentary auto-wrapping and spell-checking can be accomplished in +bboard(1) with the following configuration files in your HOME +(~$USER/) directory:

        + +
        
        +# ~$USER/.exrc
        +" set auto-wrap width:"
        +set textwidth=78
        +" set RH margin guide:"
        +set guidewidth=79
        +" set elvis spellcheck stuff:"
        +set spell
        +set spelldict=/usr/share/dict/words
        +set spellautoload
        +
        +# ~$USER/.bboardrc
        +# set editor to vi (will use elvis(1) editor):
        +EDITOR=vi
        +
        + +

        Once these files are in place your bboard(1) post editing environment +will be elvis(1) based (a Vi editor clone; see man elvis) and should +display a highlighted right-hand margin guide at 79 characters over, with +text wrapping at 78 characters over. Note that these ~/.exrc +settings may adversely affect other Vi-style editors like nvi(1) or +vim(1).

        + +

        Running Spell-check on a bboard(1) Post:

        +

        Words deemed misspelled by the elvis(1) editor should appear in a +different color. To spell-check the entire post, first move to position +1,1 with '1G' (or use the arrow keys, or 'h,j,k,l' keys +to navigate) then use 'gs' to move to the first misspelled word. +If spelling suggestions are available they'll appear numbered at the bottom +of editing screen; to select, use '#gs', where "#" is suggested +word number. If no spelling suggestions are available, look the word up +elsewhere, use 'cw'+[corrected word]+ESC to correct, then +'gs' to move to next misspelled word.

        + +

        When finished editing your bboard(1) post use 'ZZ' to quit. If +you wish to cancel your post use ':q!' to quit without saving.

        + +

        Learning to use Vi-style Editors:

        +

        If you've never used a Vi-style editor you may wish to run the vilearn(1) +command within your SDF shell session to get some practice. The Vi editor +is *modal* - entering a Vi command such as 'i' puts the editor in 'input' +mode; pressing the Esc key puts the editor it back in 'command' mode. +Within Vi, typing ':viusage' should display a summary of most Vi commands.

        + +

        A free WikiBooks resource: +Learning the Vi Editor

        + +

        If you decide to practice with elvis(1), the ':help' command +should provide an info(1)-like documentation environment (use +':q' to close it). Keep in mind that this :help documentation +is not available within bboard(1) as elvis(1) is run in a restricted +command mode. More extensive elvis(1) documentation is on the main SDF +hosts at /usr/pkg/share/doc/elvis/elvis.html .

        + +

        If you would rather use a pico-like editor with a bit more power:

        +

        If you want to use an editor with in-program help and simple interface like the default pico, but slightly more powerful +than the default bboard editor, you may wish to instead set your editor to nano, which is the default editor +integrated into the Alpine mail program. It's the same as pico, but has additional commands, like regex searching. + +

        To do this, instead of setting up your .bboardrc as above, set it as follows (you can do this with nano ~/.bboardrc!): +

        +

        
        +# ~$USER/.bboardrc
        +# set editor to nano:
        +EDITOR=nano
        +
        + + + +$Id: bboard-tutorial.html,v 1.12 2016/12/09 20:09:00 peteyboy Exp $ + + diff --git a/site-tutorials/building_a_website.html b/site-tutorials/building_a_website.html new file mode 100644 index 0000000..47babc6 --- /dev/null +++ b/site-tutorials/building_a_website.html @@ -0,0 +1,115 @@ + + Building a website on SDF + + + +

        Building a website on SDF

        +
        + +

        Contents

        + +
        + +

        Introduction

        +

        Creating your own websites can be fun and SDF gives webspace to all its +validated users, so the moment you become validated you can begin creating +your own websites straight away.

        + +

        In this tutorial when text looks like this this means it's a +command you can run in your shell, once you've logged into SDF.

        + +

        Getting Started

        +
          +
        • mkhomepg - This command needs to be executed before you can + start building your web pages. + +

          When you execute this program, it will create a directory in which you + can put all your web files. This directory is sym-linked into your home + directory, under the name 'html'. (A sym-link is sort of like a shortcut in + Microsoft Windows.)

          + +

          You will be prompted to select a URL for your website. This URL is + what other internet users type into their web browser to view your web + pages. If you're not an ARPA member then you may only use url's in the form + of '<your login>.freeshell.org'. For instance, my web + pages are stored at 'alterego.freeshell.org'. If you're an ARPA + member, there are many different domains you may use.

          +
        • +
        + +

        Your First Page!

        +

        Creating your first page is SO easy! First you'll need to open +a text editor. SDF has many text editors installed but new users to UNIX often find +that nano is the easiest to work with.

        +
          +
        • nano ~/html/index.html - This command starts the nano text + editor, creating a new file, called 'index.html' in your html + directory.
        • + +

          Once you've executed the command above. You'll notice that the terminal + layout has changed. If you press keys on your keyboard you'll notice they + appear in the "text buffer". Write out the text below into this program.

          + +
          +<html><head>
          +  <title>My First Page!</title>
          +
          +</head><body>
          +  <h1>My First Page!</h1>
          +
          +  <p>This is my first html web page!</p>
          +
          +</body></html>
          +
          + +

          Now that you have copied the text out into 'nano', you need to save the + file. To do this, hold down the 'CTRL' key on your keyboard and whilst + pressing that, press the letter 'o'.

          + +

          Right, now, do you remember that URL you selected when you ran + 'mkhomepg'? Open a web browser and type that into the address + bar. Hopefully, after a few seconds. You should see your very own web + page!

          +
        + +

        Problems

        +

        The most important thing you need to have is patience. Sometimes updates when running mkhomepg may take a few hours to complete, sometimes they will occur almost immediately. By using the higher functions of your brain and patience you will solve a lot of the problems you may meet!

        + +

        In case a page is not found on your site, the client may be forwarded to a +page of sdf.org or redmartian, which can be confusing (but which is +in fact completely reasonable, as all the domains belong to one entity). If +you want to prevent this also for broken links, you have to set up error +handler documents. Please consult the faq:WEB:7 item for this!

        + +

        Diagnose

        + +

        If your site is hosted on sdf.org (you are an ARPA member) then you +can grep inside the httpd log file in /var/log. For +example:

        + +
        +$ grep abc123.sdf.org /var/log/httpd/*.log
        +
        + +

        If your site is hosted on ma.sdf.org (you are a MetaARPA member) +then your can look inside the log file for your web site in +/meta/log. For example:

        + +
        +$ less /meta/log/abc123.sdf.org
        +
        + +

        For aditional help, check the information in the FAQ page "What About the Access Logs, +Statistics, and Quotas?"

        + + + +$Id: building_a_website.html,v 1.8 2020/01/01 22:29:35 niro Exp $ diff --git a/site-tutorials/cdc6500.html b/site-tutorials/cdc6500.html new file mode 100644 index 0000000..392f448 --- /dev/null +++ b/site-tutorials/cdc6500.html @@ -0,0 +1,492 @@ + + +

        CDC 6500 Survival Guide

        + +

        The CDC +6000 series was a family of mainframe computers designed by +Seymour Cray and James E. Thornton and manufactured by Control Data +Corporation in the 1960s. The computers in the series were extremely +fast for their time and considered to be the first +supercomputers.

        + +

        The Living Computer +Museum has recently refurbished and put on-line a +CDC +6500 supercomputer. The system was originally used at Purdue +University from 1967 to 1989.

        + +

        This document is a short guide for those interested in exploring the 6500's interactive command environment.

        + +(Note: The author worked briefly with a CDC NOS computer + 30 years ago, but all information below is based on study of the + referenced manuals and experimentation on LCM's + 6500. The author apologizes for any inaccuracies and welcomes + corrections and improvement suggestions.) + + +

        Table of Contents

        + + +

        Connecting

        + +
          +
        1. Start your telnet client and connect to host tty.livingcomputermuseum.org port 6500.
        2. +
        3. After the USER NUMBER prompt enter your user name (your input will be concealed by the row of + Xs). You may need to type more slowly than you are used to with + other systems.
        4. +
        5. After the PASSWORD prompt type your password (your input will be concealed by the row of + Xs).
        6. +
        7. After the RECOVER /SYSTEM: prompt enter a + subsystem or other command. (Enter RECOVER to recover previously interrupted + session.)
        8. +
        + +
        
        +[CONNECTED TO MUX6676 LINE 1]
        +
        +
        + 16/08/24. 20.43.27.
        + LIVING COMPUTER MUSEUM 6500.           NOS 1.3-485/11.
        +USER NUMBER
        +XXXXXXXXXXXXXXX                                                  ← 2.
        +PASSWORD
        +XXXXXXXX                                                         ← 3.
        +PORT    :      5, TTY
        +RECOVER /SYSTEM:
        +
        +
        + +

        Subsystems

        + +

        The 6500's Network Operating System (NOS) time-sharing system, the +Interactive Facility (IAF), includes a number of subsystems, similar +to applications on other computer systems, to provide various +functions to the user. Subsystems can be selected explicitly by +command (see below), or automatically when you select a primary +file.

        + +

        Although the Null subsystem provides a general-purpose environment +with file and system utilities, in most cases you can move directly +between subsystems as needed without going through the Null +subsystem.

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        SubsystemFunction
        ACCESSMessaging with other users connected to the 6500.
        BASICInteractive BASIC language programming environment.
        BATCHCreate and run batch jobs for non-interactive programs.
        EXECUTEExecute previously compiled programs.
        FORTRANInteractive Fortran language programming environment. Uses FORTRAN Version 5 compiler.
        FTNTSInteractive Fortran language programming environment. Uses FORTRAN Extended Version 4 compiler.
        NULLA general-purpose environment for working with files and system status and settings (although most general commands are available in other subsystems as well).
        + +

        File System

        + +

        A basic understanding of the 6500 file system is necessary to use + most IAF comands.

        + +
        +
        Permanent files
        +
        Permanent files are preserved by the system from their + creation until their deletion by user command. Each permanent file + is owned by a single user and is normally accessible only by its + owner, though it is possible to make files accessible by other + users as well. + +

        Two types of files are supported:

        +
        +
        Direct access
        +
        Used for random access and database applications.
        +
        Indirect access
        +
        Common sequential access files, including program source + files.
        +
        +
        + +
        Temporary files
        +
        Whenever an indirect access file is accessed, or a new indirect + access file created, the system first makes a temporary copy of the + file, to which are directed all references and updates to the + file. The temporary file must be saved in order for changes to be + applied to the permanent file. Unsaved changes will be discarded at + the end of the user's session. + +

        A temporary file is not created when a direct + access file is opened. Changes made to a direct access file + are immediately applied to the permanent file.

        + +
        Primary file
        + +
        The primary file is the temporary file, usually a program + source file, that a user is viewing, modifying, or executing at a + given time. Although a user session may simultaneously open + multiple temporary files, a given user may have only one primary + file at a time. + +

        The currently selected primary file automatically determines + the user's active subsystem. When a new indirect access file is + saved as a permanent file for the first time, the file system + records the active subsystem at the time. Then when the file is + selected as primary sometime later, the system automatically + activates the original subsystem.

        + +
        Local files
        +
        Local files are the set of temporary files and direct access + files (permanent files) currently open by a particular job or user + session.
        +
        + +

        File names my be up to seven alphanumeric (upper-case) characters + and may not begin with a numeric character. The following file + names are reserved by the system: +

          +
        • INPUT
        • +
        • OUTPUT
        • +
        • PUNCH
        • +
        • PUNCHES
        • +
        • P8
        • +
        • SCR
        • +
        • SCR1
        • +
        • SCR2
        • +
        • SCR3
        • +
        • SCR4
        • +
        • ZZZZZ*
        • +
        +

        + + +

        File Commands

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        CATLIST
        CATLIST,LO=F
        List your permanent files. The second form generates a detailed list.
        ENQUIRE
        ENQUIRE,F
        Prints users terminal port number, current subsystem, primary file. + The second form lists user's local files
        NEW,fileCreate a new file with the current subsystem and select as your primary file.
        OLD,fileSelect existing permanent file as primary. Change subsystems if file type is different from current primary file.
        LIST
        LNH
        List primary file contents. The second form omits printing the system header.
        GET,file
        LIST,L=file
        Use GET and LIST,L together to list the contents of a file other than primary file.
        SAVE
        SAVE,old=new
        Save contents of primary file as permanent file (creates permanent file). May need to use PACK first. Note: Use only the first time you create a file.
        +The second form saves the primary file named old in a new permanent file named new.
        REPLACEReplace permanent file with current contents of primary file. May need to use PACK first. Note: Use when modifying previously created permanent file.
        PACKCompress multiple logical records in local file into single logical record.
        PURGE,fileDelete a permanent file
        RENAME,oldname,newnameChange the name of a permanent file
        + +

        Programming Commands

        + + + +

        The BASIC, FTNTS, and FORTRAN subsystems provide environments + for interactively creating, modifying, debugging, and running + programs:

        + + + + + + + +
        BASICEnter the BASIC subsystem. Uses the BASIC programming language interpreter.
        FTNTSEnter the FTNTS subsystem. Uses the FORTRAN Extended Version 4 compiler.
        FORTRANEnter the FORTRAN subsystem. Uses the FORTRAN Version 5 compiler.
        + +

        The tree subsystems provide a development environment similar to + the original Dartmouth BASIC and versions of Microsoft BASIC for + microcomputers and early PCs.

        + +

        Program source files

        + +

        For all subsystems, program source code is stored in indirect + access files. The file's subsystem flag, set when first created, + indicates the file's source programming language (and compiler + version for Fortran source files).

        + +

        Create new source files, list and select existing source files, + view contents, and save changes to source files using the file + commands documented above.

        + +

        Each programming subsystem includes a simple editing function for + entering and modifying program source code in the primary file as follows: +

        +
        To add a source code line:
        +
        Type a new line sequence number followed by a space and then + a program statement. Source code lines will be stored and + compiled/executed in the order of line sequence numbers, so lines + can be entered in any order.
        +
        To modify a source code line:
        +
        Type line sequence number of the program statement to be + changed followed by a space and the modified program + statement.
        +
        To delete a source code line:
        +
        Type the line sequence number followed immediately by + the Enter key.
        +
        +

        + +
          +
        • In the BASIC subsystem, use line sequence numbers as the targets + of GOTO and other statements.
        • +
        • In the Fortran language subsystems (FORTRAN and FTNTS), the line + sequence numbers are not the same as the line label + numbers used by Fortran PRINT/WRITE/FORMAT, GO TO, and other + statements. Line label numbers should be inserted in necessary + lines between the line sequence number and program statement.
        • +
        • In the Fortran language subsystems, program statement text + Following the line sequence numbers may conform to or ignore + standard Fortran column rules at the programmer's choice.
        • +
        • In the BASIC subsystem, program statement without a preceding + line sequence number will be executed immediately and are not + added to the primary file. This is useful for testing statements + before modifying your program. Use PRINT statements + to display results of calculations, etc.
        • +
        + + + + + + + +
        AUTOEnter automatic line sequence + number mode. Enter program source statements in sequence after the + system-generated line numbers. Exit the mode by + pressing Esc key followed + by Enter key.
        RESEQRenumber the source code lines + in the primary file, maintaining the original sequence. In BASIC + subsystem, target line numbers of GOTO and other + statements are adjusted appropriately.
        RUN
        RNH
        RUN,MI=12625
        For + the BASIC subsystem, runs the primary file program. The second + form omits printing of the system header.
        The third form is + required to compile and run programs in the FTNTS + subsystem. (The MI argument sets the compiler field + length. As of this writing it is unknown if value 12625 is valid + for all programs.)
        Note: As of this + wiriting, the author has not yet succeeded in compiling nor + running a program with the FORTRAN subsystem.
        + + +

        Text Editor

        + +

        Although the programming subsystems include basic functionality for entering and modifying program source code in the primary file, the NOS Text Editor program (EDIT) provides both advanced editing functions and the ability to edit other local files besides the primary file.

        + + + + + + +
        EDIT
        EDIT,file
        Edit the primary file with Text Editor. The second form is for editing other local files.
        ENDExit Text Editor
        + +

        Messaging

        + +

        Use the ACCESS subsystem to communicate with other users connected + to the 6500.

        + + + + + + + + + + + + + + + +
        ACCESSEnter the ACCESS subsystem
        USER,userIDFind connected user's terminal port number
        DIAL,port,messageSend message to user.
        + +

        Other System Commands

        + + + + + + + + + + + + + +
        DAYFILEList user's activity log.
        PASSWOR,old,newChange user password from old to new
        + +

        Disconnecting

        + + + + + + + + + + + + +
        BYE
        GOODBYE
        LOGOUT
        End user session and disconnect
        HELLO
        LOGIN
        End user session and return to log-in screen
        + +

        File Sharing

        + +

        Share permanent files with other 6500 users.

        + + + + + + + + + + + + + + + + + + + + + +
        CHANGE,file/CT=PU,M=modeGive access mode mode to file to all 6500 users. +
        Permission modes: A=append, E=execute, + M=modify, N=remove perm., R=read, + RA=read+append, RM=read+modify, W=write
        PERMIT,file,user[=mode]...Give access mode mode to file to user. + Default mode is read.
        CATLIST,UN=userList permanent files in user's catalog for which you have + been granted access permission.
        OLD,file/UN=userOpen permanent file file in user's catalog (must have + been granted access permission).
        + +

        File Transfer

        +

        +In order to transfer data to or from the 6500, your best option is to copy and paste. If your having trouble pasting in programs, you may want to try using TeraTerm with after altering the line delay under Setup -> Additonal settings -> Copy and Paste -> Paste delay per line at about 250ms. +

        + + +

        References

        + + +

        Future Improvements

        + +

        The author would like to make the following improvements to this document:

        + +
          +
        • Document compilation and execution of programs with FORTRAN subsystem.
        • +
        • Text Editor command guide.
        • +
        • Batch subsystem guide.
        • +
        • Execute subsystem guide.
        • +
        + + + + +$Id: cdc6500.html,v 1.11 2016/11/12 15:34:38 papa Exp $ diff --git a/site-tutorials/centericq_howto.html b/site-tutorials/centericq_howto.html new file mode 100644 index 0000000..e716b2e --- /dev/null +++ b/site-tutorials/centericq_howto.html @@ -0,0 +1,30 @@ +

        Using CenterICQ on SDF

        +

        CenterICQ is not actively maintained anymore, CenterIM is a fork and is +actively maintained. However CenterICQ is still functional.

        + +

        CenterICQ & CenterIM

        +

        These same steps aply to connect to ICQ using CenterIM.

        +
        1. Run centericq (or centerim) from the shell. +
        2. The first time you will be greted with the configuration screen you can use your left arrow to select Done and press Enter +
        3. With down arrow key move under icq protocol, select UIN and + press Enter to provide your ICQ number. +
        4. Fill in your password in the same way as the UIN. +
        5. With left arrow key select Done and press Enter. +
        +

        I tried to register a new ICQ account with CenterICQ without luck.

        + +

        finch

        +

        • Press ALT + a and select Accounts.
        • +
        • Select Add to open the New Account dialog box.
        • +
        • Choose ICQ from the Protocol select box.
        • +
        • Fill the Username field with your ICQ number, + and Password fields. +
        • Using the TAB move to Accept and press + Enter key.
        • +
        +

        After this, Finch will try to connect to ICQ network.

        + +

        +$Id: centericq_howto.html,v 1.1 2006/08/02 08:05:04 fanthore Exp ecelis $ + + diff --git a/site-tutorials/chicken.html b/site-tutorials/chicken.html new file mode 100644 index 0000000..c065529 --- /dev/null +++ b/site-tutorials/chicken.html @@ -0,0 +1,114 @@ +

        Using Chicken on SDF

        + +
        + +

        Chicken is a practical implementation of Scheme. Scheme is a programming +language in the Lisp family.

        + +
        + + +

        Learn

        + +

        To learn Scheme programming, check out a tutorial like Teach +Yourself Scheme in Fixnum Days.

        + +

        To learn about Chicken, check out the Chicken +website, which includes a manual and a +wiki.

        + + +

        Play Around

        + +

        To play with Chicken, start the interactive interpreter by running +csi. It should look like this:

        + +
        +$ csi
        +
        +CHICKEN
        +(c)2008-2011 The Chicken Team
        +(c)2000-2007 Felix L. Winkelmann
        +Version 4.7.0 
        +netbsd-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
        +compiled 2011-08-24 on ol (NetBSD)
        +
        +#;1> 
        +
        + +

        At the Chicken prompt, you can type in a Scheme program and hit Return to +run your code.

        + +
        +#;1> (print "Hello, World")
        +Hello, World
        +#;2>
        +
        + + + +

        Install Eggs

        + +

        The Chicken community produces third-party libraries called eggs. +(If you're familiar with the Ruby programming language, eggs are like Ruby's +gems.) As an example, let's install the readline egg. This will +allow you to use in the Chicken interpreter the same editing and history +commands you use in your shell. For example, hitting the Up key will enter your +previous command.

        + +

        Ideally, you could just run chicken-install readline and the egg +would be installed. But if you do that, you'll get an error. Since you don't +have administrator privileges on SDF, you can't install eggs to the default +location (a system directory). You must install the eggs in your home +directory, which requires you to do a little configuration beforehand. I'll +show you how to do that.

        + +

        I'll assume you're running Bash as your shell and that you want to keep +Chicken-related files in ~/chicken. First create a directory for a Chicken +repository:

        + +

        mkdir -p ~/chicken/lib/chicken/6

        + +

        Then install the repository:

        + +

        chicken-install -init ~/chicken/lib/chicken/6

        + +

        Then create some environment variables so Chicken will know to use your new +repository for eggs, and will compile against SDF's system libraries when +installing eggs:

        + +

        export CHICKEN_INCLUDE_PATH=${HOME}/chicken/lib/chicken/6
        +export CHICKEN_REPOSITORY=${HOME}/chicken/lib/chicken/6
        +export CSC_OPTIONS="-I/usr/pkg/include -L/usr/pkg/lib -static-libs"

        + +

        (You may also wish to put the above lines in a shell startup file, like +~/.bash_profile, so that the variables will be set every time you log in to +SDF.)

        + +

        Now you can install the readline egg:

        + +

        chicken-install readline

        + +

        If the install was successful, we can check whether everything's working. +Start the Chicken interpreter with csi and run this Scheme program +to load the readline egg:

        + +

        (use readline)

        + +

        Then run this program to use readline in this interpreter session:

        + +

        (current-input-port (make-gnu-readline-port))

        + +

        Now check if you have readline support in the interpreter. Run a trivial +program like 42 and then hit the Up key and check if "42" gets +entered at the prompt. If so, the readline egg is installed and working. You +can put the first two Scheme programs (the ones that load the egg and make it +work) into a ~/.csirc file and the interpreter will run those programs at the +beginning of each session.

        + +
        + +

        $Id: chicken.html,v 1.15 2011/08/29 06:43:41 ab9 Exp $

        diff --git a/site-tutorials/comnotirc.html b/site-tutorials/comnotirc.html new file mode 100644 index 0000000..b9a6c10 --- /dev/null +++ b/site-tutorials/comnotirc.html @@ -0,0 +1,241 @@ +

        COM is not IRC

        +
        + +

        Content

        + +
        + +

        What is COM?

        + +

        + So you type 'irc' at the command prompt hoping to join + your favorite channel and instead find yourself in this strange + world where you have to press space to talk, the commands you expect + don't work, and you can't even figure out how to quit (hint: try + 'q'). This is 'COM' (aka, 'COMMODE' or just 'com'). +

        + +

        + COM is a chat program which is unique to SDF. The original version + dates back to 1994 and it has been developed and used on the SDF + servers ever since. Together with the 'bboard' BBS it + is one of the primary ways SDF users communicate with each other. + Some features may be familiar to you from other programs, but many + will be new to you. Most notably, COM is command-driven, meaning + that you are in “command mode” by default and must hit a + key (spacebar or enter) before you can talk. See below for + additional commands, all of which are simply + typed in from command mode. +

        + +

        + So why did you get COM when you expected IRC? For reasons of + security and concerns about abuse, IRC access is not allowed unless + you are an ARPA member or higher. If you are reading this then it + is likely you are not. For this reason when you type + 'irc' at the shell, COM will be launched instead. This + allows new users an opportunity to interact with other SDF users and + hopefully answer some of the questions they might have. Unlike IRC, + COM is not network-based and only users who are currently logged + into SDF can use it. +

        + +

        + Basic rules of etiquette to keep in mind: +

          +
        • Many people idle in com. You can check idle times with + 'I'. If the room has been quiet for a while, say hello but + give people time to respond. If you have not read the tutorial + you may get some coarse replies, and you might end up here, + now, reading this. Welcome. :)
        • +
        + + Things not to do: +
          +
        • Ask how to 'hack'.
        • +
        • Attempt to use any IRC commands (they won't work and will make you look foolish).
        • +
        • Repeat the same question over and over.
        • +
        +

        + +

        Getting started: a walkthrough

        + +

        + COM is based around 'rooms'. The default room you enter when you start + the program is 'lobby', SDF's Welcoming Room. +

        + +

        + Type com at the command line to start com. When + com starts, you will be placed in 'lobby'. A list of users will + be displayed. You will also be in command mode. In + command mode, all you will see the cursor; there will not be + a prompt. Command mode allows commands to be run such as seeing a + list of users. +

        + +

        + In command mode, type w to see a list of users, + the name of the room you are in, as well as the + topography. +

        + +

        The output will look something like

        + +
        +  [you are in 'spacebar' among 1]
        +
        +  wliao@iceland
        +
        + +

        + Now, type l (lower case L) to see a list of rooms. The + output will look something like +

        +    room-name   #    created      time  topic
        +    --------------------------------------------------------------------------------
        +    spacebar    16   22-Aug-16  08:49:32  there is life out there
        +    lobby       1    09-Sep-16  08:49:13  SDF's Welcoming Room
        +    anonradio   19   09-Sep-16  04:11:06  DJ Kumata!
        +    --------------------------------------------------------------------------------
        +  
        +

        + +

        + There seems to be a lot of users in the room "spacebar". Let us join + in on the fun, shall we? Type g and the name of the room to + join. +

        +    :goto> spacebar
        +  
        + When entering the room, a list of users will be displayed. Now, let + us say hello to the room. +

        + +

        + Enter a space to enter input mode. When entering input + mode, a prompt of your user name will appear. Say "hello" to + the world and end the line with an enter key. + +

        +    [wliao]    hello world!
        +  
        +

        + +

        + The next thing you'll probably want to know is what people talked + about before you entered so you can join in the + chatter. Type r to get a short 18 line "r"eview of what was + said last. If you want more context, press R. You will se a + prompt like this: +

        +    :lines> 
        +  
        + Just type the number of lines you are interested in and finish with + return; you'll get a scrollable history of said lines length. + +

        + + +

        + When you are ready to quit, type q to leave com. You will see + an Unlinking TTY .. message appear. +

        + +

        FAQ

        +

        +

        +
        How do I use backspace in com?
        +
        Try - in command mode in com to toggle behavior. Or, + use stty or 'bksp' to set the backspace correctly.
        + +
        How can I be in com multiple times?
        +
        The basic rule is to be on a different server when entering + com. Some common ways of doing this is to use screen, run ssh + twice, etc.
        + +
        How do I send private messages?
        +
        Use the s command in command + mode: suser@host. Please note the @host portion; this is + a required element of the command. If the user is in another + room, add an optional host parameter to send the + message: suser@host room.
        + +
        How do I see what happened in the past?
        +
        Use the r key to review. Use R followed by a + number to control how many lines of history to review. The + p key can be used to see the history of another room: + proomname. The p command can also take an + optional number of lines to display: proomname + number.
        + +
        How do I see who is in another room?
        +
        Use W (upper case w) to see who is in another room.
        + +
        I see <wliao@iceland DUMPs in 22 characters of 2 + words in 3 lines>. What does that mean?
        +
        Use the r or R command.
        + +
        I see <wliao appears>. How do I do that?
        +
        Use the emote command in command mode. Use e followed + by the action at the prompt: :emote> tests this out. + +
        Why do I have to keep pressing the spacebar to talk?
        +
        Other keys can be used to enter input mode. Try the + h to see what keys are not being used such as the enter + key.
        + +
        How do I erase a line?
        +
        Use ^u (control + u) to erase the line. ^w (control + w) will erase + a word. +
        + +
        I accidentally ignored somebody! I didn't mean to do that :(
        +
        'i'gnore the same user again to remove from the ignore list. +
        + +
        Why isn't anybody talking?
        +
        That's life. Harden up.
        +
        +

        + + +

        COM Commands

        + +

        + Here is a list of commonly used COM Commands. It only covers the + basics, so refer to the online help (with 'h') or man page + for more information. Some of the commands will not be available to + pre-validated users. + +

          +
        • e - emote
        • +
        • g - goto a room
        • +
        • h - command help
        • +
        • I - user idle query
        • +
        • l - (lowercase L) list open rooms
        • +
        • L - post a link to com
        • +
        • p - peek into room
        • +
        • q - quit commode
        • +
        • r - room history
        • +
        • R - extended history
        • +
        • s - send private
        • +
        • w - (lower case w) who is in the current room
        • +
        • W - (upper case w) who is in a different room
        • +
        • - - (hyphen) key in command mode will fix your backspace (use this if your backspace keeps showing up as ^h or ^?)
        • +
        • + - tell you utc
        • +
        • U - (capital u) will tell you how long other users have been members and if they are ARPA or Meta-can-validate you
        • +
        + + Note: Although you type 'com' to + start com, the man page is accessed with 'man + commode' +

        + +
        +$Id: comnotirc.html,v 1.17 2018/04/30 13:20:33 wliao Exp $ diff --git a/site-tutorials/cvs_on_sdf.html b/site-tutorials/cvs_on_sdf.html new file mode 100644 index 0000000..2cdef3f --- /dev/null +++ b/site-tutorials/cvs_on_sdf.html @@ -0,0 +1,213 @@ + + + +CVS On SDF + + + + +

        CVS On SDF

        +

        Table of Contents

        +
        + +

        1 Introduction

        + + +

        +This tutorial is not about using a version control system, or about +using cvs, but about how to get started with cvs on SDF +

        + +

        2 Creating A Repository

        + + +

        +The cvs repository is just a simple directory. Our repository will +be made in our home directory, and we will name it "cvs". +

        +

        +cvs requires that you use an absolute path to the repository. +To learn the full path to your home directory type: +

        +

        +

        + cd; pwd
        +
        +

        +

        +In the rest of this document you will need to replace '/path/to/homedir/' +by the output of the previous command. +

        +

        +Creating our repository is very simple: +

        +

        +

        +  cd  
        +  mkdir cvs
        +  cvs -d /path/to/homedir/cvs init 
        +
        +

        +

        +That's it. +

        + +

        3 Importing A Directory:

        + + +

        +Let's add our website into our repository: +

        +

        +

        +  cd html
        +  cvs -d /path/to/homedir/cvs import -m "initial import" html user start
        +
        +

        +

        +In this command +

          +
        • +'-d /path/to/homedir/cvs' specify the path to our +repository. Alternatively you can add: +
          +  export CVSROOT='/path/to/homedir/cvs'  to your ~/.profile file. You must use an   absolute path.
          +
          +
        • +
        • +'import' is our cvs command +
        • +
        • +'-m "initial import" is a message that will appear in the log. +
        • +
        • +'html' is the name of our new module +
        • +
        • +'user' is a vendor tag, you can use your username or SDF or +whatever +
        • +
        • +'start' is a release tag. + +
        • +
        You can modify the message, the module name and the tags to your +liking, just keep in mind that in the rest of this tutorial we will +use 'html' for the module name. + + + +

        4 Checking It Out

        + + +

        +

        + cd 
        + mkdir tmp
        + cd tmp
        + cvs -d /path/to/homedir/cvs co html
        +
        +

        +

        +This should be enough to convince ourselves that the directory is now +under version control. +

        + + +

        5 Accessing It Remotely

        + + +

        +We can access our repository from the outside using ssh, to do this we +need to set the environment variable CVS_RSH so that cvs will use ssh, +using for instance: +

        +

        +

        + export CVS_RSH=ssh 
        +
        +

        +

        +And then use for the variable CVS_ROOT, or the -d switch: +':ext:user@freeshell.org:/path/to/homedir/cvs/', where +

          +
        • +'user' is your login name at SDF a +
        • +
        • +'freeshell.org' is your prefered host at SDF +
        • +
        • +'/path/to/homedir/cvs' is the full path to our repository at SDF. + +
        • +
        For instance to check out our html module: + +

        +

        + cvs -d ':ext:user@freeshell.org:/path/to/homedir/cvs' co html
        +
        +

        +

        +After having made our modifications, we just need to check our changes +back in: +

        +

        +

        + cvs update # if we made some changes elsewhere
        + cvs -d  ':ext:user@freeshell.org:/path/to/homedir/cvs' ci html
        +
        +

        + + +

        6 More info on CVS

        + + + +$Id: cvs_on_sdf.html,v 1.3 2015/01/28 01:01:52 grobe0ba Exp $ + + diff --git a/site-tutorials/dialup.html b/site-tutorials/dialup.html new file mode 100644 index 0000000..0a0c11d --- /dev/null +++ b/site-tutorials/dialup.html @@ -0,0 +1,110 @@ + + +

        SDF Dialup Membership

        + +

        What is DIALUP Membership?

        +

        Best way to learn about the DIALUP SDF membership is to login to your +SDF shell account and enter dialup: + +

        +you@sdf: dialup
        +
        +  SDF provides analogue and digital (ISDN) DIALUP service to members.
        +  To get a list of numbers in your area, use 'getdialup'.
        +
        +  Some quick tips and things to note:
        +
        +  1) You can choose from 54,143 dialup numbers in the USA & Canada
        +  2) Connections from 1200bps to 52000bps or 64kbps to 128kbps ISDN
        +  3) Read the bboard: for discussions on the membership
        +  4) Your dialup login is you@tenex.org
        +  5) use 'setdialup' to maintain your DIALUP login and SMTP AUTH password
        +  6) Pay your dues via paypal or mail (type 'address' for more details)
        +
        +     Dues are:  $10/mo, $27/qtr, $48/semi and $84/year and
        +     membership is open to all validated members, no setup fee, a
        +     monthly average of 15 hours a day, no dialer, no adverts!  Enjoy!
        +
        + +

        The SDF>DIALUP FAQ and dialup.tenex.org have additional information. +Before you sign-up though you may want to run getdialup first to see what numbers are in your +local/extended calling area. +Usually this information is contained in your local telephone directory. + +

        example: list all (503) access numbers in the Portland, OR area +

        +you@sdf: getdialup 503 | grep Portland
        +(503)  258-7011                     Portland    OR   pi             PacWest
        +(503)  258-7023                     Portland    OR   pi             PacWest
        +(503)  548-0317                     Portland    OR   pi             PacWest
        +(503)  416-2098                     Portland    OR   st          Du_MegaPop
        +(503)  488-3200                     Portland    OR   st          Du_MegaPop
        +(503)  734-3200                     Portland    OR   st          Du_MegaPop
        +(503)  258-7014                     Portland    OR   n3           Du_Sprint
        +(503)  914-0040                     Portland    OR   pw          Du_PacWest
        +(503)  974-0040                     Portland    OR   pw          Du_PacWest
        +(503)  914-0558                     Portland    OR   pw          Du_PacWest
        +(503)  972-0302                     Portland    OR   pw          Du_PacWest
        +(503)  467-6101                     Portland    OR   pw          Du_PacWest
        +(503)  548-0317                     Portland    OR   pw          Du_PacWest
        +(503)  412-1576                     Portland    OR   yn         YourNetPlus
        +
        + +

        Users in rural areas may find no local access numbers and would need to weigh the cost +of long distance charges. + +

        I've got SDF DIALUP membership - Now What?

        +

        Now you need to run setdialup and set the type of account and your DIALUP password. +Most users will want to leave the type set to "NETWORK PPP", the default: + +

        +you@sdf: setdialup
        +
        +SETDIALUP Version 2
        +
        + [p]  Set your DIALUP and SMTP Auth password
        + [n]  Set your connection type to NETWORK PPP (default)
        + [s]  Set your connection type to SHELL
        + [t]  Set your connection to TIP
        + [r]  REMOVE your DIALUP Membership
        + [q]  QUIT
        +
        +Choice?
        +
        + +

        Enter "p" to set password: + +

        +Choice? (SET) PASSWORD
        +
        +Setting your password for DIALUP LOGIN:  you@tenex.org
        +This will also serve as your SMTP AUTH for you.tenex.org
        +New password:********
        +Retype new password:********
        +Password set for you@tenex.org
        +Updates issued by mkhomepg, mkvhost, mkvpm and setdialup are executed
        +within 10 minutes.
        +
        +Choice?
        +
        + +

        Enter "q" to quit: + +

        +Choice? QUIT
        +You are you@tenex.org using a NETWORK type LOGIN
        +
        + +

        That's it - time to get your modem set up and configured... +

        +$Id: dialup.html,v 1.3 2011/01/16 08:51:31 jgw Exp $ diff --git a/site-tutorials/dialup_equipment.html b/site-tutorials/dialup_equipment.html new file mode 100644 index 0000000..64a7420 --- /dev/null +++ b/site-tutorials/dialup_equipment.html @@ -0,0 +1,122 @@ + + +

        Getting Ready for SDF Dialup: Equipment

        + +

        Typical requirements for dial-up networking: + +

          +
        • an SDF DIALUP account (username, password, and access numbers) +
        • a computer that supports PPP dial-up networking +
        • a POTS (Plain Old Telephone Service) line (aka a "land line") +
        • a two-wire phone cord with RJ-11 connectors +
        • an analog modem (aka "56k modem" or "dial-up modem") +
        + +

        Assuming you've got the first two items taken care of... + +

        Getting a POTS line

        +

        You'll need to contact your local telco company for this; +in the US this will usually be either one of the "baby Bells" +like Qwest, or Verizon. Check your local telephone +directory if you're unsure. Typical cost for a basic land line is +around $25/month with all the taxes. About the only extra you might +want is call waiting if your modem is V.92 (see below) and you don't +want to miss incoming calls. Don't be surprised if the telco asks +for a deposit and takes a week to activate your line... + +

        Phone Cords

        +

        These can be picked up almost anywhere; chances are you already +have one. That said, the typical flat phone cord isn't ideal as there +is barely enough copper to carry a signal and the pair isn't twisted. +Best option is to get some connector crimps and modern communication +cable and make your own cord. And don't stop at the phone jack; if +the wires running to the customer service box are really old replace +them too. + +

        Dialup Modems

        +

        "Modem" stands for MOdulator-DEModulator and is a device +that modulates/demodulates an analog carrier signal to encode/decode +digital information. Modems allow digital computers to communicate +over analog telephone lines. In the case of dial-up, the modem is +of "narrow band", ie. it operates within the traditional POTS +frequency band of 0 to 4 KHz. + + +

        Physical Types: In vs Out

        +

        There's basically two types: + +

          +
        • Internal: typically a bus-powered card installed inside a PC; sometimes +integrated into the main system board. Examples are: ISA (obsolete), +PCI (current), PCMCIA (obsolete), mini-PCI (current). +

          +
        • External: stand-alone units, typically with multiple indicator +lights and external power supply. Most have legacy DB9 or DB25 +serial ports and use standard serial cables to connect to the PC, +though USB-based units are also available. Various PCI/PCIe cards +and USB adapters are available to add serial support to newer computers. + +
        + +

        Functional Types: Soft vs Hard

        +

        Modems can either be HARDware or SOFTware driven. +Software modems (softmodems) require OS-specific drivers to function +whereas hardware modems (hardmodems) rely on self-contained controller +chips for functionality and are therefor generally OS-independent. + +

        In general: +

          +
        • most internal modems are softmodems (aka "WinModems") and often +only work with Microsoft Windows OS + +
        • most external modems are hardmodems, though some USB modems are +driver-dependent (ie. softmodems) + +
        + +

        Users in need of a hardmodem should look for terms like "controller-based" +or "supports DOS/Linux/Mac OSX" + +

        Current Modem Protocols and Speeds:

        +

        Modern telco networks switched to digital equipment in the +late 1990s; the V.90/V.92 modem protocols were designed to take advantage +of those telco upgrades and make use of hardware compression to increase +transmission rates up to 320.0 kbits/s. + +

          +
        • V.90: cir. 1999; 53.3 kbit/s download and 33.6 kbit/s upload +
        • V.92: cir. 2000; 53.3 kbit/s download and 53.3 kbit/s upload ; supports call-waiting +
        + +

        Most SDF Dialup access numbers support at least V.90. Older modems may work +as well but at slower speeds - ie. V.34 modems operate at 28.8 kbits/s + +

        General Setup

        +

        Internal modems are easy: just install it in an open card bay, +plug one end of the phone cord into the the modem jack, the other into +the phone jack in the wall/baseboard. External modems work similarly +except you'll also need to connect the modem to the computer via either +a serial or USB cable, and of course plug in the modem's power supply. +Once all the cables are connected, power up and configure the dial-up +PPP network connection (see the Windows and Ubuntu examples). + +

        References:

        + + +$Id: dialup_equipment.html,v 1.2 2011/01/16 09:43:09 jgw Exp $ diff --git a/site-tutorials/dialup_ubuntu.html b/site-tutorials/dialup_ubuntu.html new file mode 100644 index 0000000..05d7a8f --- /dev/null +++ b/site-tutorials/dialup_ubuntu.html @@ -0,0 +1,162 @@ + + + +

        SDF Dial-up via pppconfig and pon|poff|plog on Ubuntu

        + +

        Introduction:

        +

        There are several ways to setup a PPP-based dial-up network connection +on Linux. This tutorial illustrates setting up such a connection using +pppconfig on Ubuntu Linux. Once set up, regular users can +start, stop and monitor the network connection via pon, poff +and plog. All of these tools are console-based and the initial setup +requires the user to invoke superuser privileges via the sudo command. + +

        Prerequisites:

        +

        Verify that the modem is installed correctly and that pppconfig, +pon, poff and plog are present on your system (all +should be part of the base Ubuntu install). The which command +is useful for this: ie. which pppconfig should return +/usr/sbin/pppconfig. Also have your SDF Dial-up account +information at hand: username, password, local access number. See FAQ>DIALUP for details. + +

        A word about modems: most internal modems are "WinModems" (MS Windows +only) and will not likely work with Linux; the best option is an external +"hardware modem" that connects via a serial or USB port. Such modems contain +their own controller chip (hence the term "hardware modem") and do not rely +on special drivers to function. That said, if all you have is a WinModem +it is possible that someone has created a Linux driver for it; check at linmodems.org to see if yours is supported. + +

        Basic Setup:

        +

        Open a terminal window (click Applications>Terminal ; maximize +window) and invoke pppconfig using the sudo command: + +

        +# mr_retro@rustbucket:~$  sudo pppconfig
        +[sudo] password for mr_retro:
        +
        + +

        pppconfig should launch ; it's a curses-based application that +uses the TAB and Up/Down Arrows to move between fields, SPACE to toggle +fields on/off and ENTER to select. The following screens show an account +call SDF_dialup being set up for a 56K external modem installed +on serial port /dev/ttyS1 for fictional SDF user mr_retro +authenticating via PAP to tenex.org (the SDF radius server): + +

        +

        +

        +

        +

        +

        +

        +

        +

        +

        +

        + +

        If you made a mistake anywhere you can re-start pppconfig and edit +your newly created account. Use the "Advanced Options" for making tweaks +to your modem's initialization settings. + +

        Starting, Stopping and Monitoring the Dial-up Network Connection:

        + +

        Startup:

        +

        pon gets your dial-up network connection going: + +

        +# mr_retro@rustbucket:~$  pon SDF_dialup
        +
        + +

        You should hear the modem initiating the handshake. If all goes well +you should be connected; use ping to test: + +

        +# mr_retro@rustbucket:~$  ping -c1 sdf.org
        +PING sdf.org (192.94.73.15) 56(84) bytes of data.
        +64 bytes from SDF.ORG (192.94.73.15): icmp_seq=1 ttl=248 time=72.7 ms
        +
        +--- sdf.org ping statistics ---
        +1 packets transmitted, 1 received, 0% packet loss, time 0ms
        +rtt min/avg/max/mdev = 72.726/72.726/72.726/0.000 ms
        +
        + +

        Monitoring:

        +

        plog provides a simple PPP log file interface. It accepts the +same options as tail(1) ; use -f to provide an on-going dump +of events in a separate terminal: + +

        +# mr_retro@rustbucket:~$  plog -f
        +Jan 12 15:16:05 rustbucket pppd[2039]: pppd 2.4.5 started by mr_retro, uid 1001
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (BUSY)
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO CARRIER)
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (VOICE)
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO DIALTONE)
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO DIAL TONE)
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (NO ANSWER)
        +Jan 12 15:16:06 rustbucket chat[2042]: abort on (DELAYED)
        +Jan 12 15:16:06 rustbucket chat[2042]: send (ATZ^M)
        +Jan 12 15:16:06 rustbucket chat[2042]: expect (OK)
        +Jan 12 15:16:08 rustbucket chat[2042]: ATZ^M^M
        +Jan 12 15:16:08 rustbucket chat[2042]: OK
        +Jan 12 15:16:08 rustbucket chat[2042]:  -- got it
        +Jan 12 15:16:08 rustbucket chat[2042]: send (ATDT5551234567^M)
        +Jan 12 15:16:08 rustbucket chat[2042]: expect (CONNECT)
        +Jan 12 15:16:08 rustbucket chat[2042]: ^M
        +Jan 12 15:16:41 rustbucket chat[2042]: ATDT5551234567^M^M
        +Jan 12 15:16:41 rustbucket chat[2042]: CONNECT
        +Jan 12 15:16:41 rustbucket chat[2042]:  -- got it
        +Jan 12 15:16:41 rustbucket chat[2042]: send (\d)
        +Jan 12 15:16:42 rustbucket pppd[2039]: Script /usr/sbin/chat -v -f /etc/chatscripts/SDF_dialup finished ...
        +Jan 12 15:16:42 rustbucket pppd[2039]: Serial connection established.
        +Jan 12 15:16:42 rustbucket pppd[2039]: using channel 6
        +Jan 12 15:16:42 rustbucket pppd[2039]: Using interface ppp0
        +Jan 12 15:16:42 rustbucket pppd[2039]: Connect: ppp0 <--> /dev/ttyS1
        +...
        +
        + +

        Stopping:

        +

        poff shuts down your dial-up network connection: + +

        +# mr_retro@rustbucket:~$  poff SDF_dialup
        +
        + +

        You should hear the modem drop the connection ; verify with plog: + +

        +# mr_retro@rustbucket:~$  plog
        +...
        +Jan 12 15:16:45 rustbucket pppd[2039]: Script /etc/ppp/ip-up finished (pid 2046), status = 0x0
        +Jan 12 15:30:18 rustbucket pppd[2039]: Terminating on signal 15
        +Jan 12 15:30:18 rustbucket pppd[2039]: Connect time 13.6 minutes.
        +Jan 12 15:30:18 rustbucket pppd[2039]: Sent 39110 bytes, received 406951 bytes.
        +Jan 12 15:30:18 rustbucket pppd[2039]: Script /etc/ppp/ip-down started (pid 2083)
        +Jan 12 15:30:18 rustbucket pppd[2039]: sent [LCP TermReq id=0x2 "User request"]
        +Jan 12 15:30:18 rustbucket pppd[2039]: Script /etc/ppp/ip-down finished (pid 2083), status = 0x0
        +Jan 12 15:30:18 rustbucket pppd[2039]: rcvd [LCP TermAck id=0x2]
        +Jan 12 15:30:18 rustbucket pppd[2039]: Connection terminated.
        +Jan 12 15:30:20 rustbucket pppd[2039]: Exit.
        +
        + +

        References:

        +
          +
        • pppconfig(8) - configure pppd to connect to the Internet +
        • pon(1), poff(1), plog(1) - starts up, shuts down or lists the log of PPP connections +
        • Ubuntu Community Documentation - Ubuntu Dialup HowTo +
        • Debian Linux Modem Configuration - Dial-up Modems +
        + +$Id: dialup_ubuntu.html,v 1.2 2011/01/16 09:43:09 jgw Exp $ diff --git a/site-tutorials/dialup_winxp.html b/site-tutorials/dialup_winxp.html new file mode 100644 index 0000000..082210d --- /dev/null +++ b/site-tutorials/dialup_winxp.html @@ -0,0 +1,66 @@ + + + + +

        SDF Dial-up via Network Connections Wizard on Windows XP

        + +

        Introduction:

        + +

        Although many modems, especially internal WinModems, come with configuration +software, using the native Network Connections Setup Wizard to configure a +dial-up network connection is fairly straightforward and consistent irregardless +of the modem hardware. This tutorial illustrates the steps needed for an SDF Dial-up +account. + +

        Prerequisites:

        + +

        Verify that the modem is installed correctly and that any +required modem driver(s) are also installed. If needed, click +on Settings>Control Panel>System , then select Hardware>Device +Manager and locate Modems>your_modem. Click Action>Properties; your +modem's multi-tab Properties window will appear. If all is well the +Device Status (under the General tab) box will read "This device is +working properly". If it is not, consult your modem documentation +to understand why. You may need to tweak your modem's settings using +other tabs on the Modem Properties window. + +

        Basic Setup:

        +

        Click Start>Settings>Control Panel>Network Connections>New Connection Wizard. +The "Welcome to the New Connection Wizard" window will appear. Click Next. The +following illustrates the SDF Dial-up connection creation process for fictional +SDF user mr_retro using a built-in Lucent WinModem on a computer running +Windows XP: + +

        +

        +

        +

        + +

        Click on the newly created Desktop "SDF dialup" shortcut ; the following dialog box appears. +If you made any mistakes during the account creation you can make some changes by clicking +on Properties. + +

        + +

        If all is correct click "Dial" to initiate the connection. + +

        Once connected, you can view the connection status and details by clicking on the Network +Connection icon in the system tray (just to the left of the clock, lower right-hand corner): + +

        + +

        To shutdown the dial-up connection click "Disconnect" or simply power down the computer. + +

        +$Id: dialup_winxp.html,v 1.2 2011/01/16 09:43:09 jgw Exp $ diff --git a/site-tutorials/donations.html b/site-tutorials/donations.html new file mode 100644 index 0000000..2ac3765 --- /dev/null +++ b/site-tutorials/donations.html @@ -0,0 +1,45 @@ +

        Donating to the SDF Public Access UNIX System

        + +

        Jump straight to instructions for donating + + + +

        To quote the SDF FAQ +

        +

        The Super Dimension Fortress is a networked community of free software authors, teachers, students, researchers, hobbyists, enthusiasts and the blind. It is operated as a federally recognised non-profit 501(c)7 and is supported by its members. +

        Their mission is to provide remotely accessible computing facilities for the advancement of public education, cultural enrichment, scientific research, and recreation. Members can interact electronically with one another regardless of their location using passive or interactive forums. +

        + +

        To learn more about SDF, its history, and its mission, you can read +

        +The best way to learn about SDF would be to join yourself! + +

        Unlike American Public Broadcasting, The Mozilla Foundation, and other popular non-profits, there are currently no large corporate sponsors of SDF. This means that it depends entirely on support from individuals like you. + +

        SDF's 501(c)7 status means that donations to it are not +tax-deductible. + +


        You can donate to SDF +

          +
        • Via PayPal (for donations of $5.00 or more): +
          + + + + +
        • By Mail:
          +Send a check, money order, or cash (USD($), CAD($), EUR(€), GBP(£), AUD($), RMB(¥), or JPY(¥)) to +
          +SDF Public Access UNIX
          +PO BOX 17355
          +SEATTLE WA 98127 USA
          +
          +
        • Via the donation button at the bottom of the main page: http://sdf.org +
        + + + +$Id: donations.html,v 1.9 2014/09/11 09:06:17 grobe0ba Exp $ diff --git a/site-tutorials/dotfiles.html b/site-tutorials/dotfiles.html new file mode 100644 index 0000000..8d4696f --- /dev/null +++ b/site-tutorials/dotfiles.html @@ -0,0 +1,115 @@ + + + + + + + Directory Tree + + + +

        Directory Tree

        +

        Dotfiles currently unavailable - contact sysadmin

        +

        tutorials/dotfiles + +
        |-- .abookrc_yargo +
        |-- .bash_logout_jwodder +
        |-- .bashrc_jwodder +
        |-- .bbkill_jbaber +
        |-- .bboardrc_jbaber +
        |-- .elinks_jbaber +
        | `-- elinks.conf +
        |-- .exrc_jbaber +
        |-- .exrc_yargo +
        |-- .fetchmailrc_yargo +
        |-- .forward_mackie +
        |-- .forward_yargo +
        |-- .gopherrc_yargo +
        |-- .ispell_english_jbaber +
        |-- .mailcap_jwodder +
        |-- .mailcap_mackie +
        |-- .mailcap_yargo +
        |-- .mime.types_jwodder +
        |-- .mutt_jbaber +
        | |-- colors1 +
        | |-- colors2 +
        | |-- colors3 +
        | |-- colors4 +
        | `-- mailcap +
        |-- .mutt_jwodder +
        | |-- gmail +
        | |-- gpg +
        | |-- keys +
        | |-- muttrc +
        | `-- sdf +
        |-- .mutt_mackie +
        | `-- gpg +
        |-- .muttrc_jbaber +
        |-- .muttrc_mackie +
        |-- .muttrc_yargo +
        |-- .nailrc_jgw +
        |-- .nethackrc_jwodder +
        |-- .nexrc_yargo +
        |-- .nn_init_jwodder +
        |-- .osh.login_jneitzel +
        |-- .oshrc_jneitzel +
        |-- .pinerc_dyera +
        |-- .plan_jbaber +
        |-- .procmailrc_mackie +
        |-- .procmailrc_slugmax +
        |-- .procmailrc_yargo +
        |-- .profile_jbaber +
        |-- .profile_jwodder +
        |-- .profile_xbeastx +
        |-- .profile_yargo +
        |-- .screenrc_jbaber +
        |-- .screenrc_jgw +
        |-- .screenrc_jwodder +
        |-- .slrn_jwodder +
        | |-- scorefile +
        | `-- slrnhelp +
        |-- .slrnrc_jwodder +
        |-- .snownews_jbaber +
        | |-- browser +
        | |-- colors +
        | |-- html_entities +
        | `-- keybindings +
        |-- .subversion_config_jwodder +
        |-- .tcshrc_jgw +
        |-- .vimrc_jwodder +
        |-- README +
        `-- index.html +

        +

        +

        + +6 directories, 61 files +

        +

        +
        +

        + tree v1.5.0 (c) 1996 - 2004 by Steve Baker and Thomas Moore
        + HTML output hacked and copyleft (c) 1998 by Francesc Rocher
        + Charsets / OS/2 support (c) 2001 by Kyosuke Tokoro +

        + + diff --git a/site-tutorials/dsl.html b/site-tutorials/dsl.html new file mode 100644 index 0000000..70b8974 --- /dev/null +++ b/site-tutorials/dsl.html @@ -0,0 +1,18 @@ +

        Configuration and Use of SDF's DSL INTERNET Service

        +
      26. A Brief Introduction to DSL +
      27. An Overview of the Equipment +
      28. A Basic Configuration +
      29. A Local Area Network +
      30. DNS Servers
      31. +
        +

        DNS Servers

        +If you don't already have preferred DNS servers, consider using the servers offered by opendns.com:
        +208.67.222.222 and 208.67.220.220

        + +You find a list of free public DNS servers here.
        + + +

        + +$Id: dsl.html,v 1.6 2019/11/15 18:37:39 thegiant Exp $ diff --git a/site-tutorials/e-mail-advanced.html b/site-tutorials/e-mail-advanced.html new file mode 100644 index 0000000..1391b1e --- /dev/null +++ b/site-tutorials/e-mail-advanced.html @@ -0,0 +1,395 @@ +

        E-Mail, Advanced Topics

        +

        This tutorial discusses advanced topics concerning e-mail on +SDF: spam filtering, automatic processing, forwarding. It is probably +only useful for ARPA members.

        + +

        Contents

        +
          +
        1. Introduction, and what this is not
        2. +
        3. Forwarding E-Mail
        4. +
        5. Fetching E-Mail
        6. +
        7. Fighting Spam
        8. +
        9. Personal White List Against Spam
        10. +
        11. Using Procmail With a DNSBL
        12. +
        13. Use SDF SMTP Server Remotely via SSH
        14. + +
        +
        + +

        Introduction, and what you will not find here

        +

        Here we discuss advanced topics for e-mail processing on SDF, mainly +automatic processing of incoming messages with procmail, and +forwarding issues. As procmail is only available to ARPA +members, the contents of this tutorial will be mostly useless to user +members. +
        +For basic info about e-mail (addresses, reader programs, file size, etc), +please read the corresponding +
        FAQ entry - and if +you still have problems with basic sending and receiving of messages +via SDF, this tutorial is most probably not for you! +

        + +

        Forwarding E-Mail

        +

        The sendmail system allows for automatic forwarding of +incoming mail to other addresses or even programs (filters).
        +The file $HOME/.forward may contain the following types of +lines: +

        +
        somebody@somewhere.com
        +
        external e-mail address, where a copy of each mail will be sent
        +
        |filterprogram
        +
        will pipe the incoming messages through /bin/sh with the +argument filterprogram
        +
        +

        +

        However, if you want to do more than forwarding to one address, +use of procmail is highly recommended! In fact, it is +best to set up nospam -e, which will generate +a .forward file with a line calling procmail, and then to modify +the resulting .procmailrc. + +

        Fetching E-Mail

        +

        Use fetchmail to collect messages from accounts +you might have elsewhere. The messages are given to procmail +(see Forwarding E-Mail above) for further +processing.

        + +

        Sample .fetchmailrc

        +
        +poll pop.provider.net
        +     proto pop3
        +     user "john.doe"
        +     pass "secret"
        +     is "jdoe" here
        +     mda "/path/to/procmail -f- ~/.procmailrc" 
        +     ssl;
        +
        + +

        Fighting Spam

        +

        To fight unwanted bulk e-mail (spam), there are several possibilities +available on SDF: +

          +
        1. As a general remark, think before you publish or tell somebody your +e-mail address! And try to make clear to people that you don't want your +address on a visible list of 500 recipients from somebody's address book; one +should use Bcc: for sending to a lot of people in parallel, not To:!
        2. +
        3. SDF also supports plus-addressing; +you can use this to join mailing lists and do filters. +This can be used by adding +something before the @ in your email address.
        4. +
        5. The FAQ +has more information about nospam, available on SDF.
        6. +
        7. The automatic mail processor procmail (see man +procmail for more information) +allows to filter incoming mail following user defined rules; in particular, +you can generate a white list of sender addresses +you know as good, and put messages from other addresses into a special +folder which you browse through now and then, to check for good messages +and adding the corresponding addresses to your white list.
        8. +
        +

        + +

        nospam

        +

        nospam is a script which can set up .forward and .procmailrc +files so that certain e-mails will be stored in "bulk folders". +
        +nospam -i gives some additional information, and nospam +-e will enable this filtering. We will suppose that this has been done +also for the following discussion of
        white +lists.

        + +

        Personal White List Against Spam

        +

        White lists contain e-mail addresses which are always +to be accepted as good. It is easy to implement this with +procmail: Supposing that nospam -e has been +executed, so that basic procmail processing is set up, one can add the +following fragment to .procmailrc.

        + +

        Note: For this to be working, the following must have +been set up: +

          +
        • a .forward file which pipes incoming e-mail through +procmail
        • +
        • a standard .procmailrc file, where this fragment is attached +or inserted
        • +
        +The easiest method to install these files is by launching +nospam -e as mentioned
        above, then adding +the fragment to the generated .procmailrc. +
        +(Of course, it is possible to deactivate or delete all the initial +procmailrc lines generated by nospam, which move messages with +attachments to the bulk folder, if such messages should pass through +the whitelist filter.) +

        + +
        +# procmail spamfilter using whitelist (2006 Yargo Bonetti)
        +# :: use at your own risk and any way you want! ::
        +# whitelist: file containing one valid e-mail address per line
        +# (only generic xxx@yyy.zz form, without "Name.." <*> parts)
        +WHITELIST=$MAILDIR/.whitelist
        +# spamfilter
        +FROM=`formail -c -x 'From:'|sed -e 's/.*<\(.*@[^>]*\)>.*/\1/'`
        +:0 hb:
        +* ! ? grep -i -F -e "$FROM" $WHITELIST >/dev/null
        +$MAILDIR/quarantine
        +
        + +

        This will compare the address in the From: field of incoming +messages to the ones saved in the file $MAILDIR/.whitelist (of +course, name and location can be changed), and when an address is +not found in this file, the message will be saved in the +folder $MAILDIR/quarantine (which can be modified as well) and not show up in +the normal Inbox (and not be processed further). Now and then, one can look +through the quarantine folder for "good messages", and add the +corresponding addresses to the .whitelist file.

        + +

        If you want to use the mail directories proposed by nospam, you may +prepend the above noted fragment by

        + +
        +MAILDIR=$HOME/mail
        +
        + +

        which will result in storing the "possibly bad" messages in +~/mail/quarantine and expect the whitelist in +~/mail/.whitelist.

        + +

        A sample .whitelist may look like this:

        + +
        +my.friend@his.domain.com
        +president@whitehouse.gov
        +myself@gmail.com
        +
        + +

        All messages not coming from these three addresses would end up in the +"quarantine" folder defined in the .procmailrc fragment.

        + +

        Using Procmail With a DNSBL

        + +

        DNSBL stands for "DNS blacklist", and it is essentially a collection of IP +addresses known to send out spam and other bad stuff. Two popular DNSBLs are +SpamCop and +Spamhaus. Typically the mail server +will check the source of incoming mail with the DNSBL before even accepting +the message. SDF does not do this, but using Procmail to check a DNSBL at +the user level is easy. In this tutorial we will use Spamhaus.

        + +

        (Thank you Benya for +the original instructions.)

        + +

        First make sure that ~/.forward is set-up to forward incoming +mail to Procmail. Then we'll edit ~/.procmailrc. The beginning +of this file should declare basic variables such as SHELL=/bin/sh, +LOGFILE=$HOME/.procmaillog, ORGMAIL, +DEFAULT, and MAILDIR. ORGMAIL and +DEFAULT should point to your inbox, and MAILDIR +should point to the directory that contains your saved mail.

        + +

        Next Procmail should extract the IP address from which the message was +sent. This is done using formail to get the headers, +grep to find the correct line, and sed to find the +actual IP address, which is then saved as SENDERIP.

        + +
        SENDERIP = `formail -c -XReceived | grep "by sdf.lonestar.org" | \
        +grep -v "from sdf.lonestar.org" | \
        +sed "s/^Received: from .*\[\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)\].*by sdf.lonestar.org.*$/\1/"`
        + +

        Then we'll begin the actual Procmail recipe, which will only be executed +after checking to make sure that the SENDERIP variable exists +and is in the correct format. Anything written to the LOG variable +will be inserted into the log file. (New lines must be explicitly stated.)

        + +
        :0
        +* SENDERIP ?? ^^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*^^
        +{
        +	LOG = "The sender's IP address is "
        +	LOG = $SENDERIP
        +	LOG = "
        +"
        + +

        The next step is to reverse the IP address because Spamhaus wants it that +way. Procmail will then use host to determine the IP address that +[reversed IP address].zen.spamhaus.org resolves to.

        + +
        	SENDER_REVERSED = `expr "$SENDERIP" | \
        +	sed "s/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\4.\3.\2.\1/"`
        +
        +	KNOWNOFFENDER = `host "$SENDER_REVERSED".zen.spamhaus.org | \
        +	sed "s/^.*\(127\.0\.0\.[0-9]*\)$/\1/"`
        + +

        If Spamhaus returns an IP address between 127.0.0.0 and 127.0.0.9, then +we know that this particular email is of dubious origin. In that case we can +put it in the folder $MAILDIR/Spam. Otherwise, the message will +get written to your inbox by default.

        + +
        	:0
        +	* KNOWNOFFENDER ?? ^^127.0.0.[0-9]*^^
        +	{
        +		LOG = "This sender is a known source of spam.
        +"
        +
        +		:0:
        +		Spam
        +	}
        +
        +	LOG = "This sender is not a known source of spam.
        +"
        +}
        + +

        This completes the Procmail recipe.

        +
        + +

        Use SDF SMTP Server Remotely via SSH

        + +

        Introduction:

        +

        Using SSH's port-forwarding capabilities, MetaARPA members can create +an encrypted tunnel which makes the SDF SMTP mail server appear local, +avoiding need for authentication or additional encryption.

        + +
          Prerequisites: +
        • SDF MetaARPA membership +
        • SSH plus suitable MUA (email program) +
        • public key authentication (optional) +
        + +

        Tunnel Construction:

        +

        Port-forwarding can occur on ports 53, 110, 143, 443, and 993 on most SDF hosts.

        + +
        +

        ex:
        +Use port 443 on SDF host "otaku", tunnel local port +2525 to port 25 on SDF host "mx" (SMTP server); restrict
        +ssh to IPv4, no remote commands, run in background after connecting:

        + +
        +%  ssh -4 -fN -p 443 -L 2525:mx:25 sdf_user@otaku.sdf.org
        +
        +
        + +

        Note if public key authentication isn't setup a password prompt occurs.

        + +

        Tunnel Test:

        +

        telnet(1) can be used; type "quit" to exit session:

        + +
        +
        +%  telnet localhost 2525
        +Trying 127.0.0.1...
        +Connected to localhost.
        +Escape character is '^]'.
        +220 sdf.lonestar.org ESMTP Sendmail 8.14.5/8.14.3; Tue 13 Dec 2011 07:45:59 GMT
        +quit
        +221 2.0.0 sdf.lonestar.org closing connection
        +Connection closed by foreign host.
        +
        +
        + +

        Tunnel Usage:

        +

        Configure MUA to use "127.0.0.1" (localhost), port 2525 for out-going +messages. Also ensure the From: and ReplyTo: addresses are routeable. +Handling of rejected email is MUA-dependent - some do queuing, others +write to $HOME/dead.letter or /dev/null:

        + +
        +

        ex:
        +Configure and test the Heirloom Mailx MUA for user "frog" +on localhost "mud.bog"
        to use "localhost:2525" for +SMTP (off-site email):

        + +
        +# $HOME/.nailrc
        +set smtp="localhost:2525"
        +set from="You <someone@sdf.org>"
        +set replyto="You <someone@sdf.org>" 
        +
        +%  hmail -v someone@sdf.org
        +Subject: tunneled SMTP test
        +test 123
        +.
        +Resolving host localhost . . . done.
        +Connecting to 127.0.0.1:2525 . . . connected.
        +220 sdf.lonestar.org ESMTP Sendmail 8.14.5/8.14.3; Tue, 13 Dec 2011 08:21:22 GMT
        +>>> HELO mud.bog
        +250 sdf.lonestar.org Hello IDENT:root@otaku.sdf.org [192.94.73.6], pleased to meet you
        +>>> MAIL FROM:
        +250 2.1.0 ... Sender ok
        +>>> RCPT TO:
        +250 2.1.5 ... Recipient ok
        +>>> DATA
        +354 Enter mail, end with "." on a line by itself
        +>>> .
        +250 2.0.0 pBD8LM7d000515 Message accepted for delivery
        +>>> QUIT
        +221 2.0.0 sdf.lonestar.org closing connection
        +
        +
        + +

        Tunnel Teardown:

        +

        The SSH tunnel can be torn down by identifying the appropriate PID +(process ID) and sending it a kill signal, via the +kill(1) command or similar tool. The following illustrates the +teardown process using sockstat(1) to determine the PID on the +NetBSD operating system:

        + +
        +
        +%  sockstat -np 2525
        +USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
        +frog      ssh       24362  7 tcp    127.0.0.1.2525        *.*
        +
        +%  kill -HUP 24362
        +Killed by signal 1.
        +
        +
        + + +

        Tunnel Maintenance:

        +

        Network connections can fail for various reasons; a keep-alive script can help:
        +(script contributed by SDF user nullogic - thanks!)

        + +
        +
        
        +#!/bin/bash
        +# sdftun.sh: Keep alive script for local ssh tunnel from home to SDF SMTP
        +
        +SSH_USER=
        +SSH_HOST='faeroes.freeshell.org'
        +SSH_PORT=443
        +SSH_ARGS='-N -f -L'
        +TAG_HOST=mx
        +TAG_PORT=25
        +LIS_PORT=8080
        +LOG_FILE=~/l0g/sdftun.log
        +SLEEP="30m"
        +
        +while [ 1 ]; do
        +SSH_PID=`ps aux | sed -n -e /sed/d -e /ssh\ \-N/p | wc -m`
        +        if [ $SSH_PID -eq 0 ]; then
        +                ssh $SSH_ARGS $LIS_PORT:$TAG_HOST:$TAG_PORT $SSH_USER@$SSH_HOST \
        +                        -p$SSH_PORT &>/dev/null
        +                DATE_TIME=`date '+%y.%m.%d %T'`
        +                echo "$DATE_TIME SSH Tunnel restarted.">>$LOG_FILE
        +        fi
        +        sleep $SLEEP
        +done
        +
        +
        + +

        Writing the PID to a file at the time of tunnel creation can simplify the ID process.

        + +
        + + + +
        +$Id: e-mail-advanced.html,v 1.17 2012/01/06 21:53:01 jgw Exp ruscorp $ diff --git a/site-tutorials/e-mail-basics.html b/site-tutorials/e-mail-basics.html new file mode 100644 index 0000000..b96a771 --- /dev/null +++ b/site-tutorials/e-mail-basics.html @@ -0,0 +1,258 @@ +

        E-Mail, Basics

        +

        This tutorial covers the basics of accessing E-mail on SDF. +Topics include command-line and remote access. Configuration +of mail retrieval programs (fetchmail, getmail) and Mail User Agents +(such as Mozilla Thunderbird) will also be covered.

        + +

        Contents

        +
          +
        1. Introduction, and what this is not
        2. +
        3. Reading E-mail on SDF
        4. + +
        5. Fetching E-Mail with fetchmail or getmail
        6. +
        7. Accessing SDF E-mail via Webmail
        8. +
        9. Configuring Graphical Mail User Agents
        10. +
        11. Configuring Mail in iOS (as a MetaARPA member)
        12. + +
        +
        + +

        Introduction, and what you will not find here

        +

        For basic info about e-mail (addresses, reader programs, file size, etc), +please read the corresponding +FAQ entry. +Continue reading for more information about using E-mail services at SDF. +

        + +

        +If you want to use a SDF's SMTP server to send mail, you must either log in +and use one of the clients as described in +the previous tutorial, +or register at an appropriate +membership level +(VPM, VHOST, or MetaARPA) and +connect using SMTP AUTH. +

        + +

        Reading E-Mail on SDF

        +

        +Multiple mail clients are available to be used from the shell, +including pine and mutt. +

        + + + +

        Fetching E-Mail with fetchmail, getmail or offlineimap

        + +

        Sample .fetchmailrc

        +

        You can use fetchmail to retrieve messages from your SDF account. +The fetchmail example below is configured to use POP3 to retrieve E-mail. Note +that this configuration does not use SSL. Also note that you will need to provide your +user names and the path to procmail. You may omit the pass line to be prompted +for your password. fetchmail can be run in daemon mode to retrieve +mail at a desired interval: fetchmail -d 900. + +

        +

        +

        +poll wm.sdf.org
        +     proto pop3
        +     user "sdf.username"
        +     pass "secret"
        +     is "local.username" here
        +     mda "/path/to/procmail -f- ~/.procmailrc";
        +
        +

        + + +

        Sample .getmail/sdf

        +

        wm.sdf.org supports IMAPs in addition to POP3. +This configuration will use SSL. A IMAP configuration (sans SSL) is commented out below. +Use getmail to collect messages. Note that you will have to provide local +and remote user names and you will be prompted for your password. Also note that this +configuration uses procmail as a delivery agent. +

        +

        +

        +[destination]
        +type=MDA_external
        +path=/usr/bin/procmail
        +arguments=("-dlocal.username",)
        +
        +[options]
        +read_all=False
        +delete=False
        +
        +[retriever]
        +type=SimpleIMAPSSLRetriever
        +#type=SimpleIMAPRetriever
        +server=wm.sdf.org
        +username=remote.username
        +#password=
        +port=993
        +#port=143
        +
        + +You could alternatively configure, for instance, a Maildir destination if you +would prefer not to use procmail: +
        +[destination]
        +type = Maildir
        +path = ~/Maildir/
        +
        +

        + +

        Sample .offlineimaprc

        +

        Another option to retrive E-mail is offlineimap. The example below +uses it to retrive messages with IMAP, using SSL for encryption, and storing them in +Maildir format. The first option accounts contain a comma separated list +of accounts to sync, acc1 and acc2 are given as an example, they +are not needed if you are only syncing the sdf account. You may also need to adjust the +value of cert_fingerprint from time to time. + +

        + +

        +

        +accounts = acc1,acc2,sdf
        +
        +[Account sdf]
        +
        +localrepository = sdf-local
        +remoterepository = sdf-remote
        +
        +[Repository sdf-local]
        +
        +type = Maildir
        +localfolders = ~/Maildir
        +restoreatime = no
        +
        +[Repository sdf-remote]
        +
        +type = IMAP
        +ssl = yes
        +cert_fingerprint = 204b2c6188ce0d38fa1eb3e5db6e88af4e05f868
        +remotehost = mx.sdf.org
        +remoteport = 993
        +remoteuser = isf
        +
        +

        + + +

        Accessing SDF E-mail via Webmail

        +

        +General users visit wm.sdf.org, MetaARPA members visit ma.sdf.org if you've forwarded your mail to the MetaArray. +

        + +

        Configuring Graphical Mail User Agents

        + +

        Mozilla Thunderbird Configuration

        +

        +Server Settings +Server Type: IMAP Mail Server
        +Server Name: mx.sdf.org
        +Port: 993
        +User Name: remote.username
        +

        +

        +Security Settings +Connection security: SSL/TLS
        +Use secure authentication: (unchecked)
        +

        + +

        Apple Mail

        +

        +Mail » Preferences » Accounts
        +Click + +

        + +

        +Enter your name and SDF E-mail address, then click Continue. +

        + +

        +Incoming Mail Server +Account Type: IMAP
        +Description: SDF
        +Incoming Mail Server: mx.sdf.org
        +User Name: remote.username
        +Password: remote.password
        +Click Continue +

        + +

        +Use your ISP's SMTP server for outgoing mail - unless you opt for +an SDF membership level that allows SMTP, in which case see the +smtpauth tutorial. +
        +Click Continue +

        + +

        +You should now see an account summary page. Verify the summary and click Create. +
        +You can now return to the Accounts preferences, select Advanced, and if necessary add:
        +IMAP Path Prefix: INBOX
        +

        + +

        Outlook 365 for Windows 10

        + +

        +This one's not as obvious as you'd think. You'll need to close Outlook to begin with, and run this command. Click Start and then type:

        + +

        +outlook.exe /manageprofiles +

        + +

        +then click on Email Accounts... » New... » Manual setup or additional server type » Next » POP or IMAP » then fill in the form: +

        + +

        +Your Name: Filbert Exampleton
        +Email Address: efilbert@sdf.org
        +Account Type: IMAP
        +Incoming mail server: mx.sdf.org
        +Outgoing mail server: fill this in with a valid SMTP
        +User Name: efilbert
        +Password: ednaedison123
        +

        + +

        +then click More Settings... » Outgoing Server » My outgoing server (SMTP) requires authentication » Log on using » fill in the fields witn your smtp » OK » next +

        + +

        +Outlook will perform a connection test, and after it passes, you can exit the wizard and configuration program. When you start Outlook back up, the SDF mail account should appear. What a friggin headache. +

        + + +

        Configuring Mail in iOS (as a MetaARPA member)

        +

        + This can likely be done as an ARPA member, refer to system help or bboard for more information. + +

          +
        • Open Settings and select Mail, Contacts, and Calendars
        • +
        • Select Add Account, then Other
        • +
        • Select Add Mail Account and fill in the relevant information.
        • +
        +

        +

        + Automatic setup will fail. Once prompted, enter the following server information: + +

          +
        • Incoming Mail Server
        • +
            +
          • Host Name: wm.sdf.org
          • +
          • User Name: your sdf username
          • +
          • Password: your sdf password
          • +
          +
        +

        + +$Id: e-mail-basics.html,v 1.19 2019/09/09 14:45:09 jawsh Exp $ diff --git a/site-tutorials/e-mail-beginners.html b/site-tutorials/e-mail-beginners.html new file mode 100644 index 0000000..c1c2ae6 --- /dev/null +++ b/site-tutorials/e-mail-beginners.html @@ -0,0 +1,46 @@ + +E-mail Beginners at a UNIX prompt +

        + +If you are new to UNIX you might like this tutorial to help you start sending and receiving E-mail at SDF. You should be a verified member before you can start using E-mail at SDF. + +

        +Assuming you have already logged into and started using SDF a little, you should be comfortable with the +command line by now. All you need to start sending and receiving E-mail is your E-mail Address and +an E-mail Client. +

        + +By default your E-mail Address is your SDF username, and you can choose the domain you would like to use +from the list of SDF domain names. +

        + +So if your username is "coffee" you can try sending yourself a mail with your existing E-mail account to: +

        + +coffee@freeshell.org +

        + +If you do not have an existing E-mail account you may wish to have another SDF member send you a test mail, sometimes E-mail boxes do not work properly until a test mail has been sent. +

        + +Now log into SDF and type the command "alpine". This will open up a terminal based E-mail client where you can send and receive mail. All of the commands to operate alpine are listed on the bottom of the terminal, and generally speaking you just have to tap a key to operate. +

        + +It is pretty self explanatory. +

        + +The first time you open alpine you might have to answer a few questions, but generally if you just tap enter a couple times after opening alpine you will be in your E-mail inbox. At that point you can use the up and down arrow keys to navigate through emails and press enter on the one you would like to read. After reading the mail you can reply by tapping 'r'. To send the mail you will have to hold down the Ctrl key and tap 'x'. +

        +All controls which require holding down the Ctrl key and tapping another key will be signified with the '^' symbol in the command list. So if you see ^R that means you should hold down Ctrl and tap 'r' to do that command. +

        + +To return to the message index (your inbox) you will see the command list states '<'. Thus you simply type a '<' by holding down the shift key and tapping the '<' key. +

        + +There are many other methods of sending and receiving mail at SDF, and they are all quite easy to learn and self explanatory. You can experiment with 'mutt' (another terminal based mail client) by typing the command 'mutt' at the terminal, and you can read further E-mail tutorials for setting up visual mail clients on your local computer. + +

        +Continue to
        E-Mail Basics +

        +You can also view the E-mail FAQ. + diff --git a/site-tutorials/e-mail-blacklist-issues.html b/site-tutorials/e-mail-blacklist-issues.html new file mode 100644 index 0000000..d10f84d --- /dev/null +++ b/site-tutorials/e-mail-blacklist-issues.html @@ -0,0 +1,76 @@ + + + + + +

        E-Mail Blacklist Issues

        +

        Because SDF is a public unix, there are many users, and many emails being sent.

        +

        Sometimes, some users can get SDF into trouble with their actions, unintentional or not. When this happens, +you may not be able to send emails to people at some other Internet Service Providers. You may get emails with +subject Returned mail: see transcript for details including error message like the +following after sending mail to these correspondees: +

          +
        • (reason: 550 5.7.1 Unfortunately, messages from [205.166.94.20] weren't sent. Please contact + your Internet se...ail.live.com/mail/troubleshooting.aspx#errors.
        • +
        • 421 4.7.0 [TSS04] Messages from 205.166.94.20 temporarily deferred due to user complaints - + 4.16.55.1; see https://help.yahoo.com/kb/postmaster/SLN3434.html.. Deferred: 421 4.7.0 [TSS04] Messages + from 205.166.94.20 temporarily deferred due to user complaints - 4.16.55.1; see + https://help.yahoo.com/kb/postmaster/SLN3434.html
        • +
        • The following addresses had permanent fatal errors... (reason: 554 resimta-ch2-19v.sys.comcast.net resimta-ch2-19v.sys.comcast.net 205.166.94.20 found on +one or more DNSBLs, see http://postmaster.comcast.net/smtp-error-codes.php#BL001000)
        • +
        + +

        If this happens, aside from contacting membership on bboard REQUESTS, you can also try to get SDF off +the +blacklist for your emails to your correspondee.

        + +

        Fill out forms for the following ISPs. you may need to create an account of your own on the target ISP so +you will also be a customer. You should go ahead and represent yourself as a representative of SDF. + +

        Stuff to know: +

          +
        • SDF server mail IP = 205.166.94.20
        • +
        • SDF mail server IP = mx.sdf.org
        • +
        • SDF mail reverse DNS = mx.sdf.org
        • +
        • SDF mail contact, you and/or membership@sdf.org
        • +
        + + +

        List of Forms and Related pages for major ISPs that may block SDF mail

        + + + +Other items to check out: + +$Id: e-mail-blacklist-issues.html,v 1.10 2020/06/25 17:20:07 peteyboy Exp $ diff --git a/site-tutorials/ecl_tutorial.html b/site-tutorials/ecl_tutorial.html new file mode 100644 index 0000000..5fcbd21 --- /dev/null +++ b/site-tutorials/ecl_tutorial.html @@ -0,0 +1,246 @@ + + +

        Using ECL (Embeddable Common-Lisp) on SDF

        + +

        Contents:

        + + +

        What is ECL?

        + +

        +ECL stands for Embeddable Common-Lisp and is a free open source +ANSI Common-Lisp implementation. Its distinguishing attributes are maintaining a +small-footprint, and being embeddable with existing C/C++ applications. +ECL is LGPL licensed and hosted at ecls.sourceforge.net. +

        + +

        +ECL-11.1.1 is currently available to MetaARPA members on most SDF hosts. +

        + +

        ECL vs CLISP

        +

        +There are currently two Common-Lisp implementations available on SDF; ECL +and CLISP. Both are largely compliant with the ANSI Common-Lisp standard. +Each supports various object systems, debugging, bytecode compiling, +unicode, sockets, streams, etc. CLISP comes with built-in readline +support; ECL doesn't, though it can be added; see the ASDF section. +In addition to being smaller and faster than CLISP, ECL can be embedded +in C/C++ programs, allow embedded C/C++ code in Lisp programs, and produce +stand-alone ELF executables. ECL is also very well documented. +

        + +

        ECL Basics

        +

        +By default ECL starts up in interactive mode. Log into SDF host miku and +type 'ecl'; you should see something like below: +

        + +
        +ECL (Embeddable Common-Lisp) 11.1.1
        +Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
        +Copyright (C) 1993 Giuseppe Attardi
        +Copyright (C) 2000 Juan J. Garcia-Ripoll
        +ECL is free software, and you are welcome to redistribute it
        +under certain conditions; see file 'Copyright' for details.
        +Type :h for Help.
        +Top level.
        +>
        +
        + +

        +The default ECL prompt is ">". Enter Common-Lisp commands in the usual way: +

        + +
        +> (+ 1 2 3)
        +6
        +
        +> (* 4 5)
        +20
        +
        +> (format t "hello SDF~&")
        +hello SDF
        +NIL
        +>
        +
        + +

        +In-line help is available ; type :h for options. +The debugger can be entered using (break) ; once entered typed :h to see options. +To exit the ECL interactive session type :exit . +

        + +

        ECL one-liners

        +

        +To use ECL as a script executor (ie. CGI) the -shell and/or -eval options +can be used. The -norc is often a good addition so as to avoid unnecessary +loading of modules, etc. +

        + +

        ex: hello.lsp

        + +
        +% echo '(format t "~&Hello SDF~&")' > hello.lsp
        +
        +% ecl -norc -script hello.lsp
        +Hello SDF
        +
        + +

        +It's also possible to use ECL to execute simple Common-Lisp one-liners at +the command line (note that princ is needed for screen output): +

        + +
        +% ecl -norc -shell /dev/null -eval "(princ (* 1 2 3))"
        +6
        +
        + +

        A nicer way to accomplish the same is to create a small shell script:

        + +
        +#!/bin/sh
        +# lispit - executes a lisp expression and dumps it to stdout
        +
        +LSP_EXPR=${@}
        +
        +if [ "$#" -eq 0 ]; then
        +        echo "lispit - executes a lisp expression"
        +        echo "  usage: lispit '(lisp_expression)'"
        +        echo ""
        +        exit 1
        +fi
        +
        +ecl -norc -shell /dev/null -eval "(princ ${LSP_EXPR} )"
        +echo ""
        +exit 0
        +
        + +

        +Example run: +

        +
        +% lispit '(mapcar (lambda (x) (expt x 2)) `(1 2 3 4 5))'
        +(1 4 9 16 25)
        +
        + +

        ASDF / enabling readline

        +

        +ASDF (Another System Definition Facility) is an extensible build facility +for Common-Lisp software. ECL comes with ASDF bundled in, however on SDF, +users must setup their own ASDF repository under their $HOME directory. +

        + +

        +The following outlines the process, using the ecl-readline module (adds +GNU readline support to ECL) as example: +

        + +

        +1) Create the user-level ASDF repository: +

        +
        +% mkdir -p $HOME/LISP/ASDF
        +
        + +

        +2) Create the ASDF config directory and config file*: +

        +
        +% cd $HOME
        +% mkdir -p .config/common-lisp/source-registry.conf.d
        +% vi .config/common-lisp/source-registry.conf.d/asdf.conf
        +
        +# ../asdf.conf
        +;;additional directory for ASDF to search (no recursion):
        +(:directory "/LISP/ASDF/")
        +
        + +

        *note: you can call the conf file anything you want.

        + +

        +3) Download ecl-readline module and copy select files to $HOME/LISP/ASDF: +

        +
        +% cd /tmp
        +% snarf http://www.common-lisp.net/project/ecl-readline/releases/ecl-readline-0.4.1.tar.gz
        +% tar xzf ecl-readline-0.4.1.tar.gz
        +% cd ecl-readline-0.4.1/
        +% cp ecl-*.* $HOME/LISP/ASDF/
        +
        + +

        +4) Create the ECL startup file: +

        +
        +# $HOME/.eclrc
        +(require 'asdf)
        +(asdf:operate 'asdf:load-op 'ecl-readline)
        +(ecl-readline::enable)
        +
        + +

        +The next time you startup ECL it will compile the ecl-readline module +and launch an interactive session. With ecl-readline enabled the default +ECL prompt is "CL-USER[n]>" and you should then be able to use Emacs-style +command editing and history recall. If you don't like the provided prompt you +can change it by editing the ecl-readline.lisp file. +

        + +

        Customizations

        +

        +Additional modifications can be made to the ECL startup file, such as +user-defined functions and tweaks to various modules. Below is a more +nuanced example which reduces the verbosity at startup, modifies +ecl-readline's history file location, and adds an external SHELL function +similar to that found in CLISP: +

        + +
        +# $HOME/.eclrc
        +(require 'asdf)
        +(setf ASDF:*ASDF-VERBOSE* nil) ; quiets ASDF output some
        +(setf *load-verbose* nil)       ; quiets the LOAD process some
        +(asdf:operate 'asdf:load-op 'ecl-readline)
        +(ecl-readline::enable :history-file "/var/tmp/.ecl-history")
        +;;
        +;; customizations
        +
        +;; GNU clisp-like SHELL cmd
        +(defun shell (&optional (shell_cmd "$SHELL"))
        +"Args: (&optional shell_cmd)
        +SHELL calls the EXT:SYSTEM function. Executes SHELL_CMD if given, otherwise
        +User sub-shell is spawned. SHELL_CMD be string or symbol, 256 characters max."
        +   (ext:system shell_cmd))
        +
        + +

        References:

        + + +
        +$Id: ecl_tutorial.html,v 1.4 2011/12/12 18:10:28 jgw Exp $ diff --git a/site-tutorials/ed.html b/site-tutorials/ed.html new file mode 100644 index 0000000..0ca12d7 --- /dev/null +++ b/site-tutorials/ed.html @@ -0,0 +1,141 @@ +

        ed Cheat Sheet

        + +

        ed is a small, powerful, line-oriented, command-line-interfaced + text editor. All editors frustrate, but ed often amazes while + others disappoint. +

        + +

        ed, man! !man + ed — ed is the standard text editor. +

        + +

        man ed for more information.

        + +

        Start ed from your shell command line:

        + +ed file + +

        Edit file by entering ed commands with the following syntax:

        + +[range][command] + +

        range specifies the line or block of consecutive lines + (syntax: from-line,to-line) + to which command is applied. Default range is the + current line except where noted below with a parenthesis + preceding the command syntax. Lines are specified as follows: +

        + + + + + + + + + + + + + + + + + + +
        nline n.current$last'cmark c
        -[n]up n (default: 1)+[n]down n (default: 1),1,$;.,$
        ?re?previous regexp match/re/next regexp match
        + +

        Input commands

        + + + + + + + + +
        aAppend + after.cChange range.iInsert + before..End input mode.
        +

        Edit commands

        + + + + + + + + + + + + + + + + + +
        dDelete.s/re/s/[g|n][p]Substitute. +
        m[line]Move after line.t[line]Copy after line.
        (.,+)jJoin lines.uUndo.
        (1,$)g/re/cmdsPerform cmds for all matching lines.(1,$)v/re/cmdsPerform cmds for all non-matching lines.
        + +

        File commands

        + + + + + + + + + + + + + + + + + +
        e [file*]Edit file.E [file*]Edit, discarding changes.
        ($)r [file]Read and append.f [file]Set/display file name.
        (1,$)w [file*]Write.(1,$)W [file*]Append to file.
        (1,$)wq [file*]Write and quit.
        + + + + + + +
        *In place of file, specify + "!shell-command" to read/write text to + shell-command standard output/input. +
        + +

        Display commands

        + + + + + + + + + + + +
        pList lines.l… with unprintables.n… with numbers.
        (+)z[lines]Scroll.(+)nullp
        + +

        Other commands

        + + + + + + + + + + + + +
        kcMark line.($)=Display line number.hLast error text.
        !shell-commandExecute shell-command.qQuit.QQuit, discarding changes.
        + +
        +$Id: ed.html,v 1.5 2007/10/09 00:27:11 papa Exp $ diff --git a/site-tutorials/emacs-cheatsheet.html b/site-tutorials/emacs-cheatsheet.html new file mode 100755 index 0000000..f25bf02 --- /dev/null +++ b/site-tutorials/emacs-cheatsheet.html @@ -0,0 +1,669 @@ + + + + Emacs Cheatsheet + + + + + +

        Emacs Cheatsheet

        + + + + +

        +Basic Movement and Editing Commands

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-x C-fFind file and load into buffer (Emacs prompts for filename)
        C-x C-sSave the current buffer
        C-x C-wSave the current buffer under a different name (Emacs prompts for the new name)
        C-x C-cQuit Emacs, prompting if you have not saved any buffers
        Arrow keys or C-f, C-b, C-n, C-pRight (forward), left (back), down (next), up (previous), respectively
        C-kDelete from cursor to end of line
        C-aGo to start of line
        C-eGo to end of line
        C-vGo down a page
        M-vGo up a page
        M-fGo to next word
        M-bGo back one word
        M-aGo to previous sentence
        M-bGo to next sentence
        C-/Undo
        C-_Undo (alias for C-/)
        C-x uUndo (alias for C-/)
        C-gAbort the current command
        C-lRedraw and center screen at cursor
        M-<Go to start of buffer
        M->Go to end of buffer
        C-dDelete next character
        M-dDelete next word
        M-|Execute shell command on region
        BackspaceDelete previous character
        + + +

        +Kill & Yank (Cut/Copy and Paste)

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-spaceSet the mark
        C-wCut (kill)
        M-wCopy (kill)
        C-yPaste (yank)
        M-yPaste (yank) next saved selection
        C-x hSet point to start of buffer and mark to end of buffer (select the entire buffer)
        C-x C-xSwap point and mark
        + + +

        +Search & Replace

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-sIncremental search forward
        C-rIncremental search backward
        C-M-sRegexp search forward
        C-M-rRegexp search backward
        M-%Search and replace
        M-x query-replace-regexpSearch and replace with regexps
        C-gAbort a search
        C-wDuring a search, highlight the word around the cursor
        Up, down arrow keys or M-p, M-nAccess search string history
        + + +

        +Emacs Modes

        + + + + + + + + + + + + + + + + + + + + +
        M-x modenameToggle the given major or minor mode
        C-h mDisplay help on the current major mode, including any special key bindings in effect
        M-qUsed in text-mode to reformat a paragraph of text manually
        M-x global-font-lock-modeToggle syntax highlighting
        + + +

        +Buffers

        + + + + + + + + + + + + + + + + + + + + +
        C-x bSwitch to another buffer
        C-x C-bDisplay buffer list
        C-x kKill current buffer (Emacs prompts for confirmation)
        M-x iswitchb-modeEnable iswitch mode, for smart buffer name completion with C-x b
        + + +

        +Windows

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-x 0Close this window
        C-x 1Close all other visible windows
        C-x 2Split horizontally
        C-x 3Split vertically
        C-x oSwitch to other window
        C-M-vScroll other window
        + + +

        +Dired Mode

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        M-x diredLoad dired mode (Emacs prompts for directory name)
        C-x C-fDired mode loaded when a directory is specified as load file
        Left, right arrow keys or p, nPrevious and next file, respectively
        EnterVisit this file in this window
        oVisit this file in a new window
        gRefresh directory view
        mMark file
        uUn-mark file
        dMark a file for later deletion
        xDelete all files marked for deletion (Emacs prompts for confirmation)
        DDelete this file right now (Emacs prompts for confirmation)
        CCopy this file, or copy currently marked files (Emacs prompts for destination)
        RRename/move this file, or rename/move currently marked files (Emacs prompts for destination)
        MChmod this file, or chmod currently marked files (Emacs prompts for new permissions)
        OChown this file, or chown currently marked files (Emacs prompts for new owner)
        GChgrp this file, or chgrp currently marked files (Emacs prompts for new group)
        +Create directory (Emacs prompts for directory name)
        !Execute shell command on this file, or currently marked files (Emacs prompts for command)
        + + +

        +Shell Modes

        + + + + + + + + + + + + + + + + +
        M-x shellShell mode, use M-p and M-n for command history
        M-x eshellCross-platform Emacs Lisp shell emulator, use arrow keys for command history
        M-x ansi-termFull terminal emulator, suitable for full-screen applications.
        + + +

        +Getting Help

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-h tEmacs tutorial
        C-h aApropos (Emacs prompts for keyword or regexp)
        C-h iLoad info browser
        C-h mDisplay help on current mode
        C-h fDisplay help on function (Emacs prompts for function)
        C-h kDisplay help on key (Emacs prompts for key)
        M-x manDisplay a man page in a new buffer (Emacs prompts for man page)
        + + +

        +w3m mode

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        M-x w3mStart browsing web with emacs-w3m.
        qClose all emacs-w3m windows, without deleting buffers.
        QExit browsing web. All emacs-w3m buffers will be deleted.
        RETDisplay the page pointed to by the link under point.
        C-c C-cSubmit the form at point.
        RReload the current page.
        rRedisplay the current page.
        TABMove the point to the next anchor.
        M-TABMove the point to the previous anchor.
        BMove back to the previous page in the history.
        NMove forward to the next page in the history.
        UVisit the web page.
        HGo to the Home page.
        M-dDownload the URL.
        dDownload the URL under point.
        \Display the html source of the current page.
        SPCScroll up the current window, or go to the next page.
        bScroll down the current window, or go to the previous page.
        >Scroll to the left.
        <Scroll to the right.
        .Shift to the left.
        ,Shift to the right.
        M-lRecenter horizontally.
        jNext line.
        kPrevious line.
        lForward char.
        hBackward char.
        sDisplay the history of pages you have visited in the session.
        SPrompt for a search query and submit it to google.
        vDisplay the bookmarks list.
        aAdd a url of the current page to a new bookmark.
        M-aAdd the url under point to a new bookmark.
        + + +

        +Sample .emacs

        + +
        +;; Sample ~/.emacs file
        +;;
        +;; Un-comment what you want to enable and re-start Emacs
        +;;
        +;;Load iswitch mode
        +;;(require 'iswitchb)
        +
        +;;Make text mode the default for new buffers
        +;;(setq default-major-mode 'text-mode)
        +
        +;;Turn on refill-mode whenever text mode is entered
        +;;(add-hook 'text-mode-hook
        +;;  '(lambda () (refill-mode 1)))
        +
        +;;Enable syntax highlighting when it's allowed
        +;;(when (fboundp 'global-font-lock-mode)
        +;;  (global-font-lock-mode t))
        +
        +;;Fix the backspace key
        +;;(normal-erase-is-backspace-mode 1)
        +
        +;;Use cperl-mode for editing Perl code, it is better than perl-mode
        +;;(defalias 'perl-mode 'cperl-mode)
        +
        +;;Don't blink my cursor, please
        +;;(blink-cursor-mode nil)
        +
        +;;Display the current time in the modeline
        +;;(display-time-mode t)
        +
        +;;Start the emacs server
        +;;
        +;;When this is running, programs calling emacsclient open a buffer
        +;;in the already running emacs. Useful in mutt or pine for composing
        +;;mail in Emacs. Type C-x # to exit client buffer and send the text
        +;;back to the application that called it.
        +;;(server-start)
        +
        + +
        +

        $Id: emacs-cheatsheet.html,v 1.4 2013/01/18 11:00:13 nullogic Exp $

        +
        + + + + + + diff --git a/site-tutorials/emacs-tutorial.html b/site-tutorials/emacs-tutorial.html new file mode 100644 index 0000000..9338815 --- /dev/null +++ b/site-tutorials/emacs-tutorial.html @@ -0,0 +1,939 @@ + + + + Emacs Tutorial + + + + + +

        Emacs Tutorial

        + + + + +

        +Getting Started

        + +

        Emacs is an extensible, customizable, full-screen text editor. You can +learn enough to be productive in Emacs in 30 minutes, but there is +enough to learn about Emacs to keep you busy for years. The goal of +this tutorial is to show you enough so that you are comfortable using +Emacs as a work environment, not just as a text editor. This document +refers to GNU Emacs version 24 (the version installed on SDF).

        + +

        Start by typing emacs at the shell prompt, read the splash screen and +hit any key to clear it. You'll be in a so-called scratch buffer. A +buffer is a place in Emacs that usually contains the text of a file +for editing (but can contain other text, like error messages, command +output or directory contents). Anyway, the scratch buffer is just that +- a place to scratch notes or otherwise put temporary snippets of text +you don't care to save. When you exit Emacs, the contents of the +scratch buffer are discarded.

        + +

        You will see a white or grey line at the bottom of the Emacs window, +with some information displayed like the name of the buffer or file +you are viewing, the line number your cursor is on, and whether or not +the current buffer has been modified (indicated by two asterisks to +the left of the buffer name). This is called the modeline. Like +everything else in Emacs, what is displayed in the modeline is +configurable, but the defaults should work fine for most people.

        + +

        Just below the modeline is a blank line called the echo area or +minibuffer. The minibuffer is used when Emacs has to gather data from +the user, like which filename to edit, or when Emacs has to display +information to the user, like error messages. You will also see Emacs +command sequences echoed here as you type them.

        + + +

        +Basic Commands

        + +

        Emacs is a non-modal editor, meaning when you have a file loaded into +a buffer, you can type text and it will appear directly in the +buffer. You don't need to be in a special insert mode as in vi. That +also means cursor movement and other text manipulation commands are +not mapped to single alphabetic characters as in vi. Commands in Emacs +are typically entered with a two- or three-key sequence, either +Control- or Alt- followed by a one- or two-key sequence. The Control +key in the Emacs documentation is denoted by "C" and Alt by "M" (Emacs +documentation refers to the Alt key as Meta, hence the "M". The Esc +key on most keyboards acts as an Alt or Meta key as well). For +example, to quit Emacs, you type C-x C-c, meaning you hold down the +Control key, hit the "x" key and release it, then hit the "c" key and +release it. To move up a screenfull of text, you type M-v, meaning +hold down the Alt key and type "v". With that in mind, here are a few +useful key sequences:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-x C-fFind file and load into buffer (Emacs prompts for filename)
        C-x C-sSave the current buffer
        C-x C-wSave the current buffer under a different name (Emacs prompts for the new name)
        C-x C-cQuit Emacs, prompting if you have not saved any buffers
        Arrow keys or C-f, C-b, C-n, C-pRight (forward), left (back), down (next), up (previous), respectively
        C-kDelete from cursor to end of line
        C-aGo to start of line
        C-eGo to end of line
        C-vGo down a page
        M-vGo up a page
        C-/Undo
        C-_Undo (alias for C-/)
        C-x uUndo (alias for C-/)
        C-gAbort the current command
        C-lRedraw and center screen at cursor
        M-<Go to start of buffer
        M->Go to end of buffer
        BackspaceDelete previous character
        + + +

        +Getting Help

        + +

        GNU Emacs has excellent help facilities. Most of them are accessed +with the prefix C-h. The Emacs tutorial is an interactive introduction +you can work through fairly quickly to learn the most common key +bindings. C-h i accesses the GNU hypertext info browser from within +Emacs, displaying system info pages (including the Emacs manual +itself). Here are some of the help-related key bindings:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-h tEmacs tutorial
        C-h iLoad info browser
        C-h mDisplay help on current mode
        C-h fDisplay help on function (Emacs prompts for function)
        C-h kDisplay help on key (Emacs prompts for key)
        M-x manDisplay a man page in a new buffer (Emacs prompts for man page)
        + + +

        +Extended Commands and Command Completion

        + +

        Emacs has the concept of extended commands, which consist of M-x +followed by the name of the command. As an example of a useful +extended command, sometimes the backspace key gets mapped to C-h (I +find this happens sometimes under remote screen sessions, you'll know +this is the case if you hit the backspace key twice and the emacs help +buffer pops up, just hit C-g to clear the help window). To get the +backspace key to act as it should (i.e., it deletes the previous +character), you enter M-x normal-erase-is-backspace-mode. That's a lot +to type, so you can take advantage of Emacs' command-completion by +typing a partial command and hitting the Tab key one or more times. In +this case, you type M-x normal-e and hit Tab, and Emacs will complete +the command for you. You can then just hit Enter to execute the +command. If you don't type enough of the command to make it unique, +Emacs will display a list of alternatives for you to choose from. For +example, if you type M-x normal- and hit the Tab key, Emacs will pop +up a buffer named *Completion* with with two +alternatives for you to choose from: normal-mode and +mormal-erase-is-backspace-mode. Just type a bit more of the command +you want and hit tab again to narrow the completion list or to +complete the command if it is the only one left.

        + + +

        +Kill & Yank (Cut/Copy and Paste)

        + +

        Most Emacs commands operate on the region defined by the point, which +is the location of the cursor at any given time, and the mark, which +is set with the command C-space. To copy or cut a region of text, move +the cursor to the start of the text area you are interested in and +type C-space. You will see "Mark set" in the echo area. Now move the +cursor to the end of the text region (which moves the point) and type +M-w for copy or C-w for cut (both called killing text). The text you +copy or cut is stored by Emacs in the kill-ring, which is a circular +buffer that stores the text snippets you kill in a last-in-first-out +order. To paste the most recently stored text, move the cursor to +where the text should be inserted, and type C-y. The "y" stands for +yank, what you'll see paste referred to in the Emacs help +documentation (remember Emacs pre-dated modern windowing systems and +other full-screen editors, so the terms cut and paste were not in use +yet). After a yank (C-y) command, you can replace the inserted text +with earlier kills in turn by typing M-y one or more times. Each time +you press M-y the next block of killed text is popped off of the kill +ring and inserted into your buffer, replacing the last insert at the +same time.

        + +

        Here are the commands we discussed above, and a few other useful ones:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-spaceSet the mark
        C-wCut (kill)
        M-wCopy (kill)
        C-yPaste (yank)
        M-yPaste (yank) next saved selection
        C-x hSet point to start of buffer and mark to end of buffer (select the entire buffer)
        C-x C-xGo back to the last mark that was set
        + + +

        +Search & Replace

        + +

        Emacs has a nice search mode called incremental search. To use it, +type C-s. The text "I-search:" will appear in the echo area. Now +start typing a search string. As you type, Emacs will search for your +string in real-time (starting at point), highlighting any matches it +finds. You can backspace and re-type text, and the search will +continue to change with the text you type. When you find a match, you +can hit C-s to search again and jump to the next match, or you can +just hit Enter to exit the search mode and leave the cursor at the +last match. C-g will abort the search and put your cursor back where +you started. Searches will re-start at the top of a buffer if they hit +the bottom. You can search backwards in a similar fashion with C-r.

        + +

        To replace text that matches a search pattern, type M-%. You'll see +"Query replace:" in the echo area. Type a search string, and hit +Enter. The echo area will now display "Query replace <search string> +with:". Type the replacement string, and hit Enter again. Emacs will +search through your buffer, looking for the search string. When it +finds it, it will display "Query replacing <search string> with +<replacement string>: (? for help)". Type "y" to replace this match +and move onto the next, or "n" to skip this match. Type "!" to replace +this occurrence of the search string and all other occurrences in your +buffer without prompting. As usual, you can type C-g to abort a +search/replace operation.

        + +

        All searches in Emacs are case-insensitive by default, unless you type +at least one capital letter in your search string - in that case, the +search becomes case-sensitive.

        + +

        One nice feature you'll notice is that Emacs remembers the search and +replacement strings you've used, so if you type M-% again, the last +search/replace operation can be repeated by just hitting the Enter +key. Prior search and replacement strings can be accessed with up- or +down-arrow keys or M-p and M-n (for previous- and next-, +respectively) - this is like the history mechanism in the Bash shell.

        + +

        Another nice tip during searches is that C-w will highlight the word +around the cursor, then successive words each time it's pressed during +a search (so the highlighted area will grow with each press of +C-w). You can search again by typing C-s, this time the search +string is whatever was highlighted.

        + +

        Here are the search and replace commands we discussed:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-sSearch forward
        C-rSearch backward
        M-%Search and replace
        C-gAbort a search
        C-wDuring a search, highlight the word around the cursor
        Up, down arrow keys or M-p, M-nAccess search string history
        + + +

        +Emacs Modes

        + +

        Emacs buffers are associated with one so-called major mode and one or +more minor modes. Major modes typically denote a type of file, and are +associated with special command sequences and syntax highlighting just +for that file type. Minor modes change the behavior of an associated +major mode in small ways. For example, the major mode for editing text +is called text-mode, while the one for editing HTML is called +html-mode. Both text and html modes have a minor mode called +refill-mode that automatically formats paragraphs of text as you type +(similar to the behavior you expect from a word processor). You can +switch modes by just typing M-x modename, so M-x html-mode would +switch you into html-mode. Emacs can usually figure out the mode to +use by the file extension, so if you visit (load with C-x C-f) a file +ending in .html or .htm, html-mode will be selected for you, and if +you visit a file ending in .txt, text mode will be selected.

        + +

        As an example, say you want to create a new text document. You type +C-x C-f foo.txt and Emacs creates an empty buffer for you named +"foo.txt". Notice the modeline displays "(Text)" to indicate the major +mode. Now type M-x refi and hit the Tab key. Emacs will complete +"refill-mode". Hit enter, now the modeline displays "(Text Refill)" to +indicate the major and minor modes in effect. Experiment with refill +mode by typing some text and watch as Emacs wraps the lines for +you. Now go back and add or delete some text and notice how the +paragraph re-formats itself. Modes toggle on and off, so a second M-x +refill-mode will turn refilling off. Type some text and notice Emacs +no longer wraps lines or formats paragraphs for you. The mode for +buffers not associated with any special file type is called +fundamental-mode. This is the mode your scratch buffer is put in at +startup.

        + +

        There are lots of Emacs major modes, many of which are useful for +programmers. There is c-mode, perl-mode, and c++-mode, for +example. Each mode has its own key bindings and syntax highlighting +rules. You can see the details of the currently selected major mode by +typing C-h m. To enable syntax highlighting on a source-code file, +you can type M-x global-font-lock-mode (on some operating systems, +packaged versions of Emacs will enable font lock [syntax highlighting] +for you automatically).

        + +

        As an example of special key bindings, in html-mode, the key sequence +C-c C-c h will insert a properly formatted hyperlink into the text, +prompting you for the URL first. In other modes this key sequence will +have no effect.

        + +

        Here are some of the most useful mode commands:

        + + + + + + + + + + + + + + + + + + + + +
        M-x modenameToggle the given major or minor mode
        C-h mDisplay help on the current major mode, including any special key bindings in effect
        M-qUsed in text-mode to reformat a paragraph of text manually
        M-x global-font-lock-modeToggle syntax highlighting
        + + +

        +Buffers

        + +

        When you visit a file with C-x C-f, Emacs loads the file into a new +buffer created just for that file. Existing buffers are not destroyed, +but persist and can be switched to with C-x b. Emacs will prompt you +for a buffer name to switch to; tab-completion works here as it does +in other places. One tip that I wish I had known when I first started +using Emacs is to use a special mode called iswitch mode to help +manage buffers. Since it's not uncommon to have dozens of buffers in +an Emacs editing session, you can easily forget buffer names. With +iswitch mode enabled, a C-x b displays a list of buffers in the echo +area that changes in real-time as you type characters. You don't even +have to type the first few letters of a buffer name, any substring of +a buffer name will do. To enable iswitch mode, type the extended +command M-x iswitchb-mode (we'll see later how to permanently enable +modes like this in a startup file). To see a list of all buffers, type +C-x C-b. The buffer list will appear in a new window. Here is a list +of some useful buffer commands:

        + + + + + + + + + + + + + + + + + + + + +
        C-x bSwitch to another buffer
        C-x C-bDisplay buffer list
        C-x kKill current buffer (Emacs prompts for confirmation)
        M-x iswitchb-modeEnable iswitch mode, for smart buffer name completion with C-x b
        + + +

        +Windows

        + +

        The Emacs screen area can be divided into multiple windows. Each +window contains one buffer, so the contents of a window can change +depending on the buffer it contains. The most common way to create new +windows is to split the screen into two regions with C-x 2 or C-x +3. The first splits the screen in half horizontally, the second splits +it vertically. Any Emacs window can be split multiple times, so if you +have a large display, you could have lots of windows open. You can +cycle through visible windows with C-x o (think of the "o" as meaning +"other window"). When you do have another window open, it's sometimes +useful to scroll the other window without leaving your current +one. You can do this with C-M-v. This is particularly useful for when +Emacs pops up a completion or help buffer in a new window that you +would like to scroll through.

        + +

        You can close a window with C-x 0 or C-x 1. The first closes the +window you are currently in, the second closes all the other windows, +but leaves the window you are currently in open for you. Closing a +window does not destroy the buffer it contains, so you can think of a +window as a view into a buffer (in fact you can have multiple windows +visiting different parts of the same buffer). Here is a list of the +most useful window commands:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        C-x 0Close this window
        C-x 1Close all other visible windows
        C-x 2Split horizontally
        C-x 3Split vertically
        C-x oSwitch to other window
        C-M-vScroll other window
        + + +

        +Dired Mode

        + +

        If you type the name of a directory after a C-x C-f command, Emacs +will display the directory contents in a new buffer. By default, Emacs +displays the file name, permissions, owner/group, size and timestamp +of each file on a line by itself. You can visit a file by just moving +the cursor to it and hitting Enter. Dired mode is unlike other modes +in that single keys are used to effect commands. Here is a list of the +most useful dired commands:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Left, right arrow keys or p, nPrevious and next file, respectively
        EnterVisit this file in this window
        oVisit this file in a new window
        gRefresh directory view
        mMark file
        uUn-mark file
        dMark a file for later deletion
        xDelete all files marked for deletion (Emacs prompts for confirmation)
        DDelete this file right now (Emacs prompts for confirmation)
        CCopy this file, or copy currently marked files (Emacs prompts for destination)
        RRename/move this file, or rename/move currently marked files (Emacs prompts for destination)
        MChmod this file, or chmod currently marked files (Emacs prompts for new permissions)
        OChown this file, or chown currently marked files (Emacs prompts for new owner)
        GChgrp this file, or chgrp currently marked files (Emacs prompts for new group)
        +Create directory (Emacs prompts for directory name)
        !Execute shell command on this file, or currently marked files (Emacs prompts for command)
        + + +

        +Shell Modes

        + +

        It is possible to run a shell from within Emacs; there are a few +different ways to do so. The easiest way is to type M-x shell. This +creates a a buffer called *shell* with a shell +prompt. Shell commands you type are sent to a system shell and the +output displayed in the shell buffer. One thing you'll notice in shell +mode is that the arrow keys move you around the buffer - they don't +access command history as they do in most shells. To access command +history, use M-p and M-n for previous and next, respectively.

        + +

        One of the drawbacks of shell-mode is that it is not suitable for +full-screen applications (like less, lynx, mutt or pine), to run these +inside of Emacs, you need to use a terminal mode. Type M-x ansi-term, +and specify which shell you would like to run (your default will be +the shell you are using, e.g. /usr/pkg/bin/bash).

        + +

        On platforms without an underlying shell (e.g., Windows), Emacs has a +terminal emulator written entirely in Emacs Lisp. To enter it, type +M-x eshell. While not suitable for full-screen applications, it does +emulate a limited subset of shell features rather nicely. In this +shell mode, the arrow keys work as you would expect, and most shell +builtins and shell aliases work as well. Some external commands such +as grep work, although input/output redirection is not yet +implemented.

        + +

        Here are the commands we discussed above:

        + + + + + + + + + + + + + + + + +
        M-x shellShell mode, use M-p and M-n for command history
        M-x eshellEmacs Lisp shell emulator, use arrow keys for command history
        M-x ansi-termFull terminal emulator, suitable for full-screen applications.
        + + +

        +Emacs Startup and Configuration

        + +

        When Emacs starts it will load a file named .emacs in your home +directory and execute the commands found in it. This file is written +in Emacs Lisp, but you can use it without knowing any Lisp, by copying +other people's sample files. It is mainly useful for making certain +extended commands a permanent part of your Emacs experience, so you +don't have to type them every time you start Emacs. In the example +below, comment lines start with one or more semi-colons, so you would +delete the semi-colons to enable the given feature.

        + +
        +;; Sample ~/.emacs file
        +;;
        +;; Un-comment what you want to enable and re-start Emacs
        +;;
        +;;Load iswitch mode
        +;;(require 'iswitchb)
        +
        +;;Make text mode the default for new buffers
        +;;(setq default-major-mode 'text-mode)
        +
        +;;Turn on refill-mode whenever text mode is entered
        +;;(add-hook 'text-mode-hook
        +;;  '(lambda () (refill-mode 1)))
        +
        +;;Enable syntax highlighting when it's allowed
        +;;(when (fboundp 'global-font-lock-mode)
        +;;  (global-font-lock-mode t))
        +
        +;;Fix the backspace key
        +;;(normal-erase-is-backspace-mode 1)
        +
        +;;Use cperl-mode for editing Perl code, it is better than perl-mode
        +;;(defalias 'perl-mode 'cperl-mode)
        +
        +;;Don't blink my cursor, please
        +;;(blink-cursor-mode nil)
        +
        +;;Display the current time in the modeline
        +;;(display-time-mode t)
        +
        +;;Start the emacs server
        +;;
        +;;When this is running, programs calling emacsclient open a buffer
        +;;in the already running emacs. Useful in mutt or pine for composing
        +;;mail in Emacs. Type C-x # to exit client buffer and send the text
        +;;back to the application that called it.
        +;;(server-start)
        +
        + +

        The above example gives you a good idea of what can be done in a +.emacs file, for more in-depth configuration Emacs has a customization +mode that can be accessed with the extended command M-x +customize. Running it will put you in a curses-style application where +you can choose from customization menus and have your changes written +to your .emacs file automatically.

        + + +

        +Browsing the Web in Emacs with w3m

        + +

        Emacs w3m mode will use the excellent w3m text-mode browser and allow you to +surf the web in an Emacs buffer. To get started, add the following to your +.emacs file:

        + +
        +(require 'w3m-load)
        +
        + +

        Then restart emacs, or place the cursor at the end of each line in turn and +press C-x e. Then you can open a new w3m buffer with M-x w3m. The basic key +bindings are as follows (note that these are taken from the w3m-mode help +page, which can be accessed at any time in a new window with C-h m):

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        M-x w3mStart browsing web with emacs-w3m.
        qClose all emacs-w3m windows, without deleting buffers.
        QExit browsing web. All emacs-w3m buffers will be deleted.
        RETDisplay the page pointed to by the link under point.
        C-c C-cSubmit the form at point.
        RReload the current page.
        rRedisplay the current page.
        TABMove the point to the next anchor.
        M-TABMove the point to the previous anchor.
        BMove back to the previous page in the history.
        NMove forward to the next page in the history.
        UVisit the web page.
        HGo to the Home page.
        M-dDownload the URL.
        dDownload the URL under point.
        \Display the html source of the current page.
        SPCScroll up the current window, or go to the next page.
        bScroll down the current window, or go to the previous page.
        >Scroll to the left.
        <Scroll to the right.
        .Shift to the left.
        ,Shift to the right.
        M-lRecenter horizontally.
        jNext line.
        kPrevious line.
        lForward char.
        hBackward char.
        sDisplay the history of pages you have visited in the session.
        SPrompt for a search query and submit it to google.
        vDisplay the bookmarks list.
        aAdd a url of the current page to a new bookmark.
        M-aAdd the url under point to a new bookmark.
        + +

        There are many more features in w3m-mode, the mode help text details them +all with keybindings. To end your session and close all w3m buffers, just +press Q and answer y when prompted.

        + + +

        +Where to Go From Here

        + +

        Below are some links to resources and useful Emacs Lisp packages. Many Linux +and BSD-based operating systems have packages for most of these, so check +there before you attempt to install by hand:

        + +
          +
        • Emacs Tour: Guided tour of GNU Emacs with lots of screenshots.
        • +
        • Muse: A publishing and authoring environment that converts simple text markup into HTML, PDF, Texinfo, Docbook, LaTeX, Blosxom blog entries and more. This tutorial was written using muse-mode.
        • +
        • Emacs Wiki: Loads of tips and howtos. + +
          +

          $Id: emacs-tutorial.html,v 1.17 2015/04/30 11:30:50 slugmax Exp $

          +
        • +
        + + + + + + diff --git a/site-tutorials/email-blacklist-issues.html b/site-tutorials/email-blacklist-issues.html new file mode 100644 index 0000000..fc239c4 --- /dev/null +++ b/site-tutorials/email-blacklist-issues.html @@ -0,0 +1,2 @@ + +$Id$ diff --git a/site-tutorials/email_at_sdf.html b/site-tutorials/email_at_sdf.html new file mode 100644 index 0000000..aeb29f6 --- /dev/null +++ b/site-tutorials/email_at_sdf.html @@ -0,0 +1,194 @@ + + +

        Accessing your SDF Email

        + +under construction + +

        There are several ways to get and send email at SDF, but the +different options depend on your membership(s) here. This guide is +intended to describe the options simply and clearly, by membership +level

        + +

        Membership Levels and Email Access

        +

        Here are the membership levels that matter for email (see SDF join page for more details):

        + +
        • User +
          • Pre-validated User: This is before you are "validated" by +either sending a nominal amount of money to SDF(enter +validate at shell) or by finding a +MetaARPA member to validate +you
          • +
          • Validated User/ARPA
          • +
          +
        • VPM/VHOST*
        • +
        • MetaARPA
        • +
        +*VHOST includes VPM + +

        +The differences of the above accounts, besides the cost, is that VPM, +VHOST and MetaARPA are annual memberships, so require continuing support +of SDF, while User and ARPA are lifetime memberships, and only require +payment once. + +

        +

        Ways to Get and Send Email at SDF

        By default your E-mail +Address is your SDF username, which by default works with a couple of +domain names (you can also choose the domain you would like to use +from the list of SDF domain names).

        + +

        So if your username is "coffee" you can try sending yourself a mail +with your existing E-mail account to:

        +

        coffee@sdf.lonestar.org or +coffee@freeshell.org. Then you can try to read it.

        + +

        Ways to read and send your SDF mail include the following:

        + +

        + +

        Email Programs from Shell (Memberships: User or ARPA or +MetaARPA)

        + +

        You can always access your SDF mail account through any of several +email programs installed on the server. All of these emails access your +"mail spool", where your email is put by the mail server.

        +