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

Screen Bulletin

2011-2020

Prev | Contents | Next


Top Visited
Switchboard
Latest
Past week
Past month

NEWS CONTENTS

Old News ;-)

[Nov 25, 2014] GNU screen [quick_reference]

Useful reference. Prints nicely on two pages.

Getting in

start a new screen session with session name screen -S <name>
list running sessions/screens screen -ls
attach to a running session screen -x
… to session with name screen -r <name>
the "ultimate attach" screen -dRR (Attaches to a screen session. If the session is attached elsewhere, detaches that other display. If no session exists, creates one. If multiple sessions exist, uses the first one.)
detach a running session screen -d <name>

Escape key

All screen commands are prefixed by an escape key, by default C-a (that's Control-a, sometimes written ^a). To send a literal C-a to the programs in screen, use C-a a. This is useful when when working with screen within screen. For example C-a a n will move screen to a new window on the screen within screen.

Getting out

detach C-a d
detach and logout (quick exit) C-a D D
exit screen C-a \ Exit all of the programs in screen.
force-exit screen C-a C-\ (not recommended)

Help

See help C-a ? (lists keybindings)

The man page is the complete reference, but it's very long.

Window Management

create new window C-a c
change to last-visited active window C-a C-a (commonly used to flip-flop between two windows)
change to window by number C-a <number> (only for windows 0 to 9)
change to window by number or name C-a ' <number or title>
change to next window in list C-a n or C-a <space>
change to previous window in list C-a p or C-a <backspace>
see window list C-a " (allows you to select a window to change to)
show window bar C-a w (if you don't have window bar)
close current window Close all applications in the current window (including shell)
kill current window C-a k (not recommended)
kill all windows C-a \ (not recommended)
rename current window C-a A

Split screen

split display horizontally C-a S
split display vertically C-a | or C-a V (for the vanilla vertical screen patch)
jump to next display region C-a tab
remove current region C-a X
remove all regions but the current one C-a Q

Scripting

send a command to a named session screen -S <name> -X <command>
create a new window and run ping example.com screen -S <name> -X screen ping example.com
stuff characters into the input buffer
using bash to expand a newline character
(from here)
screen -S <name> [-p <page>] -X stuff $'quit\r'
a full example
# run bash within screen
screen -AmdS bash_shell bash
# run top within that bash session
screen -S bash_shell -p 0 -X stuff $'top\r'
 
# ... some time later
 
# stuff 'q' to tell top to quit
screen -S bash_shell -X stuff 'q'
# stuff 'exit\n' to exit bash session
screen -S bash_shell -X stuff $'exit\r'

Misc

redraw window C-a C-l
enter copy mode C-a [ or C-a <esc> (also used for viewing scrollback buffer)
paste C-a ]
monitor window for activity C-a M
monitor window for silence C-a _
enter digraph (for producing non-ASCII characters) C-a C-v
lock (password protect) display C-a x
enter screen command C-a :
enable logging in the screen session C-a H

Version 4.2.1 released

GNU Screen v.4.2.0

Vertical split is now provided.

After six years since the last release and 27 years of existence of the project, a new release of GNU screen was presented by Amadeusz Sławiński, the new maintainer of the project, who was selected at the beginning of April.

He was previously was responsible for the support of a branch of screen on GitHub, which, compared to the official line contained 300 patches and enhancements.

Now all these changes are transferred back to to the main project and will be available in screen 5.

Release 4.2 was chosen as the 4.1 branch has already been created at the time of the merger. By its composition, the branch 4.2 similar 4.1. Packages with a new release is already available for users of Arch Linux and Debian Unstable (coming soon in Debian Testing).

the new version introduces support for layouts, added Association of funts installed the Windows, improved mouse support. Vertical split is now also provided. It also supports 256-color terminal, the ability to have multiple stories input, auto-completion of commands by pressing the tab key, initial support connection scripts-handlers, new commands (layout, group, unbindall, rendition, mousetrack).

As some of the changes affect compatibility with previous version (for example interaction with the back-end process rather than named pipes now uses sockets), soall sessions should be closed before performing the update.

Version 5, which is in words will contain substantial clean up of the code base. Some innovations developed prepared outside the official branch might be included too, such as 256-color status bar, support of full-color palettes, and placement of banner at the top line and the possibility of moving status bar in the upper part.


From: Amadeusz Sławiński
Subject: [screen-devel] GNU Screen v.4.2.0
Date: Thu, 17 Apr 2014 00:53:22 +0200
Hello everyone,

it is my pleasure to announce release of GNU Screen v.4.2.0

available at http://download.savannah.gnu.org/releases/screen/
(I will also upload to ftp.gnu.org as soon as my access is authorized)

Many are probably using it due to their distributions packaging
development versions, so they know at least some of changes.
Short list of them:
 * layouts
 * window groups
 * better mouse support
 * vertical split
 * new and expanded commands

For full list of changes please check Changelog.


Please note that due to some changes it may be not possible to attach
to sessions created with older binaries.


With this I also plan to put v.4 into maintenance mode and start
developing v.5 with cleaned up source code, new features (some already
in development tree, currently outside of official repository):
 * 256 color hardstatus
 * truecolor
 * firstline hardstatus
 * top line caption
 and more

Amadeusz Slawinski

Re: [screen-devel] GNU Screen v.4.2.0


From: Axel Beckert
Subject: Re: [screen-devel] GNU Screen v.4.2.0
Date: Thu, 17 Apr 2014 09:10:41 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

Hi Amadeusz,

On Thu, Apr 17, 2014 at 12:53:22AM +0200, Amadeusz Sławiński wrote:
> it is my pleasure to announce release of GNU Screen v.4.2.0

Not a bad idea to _not_ call this 4.1.0 -- a version number floating
around with -dev suffixes in quite many distros. :-)

Good to see that you got commit access, etc.

> Please note that due to some changes it may be not possible to attach
> to sessions created with older binaries.

There's a patch for that at
http://patch-tracker.debian.org/patch/series/view/screen/4.1.0~20120320gitdb59704-9/60-644788-screen-4.1.0-4.0.3-interoperability.patch

Feel free to include it in 4.2.1. (Not tried if it still applies, but
I will try soon. :-)

P.S.: I recently got one report that someone uses Screen's Zmodem
support for some embedded board (Soekris) maintenance. No further
details though as I didn't get that first hand.

                Kind regards, Axel

Re: [screen-devel] GNU Screen v.4.2.0


From: Jürgen Weigert
Subject: Re: [screen-devel] GNU Screen v.4.2.0
Date: Thu, 17 Apr 2014 15:44:05 +0200

config.h.in is generated when you run autogen.sh

Several other autogenerated files are also no longer included. Which is a good thing for maintenance, as they can no longer go out of sync.

I patched the specfile to run autogen.sh and make depend. The later is a horrible hack. It patches the Makefile, and would fail if the osdef.h and comm.h are not yet generated.


On Thu, Apr 17, 2014 at 2:22 PM, Jeroen Roovers <address@hidden> wrote:

On Thu, 17 Apr 2014 00:53:22 +0200
Amadeusz Sławiński <address@hidden> wrote:

> it is my pleasure to announce release of GNU Screen v.4.2.0

Very nice.


> available at http://download.savannah.gnu.org/releases/screen/
> (I will also upload to ftp.gnu.org as soon as my access is authorized)

config.h.in is missing from the tarball.

Re: [screen-devel] GNU Screen v.4.2.0


From: Jürgen Weigert
Subject: Re: [screen-devel] GNU Screen v.4.2.0
Date: Thu, 17 Apr 2014 15:52:37 +0200

Amadeusz et all:

At opensuse, we have a wagonload of patches, that I'd like to offer for your review and merge into upstream.
See attached.

* added msg_version_3.patch (ouch, incompatible protocol, to be upstreamed asap)
* keep screen-man-loginshell.diff (to be upstreamed)
* keep term_too_long.diff (savannah#30880, to be upstreamed)
* keep use_locale.diff (from address@hidden 2012, check?)
* keep screen-4.0.3-ipv6.patch (builtin telnet, to be upstreamed)
* keep screen_enhance_windows_list.patch (to be upstreamed)
* keep screen-poll-zombies.patch (to be upstreamed)
* keep xX_string_escape.patch (renamed from show_all_active.patch, to be upstreamed)
* keep sort_command.patch (from trenn 2011, to be upstreamed)
* keep libtinfo.diff (from coolo 2011, why exactly?)
* keep global_screenrc.patch (renamed from screen-4.0.2.dif)


CCed Thomas, Michael: submit requests 230477 and 230482

sent to Factory and 13.1:Update

Re: [screen-devel] GNU Screen v.4.2.0


From: Amadeusz Sławiński
Subject: Re: [screen-devel] GNU Screen v.4.2.0
Date: Fri, 18 Apr 2014 18:54:03 +0200

On Thu, 17 Apr 2014 15:52:37 +0200
Jürgen Weigert <address@hidden> wrote:

> Amadeusz et all:
> At opensuse, we have a wagonload of patches, that I'd like to offer
> for your review and merge into upstream.

If anyone else has any patches, please share ;)

>
> * added msg_version_3.patch (ouch, incompatible protocol, to be
> upstreamed asap)

on screen-v4 branch

> * keep screen-man-loginshell.diff (to be upstreamed)
> * keep term_too_long.diff (savannah#30880, to be upstreamed)

I used a bit different version based on what I found in manpages
http://git.savannah.gnu.org/cgit/screen.git/commit/?h=screen-v4&id=44020241d033555e8e90fad3c88617dce1aed0bb

> * keep use_locale.diff (from address@hidden 2012, check?)
> * keep screen-4.0.3-ipv6.patch (builtin telnet, to be upstreamed)
> * keep screen_enhance_windows_list.patch (to be upstreamed)
> * keep screen-poll-zombies.patch (to be upstreamed)
> * keep xX_string_escape.patch (renamed from show_all_active.patch,
> to be upstreamed)
> * keep sort_command.patch (from trenn 2011, to be upstreamed)
> * keep libtinfo.diff (from coolo 2011, why exactly?)

For this I used patch from gentoo, as it seems to provide better
checks, it checks for alternative libraries to use instead of curses one

> * keep global_screenrc.patch (renamed from screen-4.0.2.dif)

With regards to rest of the patches, I would like to merge them when I
start merging my tree (some of them are already in there).

Amadeusz

Re: [screen-devel] GNU Screen v.4.2.0


From: Axel Beckert
Subject: Re: [screen-devel] GNU Screen v.4.2.0
Date: Fri, 18 Apr 2014 22:38:54 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

Hi,

On Fri, Apr 18, 2014 at 06:54:03PM +0200, Amadeusz Sławiński wrote:
> On Thu, 17 Apr 2014 15:52:37 +0200
> > At opensuse, we have a wagonload of patches, that I'd like to offer
> > for your review and merge into upstream.

Same counts for Debian as mentioned before. :-)

> If anyone else has any patches, please share ;)

The patches I used against 4.2.0 for the Debian package (available in
Debian Experimental for now) should be available for easy reviewing at
http://patch-tracker.debian.org/package/screen/4.2.0-1 but Debian's
patch tracker seems down for the moment. :-(

A less comfortable variant is at
http://anonscm.debian.org/gitweb/?p=collab-maint/screen.git;a=tree;f=debian/patches

Most of the patches should be suitable for upstream inclusion.

Solely those which change the size of some string lengths (user name,
$TERM, etc.) may cause issues as they may change the internal protocol
between client and server processs as far as I understood it.

The patch 80EXP_session_creation_time.patch should be regarded as
feature as it changes default behaviour. It sorts "screen -ls" output
by creation time and also affects "screen -rr" and friends -- IIRC it
makes them more deterministic. Maybe something for the development
branch and the 5.x releases.

                Kind regards, Axel

Re: [screen-devel] GNU Screen v.4.2.0


From: Amadeusz Sławiński
Subject: Re: [screen-devel] GNU Screen v.4.2.0
Date: Fri, 25 Apr 2014 15:09:30 +0200

> A less comfortable variant is at
> http://anonscm.debian.org/gitweb/?p=collab-maint/screen.git;a=tree;f=debian/patches
> 
> Most of the patches should be suitable for upstream inclusion.
> 
> Solely those which change the size of some string lengths (user name,
> $TERM, etc.) may cause issues as they may change the internal protocol
> between client and server processs as far as I understood it.
> 
> The patch 80EXP_session_creation_time.patch should be regarded as
> feature as it changes default behaviour. It sorts "screen -ls" output
> by creation time and also affects "screen -rr" and friends -- IIRC it
> makes them more deterministic. Maybe something for the development
> branch and the 5.x releases.
> 
>               Kind regards, Axel

Hey,

I've went through debian patches and I've applied most of them.
Here are the ones I've not applied with comments.

11replace_doc_paths.patch - seems debian specific

13split_info_files.patch - also debian specific?

26source_encoding.patch - cosmetic change for source code

45suppress_remap.patch - I've checked the logs and it seems like there
was already a revert of revert... are you sure it doesn't break
anything?

47screen-cc.patch - I will first check patches from Fedora, instead of
monolithic one ;)

48screen-ipv6.patch - it's a feature -> v5

49long-usernames.patch - already fixed

50increase-max-TERM-length.patch - already fixed

58-show-encoding-hardstatus.patch - feature -> v5

60-644788-screen-4.1.0-4.0.3-interoperability.patch - still not sure
about this one

80EXP_session_creation_time.patch - not applied -> v5

Amadeusz

[Jan 23, 2012] A guide to GNU Screen by Steve 'Ashcrow' Milner and Anderson Silva

October 5, 2007 Red Hat Magazine

Sharing a session with others

Another great application of Screen is to allow other people to login to your station and to watch the work you are doing. It is a great way to teach someone how to do things on the shell.

Setup to allow screen to be shared

  1. As root: chmod u+s /usr/bin/screen (Screen has to be SUID if you want to share a term between two users.)
    Note: SUID allows an executable to be run by the owner of that file, instead of with the user's own permission. There are some security concerns when doing this, so use this tip at your own discretion.
  2. chmod 755 /var/run/screen
  3. Log out of root, and run Screen as the user who is going to share the session:
    screen
  4. Press Ctrl+a, then type :multiuser on and press Enter.
  5. Press Ctrl+a, then type :acladd steve ("steve" is the username of the person who will connect to your screen session).

Connecting to the shared screen:

  1. SSH into the workstation that you are going to watch the screen session on.
  2. On your terminal type: screen -x anderson/ ("anderson" is the username of the person who is sharing the screen session. You need the / at the end.).

And now both users (from the host and guest) will be sharing a screen session and can run commands on the terminal.

Working from multiple locations

Let's say you have a screen session open at work with X number of windows on it. Within those screens you may be running an IRC client, an SSH connection to the web server, and your favorite text-based email client. It's 5 p.m. and you have to go home, but you still have work left to do.

Without Screen you would probably go home, VPN into your company's network, and fire up all the shells you need to keep working from home. With Screen, life gets a little easier.

You can simply SSH into your workstation at work and list your available screen sessions with the command:

screen -ls

And connect to the sessions you were running at work with the command:

screen -x screen_session_name

This way screen will let you pick things up exactly from where you left off.

Applications to make Screen your window manager

Now that you have seen what Screen can do for you, you probably are wondering how to make it your main interaction point, like a terminal window manager.

Let's start with IRC, a very common and popular chat system. Instead of using a graphical client like Pidgin, install Irssi. Irssi sports a slick console interface, tons of add-ons and scripts, and can be enhanced with Perl. It's even theme-able!

Another important part of any user's setup is email. Today most people use graphical clients such as Thunderbird, Evolution, or Sylpheed. My favorite client happens to run in a terminal: Mutt. While Mutt isn't the easiest client in the world to set up, it sure is a joy to use. You can even use your favorite console text editor for doing emails.

Speaking of favorite text editors, there is a good chance that you work on some code projects or configurations. Instead of using gedit/kedit or powering up a heavy IDE such as Eclipse, you can pick up on Vim. Vim is a powerful text editor which, as is stated on the Vim website, could be considered an entire IDE in itself and sports syntax coloring in over 200 programming languages. If Vim doesn't fit your style, there is always emacs, nano, or JOE.

Now all you need you need to do is edit your ~/.screenrc to meet your needs.

My ~/.screenrc looks like the following:

	1 hardstatus alwayslastline
	2 hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=
kw}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}
%Y-%m-%d %{W}%c %{g}]'
	3
	4 # Default screens
	5 screen -t shell1	0
	6 screen -t shell2	1
	7 screen -t server	2 	sh me@myserver
	8 screen -t IRC	7	irssi
	9 screen -t Mail	8	mutt

Once you get used to the shortcuts in GNU screen, not only will your desktop become more organized (due to the lower number of open windows), but your efficiency as a developer or system administrator will increase not only at work but at your home office as well.

Richard :

Just like abeowitz, I'm wondering whether it is possible to use screen to send commands to multiple screens.

According the documentation this should be possible with the "at" command, but I don't get it to work.

So the command sequence:
C-a :at # date
Should result in a date executed on all windows (to my understanding, but the result I get is:
": at: at least two arguments required")

OTOH according the TODO file at:
ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
states: "- type into several windows at once (for cluster admins)"
That file has been changed in august 2003 for the last time…

Hopefully someone reading this article knows how to use the at command???

Hey Richard!:

With the 'at' command, you can send commands to other windows that have to be typed when you press C-a :
This changes the title of a window in a certain screen session:
screen -X at 1 title blublublu

Richard:

A way to broadcast commands to all windows is the following:
^a:at \# stuff "ls12?

Thanks goes to Michael, (one of the screen devs) who provided this information to me.The command above should read: double quote ls backslash zero twelve double quote. Somehow the parser removes the blackslash zero. One more try:
^a:at \# stuff "ls\\12″

Rob Nichols:

This is a great intro. I've used screen for many years. (Just stopped to count. I think it's been a decade!) However, I'd never bothered with learning about the hardstatus line until this article. It's a nice addition. Thanks!

P.S. I think there are two mistakes in the example given. Again, this is my first foray in screen's string escapes, so I might be way off. I think "%{=kw}" should have a space, as "%{= kw}". Without this change on my system windows before the current are green instead of white. I also think there is an extra "%?" before the the closing "]" on the window list. This made no difference on my system. Here's a version with these changes.

hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'

John:

I've used Screen for more than a decade. For years now I've used it to keep open ssh sessions to various systems, doing things like tailing logs and such, and disconnecting then reconnecting when necessary. My latest session has been running upwards of 2 years, only ever bringing it down for critical patching. Sometimes I connect to the same session from multiple windows, displaying different screen "windows" for multiple views. I also use an always on statis as well.

The few modifications I've made are to increase the MAXWIN param to allow for more windows, and change the command key to ^w so I don't have to unlearn my emacs ^a habits.

John Pye:

One good use of Screen is when performing remote updates of systems using apt-get or yum. You can start the update going, then disconnect, then come back later and check that it finished OK. If your remote connection goes down, it doesn't mess everything up. Also, using the screen 'logging' function, you can keep a full history of the update, and check it for error messages that you might have missed.

[Jan 23, 2012] Using GNU Screen

Here's a list of all the commands we've covered:

Recommended Links

Google matched content

Softpanorama Recommended

Top articles

Sites



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: March, 12, 2019