Favourite Computing Tools

Johnny Castaway
An old screen saver, now given away free. It has a man stranded on a desert island. An information page is at: http://www.personal.u-net.com/~newdawn/johnny/home.html the software is at www.sierra.com.

WebShots
Get a new picture for your computer wallpaper every day. Since being taken over by Excite, it's removed the licensing and you can keep as many pictures as you like

Home Pages
I use My Yahoo mostly. It has the best news sections, search engine, ties in with my Yahoo mail and bookmarks. I also use Excite, not as good as Yahoo generally, but it's TV section is better, letting you to default the times to be shown on the page, and letting you select 'favourite shows'. Also displays Tides, Sun and Moon rise and set times.

NetTerm
A free terminal emulator, useful for PCs with no existing terminal emulation software, and better than quite a few 'pay' terminal emulators. Only really beaten by KeaTerm and Hummingbird Host Explorer. You can find this by typing netterm into Yahoo.

Perl FTP Daemon
This provides an FTP daemon, with the plus that you can quickly hack the code to do whatever you want. It's good enough for testing but not production ready. I used it to model a live FTP site that ran on an IBM 360 clone, that returned a different directory listing format than is normal.

Lynx
A Text only web browser, useful if you only have a NetTerm session available.

Battlestar
A traditional text only adventure game. It used to be distributed by sun on /usr/games. However most suns on companies dont have this loaded. It is available from ftp.freebsd.com

Ascii Art - Beach Scene.
This came from Joan Stark's Ascii Art Gallery  and is displayed by my current .logout

                         |
                     \       /            _\/_
                       .-'-.              //o\  _\/_
    _  ___  __  _ --_ /     \ _--_ __  __ _ | __/o\\ _
  =-=-_=-=-_=-=_=-_= -=======- = =-=_=-=_,-'|"'""-|-,_
   =- _=-=-_=- _=-= _--=====- _=-=_-_,-"          |
     =- =- =-= =- = -  -===- -= - ."

Cookie Server
A fortune cookie server exists at cookie.update.uu.se:8445
You can either telnet to it, and you will be given a cookie, or you can use this c program:

/* kex2.c by Bjorn Knutsson <[email protected]>
 *
 * This program compiles just fine on BSD 4.3-Reno, HP-UX v9 and SunOS 4.1.3
 * using:
 *  gcc -O2 -o kex2 kex2.c
 *
 * On Solaris 2, you probably need to say:
 *  gcc -O2 -o kex2 kex2.c -lsocket -lnsl
 */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>

#ifndef COOKIEPORT
#define COOKIEPORT      8445
#endif
#ifndef COOKIEHOST
#define COOKIEHOST      "Cookie.Update.UU.SE"
#endif

#define GETOPT                  /* Comment out if you don't have getopt */

#define BUFSIZE 40
#define SHORTMAX 3
#define LONGMIN 5
#define MEDMIN 2
#define MEDMAX 5
#define RESMAX 8

main(int argc, char **argv) {
  char mybuf[BUFSIZE];
  struct hostent *host;
  struct sockaddr_in address,other;
  int mysock, rval, minlen = 0, maxlen = 100;

#ifdef GETOPT
  extern char *optarg;
  extern int optind;
  int ch;

  if ((ch = getopt(argc, argv, "1rmslh")) != EOF)
    switch (ch) {
#else
  if (argc > 1 && (argv[1][0] == '-'))
    switch (argv[1][1]) {
#endif
      case '1':
        maxlen = 1;
        break;
      case 'r':
        maxlen = RESMAX;
        break;
      case 'm':
        minlen = MEDMIN;
        maxlen = MEDMAX;
        break;
      case 's':
        maxlen = SHORTMAX;
        break;
      case 'l':
        minlen = LONGMIN;
        break;
      case 'h':
        printf("%s [-l | -m | -r | -s | -1]\n",argv[0]);
        exit(0);
        break;
      default:
        fprintf(stderr,"Unknown switch '%s'\n",argv[1]);
        exit (10);
        break;
    }

  mysock = socket(AF_INET,SOCK_STREAM,0);
  if (mysock < mysock) exit((perror("Socket"),1));

  host = gethostbyname(COOKIEHOST);
  if (!host) {
    fprintf(stderr,"Unknown host: %s\n",COOKIEHOST);
    exit(2);
  }

  address.sin_family = AF_INET;
  address.sin_port = htons(COOKIEPORT);
  bcopy((char *)host->h_addr, (char *) &address.sin_addr, host->h_length);

  if (connect(mysock, (struct sockaddr *) &address, sizeof(address)) < 0) {
    exit((perror("Connect"),2));
  }

  sprintf(mybuf,"%d %d\n",minlen,maxlen);
  if (write(mysock,mybuf,strlen(mybuf)) < 0) exit((perror("Write"),3));

  while (bzero(mybuf,BUFSIZE), rval = read(mysock,mybuf,BUFSIZE-1)) {
    if (rval < 0) exit((perror("Read"),4));
    printf("%s",mybuf);
  }
  close(mysock);
  exit(0);
}

Back to home page

Hosted by www.Geocities.ws

1