text:
'use strict'; // eslint-disable-line strict

const { validateUserPolicy, validateResourcePolicy } =
    require('../../../lib/policy/policyValidator');
const { default: errors, ArsenalError } = require('../../../lib/errors');
const successRes = { error: null, valid: true };
const sampleUserPolicy = {
    Version: '2012-10-17',
    Statement: {
        Sid: 'FooBar1234',
        Effect: 'Allow',
        Action: 's3:PutObject',
        Resource: 'arn:aws:s3:::my_bucket/uploads/widgetco/*',
        Condition: { NumericLessThanEquals: { 's3:max-keys': '10' } },
    },
};
const sampleResourcePolicy = {
    Version: '2012-10-17',
    Statement: [
        {
            Sid: 'ResourcePolicy1',
            Effect: 'Allow',
            Action: 's3:ListBucket',
            Resource: 'arn:aws:s3:::example-bucket',
            Condition: { StringLike: { 's3:prefix': 'foo' } },
            Principal: '*',
        },
    ],
};

const errDict = {
    required: {
        Version: 'Policy document must be version 2012-10-17 or greater.',
        Action: 'Policy statement must contain actions.',
    },
    pattern: {
        Action: 'Actions/Conditions must be prefaced by a vendor,' +
            ' e.g., iam, sdb, ec2, etc.',
        Resource: 'Resource must be in ARN format or "*".',
    },
    minItems: {
        Resource: 'Policy statement must contain resources.',
    },
};

function failRes(policyType, errDescription) {
    let error;
    if (policyType === 'user') {
        error = errors.MalformedPolicyDocument;
    }
    if (policyType === 'resource') {
        error = errors.MalformedPolicy;
    }
    if (errDescription || error.description) {
        error = error.customizeDescription(errDescription || error.description);
    }
    return { error, valid: false };
}

function check(input, expected, policyType) {
    let result;
    if (policyType === 'user') {
        result = validateUserPolicy(JSON.stringify(input));
    }
    if (policyType === 'resource') {
        result = validateResourcePolicy(JSON.stringify(input));
    }
    expect(result.valid).toEqual(expected.valid);
    if (!result.valid) {
        expect(result.error.type).toEqual(expected.error.type);
        expect(result.error.description).toEqual(expected.error.description);
        expect(result.error).toBeInstanceOf(ArsenalError);
    }
}

let userPolicy;
let resourcePolicy;
const user = 'user';
const resource = 'resource';

beforeEach(() => {
    userPolicy = JSON.parse(JSON.stringify(sampleUserPolicy));
    resourcePolicy = JSON.parse(JSON.stringify(sampleResourcePolicy));
});

describe('Policies validation - Invalid JSON', () => {
    it('should return error for invalid user policy JSON', () => {
        const result = validateUserPolicy('{"Version":"2012-10-17",' +
        '"Statement":{"Effect":"Allow""Action":"s3:PutObject",' +
        '"Resource":"arn:aws:s3*"}}');
        const fail = failRes(user);
        expect(result.valid).toBeFalsy();
        expect(result.error.type).toEqual(fail.error.type);
        expect(result.error.description).toEqual(fail.error.description);
        expect(result.error).toBeInstanceOf(ArsenalError);
    });
    it('should return error for invaild resource policy JSON', () => {
        const result = validateResourcePolicy('{"Version":"2012-10-17",' +
        '"Statement":{"Effect":"Allow""Action":"s3:PutObject",' +
        '"Resource":"arn:aws:s3*"}}');
        const fail = failRes(resource);
        expect(result.valid).toBeFalsy();
        expect(result.error.type).toEqual(fail.error.type);
        expect(result.error.description).toEqual(fail.error.description);
        expect(result.error).toBeInstanceOf(ArsenalError);
    });
});

describe('Policies validation - Version', () => {
    it('should validate user policy with version date 2012-10-17', () => {
        check(userPolicy, successRes, user);
    });

    it('should validate resource policy with version date 2012-10-17', () => {
        check(resourcePolicy, successRes, 'resource');
    });

    it('user policy should return error for other dates', () => {
        userPolicy.Version = '2012-11-17';
        check(userPolicy, failRes(user), user);
    });

    it('resource policy should return error for other dates', () => {
        resourcePolicy.Version = '2012-11-17';
        check(resourcePolicy, failRes(resource), resource);
    });

    it('should return error if Version field in user policy is missing', () => {
        userPolicy.Version = undefined;
        check(userPolicy, failRes(user, errDict.required.Version), user);
    });

    it('should return error if Version field in resource policy is missing',
        () => {
            resourcePolicy.Version = undefined;
            check(resourcePolicy, failRes(resource, errDict.required.Version),
                resource);
        });
});

describe('Policies validation - Principal', () => {
    [
        {
            name: 'an account id',
            value: { AWS: '111111111111' },
            policyType: [user, resource],
        },
        {
            name: 'anonymous user AWS form',
            value: { AWS: '*' },
            policyType: [user, resource],
        },
        {
            name: 'an account arn',
            value: { AWS: 'arn:aws:iam::111111111111:root' },
            policyType: [user, resource],
        },
        {
            name: 'multiple account id',
            value: {
                AWS: ['111111111111', '111111111112'],
            },
            policyType: [user, resource],
        },
        {
            name: 'multiple account arn',
            value: {
                AWS: [
                    'arn:aws:iam::111111111111:root',
                    'arn:aws:iam::111111111112:root',
                ],
            },
            policyType: [user, resource],
        },
        {
            name: 'anonymous user as string',
            value: '*',
            policyType: [user, resource],
        },
        {
            name: 'user arn',
            value: { AWS: 'arn:aws:iam::111111111111:user/alex' },
            policyType: [user, resource],
        },
        {
            name: 'user arn with path',
            value: { AWS: 'arn:aws:iam::111111111111:user/path/in/org/leaf' },
            policyType: [user, resource],
        },
        {
            name: 'multiple user arns',
            value: {
                AWS: [
                    'arn:aws:iam::111111111111:user/alex',
                    'arn:aws:iam::111111111111:user/thibault',
                ],
            },
            policyType: [user, resource],
        },
        {
            name: 'role arn',
            value: {
                AWS: 'arn:aws:iam::111111111111:role/dev',
            },
            policyType: [user, resource],
        },
        {
            name: 'multiple role arn',
            value: {
                AWS: [
                    'arn:aws:iam::111111111111:role/dev',
                    'arn:aws:iam::111111111111:role/prod',
                ],
            },
            policyType: [user, resource],
        },
        {
            name: 'saml provider',
            value: {
                Federated:
                    'arn:aws:iam::111111111111:saml-provider/mysamlprovider',
            },
            policyType: [user],
        },
        {
            name: 'with backbeat service',
            value: { Service: 'backbeat' },
            policyType: [user, resource],
        },
        {
            name: 'with canonical user id',
            value: { CanonicalUser:
                '1examplecanonicalid12345678909876' +
                '54321qwerty12345asdfg67890z1x2c' },
            policyType: [resource],
        },
    ].forEach(test => {
        if (test.policyType.includes(user)) {
            it(`should allow user policy principal field with ${test.name}`,
                () => {
                    userPolicy.Statement.Principal = test.value;
                    delete userPolicy.Statement.Resource;
                    check(userPolicy, successRes, user);
                });

            it(`should allow user policy notPrincipal field with ${test.name}`,
                () => {
                    userPolicy.Statement.NotPrincipal = test.value;
                    delete userPolicy.Statement.Resource;
                    check(userPolicy, successRes, user);
                });
        }
        if (test.policyType.includes(resource)) {
            it(`should allow resource policy principal field with ${test.name}`,
                () => {
                    resourcePolicy.Statement[0].Principal = test.value;
                    check(resourcePolicy, successRes, resource);
                });
        }
    });

    [
        {
            name: 'wrong format account id',
            value: { AWS: '11111111111z' },
            policyType: [user, resource],
        },
        {
            name: 'empty string',
            value: '',
            policyType: [user, resource],
        },
        {
            name: 'anonymous user federated form',
            value: { federated: '*' },
            policyType: [user, resource],
        },
        {
            name: 'wildcard in resource',
            value: { AWS: 'arn:aws:iam::111111111111:user/*' },
            policyType: [user, resource],
        },
        {
            name: 'a malformed account arn',
            value: { AWS: 'arn:aws:iam::111111111111:' },
            policyType: [user, resource],
        },
        {
            name: 'multiple malformed account id',
            value: {
                AWS: ['1111111111z1', '1111z1111112'],
            },
            policyType: [user, resource],
        },
        {
            name: 'multiple anonymous',
            value: {
                AWS: ['*', '*'],
            },
            policyType: [user, resource],
        },
        {
            name: 'multiple malformed account arn',
            value: {
                AWS: [
                    'arn:aws:iam::111111111111:root',
                    'arn:aws:iam::111111111112:',
                ],
            },
            policyType: [user, resource],
        },
        {
            name: 'account id as a string',
            value: '111111111111',
            policyType: [user, resource],
        },
        {
            name: 'account arn as a string',
            value: 'arn:aws:iam::111111111111:root',
            policyType: [user, resource],
        },
        {
            name: 'user arn as a string',
            value: 'arn:aws:iam::111111111111:user/alex',
            policyType: [user, resource],
        },
        {
            name: 'multiple malformed user arns',
            value: {
                AWS: [
                    'arn:aws:iam::111111111111:user/alex',
                    'arn:aws:iam::111111111111:user/',
                ],
            },
            policyType: [user, resource],
        },
        {
            name: 'malformed role arn',
            value: {
                AWS: 'arn:aws:iam::111111111111:role/',
            },
            policyType: [user, resource],
        },
        {
            name: 'multiple malformed role arn',
            value: {
                AWS: [
                    'arn:aws:iam::111111111111:role/dev',
                    'arn:aws:iam::11111111z111:role/prod',
                ],
            },
            policyType: [user, resource],
        },
        {
            name: 'saml provider as a string',
            value: 'arn:aws:iam::111111111111:saml-provider/mysamlprovider',
            policyType: [user],
        },
        {
            name: 'with other service than backbeat',
            value: { Service: 'non-existent-service' },
            policyType: [user, resource],
        },
        {
            name: 'invalid canonical user',
            value: { CanonicalUser:
                '12345invalid-canonical-id$$$//098' +
                '7654321poiu1q2w3e4r5t6y7u8i9o0p' },
            policyType: [resource],
        },
    ].forEach(test => {
        if (test.policyType.includes(user)) {
            it(`user policy should fail with ${test.name}`, () => {
                userPolicy.Statement.Principal = test.value;
                delete userPolicy.Statement.Resource;
                check(userPolicy, failRes(user), user);
            });
        }
        if (test.policyType.includes(resource)) {
            it(`resource policy should fail with ${test.name}`, () => {
                resourcePolicy.Statement[0].Principal = test.value;
                check(resourcePolicy, failRes(resource), resource);
            });
        }
    });

    it('should not allow Resource field', () => {
        userPolicy.Statement.Principal = '*';
        check(userPolicy, failRes(user), user);
    });
});

describe('Policies validation - Statement', () => {
    [
        {
            name: 'should return error for undefined',
            value: undefined,
        },
        {
            name: 'should return an error for an empty list',
            value: [],
        },
        {
            name: 'should return an error for an empty object',
            value: {},
            errMessage: errDict.required.Action,
        },
    ].forEach(test => {
        it(`user policy ${test.name}`, () => {
            userPolicy.Statement = test.value;
            check(userPolicy, failRes(user, test.errMessage), user);
        });

        it(`resource policy ${test.name}`, () => {
            resourcePolicy.Statement = test.value;
            check(resourcePolicy, failRes(resource, test.errMessage), resource);
        });
    });

    it('user policy should succeed for a valid object', () => {
        check(userPolicy, successRes, user);
    });

    it('resource policy should succeed for a valid object', () => {
        check(resourcePolicy, successRes, resource);
    });

    it('user policy should succeed for a valid object', () => {
        userPolicy.Statement = [
            {
                Effect: 'Allow',
                Action: 's3:PutObject',
                Resource: 'arn:aws:s3:::my_bucket/uploads/widgetco/*',
            },
            {
                Effect: 'Deny',
                Action: 's3:DeleteObject',
                Resource: 'arn:aws:s3:::my_bucket/uploads/widgetco/*',
            },
        ];
        check(userPolicy, successRes, user);
    });

    it('resource policy should succeed for a valid object', () => {
        resourcePolicy.Statement = [
            {
                Effect: 'Allow',
                Action: 's3:PutObject',
                Resource: 'arn:aws:s3:::my_bucket/uploads/widgetco/*',
                Principal: '*',
            },
            {
                Effect: 'Deny',
                Action: 's3:DeleteObject',
                Resource: 'arn:aws:s3:::my_bucket/uploads/widgetco/*',
                Principal: '*',
            },
        ];
        check(resourcePolicy, successRes, resource);
    });

    [
        {
            name: 'should return error for missing a required field - Action',
            toDelete: ['Action'],
            expected: 'fail',
            errMessage: errDict.required.Action,
        },
        {
            name: 'should return error for missing a required field - Effect',
            toDelete: ['Effect'],
            expected: 'fail',
        },
        {
            name: 'should return error for missing required field - Resource',
            toDelete: ['Resource'],
            expected: 'fail',
        },
        {
            name: 'should return error for missing multiple required fields',
            toDelete: ['Effect', 'Resource'],
            expected: 'fail',
        },
        {
            name: 'should succeed w optional fields missing - Sid, Condition',
            toDelete: ['Sid', 'Condition'],
            expected: successRes,
        },
    ].forEach(test => {
        it(`user policy ${test.name}`, () => {
            test.toDelete.forEach(p => delete userPolicy.Statement[p]);
            if (test.expected === 'fail') {
                check(userPolicy, failRes(user, test.errMessage), user);
            } else {
                check(userPolicy, test.expected, user);
            }
        });

        it(`resource policy ${test.name}`, () => {
            test.toDelete.forEach(p => delete resourcePolicy.Statement[0][p]);
            if (test.expected === 'fail') {
                check(resourcePolicy, failRes(resource, test.errMessage),
                    resource);
            } else {
                check(resourcePolicy, test.expected, resource);
            }
        });
    });
});

describe('Policies validation - Statement::Sid_block', () => {
    it('user policy should succeed if Sid is any alphanumeric string', () => {
        check(userPolicy, successRes, user);
    });

    it('resource policy should succeed if Sid is any alphanumeric string',
        () => {
            check(resourcePolicy, successRes, resource);
        });

    it('user policy should fail if Sid is not a valid format', () => {
        userPolicy.Statement.Sid = 'foo bar()';
        check(userPolicy, failRes(user), user);
    });

    it('resource policy should fail if Sid is not a valid format', () => {
        resourcePolicy.Statement[0].Sid = 'foo bar()';
        check(resourcePolicy, failRes(resource), resource);
    });

    it('user policy should fail if Sid is not a string', () => {
        userPolicy.Statement.Sid = 1234;
        check(userPolicy, failRes(user), user);
    });

    it('resource policy should fail if Sid is not a string', () => {
        resourcePolicy.Statement[0].Sid = 1234;
        check(resourcePolicy, failRes(resource), resource);
    });
});

describe('Policies validation - Statement::Effect_block', () => {
    it('user policy should succeed for Allow', () => {
        check(userPolicy, successRes, user);
    });

    it('resource policy should succeed for Allow', () => {
        check(resourcePolicy, successRes, resource);
    });

    it('user policy should succeed for Deny', () => {
        userPolicy.Statement.Effect = 'Deny';
        check(userPolicy, successRes, user);
    });

    it('resource policy should succeed for Deny', () => {
        resourcePolicy.Statement[0].Effect = 'Deny';
        check(resourcePolicy, successRes, resource);
    });

    it('user policy should fail for strings other than Allow/Deny', () => {
        userPolicy.Statement.Effect = 'Reject';
        check(userPolicy, failRes(user), user);
    });

    it('resource policy should fail for strings other than Allow/Deny', () => {
        resourcePolicy.Statement[0].Effect = 'Reject';
        check(resourcePolicy, failRes(resource), resource);
    });

    it('user policy should fail if Effect is not a string', () => {
        userPolicy.Statement.Effect = 1;
        check(userPolicy, failRes(user), user);
    });

    it('resource policy should fail if Effect is not a string', () => {
        resourcePolicy.Statement[0].Effect = 1;
        check(resourcePolicy, failRes(resource), resource);
    });
});

const actionTests = [
    {
        name: 'should succeed for foo:bar',
        value: 'foo:bar',
        expected: successRes,
    },
    {
        name: 'should succeed for foo:*',
        value: 'foo:*',
        expected: successRes,
    },
    {
        name: 'should succeed for *',
        value: '*',
        expected: successRes,
    },
    {
        name: 'should fail for **',
        value: '**',
        expected: 'fail',
        errMessage: errDict.pattern.Action,
    },
    {
        name: 'should fail for foobar',
        value: 'foobar',
        expected: 'fail',
        errMessage: errDict.pattern.Action,
    },
];

describe('User policies validation - Statement::Action_block/' +
    'Statement::NotAction_block', () => {
    beforeEach(() => {
        userPolicy.Statement.Action = undefined;
        userPolicy.Statement.NotAction = undefined;
    });

    actionTests.forEach(test => {
        it(`${test.name}`, () => {
            userPolicy.Statement.Action = test.value;
            if (test.expected === 'fail') {
                check(userPolicy, failRes(user, test.errMessage), user);
            } else {
                check(userPolicy, test.expected, user);
            }

            userPolicy.Statement.Action = undefined;
            userPolicy.Statement.NotAction = test.value;
            if (test.expected === 'fail') {
                check(userPolicy, failRes(user, test.errMessage), user);
            } else {
                check(userPolicy, test.expected, user);
            }
        });
    });
});

describe('Resource policies validation - Statement::Action_block', () => {
    actionTests.forEach(test => {
        it(`${test.name}`, () => {
            resourcePolicy.Statement[0].Action = test.value;
            if (test.expected === 'fail') {
                check(resourcePolicy, failRes(resource, test.errMessage),
                    resource);
            } else {
                check(resourcePolicy, test.expected, resource);
            }
        });
    });
});

const resourceTests = [
    {
        name: 'should succeed for arn:aws::s3:::*',
        value: 'arn:aws:s3:::*',
        expected: successRes,
    },
    {
        name: 'should succeed for arn:aws:s3:::test/home/${aws:username}',
        value: 'arn:aws:s3:::test/home/${aws:username}',
        expected: successRes,
    },
    {
        name: 'should succeed for arn:aws:ec2:us-west-1:1234567890:vol/*',
        value: 'arn:aws:ec2:us-west-1:1234567890:vol/*',
        expected: successRes,
    },
    {
        name: 'should succeed for *',
        value: '*',
        expected: successRes,
    },
    {
        name: 'should fail for arn:aws:ec2:us-west-1:vol/* - missing region',
        value: 'arn:aws:ec2:us-west-1:vol/*',
        expected: 'fail',
        errMessage: errDict.pattern.Resource,
    },
    {
        name: 'should fail for arn:aws:ec2:us-west-1:123456789:v/${} - ${}',
        value: 'arn:aws:ec2:us-west-1:123456789:v/${}',
        expected: 'fail',
        errMessage: errDict.pattern.Resource,
    },
    {
        name: 'should fail for ec2:us-west-1:qwerty:vol/* - missing arn:aws:',
        value: 'ec2:us-west-1:123456789012:vol/*',
        expected: 'fail',
        errMessage: errDict.pattern.Resource,
    },
];

describe('User policies validation - Statement::Resource_block' +
    'Statement::NotResource_block', () => {
    beforeEach(() => {
        userPolicy.Statement.Resource = undefined;
        userPolicy.Statement.NotResource = undefined;
    });

    resourceTests.forEach(test => {
        it(`${test.name}`, () => {
            userPolicy.Statement.Resource = test.value;
            if (test.expected === 'fail') {
                check(userPolicy, failRes(user, test.errMessage), user);
            } else {
                check(userPolicy, test.expected, user);
            }

            userPolicy.Statement.Resource = undefined;
            userPolicy.Statement.NotResource = test.value;
            if (test.expected === 'fail') {
                check(userPolicy, failRes(user, test.errMessage), user);
            } else {
                check(userPolicy, test.expected, user);
            }
        });
    });

    it('should fail for empty list of resources', () => {
        userPolicy.Statement.Resource = [];
        check(userPolicy, failRes(user, errDict.minItems.Resource), user);
    });
});

describe('Resource policies validation - Statement::Resource_block', () => {
    resourceTests.forEach(test => {
        it(`${test.name}`, () => {
            resourcePolicy.Statement[0].Resource = test.value;
            if (test.expected === 'fail') {
                check(resourcePolicy, failRes(resource, test.errMessage),
                    resource);
            } else {
                check(resourcePolicy, test.expected, resource);
            }
        });
    });

    it('should fail for empty list of resources', () => {
        resourcePolicy.Statement[0].Resource = [];
        check(resourcePolicy, failRes(resource, errDict.minItems.Resource),
            resource);
    });
});

describe('Policies validation - Statement::Condition_block', () => {
    it('user policy should succeed for single Condition', () => {
        check(userPolicy, successRes, user);
    });

    it('resource policy should succeed for single Condition', () => {
        check(resourcePolicy, successRes, resource);
    });

    [
        {
            name: 'should succeed for multiple Conditions',
            value: {
                StringNotLike: { 's3:prefix': ['Development/*'] },
                Null: { 's3:prefix': false },
            },
            expected: successRes,
        },
        {
            name: 'should fail when Condition is not an Object',
            value: 'NumericLessThanEquals',
            expected: 'fail',
        },
        {
            name: 'should fail for an invalid Condition',
            value: {
                SomethingLike: { 's3:prefix': ['Development/*'] },
            },
            expected: 'fail',
        },
        {
            name: 'should fail when one of the multiple conditions is invalid',
            value: {
                Null: { 's3:prefix': false },
                SomethingLike: { 's3:prefix': ['Development/*'] },
            },
            expected: 'fail',
        },
        {
            name: 'should fail when invalid property is assigned',
            value: {
                SomethingLike: { 's3:prefix': ['Development/*'] },
            },
            expected: 'fail',
        },
    ].forEach(test => {
        it(`user policy ${test.name}`, () => {
            userPolicy.Statement.Condition = test.value;
            if (test.expected === 'fail') {
                check(userPolicy, failRes(user), user);
            } else {
                check(userPolicy, test.expected, user);
            }
        });

        it(`resource policy ${test.name}`, () => {
            resourcePolicy.Statement[0].Condition = test.value;
            if (test.expected === 'fail') {
                check(resourcePolicy, failRes(resource), resource);
            } else {
                check(resourcePolicy, test.expected, resource);
            }
        });
    });
});

redpajama_set_name: RedPajamaGithub


Years ago, when Joseph Gardner found a Thanagarian Absorbicon and touched it, he interfaced with it. However, a human mind isn't equipped to properly handle it. During the interface, Gardner's dark desires were manifested in a separate shadow-like being. It unknowingly channeled Gardner's desires. Since Gardner was making claims of a Thanagarian connection to Egypt, it stole artifacts and weapons at every turn. When Gardner wanted to become a hero, it became his villain, Shadow Thief.
Shadow Thief secretly followed the archaeologist, Carter Hall to his dig site. Reportedly, the site held priceless Thanagarian artifacts. In the black market, these items were a fortune. However, he needed Hall to get into the burial chamber where the treasure lay. Shadow Thief was confronted by Batman, Shayera Hol and Carter Hall and was able to escape with only a handful of artifacts.
Shadow Thief saved the Absorbicon and discovered it was a part of Hall. It stalked Green Lantern and waited for the chance to catch him off guard and kidnap him. Vixen saw Shadow Thief at the last second and attempted to fight it off. Shadow Thief retaliated and still managed to knock out Green Lantern and take him all the way to the Midway City Museum. There, it waited for Shayera Hol and Hawkmanto arrive. It forced the three to view the Absorbicon on last time to reveal the truth of things. Shadow Thief tried to convince Hawkman into killing Green Lantern and taking Shayera Hol for himself. Instead, Hawkman freed Green Lantern. Hawkman eventually decided to and absorbed Shadow Thief back into himself.


text:
Q: How do I investigate how long it takes one variable to affect another in a time series I am a total newbie when it comes to time series, so it is quite possible this question is duplicated somewhere else, only that I cannot find it because I don't know what this feature is called.
My data:
I have weekly measurements of a variable "change in rank". I also have weekly measurements of another variable loosely described as "change in goodness". I believe that "change in rank" is dependent on "change in goodness", but I also believe that whenever "goodness" improves, it takes some time before rank improves. A simplistic representation of the data would look like this:
change_in_rank = c(0,0,0,0,-10,0,0,0)
change_in_goodness = c(0,2,0,0,0,0,0,0)

where this constructed example shows that a improvement of 2 in goodness took 3 time steps to lead to an improvement in rank.
My question:
What analysis method do I use to detect whether such a relationship actually exists between "change in goodness" and "change in rank", and if such a relationship exists, how do I find out how long it takes for a change in "goodness" to flow on to a change in rank.
The motivation behind this question:
Some additional, non necessary background: it is claimed that search engine optimisation takes time to affect your site's ranking in Google. E.g.:
"Why does SEO take so long?"
I am trying to find a statistical way of calculating how long it takes for a change in a site to actually reflect in the site's Google ranking.
More motivation:
Slightly different type of data but similar question...
"How long does it take before a change in diet starts to take effect?"

A: Try looking at cross-correlations between the two series:
correlate series 1 with series 2;
correlate series 1 with series 2 lagged by 1 period;
correlate series 1 with series 2 lagged by 2 periods;
etc.
Explore as many lags as can reasonably be expected to be plausible in the context you are in. Also, depending on the context of the application, you may need to look at lagged series 1 against (non-lagged) series 2.
Note which lag gives the highest absolute correlation - this will be a rough estimate of the "true" lag.
It is comfortable to inspect the cross-correlations visually. In R, you may use function ccf(.) to obtain and plot the correlogram.

A: As often in regression, there are several ways to proceed, but the most straightforward one is probably given by the moving-average approach. That is, you assume a linear (linear-in-the-parameters) relationship between your target $y_t$ (change_in_rank) and your regressand $x_t$ (change_in_goodness) given by
$$
y_t = \sum_{i=1}^p \beta_{t-k} \, x_{t-k}
$$
Here, the input-parameter $p$ determines the maximum lag-time. Next, you fit your model using some seleted data of the form $(x_{j-1}, \ldots, x_{j-p}; y_j)$ where $j\in \{1,\ldots, N_\text{data}\}$, e.g. by using standard least-squares regression.
Finally, you can use the result either to forecast (in this case more flexible models like neural networks might be doing better), or to interprete the result using the fitted parameters $\boldsymbol \beta$ (--in interpretability, almost nothing beats linear models).
If that model is not flexible enough, you can extend it to higher dimensions and more general functions $f(x_{t-1}, \ldots, f_{t-p})$, and also to autoregressive-moving-average models where you further include some previous regression results $y_j$ for $j<t$.

redpajama_set_name: RedPajamaStackExchange


SKANEATELES, NY - At least 20 people have expressed interest in businessman Adam Weitsman's offer to give away an old Skaneateles house and pay $25,000 toward moving it to a new location.
And messages from interested people keep coming in, Weitsman said.
Interest in the home at 61 W. Lake St. came after a Syracuse.com | The Post Standard article Wednesday that outlined the offer, Weitsman said. People are calling, texting and reaching out on Facebook and Instagram, he said.
Tours of the home have been set up every half hour Thursday for people who are interested and want to see the structure, Weitsman said. Six walked through this morning, but for some, moving it is too big of a project to undertake, he said.
Weitsman has proposed tearing down the house - which he bought for $2.5 million in 2018 - to make way for a pool, pool house and cabana next to his mansion at 45 W. Lake St.
He needs permission from the village - a demolition permit - to tear down the house. He also needs permission to build the new pool house.
Weitsman said there isn't anything historically significant about the 2,564-square-foot, two-story home, often referred to as the Parcells home.
He said he offered to give away the home plus $25,000 "to give people the option" to preserve the home and move it, he said.
Some Skaneateles-area people who want to save the old house are opposed to his plan to tear it down, while others say he should do what he wants on his own property. A public hearing on his proposal is set for 7:30 p.m. today at the Skaneateles firehouse.
Weitsman owns Owego-based Upstate Shredding and the Krebs restaurant in Skaneateles. He is days away from opening a new Mexican restaurant in Skaneateles called The Elephant and the Dove.
Weitsman paid $2.5 million for a home he wants to tear down so he can build a pool and pool house. Not everyone likes the idea.


text:
Our purpose, objectives and mission:
Awareness and Information Sharing
To share information on internal radiation exposure.
To conduct seminars and organize speeches and lectures throughout Japan to spread correct information on radiation and internal radiation exposure.
To conduct study as a citizens' association to think on internal radiation exposure and nurture trainers and lecturers from among the citizens.
To support the efforts of guardians to safeguard their wards from internal radiation exposure at nursery schools, kindergartens, primary schools, junior high schools, high schools, colleges and universities by giving them proper advice and suggestions.
To conduct lectures organized by cities, towns, villages, as well as the educational committees; such as the emergency seminar "Knowing the impact on health by radiation and radioactive substances".
To establish the link between consumers and producers in order to secure the safety of food.
To recommend food below 4 Bq (Becquerel)/kg (below 4cpm) especially for pregnant women, infants on lactation, children and the youth.
To recommend the producers who voluntarily follow this standard and guide them in selling their products.
To introduce the food items below 4 Bq/kg and aim at establishing the supply system to supply such products for mid-day meal and the families with pregnant women as well as infants and children.
Safeguarding Land and Water
To support improvement of agricultural land that is affected by radiation. If it is not possible to improve, then to request the government to offer an alternative site/s.
To conduct the trend of the tide year-round, do the continuous survey on the seabed, and to check the quality of seawater, since there is a serious problem of marine pollution.
To define regions where fishing activities need to be prohibited and request the government to compensate the fishermen.
Funding and Compensation
To establish funds of the association to compensate the loss of the producers whose products are affected by radiation and cannot sell them in the market.
To give advice on the demand of compensation for the loss from TEPCO.
Daigo Fukuryū Maru-Fishing Boat Incident
On March 1, 1954, The Daigo Fukuryū Maru (Lucky Dragon 5), a Japanese tuna fishing boat, was exposed to and contaminated by nuclear fallout from the United States' Castle Bravo thermonuclear device test on Bikini Atoll. Nuclear fallouts are called as "the ashes of death".
At that time, fish was one of the staple diets for Japanese people. Fish was contaminated due to nuclear fallouts. The entire ship itself was contaminated. Not just Daigo Fukuryū Maru, but also minimum 856 ships were covered under "the ashes of death" and the fishermen got the effect of radiation. The Hibakusha of the Bikini incident have not been given even any special health card.
The issue became out of sight, out of mind.
At that time, the government had disposed all the tunas which were affected by radioactive substances at the level of more than 100 cpm (cpm means count per minuite). They thought that the gills of tunas would be affected most by radiation. Therefore, all tunas with more than 100 cpm were disposed by reclaiming land from the sea.
Radiation Measurement
The tool to measure radiation in food and water is called "Ge (germanium) Semiconductor Detector".
On the other hand, the tool to measure air radiation dose is called "Geiger-Müller Counter".
Comparison between count per minute (cpm) and Bequelel (Bq)
Count per minute (cpm) is the unit measured with GM survey meter of the area within 10cm2 and 1 cm above the surface.
Bequelel (Bq) means the amount of radiation released per second out of the food item weighing 1kg.
Beef with 500 Bq/kg means the meat radiates 500 times more than normal meat per second.
If you try to convert it with the unit of cpm, it is not so simple to do so. In fact, we cannot convert the unit of cpm into Bq/kg.
This is because of the fact that cpm measures the amount of radiation per minute on a certain area and that Bq/kg defines the amount of radiation per second of a certain weight.
Calculation of Radioactive Contamination of Water and Food
So far, radioactive contamination of water and food has been tested with Germanium Semicondoctor Detector. With this method, it would take for about 6 hours to the precision upto 0.1 Bq/kg. Further, to reach the precision upto 0.2 Bq/kg, it would take one hour. In addition, to conduct such tests, meat or vegetables need to be finely chopped or a blender should be used and the test item must be put in a Marinelli Beaker. This makes it impossible to check each and every food item.
It has been said that the affected tunas called "Ganbaku Maguro", with their gills counted the score of 100 cpm, would count around 50-100 Bq/kg when they were tested with the tool of GM Survey Meter.
Based on this finding, it was decided that whichever tuna meat was with the count of more than 100 Bq/cpm on the gills of the tunas would be disposed off.
In the year 1954, fish in Japan used to carry 50-100 Bq/kg.
After the disaster at Fukushima Daiichi Nuclear Power Plant, the provisional regulation count was revised by the Government of Japan on 17 March 2011. It was relaxed and raised to the level of 500 Bq/kg for both adults and children, which is five to ten times more compared to the level of 1954.
How can we protect the health of our children?
We will aim at realizing the measurement of the effect of radiation on food by using GM Survey Meter by considering the example of this "Genbaku Maguro."
The actual count of the gills of "Genbaku Maguro"carried 100 cpm, its meat counted 50-100 Bq/kg.
We should proceed with the advice provide by German Society for Radiation Protection (Gesellschaft für Strahlenschutz e.V.):
The basis for estimates of health effects being uncertain, we must recommend that no food with a concentration of more than 4 Becquerel of the leading radionuclide Cesium-137 per kilogram shall be given to infants, children and adolescents. Grown-ups are recommended to eat no food over 8 Becquerel per kilogram of the leading nuclide Cesium-137.
(http://www.strahlentelex.de/Recommendations_engl.pdf) "
The standard level below 4 Bq/kg is based on "The Advice on Minimising the Radiation Risk in Japan (Empfehlungen zur Minimierung des Strahlenrisikos in Japan)" presented by German Society for Radiation Protection on 20 March 2011 (http://www.strahlentelex.de/Stx_11_582_S12-14.pdf).
Food and Liquid Safe for Consumption
We aim not to let the children take food and drink with more than the count of 4 cpm, and 8 cpm for the adults which would be properly measured with GM Survey Meter.
We need to do research on the relationship between the levels of cpm and Bq/kg of actual food item.
It would take for about 5 minutes to measure the level of cpm of any food item with GM Survey Meter.
With the co-operation of research institutions, we would like to publicise the results of testing onto the level of radiation among the food items, such as rice, vegetables, meat, fish, and so on.
The Citizens' Research Group on Internal Radiation Exposure,
Shinya Kawane ,representative
kawane@radiationexposuresociety.com

redpajama_set_name: RedPajamaCommonCrawl


text:
Posted on 25 November 2020 | 12,731 views | 14 comments
Shaffiq Alkhatib
A teacher performed indecent acts on two 15-year-old girls in separate incidents, and at least one of them was a student from the secondary school where he taught.
He targeted his first victim in 2015. Court documents do not state if she was then a student at his school.
The man performed a sexual act on his second victim in 2017, in his car, near a block of flats in Tampines. He also asked the girl to perform a sexual act on him but she refused.
He later drove the girl to her home and told her not to tell anyone.
But the victim told her close friends about what had happened and the police were later alerted.
The offender, who is now 33, pleaded guilty on Tuesday (Nov 24) to two counts of performing an indecent act on a minor and one count of sexually penetrating an underage girl. All three charges involved the second victim.
Three other charges, including those involving the first victim, will be considered during sentencing.
Details about the man and the school cannot be revealed due to a gag order.
Defence lawyer Edmond Pereira told a district court that his client has since resigned from his job as a teacher.
Deputy Public Prosecutor James Chew said that on Feb 25, 2017, the second victim received a text message from the man asking if she wanted to meet him for a ride. She agreed and he told her not to tell anyone about their outing.
The man picked her up in his car later that day before parking the vehicle near Block 374 Tampines Street 34.
The DPP said: "At this time, the accused leaned towards the victim and started touching her thigh and neck, while at the same time, asking the victim if she trusted him.
"At a loss, the victim simply replied that she did. The accused then started to kiss the victim's neck."
The court heard that the man committed the offences soon after. The girl thwarted his advances and he later drove her home. She then blocked him on the various apps that they had used to communicate with each other.
The girl told her close friends two days later, on Feb 27, 2017. She stopped going to school soon after, prompting school staff to visit her home on March 2 that year. A police report was made later that day.
On Tuesday, DPP Chew urged the court to sentence the man to at least four years' jail and stressed that he had abused the trust placed in him.
He added: "The victim suffered psychologically due to the accused's actions. The accused's actions made her feel that she could not trust people that she just met with.
"She felt that she should not go to school, in order to avoid the accused. She felt scared when she saw people waiting at the void deck, and at times, had flashbacks of the incident."
Mr Pereira pleaded for a shorter jail term and said his client was remorseful.
The offender is now out on $15,000 bail and will be sentenced on Thursday.
For sexually penetrating a minor, he can be jailed for up to 10 years and fined.
In a statement on Tuesday, the Ministry of Education (MOE) said the man stopped working for it in September 2018.
It added: "MOE takes a serious view of staff misconduct and will not hesitate to take disciplinary action against those who fail to adhere to our standards of conduct and discipline, including dismissal from service."
Get a copy of The Straits Times or go to straitstimes.com for more stories.
Get more of Stomp's latest updates by following us on Facebook, WhatsApp, Twitter, Instagram and YouTube.
Teacher from top school committed indecent acts on female student, 15, during 'relationship'
Married sec school teacher showered girl, 14, with gifts and performed sexual acts on her
Teacher performed indecent acts on student, said she deserved to be raped and proposed being 'FWB'
Hot Topics This Week!
STOMP it anytime, anywhere.
Download the new STOMP app today.


You've made up your mind: you want to get into a top MBA program and know you need to get busy and write the essays themselves. You have probably read hundreds of articles about what schools are looking for and what you should talk about in your application. You've seen (or bought) sample essays by students who got into Harvard, Stanford, LBS, or INSEAD with a scholarship (or with a 650 GMAT). Now it's your time to create your own story.
Don't even think about it. Most schools today use software that compares applicants' essays with text published on the internet, or their database of essays from previous years. It is a good idea to look at some other essays, and to analyze what you like (and don't like) about each one – Did it flow nicely? Did you like the examples? Did it come on too strong? Not strong enough? Try to identify the themes and aspects that make an essay attractive for you, and run the same analysis on your essay questions.
So many applicants are worried that if they let the school know that they want to go into consulting, banking, finance, PE or marketing, they will be automatically placed into a "boring category." I've seen people describe a career goal based on their perception of what would be a less-risky transition based on their background, or something that could be a good fit with the school (media for NYU, banking for INSEAD, or entrepreneurship for Stanford). It is so easy to spot when a candidate isn't truly enthusiastic about her career goals, or just doesn't know enough about why they want to do something. Further, don't forget that you will need to talk about "why you want to go into healthcare/marketing/tech" when you interview, and if you aren't a trained actor it will be difficult for you to present something that is not a true reflection of your interests.
Don't use "replace-all" for school-specific essays – NO Find and Replace!
Yes, you can replace "Columbia" with "Wharton" when talking about the strong curriculum in finance, or "NYU" with "Columbia" when talking about the benefits of living in NYC, or "LBS" with "Harvard" when talking about the intensity of the program and the power of the alumni network, but that's not enough. Further, changing the names of the clubs or the business plan competition won't cut it either. You need to have a better understand of what makes the schools unique, and the specific benefits that you will get from this program.
If you use the "replace" method while adjusting to the different word limits for each school, you might end up with a choppy essay that has no flow or soul. An easier way would be to think about what you like about each program, covering various aspects (from the curriculum to the school's personality and value) and just writing about them. It might take you two more hours but it is worth the investment.
Do you agree ? What else should you NOT do ? Your thoughts .
Is it ok If we mention 6-8 months work experience as a telecaller ?
I have completed B.com and now working with small BPO while preparing for GMAT.


Welcome back and aloha! It is always good to see you!
It's good to see you back on here. Let's do lunch soon!
It had to be good they have smiles on!! Rain or not I bet ya'll had a good time!!
Darn. Was SURE you'd just keep heading south-west. Shall sulk for a little while now if you don't mind?
Better to live and not blog, than to blog and not live! Glad you're having fun!
What a sweet trip! As for the fruit…Amen!


text:
I read an article that claims John 7:53-8:11 in the KJV was not in the original John. Is that correct?
/I read an article that claims John 7:53-8:11 in the KJV was not in the original John. Is that correct?
Posted on April 29, 2019 by John Oakes
I read an article that claims that John 7:53-8:11 was not part of the original book of John. https://www.gotquestions.org/John-7-53-8-11.html Please comment on this article. Is today's KJV bible accurate as to the original manuscripts written by the original gospel writers? Are there any additional example of material that has been added to the Gospels over the time by Christians?
I read this article and have found it to be fair, thorough and accurate. I believe that the incident recorded in John 7:58-8:11 is an actual event in the life of Jesus, but it is rather unlikely that it was found in the location we find it in our Bibles in the original autograph manuscript of John. Let me repeat. I believe that this is a genuine story–that this really happened. I believe it was part of the oral tradition about the life of Jesus from earliest times, but that it is unlikely this particular passage was in this place in John. The evidence is that the story was added to John later. It is reasonable to believe that this was a well known apostolic story–very likely one told by John again and again, so that later scribes felt that it needed to be added to John. Given that the passage is found in more than one place in John and even in Luke in other manuscripts, this supports the conclusion.
There are a couple of other examples of passages that made their way into the textus receptus, (the accepted Greek text put together by Erasmus in the early 16th century that was used as the basis for the KJV and all other early English translations) and therefore into the KJV but which almost certainly were not in the original autograph letters. One is in John 5:4 about the angel stirring the water. Another is 1 John 5:7-8. Both of these appear to be additions (the technical term is interpolations) which were perhaps written in the margins as a comment, but somehow ended up in the main text in certain manuscripts. The evidence against John 5:4 an 1 John 5:7-8 is somewhat stronger even than the evidence against John 7:58-8:11. The only other significant portion of the New Testament which is in doubt is Mark 16:9-20. This one is more controversial, in that a fair number believe it was in the original Mark. My opinion is that it is more likely it was not in the original Mark, but it is debatable. That is it. There are not any other significant portions of the New Testament which are in doubt. Again, scribes have occasionally added small comments to the margins and in rare cases some of these have been incorporated later into some of the manuscripts, but we have so much manuscript evidence (more than 5000 Greek NT manuscripts) that reconstructing the original is a fairly straightforward matter.
John Oakes
Is it true that 1 John 5:7 was added at a later date? Has the Bible been changed?
Can you respond to a web article I found which claims that the Comforter of John 14:16 is a prophecy of Muhammed?
Should Mark 16:9-20 and John 8:1-11 be considered part of the original books of Mark and John?
In John 20:28, is Thomas calling Jesus "God", or are Muslims right that there is a manuscript corruption in this verse?
The Kingdom of God	In a video by an atheist he claimed that the Bible teaches Christians to have a hostile attitude toward nonbelievers, using 2 John 9-11. Your response?
Can Christians allow abortion? 258 views
In your book Daniel, Prophet to the Nations you make the inaccurate claim that much of Daniel is found in the Dead Sea Scrolls. Why do you make this inaccurate claim? 206 views
Is faith in God and in the things of God reasonable? 88 views
John Oakes Sermons in Bakersfield. Hebrews Ch. 9 A Better Sacrifice, From Shadow to Reality, 85 views
How do we know the Bible has real-life events–that it is not a story put together by some bloke in the first century? 79 views
Why does meeting on Saturday matter to Christians? 64 views
Can you suggest a way to make the Old Testament more accessible? 56 views
Christian Evidence Class for College Students 30 views
Where and when did Islam originate? Did Ishmael, son of Abraham start this religion? 245,397 views
What is the evidence that Peter was crucified upside down in Rome? 132,245 views
Where did Christianity originate? 89,050 views
Is it true that only 144,000 people are going to heaven (Revelation 7:4)? 83,483 views
Where and when did the Catholicism begin? 80,226 views
Galatians 5:19 has the word pharmakeia which means the use and administration of drugs. Why does the NIV translate it as witchcraft? 70,145 views
I have heard that the story of Jesus was taken from a god named Heru in Egypt. Comments? 54,892 views
What is the correct formula/words to say for doing a baptism? Are there historical accounts which can help to decide this question? 49,805 views
What happened to the Garden of Eden? Where is it located? 48,643 views
How can Paul be a Hebrew and a Roman citizen at the same time? Does it have to do with him being from Tarsus? 45,717 views
Why is it that people say the ancient Sumerian tablets are similar to the book of Genesis? Why do people try to find relationships between these? 45,433 views
Can salt lose its saltiness? 42,030 views
There is proof Jesus came to India, made a deep study of Hinduism, and taught it when he returned to Jerusalem. 41,540 views
At what age did Daniel die? How did Daniel come to be in Babylon in 606/605 BC 40,963 views
When did Christianity begin? 35,186 views


text:
How it is performed
Biopsies are usually straightforward procedures that are carried out using local anaesthetic.
In most cases, biopsies are outpatient procedures, so you won't need to stay in hospital overnight.
But occasionally some types of biopsy, such as those where a tissue sample needs to be taken from an internal organ, may require a general anaesthetic.
In this instance, you'll need to stay in hospital overnight to recover from the anaesthetic.
After having a biopsy, you won't usually feel any pain. But if you have had a tissue sample taken from a major organ, such as your liver or bone marrow, you may feel a dull ache or some slight discomfort.
Your doctor or surgeon may recommend painkillers to help relieve this.
If a cut (incision) is needed to remove a tissue sample – for example, during an excision biopsy – stitches may be needed to close the wound, or a dressing may need to be applied.
If tissue is removed from an internal organ, such as your liver or kidneys, you'll need to stay in hospital for a few hours after the procedure.
This is so you can rest and hospital staff can make sure there's no internal bleeding.
It's rare for serious bleeding to occur after having a biopsy, but if it does, you may need to have an operation or a blood transfusion. In rare cases, another procedure or operation may be needed.
Women who have had tissue samples taken from their reproductive system, such as the lining of the cervix (neck of the womb), may experience some temporary light vaginal bleeding. Painkillers can be used to treat any cramping.


We would like to thank Trevor Symonds MIDE for putting together an excellent regional meeting and writing the report below. Thank you also to Northern Safety Ltd for sponsoring it.
The most recent North East IDE regional meeting held on Thursday 12th July, brought together 19 IDE members along with a small number of non members. The meeting was held at the Bridge Hotel in Wetherby and as the members arrived for the meeting the sun came out and the patio area was soon filled with demolition talk.
The consultation has now been extended to Monday 13 August 2012 (5pm).
In partnership, West Sussex County Council and the South Downs National Park Authority are preparing a Waste Local Plan which includes potential strategic waste site allocations. The draft Waste Local Plan sets out a vision for sustainable waste management which protects communities, the environment, the economy, and the special character of West Sussex until 2031.
A vision and 'strategic objectives' for sustainable waste management in West Sussex.
Nine 'use-specific' policies which will achieve the strategic objectives for the management of different types of waste (policies W1-W9).
Thirteen 'development management' policies which will ensure that there would be no unacceptable harm to the environment and communities of West Sussex (policies W11-W23).


"Net Integration produces and contributes to several Open Source projects in the process of making our Net Integrator and other products, and we're happy to be able to give back to the community by assisting at GU4DEC," says Avery Pennarun, Vice President Development and Senior Systems Architect, Net Integration Technologies. "UniConf, our advanced object-relational web-enabled remote management console with cross-platform transaction-oriented XML content delivery, will totally change the way people do business and revolutionize the world of Open Source."
So here's the bad news: I did, in fact, say that.
And the less bad news: I was kidding when I said it, I swear!
I honestly expected the people in marketing to see my joke, especially that last part about "totally change the way people do business" and "revolutionize the world of Open Source." Unfortunately, it's now a press release linked off our front page. I think I have just learned some kind of important life lesson.
I'll let you know when I figure out what it is.


Going on a cruise? You bet!
Sure, there are risks that come along with cruising, as there are with every other form of travel, Tripso cruise columnist Anita Dunham-Potter writes, but she says they aren't enough to keep her or millions of other cruise lovers on solid ground.


text:
Working collectively towards gender equality and sustainable peace
Sixth Annual Civil Society Dialogue Report Launched!
In 2018 the Annual Civil Society Dialogue on Women, Peace and Security focussed on the most effective role that civil society can play in the development, implementation and monitoring of Australia's Second National Action on Women Peace and Security.
The sixth Annual Civil Society Dialogue report provides clear recommendations on how to strengthen this engagement. The critical issues, recommendations, and implementation options presented in this report, therefore, provide a timely and useful resource for the development of the second National Action Plan during 2019.
In Our national turning point, WPS Coalition member Jean Brown makes a strong case for recognising that reconciliation and Australia's relationship to its First Nations people is an integral part of the domestic peace and security agenda.
The Australian Civil Society Coalition on Women Peace and Security commissioned the writing of thematically focused Issue Papers to inform the development of Australia's second National Plan on Women, Peace and Security (2nd NAP) and to advance the discussion on women, peace and security in Australia. These Issue Papers build on key themes outlined in "Listening to Women's Voice and Making the Connections to the Women, Peace and Security Agenda: Fifth Report of the Annual Civil Society Dialogue on Women, Peace and Security."
The latest issue paper (issue paper 7) focusses on monitoring, evaluation, accountability and learning. The effective implementation of Australia's WPS policy and the accountability of the Australian Government to UNSCR 1325 is ultimately contingent on the development of an adequate monitoring, evaluation, accountability and learning (MEAL) system.
READ THE ISSUE PAPERS
Tweets about @wpscoalition
The Australian Civil Society Coalition on Women, Peace and Security ('the Coalition') is a non-partisan and independent coalition of civil society organisations, networks and individuals working to advance the Women, Peace and Security (WPS) Agenda in Australia, Asia and the Pacific region and globally.
The Australian Civil Society Coalition on Women Peace and Security brings together activists, feminists, practitioners, humanitarian actors and those with first-hand experience working in the frontline on issues relating to women, peace and security. Coalition members have wide ranging expertise in gender and peace.
Education & Public Engagement
Share and disseminate information on the implementation of Australia's and international commitments to the United Nations' Women Peace and Security agenda.
Provide evidence-based advice and critical input to the Commonwealth government and International Institutions on issues related to women, peace and security.
Monitor the implementation of the Australian National Action plan on UNSCR 1325 and other international commitments made by the Australian government on issues related to women, peace and security.
Reports of the Annual Civil Society Dialogue on Women, Peace and Security capture key discussions between civil society, government and policy makers on women, peace and security and to contribute to effective implementation of the National Action Plan on Women, Peace and Security. The Coalition also commissions articles that serve as think-pieces to advance the women peace and security agenda.
READ THE REPORTS
Membership is by application. To request to join the Coalition please complete the application form below. Organisations, networks and individuals requesting membership must fit the following criteria:
A civil society organisation, network or individual advocating for women's rights and empowerment in issues related to women, peace and security.
Experience and knowledge of UNSCR 1325 and related UN resolutions and the Australian National Action Plan on Women, Peace and Security.
Members must attend all scheduled meetings (members may provide information by email in lieu of attending or nominate a proxy to attend).
Members must agree to champion the Coalition within and outside of existing networks.
In the case of civil society organisations and networks:
One representative who will be able to commit to attending quarterly Coalition meetings and contribute substantively to the Coalition's work.
A second staff member to act as secondary representative on the Coalition.
Member organisations must confirm in writing their two representatives to the Coalition.
Membership requests will be assessed by the Coalition Steering Committee. Membership may be withdrawn if members fail to meet the above criteria, including meeting attendance.
All members (with prior approval) will be listed on the Coalition website and will be placed on the Coalition mailing list.
The Coalition meets via teleconference (3-5 pm AEST) four times a year.
2018 meeting dates are: 28 February, 9 May, 21 August, and 7 November.
Individual or Representative of an Organisation or Network Individual or Representative of an Organisation or NetworkIndividualRepresentative of an organisationRepresentative of a network
Name of organisation/network
Primary representative name
Primary representative email
Secondary representative name (organisations only)
Secondary representative email (organisations only)
Please briefly describe your organisation/individual work in relation to women, peace and security.
What is your experience and knowledge of UNSCR 1325 and related resolutions and the Australian National Action Plan on Women, Peace and Security?
Do you agree to have your name, or the name of your organisation listed on the Coalition's membership page? Do you agree to have your name, or the name of your organisation listed on the Coalition's membership page?YesNo
I agree to attend all scheduled Coalition meetings, or to nominate a proxy or provide information via email when I cannot attend I agree to attend all scheduled Coalition meetings, or to nominate a proxy or provide information via email when I cannot attend Yes
I agree to champion the Coalition within and outside of existing networks I agree to champion the Coalition within and outside of existing networks Yes
Do you agree to be added to the Coalition mailing list? Do you agree to be added to the Coalition mailing list? Yes


text:
Q: XPATH append text or new line I want to append a new line or text in xpath/xmllint output
I tried a lot of ways but xmllint doesn't provide much control on the output
find . -type f -name pom.xml|xargs -n 1 /usr/bin/xmllint  --xpath "/[name()='project']/[name()='groupId']/text()|/[name()='project']/[name()='artifactId']/text()|/[name()='project']/[name()='version']/text()"
output of each pom file in a new line instead of a whole big string

A: May be.. not the best code
for file in `find . -type f -name pom.xml`
do
/usr/bin/xmllint --xpath "/[name()='project']/[name()='groupId']/text()|/[name()='project']/[name()='artifactId']/text()|/[name()='project']/[name()='version']/text()"
echo -e "\n\n\n" # add new line for each xpath
done

could you share the pom.xml file


text:
import React from 'react';
import PropTypes from 'prop-types';
import autobind from 'core-decorators/es/autobind';
import { Button, NonIdealState } from '@blueprintjs/core';
import { graphql } from 'react-apollo';
import { getStories } from '../../../../graphql/story';
import LoadingSpinner from '../../../components/LoadingSpinner';
import StoryList from './StoryList';
import CreateUserStory from './CreateUserStory';

const GetStoriesParams = '_id type createdBy published publishDate iconName intent content likes';

const GetStoriesOptions = {
	name: 'QueryGetStories',
	options: {
		fetchPolicy: 'cache-and-network',
		variables: { skip: 0, limit: 50 }
	}
};

@graphql(getStories(GetStoriesParams), GetStoriesOptions)
@autobind
class Feed extends React.Component {
	state = {
		loading: false,
		showHelp: false
	}

	toggleShowHelp() {
		this.setState((prevState) => {
			return { showHelp: !prevState.showHelp };
		});
	}

	componentDidMount() {
		this.refresh();
	}

	refresh() {
		this.props.QueryGetStories.refetch();
	}

	render() {
		const { getStories, loading } = this.props.QueryGetStories;
		let content;

		if (getStories) {
			if (getStories.length) {
				content = <StoryList stories={getStories} refetch={this.props.QueryGetStories.refetch}/>;
			}
			else {
				content = (

						<NonIdealState title='No stories' description={`I guess there's nothing much happening yet.`} visual='feed'/>

				);
			}
		}
		else if (loading) {
			content = <LoadingSpinner/>;
		}

		return (

						Newsfeed
						<Button className='helper-button pt-small pt-minimal pt-intent-warning' iconName='refresh' onClick={this.refresh} loading={this.props.QueryGetStories.loading} style={{padding:'0'}}/>
						<Button className='helper-button pt-small pt-minimal pt-intent-primary' iconName='help' onClick={this.toggleShowHelp}/>

					{ this.state.showHelp ?

							See regular updates on what the other teams have been up to...
							make sure you keep up or you don't stand a chance!

							Or, you could say a few words and send the other teams some love with a word of encourgement.
							Double tap to like!

						: null
					}
					<CreateUserStory refetch={this.props.QueryGetStories.refetch}/>
					{content}

		);
	}
}

export default Feed;


text:
Luxembourg competed at the 1980 Summer Olympics in Moscow, USSR. In partial support of the American-led boycott of the 1980 Summer Olympics, Luxembourg competed under the Olympic Flag instead of its national flag.

Results by event

Archery
After not competing in archery in 1976, Luxembourg returned to the sport in 1980 with one competitor.

Men's Individual Competition:
 Andre Braun - 2386 points (→ 16th place)

Athletics
Men's 20 km Walk
 Lucien Faber
 Final — did not finish (→ no ranking)

Shooting
50 metre rifle three positions
 Roland Jacoby - 34th place

50 metre rifle prone
 Roland Jacoby - 11th place

Nations at the 1980 Summer Olympics
1980
1980 in Luxembourgian sport

redpajama_set_name: RedPajamaWikipedia


text:
info@mad-aid.org.uk
10 York Avenue, East Cowes, Isle of Wight, PO326QY
Phoenix Centre
Phoenix Pool
Wheelchair Delivery
Everyday Aid that Helps
Other MAD-Aid Programs
Ionuţ
Ionuţ lives in the village of Zaicani with his mother, father, brother, grandmother, and grandfather, all of whom are a united family. Ionuţi is on the Autism spectrum. The first time he came to the Phoenix Centre he was preoccupied with his inner thoughts. He did not speak a word and preferred to watch TV alone. He was very sensitive and emotional and often shuddered when he could not remain calm. He did not participate with other children during the concerts we put on for families because he was afraid of crowds. His mother told us that he would sit alone at the house all day watching television, even while he was sleeping the television was on. It was the only way for her to get chores done around the house. His mother's request for us was to have Ionuţi get away from the television and to not fear crowds, and to say a few words so that in his lifetime he would be able to escape the solitude to which he was so attached.
We have seen great results from working with Ionuţi. He recognizes the names of the staff members from the Centre and he has formed the skills to become friends with children. He attends all the events at the Phoenix Centre and the trips organized by Victoria. He no longer simply stares at the television. Ionuţi says a lot of words. He is able to make small sentences. He knows how to arrange shapes by color and size and even paints small pictures. When the children sing and dance, he claps and is overcome with happiness. Ionuţi's mother says, "We wonder what would have become of our child if Victoria and the Phoenix Centre had not offered help to him." It truly became his second home.
You can make a real difference to the poorest country in Europe
MAD-Aid 2021 overview
Together for You
You Are Not Alone In Isolation…
MAD-Aid 2020 Bond Ball
PrevPreviousNatalia
NextLilianNext
MAD-Aid
MAD-Aid is a UK registered charity 1150955 and a company limited by guarantee 8317917.
MAD-Aid's work is dedicated to the people who need it most.
© 2022Mad Aid. All Rights Reserved. Designed and Crafted by Charity Accelerator.


Great work, impeccable wording and attention to detail.
Perfect job. Eilidh has completed a few projects for me now and they're also spot on.
Eilidh was a pleasure to work - I'll be in touch very soon with my next project!
Great job! I will come back for sure! Always a pleasure to deal with nice and professional people!
Thank you Eilidh! Excellent and in line with all great reviews. I look forward to working with you again.
Eilidh is awesome to work with. Wrote an awesome blog for me. Very professional. I will be working with her long term for sure! Thanks Eilidh!
Great article and fast. I will be back.
Eilidh was very professional and immediately understood my brief. With her experience she was able to word my 2 articles with the correct terminologies.


text:
Q: Azure Active Directory - Access Denied in New Portal Using old azure portal, I am able to navigate to Azure Active Directory. But with the new portal 'Portal.Azure.com', I am seeing 'Access Denied' error message.
This is the below exact message I am seeing in the portal.
"Access denied.
You do not have access
Looks like you don't have access to this content. To get access, please contact the owner."

A: If you use the external account to access Azure AD, such as MSA account(e.g. outlook.com, hotmail.com), and the account from other Azure AD tenant. You may experience the error message as below.

There are two methods to resolve this issue.
Method 1
Log in to new Azure Portal by using the account with Global Administrator permission for Azure AD. Navigate to the Azure Active Directory extension, from the User settings tab, toggle the setting Guest users permissions are limited to No.

Method 2
Log in to new Azure Portal by using the account with Global Administrator permission for Azure AD. Navigate to the Azure Active Directory extension, from the Users and Groups tab, search for the external account, and change the Directory Role to Global Administrator.

A: In my case the solution was different.
The clock on my machine got de-synchronized (lagging 13 hours behind) and when my browser was encrypting a security token to request a sensitive page at Azure Portal, this token was rejected by server and I received "Access denied" error page.
It seams like "time.windows.com" was providing a wrong world time to my computer (yes, it is insane) - I changed it to "time.nist.gov" via Control Panel / Date and Time / Internet Time / Change Settings. It immediately updated my computer with correct time.
Then I signed-out and singed-in to Azure Portal and it started working just fine.

A: As for me, is was to activate a subscription (adding a card bank).
Then I could access the services on my new Azure account


text:
Medjugorje: UNUSUAL SIGNS – Believers All Around The World Are Beginning To Notice This!
January 10, 2022 January 10, 2022 stephen ryan	96 Views 0 Comments
Stop and listen to the voices around you . Have you noticed the ones that seem the most strident are the ones that want to lead us in the direction against what we know is right.
We live in a world where many voices deliberately try to lead us to a destiny that is not in our best interest.
They try to send us in the wrong direction to give us whatever we want.
Our Lady says these influences come from Satan and she warns us he is active now like never before.
On June 25, 2021 in a message to the visionary Marija, she said: Pray with me for peace and freedom, because Satan is strong and by his deception, wants to lead away all the more hearts from my motherly heart.
In a new emphasis, in what Medjugorje experts see as an unusual sign of a new direction, Our Lady says not only does Satan want to lead us into sin, but he is now seeking to take away our freedoms, and people of faith around the world are beginning to notice.
Our Lady said on October 25, 2021 "God is love and freedom, therefore, little children, when they want to put you in"Chains" and to use you, it is not from God.
Our religious freedoms are being threatened by what people today call the atheistic ideology of "Wokeism". For many years Our Lady has directly alerted us to this scourge. She has another word for it, she calls it "Modernism".
In a Message on May 25, 2010 She said "Dear children! God gave you the grace to live and to defend all the good that is in you and around you, and to inspire others to be better and holier; but Satan, too, does not sleep and through modernism diverts you and leads you to his way.
Author A.J. Rice writes: "Woke faith (Modernism) is incompatible with Christian faith for very simple reasons. It is atheistic and denies God and Christ. It replaces the sin and salvation path with one of its own, which offers only constant warfare.
Archbishop Gomez of Los Angeles, says "Wokeism" is also Utopian, believing that it can somehow create a kind of "heaven on Earth," which is not the ultimate hope of any Christian. Archbishop Gomez warns the Church to see wokeism as a new religion and forcefully reject it.
This new religion, constructed by the spirit of the Prince of Darkness, is extracting a great cost on people of faith and Our Lady says that for many their salvation is gravely at risk.
She said on January 2, 2018 in an Apparitions to Mirjana
"Dear children, When love is beginning to disappear on earth, when the way of salvation is not being found, I, the mother, am coming to help you to come to know true faith – living and profound – so as to help you to truly love. As a mother, I am longing for your mutual love, goodness, and purity. My desire is that you be just and that you love each other. My children, be joyful in your soul, be pure, be children. My Son used to say that he loves to be among pure hearts, because pure hearts are always young and joyful.
The encouraging news is that people around the world are beginning to see this new ideology as not just a depressing cultural movement but its origins come from the forces of darkness.
Our Lady, as a good mother, has prepared us for the battle and asks us to pick up the weapon – the rosary – that defeats the devil.
She says: "You, little children, pray and fight against temptation and all the evil plans which the devil offers you through modernism. Be strong in prayer and with the cross in your hands pray that evil may not use you and may not conquer in you.
← Supernatural Courage & Eternal Perspective – Fr. Mark Goring, CC
Mystic Post TV talks with Jesse Romero about the SSPX controversies that are making Satan smile and dividing the faithful. SSPX is not Schismatic.
St. Francis and the sermon to the birds….And all the birds rose in the air "with marvelous chants"… A miracle for the animals who are on this earth as it is in Heaven
Powerful words from Jimmy Carter on political division: US 'teeters "Genuine Risk of Civil War"
January 6, 2022 stephen ryan	0
Medjugorje: "Why do babies have to suffer if they are innocent."…Mirjana asked Our Lady about abortion
: What does Our Lady say on the abortion issue? What do you feel? Do women confide in you about
Medjugorje and the "Mystery of March 18th"…"Now is the time to tell my story..everything will become clear "
March 3, 2020 February 24, 2021 stephen ryan
Recent Medjugorje Special Message: Our Lady is worried… "Love is beginning to disappear on earth, and the way of salvation is not being found"
Medjugorje: The Secret Keeper – The Keeper of the Biggest Secret in the World: "Woe to those who wait for the Sign to be converted"
Vicka of Medjugorje tells the secret of the two Rosaries who came from heaven! The two Rosaries appeared from nowhere
Video: Mirjana and her unbearable pain – Pray for Mirjana – Here is a message from Our Lady on how you can honor Mirjana's wish: "Offer your souls to Him so that He can make you instruments of faith, instruments of love."
General News Medjugorje
Medjugorje – "this is the time of the 10 secrets. The end of the world? "Not really" they say. 'But a new beginning yes!' Everything will be revealed 3 days in advance
Now My Turn to be a "Miracle Detective" …Next Stop Medjugorje … Taking two great books with me.
Medjugorje Strange Events – Drama on Apparition Hill …The possessed woman causes a stir. Please pray for her.
Sister Emmanuel had this to say about a very disturbing moment on Apparition Hill that occured on January 2, 2017.
It is the 27th day of the month! Petition to Our Lady for the miraculous medal to be recited today – May 27, 2020
God Spy Spirituality
Here are 10 Practical Suggestions to Pray the Rosary Everyday
Miracles occuring at USA's first approved apparition site…Woman Says Her Tumors Disappeared After Visiting Religious Wisconsin Shrine
Medjugorje Today February 17, 2021 – Be ready for what is coming —Why does Our Lady say "Blink" – Our Lady urges us to think of our life in this way.
Marija: "Our Lady wants us to think of Heaven, Hell and of Purgatory. She said our life will be very
June 15, 2018 Ivan has Apparition on Apparition Hill. Our Lady says: "The family must attend Holy Mass"…Then "Our Lady left in the sign of the light and the cross"
Medjugorje Message- August 2, 2019: "Everything that happens to you, beautiful, painful and joyful, all that makes you grow spiritually, let my Son grow in you"
August 2, 2019 August 2, 2019 stephen ryan
Medjugorje – The Three Times Our Lady Warned Against "Modernism" (New Video)
Fr. Mark Goring – Rosary is profound and powerful.."Through the Rosary, I converted. I encountered the Lord." Powerful video – 4 Minutes that can change your life or save a loved one.
Medjugorje The Future – "The events are already in motion"
Medjugoje Visionary Mirjana, in a formal writing, had this to say about her knowledge of the future: "Our Lady told
The Greatest Exorcist – Fr. Armorth's (R.I.P.) most effective prayer for liberation against attacks from the "Evil One"…
Our Lady says to be ready for what is coming…"Punishment is inevitable for the sins of the world"
Rare Video of little known event (kept hidden?) President Reagan Thanking the Blessed Mother and the Children of Fatima at Fatima Shrine
The Worst Year to Be Alive – 536 AD…Harvard Scientist Concludes…Mysterious Fog to Blame


Looking for a specific item or just browsing for ideas? dNj Specialities is your one-stop shop for promotional products and business gifts. Our extensive range of promo products will ensure you find something to suit your requirements.
With 1000's of selections, dNj Specialities offers branded merchandise to fulfill all of your needs.