Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Bigger doesn't imply better. Bigger often is a sign of obesity, of lost control, of overcomplexity, of cancerous cells



Books Recommended Links  FTP Protocol FXP Reference FAQs

Ftp Filesystems

NetDrive Mirroring Tools FTP Security FTP over weak links FTP by mail Web publishing
Free FTP clients for Windows Filezilla Total Commander FAR Midnight commander Command line controlled FTP clients WebDrive
wu-ftpd ProFTPD pure-ftpd vsftpd Tips Humor Etc

File eXchange Protocol - Wikipedia, the free encyclopedia

File eXchange Protocol (FXP) and (FXSP) is a method of data transfer which uses the FTP protocol to transfer data from one remote server to another (inter-server) without routing this data through the client's connection. Conventional FTP involves a single server and a single client; all data transmission is done between these two. In the FXP session, a client maintains a standard FTP connection to two servers, and can direct either server to connect to the other to initiate a data transfer. The advantage of using FXP over FTP is evident when a high-bandwidth server demands resources from another high-bandwidth server, but only a low-bandwidth client, such as a network administrator working away from location, has the authority to access the resources on both servers.

Enabling FXP support, however, can make a server vulnerable to an exploit known as FTP bounce. As a result of this, FTP server software often has FXP disabled by default.

Some FTP Servers such as glFTPd, RaidenFTPd, and wzdftpd support negotiation of a secure data channel between two servers using either of the FTP protocol extension commands; CPSV or SSCN. This normally works by the client issuing CPSV in lieu of the PASV command - or by sending SSCN prior to PASV transfers -, which instructs the server to create either a SSL or TLS connection. However, both methods - CPSV and SSCN - are susceptible to Man-in-the-Middle attacks, since the two FTP servers do not verify each other's SSL certificates. SSCN was first introduced by RaidenFTPd and SmartFTP in 2003 and has been widely adopted now.

Site-to-Site Transfers

Because site-to-site transfers are considered a security risk, many servers do not support them or optionally decline to do so. The following table displays supporting servers.

BLUE servers must be present for successful site-to-site transfer.

RED servers make site-to-site transfers impossible.

BLACK servers can perform site-to-site transfers if a BLUE server is on the other side.

A site-to-site transfer with at least one RED server or two BLACK servers will fail.

You can configure the ProFTPD 1.2.3 Orc3 server, the wu-ftpd 2.6.0 server and the MS IIS 5.0 server to allow FXP.

Top Visited
Past week
Past month


Old News ;-)

Site-to-Site Transfers

Separate CONTROL and DATA connections allows transmitting data not only between client and server; it allows a client to control two FTP servers at once and transfer data between them by issuing a PASV command on one server and then a matching PORT command on the other. Thus, one server connects to the other instead of to a client. This behavior is not a hack; it is part of the official FTP specs. Today, it is widely known as FXP. The chart below shows servers that support FXP.

To perform a site-to-site transfer

  1. Connect to each site (source and destination).
  2. On the main menu, click Window > Tile.
  3. Drag the file from one Remote Pane to another. The Queue pane displays a double arrow (<->), to indicate a site-to-site transfer.

To display more than one remote site at a time

  1. Connect to two or more sites.
  2. On the main menu, click Window > Cascade or Tile.
  3. To return to the default, tabbed view, click Maximize in the upper right of any remote pane.

  • If you are transferring between sites with SSH2 or SSL connections, transfers between them are not secure unless both servers support SSCN.

  • Because site-to-site transfers are considered a security risk, many servers do not support them or optionally decline to do so. The following table displays supporting servers.

BLUE servers must be present for successful site-to-site transfer.

RED servers make site-to-site transfers impossible.

BLACK servers can perform site-to-site transfers if a BLUE server is on the other side.

A site-to-site transfer with at least one RED server or two BLACK servers will fail.

You can configure the ProFTPD 1.2.3 Orc3 server, the wu-ftpd 2.6.0 server and the MS IIS 5.0 server to allow FXP.

fxp transfers

loo, i am trying to enable fxp transfers on my ftpd, i added this to my ftpaccess file

passive address
passive ports 1024 2048

port-allow all
pasv-allow all

and still it doesn't work it seems i can do transfers between local sites but not yet between remote sites .... how is that ? possible

Setting FXP on FTP servers. V.T.G.M.B.X

October 10, 2008 - veter | Posted in Unix Administration | Tags: ftp.

Small guide how to setup most popular FTP servers for site-to-site transfers ( FXP ).

ProFTPD FTP server:
Config file: /etc/proftpd.conf

Add "AllowForeignAddress on" in the Global sections of the configuration file.

vsftpd FTP server:
Config file: /etc/vsftpd/vsftpd.conf

Add lines to config:


wu-ftpd FTP server:
Config file to edit: /etc/ftpaccess

Dirrectives in config:

port-allow {ArbitraryClassName} {HostAddrs}
pasv-allow {ArbitraryClassName} {HostAddrs}

If you want to allow FXP for everyone just use predefined class "all":

port-allow all
pasv-allow all

If you want to give FXP to clients from some addresses only you have to create new class for them first:

class {ArbitraryClassName} {AccessTypes} {HostAddrs} [HostAddrs]


class fxpclass real,guest,anonymous * *
class all real,guest,anonymous *

This will define a new class "fxpclass". Make sure you have put this definition before the class "all" definition.

Now you can use the new class in FXP options:

port-allow fxpclass
pasv-allow fxpclass

Setting up servers for FXP

To configure wu-ftpd to allow FXP

Requirements: wu-ftpd 2.6.0


First, you need to add an additional class for users that are allowed to do FXP (unless you just want to use the predefined class "all"). If you add a new class, this line MUST be before the catch-all class "all", or the client will match class "all" first.

The line is of the form:
class {ArbitraryClassName} {AccessTypes} {HostAddrs} [HostAddrs]

Then you add lines to allow PASV and PORT commands to hosts whose IPs don't match the client (to allow FXP)

These lines are of the form:
port-allow {ArbitraryClassName} {HostAddrs}
pasv-allow {ArbitraryClassName} {HostAddrs}


class newclass real,guest,anonymous *
class all real,guest,anonymous *

port-allow newclass
pasv-allow newclass

This basically adds a new class (creatively called "newclass") - note that it appears BEFORE the line containing the class "all" - this new class contains all hosts in the subdomains and (domains obviously made up by yours truly), in order to limit who we will allow to do FXP. The port-allow and pasv-allow lines basically allow FXP connections to anywhere if your client is in the class "newclass".

Setting up an FTP server on SUSE Linux 9.1 Professional - Antionline Forums - Maximum Security for a Connected World

Setting up PureFTPd on SUSE Linux 9.1 Professional

Wriiten by : Gore


SUSE Linux makes it fairly easy to have a stable and fast FTP server. This should work on just about any version of SUSE, as I've had it on 9.1 and 8.2 Professional, and the only reason I'm saying 9.1 is because that is what I'm currently using as my FTP server for my LAN.

I've been using Linux for a year and a half now, and I've learned a lot. I've never read a manual for setting up a server of any kind on SUSE Linux, but it seems fairly easy too me as I've done it now quite a few times, and the reason I didn't need a manual, was because I just read the configuration file, and went from there.

As I type this, I'm transferring 7 GB of data from this box, over too my newly installed XP Home SP2 box so I can burn the information to CD fast.

FTP servers:

FTP servers can come in very handy. My LAN has 5 machines, and I don't always have money to buy CD - Rs to do back ups, and on one of my machines, my laptop, I don't have a CD-R drive on it, so I have to rely on FTP to do back ups. Which is fine, because my LAN is pretty fast, and I have a lot of disk space around.

One thing I don't like and won't do, is an anonymous FTP server. I want the person using it to have to log in. I don't want anyone to be able to use it without a user name and password from my Linux box. So to use my FTP server, you have to log in with an account that I give, and it must be a valid account on my machine, and you can only upload and download to your home directory.

This adds a bit more security to the process, but this isn't a security tutorial, it's a tutorial to get you started.

So how do you set up FTP? Well, first ready my tutorial on installing SUSE Linux, either 8.1, 8.2 or 9.1 Professional, and if you want Windows too stay on the disk, read my tutorial on Dual booting SUSE and XP.

After you have everything in that tutorial done, read the Basics of securing SUSE Linux tutorial to make sure the box is locked down at least with a basic security setting that I show you how too set up there.

Next, make sure you installed Pure FTPd from the SUSE installation media, which you can do by opening up YAST2, and clicking on "Install/Remove Software". If you didn't install it, just simply check the box next too it, and click on Accept, and make sure you have either the CDs handy, or the DVD.

After it's installed, or if you already had it installed, which saves you time, open a Terminal, like Eterm, and if you aren't Root, type su and give the root password, and then type cd /etc and you will be put in the etc directory to configure the file for PureFTPd.

Now that you're in Etc, type ls and hit enter to get a list of the file names. If you did this all correctly, you'll see smoething called pure-ftpd.conf and if you don't, cd into the pure-ftpd directory and see if it is there. If you find it there but not in etc, then simply copy it with:

cp pure-ftpd.conf /etc

And hit enter.

Now go back into etc and type:

vim pure-ftpd.conf

Hit Enter and you'll be able to edit the file. Now what you want too edit too make an FTP server like mine, is this:

# #
# Configuration file for pure-ftpd wrappers #
# #

# If you want to run Pure-FTPd with this configuration
# instead of command-line options, please run the
# following command :
# /usr/sbin/ /usr/etc/pure-ftpd.conf
# Please don't forget to have a look at documentation at
# for a complete list of
# options.

# Cage in every user in his home directory

ChrootEveryone yes

# If the previous option is set to "no", members of the following group
# won't be caged. Others will be. If you don't want chroot()ing anyone,
# just comment out ChrootEveryone and TrustedGID.

# TrustedGID 100

# Turn on compatibility hacks for broken clients

BrokenClientsCompatibility no

# Maximum number of simultaneous users

MaxClientsNumber 10

# Fork in background

Daemonize yes

# Maximum number of sim clients with the same IP address

MaxClientsPerIP 3

# If you want to log all client commands, set this to "yes".
# This directive can be duplicated to also log server responses.

VerboseLog no

# Allow dot-files
AllowDotFiles yes

# List dot-files even when the client doesn't send "-a".

DisplayDotFiles yes

# Don't allow authenticated users - have a public anonymous FTP only.

AnonymousOnly no

# Disallow anonymous connections. Only allow authenticated users.

NoAnonymous yes

# Syslog facility (auth, authpriv, daemon, ftp, security, user, local*)
# The default facility is "ftp". "none" disables logging.

SyslogFacility ftp

# Display fortune cookies

# FortunesFile /usr/share/fortune/zippy

# Don't resolve host names in log files. Logs are less verbose, but
# it uses less bandwidth. Set this to "yes" on very busy servers or
# if you don't have a working DNS.

DontResolve yes

# Maximum idle time in minutes (default = 15 minutes)

MaxIdleTime 15

# LDAP configuration file (see README.LDAP)

# LDAPConfigFile /etc/pure-ftpd/pureftpd-ldap.conf

# MySQL configuration file (see README.MySQL)

# MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf

# Postgres configuration file (see README.PGSQL)

# PGSQLConfigFile /etc/pure-ftpd/pureftpd-pgsql.conf

# PureDB user database (see README.Virtual-Users)

# PureDB /etc/pure-ftpd/pureftpd.pdb

# Path to pure-authd socket (see README.Authentication-Modules)

# ExtAuth /var/run/ftpd.sock

# If you want to enable PAM authentication, uncomment the following line

PAMAuthentication yes

# If you want simple Unix (/etc/passwd) authentication, uncomment this

# UnixAuthentication yes

# Please note that LDAPConfigFile, MySQLConfigFile, PAMAuthentication and
# UnixAuthentication can be used only once, but they can be combined
# together. For instance, if you use MySQLConfigFile, then UnixAuthentication,
# the SQL server will be asked. If the SQL authentication fails because the
# user wasn't found, another try # will be done with /etc/passwd and
# /etc/shadow. If the SQL authentication fails because the password was wrong,
# the authentication chain stops here. Authentication methods are chained in
# the order they are given.

# 'ls' recursion limits. The first argument is the maximum number of
# files to be displayed. The second one is the max subdirectories depth

LimitRecursion 2000 8

# Are anonymous users allowed to create new directories ?

AnonymousCanCreateDirs no

# If the system is more loaded than the following value,
# anonymous users aren't allowed to download.

MaxLoad 4

# Port range for passive connections replies. - for firewalling.

# PassivePortRange 30000 50000

# Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
# Symbolic host names are also accepted for gateways with dynamic IP
# addresses.

# ForcePassiveIP

# Upload/download ratio for anonymous users.

# AnonymousRatio 1 10

# Upload/download ratio for all users.
# This directive superscedes the previous one.

# UserRatio 1 10

# Disallow downloading of files owned by "ftp", ie.
# files that were uploaded but not validated by a local admin.

AntiWarez yes

# IP address/port to listen to (default=all IP and port 21).

# Bind,21

# Maximum bandwidth for anonymous users in KB/s

# AnonymousBandwidth 8

# Maximum bandwidth for *all* users (including anonymous) in KB/s
# Use AnonymousBandwidth *or* UserBandwidth, both makes no sense.

# UserBandwidth 8

# File creation mask. &lt;umask for files&gt;:&lt;umask for dirs&gt; .
# 177:077 if you feel paranoid.

Umask 177:077

# Minimum UID for an authenticated user to log in.

MinUID 100

# Allow FXP transfers for authenticated users only.

AllowUserFXP yes

# Allow anonymous FXP for anonymous and non-anonymous users.

AllowAnonymousFXP no

# Users can't delete/write files beginning with a dot ('.')
# even if they own them. If TrustedGID is enabled, this group
# will have access to dot-files, though.

ProhibitDotFilesWrite yes

# Prohibit *reading* of files beginning with a dot (.history, .ssh...)

ProhibitDotFilesRead no

# Never overwrite files. When a file whoose name already exist is uploaded,
# it get automatically renamed to file.1, file.2, file.3, ...

AutoRename yes

# Disallow anonymous users to upload new files (no = upload is allowed)

AnonymousCantUpload yes

# Only connections to this specific IP address are allowed to be
# non-anonymous. You can use this directive to open several public IPs for
# anonymous FTP, and keep a private firewalled IP for remote administration.
# You can also only allow a non-routable local IP (like 10.x.x.x) to
# authenticate, and keep a public anon-only FTP server on another IP.


# If you want to add the PID to every logged line, uncomment the following
# line.

#LogPID yes

# Create an additional log file with transfers logged in a Apache-like format :
# - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
# This log file can then be processed by www traffic analyzers.

# AltLog clf:/var/log/pureftpd.log

# Create an additional log file with transfers logged in a format optimized
# for statistic reports.

# AltLog stats:/var/log/pureftpd.log

# Create an additional log file with transfers logged in the standard W3C
# format (compatible with most commercial log analyzers)

# AltLog w3c:/var/log/pureftpd.log

# Disallow the CHMOD command. Users can't change perms of their files.

#NoChmod yes

# Allow users to resume and upload files, but *NOT* to delete them.

#KeepAllFiles yes

# Automatically create home directories if they are missing

#CreateHomeDir yes

# Enable virtual quotas. The first number is the max number of files.
# The second number is the max size of megabytes.
# So 1000:10 limits every user to 1000 files and 10 Mb.

#Quota 1000:10

# If your pure-ftpd has been compiled with standalone support, you can change
# the location of the pid file. The default is /var/run/

#PIDFile /var/run/

# If your pure-ftpd has been compiled with pure-uploadscript support,
# this will make pure-ftpd write info about new uploads to
# /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and
# spawn a script to handle the upload.

#CallUploadScript yes

# This option is useful with servers where anonymous upload is
# allowed. As /var/ftp is in /var, it save some space and protect
# the log files. When the partition is more that X percent full,
# new uploads are disallowed.

MaxDiskUsage 99

# Set to 'yes' if you don't want your users to rename files.

NoRename yes

# Be 'customer proof' : workaround against common customer mistakes like
# 'chmod 0 public_html', that are valid, but that could cause ignorant
# customers to lock their files, and then keep your technical support busy
# with silly issues. If you're sure all your users have some basic Unix
# knowledge, this feature is useless. If you're a hosting service, enable it.

CustomerProof yes

# Per-user concurrency limits. It will only work if the FTP server has
# been compiled with --with-peruserlimits (and this is the case on
# most binary distributions) .
# The format is : &lt;max sessions per user&gt;:&lt;max anonymous sessions&gt;
# For instance, 3:20 means that the same authenticated user can have 3 active
# sessions max. And there are 20 anonymous sessions max.

# PerUserLimits 3:20

# When a file is uploaded and there is already a previous version of the file
# with the same name, the old file will neither get removed nor truncated.
# Upload will take place in a temporary file and once the upload is complete,
# the switch to the new version will be atomic. For instance, when a large PHP
# script is being uploaded, the web server will still serve the old version and
# immediatly switch to the new one as soon as the full file will have been
# transfered. This option is incompatible with virtual quotas.

# NoTruncate yes

# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
# including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

# TLS 1

# Listen only to IPv4 addresses in standalone mode (ie. disable IPv6)
# By default, both IPv4 and IPv6 are enabled.

# IPV4Only yes

# Listen only to IPv6 addresses in standalone mode (ie. disable IPv4)
# By default, both IPv4 and IPv6 are enabled.

# IPV6Only yes

Now, if you want, you can copy that and make it your configuration file, as it is mine. Doing this as your configuration file will make it so everyone has to log in and can ONLY upload and download to their home directories. This is perfect for a LAN setting where you want to make back ups, or if you only want people you know to be able to use it, just make sure you have STRONG passwords. VERY strong passwords.

Try and remember that this will open a port on your machine, so it does make it more attacker friendly in a way, but if you keep your machine updated, and have good passwords, you shouldn't have to worry much. If you want you could change the dot files to "No" if you don't want to look at things like that over FTP.

Now, when you get done, save this file. If you're using Vim hit Esc and then :wq Enter. After you press enter it's saved, and ready to go. If you used a wussy editor, well, save it. After you're done, you're not ready yet though. Read the top in the comments where it says to type that out to make this the configuration file for the FTP server.

/usr/sbin/ /usr/etc/pure-ftpd.conf

Type it all out, and press Enter. Of course, on Linux, you should change the last one Which confused me for a day.

/usr/sbin/ /etc/pure-ftpd.conf

Try this one, and it will work. Now, if you want to have the box run FTP everytime it starts up, or you just don't want to keep typing that, simply go into YAST2 and edit the run level editors "Options" and tell it to start the FTP service.

SUSE FireWall2 needs too be told to allow FTP as well. So just open the firewall settings and allow port 21. This will work fine. I believe I covered that all in my last tutorial. The one I'm working on besides this one will teach you to edit system files with YAST2

If you want, you can now try out your FTP server. From Windows just open the command line and type ftp and your machines IP address and it will ask for a username and password.

And if you're on a Linux machine, same thing =)

Kill the lights, let the candles burn behind the pumpkins' mischievous grins, and let the skeletons dance. For one thing is certain, The Misfits have returned and once again everyday is Halloween.The Misfits We Are 138
Cannibal Holocaust
SuSE Linux
Slackware Linux



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2018 by Dr. Nikolai Bezroukov. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last Modified: September 12, 2017