May the source be with you, but remember the KISS principle ;-)
Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor



Recommended Books

Recommended Links Installation Checklist YaST RPM Packages


SLES Registration

Swap partition


Installing Suse from ISO image

Humor Etc

It is an old package (2001) provided by Novell with very questionable architectural decisions:


The version that is installed on SLES 11 is 1.9:

lusytp13:/etc/sysconfig # rpm -qi orarun
Name        : orarun                       Relocations: (not relocatable)
Version     : 1.9                               Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Release     :                  Build Date: Sat 08 May 2010 05:37:10 AM EDT
Install Date: Sat 26 Mar 2011 06:50:41 PM EDT      Build Host: dusty
Group       : Productivity/Databases/Tools   Source RPM: orarun-1.9-
Size        : 75617                            License: GPL v2 or later
Signature   : RSA/8, Sat 08 May 2010 05:37:14 AM EDT, Key ID e3a5c360307e3d54
Packager    :
URL         :
Summary     : An Environment for Running Oracle Products
Description :

During installation this package:

Here is the content of the RPM:

lusytp13:/etc/sysconfig # rpm -ql orarun

Fixing damage from orarun

In case the user does not change /etc/sysconfig/oracle and /etc/profile.d/ Orarun package cause oracle installer to report "fake" errors such as

file-max                  size is currently 6553600
   increase to       6815744
despite the fact that you put this setting in /etc/sysctl.conf. This is because it is designed to overwrite settings from /etc/sysctl.conf with the settting from /etc/sysconfig/oracle during the startup of /etc/init.d/oracle. Which is strange design decision but that's the design decision they made.

Due to this I do not recommend installing orarun during the initial installation on Suse 11.

After the initial installation just install dependencies but not the package itself.

If you did install the package quick fix that I used is as following

mkdir /root/orarun_junk
cd /init.d
mv oracle /root/orarun_junk
rm `find . -name "*oracle"`
mv  /etc/profile.d/oracle* /root/orarun_junk
mv /etc/sysconfig/oracle /root/orarun_junk
That does not fix all the damage (it also inserts unnecessary line in login PAM as well, but you can live with it. At least after the reboot you can install oracle without errors.
Top Visited
Past week
Past month


Old News ;-)

Re [suse-oracle] orarun script

I recommend to:
- create 'oracle' account before running orarun
- run 'orarun'

Or just run 'orarun' rpm, move directory to the right place and create
symlink in '/opt/oracle -> your new home.

----- Original Message -----
From: "Rob Guest" <Rob_Guest@(protected)>
To: <suse-oracle@(protected)>
Sent: Monday, May 30, 2005 10:50 AM
Subject: [suse-oracle] orarun script

> I have a general question about how important it is to run the orarun...
> script that is on the Suse Linux install CD's. The problem is it creates
> the oracle account with a home directory of /opt/oracle and this is not
> where we want it so we didn't run it. However I am concerned that maybe it
> foes other things as we are having problems running IAS under
> SLES7. Any thoughts/opinions would be greatly appreciated.

To unsubscribe, email: suse-oracle-unsubscribe@(protected)
For additional commands, email: suse-oracle-help@(protected)
Please see before posting

How to autostart Oracle 10g on SuSE 9.3 - Page 2

Suse provides the orarun packages containing the start and stop script
(but they lack support for some 10g components like dbconsole).

Make sure that the DB you want to start automatically are marked with Y
in your oratab:
ln -s /etc/oratab /var/opt/oracle/oratab
if you have a "bugged" oracle version.

orarun package SUSE Linux

The orarun package is a rpm software package provided as part of SUSE Linux Enterprise Server (SLES) for the i386 and x86_64 platforms. The purpose of the orarun package is to simplify the installation and administration of Oracle software products. Use of the orarun package is not required to install or run Oracle products, but it is recommended as the package automates some of the manual steps involved in installing Oracle software on SLES. This Cool Solutions wiki page will describe in detail the features and contents of the orarun package.

•1 Availability
•2 Features
•3 Components
◦3.1 The /etc/sysconfig/oracle configuration file
◦3.2 The /etc/init.d/oracle init script
◦3.3 The /etc/profile.d/oracle.[c]sh profile script
■3.3.1 Environment changes made for all users
■3.3.2 Environment changes made for the oracle user
•4 Installation
◦4.1 Installing the package
◦4.2 Setting the shell and password for the oracle user
◦4.3 Setting the value of SHHMAX

The orarun package is available for the i386 and x86_64 platforms, starting in SLES9 and will continue to be available in SLES10. The following table lists the different versions of the orarun package available in the different releases of SLES.

SLES version i386 x86_64
SLES 9 orarun-1.8-109.5.i586.rpm orarun-1.8-109.5.x86_64.rpm
SLES9 SP2/SP3 orarun-1.8-109.15.i586.rpm orarun-1.8-109.15.x86_64.rpm
SLES9 SP4 (planned) orarun-1.8-109.16.i586.rpm orarun-1.8-109.16.x86_64.rpm
SLES10 orarun-1.9-21.2.i586.rpm orarun-1.9-21.2.x86_64.rpm

Table 1 -- Most recent orarun packages available by SLES release

The latest versions are available through ftp download for SLES9 and SLES10.

The orarun package has the following features:

1.It creates the oracle user and the dba and osinstall groups.
2.It creates all 255 raw devices (SLES9).
3.It modifies the security settings for the oracle user.
4.It provides an profile script that sets Oracle specific environmental variables and ulimits.
5.It provides an init script that sets kernel tunables to recommended values and starts various Oracle related services.
6.On the i386 platform it provides the libInternalSymbols library.
The orarun package has the following major components

1.The /etc/init.d/oracle init script.
2.The /etc/sysconfig/oracle configuration file
3.The /etc/profile.d/oracle.[c]sh profile script
The /etc/sysconfig/oracle configuration file
The /etc/sysocnfig/oracle configuration file contains settings used but the /etc/init.d/oracle init script and the /etc/profile.d/oracle.[c]sh script. This provides one easy place to control all of the settings for a typical Oracle deployment. This file can be edited using a standard editor or via the YaST->System->/etc/sysconfig Editor module. The following table lists the variables, default values, and purpose for the /etc/sysconfig/oracle file.

Variable Default value Purpose
ORACLE_OWNER oracle The user who will used to install the Oracle software
ORACLE_BASE /opt/oracle The base directory for all Oracle software
START_ORACLE_DB no Controls whether the Oracle databases that are listed in /etc/oratab are stated.
START_ORACLE_DB_LISTENER no Controls whether the database listeners are started.
START_ORACLE_DB_AGENT no Controls whether the database intelligent agent is started.
START_ORACLE_DB_APACHE no Controls whether Apache web server packaged with Oracle is started.
START_ORACLE_DB_APACHE_USE_SSL no Controls if the Oracle Apache web server uses SSL.
START_ORACLE_DB_EMANAGER no Controls whether the Enterprise Manager agent is started.
START_ORACLE_DB_ISQLPLUS no Controls whether iSQL PLus is started.
START_ORACLE_DB_OID no Controls whether Oracle Internet Directory is started.
START_ORACLE_RAC_OCFS no Controls whether OCFS is started (not OCFS2).
START_ORACLE_RAC_OCM no Controls whether the Oracle9i cluster monitor is started.
ORACLE_RAC_OCM_PARAMETERS The values to be passed to Oracle9i cluster monitor.
START_ORACLE_RAC_GSD no Controls whether the Oracle9i Global Service Daemon is started.
START_ORACLE_AS_CONSOLE no Controls whether the Application Server console is started.
SET_ORACLE_KERNEL_PARAMETERS yes Controls whether the /etc/init.d/oracle script sets the kernel parameters.
SHMMAX 8589934592 Maximum size of an shared memory segment. Oracle recommends this be set to half of the amount of available memory. This value is put into /proc/sys/kernel/shmmax.
SHMMNI 4096 Maximum number of shared memory segments sytem wide. This value is put into /proc/sys/kernel/shmmni.
SHMALL 2097152 Maxium number of shared memory pages system wide. This value is put into /proc/sys/kernel/shmall.
SEMMSL 1250 Maximum number of semaphores per id. Set to 10 plus the largest PROCESSES parameter of any Oracle database on the system (see init.ora). Maximum value possible is 8000. This value is put into /proc/sys/kernel/sem.
SEMMNS 32000 Maximum number of semaphores system wide. Set to the sum of the PROCESSES parameter for each Oracle database, adding the largest one twice, then add an additional 10 for each database (see init.ora). Max. value possible is INT_MAX (largest INTEGER value on this architecture, on 32-bit systems: 2147483647). This value is put into /proc/sys/kernel/sem.
SEMOPM 100 Maximum number of operations per semop call. Oracle recommends 100. This value is put into /proc/sys/kernel/sem.
SEMMNI 256 Maximum number of semaphore identifies. Oracle recommends at least 100. This value is put into /proc/sys/kernel/sem.
IP_PORT_LOCAL_RANGE 1024 65000 The range of local ports available to UDP and TCP. This value is put into /proc/sys/net/ipv4/ip_local_port_range.
RMEM_MAX 262144 The maximum memory size for a recieve window. Requirement for RAC environments. This value is put into /proc/sys/net/core/rmem_max
RMEM_DEFAULT 262144 The default memory size for a recieve window. Requirement for RAC environments. This value is put into /proc/sys/net/core/rmem_default
WMEM_MAX 262144 The maximum memory size for a send window. Requirement for RAC environments. This value is put into /proc/sys/net/core/wmem_max
WMEM_DEFAULT 262144 The default memory size for a send window. Requirement for RAC environments. This value is put into /proc/sys/net/core/wmem_default
FILE_MAX_KERNEL 131072 The global setting for the maximum number of open files allowed by the kernel. This value is put into /proc/sys/fs/file-max.
FILE_MAX_SHELL 65536 The maximum amount of open file descriptors. This value is used by the /etc/profile.d/oracle.[c]sh script.
PROCESSES_MAX_SHELL 16384 The maxiumu number of processes a shell can have. This value is used by the /etc/profile.d/oracle.[c]sh script.
MAX_CORE_FILE_SIZE_SHELL unlimited This is the maximum allowed size of a core file. This value is used by the /etc/profile.d/oracle.[c]sh script.
VM_MAPPED_RATIO 100 This will adjust the swappiness of the kernel. A higher value means that the kernel will be less likely to swap pages to disk. Maximum is 10000. This value is put into /proc/sys/vm/mapped_ratio.
AIO_MAX_SIZE 226144 This is the maximum size of a asynchronous IO. Maximum value is 512K. Values larger than 256K generally do not have any affect as the IO is split up by the device driver. This value is put into /proc/sys/fs/aio-max-size
NR_HUGE_PAGES 0 For i386 systems that require a SGA larger than 2.7GB, it is necessary to set this parameter and use a hugetlbfs filesystem.
SHM_GROUP dba This is the group that will be able to allocate shared memory segments. The gid of the group in this parameter will be put into /proc/sys/vm/hugetlb_shm_group.

Table 2 -- Variables defined in the /etc/sysconfig/oracle file

The /etc/init.d/oracle init script
The /etc/init.d/oracle script is a standard SuSE init script that will be run on system boot. It will read the /etc/sysconfig/oracle file, and set the kernel parameters and start any of the desired services. If the orarun package is installed, the /etc/init.d/oracle script will be configured to run at boot for run levels 3 and 5 by default. The script will respond to the standard set of init commands (start, stop, restart status), and can be managed using the standard set of tools for managing init scripts such as insserv and chkconfig.

To stop the script from being run at boot up, the insserv command can be used:

# insserv -r /etc/init.d/oracle
The /etc/profile.d/oracle.[c]sh profile script
The orarun package provides two different profile scripts in the /etc/profile.d directory, and oracle.csh. Both scripts are roughly identical in terms of functionality, but are written for the bash shell and the C shell respectively. The purpose of the scripts is to (un)set environmental variables and ulimit values as needed for starting an Oracle instance. Because the script is in the /etc/profile.d directory it is sourced every time a shell is started.

Environment changes made for all users
The scripts sets the following environmental variables for all users:

Variable Default value
ORACLE_BASE /opt/oracle
ORACLE_HOME $ORACLE_BASE/product/10.2/db_1

Table 3 -- Environmental variables set for all users

Environment changes made for the oracle user
If the shell belongs to the oracle user the scripts also sets the following environmental variables:

Variable Default value
AGENT_HOME $ORACLE_BASE/product/10.2/agent
TNS_ADMIN $ORACLE_HOME/network/admin
ORA_NLS33 (9i) $ORACLE_HOME/ocommon/nls/admin/data
ORA_NLS10 (10g) $ORACLE_HOME/nls/data

Table 4 -- Environmental variables set for the oracle user

In addition to the environmental variables above, the scripts set the following ulimits:

1.ulimit -c to MAX_CORE_FILE_SIZE_SHELL or 0 if MAX_CORE_FILE_SIZE_SHELL is unset
2.ulimit -u to PROCESSES_MAX_SHELL or 16384 if PROCESSES_MAX_SHELL is unset
3.ulimit -n to FILE_MAX_SHELL or 65536 if FILE_MAX_SHELL is unset
The value of each of the environmental variables is set in the /etc/sysconfig/oracle configuration file.

Due to some conflicts with the Oracle9i GSD cluster components, the scripts unset the JAVA_BINDIR and JAVA_HOME environmental variables which can be set in cases were a SLES JRE or JDK package has been installed.

In order to install Oracle9i, libraries from the 2.95 version of the GCC compiler need to be linked in at compile time. For SLES9, the GCC 2.95 compiler is provided by the gcc_old package. The scripts will also check for the existence of the GCC 2.95 compiler from the gcc_old package, and if it exists it will update the PATH environmental variable to include that compiler first.

Finally, the scripts will check for the existence of the libInternalSymbols library, which should be installed by the orarun package on i386 systems. If it exists it will set the LD_PRELOAD environmental variable to /usr/lib/

At a high level, the installation of the orarun package consists of five steps:

1.Install the orarun package.
2.Set the shell and password for the oracle user.
3.Set the value of the SHMMAX parameter in the /etc/sysconfig/oracle configuration file.
4.Set the ORACLE_HOME and ORACLE_SID environmental variable parameters in the /etc/profile.d/oracle.[c]sh script.
5.Run the /etc/init.d/oracle script.
There are several equivalent ways each of these steps could be performed. A more detailed description of each step follows.

Installing the package
The orarun package can be installed using any of the same methods used to install other software distributed with SLES. This includes during the installation process, as part of the software selection of an autoyast installation, and after installation using the YaST Software->Software Management module. Within the Package Manager screen enter orarun into the Search text field and hit Enter. In the package list frame select the orarun package for installation, then click on the Accept button.

Figure 1 -- Using the Package Manager to install the orarun packageIn SLES10 you can also select Patterns from the Filter drop down list and select Oracle Server Base.

You may also download the orarun package to a local directory and, while logged in as the root user, use the rpm or yast commands to install the package as follows:

# rpm -ivh /path/to/orarun/orarun-1.9-21.i586.rpm

# yast -i /path/to/orarun/orarun-1.9-21.i586.rpm
Setting the shell and password for the oracle user
When the orarun package is install, the oracle user is created. For security, by default the oracle user's shell is set to /bin/false and there is no password. In order to login as the oracle user this will need to be changed.

This can be done using the YaST Security and Users->User Management module. From the User and Group Administration screen, select 'System users' from the 'Set Filter' drop down list. Select the oracle user from the list of users and click the 'Edit' button.

Figure 2 -- Selecting the oracle userFigure 2 -- Selecting the oracle user

Enter the desired password into the Password and Confirm Password fields. Clear the Disable User Login check box.

Figure 3 -- Setting the oracle user's passwordFigure 3 -- Setting the oracle user's password

Click on the Details tab. Choose the desired shell for the oracle user from the Login Shell drop down list. Click on the Accept button and then the Finish button to exit the module.

Figure 4 -- Setting the oracle user's shellFigure 4 -- Setting the oracle user's shell

You can also make the changes using the command line. As the root user, edit the /etc/passwd file to set the shell for the oracle user. For example change the line:


To set the password for the oracle user, run the passwd command as the root user as follow

# passwd oracle
entering in the desired password when prompted.

By default, the oracle user's home directory is set to /opt/oracle. If an alternative home directory is desired, change the value for the home directory using the YaST Security and Users->User Management module or by editing the /etc/passwd file.

Setting the value of SHHMAX
By default the orarun package sets the value of the shmmax kernel tunable to aproximately 3GB. Depending on the environment, this value probably needs to be changed. Oracle recommends setting this value to be 1/2 the size of physical memory. I.e. for a system with 2GB of physical memory Oracle recommends setting the value of SHMMAX to 1GB. SHMMAX is also commonly set to be bigger than the size of the SGA of any database instance running on the machine. This allows the entire SGA to be allocated in one shared memory segment. Since SHMMAX is the maximum size of a shared memory segment it is generally OK to set it value higher than necessary, as a smaller memory segment can always be allocated.

Retrieved from ""

Recommended Links

Softpanorama hot topic of the month

Softpanorama Recommended

Orarun package - CoolSolutionsWiki

Modified orarun scripts

SDBOracle installation - openSUSE



Master URL:
Also check:

Name        : orarun                       Relocations: (not relocatable)
Version     : 1.9                               Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Release     : 21.15                         Build Date: Thu 03 May 2007 06:26:17 AM PDT
Install Date: Mon 01 Jan 2001 01:46:38 AM PST      Build Host:
Group       : Productivity/Databases/Tools   Source RPM: orarun-1.9-21.15.src.rpm
Size        : 55846                            License: GNU General Public License (GPL)
Signature   : DSA/SHA1, Thu 03 May 2007 06:31:00 AM PDT, Key ID a84edae89c800aca
Packager    :
URL         :
Summary     : An Environment for Running Oracle Products
Description :
This package creates the user and the groups for Oracle, sets the
Oracle environment variables, sets kernel parameters to values
recommended by Oracle, and provides for automated start and stop of
Oracle components at system start and stop time. It also includes
dependencies for other software packages needed to install and use
Oracle, so that when you select this package the other packages are
included automatically (when you install via YaST2) or that you are at
least reminded to install them (when installing via the rpm command).
This package is not required for running Oracle but it simplifies
things significantly.

You can edit all settings via YaST2.

If you need help please join the Oracle on Linux mailinglist
(, instructions and an archive are available at
the URL above. This is very likely the best Oracle on Linux
mailinglist there is!

Edit /etc/profile.d/oracle.[c]sh to reflect your particular environment

Edit /etc/sysconfig/oracle (SuSE Linux 7.3 and earlier incl. SLES-7: use
/etc/rc.config.d/oracle.rc.config) if you use the automated
startup/shutdown feature AND to set the kernel values for semaphores
and shared memory according to the Oracle instructions for Linux
(probably in the ReleaseNotes for the Oracle product).

NOTE: The setting of the kernel parameters is independent of whether or 
not Oracle is started by the script. Both functionalities - setting of
the kernel parameters and start/stop of Oracle daemons - are controlled
and operate independently, but in the same script (/etc/init.d/oracle).

Also note that for automated startup/shutdown you must also set the
line for your database in the Oracle file /etc/oratab to "Y" (last letter)
or nothing will happen, since our script uses the standard Oracle provided
script "dbstart" to do the database startup.

Should you want to start an Oracle facility not yet included in this 
/etc/init.d/oracle script it is easy to add: 
- start by adding START_ variables to /etc/sysconfig/oracle (SuSE Linux 7.3
  and earlier incl. SLES-7: use /etc/rc.config.d/oracle.rc.config)
- edit and go to the bottom of script	/etc/init.d/oracle, the one that
  does the actual work, and use one of the lines in "start)" and 
	in "stop)" as a template for what you want to add. It is one (long) line
	per service (e.g. the listener), you may want to disable line wrapping
	for easier navigation within this code.
- If you have suggestion to include, then please file improvement request at

What this package does:
- creates a user "oracle" and groups "dba, oinstall" - with fixed ids
- provides several symlinks for some Oracle products that expect e.g.
  the shell in non-standard places
- create all 255 possible raw device files in /dev/raw/
- installs and activates a SysV start/stop script for automated Oracle
  start/stop plus Oracle components like OCFS (cluster filesystem for
  Oracle RAC) or the Oracle Apache webserver
- the SysV script tries to guess ORACLE_HOME from /etc/oratab if it's
  not set in /etc/profile.d/oracle
- the /etc/profile.d/ script has some logic to add /opt/gcc295/bin
  in front of the path if gcc_old is installed, and to set "ulimit", both
  only for user "oracle"
- the SysV script sets ulimits, together with the ulimit setting in 
  /etc/profile.d/ this ensures that Oracle gets the right limits
  for max. number of files it can open and the like when started using 
  this SysV script
- the SysV script does some sanity checks, like checking if a component
  that it's been told to start is really installed 
- During installation of orarun two entries for user oracle are added to
  file /etc/security/limits.conf. This file is only for users logging in
  via "login", "su" and the like do not use those settings!


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 in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  


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

Copyright © 1996-2016 by Dr. Nikolai Bezroukov. was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

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.

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.

Last modified: August 13, 2017