Softpanorama

May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Troubleshooting of ftp connections

News

Books Recommended Links FTP Protocol FXP tcpdump

wireshark

NetDrive Mirroring Tools FTP Security FTP over weak links FTP by mail
Free FTP clients for Windows Filezilla DOS/Unix  files translation LFTP -- Scriptable FTP client NcFTP Command line controlled FTP clients
wu-ftpd ProFTPD pure-ftpd vsftpd Installation of PaderSyncSSH on Blackberry WebDrive
Troubleshooting of ftpd daemon sftp  Sysadmin Horror Stories Tips Humor Etc

Introduction

FTP connection problems are the most acute if you are ISP customers and as such has no access to the server. Tech support is typically clueless and it might take several weeks for them to fix the problem unless you give them a hint (I am speaking from real experience).

There three major ways of troubleshooting FTP connection:

The FTP protocol defines a dual-channel communications system.  Errors can occure in both channels.

Checking the availability of data channel

This is a typical problem with ISPs, especially when they move your web site to a new server. Generally this error is detectable from ftp client log: At the moment the client switches to passive mode and try to get lisitng of default directory, the connection breaks. If you can authenticate to the server but can't get listing of the filesystem this typically mean that the problem with with the data channel. This in turn can be due to three main reasons:

Here are two relevant post that suggest way to check and the solution to the problem

FTP Filezilla connection timed out

cPanel Forums

FTP Filezilla connection timed out

I can connect use filezilla 3.1.0.1, it accepts user name and password. i then tries to list the directory and times out.

I have included a print out of what filezilla is doing.

Please help, many thanks in advance

Status: Resolving address of ftp.chaosym.com
Status: Connecting to 116.0.23.213:21...
Status: Connection established, waiting for welcome message...
Response: 220---------- Welcome to Pure-FTPd [TLS] ----------
Response: 220-You are user number 8 of 50 allowed.
Response: 220-Local time is now 19:49. Server port: 21.
Response: 220-This is a private system - No anonymous login
Response: 220-IPv6 connections are also welcome on this server.
Response: 220 You will be disconnected after 15 minutes of inactivity.
Command: USER [email protected]
Response: 331 User [email protected] OK. Password required
Command: PASS ********
Response: 230-User [email protected] has group access to: cha49382
Response: 230 OK. Current restricted directory is /
Command: SYST
Response: 215 UNIX Type: L8
Command: FEAT
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is your current location
Command: TYPE I
Response: 200 TYPE is now 8-bit binary
Command: PASV
Response: 227 Entering Passive Mode (116,0,23,213,120,167)
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listing

Reply With Quote Reply With Quote .

--------------------------------------------------------------------------------

08-06-2008, 05:08 PM #2

viraj viraj is offline Member viraj's Avatar -------------------------------------------------------------------------------- Join Date:Sep 2006Location:IndiaPosts:209 cPanel/WHM Access Level: DataCenter Provider

Arrow

Do you have any firewall active on the server ? Try switching it off, also try increasing the port range in the firewall just in case it's causing the problem..

Regards, Viraj http://www.host.co.in

DEDICATED HOSTING|WINDOWS VPS|LINUX VPS |WINDOWS HOSTING CPANEL HOSTING|RESELLER HOSTING|SEMI-DEDICATED HOSTING

Phone:0253-2342932|Mobile:+91-9860900069 Support/Billing/Sales:24x7x365 [email protected] | [email protected]

Reply With Quote Reply With Quote .

--------------------------------------------------------------------------------

08-06-2008, 06:56 PM #3

RobertNikic RobertNikic is offline Member -------------------------------------------------------------------------------- Join Date:Jun 2008Location:Tampa BayPosts:31

If you do have a firewall installed into your server, i would suggust checking the settings or disabling it (test mode) to see if this is whats causing the FTP to timeout.

If the firewall is not an issue, I would suggest monitoring your FTP service or perhaps restarting it.

If you have any further questions, feel free to contact me.

linux7802

It seems passive ports are not opened at the server firewall. Please contact the server support team for opening the ports or you can try the ftp in the active mode.

Solution

As your logs clearly shows that after entering Passive Mode connection timed out

================ Response: 227 Entering Passive Mode (116,0,23,213,120,167) Command: LIST Error: Connection timed out Error: Failed to retrieve directory listing ================

If you have your own server then open passive port range in FTP configuration file as well as in firewall if you have any or if you are not having server access then contact your hosting provider and ask them to open passive ports.

Getting passive FTP connections to work through a firewall properly

TheServerPages.com

Setting up the FTP Server (Pure-FTPD):

There are two different config files your server may use. If you are using CPanel, then most likely it is located here:

/etc/sysconfig/pure-ftpd

If you are unable to find that file, or if your FTP Server is setup to read a conf file, then most likely it is located here:

/etc/pure-ftpd.conf

Using: /etc/sysconfig/pure-ftpd

Look for a line containing: -p or --passiveportrange

Now just check that the port range listed is correct. Remember, port ranges listed here have a ':' character between the numbers, while APF has a '_' character.

Ie. (if the port range is 35000 to 36000 and appears as 35000_36000 in the APF config file then it should look like this)

--passiveportrange 35000:36000
  or
-p 35000:36000
If you do not find it, then go to the end of the file, and add:
--passiveportrange 
followed by the port range you had in the APF firewall config file, except replace the '_' character with a ':'.

So if the port range is 35000 to 36000 and appears as 35000_36000 in the APF config file, then you want to add 35000:36000.

Ie. (port range from 35000 to 36000)
--passiveportrange 35000:36000

When done, save the file and restart your FTP server.

Ie.
/etc/init.d/pure-ftpd restart

Using: /etc/pure-ftpd.conf

Look for a line containing: PassivePortRange

Ex.

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

#PassivePortRange          30000 40000
If there is a leading '#' character, remove it.

If the port range is incorrect, change it. The port range here has an actual space between the numbers, not a '_' character.

Ie. (previous example becomes this)
# Port range for passive connections replies. - for firewalling.

PassivePortRange          35000 36000
Now save the file and restart your FTP server.

Ie.

/etc/init.d/pure-ftpd restart

Telnet based debugging

Content below is based on Telnet Testing Howto

Often testing an FTP server with a real ftp client does not reveal the actual problem with the server. Telnet can be used to eliminate the quirks of the client software. We assume that FTP command are known to the reader. Refer to RFC 959 for a complete discussion of FTP protocol.

Using the system logs

Step one is always to get a log of commands from FTP server (or if access to the server and its configuration files is not available like in ISP situation) from the client.

Most times, direct, by-hand testing is not needed. All you need is to enable logging on the command line with the -l option, you can add the following line to your ftpaccess to see most of the conversation in your system logs. This can often show you where the problem is occurring.

If not, it will at least allow you to follow the same command sequence as the actual client, in case the problem depends upon the specific commands issued.

log commands real,guest,anonymous
Be warned, though, for a busy site logging all commands can make your system logs amazingly large.

PASV downloads via telnet

When server switches connection to PASV mode, data connections originate with the client. This makes testing quite a bit easier since you only need a telnet client and a calculator. (If you don't have a calculator handy, use your organic backup system; it's slower and more error-prone, but almost everyone has one.)

Two or more telnet sessions are needed to completely test an FTP session. I usually use multiple windows since they're easier to read, but for this example, I'll use a single session. First, open a telnet session to the FTP server and log in. I'll make believe I'm Netscape Navigator while I'm at it.

$telnet ftp ftp 
Trying 205.133.13.13... 
Connected to ftp.vr.net. 
Escape character is '^]'. 
220 ftp.vr.net FTP server ready. 
USER anonymous
331 Guest login ok, send your complete e-mail address as password. 
PASS mozilla@ 
230 Guest login ok, access restrictions apply. 
SYST 
215 UNIX Type: L8 
TYPE I 
200 Type set to I. 
PASV 
227 Entering Passive Mode (205,133,13,13,21,169) 
NLST 
^] 
telnet>  
[1]+ Stopped telnet ftp ftp 
In this example, I'm using NLST. You can use RETR to fetch a specific file. If you're just testing the ability to do PASV connections, NLST is fine. Break out of the current telnet session and start another. You'll need to read and interpret the 227 response. The first four numbers are the IP address you must connect to (usually the same as the FTP server's IP address). The next two are the port number. You will need to do a little math here. In this case, calculate ((21 * 256) + 169) to get the port number, 5545. Open a session to that port. Since there is already a transfer pending the output will display and the connection close automatically.
$telnet ftp 5545 
Trying 205.133.13.13... 
Connected to ftp.vr.net. 
Escape character is '^]'. 
etc 
pub 
bin 
incoming 
.notar 
private 
dev 
Connection closed by foreign host. 
Back to the original telnet session. Because this is being done on one window, you won't see one detail: the 150 message appeared when the data connection was opened and the 226 appeared when it completed. For long transfers, or when things go awry, this timing is apparent (sometimes important); which is the reason I usually use two windows for this testing.
$fg 
telnet ftp ftp 
 
150 Opening BINARY mode data connection for file list. 
226 Transfer complete. 
PASV 
227 Entering Passive Mode (205,133,13,13,58,225) 
LIST 
^] 
 
telnet>  
[1]+ Stopped telnet ftp ftp 
 
Since I used NLST earlier, and since most of the questions occur because of 'dir' and 'ls' issues (NLST and LIST), I'll do a LIST so you can see the difference. Back to the calculator for ((58 * 256) + 225).
$telnet ftp 15073 
Trying 205.133.13.13... 
Connected to ftp.vr.net. 
Escape character is '^]'. 
total 8 
dr-xr-xr-x 8 root root 1024 Feb 12 03:07 . 
dr-xr-xr-x 8 root root 1024 Feb 12 03:07 .. 
---------- 1 root root 0 Jun 9 1998 .notar 
d--x--x--x 3 root root 1024 Sep 14 16:40 bin 
d--x--x--x 2 root root 1024 Dec 24 16:31 dev 
d--x--x--x 2 root root 1024 Dec 27 19:34 etc 
drwxrws-wx 2 vrnet vrnet 1024 Oct 8 00:43 incoming 
drwxrws--t 7 vrnet vrnet 1024 Feb 2 20:44 private 
drwxrwsr-t 4 vrnet vrnet 1024 Aug 15 1998 pub 
Connection closed by foreign host. 
 
Finally, back to the control session to close the FTP session.
$fg 
telnet ftp ftp 
 
150 Opening BINARY mode data connection for /bin/ls. 
226 Transfer complete. 
QUIT 
221-You have transferred 0 bytes in 0 files. 
221-Total traffic for this session was 1146 bytes in 2 transfers. 
221-Thank you for using the FTP service on ftp.vr.net. 
221 Goodbye. 
Connection closed by foreign host. 

PASV uploads via telnet

Testing uploads (STOR command) using PASV mode via telnet is much like testing downloads. The only difference is that whatever you type into the data connection telnet session is stored in the uploaded file.

PORT transfers via telnet and netcat

PORT mode transfers require that you have a 'listener' running, waiting for the FTP server. The netcat utility is such a program. For downloads, set it to listen on a port and copy what it received to your screen or a file. For uploads, give it a file to transmit. You will need to know the IP number and port number where netcat is waiting and you will need to supply a PORT command instead of a PASV command so the server has this information. An example of a port command (for the PASV port used above), and the server's response, would be:

PORT 205,133,13,13,58,225 
200 PORT command successful. 
If netcat were listening on TCP port 15073 and we issued the PORT command instead of a PASV command, the results would be similar to the PASV transfer. I'll be honest, though, I don't even have netcat installed, so I cannot show examples. I've never needed to test PORT mode communications; every problem I've ever needed to test was visible using PASV mode.
Top Visited
Switchboard
Latest
Past week
Past month

NEWS CONTENTS

Old News ;-)

[Jul 20, 2013] FTP Filezilla connection timed out - cPanel Forums

FTP Filezilla connection timed out

I can connect use filezilla 3.1.0.1, it accepts user name and password. i then tries to list the directory and times out.

I have included a print out of what filezilla is doing.

Please help, many thanks in advance

Status: Resolving address of ftp.chaosym.com
Status: Connecting to 116.0.23.213:21...
Status: Connection established, waiting for welcome message...
Response: 220---------- Welcome to Pure-FTPd [TLS] ----------
Response: 220-You are user number 8 of 50 allowed.
Response: 220-Local time is now 19:49. Server port: 21.
Response: 220-This is a private system - No anonymous login
Response: 220-IPv6 connections are also welcome on this server.
Response: 220 You will be disconnected after 15 minutes of inactivity.
Command: USER [email protected]
Response: 331 User [email protected] OK. Password required
Command: PASS ********
Response: 230-User [email protected] has group access to: cha49382
Response: 230 OK. Current restricted directory is /
Command: SYST
Response: 215 UNIX Type: L8
Command: FEAT
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is your current location
Command: TYPE I
Response: 200 TYPE is now 8-bit binary
Command: PASV
Response: 227 Entering Passive Mode (116,0,23,213,120,167)
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listing

Reply With Quote Reply With Quote .

--------------------------------------------------------------------------------

08-06-2008, 05:08 PM #2

viraj viraj is offline Member viraj's Avatar -------------------------------------------------------------------------------- Join Date:Sep 2006Location:IndiaPosts:209 cPanel/WHM Access Level: DataCenter Provider

Arrow

Do you have any firewall active on the server ? Try switching it off, also try increasing the port range in the firewall just in case it's causing the problem..

Regards, Viraj http://www.host.co.in

DEDICATED HOSTING|WINDOWS VPS|LINUX VPS |WINDOWS HOSTING CPANEL HOSTING|RESELLER HOSTING|SEMI-DEDICATED HOSTING

Phone:0253-2342932|Mobile:+91-9860900069 Support/Billing/Sales:24x7x365 [email protected] | [email protected]

Reply With Quote Reply With Quote .

--------------------------------------------------------------------------------

08-06-2008, 06:56 PM #3

RobertNikic RobertNikic is offline Member -------------------------------------------------------------------------------- Join Date:Jun 2008Location:Tampa BayPosts:31

If you do have a firewall installed into your server, i would suggust checking the settings or disabling it (test mode) to see if this is whats causing the FTP to timeout.

If the firewall is not an issue, I would suggest monitoring your FTP service or perhaps restarting it.

If you have any further questions, feel free to contact me.

linux7802

It seems passive ports are not opened at the server firewall. Please contact the server support team for opening the ports or you can try the ftp in the active mode.

Solution

As your logs clearly shows that after entering Passive Mode connection timed out

================ Response: 227 Entering Passive Mode (116,0,23,213,120,167) Command: LIST Error: Connection timed out Error: Failed to retrieve directory listing ================

If you have your own server then open passive port range in FTP configuration file as well as in firewall if you have any or if you are not having server access then contact your hosting provider and ask them to open passive ports.

[Jul 20, 2013] FTP drops connection on ls command - Support - SmartFTP Forums

Failed connection log below: Initiated from Username home pc with passive mode enabled.

Connecting to www.xyz.com 12/2/2005 11:40:20 PM 220 (vsFTPd 1.2.1) USER username

331 Please specify the password. PASS **** 230-Username - 230- 230-This is your home directory. 230-I will set you up a web server shortly. 230- 230- 230- 230- 230- 230- 230 Login successful. FEAT

211-Features: MDTM REST STREAM SIZE 211 End PWD

257 "/home/username" TYPE A

200 Switching to ASCII mode. CWD /home/username

250 Directory successfully changed. PASV

227 Entering Passive Mode (64,6,42,21,244,144) ERROR 10060 Data Socket: The current connection has timeout. TYPE A

200 Switching to ASCII mode. CWD /home/username

250 Directory successfully changed. PASV

227 Entering Passive Mode (64,6,42,21,216,118) ERROR 10060 Data Socket: The current connection has timeout.

***********************************************************************

If you have read this far in these log files, thank you very much and God bless you.

eyebex

Posted 09 December 2005 - 04:28 PM

There are two options:

1) You connect in active mode. This requires you to configure some port forwarding: Go to Tools -> Settings, Connection. Choose to limit the port range to e.g. 6000 - 7000, and forward that port range via NAT to your PC in your router / firewall / DSL-modem. Alternatively, you could try to limit the port range and enable UPNP (in the checkbox below) if your router supports UPNP.

2) You connect in passive mode. This requires the server administrator to make some changes to his firewall / router. For vsFTPd, he needs to adjust the pasv_min_port / pasv_max_port values in vsftpd.conf and forward these ports through his firewall to the server.

gris2901

Posted 10 December 2005 - 02:51 AM

thanks very much for reply and information eyebex. This is exactly the type specific information I've been looking for. Appreciate your taking time to answer.

I am wondering why it is that another pc on the same subnet as mine has no problems accessing the ftp site giving me problems without doing port forwarding?

thanks again,

gris2901

[Jul 20, 2013] How to Configure Windows Firewall for a Passive Mode FTP Server

Configure an inbound firewall rule to allow inbound FTP connections to only the ports on which FTP is listening
  1. Open an Administrator command-prompt. Click Start, click All Programs, click Accessories, right-click Command Prompt, and then click Run as Administrator.
  2. Run the following command:

    Copy

    netsh advfirewall firewall add rule name="FTP Service" action=allow service=ftpsvc protocol=TCP dir=in
    
  3. Finally, disable stateful FTP filtering so that the firewall does not block any FTP traffic.

    Copy

    netsh advfirewall set global StatefulFTP disable
    

[Jul 20, 2013] ftp connection error 550 Data channel timed out The Official Microsoft IIS Forums

[Jul 20, 2013] HP Communities - FTP problem - invalid argument getpeername - Enterprise Business Community

well, since your ftpd is not running with some exotic switches, the only question is how many firewalls do you have between this client and this server and who is in charge of those firewalls.

The error you are getting getpeername:Invalid argument, implies that the socket connection ftpd is expecting to find is getting closed immediately, even before this getpeername call gets executed. I do not think that your server is doing it. The only other option is to look for the restrictions in the firewall.

Are you able to successfully establish ftp sessions from other clients to this server or is it the response to ftp request coming from anywhere ?

try ftp'ing from a neighboring node while watching the syslog. By neighboring node, I am implying something like this :

	ftp server ip : 192.168.100.40 
	ftp client ip : 192.168.100.x  	
where netmask is 255.255.255.0, i.e., on the same subnet so that we should not worry about any cross network routing hence eliminating firewall blockage possibilities.

also you can change your ftp line in your inetd.conf file to something like this:

ftp stream tcp nowait root /usr/lbin/ftpd ftpd -Llu 111

for more extensive logging. Then

inetd -k
inetd -l

then try the ftp while on a separate window, running

tail -f /var/adm/syslog/syslog.log


UNIX because I majored in cryptology...

Getting passive FTP connections to work through a firewall properly

TheServerPages.com

Setting up the FTP Server (Pure-FTPD):

There are two different config files your server may use. If you are using CPanel, then most likely it is located here:

/etc/sysconfig/pure-ftpd

If you are unable to find that file, or if your FTP Server is setup to read a conf file, then most likely it is located here:

/etc/pure-ftpd.conf

Using: /etc/sysconfig/pure-ftpd

Look for a line containing: -p or --passiveportrange

Now just check that the port range listed is correct. Remember, port ranges listed here have a ':' character between the numbers, while APF has a '_' character.

Ie. (if the port range is 35000 to 36000 and appears as 35000_36000 in the APF config file then it should look like this)

--passiveportrange 35000:36000
or
-p 35000:36000

If you do not find it, then go to the end of the file, and add:
--passiveportrange 
followed by the port range you had in the APF firewall config file, except replace the '_' character with a ':'.

So if the port range is 35000 to 36000 and appears as 35000_36000 in the APF config file, then you want to add 35000:36000.

Ie. (port range from 35000 to 36000)

--passiveportrange 35000:36000

When done, save the file and restart your FTP server.

Ie.

/etc/init.d/pure-ftpd restart

Using: /etc/pure-ftpd.conf

Look for a line containing: PassivePortRange

Ex.

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

#PassivePortRange          30000 40000
If there is a leading '#' character, remove it.

If the port range is incorrect, change it. The port range here has an actual space between the numbers, not a '_' character.

Ie. (previous example becomes this)

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

PassivePortRange          35000 36000

Now save the file and restart your FTP server.

Ie.

/etc/init.d/pure-ftpd restart

Recommended Links

Google matched content

Softpanorama Recommended

Top articles

Sites

Understanding FTP using raw FTP commands and telnet - Web and IT stuff

myfloridacfo.com

Getting passive FTP connections to work through a firewall properly CPanel Server Tweaks TheServerPages.com Your online

FTP Filezilla connection timed out - cPanel Forums



Etc

Society

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

Quotes

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

Bulletin:

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

History:

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-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) 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 to buy a cup of coffee for authors of this site

Disclaimer:

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 Softpanorama society. 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: July 28, 2019