|
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 |
|
|
The attributes of a batch job can altered dynamically by SGE server that manages the batch job. The qalter is a user-accessible client that can request the alteration of the attributes of one or more batch jobs. As a means of altering a queued job, the qalter utility is superior to deleting and requeuing the batch job because an altered job retains its place in the queue. A batch job to be altered is selected via job_id
The qalter utility alters the attributes of batch jobs in the order in which the batch job_ids are presented to the utility. If the qalter utility fails to process a batch job_id successfully, the utility proceeds to process the remaining batch job_ids, if any. For each identified batch job for which the qalter utility fails, the utility shall not alter any attribute of the batch job.
The options processed by the qalter utility are very similar, almost identical to those of the qsub utility, with a few exceptions: -V, -v, and -q. The -V and -v are inappropriate for the qalter utility, since they capture potentially transient environment information from the submitting process. The -q option would specify a new queue, which would largely negate the previously the advantage of preserving position in queue sited above.
In case of pending jobs, you might also get some hints on why your job with the job identifier job-id is still waiting in queue, by executing
qalter -w p job-id
You can also verify a submitted job with
qalter -w v job-id
If the previous command delivers the following message, there's something wrong with the job and it will never be able to run:
verification: no suitable queues
The result of an attempt on the part of a user to alter a batch job in a RUNNING state is implementation-defined because a batch job in the RUNNING state will already have opened its output files and otherwise performed any actions indicated by the options in effect at the time the batch job began execution.
As options for qalter command are mostly identical to options for the qsub command additional information about them can be found is the description of qsub utility.
-p priority -- Redefine the priority of the batch job.the -p priority specified for the job is also known as the POSIX priority "pprio". The qalter utility accepts a value for the priority option-argument that conforms to the syntax for signed decimal integers, and which is not less than -1024 and not greater than 1023. The qalter sets the Priority attribute of the batch job to the value of the priority option-argument.
To change job priority you need to be an admin of SGE. If SGE was installed as root that mean that you need to execute command as root possibly via sudo.
qalter -p value job qalter -p 1020 101The change will be seen in qstat. In SGE, it is possible to use two modes of job prioritization.
- using parameters -p NUM, where NUM is a number -1 .. -1023, it is possible to lower the priority of a job within all jobs of all users waiting in the queue.
- in addition to this, it is possible to use parameter -js NUM (job shares), with the value of NUM from 0 to 100. This will set the priority of jobs from one user (your jobs) one to another.
Jobs with the same priority are processed according to the time they came to the queue (i.e. FIFO). The default is -p 0 and -js 0.
The job_identifier operand syntax is provided so that the user can differentiate between the originating and destination (or executing) batch server. These may or may not be the same. The . server_name portion identifies the originating batch server, while the @ server portion identifies the destination batch server.
Historically, the qalter utility has been a component of the Network Queuing System (NQS), the existing practice from which this utility has been derived.
you can provide default arguments to qstat in two dot files (sorted by precedence):
1. $SGE_ROOT/$SGE_CELL/common/sge_qstat ( see sge_qstat(5) - Linux man page)
sge_qstat defines the command line switches that will be used by qstat by default. If available, the default sge_qstat file is read and processed by qstat(1).
There is a cluster global and a user private sge_qstat file. The user private file has the highest precedence and is followed by the cluster global sge_qstat file. Command line switches used with qstat(1) override all switches contained in the user private or cluster global sge_qstat file.
- The default sge_qstat file may contain an arbitrary number of lines. Blank lines and lines with a '#' sign at the first column are skipped. Each line not to be skipped may contain any qstat(1) option as described in the Sun Grid Engine Reference Manual. More than one option per line is allowed.
The following is a simple example of a default sge_qstat file:
# Just show me my own running and suspended jobs -s rs -u $userHaving defined a default sge_qstat file like this and using qstat as follows:qstathas the same effect as if qstat was executed with:qstat -s rs -u <current_user><sge_root>/<cell>/common/sge_qstat global defaults file $HOME/.sge_qstat user private defaults file2. $HOME/.sge_qstat
You can also make a default -u '*' which replicates the old SGE 6.0 behavior showing info for all users ( -u "*") “qstat” defaults to
The qalter command lets you change/add/remove a given resource for a pending job.
Examples :
- To modify the requested memory of a pending job (setting s_vmem=2G)> qalter -mods l_hard s_vmem 2G <jobid>- To add a given resource to a pending job (adding sps=1)> qalter -adds l_hard sps 1 <jobid>- To remove a given resource from a pending job (removing hpss=1)> qalter -clears l_hard hpss <jobid>- To remove all resources from a pending job :> qalter -clearp l_hard <jobid>- To replace the list of all "Hard Resources" by a new list :> qalter -l s_vmem=2G,sps=1,hpss=1 <jobid>- To change the queue of a pending job> qalter -q <new_queue_name> <jobid>Type "man qalter" for other options like change of queue, of email, ...
The qhold command is essentially a special case of the workhorse qalter command. qalter allows you to change any property of a job after it has been submitted, including of course, the holds! The options to qalter mimic qsub, as both set properties on jobs. However, it isn't possible to create a new job with qalter, it only works on already existing jobs. Here are two examples of qalter, but the command should be pretty self-explantory (if you've read the qsub docs by now!).
login3% qalter -M [email protected] 28788 modified mail list of job 28788 login3% qalter -h u 28788 modified
Q: I would like to create an array job where the tasks don't all execute at the same time. The tasks will be enabled by some future command. The reason that I need this feature is that I want to aggregate what would otherwise be many related jobs but the data needed for all the jobs isn't available at the same time.
I thought that I could use qalter but it doesn't allow changing options by task. It seems that I can't even adjust the number of tasks in a job. The only remaining option that I have is to let all the tasks issue and sleep until the data is available but I don't like that solution as it results in wasted slots.
How can I get the behavior that I want, whereby an array job is created for a set of related tasks but the tasks issue in a controllable way?
A: Use qalter command with -hard option and queue name..
Well, the last few lines of this command show that job 104, my job, cannot start because I requested more slots on a single machine than there are anywhere. To fix this, we could do something like this:
qalter -pe mpi-fill 32 104 modified parallel environment of job 104 modified slot range of job 104This modifies the job, telling it to use a different parallel environment. When we run the qstat -j command, we see that:
qstat -j scheduling info: queue instance "[email protected]" dropped because it is full queue instance "[email protected]" dropped because it is full queue instance "[email protected]" dropped because it is overloaded: memory=0.000000 (no load value) <= 0G queue instance "[email protected]" dropped because it is overloaded: memory=0.000000 (no load value) <= 0G qstat -f -u mozes -r -ne queuename qtype resv/used/tot. load_avg arch states --------------------------------------------------------------------------------- [email protected] BIPC 0/16/16 0.86 lx24-amd64 a 104 0.50000 sge_test.s mozes r 04/27/2009 11:26:35 16 Full jobname: sge_test.sub Master Queue: [email protected] Requested PE: mpi-fill 32 Granted PE: mpi-fill 32 Hard Resources: h_rt=3600 (0.000000) memory=4G (0.000000) Soft Resources: Hard requested queues: *@@titans --------------------------------------------------------------------------------- [email protected] BIPC 0/16/16 0.15 lx24-amd64 a 104 0.50000 sge_test.s mozes r 04/27/2009 11:26:35 16 Full jobname: sge_test.sub Master Queue: [email protected] Requested PE: mpi-fill 32 Granted PE: mpi-fill 32 Hard Resources: h_rt=3600 (0.000000) memory=4G (0.000000) Soft Resources: Hard requested queues: *@@titans
Tips via my co-worker, Albert—to add arguments to jobs that are still in the queue:$ qalter [additional flag] [jobid]For example, to set the email notification:$ qalter -m be -M [email protected] [jobid]
-- have a job with, for example, hard resource_list twoday=TRUE -- want to remove this so can run in eg seven-day queue -- this qalter -l twoday=FALSE <jobid> does not seem to do what we want -- this qalter -l '' <jobid> does
qalter -l h_rt=04:00:00 3532616
would change the maximum run time of the job submitted above from 8 to 4 hours.
mdonauer commented on Jul 15 2011On 07/12/2011 07:03 PM,
kisielk wrote: For example, if I have a job in the error state because it exceeded its h_vmem resource, I try to alter the job to change the resource request: $ qalter -l h_vmem=2G 1132393 denied: can't change consumable resource request "h_vmem" of running job modified hard resource list of job 1132393 $ Inspecting the job with qstat -j shows that the resource request was modified, despite the "denied" message.Hi, which version of Grid Engine are you using? I can't reproduce it with my version. Marco
Re: Reg: SGE qalter commandreuti <reuti <at> staff.uni-marburg.de>
2010-09-01 08:50:06 GMT
Am 01.09.2010 um 10:10 schrieb thamizhannal: > Thanks a lot Reuti. My job was on running state when I issue qlater. > What do you mean by re-queuing? You meant to say resubmitting the job > with new wall time or Issuing qalter command to modify job's wall time > and queue. No. 1) `qalter` the running job 2) use `qmod -rj ...` to requeue the job (this will also be triggered by certain conditions like a checkpointing environment) -- Reuti > Regards, > Thamizhannal > > -----Original Message----- > From: reuti [mailto:reuti <at> staff.uni-marburg.de] > Sent: Wednesday, September 01, 2010 12:25 PM > To: users <at> gridengine.sunsource.net > Subject: Re: [GE users] Reg: SGE qalter command > > Hi, > > Am 01.09.2010 um 08:05 schrieb thamizhannal: > >> I require clarification on qalter command working on SGE. >> >> I have submitted SGE job with wall time request. >> qsub -l h_rt=00:01:00 ~/Generic/sleep.sh >> >> After that, I have modified the wall time using qalter command. >> qalter -l h_rt=00:20:00 <job_id> >> >> The job's wall time gets updated. I could see the updated wall time > using qstat -j <job_id> command. >> >> But the job gets failed once it reaches its initial wall time (1 min). > The altered wall time does not taken into consideration by SGE. > > was the job already running at time of the change? The changed settings > will only be honored when the job is requeued or is still waiting. > > -- Reuti > >> >> Can anyone explain me reason? >> >> Regards, >> Thamizhannal P >> >> > > ------------------------------------------------------ > http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessage > Id=278691 > > To unsubscribe from this discussion, e-mail: > [users-unsubscribe <at> gridengine.sunsource.net]. > > ------------------------------------------------------ > http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=278703 > > To unsubscribe from this discussion, e-mail: [users-unsubscribe <at> gridengine.sunsource.net]. > ------------------------------------------------------ http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=278710
Google matched content |
jsv(1), jsv_script_interface(3), qhold-ge(1), qhost(1), qquota(1), qrls-ge(1), qstat-ge(1), sge_accounting(5), sge_conf(5), sge_intro(1), sge_reporting(5), sge_sched_conf(5)
Etc
qalter [-a date_time][-A account_string][-c
interval][-e path_name]
[-h hold_list][-j join_list][-k keep_list][-l
resource_list]
[-m mail_options][-M mail_list][-N name][-o
path_name]
[-p priority][-r y|n][-S
path_name_list][-u user_list]
job_identifier ...
The attributes of a batch job are altered by a request to the batch server that manages the batch job. The qalter utility is a user-accessible batch client that requests the alteration of the attributes of one or more batch jobs.
The qalter utility shall alter the attributes of those batch jobs, and only those batch jobs, for which a batch job_identifier is presented to the utility.
The qalter utility shall alter the attributes of batch jobs in the order in which the batch job_identifiers are presented to the utility.
If the qalter utility fails to process a batch job_identifier successfully, the utility shall proceed to process the remaining batch job_identifiers, if any.
For each batch job_identifier for which the qalter utility succeeds, each attribute of the identified batch job shall be altered as indicated by all the options presented to the utility.
For each identified batch job for which the qalter utility fails, the utility shall not alter any attribute of the batch job.
For each batch job that the qalter utility processes, the utility shall not modify any attribute other than those required by the options and option-arguments presented to the utility.
The qalter utility shall alter batch jobs by sending a Modify Job Request to the batch server that manages each batch job. At the time the qalter utility exits, it shall have modified the batch job corresponding to each successfully processed batch job_identifier. An attempt to alter the attributes of a batch job in the RUNNING state is implementation-defined.
The qalter utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
The following options shall be supported by the implementation:
The date_time argument shall be in the same form and represent the same time as for the touch utility. The time so represented shall be set into the Execution_Time attribute of the batch job. If the time specified is earlier than the current time, the -a option shall have no effect.
The syntax of the account_string option-argument is unspecified.
The qalter utility shall set the Account_Name attribute of the batch job to the value of the account_string option-argument.
The qalter utility shall accept a value for the interval option-argument that is one of the following:
No checkpointing is to be performed on the batch job (NO_CHECKPOINT).
Checkpointing is to be performed only when the batch server is shut down (CHECKPOINT_AT_SHUTDOWN).
Automatic periodic checkpointing is to be performed at the Minimum_Cpu_Interval attribute of the batch queue, in units of CPU minutes (CHECKPOINT_AT_MIN_CPU_INTERVAL).
Automatic periodic checkpointing is to be performed every minutes of CPU time, or every Minimum_Cpu_Interval minutes, whichever is greater. The minutes argument shall conform to the syntax for unsigned integers and shall be greater than zero.
An implementation may define other checkpoint intervals. The conformance document for an implementation shall describe any alternative checkpoint intervals, how they are specified, their internal behavior, and how they affect the behavior of the utility.
The qalter utility shall set the Checkpoint attribute of the batch job to the value of the interval option-argument.
The qalter utility shall accept a path_name option-argument that conforms to the syntax of the path_name element defined in the System Interfaces volume of IEEE Std 1003.1-2001, which can be preceded by a host name element of the form hostname:.
If the path_name option-argument constitutes an absolute pathname, the qalter utility shall set the Error_Path attribute of the batch job to the value of the path_name option-argument, including the host name element, if present.
If the path_name option-argument constitutes a relative pathname and no host name element is specified, the qalter utility shall set the Error_Path attribute of the batch job to the value of the absolute pathname derived by expanding the path_name option-argument relative to the current directory of the process that executes the qalter utility.
If the path_name option-argument constitutes a relative pathname and a host name element is specified, the qalter utility shall set the Error_Path attribute of the batch job to the value of the option-argument without expansion.
If the path_name option-argument does not include a host name element, the qalter utility shall prefix the pathname in the Error_Path attribute with hostname:, where hostname is the name of the host upon which the qalter utility is being executed.
The qalter utility shall accept a value for the hold_list option-argument that is a string of one or more of the characters 'u', 's', or 'o', or the single character 'n' . For each unique character in the hold_list option-argument, the qalter utility shall add a value to the Hold_Types attribute of the batch job as follows, each representing a different hold type:
If any of these characters are duplicated in the hold_list option-argument, the duplicates shall be ignored. An existing Hold_Types attribute can be cleared by the hold type:
The qalter utility shall consider it an error if any hold type other than 'n' is combined with hold type 'n' . Strictly conforming applications shall not repeat any of the characters 'u', 's', 'o', or 'n' within the hold_list option-argument. The qalter utility shall permit the repetition of characters, but shall not assign additional meaning to the repeated characters. An implementation may define other hold types. The conformance document for an implementation shall describe any additional hold types, how they are specified, their internal behavior, and how they affect the behavior of the utility.
The qalter utility shall accept a join_list option-argument that consists of one or more of the characters 'e' and 'o', or the single character 'n' .
All of the other batch job output streams specified shall be merged into the output stream represented by the character listed first in the join_list option-argument.
For each unique character in the join_list option-argument, the qalter utility shall add a value to the Join_Path attribute of the batch job as follows, each representing a different batch job stream to join:
The standard error of the batch job (JOIN_STD_ERROR).
The standard output of the batch job (JOIN_STD_OUTPUT).
An existing Join_Path attribute can be cleared by the join type:
If 'n' is specified, then no files are joined. The qalter utility shall consider it an error if any join type other than 'n' is combined with join type 'n' .
Strictly conforming applications shall not repeat any of the characters 'e', 'o', or 'n' within the join_list option-argument. The qalter utility shall permit the repetition of characters, but shall not assign additional meaning to the repeated characters.
An implementation may define other join types. The conformance document for an implementation shall describe any additional batch job streams, how they are specified, their internal behavior, and how they affect the behavior of the utility.
The qalter -k option shall accept a value for the keep_list option-argument that is a string of alphanumeric characters in the portable character set.
The qalter utility shall accept a keep_list option-argument that consists of one or more of the characters 'e' and 'o', or the single character 'n' .
For each unique character in the keep_list option-argument, the qalter utility shall add a value to the Keep_Files attribute of the batch job as follows, each representing a different batch job stream to keep:
The standard error of the batch job (KEEP_STD_ERROR).
The standard output of the batch job (KEEP_STD_OUTPUT).
If both 'e' and 'o' are specified, then both files are retained. An existing Keep_Files attribute can be cleared by the keep type:
If 'n' is specified, then no files are retained. The qalter utility shall consider it an error if any keep type other than 'n' is combined with keep type 'n' .
Strictly conforming applications shall not repeat any of the characters 'e', 'o', or 'n' within the keep_list option-argument. The qalter utility shall permit the repetition of characters, but shall not assign additional meaning to the repeated characters. An implementation may define other keep types. The conformance document for an implementation shall describe any additional keep types, how they are specified, their internal behavior, and how they affect the behavior of the utility.
The qalter utility shall accept a resource_list option-argument that conforms to the following syntax:
resource=value[,,resource=value,,...]
The qalter utility shall set one entry in the value of the Resource_List attribute of the batch job for each resource listed in the resource_list option-argument.
Because the list of supported resource names might vary by batch server, the qalter utility shall rely on the batch server to validate the resource names and associated values.o the Mail_Users attribute of the batch job as follows, each representing a different time during the life of a batch job at which to send mail:
If any of these characters are duplicated in the mail_options option-argument, the duplicates shall be ignored.
An existing Mail_Points attribute can be cleared by the mail type:
If 'n' is specified, then mail is not sent. The qalter utility shall consider it an error if any mail type other than 'n' is combined with mail type 'n' . Strictly conforming applications shall not repeat any of the characters 'e', 'b', 'a', or 'n' within the mail_options option-argument. The qalter utility shall permit the repetition of characters but shall not assign additional meaning to the repeated characters.
An implementation may define other mail types. The conformance document for an implementation shall describe any additional mail types, how they are specified, their internal behavior, and how they affect the behavior of the utility.
The syntax of the mail_list option-argument is unspecified. If the implementation of the qalter utility uses a name service to locate users, the utility shall accept the syntax used by the name service.
If the implementation of the qalter utility does not use a name service to locate users, the implementation shall accept the following syntax for user names:
mail_address[,,mail_address,,...]
The interpretation of mail_address is implementation-defined.
The qalter utility shall set the Mail_Users attribute of the batch job to the value of the mail_list option-argument.
The qalter -N option shall accept a value for the name option-argument that is a string of up to 15 alphanumeric characters in the portable character set where the first character is alphabetic.
The syntax of the name option-argument is unspecified.
The qalter utility shall set the Job_Name attribute of the batch job to the value of the name option-argument.
The qalter utility shall accept a path_name option-argument that conforms to the syntax of the path_name element defined in the System Interfaces volume of IEEE Std 1003.1-2001, which can be preceded by a host name element of the form hostname:.
If the path_name option-argument constitutes an absolute pathname, the qalter utility shall set the Output_Path attribute of the batch job to the value of the path_name option-argument.
If the path_name option-argument constitutes a relative pathname and no host name element is specified, the qalter utility shall set the Output_Path attribute of the batch job to the absolute pathname derived by expanding the path_name option-argument relative to the current directory of the process that executes the qalter utility.
If the path_name option-argument constitutes a relative pathname and a host name element is specified, the qalter utility shall set the Output_Path attribute of the batch job to the value of the path_name option-argument without any expansion of the pathname.
If the path_name option-argument does not include a host name element, the qalter utility shall prefix the pathname in the Output_Path attribute with hostname:, where hostname is the name of the host upon which the qalter utility is being executed.
The qalter utility shall accept a value for the priority option-argument that conforms to the syntax for signed decimal integers, and which is not less than -1024 and not greater than 1023.
The qalter utility shall set the Priority attribute of the batch job to the value of the priority option-argument.
If the value of the option-argument is 'y', the qalter utility shall set the Rerunable attribute of the batch job to TRUE.
If the value of the option-argument is 'n', the qalter utility shall set the Rerunable attribute of the batch job to FALSE.
The qalter utility shall consider it an error if any character other than 'y' or 'n' is specified in the option-argument.
The qalter utility shall accept a path_name_list option-argument that conforms to the following syntax:
pathname[@host][,pathname[@host],...]
The qalter utility shall accept only one pathname that is missing a corresponding host name. The qalter utility shall allow only one pathname per named host.
The qalter utility shall add a value to the Shell_Path_List attribute of the batch job for each entry in the path_name_list option-argument. See Multiple Keyword-Value Pairs for a means of removing keyword= value (and value@ keyword) pairs and other general rules for list-oriented batch job attributes.
The qalter utility shall accept a user_list option-argument that conforms to the following syntax:
username[@host][,,username[@host],,...]
The qalter utility shall accept only one user name that is missing a corresponding host name. The qalter utility shall accept only one user name per named host.
The qalter utility shall add a value to the User_List attribute of the batch job for each entry in the user_list option-argument. See Multiple Keyword-Value Pairs for a means of removing keyword= value (and value@ keyword) pairs and other general rules for list-oriented batch job attributes.
The following environment variables shall affect the execution of qalter:
The following exit values shall be returned:
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 quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard 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 DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting 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-Month : How 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