Actions, resources, and condition keys for AWS Organizations
AWS Organizations (service prefix:
organizations
) provides the following service-specific resources, actions, and condition context keys for use in IAM permission policies.
References:
-
Learn how to configure this service .
-
View a list of the API operations available for this service .
-
Learn how to secure this service and its resources by using IAM permission policies.
Topics
Actions defined by AWS Organizations
You can specify the following actions in the
Action
element of an IAM policy statement. Use policies to grant permissions to perform an operation in AWS. When you use an action in a policy, you usually allow or deny access to the API operation or CLI command with the same name. However, in some cases, a single action controls access to more than one operation. Alternatively, some operations require several different actions.
The
Resource types
column of the Actions table indicates whether each action supports resource-level permissions. If there is no value for this column, you must specify all resources ("*") to which the policy applies in the
Resource
element of your policy statement. If the column includes a resource type, then you can specify an ARN of that type in a statement with that action. If the action has one or more required resources, the caller must have permission to use the action with those resources. Required resources are indicated in the table with an asterisk (*). If you limit resource access with the
Resource
element in an IAM policy, you must include an ARN or pattern for each required resource type. Some actions support multiple resource types. If the resource type is optional (not indicated as required), then you can choose to use one of the optional resource types.
The
Condition keys
column of the Actions table includes keys that you can specify in a policy statement's
Condition
element. For more information on the condition keys that are associated with resources for the service, see the
Condition keys
column of the Resource types table.
For details about the columns in the following table, see Actions table .
| Actions | Description | Access level | Resource types (*required) | Condition keys | Dependent actions |
|---|---|---|---|---|---|
| AcceptHandshake | Grants permission to send a response to the originator of a handshake agreeing to the action proposed by the handshake request | Write |
iam:CreateServiceLinkedRole |
||
| AttachPolicy | Grants permission to attach a policy to a root, an organizational unit, or an individual account | Write | |||
| CancelHandshake | Grants permission to cancel a handshake | Write | |||
| CloseAccount | Grants permission to close an AWS account that is now a part of an Organizations, either created within the organization, or invited to join the organization | Write | |||
| CreateAccount | Grants permission to create an AWS account that is automatically a member of the organization with the credentials that made the request | Write | |||
| CreateGovCloudAccount | Grants permission to create an AWS GovCloud (US) account | Write | |||
| CreateOrganization | Grants permission to create an organization. The account with the credentials that calls the CreateOrganization operation automatically becomes the management account of the new organization | Write |
iam:CreateServiceLinkedRole |
||
| CreateOrganizationalUnit | Grants permission to create an organizational unit (OU) within a root or parent OU | Write | |||
| CreatePolicy | Grants permission to create a policy that you can attach to a root, an organizational unit (OU), or an individual AWS account | Write | |||
| DeclineHandshake | Grants permission to decline a handshake request. This sets the handshake state to DECLINED and effectively deactivates the request | Write | |||
| DeleteOrganization | Grants permission to delete the organization | Write | |||
| DeleteOrganizationalUnit | Grants permission to delete an organizational unit from a root or another OU | Write | |||
| DeletePolicy | Grants permission to delete a policy from your organization | Write | |||
| DeleteResourcePolicy | Grants permission to delete a resource policy from your organization | Write | |||
| DeregisterDelegatedAdministrator | Grants permission to deregister the specified member AWS account as a delegated administrator for the AWS service that is specified by ServicePrincipal | Write | |||
| DescribeAccount | Grants permission to retrieve Organizations-related details about the specified account | Read | |||
| DescribeCreateAccountStatus | Grants permission to retrieve the current status of an asynchronous request to create an account | Read | |||
| DescribeEffectivePolicy | Grants permission to retrieve the effective policy for an account | Read | |||
| DescribeHandshake | Grants permission to retrieve details about a previously requested handshake | Read | |||
| DescribeOrganization | Grants permission to retrieves details about the organization that the calling credentials belong to | Read | |||
| DescribeOrganizationalUnit | Grants permission to retrieve details about an organizational unit (OU) | Read | |||
| DescribePolicy | Grants permission to retrieves details about a policy | Read | |||
| DescribeResourcePolicy | Grants permission to retrieve information about a resource policy | Read | |||
| DetachPolicy | Grants permission to detach a policy from a target root, organizational unit, or account | Write | |||
| DisableAWSServiceAccess | Grants permission to disable integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations | Write | |||
| DisablePolicyType | Grants permission to disable an organization policy type in a root | Write | |||
| EnableAWSServiceAccess | Grants permission to enable integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations | Write | |||
| EnableAllFeatures | Grants permission to start the process to enable all features in an organization, upgrading it from supporting only Consolidated Billing features | Write | |||
| EnablePolicyType | Grants permission to enable a policy type in a root | Write | |||
| InviteAccountToOrganization | Grants permission to send an invitation to another AWS account, asking it to join your organization as a member account | Write | |||
| LeaveOrganization | Grants permission to remove a member account from its parent organization | Write | |||
| ListAWSServiceAccessForOrganization | Grants permission to retrieve the list of the AWS services for which you enabled integration with your organization | List | |||
| ListAccounts | Grants permission to list all of the the accounts in the organization | List | |||
| ListAccountsForParent | Grants permission to list the accounts in an organization that are contained by a root or organizational unit (OU) | List | |||
| ListChildren | Grants permission to list all of the OUs or accounts that are contained in a parent OU or root | List | |||
| ListCreateAccountStatus | Grants permission to list the asynchronous account creation requests that are currently being tracked for the organization | List | |||
| ListDelegatedAdministrators | Grants permission to list the AWS accounts that are designated as delegated administrators in this organization | List | |||
| ListDelegatedServicesForAccount | Grants permission to list the AWS services for which the specified account is a delegated administrator in this organization | List | |||
| ListHandshakesForAccount | Grants permission to list all of the handshakes that are associated with an account | List | |||
| ListHandshakesForOrganization | Grants permission to list the handshakes that are associated with the organization | List | |||
| ListOrganizationalUnitsForParent | Grants permission to lists all of the organizational units (OUs) in a parent organizational unit or root | List | |||
| ListParents | Grants permission to list the root or organizational units (OUs) that serve as the immediate parent of a child OU or account | List | |||
| ListPolicies | Grants permission to list all of the policies in an organization | List | |||
| ListPoliciesForTarget | Grants permission to list all of the policies that are directly attached to a root, organizational unit (OU), or account | List | |||
| ListRoots | Grants permission to list all of the roots that are defined in the organization | List | |||
| ListTagsForResource | Grants permission to list all tags for the specified resource | List | |||
| ListTargetsForPolicy | Grants permission to list all the roots, OUs, and accounts to which a policy is attached | List | |||
| MoveAccount | Grants permission to move an account from its current root or OU to another parent root or OU | Write | |||
| PutResourcePolicy | Grants permission to create or update a resource policy | Write | |||
| RegisterDelegatedAdministrator | Grants permission to register the specified member account to administer the Organizations features of the AWS service that is specified by ServicePrincipal | Write | |||
| RemoveAccountFromOrganization | Grants permission to removes the specified account from the organization | Write | |||
| TagResource | Grants permission to add one or more tags to the specified resource | Tagging | |||
| UntagResource | Grants permission to remove one or more tags from the specified resource | Tagging | |||
| UpdateOrganizationalUnit | Grants permission to rename an organizational unit (OU) | Write | |||
| UpdatePolicy | Grants permission to update an existing policy with a new name, description, or content | Write | |||
Resource types defined by AWS Organizations
The following resource types are defined by this service and can be used in the
Resource
element of IAM permission policy statements. Each action in the
Actions table
identifies the resource types that can be specified with that action. A resource type can also define which condition keys you can include in a policy. These keys are displayed in the last column of the Resource types table. For details about the columns in the following table, see
Resource types table
.
| Resource types | ARN | Condition keys |
|---|---|---|
| account |
arn:$
{
Partition}:organizations::$
{
Account}:account/o-$
{
OrganizationId}/$
{
AccountId}
|
|
| handshake |
arn:$
{
Partition}:organizations::$
{
Account}:handshake/o-$
{
OrganizationId}/$
{
HandshakeType}/h-$
{
HandshakeId}
|
|
| organization |
arn:$
{
Partition}:organizations::$
{
Account}:organization/o-$
{
OrganizationId}
|
|
| organizationalunit |
arn:$
{
Partition}:organizations::$
{
Account}:ou/o-$
{
OrganizationId}/ou-$
{
OrganizationalUnitId}
|
|
| policy |
arn:$
{
Partition}:organizations::$
{
Account}:policy/o-$
{
OrganizationId}/$
{
PolicyType}/p-$
{
PolicyId}
|
|
| resourcepolicy |
arn:$
{
Partition}:organizations::$
{
Account}:resourcepolicy/o-$
{
OrganizationId}/rp-$
{
ResourcePolicyId}
|
|
| awspolicy |
arn:$
{
Partition}:organizations::aws:policy/$
{
PolicyType}/p-$
{
PolicyId}
|
|
| root |
arn:$
{
Partition}:organizations::$
{
Account}:root/o-$
{
OrganizationId}/r-$
{
RootId}
|
Condition keys for AWS Organizations
AWS Organizations defines the following condition keys that can be used in the
Condition
element of an IAM policy. You can use these keys to further refine the conditions under which the policy statement applies. For details about the columns in the following table, see
Condition keys table
.
To view the global condition keys that are available to all services, see Available global condition keys .
| Condition keys | Description | Type |
|---|---|---|
| aws:RequestTag/${TagKey} | Filters access by the tags that are passed in the request | String |
| aws:ResourceTag/${TagKey} | Filters access by the tags associated with the resource | String |
| aws:TagKeys | Filters access by the tag keys that are passed in the request | ArrayOfString |
| organizations:PolicyType | Filters access by the specified policy type names | String |
| organizations:ServicePrincipal | Filters access by the specified service principal names | String |


What is OpenAPI designer?
OpenAPI designer allows you to create and edit API design files. It is a a form based editor for designing APIs. It currently supports the OpenAPI/Swagger version 2.0.
Why use OpenAPI designer?
Developers can get started more easily if they can view an API design document and can try out the API calls. API designers can share the design file and get feedback from other stakeholders. This facilitates collaborative API design process.
Coding skills and understanding of JSON/YAML is not required for using the OpenAPI designer. The UI guides the user through the process of creating the required information.
How to use it?
When the editor is opened, there is an empty form. The design file can be created by adding paths, types, operations and parameters. Types, Parameters, Operations and Tags can be designed globally and referred to under Paths. You can download the designed file as JSON or YAML. The downloaded file can be viewed in viewers such as Swagger UI.
Future enhancements include importing a pre-existing design file or modifications and saving the design file to OpenAPI space. OpenAPI version 3.0 support is also on the roadmap.
More information
Visit the project repository in Github


|
| | PAlgebraModDerived (const PAlgebra &zMStar, long r) |
| |
| | PAlgebraModDerived (const PAlgebraModDerived &other) |
| |
| PAlgebraModDerived & | operator= (const PAlgebraModDerived &other) |
| |
| virtual PAlgebraModBase * | clone () const override |
| | Returns a pointer to a "clone". More...
|
| |
| virtual PA_tag | getTag () const override |
| | Returns the type tag: PA_GF2_tag or PA_zz_p_tag. More...
|
| |
| virtual const PAlgebra & | getZMStar () const override |
| | Returns reference to underlying PAlgebra object. More...
|
| |
| virtual const std::vector< NTL::ZZX > & | getFactorsOverZZ () const override |
| | Returns reference to the factorization of Phi_m(X) mod p^r, but as ZZX's. More...
|
| |
| virtual long | getR () const override |
| | The value r. More...
|
| |
| virtual long | getPPowR () const override |
| | The value p^r. More...
|
| |
| virtual void | restoreContext () const override |
| | Restores the NTL context for p^r. More...
|
| |
| const RXModulus & | getPhimXMod () const |
| | Returns reference to an RXModulus representing Phi_m(X) (mod p^r) More...
|
| |
| const vec_RX & | getFactors () const |
| | Returns reference to the factors of Phim_m(X) modulo p^r. More...
|
| |
| const vec_RX & | getCrtCoeffs () const |
| | Returns the CRT coefficients: element i contains (prod_{j!=i} F_j)^{-1} mod F_i, where F_0 F_1 ... is the factorization of Phi_m(X) mod p^r. More...
|
| |
| const std::vector< std::vector< RX > > & | getMaskTable () const |
| | Returns ref to maskTable, which is used to implement rotations (in the EncryptedArray module). More...
|
| |
| zzX | getMask_zzX (long i, long j) const override |
| |
|
In all the functions below, G must be irreducible mod p, and the order of G must divide the order of p modulo m (as returned by zMStar.getOrdP()). In addition, when r > 1, G must be the monomial X (RX(1, 1))
|
| void | CRT_decompose (std::vector< RX > &crt, const RX &H) const |
| | Returns a std::vector crt[] such that crt[i] = H mod Ft (with t = T[i]) More...
|
| |
| void | CRT_reconstruct (RX &H, std::vector< RX > &crt) const |
| | Returns H in R[X]/Phi_m(X) s.t. for every i<nSlots and t=T[i], we have H == crt[i] (mod Ft) More...
|
| |
| void | mapToSlots (MappingData< type > &mappingData, const RX &G) const |
| | Compute the maps for all the slots. In the current implementation, we if r > 1, then we must have either deg(G) == 1 or G == factors[0]. More...
|
| |
| void | embedInAllSlots (RX &H, const RX &alpha, const MappingData< type > &mappingData) const |
| | Returns H in R[X]/Phi_m(X) s.t. for every t in T, the element Ht = (H mod Ft) in R[X]/Ft(X) represents the same element as alpha in R[X]/G(X). More...
|
| |
| void | embedInSlots (RX &H, const std::vector< RX > &alphas, const MappingData< type > &mappingData) const |
| | Returns H in R[X]/Phi_m(X) s.t. for every t in T, the element Ht = (H mod Ft) in R[X]/Ft(X) represents the same element as alphas[i] in R[X]/G(X). More...
|
| |
| void | decodePlaintext (std::vector< RX > &alphas, const RX &ptxt, const MappingData< type > &mappingData) const |
| | Return an array such that alphas[i] in R[X]/G(X) represent the same element as rt = (H mod Ft) in R[X]/Ft(X) where t=T[i]. More...
|
| |
| void | buildLinPolyCoeffs (std::vector< RX > &C, const std::vector< RX > &L, const MappingData< type > &mappingData) const |
| | Returns a coefficient std::vector C for the linearized polynomial representing M. More...
|
| |
template<typename type>
class helib::PAlgebraModDerived< type >
A concrete instantiation of the virtual class.
Returns a coefficient std::vector C for the linearized polynomial representing M.
For h in Z/(p^r)[X] of degree < d,
G is assumed to be defined in mappingData, with d = deg(G). L describes a linear map M by describing its action on the standard power basis: M(x^j mod G) = (L[j] mod G), for j = 0..d-1.
Returns ref to maskTable, which is used to implement rotations (in the EncryptedArray module).
maskTable[i][j]
is a polynomial representation of a mask that is 1 in all slots whose i'th coordinate is at least j, and 0 elsewhere. We have:
maskTable.size() == zMStar.numOfGens() // # of generators
for i = 0..maskTable.size()-1:
maskTable[i].size() == zMStar.OrderOf(i)+1 // order of generator i


Class FloatingPoint
Represents a double-precision floating-point number. This class is a wrapper of System.Double.
Inherited Members
Namespace: Lapis.Math.Numbers
Assembly: Lapis.Math.Numbers.dll
Syntax
public class FloatingPoint : Real, IComparable<Real>, IEquatable<Real>, IComparable<FloatingPoint>, IEquatable<FloatingPoint>
Fields
Epsilon
Represents the smallest positive FloatingPoint value that is greater than zero.
Declaration
public static FloatingPoint Epsilon
Field Value
| Type | Description |
|---|---|
| FloatingPoint | The smallest positive FloatingPoint value that is greater than zero. |
See Also
MaxValue
Represents the largest possible value of a FloatingPoint object.
Declaration
public static FloatingPoint MaxValue
Field Value
| Type | Description |
|---|---|
| FloatingPoint | The largest possible value of a FloatingPoint object. |
See Also
MinValue
Represents the smallest possible value of a FloatingPoint object.
Declaration
public static FloatingPoint MinValue
Field Value
| Type | Description |
|---|---|
| FloatingPoint | The smallest possible value of a FloatingPoint object |
See Also
NaN
Represents a value that is not a number (NaN).
Declaration
public static FloatingPoint NaN
Field Value
| Type | Description |
|---|---|
| FloatingPoint | The value that is not a number (NaN). |
See Also
NegativeInfinity
Represents negative infinity.
Declaration
public static FloatingPoint NegativeInfinity
Field Value
| Type | Description |
|---|---|
| FloatingPoint | The negative infinity. |
See Also
PositiveInfinity
Represents positive infinity.
Declaration
public static FloatingPoint PositiveInfinity
Field Value
| Type | Description |
|---|---|
| FloatingPoint | The positive infinity. |
See Also
Properties
IsInfinity
Indicates whether the value of the current FloatingPoint object is PositiveInfinity or NegativeInfinity.
Declaration
public override bool IsInfinity { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is PositiveInfinity or NegativeInfinity; otherwise, false. |
Overrides
IsMinusOne
Indicates whether the value of the current FloatingPoint object is -1.
Declaration
public override bool IsMinusOne { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is -1; otherwise, false. |
Overrides
IsNaN
Indicates whether the value of the current FloatingPoint object is NaN.
Declaration
public override bool IsNaN { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is NaN; otherwise, false. |
Overrides
IsNegativeInfinity
Indicates whether the value of the current FloatingPoint object is NegativeInfinity.
Declaration
public override bool IsNegativeInfinity { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is NegativeInfinity; otherwise, false. |
Overrides
IsOne
Indicates whether the value of the current FloatingPoint object is 1.
Declaration
public override bool IsOne { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is 1; otherwise, false. |
Overrides
IsPositiveInfinity
Indicates whether the value of the current FloatingPoint object is PositiveInfinity.
Declaration
public override bool IsPositiveInfinity { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is PositiveInfinity; otherwise, false. |
Overrides
IsZero
Indicates whether the value of the current FloatingPoint object is 0.
Declaration
public override bool IsZero { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | true if the value of the current FloatingPoint object is 0; otherwise, false. |
Overrides
Sign
Gets a number that indicates the sign (negative, positive, or zero) of the current FloatingPoint object.
Declaration
public override int Sign { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 | A number that indicates the sign of the FloatingPoint object. The value of this object is negative. The value of this object is 0 (zero). The value of this object is positive. |
Overrides
Methods
Abs(FloatingPoint)
Returns the absolute value of a number.
Declaration
public static FloatingPoint Abs(FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | The number. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The absolute value of |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException |
|
Add(FloatingPoint, FloatingPoint)
Adds the values of two specified FloatingPoint objects.
Declaration
public static FloatingPoint Add(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first value to add. |
| FloatingPoint | right | The second value to add. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The sum of |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Compare(FloatingPoint, FloatingPoint)
Compares two specified FloatingPoint.
Declaration
public static int Compare(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Int32 | A signed integer value that indicates the relationship of Less than zero, if Zero, if Greater than zero, if |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
CompareTo(FloatingPoint)
Compares this instance to a second FloatingPoint and returns an integer that indicates whether the value of this instance is less than, equal to, or greater than the value of the specified object.
Declaration
public int CompareTo(FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | The FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Int32 | A signed integer value that indicates the relationship of this instance to Less than zero, if the current instance is less than Zero, if current instance equals Greater than zero, if the current instance is greater than |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Divide(FloatingPoint, FloatingPoint)
Divides a specified FloatingPoint object by another specified FloatingPoint object.
Declaration
public static FloatingPoint Divide(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The value to be divided. |
| FloatingPoint | right | The value to divide by. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The result of the division. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Equal(FloatingPoint, FloatingPoint)
Determines whether two specified FloatingPoint objects have the same value.
Declaration
public static bool Equal(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the value of |
Equals(FloatingPoint)
Determines whether this instance and a specified FloatingPoint object have the same value.
Declaration
public bool Equals(FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | The FloatingPoint object to compare to this instance. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the value of |
Equals(Object)
Determines whether this instance and a specified object, which must also be a FloatingPoint object, have the same value.
Declaration
public override bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | obj | The object to compare to this instance. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if |
Overrides
FromDouble(Double)
Converts a System.Double value to a FloatingPoint object.
Declaration
public static FloatingPoint FromDouble(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | value | The value to be wrapped. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | A FloatingPoint object that wraps |
GetHashCode()
Returns the hash code for the current object.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| System.Int32 | The hash code for the current object. |
Overrides
Multiply(FloatingPoint, FloatingPoint)
Multiplies two specified FloatingPoint objects.
Declaration
public static FloatingPoint Multiply(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first value to multiply. |
| FloatingPoint | right | The second value to multiply. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The product of |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Negate(FloatingPoint)
Negates a specified FloatingPoint object.
Declaration
public static FloatingPoint Negate(FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | The value to negate. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The result of the |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Pow(FloatingPoint, FloatingPoint)
Returns a specified number raised to the specified integral power.
Declaration
public static FloatingPoint Pow(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The number to be raised to a power. |
| FloatingPoint | right | The number that specifies a power. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The number |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Subtract(FloatingPoint, FloatingPoint)
Subtracts a FloatingPoint object from another FloatingPoint object.
Declaration
public static FloatingPoint Subtract(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The value to subtract from (the minuend). |
| FloatingPoint | right | The value to subtract (the subtrahend). |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The result of subtracting |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
ToDouble()
Converts the FloatingPoint object to a System.Double value.
Declaration
public override double ToDouble()
Returns
| Type | Description |
|---|---|
| System.Double | The System.Double value that the FloatingPoint object wraps. |
Overrides
ToString()
Returns the string representation of the FloatingPoint object.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| System.String | The string representation of the FloatingPoint object. |
Overrides
Operators
Addition(FloatingPoint, FloatingPoint)
Adds the values of two specified FloatingPoint objects.
Declaration
public static FloatingPoint operator +(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first value to add. |
| FloatingPoint | right | The second value to add. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The sum of |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Division(FloatingPoint, FloatingPoint)
Divides a specified FloatingPoint object by another specified FloatingPoint object.
Declaration
public static FloatingPoint operator /(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The value to be divided. |
| FloatingPoint | right | The value to divide by. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The result of the division. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Equality(FloatingPoint, FloatingPoint)
Determines whether two specified FloatingPoint objects have the same value.
Declaration
public static bool operator ==(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the value of |
GreaterThan(FloatingPoint, FloatingPoint)
Returns a value indicating whether a specified FloatingPoint is greater than another specified FloatingPoint.
Declaration
public static bool operator>(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
GreaterThanOrEqual(FloatingPoint, FloatingPoint)
Returns a value indicating whether a specified FloatingPoint is greater than or equal to another specified FloatingPoint.
Declaration
public static bool operator >=(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Implicit(FloatingPoint to Double)
Defines an implicit conversion of ta FloatingPoint object to a System.Double value.
Declaration
public static implicit operator double (FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | The FloatingPoint object to be converted. |
Returns
| Type | Description |
|---|---|
| System.Double | The System.Double value that |
Implicit(Double to FloatingPoint)
Defines an implicit conversion of a System.Double value to a FloatingPoint object.
Declaration
public static implicit operator FloatingPoint(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | value | The value to be wrapped. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | A FloatingPoint object that wraps |
Inequality(FloatingPoint, FloatingPoint)
Determines whether two specified FloatingPoint objects don't have the same value.
Declaration
public static bool operator !=(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the value of |
LessThan(FloatingPoint, FloatingPoint)
Returns a value indicating whether a specified FloatingPoint is less than another specified FloatingPoint.
Declaration
public static bool operator <(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
LessThanOrEqual(FloatingPoint, FloatingPoint)
Returns a value indicating whether a specified FloatingPoint is less than or equal to another specified FloatingPoint.
Declaration
public static bool operator <=(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first FloatingPoint object to compare. |
| FloatingPoint | right | The second FloatingPoint object to compare. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Multiply(FloatingPoint, FloatingPoint)
Multiplies two specified FloatingPoint objects.
Declaration
public static FloatingPoint operator *(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The first value to multiply. |
| FloatingPoint | right | The second value to multiply. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The product of |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
Subtraction(FloatingPoint, FloatingPoint)
Subtracts a FloatingPoint object from another FloatingPoint object.
Declaration
public static FloatingPoint operator -(FloatingPoint left, FloatingPoint right)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | left | The value to subtract from (the minuend). |
| FloatingPoint | right | The value to subtract (the subtrahend). |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The result of subtracting |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
UnaryNegation(FloatingPoint)
Negates a specified FloatingPoint object.
Declaration
public static FloatingPoint operator -(FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | The value to negate. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The result of the |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |
UnaryPlus(FloatingPoint)
Returns the value of the FloatingPoint operand. (The sign of the operand is unchanged.)
Declaration
public static FloatingPoint operator +(FloatingPoint value)
Parameters
| Type | Name | Description |
|---|---|---|
| FloatingPoint | value | A FloatingPoint object. |
Returns
| Type | Description |
|---|---|
| FloatingPoint | The value of the |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentNullException | The parameter is null. |


Is Frozen 2 better than the original? Fans think the impossible has happened
Frozen 2 has beaten the box office debut of its predecessor, taking in $350 million worldwide in its opening weekend.
In fact, it’s the highest opening for an animated film of all time. So, kind of a big deal.
But is it better than the original?
We know, we know – a pretty impossible question to answer!
While the first Frozen film – which was released in 2013 and grossed $1.276 billion – scored a 90% ‘Fresh’ rating on Rotten Tomatoes, Frozen 2 has scored a little lower.
The follow up, which once again features the voices of Kristen Bell, Idina Menzel and Jonathan Groff, is currently on 75%, as per the film reviews aggregator.
But there’s plenty of evidence on social media that Frozen 2 is just as good as, if not better than, Frozen.
(And given some of the thought that’s gone into these fan reviews, we think film critics had better start looking over their shoulder. And they’re spoiler-free too!)
Advertisement Advertisement
Here are some of the best Twitter responses:
Advertisement Advertisement
Our favourite takeaways from the above?
Probably ‘it took what was great about the first one and made it even better’, plus ‘Olaf is MVP [most valuable player] for sure!’ and ‘btw, there’s an end credit scene.’ (Good to know!)
As positively as Frozen 2’s gone down, however, don’t set your heart on as Frozen 3 just yet. At present, it looks like anyone hoping for a full-on franchise will be sorely disappointed.
Jennifer Lee, the director, writer and chief creative officer of Walt Disney Animation Studios recently told Digital Spy: ‘For us, this feels like what we set out to accomplish.’
‘It feels like the end, but the first one felt like the end when we did it,’ she then added. ‘We don’t know.
Well, it’s not an out and out no. We can but hope!
Got a showbiz story?
If you've got a celebrity story, video or pictures get in touch with the Metro.co.uk entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


[Note that followups are directed to rec.arts.movies.current-films and rec.arts.movies.startrek.current only, not to rec.arts.sf.movies. -Moderator]
STAR TREK: FIRST CONTACT A film review by Yamamoto Copyright 1996 Yamamoto
Have you noticed that right after you get your clothes back from dry cleaners, they attract stains? And only for first week or so. Then you never spill anything on the dirty clothes again. I swear there must be a conspiracy going on around here. I bet the dry cleaners add stain attracting chemicals on your clothes that last about a week or so. Of course, if you keep it in the closet, it won't attract dirt until you first put it on again.
Speaking of conspiracies, STAR TREK: FIRST CONTACT came out so I had to go check it out. It's the latest of the Star Trek movie series. This time around, the Federation's arch enemy come knocking on the front door so of course Star Trek: The New Generation crew must come to the rescue. And they go through the trekkie techno babble along the way just to save not only earth but the whole world as we know it.
No nakkid boobs. 33 bullets. Ship loads of dead bodies. 32 on the vomit meter. No moon shots. What we got here are: attack of the killer borg-fu, drill to the eye-fu, implant-fu, dreams from hell-fu, attack of killer comet-fu, targetting of non essential area-fu, techno babble-fu, futile resistance-fu, ankle grab-fu, attack of bullet proof body-fu, touchy feeling-fu, tequila shots-fu, bad whisky-fu, and of course, more techno babble-fu. Video hall of fame nominations to: James Cromwell for saying stuff like "Engage" and to Alice Krige for saying stuff like "You strive to be imperfect?" and to Brent Spiner for saying stuff like "You mean sexually?" Of course to Gates McFadden for saying stuff like "captain has made his decision" and to Alfre Woodard for saying stuff like "captain Ahab" and to Michael Dorn for saying stuff like "it made me sick to my stomach". And we can never forget Marina Sirtis for saying stuff like "This is a primitive society" and to Patrick Stewart for saying stuff like "I will make them pay!" and to Jonathan Frakes for saying stuff like "you mean you told him" and to Levar Burton for saying stuff like "that's funny". Three and a half stars. Shaggy Bob says wicked!
Spoilers -- Another one of the Borg ship heads to earth to assimilate. Jean Luc is placed out of the loop because the higher up things he's a liability. Of course, he proves all the higher ups wrong and saves the day. In defeat, escaping Borg ship time travels and attack earth in the past. Hmm... didn't Cyberdine System 101 and T1000 try to do something like that? Anyhow, the Enterprise and her crew follows and prevents altering of time line and saves the world from being conquered by the Borg. All the cameo by people from the different series adds flavor to the flick. But you really do need to follow the TV series to fully appreciate the little quirks and inside humor. If you're waiting for the phone call from Paulina Porizkova, take the cell phone and go see this movie. If you follow Star Trek at all, I doubt I'll even have to say that.
Alien Alert! Why do politicians like to make people's lives difficult? And why do we elect these people who try their darnest to make our lives miserable? For example, the another freeway is coming down but may not be replaced. Gee, that makes spending what, extra 40 min on the surface road instead of extra 20 min the commuters spend now. And if there were freeway system as it was furst intended, we would be saving all that time for something more constructive than sitting in the car, getting aggrivated by the BMW who just cut you off. No wonder people go postal.
For wisdom according to Shaggy Bob, hit that reply key now.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Display 4 Material Design font-icons using ligatures [instead of CSS names]; each with different sizes and colors
Cool Tip: Copy an icon and then paste in a text editor to see its textual name!


2 Useful Resources
2.1 Resources on Theories
Math supplemental notes
Stanford Machine Learning math notes
http://cs229.stanford.edu/materials.html
Highlights:
(pdf) Linear Algebra Review and Reference
(pdf) Probability Theory Review
Textbooks
Course Textbook
Artificial Intelligence: A Modern Approach (3rd Edition)
Further readings:
ISLR: An Introduction to Statistical Learning with Applications in R
http://www-bcf.usc.edu/~gareth/ISL/
ESL: The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Second Edition
http://statweb.stanford.edu/~tibs/ElemStatLearn/
MOOC websites
In companion with ISLR:
https://www.r-bloggers.com/in-depth-introduction-to-machine-learning-in-15-hours-of-expert-videos/
Coursera Stanford Machine Learning
https://www.coursera.org/learn/machine-learning/home/welcome
CMU Data Mining
http://www.stat.cmu.edu/~ryantibs/datamining/
Others
Visual Information Theory
2.2 Resources on Coding
Project Kaggle page
https://www.kaggle.com/c/two-sigma-connect-rental-listing-inquiries
bookdown
The package that builds this website.
https://bookdown.org/yihui/bookdown/
prism.js
Alternative highlight javascript
http://prismjs.com/#basic-usage
2.2.1 R Resources
Official Manuals
https://cran.r-project.org/manuals.html
R Introduction
(pdf) R Intro
Data Visualization in R with ggplot2
http://varianceexplained.org/RData/code/code_lesson2/
ggplot2 Documentation
http://docs.ggplot2.org/current/
Plotting NYC Map
https://www.kaggle.com/enrique1500/two-sigma-connect-rental-listing-inquiries/rental-listing-ny-map
TensorFlow in R
https://rstudio.github.io/tensorflow/index.html
MNIST For ML Beginners (Softmax Regression)
https://rstudio.github.io/tensorflow/tutorial_mnist_beginners.html
Deep MNIST for Experts (Convolutional Neural Network)
https://rstudio.github.io/tensorflow/tutorial_mnist_pros.html
https://rstudio.github.io/tensorflow/tutorial_mnist_pros.html
2.2.2 Python Resources
PyCharm: A Python IDE
https://www.jetbrains.com/pycharm/
TensorFlow in Python


--- layout: post title: Live Process Mapping with WMI date: 2014-09-17 04:54:29.000000000 -04:00 categories: blog ---
In previous posts I have discussed how you can parse a Windows event log and, through the magic of Powershell and javascript, create a visual map of process creation. But what if you are more IR than DF?
Here is an example of how you can leverage the Win32_Process WMI object to pull back the necessary information for a rudimentary process map on a live machine:
liveprocessmap
Its the same principle as before except this time we are pulling the data for the current running processes. The tooltip is programmed to display the command line of the process. Google Chrome has a very noisy command line syntax. This is great because you don't have to install anything or reconfigure your event log auditing.
Here is the code:
I will throw this script up on the ol' GitHub as well just for kicks.
Can this script be run on a remote machine? Of course it can! (provided you have the right access)
LiveProcessMap.ps1 -ComputerName REMOTECOMPUTER
The other scripts can too now that I think about it...I will be adding that feature soon.
*************DISCLAIMER*************
These mapping scripts are not an exact science. The script can only map the information it has to work with. There are gaps in process creation for numerous reasons. I have found that visually mapping them highlights those very quickly.


!= include('hints'); ?>
The website monitor will send an email alert when your website does down.
The app is made by Digital Inspiration, the developer of Mail Merge & Document Studio.
Check our website for more interesting projects made with Google Apps Script.
➩ For help, tweet us @labnol or send us an email at amit@labnol.org


SVGPlot
Introduction
SVGPlot will be the combination of several things:
- JavaScript API for creating plots/graphs/charts from data (JSON, XML, CSV, SQL query, HTML
<table>
element) - XML file format (PlotXML) that is built up by the JavaScript, but can be modified by hand (to edit plot parameters) and re-opened.
- Online web service to graphically create and manipulate plots and save your work as a JavaScript, PlotXML, pure SVG, PDF, PNG, JPEG, etc.
- Plot interactivity so your plots can be manipulated by end users -- zoom in, drill down, get values of points.
The goal is to make these three as clean as possible
- Simple things are easy -- good defaults and intelligent assumptions
- It's general enough to allow any complicated plot
- Advanced things are are only as complex as they need to be -- no need to always drop back to low level graphics commands.
I set out to create a plotting program that:
- Allows server-side command-line rendering through Batik, a Java program with an embedded JavaScript interpreter that handles SVG.
- Has the good features of Matlab, Mathematica, GNUPlot, Ploticus, Super Mongo, Asymptote. Eventually I'd like to write bridges so people's existing scripts and familiarity can be used to generate interactive web content.
- Can reproduce any plot in journals like Science and Nature as straightforwardly as possible. These tend to convey large amounts of data in a small space.
- Can reproduce any plot in Physics and Math textbooks as straightforwardly as possible. These tend to be more instructive with thick lines, simple axes, and lots of explanation arrows.
- Can reproduce all of the eye catching business graphics of other online charting tools, but this is not the initial focus.
- Client-side features of panning, zooming, and exploring the data.
- Allows raw data to optionally be published inside of PlotXML file along with the "suggested way" of viewing it, but the GUI allows viewer to painlessly explore data (e.g. change scale to log)
- Can produce maps, coordinate projections, and GIS data (TODO)
Live Demos
- live demo - Table of tests that you can modify and re-run client side.
- csv demo - Type or paste in CSV from a spread sheet and plot it.
Browse Code in SVN Repository
Design/Philosophy
Looking around, I found most of the existing plotting APIs lacking and decided to start from scratch.
The idea is to plot data sets. You can think of data sets as an area in a spreadsheet or a table in a database. Each piece of data (row) has values for attributes (columns). Plotting is the act of mapping one or more of these attributes to one or more plot characteristics: x-position, y-position, color, shape, size, orientation, panel-number.
|
<plot where the phase of the moon is encoded in little pictures of what the moon would look like in that phase> |
The simplest and most common case is plotting one variable against another.
|
There are two main categories of data, which affect how they are plotted and how ticks and labels are done:
- Continuous -- numbers (real and integers, dates, times, money
- Discrete -- categories, strings, names, days of the week, some dates and numbers which you don't want relatively positioned. There may or may not be a natural ordering.
A histogram is a higher-level construct. Here the data isn't directly mapped to the plot, but something is first calculated (how many data points fit into each category) and then the category versus counts are plotted.
Plot Features to Support
- Auto-scaling axes based on data range. Option to definitely include zero or a list of important "must haves." Option to include a little extra padding (go to the nearest integer)
- Tick marks on the axes, explicitly given or auto generated to be reasonably spaced.
- Grid - lines, stripes, checkerboard
- Labels along the axes, explicit or auto
- Multiple axes referring to the same plot area -- either dependent axes (like Celsius and Fahrenheit) or independent axes for plotting two different types of variables in the same area (usually with a common horizontal axis like population and GDP over time)
- Axis titles, plot titles
- Legends
- Multiple plot panels either independent or dependent (sharing axes which must auto-scale together despite different data.)
- Annotations
- labels on each dataset, which is often much easier to read than a legend.
- arrows with or without labels
- span indicators of various kinds:
|---- x ----|
or---> <--- x
- SVG graphics and effects on top of plot, but whose position can be given in terms of plot coordinates.
- Polar Coordinates (and other coordinate systems like hyperbolic and triangular) This is tricky because if you want to plot a ploar graph and a cartesian graph on top of each other, you'd like them to share the same cartesian coordinate system and possible auto-scaling based on both the cartesian and polar data.
- Polar Coordinates - adjust scale to fit data (possibly moving 0,0 off center) or make sure 0,0 is in the center and things are auto-ranged only to the biggest radius?
- Logarithmic, arctan, and other kinds of scales. (Should this be a property of the plot canvas or a property of the mapping of the dataset onto the plot canvas?)
- Pie Charts
- Area Charts
- Bar Charts, both horizontal and vertical of many styles and information (absolute, percent of whole, etc)
- Double bar charts where one category is horizontal and within that there are several bars for a second category.
- Gaps in data which break up lines, areas, stair steps etc. These are either unplottable y-values (like infinity or NaN floating point), or a break in the regular progression of x-data. Option to auto-detect either kind.
- Histogram (for ranges) and Count (for repeated x-values.)
- Accumulation: accumulate(data) returns for each position the sum of that data point and the previous data points. accumulate([1,2,1]) -> [1,3,4]
- Dates, times, and Date-time stamps. Relative times (durations expressed in seconds, minutes, days, etc.)
- European decimal notation.
- Financial notation. ($2,000), ($1,000), $0, $1000, $2000 and with other currencies.
- Sort data on row: e.g.last name, then first name.
- Filter data on a particular set of attributes so, for example, only a window is plotted (otherwise all points will be plotted and go beyond the range. (Iterators/generators would be great for this to save time and memory.)
- Clipping applied to the data area.
- line plot has a "firstpoint" option to add an additional point, usually at (0,0). Alternatively plot( prepend(data, data_point) )
- Legend auto (how to get the names), add manually, specify symbol and/or line to be shown next to name
- values: write the value for each point. How to specify style & relative position? How to add extra space or avoid curve?
Hand Crafted SVGs to guide Development
Inspiration/Other Programs
Also see jsxgraph SVG Wikipedia's List_of_information_graphics_software
Data Plotting Ploticus / GNUPlot / Matplotlib / PyX / Chaco / GNU PlotUtils / Super Mongo / Igor Pro Galary / Origin (Comm) / Matlab Tutorial / Dplot Galery (Win Trial) / Graphis / LabPlot KDE / JFreeChart / Grace for X / Create A Graph Website / Octave (OSS Matlab) / PlotKit / .netCharting / pgpolot / swivel.com / ChartFX / JpGraph / SciDavis / QtiPlot / Stolte & Hanrahan's Polaris /
Function Plotting Asymptote / NuCalc (old Mac) / Grapher (replacement) / GrafEQ Interval / DLSin / MTAC Java / Java Online / GraphCalc OSS Win / GraphPlotter Win / Fornux Win / Math 3D Explorer / Virtual Labs / PyX /
Complex and Vector Plotting Visual Complex Analysis Websites / Draw Rect Vector Flow / Vector Field Analizer (Applet) / Complex Mapping Viewer / Complex Functions /
Web Charting Flex Charting & Dashboard Example / PlotKit / Dojo / GlobFX /
Visualization VTK / TVTK / MayaVi & MayaVi2 / ParaView / VisIT / OpenDX (IBM's Viz Data Explorer) / SCIRun / NAG's Iris Explorer / OSS Package / Gallary of Viz / vpython / Gapminder / JunkCharts /
Data Analysis Tableau / Root / Java Analysis Studio (JAS3) / HippoDraw / AIDA: Abstract Interfaces for Data Analysis /
Computer Algebra Systems Maxima / Yacas / Euler / Eclipse / Sage /
Design Issues/Tradeoffs
- Densely pack information in the available space minimizing margins and extraneous "ink?" This is good for web viewing. Or should it more liesurely arrange things for optimal print viewing?
- Pixel align vertical and horizontal lines to avoid annoying anti-aliasing effects on screen or position plotted object "properly" for accurate printing? (see equally_spaced_lines vs rounded_lines)
- When the SVG DOM is modified, those changes are reflected in the resulting image. I don't think there's a way to "capture" possible modifications on the PlotXML DOM tree and to change the plot (or other calculated information) accordingly in real time. This means there really needs to be a duplication between the API function calls and the XML representation. Put another way, changing the DOM can't have side effects like calling a function, so to actually re-draw stuff, we need getter and setter functions.
- Procedural model (plot function) versus data model (XML/JSON rep).
- This issue is like Canvas vs SVG.
- The procedural model makes it easier to crate variables based on the data and use them in other parts without a lot of xrefs. (How to even do in JSON?)
- The data model makes it easier to change parameters with a UI, add data, and re-render.
- Ways to pass graph properties:
- Stack-based state method like Canvas
strokeStyle = 'red'; plot(func, {'x', 0, 10})
- Explicitly with each function like Mathematica:
plot(func, {'x', 0, 10}, {'strokeStyle':'red'} )
- A Combo: passing in a dictionary as the last parameter which overrides current state
- Create objects and set properties with setter functions explicitly like vtk
- Stack-based state method like Canvas
- Properties are nice for stack-based, but bad for object-based unless you're in Python where you can capture the setting or you're willing to register callbacks that check if the state is different than it was when it was drawn Periodic updates aren't so bad. Mozilla's native SVG element['width']=10 does it this way.
- Defaults are hard to deal with. Should axes, ticks, and labels start up on automatically? Sure. Then there's a difference between setting the ones and adding new ones. When you change a parameter, does it affect the axes or just the drawing of the new axes? What if you don't want all of the default ticks and stuff - do you have to delete them all explicitly?
- Input data:
- Table (2D array) with column headings (most efficient). First row may be heading. Spreadsheet-like.
[ ['x', 'y', 'a'], [7, 3, 6], [4, 2, 9], ...]
- Dictionary with variable names as keys and data as arrays.
{ x:[7, 3, 6], y:[4, 2, 9], a:[...], ... }
- List of objects with uniform attributes. Uniform, and what SQLObject returns. Inefficient. Easily passed to Drawing Function
[ {x:7, y:3, a:6}, {x:4, y:2, a:9}, ... ]
- Table (2D array) with column headings (most efficient). First row may be heading. Spreadsheet-like.
- What about truly 2D or 3D data like an image or height map? Would like to read in PNG/JPEG, etc. Would like to read astronomy's FITS files.
- What about topological information like regular grids, irregular grids, mesh of cells? These can all be described by tables where each datum includes all of this information, but that's not a good way to format or think about the data.
- Should 3D data even be supported by generating one-view SVG, or should this wait until a true web-friendly XML-based 3D data standard like X3D becomes universally adopted?
- Should the PlotXML format and JavaScript API be written extensiblly to support these kinds of plots once the underlying 3D technology is feasible, or would that make simple things too complicated?
- I'd love to have written this whole thing in Python or a combination of Python and C++ for the low-level stuff, but alas JavaScript is the only supported scripting language on the web and in SVG. Opening and saving files is impossible without going through a server, as is connecting to real-time data acquisition hardware.
Future Plans or Additional Packages
- Curve Fitting
- Histograms
- Statistical Analysis
- Computer Algebra system for function plotting
Keywords: plot, plotting, graph, graphing, chart, charting


Web apps aren't tech. They're "tech". I do hear sometimes from programmers who are kind of sad that they don't have the opportunity to write game engines from scratch like I did and have it matter or make an impact... > > -John Carmack ...
Let's Talk about Cache - Daniel Leskosky A cache is hardware or software that is used to temporarily store data. Learn about when caches are used and how caching works.
Create change within your locus of control When you want to change policy, show, don’t tell. Start by creating the change within your local environment, demonstrating the benefits, and encouraging others to try it. Once you’ve proven out the playbook and earned enthusiastic support, then advocate ...
The Problem of Preference Falsification in Online Dating Online dating is as old as the internet. It has exploded in popularity in recent years: roughly 40% of straight couples now meet online. It has given women more safety and choice as they participate in the dating market, and brought down divorce rates as ...
Who Should Buy ARM? - Dr. Z and Eng. L There are rumors about NVIDIA in advanced talks of buying ARM. Softbank has been in need of cash injection for some time, and ARM itself is a good asset.
Free Market Capitalism vs Government Socialism Socialism by definition involves the government directing resources. Capitalism by definition involves individuals self-directing themselves. so·cial·ism - a
Honey, I Accidentally Became A Product Manager This is the story about how I ended up following the product manager career path.
FAQs - Raspberry Pi Documentation Official documentation for the Raspberry Pi, written by the Raspberry Pi Foundation with community contributions.
Hydroxychloroquine: The Narrative That it Doesn’t Work is the Biggest Hoax in Recent Human History The narrative that Hydroxychloroquine doesn't work is the biggest hoax in recent human history. Here's a completely timeline of the coverup with sources.
Low latency tuning guide This guide describes how to tune your AMD64/x86_64 hardware and Linux system for running real-time or low latency workloads.
TrueFire hacked - credit cards and other personal info potentially compromised Tuition website TrueFire admits a "data breach" that may have given hacker unauthorised access to personal data for over five months.
Home | Laws of UX Laws of UX is a collection of the maxims and principles that designers can consider when building user interfaces. It was created by Jon Yablonski.
Mail delays are frustrating Philly residents, and a short-staffed Postal Service is struggling to keep up “It’s just piles of our mail sitting in the post office," one Overbrook Park resident said.
https://sliderulemuseum.com/SR_Course.htm Images created from Emulators designed by Derek Ross. Initial examples based on Derek's Self Guided demo and expanded by Mike Konshak.
Tines Blog / Part 1 : Breaches are inevitable and early detection is crucial This is part 1 of a 3 part series on security automation for dealing with account compromise. Part 1 covers detection, part 2 looks at enrichment and case management, while part 3 tackles protection and response including prompting the user to acknowledge...
Cosmetics firm Avon leaks 19 million customer records (Includes interview) The latest data breach has struck the purveyor of lower-cost cosmetics - Avon. Once a staple of door-to-door selling, the company has operated a successful online business for many years.
GPU.js - GPU accelerated Javascript GPGPU operations using pure javascript!. Accelerate javascript functions using a GPU
Telegram files EU antitrust complaint against Apple’s App Store Messaging company is latest company to criticize restrictions and fees.
System UIcons A free icon set designed for systems and products. Use how you want, without attribution.
Hacking Portable Air Conditioners I bought a couple EdgeStar AP14001HS portable air conditioners in April 2020, since I expect to spend most of the Summer at home. I'm not able to use window A/Cs here, though that would be the obvious choice for efficiency because all the hot parts remai...
The mysterious case of man who can read letters—but not numbers—exposes roots of consciousness With a condition that’s “too strange for words,” patient can do mental math but cannot recognize numerals
andrewlock/blazor-with-source-generators-poc Contribute to andrewlock/blazor-with-source-generators-poc development by creating an account on GitHub.
NASA Astronauts Return Home in SpaceX's Crew Dragon Spacecraft They’re coming home! 🌎 On Aug. 1, NASA astronauts Robert Behnken and Douglas Hurley will depart from the International Space Station aboard SpaceX’s Dragon “Endeavour” spacecraft after their mission aboard our orbiting laboratory. Starting at 5:15 p.m. ...
Pimp up your Blazor EditForms with Tailwind CSS! EditForms are a unstyled by default, so it falls to you to make your forms pop!
Cyber attack downs Telstra network, affecting thousands of internet users A cyber attack has brought down the critical internet address books that help run Telstra's network, resulting in thousands of people across Australia reporting outages on Sunday morning.
NES Background Parallax Explained - Audiovisual Effects Pt. 03 How can NES games create parallax background effects if the console only supports one background layer? It's all explained right here. LINKS Twitter (updates): https://twitter.com/RetroGameMechEx Patreon (support): https://www.patreon.com/rgmechex Subscr...
Revealing Passwords The Microsoft Edge browser, Edge Legacy, and Internet Explorer all offer a convenient mechanism for users to unmask their typing as they edit a password field: Clicking the little eye icon disables…


Andrew LinCo-PresidentA senior, Andrew made the 2017 USA Junior Olympiad (USAJMO) and has been in math club since his freshman year. |
Jonathan RogersCo-PresidentA senior, Jonathan has been in math club since his freshman year and has participated with Gunn at HMMT. |
Frederic WangCo-Vice PresidentA senior, Frederic has been participating with Gunn at competitions since his sophomore year. |
Andrew ZhaoCo-Vice PresidentA senior, Andrew has made 10th place in the CHMMC 2018 Individual Round, and has been participating with Gunn at competitions since his freshman year. |
Rishi SankarCo-Vice PresidentA senior, Rishi has been participating with Gunn at competitions since his freshman year. |
Jerry WangTreasurerA senior, Jerry has been participating with Gunn at competitions since his sophomore year. |
Andrew ChangSecretaryA sophomore, Andrew has been participating with Gunn at competitions since his freshman year. |


Akshay Nair
Front-End Ninja
Featured Work
PlasmaJS
https://github.com/phenax/plasmajs
Memory Game
https://github.com/phenax/memory-game
OxyRouter
https://github.com/phenax/oxyrouter


Description: Lock a callback list in its current state.
// a sample logging function to be added to a callbacks list
var foo = function( value ){
console.log( 'foo:' + value);
}
var callbacks = $.Callbacks();
// add the logging function to the callback list
callbacks.add( foo );
// fire the items on the list, passing an argument
callbacks.fire( 'hello' );
// outputs 'foo: hello'
// lock the callbacks list
callbacks.lock();
// try firing the items again
callbacks.fire( 'world' );
// as the list was locked, no items
// were called so 'world' isn't logged


Hearing into death of man shot by police near Bristol to be held this week
Spencer Ashworth, 29, was shot by firearms officers on the A369 Portbury Hundred on September 27, 2017
by Heather PickstockA coroner's hearing into the death of a man shot dead by police at a motorway roundabout near Bristol will take place this week.
A pre-inquest review hearing is scheduled for Friday (December 13) at Avon Coroner's Court in Flax Bourton into the death of Spencer Ashworth.
Mr Ashworth, 29, was shot by firearms officers on the A369 Portbury Hundred on September 27, 2017.
Police were responding to reports of a motorist travelling on the M5 with a handgun, who had allegedly threatened another driver.
An inquest into his death was initially opened - where his identity was confirmed - and adjourned in October 2017.
A full inquest hearing is due to take place next March, almost two and a half years after Mr Ashworth’s death.
The inquest is expected to last five weeks.
The Independent Office for Police Conduct (IOPC) opened an inquiry immediately after the incident.
The Portbury Hundred was closed for several days while police examined the scene.
On the day of the shooting, police were responding to reports that a man had wielded a handgun and threatened other motorists while driving south on the M5 from the Midlands.
Police stopped Mr Ashworth’s vehicle, a red Suzuki Swift, on the Portbury Hundred near junction 19 of the M5.
Shots were believed to have been fired by four authorised firearms officers from Avon and Somerset Constabulary, the IOPC previously said.
At the time it was suggested that Mr Ashworth was chased off the motorway by police before he was shot through the passenger side window, while pictures from the scene showed the target vehicle riddled with bullet holes – including through the rear windscreen.
Within a couple of days of his death, the IOPC dropped its investigation into the conduct of two other forces - West Mercia and Gloucestershire - and concentrated on the actions of Avon and Somerset Constabulary.
The regional head of the police watchdog said all the firearms officers had been "treated as witnesses throughout" their investigations and that body-worn camera footage formed a key part of the inquiry.
The IOPC confirmed in February - almost a year and a half after Mr Ashworth was shot - that it had completed its investigation.
However, its findings will not be published until they form part of the inquest hearing into Mr Ashworth’s death.


We will contact you soon You can call us at 1800-911-7656 for further information
Continue to homepage


Add a settings flyout bound to the Legal notices settings command.
Invoke the Settings charm and then Legal notices to see the associated settings flyout.
The Legal notices settings flyout is declared in its own HTML file and loaded as a fragment. It hosts dynamic web content within an iFrame.


黒の手番です。キューブアクションは？
8-3:11pt
pips Black=8 White=7
(CorrectAnswer= 0/0, ErrorScore= 0)
Player Winning Chances: 78.31% (G:0.00% B:0.00%) Opponent Winning Chances: 21.69% (G:0.00% B:0.00%) Cubeless Equities: No double=+0.566, Double=+0.770 Cubeful Equities: No redouble: +0.594 Redouble/Take: -0.350 (-0.944) Redouble/Pass: +1.000 (+0.406) Best Cube action: No redouble / Take Percentage of wrong pass needed to make the double decision right: 41.1%


Rolling Updates
Introduction
A rolling update is the process of replacing one version of the system with another without downtime. The changes can be new code, changed dependencies such as new Akka version, or modified configuration. Rolling updates are typically used for a stateful Akka Cluster where you can’t run two separate clusters in parallel during the update as in blue green deployments.
There are two parts of Akka that need careful consideration when performing an rolling update.
- Compatibility of remote message protocols. Old nodes may send messages to new nodes and vice versa.
- Serialization format of persisted events and snapshots. New nodes must be able to read old data, and during the update old nodes must be able to read data stored by new nodes.
There are many more application specific aspects. It’s important to have a strategy for serialization format that can be evolved and you can find advice in Persistence - Schema Evolution, which also applies to remote messages when deploying with rolling updates.
Akka supports rolling updates between two consecutive patch versions unless an exception is mentioned on this page. For example updating Akka version from 2.5.15 to 2.5.16. Many times it is also possible to skip several versions and exceptions to that are also described here. For example it’s possible to update from 2.5.14 to 2.5.16 without intermediate 2.5.15.
It’s not supported to have a cluster with more than two different versions. Roll out the first update completely before starting next update.
Shutdown order
It’s best to keep the node that has been running the longest until last. That is because Cluster Singletons (including Cluster Sharding coordinators) are running on the oldest nodes. It’s more efficient to avoid moving the singletons more than necessary since those typically have to recover their state and it might introduce unnecessary delays in for example access to new sharded actors.
Change log
2.5.0 Several changes in minor release
See migration guide when updating from 2.4.x to 2.5.x.
2.5.10 Joining regression
Issue: #24622
Incompatible change was introduced in 2.5.10 and fixed in 2.5.11.
This means that you can’t do a rolling update from 2.5.9 to 2.5.10 and must instead do update from 2.5.9 to 2.5.11.
2.5.10 Joining old versions
Issue: #25491
Incompatibility was introduced in in 2.5.10 and fixed in 2.5.15.
That means that you should do rolling update from 2.5.9 directly to 2.5.15 if you need to be able to join 2.5.9 nodes during the update phase.
2.5.14 Distributed Data serializer for ORSet[ActorRef]
Issue: #23703
Intentional change was done in 2.5.14.
This change required a two phase update where the data was duplicated to be compatible with both old and new nodes.
- 2.5.13 - old format, before the change. Can communicate with intermediate format and with old format.
- 2.5.14, 2.5.15, 2.5.16 - intermediate format. Can communicate with old format and with new format.
- 2.5.17 - new format. Can communicate with intermediate format and with new format.
This means that you can’t update from 2.5.13 directly to 2.5.17. You must first update to one of the intermediate versions 2.5.14, 2.5.15, or 2.5.16.


Welcome to TechAdrishta V2.5
Programming is 10% writing code, and 90% understanding why it's not working! Show us how much you know about Programming!You Know! You Grow!
RegisterStand tall. We are VALORANT, we are fighters! Explore your shooting skills and compete with the other players in the Valorant game!
RegisterJoin in with your team of 5 Players and compete with the other team in the DOTA 2 Multiplayer video game!
RegisterWhat makes a great CS Player is playing for the team rather than playing for yourself! Participate in the CSGO Multiplayer video game, and Compete with the other participants!
RegisterA good Logo is the silent ambassador of your brand! Design an attractive theme-based Logo and show us your creative skills!
Register


I'm a full-stack software engineer proficient in React, Node, and Javascript. I have an interest in applying the latest frameworks and technologies to create full-stack mobile and web applications. The most important thing for me as a software engineer is being innovative and creative with my approaches to complex situations. I am currently looking for a Full-stack engineer role in a company but am also open to any engineer role not specific to Full-stack I also enjoy the outdoors and have a Pomeranian named Oreo!
An Ecommerce site that allows users to create an account and have a personal shopping cart to checkout inventory. Uses Express as its web framework and PostgreSQL to manage the backend database.
View ProjectA mobile application that allows users to find recipes when provided with a set amount of ingredients. Also contains a camera feature that parses texts on receipts that return the ingredients shown on that receipt through Google vision API. Users are authenticated through Google's Firebase with their saved recipes and pantry always kept. Project was done in an agile environment with three other individuals for our final capstone project at Fullstack Academy.
View ProjectA movie searching application created through react and incorporating react hooks! First project using react hooks, it also uses axios to access Omdb's movie api.
View ProjectA mobile application that allows users to make meetings with other users at local restaurants nearby. Uses a react-native framework that incorporates Yelp's API through Axios, a promise based HTTP client.
View ProjectA 3 month Web development intensive with the focus of teaching aspiring software engineers the NERDS stack. Students were taught Node, Express, React/Redux, Database using PostgreSQL through a junior phase and later made projects through a senior phase.
Email: Calvinho1214@gmail.com


/**
* Takes audio file less then 100mb and sends it to IBM watson to be transcribed.
* Transcription is then saved as a file. and path of that file is returned.
https://www.ibm.com/watson/developercloud/speech-to-text/
*/
SESSION + JSON
/**
* Takes audio file less then 100mb and sends it to IBM watson to be transcribed.
* Transcription is then saved as a file. and path of that file is returned.
https://www.ibm.com/watson/developercloud/speech-to-text/
*/
var watson = require('watson-developer-cloud');
var fs = require("fs");
Initialise var so that scope allows to set api keys
and use it inside watsonTranscibe()
function
var speech_to_text;
/**
* takes in json of api keys
* `var keys = {username: "",password: ""}``
*/
function setAPIkeys(keys){ speech_to_text = watson.speech_to_text({ username: keys.username, password: keys.password, version: ‘v1’ }); }
/**
* takes in autio file path
* returns callback with file path to text file containing transcriptions.
*/
TODO: pass param of language
var SendToWatson = function(){}
SendToWatson.prototype.send = function(audioFile,keys, languageModel, cb){
console.log("################# .send_to_watson")
dictionary that matches language with IBM language models https://www.ibm.com/watson/developercloud/speech-to-text/api/v1/#get_models
/*
languageModel for ib can only be one of these, as string
ar-AR_BroadbandModel
en-UK_BroadbandModel
en-UK_NarrowbandModel
en-US_BroadbandModel
en-US_NarrowbandModel
es-ES_BroadbandModel
es-ES_NarrowbandModel
fr-FR_BroadbandModel
ja-JP_BroadbandModel
ja-JP_NarrowbandModel
pt-BR_BroadbandModel
pt-BR_NarrowbandModel
zh-CN_BroadbandModel
zh-CN_NarrowbandModel
*/
speech_to_text = watson.speech_to_text({
username: keys.username,
password: keys.password,
version: 'v1'
});
var params = {
audio: fs.createReadStream(audioFile),
content_type: 'audio/wav',
ndicates whether time alignment is returned for each word. The default is false.
timestamps: true,
Indicates whether multiple final results that represent consecutive phrases separated by long pauses are returned. If true, such phrases are returned; if false (the default), recognition ends after the first “end of speech” incident is detected.
continuous: true,
The time in seconds after which, if only silence (no speech) is detected in submit ted audio, the connection is closed with a 400 response code. The default is 30 seconds. Useful for stopping audio submission from a live microphone when a user simply walks away. Use -1 for infinity.
inactivity_timeout: -1,
Indicates whether a confidence measure in the range of 0 to 1 is returned for each word. The default is false.
word_confidence: true,
word_alternatives: 0.9,
model_id: ‘en-US_BroadbandModel’
model: languageModel
};
speech_to_text.recognize(params, function(err, transcript) {
if (err)
console.log(err);
else
console.log(JSON.stringify(transcript, null, 2));
if(cb){cb(transcript)}else{ return transcript}
});
}//transcribe
/**
* Helper function to extracts file name from file path string
*/
function getFileName(fileNameWithPath){
return fileNameWithPath.split("/").pop()
}
module.exports = SendToWatson;
module.exports.setKeys = setAPIkeys;


The way to iterate in pure functional languages
Example: Factorial using recursion
factorial1 :: (Integral a) => a -> a
factorial1 0 = 1
factorial1 n = n * factorial1 (n - 1)
Example: Factorial using tail recursion
factorial2 :: (Eq t, Num t) => t -> t
factorial2 x = tailFactorial x 1
where tailFactorial 0 acc = acc
tailFactorial n acc = tailFactorial (n - 1) (n * acc)
Example: Binary search
// initially called with low = 0, high = N-1
BinarySearch(A[0..N-1], value, low, high) {
// invariants: value > A[i] for all i < low
value < A[i] for all i > high
if (high < low)
return not_found // value would be inserted at index "low"
mid = (low + high) / 2
if (A[mid] > value)
return BinarySearch(A, value, low, mid-1)
else if (A[mid] < value)
return BinarySearch(A, value, mid+1, high)
else
return mid
}


England Reportedly Keen To Persuade Irish Prospect To Switch Allegiance
by Oisin McQueirnsEngland are reportedly interested in persuading Celtic’s Irish U19 international Armstrong Okoflex to switch international allegiances.
Okoflex was born in Dublin and is an Irish underage international most recently featuring in three games for Tom Mohan’s U19s but he has also represented England at U16 and U17 level.
According to a report in The Telegraph, England are keen on persuading the 17-year-old Celtic prospect to choose the Three Lions as his international side.
Okoflex joined the Scottish Champions in September 2018 after turning down an offer to stay at Arsenal and is widely considered to be a very talented young attacking player who can operate anywhere across the front three.
The 17-year-old has yet to make his senior debut for Celtic but has been a staple of the underage and reserve sides while also training with the first team on occasion this season.
The report also outlines that a number of English clubs are tracking his progress and could be interested in signing him should the opportunity arise.
Okoflex was reportedly also contacted by Nigeria about representing them at international level earlier this year, according to a report from Balls.ie, but he has thus far not accepted the offer.
The 17-year-old’s international future is by no means set in stone, but Irish fans will be forgiven for thinking back to the situations surrounding both Declan Rice and Jack Grealish who represented Ireland at underage level before a switch to the English senior side.
In an interview with the Irish Times in 2017, Okoflex outlined that he felt a stronger connection with Ireland, but it will be interesting to see which nation he ends up representing at international level.
“Ireland is where I’m from but England is financially better and the grounds are amazing. I enjoy playing with both but obviously I’m Irish so I feel the connection with them.”


Javascript Magic
A lot of JavaScript programmers have little to no understanding of what's going on under the hood when they execute their code. When their code doesn't behave the way they were expecting they just chalk it up to JavaScript magic. Let's take a look at a few examples.
(DON'T RUN - REFER TO CODING EXAMPLE)
Knowing that variables have the value of 'undefined' when they're declared, some programmers expect the declaration 'var DavidBlaine;' on line 2 to overwrite its previous assigment of 'I can levitate'
(RUN CODE)
(CLICK - NEXT SLIDE)
Javascript Magic
(EXAMPLE)
If the last one threw you for a loop, maybe you're expecting this one to log 'coo'. Let's take a look.
(RUN CODE)
Today I hope to demystify some of this mysterious behavior with...
(CLICK - NEXT SLIDE)
JavaScript's Biggest Secrets Finally Revealed
A Look Behind the Curtain at the JavaScript Engine
(READ TITLE)
(CLICK SUBHEADING)
(READ SUBHEADING)
To understand what's happening in the previous examples, we have to start broad.
(CLICK - NEXT SLIDE)
Program Language Implementation
A system for executing computer programs
(READ TITLE)
(READ SUBHEADING)
Implementation is a very complicated topic and can involve a lot of minunte steps, but for the scope of this talk we're going to keep it pretty general.
In short, Program Language Implementation is basically what happens between the source code you write and the corresponding machine code that your target machine will run.
There are two general approaches to implementation...
(CLICK - NEXT SLIDE)
2 General Approaches to Implementation
Compilation
Interpretation
(CLICK - COMPILATION)
(CLICK - INTERPRETATION)
(CLICK - NEXT SLIDE)
Interpretation
An Interpreter is a program that goes statement by statement through your source code and executes the corresponding machine code directly on the target machine
Fast and Convenient
Not optimized
Examples: Ruby and Python
(READ ON-SCREEN DESCRIPTION)
Imagine you're in France, but you don't speak French. You're lost so you ask a local for directions, but they don't speak english.
What do you do?
If you used something like Google Translate, that would be similar to implementing an interpreter.
Using Google Translate would provide you with a fast and convenient solution...
(CLICK)
but at the cost of quality.
(CLICK)
Although you and the other person could probably make sense of the translation that you were getting back from Google, there would almost certainly be a more accurate way to translate it.
Examples of languages that traditionally implement an interpreter are...
(CLICK - EXAMPLE LANGUAGES)
(CLICK - NEXT SLIDE)
Compilation
A compiler is a program that reads source code, translates it into machine code, and then returns the translation without running it
Optimized for improved performance
Requires and extra build step
Examples: Java and C
(READ TITLE)
(READ DESCRIPTION)
You and your impromptu navigator hit it off and decide to stay in touch via email. Unfortunately, his emails are in french.
This time, instead of using Google Translate you ask a friend who speaks french to translate it for you. This would be closer to using a compiler. The interpretation is WAY better than what you were getting with Google Translate
(CLICK)
But now on top of having to send the email, you have this extra step of having the compiler translate for you, which takes time.
Examples of languages that implement compilers include...
(CLICK - EXAMPLES)
That being said, which one is JavaScript?
Although JavaScript is usually categorized as 'interpreted', including on Wikipedia, it's technically compiled, but it's a type of compilation that's as close to interpretation as you can get.
(CLICK - NEXT SLIDE)
Just-in-Time
Just-in-Time is a type of compiler that compiles your source code during execution.
Unlike other languages that implement compilers, JavaScript's compilation does not happen in a separate build step beforehand.
(READ TITLE)
(READ DESCRIPTION)
Since the compiler is a component of the JavaScript Engine, your source code will ACTUALLY be read by the engine twice: once during compilation and once during execution.
So what does the compiler do?
(CLICK - NEXT SLIDE)
Compilation Before Execution
var a = 2
DECLARATION
ASSIGNMENT
For one thing, it takes care of declaring variable and functions.
Although we see 'var a = 2;' as one statement, the JavaScript Engine sees it as two:
(CLICK - DECLARATION)
Declaration, which compiler will handle,
(CLICK - ASSIGNMENT)
and Assignment, which it will handle.
The separation of declaration and assignment is where the concept of hoisting comes in. Going back to the earlier example...
(CLICK - NEXT SLIDE)
Hoisting
var DavidBlaine;
DavidBlaine = 'I can levitate';
var DavidBlaine;
console.log(DavidBlaine);
Compiler would encounter 'var DavidBlaine = "I can levitate"',
(CLICK - HOIST)
and hoist the declaration 'var DavidBlaine' to the top of the scope, leaving the assignment 'DavidBlaine='"I can levitate";' in place.
So where are all these variables and their assigned values stored?
Execution Context Object
Execution Context = function()
'Execution Context' is kind of a clunky phrase so lets take a second to put it in perspective.
The execution we're referring to, is the function's, and by 'execution', we're talking about the function being run.
(CLICK - EXECUTION = FUNCTION())
In the same way that an athlete can be in the context of running, or jumping, a function can be in the context of executing or being run.
What does the Execution Context Object do? It tracks all the variables and functions which make up the context of the function's execution. This should sound familiar. When someone says something's 'in scope', they're referring to whether or not it's on the Execution Context Object.
And just like scope is defined by functions, Execution Context Objects are created when functions are invoked.
Let's talk a little more about what the compiler does.
(CLICK - NEXT SLIDE)
3 Things the Compiler Does
Declare and initialize function arguments
Declare and initialize functions
Declare the local variables including any anonymous functions assigned to a local variable, but without initializing them
The compiler has 3 important jobs:
(CLICK - JOB 1)
(CLICK - JOB 2)
(CLICK - JOB 3)
Since that last one is a bit of a mouthful, let's take a second to look at an example of what we're talking about.
(CLICK - NEXT SLIDE)
Declare the local variables including any anonymous functions assigned to a local variable, but without initializing them
var magic = function(){ console.log('tada') };
Execution Context Object
{
magic: undefined,
(anonymous): function(){ console.log('tada') }
}
When the compiler encounters a statement like the one here. It will declare two attributes on the Execution Context Object.
(CLICK - ADD ATTRIBUTES)
One for the variable 'magic' and one for the anonymous function.
Note that the variable 'magic' is NOT initialized, but the anonymous function is.
All that being said, let's see the Execution Context Object in action.
Execution Context Object
Compilation
Execution
outer(1);
function outer (arg) {
var local_var = 'foo'
function inner () {
console.log('inner');
}
inner();
}
{
arg: 1,
local_var: undefined, 'foo',
inner: function () {
console.log('inner');
}
}
(CLICK - COMPILER - 1)
An empty execution context object will be created when 'outer' is invoked
(CLICK - 2)
The arguments passed to the function will be declared and assigned
(CLICK - 3)
Local variables are declared, but not assigned
(CLICK - 4)
Functions are declared and assigned, but not executed
(CLICK - 5)
That does it for the Compiler, now the Engine is all set to execute
(CLICK - 6)
Local variables are assigned
(CLICK - 7)
When the Engine reaches 'inner' and executes it, another Execution Context Object will be created INSIDE of this one.
Knowing all this, the behavior of the second example will become more apparent.
(CLICK - NEXT SLIDE)
Example 2
Compilation
Execution
var pigeon = 'coo';
function magicCage() {
var pigeon;
console.log(pigeon);
var pigeon;
}
magicCage()
{
pigeon: undefined,
console: Console
}
Let's start where the Engine has invoked 'magicCage' and created a new Execution Context Object
(CLICK - COMPILER - 1)
During the first run through the code,
(CLICK - HOIST AND ADD TO OBJECT - 2)
the compiler hoists the declaration of 'pigeon' to the top of the scope
(CLICK - ADD ATTRIBUTE - 3)
and adds it as a key to the execution context object.
(CLICK - CONSOLE - 4)
Finally, it will add 'console' which is an instance of the class Console.
(CLICK - EXECUTION - 5)
All that's left for the Engine to do is to execute 'console.log(pigeon)'. Since pigeon is declared on the local Execution Context Object as undefined, that's what it will log. The Engine would only look for 'pigeon' outside if it's current Execution Context Object if it wasn't already defined.
So what to take away...
What to Take Away
JavaScript is compiled immediately before it's executed
The compiler will declare all functions and variables
Variable and function declarations are hoisted
Functions and their arguments will be initialized
Variable assignments will stay in place
So what should you take away from this?
(CLICK)
(READ LIST ITEM)
The JavaScript Engine implements JavaScript with a compiler, which means that your code is going to be read twice: once during compilation and once during execution.
(CLICK)
(READ LIST ITEM)
This includes all variables passed as arguments to the function that was invoked.
(CLICK)
The compiler will hoist all variable and function declarations to the top of the scope.
(CLICK)
The compiler will initialize functions and the variables which were passed as arguments to the executed function.
(CLICK)
(READ LIST ITEM)
Dive Even Deeper With:
If you're interested in reading more about how JavaScript is implemented including compilation and the execution object, I recommend checking out some of these resources.
Thanks for your time!


By the end of this you should be knowing the very minimum set of commands for everyday git use
This aims at introducing many of Python’s most noteworthy features, and will give you a good idea of the language’s flavor and style.
This introduces you to Django which is a widely-used Python web application framework with a "batteries-included" philosophy. The principle behind batteries-included is that the common functionality for building web applications should come with the framework instead of as separate libraries.
Here we shall get to learn about AngularJS which is a JavaScript framework that is used for making rich, extensible web applications. It runs on plain JavaScript and HTML, so you don't need any other dependencies to make it work, and it is CSS-agnostic so you can use whatever CSS framework/methodology you want when designing your Angular application.


Every letter you see in this simulation is actually an HTML div element being moved around using CSS transforms and some simple physics.
Be sure to check out my blog post about this experiment to learn how I made it all happen.
This experiment should work in all modern browsers (although I have not tested IE9). Seems to perform best in Safari and Webkit Nightly builds.
less...Sorry! Looks your browser doesn't support this experiment.
Here's a video of what you're missing out on:
If you can, you should update to something more modern like Google Chrome or Mozilla Firefox.
The forecast for today, assuming you're using a modern browser, is cloudy, with a 100% chance of Georgia showers.
(0 drops)