This guide covers the following topics:
The Java Authentication and Authorization Service (JAAS) was introduced as an optional package (extension) to the Java 2 SDK, Standard Edition (J2SDK), v 1.3. JAAS was integrated into the J2SDK 1.4.
JAAS can be used for two purposes:
JAAS implements a Java version of the standard Pluggable Authentication Module (PAM) framework. See Making Login Services Independent from Authentication Technologies for further information.
Traditionally Java has provided codesource-based access controls (access controls based on where the code originated from and who signed the code). It lacked, however, the ability to additionally enforce access controls based on who runs the code. JAAS provides a framework that augments the Java security architecture with such support.
JAAS authentication is performed in a pluggable
fashion. This permits applications to remain independent from
underlying authentication technologies. New or updated
authentication technologies can be plugged under an application
without requiring modifications to the application itself.
Applications enable the authentication process by instantiating a
LoginContext
object, which in turn references a
Configuration
to determine the authentication
technology(ies), or LoginModule
(s),
to be used in performing the authentication. Typical
LoginModule
s may prompt for and verify a user name
and password. Others may read and verify a voice or fingerprint
sample.
Once the user or service executing the code has been
authenticated, the JAAS authorization component works in
conjunction with the core Java SE access control model to protect
access to sensitive resources. Unlike in the J2SDK 1.3 and
earlier, where access control decisions are based solely on code
location and code signers (a CodeSource
),
in the J2SDK 1.4 access control decisions are based both on the
executing code's CodeSource
and on the user
or service running the code, who is represented by a Subject
object. The Subject
is updated by a
LoginModule
with relevant Principal
s
and credentials if authentication succeeds.
This document is intended for experienced developers who
require the ability to design applications constrained by a
CodeSource
-based and Subject
-based
security model. It is also intended to be read by LoginModule
developers (developers implementing an authentication technology)
prior to reading the JAAS
LoginModule Developer's Guide.
You may wish to first read the JAAS Authentication and JAAS Authorization tutorials to get an overview of how to use JAAS and to see sample code in action, and then return to this document for further information.
This document assumes you have already read the following:
A supplement to this guide is the JAAS LoginModule Developer's Guide,
intended for experienced programmers who require the ability to
write a LoginModule
implementing an authentication technology.
If you wish to learn more about the standard Pluggable Authentication Module (PAM) framework (JAAS implements a Java version of PAM), see Making Login Services Independent from Authentication Technologies.
The following tutorials for JAAS authentication and authorization can be run by everyone:
Similar tutorials for JAAS authentication and authorization, but which demonstrate the use of a Kerberos LoginModule and thus which require a Kerberos installation, can be found at
These two tutorials are a part of the Java GSS-API and JAAS sequence of tutorials that utilize Kerberos as the underlying technology for authentication and secure communication.
The key JAAS class is javax.security.auth.Subject
,
which represents a grouping of related information for a single
entity such as a person. It encompasses the entity's Principals, public credentials, and private
credentials.
Note that the java.security.Principal
interface
is used to represent a Principal. Also note that a credential, as
defined by JAAS, may be any Object.
javax.security.auth.Subject
is populated with associated identities, or Principal
s. A Subject
may have many Principal
s. For example, a person may
have a name Principal
("John Doe") and a SSN
Principal
("123-45-6789"), which distinguish it from
other subjects.
A Subject
may also own security-related
attributes, which are referred to as credentials.
Sensitive credentials that require special protection, such as
private cryptographic keys, are stored within a private
credential Set
. Credentials intended to be shared,
such as public key certificates, are stored within a public
credential Set
. Different permissions (described
below) are required to access and modify the different credential
Set
s.
Subjects are created using these constructors:
public Subject(); public Subject(boolean readOnly, Set principals, Set pubCredentials, Set privCredentials);The first constructor creates a
Subject
with empty
(non-null) Set
s of Principal
s and
credentials. The second constructor creates a
Subject
with the specified Set
s of
Principal
s and credentials. It also has a boolean
argument which can be used to make the Subject
read-only. In a read-only Subject
, the
Principal
and credential Set
s are
immutable.
An application writer does not have to instantiate a
Subject
. If the application instantiates a
LoginContext
and does not pass a
Subject
to the LoginContext
constructor, the LoginContext
instantiates a new
empty Subject
. See the LoginContext section.
If a Subject
was not instantiated to be in a
read-only state, it can be set read-only by calling the following
method:
public void setReadOnly();A
javax.security.auth.AuthPermission
with target
"setReadOnly" is required to invoke this method. Once in a
read-only state, any attempt to add or remove
Principal
s or credentials will result in an
IllegalStateException
being thrown.
The following method may be called to test a
Subject
's read-only state:
public boolean isReadOnly();
To retrieve the Principal
s associated with a
Subject, two methods are available:
public Set getPrincipals(); public Set getPrincipals(Class c);
The first method returns all Principal
s contained
in the Subject
, while the second method only returns
those Principal
s that are an instance of the
specified Class c
, or an instance of a subclass of
Class c
. An empty set will be returned if the
Subject
does not have any associated
Principal
s.
To retrieve the public credentials associated with a
Subject
, these methods are available:
public Set getPublicCredentials(); public Set getPublicCredentials(Class c);
The behavior of these methods is similar to that for the
getPrincipals
methods, except in this case the
public credentials are being obtained.
To access private credentials associated with a
Subject
, the following methods are available:
public Set getPrivateCredentials(); public Set getPrivateCredentials(Class c);
The behavior of these methods is similar to that for the
getPrincipals
and getPublicCredentials
methods.
To modify or operate upon a Subject
's
Principal
Set
, public credential
Set
, or private credential Set
, callers
use the methods defined in the java.util.Set
class. The following example demonstrates this:
Subject subject; Principal principal; Object credential; . . . // add a Principal and credential to the Subject subject.getPrincipals().add(principal); subject.getPublicCredentials().add(credential);
Note: An AuthPermission
with target
"modifyPrincipals", "modifyPublicCredentials", or
"modifyPrivateCredentials" is required to modify the respective
Set
s. Also note that only the sets returned via the
getPrincipals()
,
getPublicCredentials()
, and
getPrivateCredentials()
methods with no arguments
are backed by the Subject
's respective internal
sets. Therefore any modification to the returned set affects the
internal sets as well. The sets returned via the
getPrincipals(Class c)
,
getPublicCredentials(Class c)
, and
getPrivateCredentials(Class c)
methods are not
backed by the Subject
's respective internal sets. A
new set is created and returned for each such method invocation.
Modifications to these sets will not affect the
Subject
's internal sets.
In order to iterate through a Set of private credentials, you
need a
javax.security.auth.PrivateCredentialPermission
to
access each credential. See the
PrivateCredentialPermission
API documentation
for further information.
A Subject
may be associated with an
AccessControlContext
(see the doAs
and
doAsPrivileged
method descriptions below). The
following method returns the Subject
associated with
the specified AccessControlContext
, or
null
if no Subject
is associated with
the specified AccessControlContext
.
public static Subject getSubject(final AccessControlContext acc);
An AuthPermission
with target "getSubject" is
required to call Subject.getSubject
.
The Subject
class also includes the following
methods inherited from java.lang.Object
.
public boolean equals(Object o); public String toString(); public int hashCode();
Subject
:
public static Object doAs(final Subject subject, final java.security.PrivilegedAction action); public static Object doAs(final Subject subject, final java.security.PrivilegedExceptionAction action) throws java.security.PrivilegedActionException;
Both methods first associate the specified
subject
with the current Thread's
AccessControlContext
, and then execute the
action
. This achieves the effect of having the
action
run as the subject
. The first
method can throw runtime exceptions but normal execution has it
returning an Object from the run
method of its
action
argument. The second method behaves similarly
except that it can throw a checked exception from its
PrivilegedExceptionAction run
method. An
AuthPermission
with target "doAs" is required to
call the doAs
methods.
Here is an example utilizing the first doAs
method. Assume that someone named "Bob" has been authenticated by
a LoginContext
(see the LoginContext section) and as a result a
Subject
was populated with a Principal
of class com.ibm.security.Principal
, and that
Principal
has the name "BOB". Also assume that a
SecurityManager has been installed, and that the following exists
in the access control policy (see the Policy
section for more details on the policy file).
// grant "BOB" permission to read the file "foo.txt" grant Principal com.ibm.security.Principal "BOB" { permission java.io.FilePermission "foo.txt", "read"; };
Here is the sample application code:
class ExampleAction implements java.security.PrivilegedAction { public Object run() { java.io.File f = new java.io.File("foo.txt"); // the following call invokes a security check if (f.exists()) { System.out.println("File foo.txt exists"); } return null; } } public class Example1 { public static void main(String[] args) { // Authenticate the subject, "BOB". // This process is described in the // LoginContext section. Subject bob; // Set bob to the Subject created during the // authentication process // perform "ExampleAction" as "BOB" Subject.doAs(bob, new ExampleAction()); } }
During execution, ExampleAction
will encounter a
security check when it makes a call to f.exists()
.
However, since ExampleAction
is running as "BOB",
and the policy (above) grants the necessary
FilePermission
to "BOB", the
ExampleAction
will pass the security check. If the
grant
statement in the policy is altered (adding an
incorrect CodeBase
or changing the
Principal
to "MOE", for example), then a
SecurityException
will be thrown.
The following methods also perform an action as a particular
Subject
.
public static Object doAsPrivileged( final Subject subject, final java.security.PrivilegedAction action, final java.security.AccessControlContext acc); public static Object doAsPrivileged( final Subject subject, final java.security.PrivilegedExceptionAction action, final java.security.AccessControlContext acc) throws java.security.PrivilegedActionException;
An AuthPermission
with target "doAsPrivileged" is
required to call the doAsPrivileged
methods.
The doAsPrivileged
methods behave exactly the
same as the doAs
methods, except that instead of
associating the provided Subject
with the current
Thread's AccessControlContext
, they use the provided
AccessControlContext
. In this way, actions can be
restricted by AccessControlContext
s different from
the current one.
An AccessControlContext
contains information
about all the code executed since the
AccessControlContext
was instantiated, including the
code location and the permissions the code is granted by the
policy. In order for an access control check to succeed, the
policy must grant each code item referenced by the
AccessControlContext
the required permissions.
If the AccessControlContext
provided to
doAsPrivileged
is null
, then the action
is not restricted by a separate
AccessControlContext
. One example where this may be
useful is in a server environment. A server may authenticate
multiple incoming requests and perform a separate
doAs
operation for each request. To start each
doAs
action "fresh," and without the restrictions of
the current server AccessControlContext
, the server
can call doAsPrivileged
and pass in a
null
AccessControlContext
.
Principal
s may be
associated with a Subject
if authentication is
successful. Principal
s represent
Subject
identities, and must implement the java.security.Principal
and java.io.Serializable
interfaces. The Subject section describes
ways to update the Principal
s associated with a
Subject
.
Refreshable
and Destroyable
.
The javax.security.auth.Refreshable
interface provides the capability for a credential to
refresh itself. For example, a credential with a particular
time-restricted lifespan may implement this interface to allow
callers to refresh the time period for which it is valid. The
interface has two abstract methods:
boolean isCurrent();This method determines whether the credential is current or valid.
void refresh() throws RefreshFailedException;This method updates or extends the validity of the credential. The method implementation should perform an
AuthPermission("refreshCredential")
security check
to ensure the caller has permission to refresh the credential.
The javax.security.auth.Destroyable
interface provides the capability of destroying the
contents within a credential. The interface has two abstract
methods:
boolean isDestroyed();Determines whether the credential has been destroyed.
void destroy() throws DestroyFailedException;Destroys and clears the information associated with this credential. Subsequent calls to certain methods on this credential will result in an
IllegalStateException
being thrown. The method implementation should perform an
AuthPermission("destroyCredential")
security check
to ensure the caller has permission to destroy the credential.
LoginContext
.LoginContext
consults a
Configuration
to load all of the
LoginModule
s configured for that application.LoginContext
's
login
method.login
method invokes all of the loaded
LoginModule
s. Each LoginModule
attempts
to authenticate the subject. Upon success,
LoginModule
s associate relevant
Principal
s and credentials with a
Subject
object that represents the subject being
authenticated.LoginContext
returns the authentication
status to the application.Subject
from the LoginContext
.The authentication classes are described below.
The
javax.security.auth.login.LoginContext
class provides
the basic methods used to authenticate subjects, and provides a
way to develop an application independent of the underlying
authentication technology. The LoginContext
consults
a
Configuration
to determine the authentication
services, or LoginModule
(s),
configured for a particular application. Therefore, different
LoginModule
s can be plugged in under an application
without requiring any modifications to the application
itself.
LoginContext
offers four constructors from which
to choose:
public LoginContext(String name) throws LoginException; public LoginContext(String name, Subject subject) throws LoginException; public LoginContext(String name, CallbackHandler callbackHandler) throws LoginException public LoginContext(String name, Subject subject, CallbackHandler callbackHandler) throws LoginExceptionAll of the constructors share a common parameter:
name
. This argument is used by the
LoginContext
as an index into the login
Configuration to determine which LoginModule
s are
configured for the application instantiating the
LoginContext
. Constructors that do not take a
Subject
as an input parameter instantiate a new
Subject
. Null inputs are disallowed for all
constructors. Callers require an AuthPermission
with
target "createLoginContext.<name>" to instantiate a
LoginContext
. Here, <name> refers to the name
of the login configuration entry that the application references
in the name
parameter for the
LoginContext
instantiation.
See the CallbackHandler section
for information on what a CallbackHandler
is and
when you may need one.
Actual authentication occurs with a call to the following method:
public void login() throws LoginException;
When login
is invoked, all of the configured
LoginModule
s are invoked to perform the
authentication. If the authentication succeeded, the
Subject
(which may now hold Principal
s,
public credentials, and private credentials) can be retrieved by
using the following method:
public Subject getSubject();
To logout a Subject
and remove its authenticated
Principals
and credentials, the following method is
provided:
public void logout() throws LoginException;
The following code sample demonstrates the calls necessary to authenticate and logout a Subject:
// let the LoginContext instantiate a new Subject LoginContext lc = new LoginContext("entryFoo"); try { // authenticate the Subject lc.login(); System.out.println("authentication successful"); // get the authenticated Subject Subject subject = lc.getSubject(); ... // all finished -- logout lc.logout(); } catch (LoginException le) { System.err.println("authentication unsuccessful: " + le.getMessage()); }
The LoginModule
interface gives developers the ability to implement
different kinds of authentication technologies that can be
plugged in under an application. For example, one type of
LoginModule
may perform a user name/password-based
form of authentication. Other LoginModule
s may
interface to hardware devices such as smart cards or biometric
devices.
Note: If you are an application writer, you do not need to
understand the workings of LoginModule
s. All you
have to know is how to write your application and specify
configuration information (such as in a login configuration file)
such that the application will be able to utilize the LoginModule
specified by the configuration to authenticate the user.

In some cases a LoginModule
must communicate with
the user to obtain authentication information.
LoginModule
s use a
javax.security.auth.callback.CallbackHandler for this
purpose. Applications implement the CallbackHandler
interface and pass it to the LoginContext
,
which forwards it directly to the underlying
LoginModule
s. A LoginModule
uses the
CallbackHandler
both to gather input from users
(such as a password or smart card pin number) or to supply
information to users (such as status information). By allowing
the application to specify the CallbackHandler
,
underlying LoginModules
can remain independent of
the different ways applications interact with users. For example,
the implementation of a CallbackHandler
for a GUI
application might display a window to solicit input from a user.
On the other hand, the implementation of a
CallbackHandler
for a non-GUI tool might simply
prompt the user for input directly from the command line.
CallbackHandler
is an interface with one method to
implement:
void handle(Callback[] callbacks) throws java.io.IOException, UnsupportedCallbackException;
The LoginModule
passes the CallbackHandler
handle
method an array of appropriate
Callback
s, for example a NameCallback
for the user name and a
PasswordCallback for the password, and the
CallbackHandler
performs the requested user
interaction and sets appropriate values in the
Callback
s. For example, to process a
NameCallback
, the CallbackHandler
may
prompt for a name, retrieve the value from the user, and call the
NameCallback
's setName
method to store
the name.
The
CallbackHandler
documentation has a lengthy
example not included in this document that readers may want to
examine.
Callback
interface as well as several
implementations. LoginModule
s may pass an array of
Callback
s directly to the handle
method
of a CallbackHandler.
Please consult the various Callback
APIs for more
information on their use.
To make JAAS authorization take place, granting access control permissions based not just on what code is running but also on who is running it, the following is required:
The Policy
abstract class and the
authorization-specific classes AuthPermission
and
PrivateCredentialPermission
are described below.
The java.security.Policy
class is an abstract class for representing the
system-wide access control policy. The Policy
API
was upgraded in the J2SDK 1.4 to support Principal
-based
queries.
As a default, the J2SDK provides a file-based subclass
implementation, which was upgraded to support
Principal
-based grant
entries in policy
files.
Policy files and the structure of entries within them are described in Default Policy Implementation and Policy File Syntax.
The javax.security.auth.AuthPermission
class encapsulates the basic permissions required for JAAS. An
AuthPermission
contains a name (also referred to as
a "target name") but no actions list; you either have the named
permission or you don't.
In addition to its inherited methods (from the java.security.Permission
class), an AuthPermission
has two public
constructors:
public AuthPermission(String name); public AuthPermission(String name, String actions);The first constructor creates a new
AuthPermission
with the specified name. The second constructor also creates a
new AuthPermission
object with the specified name,
but has an additional actions
argument which is
currently unused and should be null. This constructor exists
solely for the Policy
object to instantiate new
Permission
objects. For most other code, the first
constructor is appropriate.
Currently the AuthPermission
object is used to
guard access to the Policy
, Subject
,
LoginContext
, and Configuration
objects. Please refer to the AuthPermission
javadocs for the list of valid names that are supported.
The
javax.security.auth.PrivateCredentialPermission
class protects access to a Subject
's private
credentials and provides one public constructor:
public PrivateCredentialPermission(String name, String actions);Please refer to the PrivateCredentialPermission javadocs for more detailed information on this class.
The JAAS Authentication and JAAS Authorization tutorials contain the following samples:
sample_jaas.config
) as the class implementing the
desired underlying authentication. SampleLoginModule's user
authentication consists of simply verifying that the name and
password specified by the user have specific values.Principal
interface. It is used by SampleLoginModule.See the tutorials for detailed information about the applications, the policy files, and the login configuration file.
Application writers do not need to understand the code for SampleLoginModule.java or SamplePrincipal.java, as explained in the tutorials. Programmers who wish to write LoginModules can learn how to do so by reading the JAAS LoginModule Developer's Guide.
A number of JAAS-related settings can be configured in the
java.security
master security properties file, which
is located in the lib/security directory of the Java
runtime.
JAAS adds two new security properties to
java.security
:
login.configuration.provider
login.config.url.n
The following pre-existing properties are also relevant for JAAS users:
policy.provider
policy.url.n
The following example demonstrates how to configure these properties.
In this example, we leave the values provided in the default
java.security
file for the policy.provider
, policy.url.n
, and
login.configuration.provider
properties. The default java.security
file also
lists a value for the login.config.url.n property
, but it is commented out. In the example below, it is not commented.
... # # Class to instantiate as the javax.security.auth.login.Configuration # provider. # login.configuration.provider=com.sun.security.auth.login.ConfigFile # # Default login configuration file # login.config.url.1=file:${user.home}/.java.login.config # # Class to instantiate as the system Policy. This is the name of the class # that will be used as the Policy object. # policy.provider=sun.security.provider.PolicyFile # The default is to have a single system-wide policy file, # and a policy file in the user's home directory. policy.url.1=file:${java.home}/lib/security/java.policy policy.url.2=file:${user.home}/.java.policy ...
Note: Modifications made to this file may be overwritten by subsequent JRE updates.
However, an alternate java.security
properties file may be specified from the command line
via the system property java.security.properties=<URL>
.
This properties file appends to the system properties file. If both properties files specify values for the same key,
the value from command-line properties file is selected, as it is the last one loaded.
Also, specifying java.security.properties==<URL>
(using two equals signs), then that properties file
will completely override the system properties file.
To disable the ability to specify an additional properties file from the command line, set the key
security.overridePropertiesFile
to false
in the system properties file. It is set to true
by default.
The default JAAS login configuration implementation provided by Oracle gets its configuration information from files and expects the information to be provided in a specific format shown in the tutorials.
The default JAAS login configuration implementation can be
replaced by specifying the alternative provider class
implementation in the login.configuration.provider
property.
For example:
login.configuration.provider=com.foo.ConfigIf the Security property
login.configuration.provider
is not found, or is
left unspecified, then it is set to the default value:
login.configuration.provider=com.sun.security.auth.login.ConfigFile
Note that there is no means to dynamically set the login configuration provider from the command line.
If you are using a login configuration implementation that
expects the configuration information to be specified in files
(as does the default implementation from Oracle), the
location of the login configuration file(s) can be statically set
by specifying their respective URLs in the
login.config.url.n
property. 'n' is a
consecutively numbered integer starting with 1. If multiple
configuration files are specified (if n >= 2), they
will be read and unioned into one single configuration.
For example:
login.config.url.1=file:C:/config/.java.login.config login.config.url.2=file:C:/users/foo/.foo.login.config
If the location of the configuration files is not set in the
java.security
properties file, and also is not
specified dynamically from the command line (via the
-Djava.security.auth.login.config
option), JAAS
attempts to load a default configuration from
file:${user.home}/.java.login.config
The default policy implementation can be replaced by
specifying the alternative provider class implementation in the
policy.provider
property.
For example:
policy.provider=com.foo.PolicyIf the Security property
policy.provider
is not
found, or is left unspecified, then the Policy
is
set to the default value:
policy.provider=sun.security.provider.PolicyFile
Note that there is no means to dynamically set the policy provider from the command line.
The location of the access control policy files can be
statically set by specifying their respective URLs in the
auth.policy.url.n
property. 'n' is a
consecutively numbered integer starting with 1. If multiple
policies are specified (if n >= 2), they will be read
and unioned into one single policy.
For example:
policy.url.1=file:C:/policy/.java.policy policy.url.2=file:C:/users/foo/.foo.policy
If the location of the policy file(s) is not set in the
java.security
properties file, and is not specified
dynamically from the command line (via the
-Djava.security.policy
option), the access control
policy defaults to the same policy as that of the system policy
file installed with the J2SDK. That policy file
Login configurations are located using the
login.config.url.n
security properties found in the
java.security
file. For more information about this
property and the location of the java.security
file,
see Appendix A.
The default Configuration implementation,
ConfigFile
, gets its configuration information from
login configuration files. For details about the default login
Configuration implementation provided with JAAS, please consult
the javadocs for the
com.sun.security.auth.login.ConfigFile
class.
The following is a sample login configuration file.
Login1 { sample.SampleLoginModule required debug=true; }; Login2 { sample.SampleLoginModule required; com.sun.security.auth.module.NTLoginModule sufficient; com.foo.SmartCard requisite debug=true; com.foo.Kerberos optional debug=true; };
The application Login1 only has one configured
LoginModule, SampleLoginModule
. Therefore, an
attempt by Login1 to authenticate a subject (user or
service) will be successful if and only if the
SampleLoginModule
succeeds.
The authentication logic for the application Login2 is
easier to explain with the table below. Note: the
required
, sufficient
,
requisite
, and optional
flags are
described in the
Configuration
javadocs.
| Module Class | Flag | Authentication Attempt 1 | Authentication Attempt 2 | Authentication Attempt 3 | Authentication Attempt 4 | Authentication Attempt 5 | Authentication Attempt 6 | Authentication Attempt 7 | Authentication Attempt 8 |
|---|---|---|---|---|---|---|---|---|---|
| SampleLoginModule | required | pass | pass | pass | pass | fail | fail | fail | fail |
| NTLoginModule | sufficient | pass | fail | fail | fail | pass | fail | fail | fail |
| SmartCard | requisite | * | pass | pass | fail | * | pass | pass | fail |
| Kerberos | optional | * | pass | fail | * | * | pass | fail | * |
| Overall Authentication | not applicable | pass | pass | pass | fail | fail | fail | fail | fail |


scale(3f) - [M_calcomp:basic] calculate scaling factors for producing XY plots with LINE(3f) and AXIS(3f) routines (LICENSE:PD)
Synopsis
Description
Options
Examples
License
subroutine scale(array,axlen,npts,+-inc)
Calculate scaling factors and a starting value for an array of X or Y values for use in producing XY plots with the LINE and AXIS routines, for example.
Typically, the users program will accumulate plotting data in two arrays:
o An array of independent variables, X(i) o An array of dependent variables, Y(i)=f(X(i)) Typically these values should not be drawn directly in units of inches, but should be rescaled (A temperature of 3000 should not require the generation of a 3000 inch plot!).
For some problems the range of data is predictable. The programmer can predetermine suitable conversion factors for use in drawing the axis scale values and plot the data points on the graph directly in units of inches using the PLOT routine. Usually, however, these factors are not known in advance.
Therefore, the SCALE subroutine can examine the data values in an array and determine a starting value (minimum or maximum) and a scaling factor (positive or negative) such that:
1. The scale numbers drawn by the AXIS subroutine at each division will properly represent the range of real data values in the array. 2. The data points, when plotted by the LINE subroutine, will fit in a given plotting area (Generally the bounds of the plot axis drawn with AXIS). These values are computed and stored by SCALE at the END OF THE INPUT VALUE ARRAY.
The computed scaling factor (DELTAV) represents the number of data units per inch of axis, adjusting DELTAV so that it is always an interval of 1, 2, 4, 5, or 8 x 10**n (where n is an exponent consistent with the original unadjusted scaling factor). Thus, an array may have a range of values from 301 to 912, to be plotted over an axis of 10 inches. The unadjusted scaling factor is (912-301)/10=61.1 units/inch. The adjusted DELTAV would be 8 x 10**1 = 80. This will allow the production of nice axes, that start and end on rounded units and are divided into increments people can easily interpolate between.
The starting value (FIRSTV) is intended to be used as the first numeric label on the axis, is computed as a multiple of DELTAV that is equal to or outside the limits of the data in the array. For the example given above, if a minimum is wanted for FIRSTV, 240 would be chosen as the best value. If a maximum is desired instead, 960 would be selected (The nearest multiple of 80=DELTAV that is below or above the minimum and maximum data values 301 and 912).
ARRAY is the first element of the array of data points to be examined. AXLEN is the length of the axis, in inches, to which the data is to be scaled. Its value must be greater than 1.0 inch, and less than 100 inches. NPTS is the number of data values to be scanned in the array. The FORTRAN DIMENSION statement must specify at least two elements more than the number of values being scaled, to allow room for SCALE to store the computed starting value and scaling factor at the end of the array. +-INC is an integer whose magnitude is used by SCALE as the increment with which to select the data values to be scaled in the array. Normally INC=1; if it is 2, every other value is examined. If INC is positive, the selected starting value (FIRSTV) approximates a minimum, and the scale factor (DELTAV) is positive.
If INC is negative, the selected starting value (FIRSTV) approximates a maximum, and the scaling factor (DELTAV) is negative.
If INC= +-1, the array must be dimensioned at least two elements larger than the actual number of data values it contains. If the magnitude of INC > 1, the computed values are stored at (INC) elements and (2*INC) elements beyond the last data point. The subscripted element for FIRSTV is ARRAY(NPTS*INC+1); for DELTAV it is ARRAY (NPTS*INC+INC+1). Therefore, ARRAY must always be dimensioned at least NPTS*INC+INC+1 .
Generally, SCALE is called to examine each array to be plotted. If the user knows the range of his data values, he does not have to call SCALE for that array so long as he supplies an appropriate FIRSTV and DELTAV when AXIS and LINE are called.
Sample program:
program demo_scale use M_calcomp implicit none character(len=28) :: ichr1 character(len=26) :: ichr2 character(len=10) :: lbcd1, lbcd2 real :: xarray, yarray dimension xarray(62), yarray(62) real :: deltax integer :: i, j, inteq ICHR1 = PLOTTED ON A CALCOMP PLOTTER ICHR2 = USING Y = X -0.7*X +0.1*X LBCD1 = X-ABSCISSA LBCD2 = Y-ORDINATE call plots(0.0, 10.0, 0.0, 10.0) ! PLOT THREE GRAPHS ILLUSTRATING SCALE, AXIS, AND LINE deltax = 0.04 i = 1 ! AXIS DRAWS LABELS AS MUCH AS 0.4 INCHES TO THE NEGATIVE OF AXIS CENTER; ! EITHER USE AN ORIGIN OFFSET OF AT LEAST THIS VALUE OR DO NOT USE AN ! ORIGIN VALUE OF LESS THAN 0.4 OR CLIPPING WILL OCCUR call plot(0.4, 0.4, -3) deltax = 2.0*deltax xarray(1) = deltax do j = 1, 60 yarray(j) = xarray(j)**2 - 0.7*xarray(j)**3 + 0.1*xarray(j)**4 xarray(j + 1) = xarray(j) + deltax end do call scale(xarray(1), 6.5, 60, 1) call scale(yarray(1), 10.0, 60, 1) call axis(0.0, 0.0, lbcd1, -10, 6.5, 0.0, xarray(61), xarray(62)) call axis(0.0, 0.0, lbcd2, 10, 10.0, 90.0, yarray(61), yarray(62)) call newpen(i) call line(xarray(1), yarray(1), 60, 1, 2*(i - 2), i) call newpen(1) call symbol(1.3, 10., .14, ichr1, inteq, 0.0, 28) call symbol(1.3, 9.7, .14, ichr2, inteq, 0.0, 26) call number(2.98, 9.8, .1, 2.0, 0., -1) call number(3.96, 9.8, .1, 3.0, 0., -1) call number(4.94, 9.8, .1, 4.0, 0., -1)end program demo_scale!call plot(10.0,0.0,-3) call plot(0.0, 0.0, 999)
Public Domain
| Nemo Release 3.1 | scale (3) | July 22, 2023 |


2021 Web Challenge
The 2021 Web Challenge is open to coders, designers, community reps and students of all ages, including high school and college students.
Created with the US EPA's new input-output model, the
website features maps and data visualizations
that combine industry and environmental data using
Embeddable IO Widgets.
Our Industry Comparison Tools answer questions like: What are the top industries in my community? How do these industries impact air, water, land, energy use, job creation, health and prosperity? Where can we focus innovation for the greatest returns?


Stress and burnout have become an increasing phenomenon worldwide over the last decade. According to a YouGov survey, 51% of full-time UK employees said they have experienced anxiety or burnout in their current job. In France, 53% of employees and 68% of managers find their job too stressful.
The situation seems contradictory with the fact that happy employees are more productive than unhappy ones. If someone’s health is his or her own responsibility, employers have an important part to play in their employees’ well-being. Here are 7 policies you can implement to help your team members achieve work-life balance:
1. Implementing a flexible work schedule policy
Every employee works differently, some intrinsically tend to concentrate better in the morning, others are more productive at night. Setting up a fixed work schedule forces team members to adapt their natural cycle to the company, creating stress in their own body up to a feeling of imprisonment.
Parents may need to leave early from work in order to fetch their kids from daycare or school. Other collaborators may want to go play squash during their lunch break or attend a yoga session after work. Whatever their reason, favoring a flexible work schedule will help your employees better respect their own needs. As a result, they will feel more relaxed at work, increasing their focus and productivity.
2. Offering partial or full remote working to your employees
Going every day to the office makes employees spend time telecommuting. Depending on where they live, the number of hours wasted can sum up absurdly at the end of the year. And the stress generated by the hours spent behind the wheel stuck in traffic is highly unproductive too. Likewise, some employees may decide to go and work in a big city in order to get a job, while dreaming to live on the opposite side of the country, or even abroad.
An increasing number of employees favor flexibility at work – especially millennials. Letting your employees decide where they want to work greatly participates in helping them find their own balance.
3. Favoring lunch and coffee breaks
Some managers and hard workers still consider breaks as time wasted on their work day. On the contrary! Our brain works like a muscle: it needs training, but also resting and key nutrients, including oxygen and water. You can’t just make it operate at full capacity for hours without taking a break. At some point, your productivity and creativity will inevitably decrease, losing the benefits of the few minutes you “saved” earlier.
According to Courtney Seiter from Buffer, breaks:
- keep us from getting bored, thus increase our focus
- help us retain information and make connections – which automatically increases our creativity
- give us the opportunity to reevaluate our goals and reorder our priorities of the day/week/year
You can choose your own way to take a break: going for lunch with your colleagues, exercising, going some meditation, taking a quick nap after lunch, reading a book… The key is to listen to your body and look after yourself.
4. Setting up a culture of efficiency rather than workload
Would you rather see your employees work long hours but wasting time throughout the day, or be focused, and leave early from the office? One can hardly be efficient for 10 or 12 hours in a row. Plus we all have different capabilities.
Incentivizing your team members to producing great results rather than working long hours will motivate them to get the job done and use their free time as they wish. It’s a win-win!
5.  This essential break gives a true breath that lulls them into a state of serenity before jumping back in their daily lives.
Offering a generous vacation policy is one of the many ways you can show your employees gratitude. And if you want to go a step further, you can follow ZenPayroll example and opt for an unlimited vacation policy. The huge plus? “It helps build an ownership mentality” according to Joshua Reeves, their CEO and co-founder.
Be careful though, when offered unlimited vacations, some employees may end up taking fewer days off. At Basecamp, to counter this perverse effect, employees are offered a financial package to go on holidays.
6. Helping new parents
Can you believe that in the 21st century, offering paternity leave is still not obvious for a majority of companies? The capitalist model tends to forget that a good part of the world’s equilibrium is based on free “work”: having kids and raising them. Take it away and the whole economy collapses, more surely than if a war breaks out.
New parents bear this incredible responsibility in addition to their work. And everything that their company can implement to ease their job will make their lives a little bit smoother: offering flexible schedules, extending paternity leave, creating a daycare center for the company or booking some spots in an exterior structure… Your employees will definitely feel grateful.
7. Encouraging sports activities and meditation
One of the risks of working long hours is to prevent yourself from getting enough exercise. Indeed, activities can make you happier, give you more energy and help you gain focus. By offering flexible working hours, dedicating a room for working out, sponsoring a gym membership, or creating a small bathroom to take a shower after a run at lunchtime, you can encourage your employees to take the time to exercise, for the sake of their mental and physical health.
 If your office has an empty room, you can consider turning it into a meditation room that your employees can use throughout the day.
Of course, all this will have no impact if you don’t set the example yourself. Change needs to come from the leadership, translated into values and policies, and implemented at every level of the company. Work-life balance must be at the core of your company if you want it to truly improve the wellbeing of your employees.


- Main - package Main
-
- main(String[]) - Static method in class Main.Window
-
- MainMenuPanel - Class in Main
-
Class that represents the panel for the main menu of our game, seen when the game is first opened.
- MainMenuPanel() - Constructor for class Main.MainMenuPanel
-
Constructs a new instance of the main menu panel by initializing the menu's fields
- MESSAGE - Static variable in class networking.frontend.NetworkDataObject
-
Used by client programs to send program data.
- message - Variable in class networking.frontend.NetworkDataObject
-
Additional data.
- messageType - Variable in class networking.frontend.NetworkDataObject
-
The type of message being sent in this data object.
- mouseClicked(MouseEvent) - Method in class Main.MouseInput
-
- mouseEntered(MouseEvent) - Method in class Main.MouseInput
-
- mouseExited(MouseEvent) - Method in class Main.MouseInput
-
- MouseInput - Class in Main
-
A class that handles input from the user's mouse to the game
- MouseInput(Handler, Camera, NetworkMessenger, BufferedImage) - Constructor for class Main.MouseInput
-
Creates a new instance of MouseInput
- mousePressed(MouseEvent) - Method in class Main.MouseInput
-
Method that states what actions to take after the user has pressed the mouse
- myIP - Static variable in class Main.WizardRoyale
-


Build 0.1.3
Node.js version:
Chromium version:
Electron version:
Please enter your password
Want to make your arobic experience 100% faster+better? Here are some quick shortcuts:
Close apps:To close apps, Click on an app, click on the background, then press Q quickly twice.
Fullscreen apps:To fullscreen apps, quickly press F twice. Must have fullscreen enabled in the settings app!
Getting bored of the default apps on your system? Well we have a built in package manager! Here's how to install a new package.
There are two options to getting new apps: The app store and 3rd party packages.
For the app store, just click the app store icon that is installed on your device.
However, you can also install custom apps by following these steps:
1: Download any projects that are arobicOS supported. Supported ArobicOS projects always have a install.arbp file in their directory.
2: Drag the file into the ui/custom folder.
3: Click on the package manager. The package manager comes built in with arobic versions 0.0.2 and up, and looks like this. get_app
4: Select your install.abrp file.
5: Press the "Refresh" button in the menu bar and you are done!
Making your own apps is easy aswell! To create your own apps, check the README.txt in the arobicOS folder.


On a computer we can easily "assemble" and model molecular cages
of different size and shape before we make them in the lab.
We will now help you model a molecular cage!
This is like building a LEGO structure, where the LEGO blocks are
our molecular precursors.
In order to build a molecular cage you need to select a shape, which represents
the framework used to correctly position our precursors, the
Building Blocks and Linkers .
The building block will replace the grey spheres in the shape, while the
linker the grey lines.
Larger molecular shapes will generate more flexible cages. More
flexible cages will have a higher chance of not being "shape persistent",
meaning they can collapse and lose their internal pore. This
means that the cage will not be porous.
Can you take on the challenge and build a porous molecular cage?
Get started by selecting a shape and clicking on >>
Select a shape


Insert date here
Cookie Catastrophe - Unity
This is a test
Insert date here
Illusionary Generations - Unity
This is a test
Insert date here
Fantasteroids - Blender
This is a test
Insert date here
Cookie Catastrophe - Unity
This is a test
Insert date here
Illusionary Generations - Unity
This is a test
Insert date here
Fantasteroids - Blender
This is a test


Skylah is a chatbot service created by Eshban & Taymooor. You can avail this service by signing in and setting up a profile. You can SignUp from here.
Feel free to leave us a comment on the Skylah overview page to give some feedback about this application!


Like the title said, I'm trying to get a AJAX call to work in BBLog.
I am unable to get this working. I tried $.getJSON and $.ajax but both seem to fail returning any information. Is there a, special, way to get this to work in BBLog? What call should I use?
Kudo's to the person to point me in the right direction.
This is the code: var request = $.ajax({
cache: false,
url: "http://p0mp.com/bblog3/teamspeak/feed.php",
dataType: 'json',
});
request.done(function(data) {
for(var i in data) {
var playerdata = data[i];
var player =
{
id: playerdata.id,
name: playerdata.name,
channel: playerdata.channel,
}
instance.playerList.push(player);
}
});
Thanks!
Post edited 2 x times, last by
BrainFooLong
Administrator
BrainFooLong
Administrator
Ajax is Cross-Domain protected, as defined in the Same Origin Policy.
You'll never can make it working, except with JSON, as you do.
But you probably use it wrong.
Your PHP Script must return following things
1. Content-type: application/json or application/x-javascript
2. A callback of the data must be triggered, the name is in the $_GET["jsoncallback"] variable.
Example JS: $.getJSON("myurl.php", function(data){
console.log(data);
});
Example PHP for myurl.php: <?
header("content-type: application/x-javascript");
echo $_GET["jsoncallback"]."(".json_encode(array("foo", "bar").")";
?>


Storm KaeferHey! I'm a recent Computing Science graduate from the University of Alberta. Check out some of the projects I've been a part of!
Portfolio
About Me
I enjoy helping users create solutions that deliver their needs, in a simple way.
When I'm not having fun experimenting with web technologies, I'm playing drums in bands,
creating music, going on hikes, and enjoying life.
Also probably fixing my grandmother's printer, that happens from time to time.
[Review Board](review-board-link) is an open source web application, developed using Django, that
I had the privilege of working on through [UCOSP](ucosp-link).
Mentors guided us through completing different projects. I was a part of the
Admin UI team, where I completed a project that dealt with replacing
default Django selector widgets with a smarter, custom made widget built
with Javascript, HTML, a Django backend, and the Javascript library selectize.js.
[These](https://reviews.reviewboard.org/users/skaefer143/) are all the patches I've submitted towards Review Board.
The video up above is my final demo video, and shows the final widgets in action.
[review-board-link]: https://www.reviewboard.org/
[ucosp-link]: http://ucosp.ca/about.html
Category:
Open Source Contribution
Date:
December 2018
CAST - Course Assignment Super Tool
In CMPUT 401 at the University of Alberta, I worked alongside 4 other students
to create a web application named CAST for the Faculty of Nursing. It was
developed with Django as framework, using PostgreSQL as a database.
The application is a course assignment system, where administrators can import
courses, sections, and faculty members, and be able to assign faculty members
to courses based on a preference assignment algorithm.
To view a demonstration of all features developed during the course, please
watch the video below:
I was involved in programming the spreadsheet import feature and course
assignment view, as well as communicating with clients, setting up a server
to host the application, and initializing continuous integration with Travis CI.
Category:
University of Alberta
Date:
April 2018
City of Edmonton
From May 2017 to December 2017, I worked as a Jr. Enterprise Application Analyst at the City of Edmonton. This internship had me working with the Knowledge and Change Management team, where I interacted with many different business areas in the City of Edmonton.
During my time there, I collaborated with a teammate to develop a Google Chrome extension for an organizational support chat system called Jazz Chat. The Chrome extension was made using HTML, CSS and Javascript. It used the LiveChat service.
I also was able to write some Google Apps Script code in Google Sheets, in order to assist with team organization and ease of use.


This page tests "vanilla" login (and nothing else) from a single page app. signIn() and signOut() functions are defined in authRedirect.js file. Notice: I've hardcoded signIn() callback function in authRedirect.js as loginCallback(), which is implemented in this index.html file. You may want to change that in your own implementation.
Not logged in yet... Click here to sign in!


'netsh' is the network shell of Windows. It is used to control the firewall, log network activity, reset the Windows networking stack and more.
Using the command line:
Turn the firewall off: netsh advfirewall set allprofiles state off
Turn the firewall on: netsh advfirewall set allprofiles state on
Check status of firewall: netsh advfirewall show allprofiles
Reset Windows Firewall to default settings: netsh advfirewall reset
nftables is a userspace firewall that was created for the Linux networking stack.
It is very different from iptables because it it supposed to replace certain parts of netfilter.
I.E: nftables replaces the popular {ip,ip6,arp,eb}tables.
The syntax is also very different:
(A command to drop any packets with the destination IP address <IP_ADDRESS>)
nftables: nft add rule ip filter output ip daddr <IP_ADDRESS> drop
iptables: iptables -A OUTPUT -d <IP_ADDRESS> -j DROP
iptables only applies to IPv4, whereas ip6tables will apply to IPv6, arptables will apply to ARP and ebtables will apply to Ethernet bridges.
In most Linux systems, iptables is insalled to /usr/sbin/iptables, but a symbolic link is usually found at /sbin/iptables.
Table
NOTE: Some of the Windows firewall commands are PowerShell commands. So run all of your Windows commands through PowerShell instead of CMD.
NOTE: I add 'A: ' to the beginning of custom rules, so that they are grouped together and easy to locate.
| Description | Windows Firewall | Linux (firewalld - iptables tool) | Linux (iptables) |
|---|---|---|---|
| Turn firewall off. | netsh advfirewall set allprofiles state off | systemctl stop firewalld | systemctl stop iptables |
| Turn firewall on. | netsh advfirewall set allprofiles state on | systemctl start firewalld | systemctl start iptables |
| List firewall profiles. | netsh advfirewall show allprofiles | firewall-cmd --list-all | N/A |
| List firewall rules. | netsh advfirewall firewall show rule name=all | firewall-cmd --list-services && firewall-cmd --list-ports | iptables -L |
| Delete all firewall rules. | netsh advfirewall reset/Remove-NetFirewallRule | Remove from: /etc/firewalld/zones/ |
iptables -F |
| Delete firewall profiles/chains. | netsh advfirewall reset | rm -f /etc/firewalld/zones/*.xml | iptables -X |
| Select firewall profile. | Set-NetFirewallProfile -Name <ProfileName> | firewall-cmd --set-default-zone=zone | N/A |
| Turn firewall off for remote computer. | netsh -r <ComputerName> advfirewall set publicprofile state off | ssh user@server 'sudo systemctl stop firewalld' | ssh user@server 'sudo systemctl stop iptables' |
| Turn firewall on for remote computer. | netsh -r <ComputerName> advfirewall set publicprofile state on | ssh user@server 'sudo systemctl start firewalld' | ssh user@server 'sudo systemctl start iptables' |
| Enable firewall logging to specifc file. | netsh advfirewall set currentprofile logging filename "C:\temp\pfirewall.log" | N/A | N/A |
| Enable firewall logging. | netsh advfirewall set allprofile logging droppedconnections enable netsh advfirewall set allprofile logging allowedconnections enable (stored in '%SystemRoot%\system32\logfiles\firewall\pfirewall.log' by default) |
firewall-cmd --set-log-denied=all/unicast/broadcast/multicast/off (saves to /etc/sysconfig/firewalld -> LogDenied=all/etc.) | iptables -A INPUT -j LOGGING (stored in '/var/log/messages') |
| Disable ICMPv4 echo requests. | netsh advfirewall firewall add rule name="A: ICMP Block incoming V4 echo request" protocol=icmpv4:8,any dir=in action=block | firewall-cmd --zone=public --remove-icmp-block=echo-request --permanent (NOTE: firewall-cmd --get-icmptypes) | iptables -A INPUT -p icmp --icmp-type echo-request -j DROP (NOTE: /sbin/iptables -p icmp -h) |
| Enable ICMPv4 echo requests. | netsh advfirewall firewall add rule name="A: ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow | firewall-cmd --zone=public --remove-icmp-block=echo-request --permanent | iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT |
| Disable all of ICMPv4. | netsh advfirewall firewall add rule name="A: ICMP Block incoming V4 all" protocol=icmpv4,any dir=in action=block | firewall-cmd --zone=public --add-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent | iptables -A INPUT -p icmp -j DROP |
| Enable all of ICMPv4. | netsh advfirewall firewall add rule name="A: ICMP Allow incoming V4 all" protocol=icmpv4,any dir=in action=allow | firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent | iptables -A INPUT -p icmp -j ACCEPT |
| Disable ICMPv6 echo requests. | netsh advfirewall firewall add rule name="A: ICMP Block incoming V6 echo request" protocol=icmpv6:128,any dir=in action=block | iptables -A INPUT -p icmp6 --icmp-type echo-request -j DROP | |
| Enable ICMPv6 echo requests. | netsh advfirewall firewall add rule name="A: ICMP Allow incoming V6 echo request" protocol=icmpv6:128,any dir=in action=allow | iptables -A INPUT -p icmp6 --icmp-type echo-request -j ACCEPT | |
| Disable all of ICMPv6. | netsh advfirewall firewall add rule name="A: ICMP Block incoming V6 all" protocol=icmpv6,any dir=in action=block | iptables -A INPUT -p icmp6 -j DROP | |
| Enable all of ICMPv6. | netsh advfirewall firewall add rule name="A: ICMP Allow incoming V6 all" protocol=icmpv6,any dir=in action=allow | iptables -A INPUT -p icmp6 -j ACCEPT |
Windows
TechGenix IT Pro Today IT Pro Today TechTarget How-To Geek Internet Assigned Numbers Authority (IANA)Linux - firewalld
Wikipedia - firewalld TecMint TecMint Stack OverflowLinux - iptables/nftables
Wikipedia - nftables Netfilter.org Rayhan's blog The Geek Stuff


Originally a professional dancer I made the transition into yoga through Bikram and completed my intensive training over 3 months in LA in 2012. My style is a mix of tai chi & yoga with great emphasis on breathing, slow controlled and graceful movement.
"Jacqui exudes calm and creates a welcoming space for those new to yoga"


{% extends 'base.html' %} {% block content %}
This is a template
String from my_context: {{ my_text }}
Number from my_context:{{ my_number }}
This block is only for view


{{ site.user_description }}
The Public Enemies started as a divergent from our first group. The Public Enemies have been formed for 3 years.
Sims 4 | Xoflick | Kuzzo | Bimpar | Kashotex | Rjayloko | Distinct | Eclipze249 Keebler17
You can contact us at the Discord Server, or send us an email


{% extends "admin/layout.html" %} {% block title %}{{ _("Import") }}{% endblock %} {% block contents %}
{% trans %} If you have posts or comments in another system, Zine can import those into this blog. The data imported doesn't directly end up in the blog but a queue so that you can pick which data you want to import. To get started, choose a system to import from below: {% endtrans %}
{% trans %} The following list lists all the imports that are not yet in the database or deleted. Click on one of the links to inspect the imported data and select what you want to have in the database. {% endtrans %}
| {{ _('Date') }} | {{ _('Title') }} | {{ _('Importer Used') }} |
|---|---|---|
| {{ item.dump_date|datetimeformat|e }} | {{ item.title|e }} | {{ item.importer }} |


Login
Home
Menu
Contact
Categories
Antipasti
Pizza
Pasta
Mains
Dolci
Beverage
Our Statement
Finest Ingredients..
Fresh
Facebook
Instagram
Twitter
ALl rights reserved. Designed by
Ryan Paul,
Taruna Mangar, and
Evelina Iliescu-Nastasiu.


IP Address , Packets and Routing
IP (Internet Protocol)Address is an address of your network hardware. It helps in connecting your computer to other devices on your network and all over the world. An IP Address is made up of numbers or characters.
An example of an IP address would be: 506.457.14.512
All devices that are connected to an internet connection have a unique IP address which means there’s a need of billions of IP addresses. This requirement is fulfilled by the new IP version IPv6.
There are are two IP versions: IPv4 and IPv6. IPv4 is the older version which has an space of over 4 billion IP addresses. However, the new IPv6 version can provide up to trillions of IP addresses to fulfill the need of all internet users and devices.
The IPv4 version used to configure IP addresses in numerical value (numbers) which may conflict with other IP addresses. That’s why IPv6 adopted the hexadecimal method to provide unique IP addresses to billions of users in the world.
Example of an IPv6 IP address would be:
4ggr:1925:5656:7:600:t4tt:tc54:98vt
There are a few types of IP addresses like private IP addresses, public IP addresses, static IP addresses and dynamic IP addresses. Let’s talk about these different types of IP addresses one by one:
Private IP Address
A private IP address is the address of your device connected on the home or business network. If you have a few different devices connected to one ISP (Internet Service Provider), then all your devices will have a unique private IP address. This IP address cannot be accessed from devices outside your home or business network.
For example: <IP_ADDRESS>
Private IP addresses are not unique because there are limited number of devices on your network.
You can find out the private IP address of your device using a few techniques. If you are a Windows user, then simply go to the command prompt and enter the command ipconfig. If you’re a mac users, then you need to enter the following command ifconfig in your Terminal app
If you are using the internet on a mobile phone, then you can go to your WiFi settings to find out the IP address. iOS users can find the IP address by clicking on the ‘i‘ button next to the network they are connected to. Android users can click on the network name in their WiFi settings, and it will show the IP address.
Public IP Address
Your public IP address is the main IP address to which your home or business network is connected. This IP address connects you to the world, and it’s unique for all users.
Static and Dynamic IP Addresses
The dynamic IP address configures automatically and assign an IP to your network when you set up the router with internet. This distribution of IP addresses is managed by Dynamic Host Configuration Protocol (DHCP). DHCP can be your internet router that assigns an IP address to your network in your home or business environment.
Structure of an IP header, containing the fields described above and below as well as 'Version', 'Total length', 'Protocol', 'Header checksum', 'Options (+padding)' and 'Data variable'.
IHL indicates the header length. Packets use Type of Service to request special treatment (e.g. being put at the front of any queues). The identification, flags, and fragmentation offset fields keep track of each fragment when an IP packet is split up into smaller packets. The time to live is set when the IP packet is sent off, and the number is reduced by 1 each time the packet goes through a router. When the time to live gets to 0, the packet is deleted. This stops packets from circulating in a loop. You can find all the details about the header of IPv4 packets as well as the header of IPv6 packets on Wikipedia.
Routers got their name because they route IP Packets across networks: a router device connects different links. It examines IP packet headers, looking at the destination address and consulting a routing table of known networks. The table indicates which connections to send the packet on as the next link. The connections on a router are called interfaces: through the router, they interface between different link types.
An IP packet enters a circle labelled as a router. An arrow links its destination address to a routing table, with two columns, "NET" and "INT". The IP packet is shown leaving the router along a path to device A, a tablet. The router is also connected to devices B, C and D, a printer, a desktop, and a laptop respectively.
In the animation, an IP packet arrives at a router, which compares the packet’s destination address with the networks in the routing table. The packet is identified as belonging to network A, so the router routes it out of interface 1.
Often, routers learn how to reach distant networks by exchanging information with their neighbouring routers and building their own routing tables. This exchange of information to learn about other networks is called a routing protocol. You can find more information about routing protocols on Wikipedia.
Several different devices with different IP addresses in the 192.168.1.X network are connected to a switch, by wired or wireless connections. The switch is inside a circle labelled "Home hub/gateway/router", which also contains a smaller circle labelled "Router" and a box labelled "Modem" . A line labelled LAN with the IP network address <IP_ADDRESS> connects the switch and router, and a line labelled WAN with the IP address <IP_ADDRESS> connects the router and the modem. The modem is connected to an ISP (outside the home hub circle), and the ISP is connected to the internet.


Allied Organizations
Local groups whose work we love 💚
APIRG
Alberta Public Research Group is one of our most generous funders, and assists various activist groups in the city with planning, funding and supplies.
Edmonton Mutual Aid
A group of people committed to providing sustainable crisis shelters to the people in need of them in Edmonton and surrounding areas
Our Initiative
A team of like minded individuals who go out on our city streets and isolated camps to deliver food, clothing, blankets and survival items to those less fortunate and living rough and advocate for those without a voice.
YardShare YEG
A mutual aid organization in Edmonton focused on urban agriculture and facilitating yard sharing.
Bear Clan Patrol
Famous for serving the unhoused community with food, laughter and de-escalation tactics, BCP is a Canada-wide Indigenous-led movement.
YEGCRC19
YEG Community Response to Covid-19 helps direct people to government resources to help survive the pandemic, and feeds low-income populations in a mutual aid style network.
Workers Liberation Coalition
The WLC is a new political party dedicated to workers' rights and the end of oppression from capitalism. WLC believes the rulingc class oppresses Indigenous peoples, LGBTQ+ people, and workers in order to get rich. Keep fighting the good fight, WLC!


Man City's Gundogan says "Messi is the greatest footballer of all time"
The German international made his opinion on the game's best clear
by SPORT.esManchester City midfielder Ilkay Gundogan says Barcelona star Lionel Messi is the greatest player of all time.
Despite the debate, which has now existed for a decade, about whether Messi or Cristiano Ronaldo is the best, the German international made his opinion quite clear.
"Lionel Messi [is the best player in the world]," he said. "In my opinion, he has very special abilities. He has talent and he always manages to show it on the pitch. He always has the instinct to make the right decision.
"He uses his speed well against the opponents he plays. He has a strong finish. All in all, no one else has as much quality as Lionel Messi. He is the star player of my generation and the greatest footballer of all time. I hope we get to watch him play for a few more years."
Messi has scored nine goals in 11 appearances this season. He scored a hat-trick against Celta Vigo last weekend, with two of the goals coming from free-kicks. For the last 11 years, he has scored at least 40 goals in each calendar year. Even when Barça aren't on form, he is.


WITNESS LIST Public Health Committee April 2, 2003-8:00A HB 340 For: Aragon, Richard (Self) Brown, William (Palmer Drug Abuse Program, San Antonio INC) Coyle, Barbara (Self) Doeppenschmidt, Michelle (Self) Donham, Jennifer (Self) Frye, Patricia (Self) Haag, James (Self) Heikkala, Karen (TX ACLU) Lopez, Chelsea (Self) Nieto, Shelsta (Self) Ramos, Aldo (Self) Reyna, Andy (Self) Zamudio, Joseph (Self) Against: Reagan, Karen (Texas Retailers Association and Texas Federation of Drug Stores) Sargent, Michael (Consumer Healthcare Products Association) On: Gonzales, David (Texas Pharmacy Association) Tennyson, Susan (TDH) HB 1483 For: Mancini, Mary (Texas Organization Nurse Executive (TONE)) Against: Brashears, Pam (Texas League of Vocational Nurses) Brownback, Jonell (Texas League Vocational Nurses) Davault, Greg (Self) Debold, Patrick (Concorde Career Colleges Inc) Simmons Johnson, Deborah (Self) Zielinski, Rebecca (Self and Extended Health Education) On: Hairston RN CHE, Terrie (Board of Vocational Nurse Examiners) Harvey, Geneva (Board of Vocational Nurse Examiners) Thomas, Katherine (Board of Nurse Examiners) HB 1515 On: Thomas, Katherine (Board of Nurse Examiners) Willmann, James (Texas Nurses Association) HB 1794 For: Rummel, Leah (Texas Association of Health Plans) Sorrenson OD FAAO, Laurie (Self and Texas Optometric Association) On: Kloeris, Chris (Texas Optometry Board) HB 1877 For: Turner, Bob (Texas Rural Health Assoc) On: Tessen, Robert J. "Sam" (Office of Rural Community Affairs) HB 1952 For: Jefferson, David (Tarrant County Public Health Dept) Mendez, Mark (Tarrant County Commissioners Court) On: Briseno, Elias (Texas Departmment of Health) HB 1967 For: Blust, Kristie (Bexar County Commissioners Court) Evans, Leon (Center for Healthcare Services) Gonzales, Gilbert (CHCS-Center for Health Care Services) Lovelace, Joe (National Alliance for the Mentally Ill of Texas) Morin, Roger (Self and President Collins Garden Neighborhood Association) Vela, Dan (Chief Dan Vela, Sheriff Lopez, Bexar County) On: Hayes, Aaryce (Advocacy Inc, Mental Health Association in Tx) Maples, Michael (TDMHMR) HB 2185 For: Mendez, Mark (Tarrant County Commissioners Court) On: Owens, Debra (Texas Department of Health) HB 2208 On: Thomas, Katherine (Board of Nurse Examiners) HB 2535 For: Gloria, Brenda Lee (Self and Roxanne Gloria, Rosalie Gloria) HB 2651 For: Headrick, Kelly (American Cancer Society) On: Weiss Ph.D, Nancy (Texas Department of Health) HB 3162 For: Douglas, Wanda (Texas Nurses Assoc) Ford, Charles (Self and Texas State Troopers Assn) Gonzales, Darrell (Self and Chester Navarre) Johnson, Helen (Self and State Firemen's & Fire Marshals Assoc) Mason, Laura (Self and Tyler Profession Firefighters Association) Parrish, Paul (IAFF) Tucker, I.J. (Self and Local 3034 Proffessional Firefighters of Lufkin)


Related Tools
- BDF editors
- PostScript/ttf font editors
- Manutius -- (only for windows, German UI, Type1 fonts)
- spif -- under development (open source)
- gfonted -- under development (open source)
- DoubleType -- Java based open source truetype designer
- Luc Devroye's page of links to font creation programs
pfaedit -- The old name for fontforge
- Fontographer -- my favorite, has not been updated since1996 but has recently been purchased by FontLab who promise an update in 2006 (proprietary)
- FontLab -- Said to have really good tools for hinting truetype. (proprietary)
- AsiaFont Studio -- FontLab for big fonts (proprietary)
- FontMaster (used to be Ikarus )-- Top of the line font creation software. (proprietary)
- Font Creator-- TrueType editor. (proprietary)
- CR8Type -- TrueType font editor (proprietary)
- TTHmachine -- Hinting tool
- MetaFont -- Knuth's font generation which produces bitmaps from a program based on splines (& other TeX utilities)
- (available with the TeX package)
- MetaPost, Uses the metafont language to produce PostScript pictures.
- MetaType1, Which attempts to generate a type1 font directly from the metafont splines (I think)
- MetaFog -- Part of TrueTeX (proprietary) another mf->outline converter.
- TeXTrace, generates pfb fonts from TeX fonts by rasterizing at high res and then autotracing them
- mftops, similar
- mftrace, traces pk fonts (bitmap images) and creates pfb/pfa files. (formerly called pktrace)
- PostScript utilities
- gfontview -- displays a postscript/ttf font
- gglyph -- another font displayer
- t1utils -- Type 1 utility programs & multiple master utilities
- Type1inst -- helps to install type 1 fonts under X and ghostscript
- ttf2pt1 -- Converts truetype to type1 postscript fonts and generates hints
- ttftot42 -- Converts truetype to type42 postscript fonts.
- type1fix -- (part of the TeXtrace package). Used to make some Type1 fonts work with ATM.
- my stuff-- Type 1 decoders and converters. True Type & open type decoder.
- TrueType utilities
- Rogier C van Dalen has written a set of utilities for viewing and hinting truetype fonts
Peter Baker has a programming language called xgridfit for hinting truetype fonts. It is also available bundled with his junicode font.
Xgridfit aims to relieve some of the tedium of instructing fonts by providing such amenities as named points, control values, variables and functions, high-level programming structure, and automatic management of stack and reference points.
- TTX provides a way of editing all the strange tables in an opentype font (by converting them from/to XML)
- Microsoft provides a bunch of stuff (for Windows only of course)
- Various tools
- Font Properties Editor
- Font instructors
- Font signer (will produce a DSIG (digital signature) table for the font. You need to get a key from verisign first)
- And Adobe provides a Font Developer Kit (mostly for setting opentype tables I think)
- And Apple does too (mac only)
And some OS/X tools (mac only)
- Other font creation tools
- Palm pilot font converters
- pcf to windows fon converter
- bdf to windows fon converter (BDFtoFON)
- nafe -- text based psf font utilities
- Font manipulation libraries
- RoboFab -- Font library for python
- Rasterizers
- FreeType's Rasterizer (used to be just truetype, handles almost anything now)
- t1lib -- Type1 Rasterizer
- Other font tools of mine
- fondu -- Unwraps fonts from mac resource files (this includes dfonts). Produces ttf, pfb and bdf files for 'sfnt', 'POST' and 'NFNT' resources
- mensis -- Allows the user much finer control over some truetype tables than is provided by FontForge.
- fonttools/showttf -- Dumps the contents of a truetype/opentype font. Does some error checking too.
- fonttools/pcl2ttf -- Reads a pcl file (to go to an HP printer) and extracts any truetype or bitmap fonts in it. (the bitmap fonts become bdf files, the truetype fonts become ttf files).
- font organizers
- Unicode Font Guide for Free/Libre Open Source Operating Systems
- Other related links...
If you know of a tool you think should be on this list, please (this is a public mailing list). I did my research a couple of years ago and expect it is out of date.


Purchase
Edit
Supplier
Id
Please select a supplier
Company
Please select a supplier
Name
Please select a supplier
City
Please select a supplier
Item
Name
Invalid field.
Barcode
Invalid field.
Quantity
Invalid field.
Purchase Price
Invalid field.
Notes
Invalid field.
Selling Price
Invalid field.
Add
Name:
Company:
Save


2AM's Jinwoon & Nine Muses's Kyung Li reportedly dating!
by beansssAccording to an exclusive report on November 13, 2nd-generation idol singers 2AM's Jinwoon and Nine Muses's Kyung Li are dating!
Various industry insiders claimed that Jinwoon and Kyung Li have been dating for the past 2 years since some time in 2017, when they decided to go from close sunbae-hoobaes to lovers.
Back in December of 2017, the two idols released a special Christmas duet, "4LOVE". The two stars also previously worked together on a Comedy TV reality program, proving their great work chemistry.
In addition, Jinwoon and Kyung Li were frequently seen on dates this past year, whenever Jinwoon received vacations from his mandatory service. Jinwoon enlisted back in March of this year, currently serving in the military music corps. Stay tuned for updates from their agencies!


A writer for records format.
This writer should be used only inside with statement:
with records.RecordsWriter(file) as writer:
writer.write("record")
RecordsWriter will pad last block with 0 when exiting with statement scope.
| def google.appengine.api.files.records.RecordsWriter.__init__ |
( |
|
self, |
|
|
|
writer, |
|
|
|
_pad_last_block = True |
|
) |
| |
Constructor.
Args:
writer: a writer to use. Should conform to FileWriter interface.
| def google.appengine.api.files.records.RecordsWriter.write |
( |
|
self, |
|
|
|
data |
|
) |
| |
Write single record.
Args:
data: record data to write as string, byte array or byte sequence.
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/files/records.py


|
AGIExecEndEvent
|
Event triggered when a received AGI command completes processing. |
EMPTY
|
|
AGIExecEvent
|
Event triggered when an agi executes an application. |
EMPTY
|
|
AGIExecStartEvent
|
Event triggered when a received AGI command starts processing. |
EMPTY
|
|
AgentCalledEvent
|
AgentCalled Event |
EMPTY
|
|
AgentCompleteEvent
|
AgentComplete Event |
EMPTY
|
|
AgentConnectEvent
|
Event triggered when an agent connects. |
EMPTY
|
|
AgentDumpEvent
|
AgentDump Event |
EMPTY
|
|
AgentLoginEvent
|
AgentLogin Event |
EMPTY
|
|
AgentLogoffEvent
|
AgentLogoff Event |
EMPTY
|
|
AgentRingNoAnswerEvent
|
AgentRingNoAnswer Event |
EMPTY
|
|
AgentsCompleteEvent
|
Event triggered for the end of the list when an action Agents is issued. |
EMPTY
|
|
AgentsEvent
|
Event triggered for agents. |
EMPTY
|
|
AlarmClearEvent
|
AlarmClear Event |
EMPTY
|
|
AlarmEvent
|
Alarm Event |
EMPTY
|
|
AorDetailEvent
|
Event from PJSIPShowEndpoint |
EMPTY
|
|
AorListCompleteEvent
|
AorListComplete Event Part Of Action: PJSIPShowAors |
EMPTY
|
|
AorListEvent
|
AorList Event isListEntry and Part Action: PJSIPShowAors |
EMPTY
|
|
AsyncAGIEndEvent
|
Event triggered when a channel stops AsyncAGI command processing. |
EMPTY
|
|
AsyncAGIEvent
|
Event triggered when an async agi is executed. |
EMPTY
|
|
AsyncAGIExecEvent
|
Event triggered when AsyncAGI completes an AGI command. |
EMPTY
|
|
AsyncAGIStartEvent
|
Event triggered when a channel starts AsyncAGI command processing. |
EMPTY
|
|
AttendedTransferEvent
|
Event triggered when an attended transfer is complete. |
EMPTY
|
|
AuthDetailEvent
|
Event from PJSIPShowEndpoint |
EMPTY
|
|
AuthListCompleteEvent
|
AuthListComplete Event Part Of Action: PJSIPShowAuths |
EMPTY
|
|
AuthListEvent
|
AuthList Event isListEntry and Part Action: PJSIPShowAuths |
EMPTY
|
|
AuthMethodNotAllowedEvent
|
AuthMethodNotAllowed Event |
EMPTY
|
|
BlindTransferEvent
|
Event triggered when a blind transfer is complete. |
EMPTY
|
|
BridgeCreateEvent
|
Event triggered when a bridge is created. |
EMPTY
|
|
BridgeDestroyEvent
|
Event triggered when a bridge is destroyed. |
EMPTY
|
|
BridgeEnterEvent
|
Event triggered when a channel enters a bridge. |
EMPTY
|
|
BridgeEvent
|
Event triggered when bridging (connecting) two channels. |
EMPTY
|
|
BridgeInfoChannelEvent
|
Event triggered when an action BridgeInfo is issued. |
EMPTY
|
|
BridgeInfoCompleteEvent
|
Event triggered for the end of the list when an action BridgeInfo is issued. |
EMPTY
|
|
BridgeLeaveEvent
|
Event triggered when a channel leaves a bridge. |
EMPTY
|
|
BridgeListItemEvent
|
Event triggered when an action BridgeList was issued. |
EMPTY
|
|
BridgeVideoSourceUpdateEvent
|
BridgeVideoSourceUpdate Event |
EMPTY
|
|
CELEvent
|
Event triggered when a CEL log message is generated |
EMPTY
|
|
CallAnsweredEvent
|
Event triggered when the 'SCCP Call Answered' Event arrives. |
EMPTY
|
|
CallForwardEvent
|
Event triggered when the 'SCCPCallForward' Event arrives. |
EMPTY
|
|
CdrEvent
|
Event triggered when a channel changes its status. |
EMPTY
|
|
ChallengeResponseFailedEvent
|
ChallengeResponseFailed Event |
EMPTY
|
|
ChallengeSentEvent
|
ChallengeSent Event |
EMPTY
|
|
ChanSpyStartEvent
|
ChanSpyStart Event |
EMPTY
|
|
ChanSpyStopEvent
|
ChanSpyStop Event |
EMPTY
|
|
ChannelTalkingStartEvent
|
ChannelTalkingStart Event |
EMPTY
|
|
ChannelTalkingStopEvent
|
ChannelTalkingStop Event |
EMPTY
|
|
ChannelUpdateEvent
|
Event triggered when a channel updated its status. |
EMPTY
|
|
ConfbridgeEndEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeJoinEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeLeaveEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeListCompleteEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeListEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeListRoomsCompleteEvent
|
Event triggered for the end of the list when an action ConfbridgeListRooms is issued. |
EMPTY
|
|
ConfbridgeListRoomsEvent
|
Event triggered for each conference when an action ConfbridgeListRooms is issued. |
EMPTY
|
|
ConfbridgeMuteEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeRecordEvent
|
ConfbridgeRecord Event |
EMPTY
|
|
ConfbridgeStartEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeStopRecordEvent
|
ConfbridgeStopRecord Event |
EMPTY
|
|
ConfbridgeTalkingEvent
|
Event triggered when .. ? |
EMPTY
|
|
ConfbridgeUnmuteEvent
|
Event triggered when .. ? |
EMPTY
|
|
ContactListCompleteEvent
|
ContactListComplete Event Part Of Action: PJSIPShowContacts |
EMPTY
|
|
ContactListEvent
|
ContactList Event isListEntry and Part Action: PJSIPShowContacts |
EMPTY
|
|
ContactStatusDetailEvent
|
Event from PJSIPShowEndpoint |
EMPTY
|
|
ContactStatusEvent
|
ContactStatus Event |
EMPTY
|
|
CoreShowChannelEvent
|
Event triggered when an action CoreShowChannel is issued. |
EMPTY
|
|
CoreShowChannelsCompleteEvent
|
Event triggered for the end of the list when an action CoreShowChannels is issued. |
EMPTY
|
|
DAHDIChannelEvent
|
No description available
|
EMPTY
|
|
DAHDIShowChannelsCompleteEvent
|
Event triggered for the end of the list when an action DAHDIShowChannels is issued. |
EMPTY
|
|
DAHDIShowChannelsEvent
|
Event triggered when an action DAHDIShowChannel is issued. |
EMPTY
|
|
DBGetResponseEvent
|
Event triggered when a database key is asked for. |
EMPTY
|
|
DNDEvent
|
Event triggered when the 'SCCP Do Not Disturb' Event arrives. |
EMPTY
|
|
DNDStateEvent
|
Event triggered when the Do Not Disturb state is changed on a DAHDI channel. |
EMPTY
|
|
DTMFBeginEvent
|
Event triggered when a DTMF digit has started on a channel. |
EMPTY
|
|
DTMFEndEvent
|
Event triggered when a DTMF digit has ended on a channel. |
EMPTY
|
|
DTMFEvent
|
Event triggered when a dtmf is detected in a call. |
EMPTY
|
|
DeviceStateChangeEvent
|
DeviceStateChange Event isListEntry and Part Action: DeviceStateList |
EMPTY
|
|
DeviceStateListCompleteEvent
|
DeviceStateListComplete Event Part Of Action: DeviceStateList |
EMPTY
|
|
DeviceStatusEvent
|
Event triggered when the 'SCCP Device Status' Event arrives. |
EMPTY
|
|
DialBeginEvent
|
Event triggered when a dial action has started. |
EMPTY
|
|
DialEndEvent
|
Event triggered when a dial action has completed. |
EMPTY
|
|
DialEvent
|
Event triggered when a dial is executed. |
EMPTY
|
|
DialStateEvent
|
DialState Event |
EMPTY
|
|
DongleDeviceEntryEvent
|
Event triggered when getting a dongle device. |
EMPTY
|
|
DongleNewCUSDEvent
|
Event triggered when a ussd was queued for sent by dongle. |
EMPTY
|
|
DongleNewUSSDBase64Event
|
Event triggered when a ussd was queued for sent by dongle. |
EMPTY
|
|
DongleNewUSSDEvent
|
Event triggered when a ussd was queued for sent by dongle. |
EMPTY
|
|
DongleSMSStatusEvent
|
Event triggered when a sms was queued for sent by dongle. |
EMPTY
|
|
DongleShowDevicesCompleteEvent
|
Event triggered for the end of the list of dongle channels. |
EMPTY
|
|
DongleStatusEvent
|
Event triggered starting/stopping a dongle. |
EMPTY
|
|
DongleUSSDStatusEvent
|
Event triggered when a ussd was queued for sent by dongle. |
EMPTY
|
|
EndpointDetailCompleteEvent
|
EndpointDetailComplete Event Part Of Action: PJSIPShowEndpoint |
EMPTY
|
|
EndpointDetailEvent
|
Event from PJSIPShowEndpoint |
EMPTY
|
|
EndpointListCompleteEvent
|
Provide final information about an endpoint list. |
EMPTY
|
|
EndpointListEvent
|
Event from PJSIPShowEndpoints |
EMPTY
|
|
EventMessage
|
This is a generic event received from ami. |
EMPTY
|
|
ExtensionStateListCompleteEvent
|
ExtensionStateListComplete Event Part Of Action: ExtensionStateList |
EMPTY
|
|
ExtensionStatusEvent
|
Triggered when an extension changes its status. |
EMPTY
|
|
FAXSessionEvent
|
FAXSession Event |
EMPTY
|
|
FAXSessionsCompleteEvent
|
FAXSessionsComplete Event |
EMPTY
|
|
FAXSessionsEntryEvent
|
FAXSessionsEntry Event |
EMPTY
|
|
FAXStatsEvent
|
FAXStats Event |
EMPTY
|
|
FAXStatusEvent
|
FAXStatus Event |
EMPTY
|
|
FailedACLEvent
|
FailedACL Event |
EMPTY
|
|
FullyBootedEvent
|
Event triggered when ? |
EMPTY
|
|
HangupEvent
|
Triggered when a hangup is detected. |
EMPTY
|
|
HangupHandlerPopEvent
|
HangupHandlerPop Event |
EMPTY
|
|
HangupHandlerPushEvent
|
HangupHandlerPush Event |
EMPTY
|
|
HangupHandlerRunEvent
|
HangupHandlerRun Event |
EMPTY
|
|
HangupRequestEvent
|
HangupRequest Event |
EMPTY
|
|
HoldEvent
|
Event triggered when an extension is put on hold. |
EMPTY
|
|
IdentifyDetailEvent
|
IdentifyDetail Event isListEntry and Part Action: PJSIPShowEndpoint |
EMPTY
|
|
InboundRegistrationDetailEvent
|
Event from PJSIPShowRegistrationsInbound |
EMPTY
|
|
InvalidAccountIDEvent
|
InvalidAccountID Event |
EMPTY
|
|
InvalidPasswordEvent
|
InvalidPassword Event |
EMPTY
|
|
InvalidTransportEvent
|
InvalidTransport Event |
EMPTY
|
|
JabberEventEvent
|
Event Jabber |
EMPTY
|
|
JoinEvent
|
Event triggered when .. ? |
EMPTY
|
|
LeaveEvent
|
Event triggered when .. ? |
EMPTY
|
|
LinkEvent
|
Event triggered when linking (connecting) two channels. |
EMPTY
|
|
ListDialplanEvent
|
Event triggered when an action ShowDialPlan is issued. |
EMPTY
|
|
LoadAverageLimitEvent
|
LoadAverageLimit Event |
EMPTY
|
|
LoadEvent
|
Load Event |
EMPTY
|
|
LocalBridgeEvent
|
LocalBridge Event |
EMPTY
|
|
LocalOptimizationBeginEvent
|
LocalOptimizationBegin Event |
EMPTY
|
|
LocalOptimizationEndEvent
|
LocalOptimizationEnd Event |
EMPTY
|
|
MCIDEvent
|
MCID Event |
EMPTY
|
|
MWIGetCompleteEvent
|
MWIGetComplete Event |
EMPTY
|
|
MWIGetEvent
|
MWIGet Event |
EMPTY
|
|
MasqueradeEvent
|
Event triggered when an extension is masqued?? |
EMPTY
|
|
MeetmeEndEvent
|
MeetmeEnd Event |
EMPTY
|
|
MeetmeJoinEvent
|
MeetmeJoin Event |
EMPTY
|
|
MeetmeLeaveEvent
|
MeetmeLeave Event |
EMPTY
|
|
MeetmeMuteEvent
|
MeetmeMute Event |
EMPTY
|
|
MeetmeTalkRequestEvent
|
MeetmeTalkRequest Event |
EMPTY
|
|
MeetmeTalkingEvent
|
MeetmeTalking Event |
EMPTY
|
|
MemoryLimitEvent
|
MemoryLimit Event |
EMPTY
|
|
MessageWaitingEvent
|
Event triggered when ..? |
EMPTY
|
|
MiniVoiceMailEvent
|
MiniVoiceMail Event |
EMPTY
|
|
MonitorStartEvent
|
MonitorStart Event |
EMPTY
|
|
MonitorStopEvent
|
MonitorStop Event |
EMPTY
|
|
MusicOnHoldEvent
|
Event triggered when .. ? |
EMPTY
|
|
MusicOnHoldStartEvent
|
Event triggered when music on hold has started on a channel. |
EMPTY
|
|
MusicOnHoldStopEvent
|
Event triggered when music on hold has stopped on a channel. |
EMPTY
|
|
NewAccountCodeEvent
|
Triggered when? |
EMPTY
|
|
NewCalleridEvent
|
Event triggered when a caller id is used. |
EMPTY
|
|
NewConnectedLineEvent
|
NewConnectedLine Event |
EMPTY
|
|
NewExtenEvent
|
Event triggered when a new extension is accessed. |
EMPTY
|
|
NewchannelEvent
|
Event triggered when a new channel is created. |
EMPTY
|
|
NewstateEvent
|
Event triggered when a channel changes its status. |
EMPTY
|
|
OriginateResponseEvent
|
Response from an async originate. |
EMPTY
|
|
OutboundRegistrationDetailEvent
|
Event from PJSIPShowRegistrationsOutbound |
EMPTY
|
|
OutboundSubscriptionDetailEvent
|
Event from PJSIPShowSubscriptionsOutbound |
EMPTY
|
|
ParkedCallEvent
|
Event triggered when a call is parked. |
EMPTY
|
|
ParkedCallGiveUpEvent
|
Event triggered when a channel leaves a parking lot because it hung up without being answered. |
EMPTY
|
|
ParkedCallSwapEvent
|
ParkedCallSwap Event |
EMPTY
|
|
ParkedCallTimeOutEvent
|
Event triggered when a channel leaves a parking lot due to reaching the time limit of being parked. |
EMPTY
|
|
ParkedCallsCompleteEvent
|
Event triggered for the end of the list when an action ParkedCalls is issued. |
EMPTY
|
|
PeerEntryEvent
|
Event triggered for each peer when an action Sippeers is issued. |
EMPTY
|
|
PeerStatusEvent
|
Event triggered when a peer changes its status. |
EMPTY
|
|
PeerlistCompleteEvent
|
Event triggered for the end of the list when an action Sippeers is issued. |
EMPTY
|
|
PickupEvent
|
Pickup Event |
EMPTY
|
|
PresenceStateChangeEvent
|
PresenceStateChange Event isListEntry and Part Action: PresenceStateList |
EMPTY
|
|
PresenceStateListCompleteEvent
|
PresenceStateListComplete Event Part Of Action: PresenceStateList |
EMPTY
|
|
PresenceStatusEvent
|
PresenceStatus Event |
EMPTY
|
|
QueueCallerAbandonEvent
|
Event triggered when a caller abandons the queue. |
EMPTY
|
|
QueueCallerJoinEvent
|
Event triggered when a caller joins a Queue. |
EMPTY
|
|
QueueCallerLeaveEvent
|
Event triggered when a caller leaves a Queue. |
EMPTY
|
|
QueueEntryEvent
|
Event triggered for a QueueStatus action. |
EMPTY
|
|
QueueMemberAddedEvent
|
Event triggered for a QueueMemberAdd action. |
EMPTY
|
|
QueueMemberEvent
|
Event triggered for a QueueStatus action. |
EMPTY
|
|
QueueMemberPauseEvent
|
QueueMemberPause Event |
EMPTY
|
|
QueueMemberPausedEvent
|
Event triggered for a change in a queue member (pause/unpause). |
EMPTY
|
|
QueueMemberPenaltyEvent
|
QueueMemberPenalty Event |
EMPTY
|
|
QueueMemberRemovedEvent
|
Event triggered for a QueueMemberRemove action. |
EMPTY
|
|
QueueMemberRinginuseEvent
|
QueueMemberRinginuse Event |
EMPTY
|
|
QueueMemberStatusEvent
|
Event triggered for a status change in a queue. |
EMPTY
|
|
QueueParamsEvent
|
Event triggered for a QueueStatus action. |
EMPTY
|
|
QueueStatusCompleteEvent
|
Event triggered for the end of the list when an action QueueStatus is issued. |
EMPTY
|
|
QueueSummaryCompleteEvent
|
Event triggered for the end of the list when an action QueueSummary is issued. |
EMPTY
|
|
QueueSummaryEvent
|
Event triggered for a QueueSummary action. |
EMPTY
|
|
RTCPReceivedEvent
|
Event triggered when exchanging rtp stats. |
EMPTY
|
|
RTCPReceiverStatEvent
|
Event triggered when exchanging rtp stats. |
EMPTY
|
|
RTCPSentEvent
|
Event triggered when exchanging rtp stats. |
EMPTY
|
|
RTPReceiverStatEvent
|
Event triggered when exchanging rtp stats. |
EMPTY
|
|
RTPSenderStatEvent
|
Event triggered when exchanging rtp stats. |
EMPTY
|
|
ReceiveFAXEvent
|
ReceiveFAX Event |
EMPTY
|
|
RegistrationsCompleteEvent
|
Event triggered for the end of the list when an action Sipshowregistry is issued. |
EMPTY
|
|
RegistryEvent
|
Registry event. |
EMPTY
|
|
ReloadEvent
|
No description available
|
EMPTY
|
|
RenameEvent
|
Event triggered when renaming a channel. |
EMPTY
|
|
RequestBadFormatEvent
|
Event triggered when an agent logs in. |
EMPTY
|
|
RequestNotAllowedEvent
|
RequestNotAllowed Event |
EMPTY
|
|
RequestNotSupportedEvent
|
RequestNotSupported Event |
EMPTY
|
|
ResourceListDetailEvent
|
Event from PJSIPShowResourceLists |
EMPTY
|
|
SCCPAttachedDeviceEntryEvent
|
Event triggered when an SCCP Line Gets attached to an SCCP Device in. |
EMPTY
|
|
SCCPChannelEntryEvent
|
Event triggered by SCCPShowLine in. |
EMPTY
|
|
SCCPConfEndEvent
|
Event triggered when the 'SCCP Conference End' Event arrives. |
EMPTY
|
|
SCCPConfEnteredEvent
|
Event triggered when the 'SCCP Conference Entered' Event arrives. |
EMPTY
|
|
SCCPConfLeaveEvent
|
Event triggered when the 'SCCP Conference Leave' Event arrives. |
EMPTY
|
|
SCCPConfLeftEvent
|
Event triggered when the 'SCCP Conference Left' Event arrives. |
EMPTY
|
|
SCCPConfLockEvent
|
Event triggered when the 'SCCP Conference Lock' Event arrives. |
EMPTY
|
|
SCCPConfParticipantKickedEvent
|
Event triggered when the 'SCCP Conference Participant Kicked' Event arrives. |
EMPTY
|
|
SCCPConfParticipantMuteEvent
|
Event triggered when the 'SCCP Conference Participant Mute' Event arrives. |
EMPTY
|
|
SCCPConfParticipantPromotionEvent
|
Event triggered when the 'SCCP Conference Participant Promotion' Event arrives. |
EMPTY
|
|
SCCPConfStartEvent
|
Event triggered when the 'SCCP Conference Start' Event arrives. |
EMPTY
|
|
SCCPConfStartedEvent
|
Event triggered when the 'SCCP Conference Started' Event arrives. |
EMPTY
|
|
SCCPConferenceEntryEvent
|
Event triggered when SCCPConferenceEntry arrives. |
EMPTY
|
|
SCCPDeviceButtonEntryEvent
|
Event triggered by SCCPShowDevice. |
EMPTY
|
|
SCCPDeviceEntryEvent
|
Event triggered by SCCPShowDevice. |
EMPTY
|
|
SCCPDeviceFeatureEntryEvent
|
Event triggered by SCCPShowDevice Feature Entries. |
EMPTY
|
|
SCCPDeviceLineEntryEvent
|
Event triggered by SCCPShowDevice Line Entries. |
EMPTY
|
|
SCCPDeviceServiceURLEntryEvent
|
Event triggered by SCCPShowDevice ServiceURL Entries. |
EMPTY
|
|
SCCPDeviceSpeeddialEntryEvent
|
Event triggered by SCCPShowDevice SpeedDial Entries. |
EMPTY
|
|
SCCPDeviceStatisticsEntryEvent
|
Event triggered by SCCPShowDevice Call Statistics Entries. |
EMPTY
|
|
SCCPHintLineStateEntryEvent
|
Event triggered when SCCPHintLineStateEntry arrives. |
EMPTY
|
|
SCCPHintSubscriptionEntryEvent
|
Event triggered when SCCPHintSubscriptionEntry arrives. |
EMPTY
|
|
SCCPLineEntryEvent
|
Event triggered by SCCPShowLines Entries. |
EMPTY
|
|
SCCPMailboxEntryEvent
|
Event triggered by SCCPShowLine Mailbox Entries. |
EMPTY
|
|
SCCPMailboxSubscriberEntryEvent
|
Event triggered when SCCPMailboxSubscriberEntry arrives. |
EMPTY
|
|
SCCPSessionEntryEvent
|
Event triggered by SCCPShowSessions Entries. |
EMPTY
|
|
SCCPShowChannelsCompleteEvent
|
Event triggered by SCCPShowChannels Entries. |
EMPTY
|
|
SCCPShowConferencesCompleteEvent
|
Event triggered when SCCPShowConferences Completes. |
EMPTY
|
|
SCCPShowDeviceCompleteEvent
|
Event triggered by SCCPShowDevice to signal end of response. |
EMPTY
|
|
SCCPShowDeviceEvent
|
Event triggered by SCCPShowDevice. |
EMPTY
|
|
SCCPShowDevicesCompleteEvent
|
Event triggered by SCCPShowDevices to signal end of response. |
EMPTY
|
|
SCCPShowHintLineStatesCompleteEvent
|
Event triggered when SCCPShowHintLineStates Completes. |
EMPTY
|
|
SCCPShowHintSubscriptionsCompleteEvent
|
Event triggered when SCCPShowHintSubscriptions Completes. |
EMPTY
|
|
SCCPShowLineCompleteEvent
|
Event triggered by SCCPShowLine to signal end of response. |
EMPTY
|
|
SCCPShowLineEvent
|
Event triggered by SCCPShowLine. |
EMPTY
|
|
SCCPShowLinesCompleteEvent
|
Event triggered by SCCPShowLines to signal end of response. |
EMPTY
|
|
SCCPShowMWISubscriptionsCompleteEvent
|
Event triggered when SCCPShowMWISubscriptions Completes. |
EMPTY
|
|
SCCPShowSessionsCompleteEvent
|
Event triggered by SCCPShowSessions to signal end of response. |
EMPTY
|
|
SCCPShowSoftKeySetsCompleteEvent
|
Event triggered when SCCPShowSoftkeySets Completes. |
EMPTY
|
|
SCCPSoftKeySetEntryEvent
|
Event triggered when SCCPSoftKeySetEntry arrives. |
EMPTY
|
|
SCCPVariableEntryEvent
|
Event triggered by SCCPShowDevice/SCCPShowLine for Variable Entries. |
EMPTY
|
|
SIPQualifyPeerDoneEvent
|
SIPQualifyPeerDone Event |
EMPTY
|
|
SendFAXEvent
|
SendFAX Event |
EMPTY
|
|
SessionLimitEvent
|
SessionLimit Event |
EMPTY
|
|
SessionTimeoutEvent
|
SessionTimeout Event |
EMPTY
|
|
ShowDialPlanCompleteEvent
|
Event triggered for the end of the list when an action ShowDialPlan is issued. |
EMPTY
|
|
ShutdownEvent
|
Shutdown Event |
EMPTY
|
|
SoftHangupRequestEvent
|
SoftHangupRequest Event |
EMPTY
|
|
SpanAlarmClearEvent
|
SpanAlarmClear Event |
EMPTY
|
|
SpanAlarmEvent
|
SpanAlarm Event |
EMPTY
|
|
StatusCompleteEvent
|
Event triggered for the end of the list when an action Status is issued. |
EMPTY
|
|
StatusEvent
|
Event triggered when an action Status is issued. |
EMPTY
|
|
SuccessEvent
|
No description available
|
EMPTY
|
|
SuccessfulAuthEvent
|
Event triggered when an agent logs in. |
EMPTY
|
|
TableEndEvent
|
Event triggered when an 'TableEnd' Event comes in. |
EMPTY
|
|
TableStartEvent
|
Event triggered when an 'TableStart' Event comes in. |
EMPTY
|
|
TransferEvent
|
Event triggered when a call is transfered. |
EMPTY
|
|
TransportDetailEvent
|
Event triggered when an agent logs in. |
EMPTY
|
|
UnParkedCallEvent
|
Event triggered when a call is unparked. |
EMPTY
|
|
UnexpectedAddressEvent
|
UnexpectedAddress Event |
EMPTY
|
|
UnholdEvent
|
Unhold Event |
EMPTY
|
|
UnknownEvent
|
This is an unknown (not implemented yet) event received from ami. |
EMPTY
|
|
UnlinkEvent
|
Event triggered when a bridged channel is unlinked. |
EMPTY
|
|
UnloadEvent
|
Unload Event |
EMPTY
|
|
UserEventEvent
|
Custom user events. |
EMPTY
|
|
VarSetEvent
|
Event triggered when a variable is set via agi or dialplan. |
EMPTY
|
|
VgsmMeStateEvent
|
Whenever a ME (GSM module) changes working state, an event is generated. |
EMPTY
|
|
VgsmNetStateEvent
|
Whenever the registration status of a GSM module changes, a vgsm_net_state event is generated. This event is available starting from 0.21.0. |
EMPTY
|
|
VgsmSmsRxEvent
|
On reception of an inbound SMS (SMS-DELIVERY) the message will also be reported as a manager event, however, acknowledgment still relies on SMS spooler to handle the message. This event is generated starting from 0.21.0 |
EMPTY
|
|
VoicemailUserEntryCompleteEvent
|
Event triggered for the end of the list when an action VoicemailUsersList is issued. |
EMPTY
|
|
VoicemailUserEntryEvent
|
Event triggered when issuing a VoicemailUsersList action. |
EMPTY
|


Faking the News: Project
Metadata
-
Your name / major / year
Daniel Castano / ITP / 2017-First year
-
Project working title
+NoNeeded articles dump
-
Tweet-length project description
NoNeeded articles dump is a virtual dump with trendy products which people decided not to buy because they realized they actually don’t need them.
-
Paragraph-length project description
Buy and sell stuff is the base of our economy.  This concern get worse due to people who buy articles they actually don’t need driven by sales, low prices, commercials and trends. Minimal economies promotes the trade of reusable goods as experiences, art, services, travel and tourism and even high quality products with longer life expectancies. Long term consequences will include less consumption, less production of goods and therefore less earnings rates in exchange of a more sustainable system. NoNeeded articles dump is a virtual dump with trendy products people decided not to buy because they realized they don’t need them.
Concept
-
What basic reality does your project reflect?
Unbelievable sales!. The lowest prices just available on black fridays.
-
What basic reality does your project mask or pervert?
Those trendy articles don’t have that sort of discounts (YET)
-
Does your project mask the absence of a basic reality?
No, this project make this current reality stronger and more desirable in order to honey pot compulsive buyers.
-
Does your project bear relation to any reality whatsoever?
No, It is a feasible reality anytime.
Intent
- Tools used, with justification
- Node.js - web Crawling (optional) in order to get actual sales and make it more desirable
- Node.js - backend framework (optional) in order to register numbers
- Express.js - frontend framework - to generate dinamic content
- Photoshop - content development look and feel minimal vs overconsumption
- Godaddy hosting and Buy Domain
- Promote sharing via facebook - promote partners in crime who recomend the sales.
- Data collection and measurement (if appropriate)
- Node.js + web storage = noNeeded articles
- Ethical risks and mitigation
- people who are not interested in the project - apologies and explanation of the project.
- people’s feelings hurt - apologies and explanation of the project.
- Legal risks and mitigation
- commercial web page - no credit card or personal information trade
- official web pages demands - not a copy
Justification
- Why are you interested/excited/compelled to pursue this project? Dollar tree prices and quality products.
Links
- Circular economies
- Middle colombian class and loans
- Sustainable consumption and behaviour change
- Preferred products in Colombia
- Minimalist economy
- Sustainable development
- New economies
- oneMillionWebPage
- Initial ideation
- https://trafalmejo.github.io/category/fakingthenews/
- Project questionnaire
- https://trafalmejo.github.io/2017/10/01/QuestionaryProject/
- Project URL (direct/source/other)
- https://trafalmejo.github.io/2017/10/01/QuestionaryProject/


Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.
Another Heading
Here is some more text. Here is some more text.
Here is some more text. Here is some more text.
Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.
Here is some more text. Here is some more text.
Here is some more text. Here is some more text.