text:
import chai from 'chai';
import sinon from 'sinon';
import sinonChai from 'sinon-chai';
import { afterEach, beforeEach, describe, it } from 'mocha';
import Device from '../src/entities/Device.js';
import DeviceHistory from '../src/entities/history/DeviceHistory.js';
import readingFixture from './fixtures/devices/readings.fixture';

let MQTTMock = {
    subscribe: function() {},
    unsubscribe: function() {},
    connect: function() {}
};
Device.__Rewire__('mqtt', MQTTMock);
Device.__Rewire__('sharedChannel', {
    credentials: {}
});

const expect = chai.expect;
chai.use(sinonChai);
let deviceInstance;
let fakeConfig;
let fakeDevice;
global.XMLHttpRequest = sinon.useFakeXMLHttpRequest();

describe('Device', function() {
    beforeEach(function() {
        fakeConfig = {
            ajax: {
                url: 'fakeURL',
                token: '12345',
                tokenType: 'Bearer'
            }
        };

        fakeDevice = {
            id: 'fakeDeviceId',
            name: 'fakeDeviceName',
            modelId: 'fakeModel',
            owner: 'fakeOwner'

        };

        deviceInstance = new Device(fakeDevice, fakeConfig);

        this.xhr = sinon.useFakeXMLHttpRequest();
        this.requests = [];

        this.xhr.onCreate = function(xhr) {
            this.requests.push(xhr);
        }.bind(this);

    });

    describe('#updateDevice', function() {

        it('should throw an error if no device id given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.updateDevice();
            };
            expect(fn).to.throw(Error);
        });

        it('should give a body of parameters at all to update', function() {
            const fn = function() {
                deviceInstance.updateDevice();
            };
            expect(fn).to.throw(Error);
        });

        it('should have something in the body', function() {
            let body = {};
            const fn = function() {
                deviceInstance.updateDevice(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should give relevant parameters to update on a device in the body', function() {
            let body = {
                pets: 'unicorn',
                abilities: 'flying'
            };

            const fn = function() {
                deviceInstance.updateDevice(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should return the correct updated device object based on multiple changes', function(done) {
            let patch = {
                owner: 'bob',
                name: 'Im a thing'
            };

            deviceInstance.updateDevice(patch, true).then((response) => {
                expect(patch).to.deep.equal(response);
                done();
            });

            //this is the api
            this.requests[0].respond(200, {
                'Content-Type': 'text/json'
            }, JSON.stringify(patch));
        });
    });

    describe('#deleteDevice', function() {
        it('should throw an error if no device Id given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.deleteDevice();
            };
            expect(fn).to.throw(Error);
        });

        it('should delete the deviceInstance', function(done) {
            let data = {};

            // deviceInstance.ajax.customXHR = this.xhr;
            deviceInstance.deleteDevice(data).then((response) => {
                expect(response).to.be.ok;
                done();
            });

            // this is the api
            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(data));
        });

    });

    describe('#sendCommand', function() {

        it('should throw an error if no device Id given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.sendCommand();
            };
            expect(fn).to.throw(Error);
        });

        it('should give a body of parameters at all to send a command', function() {
            const fn = function() {
                deviceInstance.sendCommand();
            };
            expect(fn).to.throw(Error);
        });

        it('should have something in the body', function() {
            let body = {};
            const fn = function() {
                deviceInstance.sendCommand(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should give relevant parameters to send a command in the body', function() {
            let body = {
                pets: 'unicorn',
                abilities: 'flying'
            };

            const fn = function() {
                deviceInstance.sendCommand(body);
            };
            expect(fn).to.throw(Error);
        });

    });

    describe('#connect', function() {

        it('should give back channel credentials', function(done) {
            let credentialsStub = {
                channelId: '50a66b82-cb538',
                id: '1234',
                credentials: {
                    user: '2b6:3b383d97-82dc6a',
                    password: 'vcGqoSr',
                    clientId: '502139731',
                    topic: '/v1/50a66c96-bac80'
                }
            };

            deviceInstance.id = '1234';

            deviceInstance.getChannel().then((credentials) => {
                expect(credentials).to.deep.equal(credentialsStub);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(credentialsStub));
        });

        describe('on sucessful connection', function() {
            let connectionCb;
            let stubConnect;
            let stubSubscribe;
            let stubUnsubscribe;
            beforeEach(function() {
                stubConnect = sinon.stub(MQTTMock, 'connect').returns(new Promise((resolve) => {
                    resolve();
                }));

                stubSubscribe = sinon.stub(MQTTMock, 'subscribe').callsFake(function(topic, cb) {
                    connectionCb = cb;
                });

                stubUnsubscribe = sinon.stub(MQTTMock, 'unsubscribe').callsFake(function() {});

                deviceInstance._channelCredentials = {
                    credentials: {
                        topic: 'fake-topic'
                    }
                };
            });

            afterEach(function() {
                [stubConnect, stubSubscribe, stubUnsubscribe].forEach(stub => stub.restore());
            });

            it('should setup a connection with channel credentials over mqtt', function(done) {
                deviceInstance.connect().then(() => {
                    done();
                });
            });

            it('should notify data listeners with data from mqtt', function(done) {
                deviceInstance.connect().then(function(connection) {
                    connection.on('data', function(message) {
                        expect(message).to.deep.equal({ data: 'fake-reading' });
                        done();
                    });
                    connectionCb({ data: 'fake-reading' });
                });

            });

            it('should create a unsubscribe method that unsubscribes from mqtt', (done) => {
                deviceInstance.connect().then(function(connection) {
                    connection.unsubscribe();
                    expect(MQTTMock.unsubscribe).to.have.been.calledWith('fake-topic');
                    done();
                });
            });
        });
    });

    describe('getHistoricalData', function() {
        let sandbox;
        beforeEach(function() {
            sandbox = sinon.sandbox.create();
            sandbox.spy(deviceInstance.history, 'getHistoricalData');
        });

        afterEach(function() {
            sandbox.restore();
        });

        it('create a instance of device history ', function() {
            expect(deviceInstance.history).to.be.instanceof(DeviceHistory);
        });

        it('should get historical data from device history object', function() {
            deviceInstance.getHistoricalData({
                period: '1m'
            });

            expect(deviceInstance.history.getHistoricalData).to.have.been.calledOnce;
            expect(deviceInstance.history.getHistoricalData).to.have.been.calledWith({
                period: '1m'
            });
        });
    });

    describe('getAllHistoricalData', function() {
        let sandbox;
        beforeEach(function() {
            sandbox = sinon.sandbox.create();
            sandbox.spy(deviceInstance.history, 'getAllHistoricalData');
        });

        afterEach(function() {
            sandbox.restore();
        });

        it('should get historical data from device history object', function() {
            deviceInstance.getAllHistoricalData({
                period: '1m'
            });

            expect(deviceInstance.history.getAllHistoricalData).to.have.been.calledOnce;
            expect(deviceInstance.history.getAllHistoricalData).to.have.been.calledWith({
                period: '1m'
            });
        });
    });

    describe('#getReadings', function() {
        it('should throw an error if no device Id given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.getReadings();
            };
            expect(fn).to.throw(Error);
        });

        it('should get the data from the device/readings resource', function() {
            deviceInstance.getReadings();

            expect(this.requests[0].url).to.contain('/devices/fakeDeviceId/readings');
        });

        describe('on success', function() {
            it('should resolve promise with the list of the readings', function(done) {
                deviceInstance.getReadings().then(function(response) {
                    expect(response).to.be.deep.equal(readingFixture);
                    done();
                });

                this.requests[0].respond(200, {
                    'Content-Type': 'text/json'
                }, JSON.stringify(readingFixture));
            });
        });

        describe('on failure', function() {
            it('should fail promise error message', function(done) {
                deviceInstance.getReadings().then(() => {}, function(d) {
                    expect(JSON.parse(d.response).message).to.be.deep.equal('oh noes');
                    done();
                });

                this.requests[0].respond(404, {
                    'Content-Type': 'text/json'
                }, JSON.stringify({
                    message: 'oh noes'
                }));
            });
        });
    });

    describe('#getDeviceState', function() {

        let sampleState = {
            readings: [{
                path: '',
                meaning: '',
                value: '',
                received: 12345
            }],
            version: {
                commands: {
                    number: 0,
                    ts: 12345
                },
                configurations: {
                    number: 0,
                    ts: 12345
                },
                readings: {
                    number: 0,
                    ts: 12345
                },
                metadata: {
                    number: 0,
                    ts: 12345
                }
            },
            metadata: {},
            configurations: [],
            commands: []
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.getDeviceState();
            };
            expect(fn).to.throw(Error);
        });

        it('should return the correct object describing state', function(done) {
            deviceInstance.getDeviceState().then((response) => {
                expect(response).to.deep.equal(sampleState);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleState));
        });
    });

    describe('#getDeviceConfiguration', function() {

        let sampleConfiguration = {
            configurations: ['something']
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.getDeviceConfigurations();
            };
            expect(fn).to.throw(Error);
        });

        it('should return the correct object describing the configurations', function(done) {
            deviceInstance.getDeviceConfigurations().then((response) => {
                expect(response).to.deep.equal(sampleConfiguration);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleConfiguration));
        });
    });

    describe('#setDeviceConfigurations', function() {
        let schema = {
            path: 'somePath',
            name: 'someName',
            value: 'someValue'
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.setDeviceConfigurations(schema);
            };
            expect(fn).to.throw(Error);
        });

        it('should give a body of parameters at all to update', function() {
            const fn = function() {
                deviceInstance.setDeviceConfigurations();
            };
            expect(fn).to.throw(Error);
        });

        it('should have something in the body', function() {
            let body = {};
            const fn = function() {
                deviceInstance.setDeviceConfigurations(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should give relevant parameters to update on a device in the body', function() {
            let body = {
                pets: 'unicorn',
                abilities: 'flying'
            };

            const fn = function() {
                deviceInstance.setDeviceConfigurations(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should add an item to the configurations array', function(done) {
            deviceInstance.configurations[0] = {
                path: 'somePath1',
                name: 'someName1',
                value: 'someValue1'
            };
            let sampleConfig = [schema];
            deviceInstance.setDeviceConfigurations(schema).then(() => {
                expect(deviceInstance.configurations.length).to.equal(2);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleConfig));
        });

        it('should have the last item in the config array be the one you just added', function(done) {
            let sampleConfig = [schema];
            deviceInstance.setDeviceConfigurations(schema).then((response) => {
                expect(response).to.deep.equal(sampleConfig);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleConfig));

        });

    });

    describe('#getDeviceCommands', function() {

        let sampleCommands = {
            commands: ['do it']
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.getDeviceCommands();
            };
            expect(fn).to.throw(Error);
        });

        it('should return the correct object describing state', function(done) {
            deviceInstance.getDeviceCommands().then((response) => {
                expect(response).to.deep.equal(sampleCommands);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleCommands));
        });
    });

    describe('#setDeviceCommands', function() {
        let cmd = {
            path: 'somePath',
            name: 'someName',
            value: 'someValue'
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.setDeviceCommands(cmd);
            };
            expect(fn).to.throw(Error);
        });

        it('should give a body of parameters at all to set', function() {
            const fn = function() {
                deviceInstance.setDeviceCommands();
            };
            expect(fn).to.throw(Error);
        });

        it('should have something in the body', function() {
            let body = {};
            const fn = function() {
                deviceInstance.setDeviceCommands(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should give relevant parameters to set for the commands in the body', function() {
            let body = {
                pets: 'unicorn',
                abilities: 'flying'
            };

            const fn = function() {
                deviceInstance.setDeviceCommands(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should add an item to the commands array', function(done) {
            deviceInstance.commands[0] = {
                path: 'somePath1',
                name: 'someName1',
                value: 'someValue1'
            };

            let sampleConfig = [cmd];
            deviceInstance.setDeviceCommands(cmd).then(() => {
                expect(deviceInstance.commands.length).to.equal(2);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleConfig));
        });

        it('should have the last item in the command array be the one you just added', function(done) {
            let sampleConfig = [cmd];
            deviceInstance.setDeviceCommands(cmd).then((response) => {
                expect(response).to.deep.equal(sampleConfig);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleConfig));

        });

    });

    describe('#getDeviceMetadata', function() {

        let sampleMetadata = {
            metadata: {
                data: 'metaaaaaa'
            }
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.getDeviceMetadata();
            };
            expect(fn).to.throw(Error);
        });

        it('should return the correct object describing Metadata', function(done) {
            deviceInstance.getDeviceMetadata().then((response) => {
                expect(response).to.deep.equal(sampleMetadata);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(sampleMetadata));
        });
    });

    describe('#setDeviceMetadata', function() {
        let meta = {
            data: 'metaaaaaa'
        };

        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.setDeviceMetadata(meta);
            };
            expect(fn).to.throw(Error);
        });

        it('should give a body of metadata at all to update', function() {
            const fn = function() {
                deviceInstance.setDeviceMetadata();
            };
            expect(fn).to.throw(Error);
        });

        it('should have something in the body', function() {
            let body = {};
            const fn = function() {
                deviceInstance.setDeviceMetadata(body);
            };
            expect(fn).to.throw(Error);
        });

        it('should does not return a meta data object', function(done) {
            deviceInstance.metadata = {
                data: 'this that or the other thing'
            };

            deviceInstance.setDeviceMetadata(meta).then(() => {
                expect(deviceInstance.metadata).to.deep.equal(meta);
                done();
            });

            this.requests[0].respond(204, null, ' no content ');
        });

        it('should replace the previous metadata with the one you just set', function(done) {

            deviceInstance.metadata = {
                data: 'this that or the other thing'
            };

            deviceInstance.setDeviceMetadata(meta).then(() => {
                expect(deviceInstance.metadata).to.deep.equal(meta);
                done();
            });

            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, null);

        });

    });

    describe('#deleteDeviceMetadata', function() {
        it('should throw an error if no deviceId given to look up', function() {
            deviceInstance.id = null;
            const fn = function() {
                deviceInstance.deleteDeviceMetadata();
            };
            expect(fn).to.throw(Error);
        });

        it('should delete the metadata ', function(done) {
            let data = {};
            deviceInstance.deleteDeviceMetadata(data).then((response) => {
                expect(response).to.be.ok;
                done();
            });

            //this is the api
            this.requests[0].respond(204, {
                'Content-Type': 'text/json'
            }, JSON.stringify(data));
        });

    });

});


text:
Now you, too, can be privy to Pravda's dogma
By Christopher Swan Staff writer of the Christian Science Monitor
October 15, 1985 | Boston
On Sept. 6, an article in the Soviet Union's largest newspaper, Pravda, made passing reference to a shortfall in state revenues caused by decreased income from alcohol taxes. This signaled Harvard research fellow David E. Powell, a specialist in Soviet social isssues, that the current crackdown on alcoholism in the Soviet Union may be working. To such a specialized reader, Pravda provides at least a partial view of the inner workings of the governmental machinery.
Wouldn't it be nice to display that world to inquiring American readers whose Russian is limited to nyet and da?
That's the proposition of a daily English-language translation scheduled for a November publication by Charles C. Cox, a Minnesota businessman.
In preliminary runs, this new translation (largely intended for scholars and libraries) has been troubled with translation issues that some scholars say cast serious doubts on its value. Supporters and workers on the project respond that such Russian translation disagreements are commonplace.
Extracts from Pravda and numerous other USSR publications have been published by the venerable Current Digest of the Soviet Press since 1949. But because the new Pravda translation will deliver the paper's full text (delayed by at least several days), the Minnesota publishers herald it as a ``unique source material essentially denied Americans for 60 years.'' The two facsimile issues available from Mr. Cox so far put into the average American reader's hands a cryptic artifact of the censorship and offic ial double-speak in the Soviet Union.
Andrew Sedych, editor of the Russian 'emigr'e newspaper Novoye Russkoye Slovo, published in New York City, observes that he ``ran away from Russia in order not to read Pravda.'' But Kremlin-watchers and students of Russian society slog determinedly through the thin (usually six-page) newspaper every day, searching for fragmentary insights often buried in a sea of gray polemic.
It is not an easy task. Harvard's Mr. Powell calls Pravda ``dull, unutterably boring,'' and says it is ``designed to lull people into a kind of insensibility. . . . You will get in Pravda what the Politburo considers appropriate.''
What the Politburo considered appropriate for the lead item in the Aug. 18 issue, according to the English-language prototype, was an article running under the headline ``To Each -- According to His Labor,'' which proclaimed: ``Concern for people is [the] law of the life of a socialist society.'' Another Page 1 article, subtitled ``Attention to the Stockpiling of Fodder,'' began, `` `We have three mechanized teams,' explained the head agronomist of the farm, R. Sibgatullin.'' A tiny story at the bottom of the page tells of ``a hunger strike against the bloody repression of the Guatemalan people by the pro-American regime which rules that country.''
The language in which such Pravda stories are told is calculatedly doctrinaire and arcane. ``Even the average Soviet citizen cannot understand Pravda very well,'' says Boston University's Yelena Gessen, who translated Soviet defector Arkady Shevchenko's English-language memoirs, ``Breaking with Moscow,'' into Russian.
Ms. Gessen, a lecturer at BU's Russian Studies Institute, found what she considered glaring errors in the two English-language Pravda prototypes put out by Cox: ``machinery'' rendered as ``techniques,'' ``farm'' rather than ``livestock section,'' and the mechanization of water supply to livestock called ``mechanized irrigation.''
Prof. Maurice Friedberg, head of the Slavonic studies department at the University of Illinois -- who has been associated with the Current Digest of the Soviet Press, the source-document for much scholarship in this country -- verified these errors and others by telephone.
On the other hand, Boris Sorokin, an associate professor specializing in Tolstoy at the University of Kentucky, maintains that the Pravda translations by the Minnesota project are ``remarkably accurate'' and added that ``there are four or five different ways of translating Russian into English.'' Asked about errors identified by other translators, he replied: ``This is a wonderful idea shouldered by people who may not themselves be experts in Russian. [But] I am sure as they get launched with daily prod uction'' they will weed these errors out. ``Who is going to care if it is a farm or a livestock section?''
``We realize that we are not going to be letter-perfect,'' publisher Cox acknowledges. His chief translator, Alexander Guss, professor emeritus of Macalester College in St. Paul, Minn., argues that Russian translations are generally full of controversies over which reasonable scholars disagree.
At the heart of this confusion is the fact that Soviet journalism is a hermetic world governed by volumes of censorship regulations and close bureaucratic scrutiny.
Boris Bochstein, managing editor of Novoye Russkoye Slovo, served for 11 years as a staff editor for Moskovskaya Pravda, a capital-city counterpart of the national Pravda. He says the operative slogan in the mind of Soviet journalists, when it comes to anything but safe, party jargon, is ``Don't think about it, don't write about it.''
``Practically nobody [asks for] Pravda,'' observes George Estafy, technical assistant at the New York Public Library's Slavonic Division. The far more colorful Literaturnaya Gazeta (Literary Gazette) gets better circulation at the library, as does Izvestia, the other general circulation, national newspaper of the Soviet Union, and Krasnaya Zvyezda, or Red Star, the military journal.
The Soviet managerial journal Ekho has ``carried a wide variety of controversial articles,'' adds Dr. Mark Beissinger, an assistant professor of government at Harvard's Russian Research Center. ``A lot of other journals and newspapers . . . are more rich and interesting than Pravda.''
McCain slams Putin in Pravda: Who's winning war of words?
McCain disses Putin, but Russians are mostly unimpressed
MH17 amps up 'he said, she said' in Russian and Ukrainian media
https://www.csmonitor.com/1985/1015/dprav.html

redpajama_set_name: RedPajamaCommonCrawl


text:
Tag: roadworks
Strange streets and rural ratruns in the Netherlands
On the path from Nijmegen to Eindhoven, following signs for an intermediate town, I stumbled upon the equivalent of a trunk road, the N324 Graafseweg on the edge of Wijchen, being dug up:
The cycle route here followed a series of short access streets parallel to the main road — non-through routes for motor vehicles but which are joined up with cycle tracks.
But at one point even the cycle route/access streets had been taken over by the construction crew, and bicycles were sent around a short and excellently signed diversion, along a suburban lane with cycle tracks:
And onto a little lane, Urnenveldweg I think it must have been, with no need for bicycle infrastructure, but with traffic calming — not very good traffic calming:
I imagine that this lane is normally little used. It runs parallel to the main road and doesn't connect much other than the few properties here. So it's interesting that the verges are so bare — what has killed the grassy edges? In addition to being the official bicycle diversion, quite a few motorists had discovered that it also makes a through route for cars, and they were determined to push their way through. Perhaps it was a self-selected sample of bad drivers — they were, after all, choosing to ignore their own diversions and instead ratrun down the country lanes. It was one of the few places in a 1,000km where being on a bicycle was anything less than completely comfortable and relaxed, and it destroyed the illusion that Dutch motorists are more considerate and better behaved than the British.
This is what they were doing with the main road:
According to a Google Translate of the council's project page, they've reduced it from two lanes to a single lane in each direction, cut the speed limit to 50kmph, and put on a quieter surface — all measures to cut the noise pollution in this suburb. But the other thing they've done is built those walls: stone walls facing the main road, with gentle grassy banks facing the parallel bicycle/access streets and houses behind, another noise abatement feature. It's a bit odd. I'm sure it's preferable to having a 100kmph dual carriageway outside the front door, but it still looks like a funny sort of place to live.
Author Joe DunckleyPosted on October 27, 2011 Tags country lanes, netherlands, nijmegen, noise pollution, ratrunning, road reduction, roadworks, separation principles, wijchen6 Comments on Strange streets and rural ratruns in the Netherlands
Hogesluisbrug
Here's another bascule bridge undergoing a transformation, Hogesluisbrug, one of many crossing the canals of central Amsterdam. The city is currently rebuilding it, with modern foundations and electric lifting mechanism but with the original exterior design and decorations.
In the meantime, they've put a temporary bridge alongside the old one. A temporary lifting bridge. A temporary lifting tramway bridge:
A temporary lifting tramway bridge that gives priority to cyclists:
When the space gets narrow, no "cyclists dismount" signs here: the trams and vans must take turns on the remaining available space.
I didn't go looking for this bridge, I had no idea these works were going on — it's just the sort of thing you stumble upon when vaguely and unhurriedly navigating by instinct through a Dutch city…
Author Joe DunckleyPosted on October 11, 2011 August 6, 2012 Tags amsterdam, cycle tracks, cycling, cycling infrastructure, netherlands, roadworks, trams1 Comment on Hogesluisbrug
Get a car, idiots
I take everything back. I was wrong. I realise now that in a place like Stamford Street, Southwark, the car offers outstanding convenience and time savings that will make my life better.
Now I just need to know whether to buy the Renault, which promises to save me "secs" (a reference, I understand, to the roof, which retracts in just nine of them):
Or the Mercedes, which I think is promising to save me from slow and difficult walks around town, judging by their use of the pedestrian crossing imagery:
Both look such very very attractive options, it's impossible to choose. Whichever I get, I just can't wait to try it out. Ah, the freedom…
Author Joe DunckleyPosted on July 10, 2011 July 9, 2011 Tags advertising, blackfriars road, cars, london, roadworks, southwark, stamford street4 Comments on Get a car, idiots
Followup: pimp my ride
Before the last random meandering tour of the hills and mountain ranges of England and Scotland (idea for a book: find the least flat end-to-end route) I briefly mentioned the latest accessories with which I had pimped my ride. A few people asked questions about both the handlebar smartphone mount and the solar phone charger.
The Herbert Richter HTC Hero mount was pretty good. The reviews worried me because somebody said that it had failed on the very first ride and their phone had been destroyed. My experience was far better: I must have done at least 1,000km, in all kinds of conditions and speeds, before the cradle was knocked loose when I hit shoddy roadworks while descending the hill into Melrose in the Borders at 35kmph:
The trench across the road was one of a series. A developer has very recently put up a little cul-de-sac called Scottsdale and has dug up the road at intervals to lay the power for each streetlight. It appears they couldn't be bothered to compact the backfill properly before smearing a bit of tarmac on the top. The road is already sinking as the backfill settles, and the tarmac job is already crumbling off. Presumably Borders Council will be left with the bill when it (and the rest of the development) fully falls apart — which it probably already has by time of writing.
I wonder if prospective buyers notice this shoddy shortcut when they visit? I wonder how confident they feel about the quality of the construction at Scottsdale after this, their first impression of the developer's work?
(Unfortunately I can't find the name of the developer because if you attempt to Google for new housing you get about 1.75 million hits from SEO drivel — a hundred thousand pointless property search engines, all duplicating the same non-content but promising to help you find new homes and new houses and new properties ready to buy and rent, for sale and to let, in Scottsdale, off the B6059 Dingleton Road, TD6 9HR, Melrose, near Jedborough, Tweedbank and Galashiels, in the Scottish Borders, Scotland, United Kingdom. None of them actually tell you anything about the properties listed, but they're very keen to tell you they have properties in Scottsdale, TD6, Melrose…)
Anyway, everything's fine because the excellent thing about the Herbert Richter HTC Hero handlebar mount is that it is designed for the HTC Hero, and the HTC Hero is apparently indestructible. It has scrapes gouged out of it, and there's barely a straight line or flat surface left on it, but it still does everything it's supposed to do.
It would probably be even more complete if I hadn't simply put it back on the mount. It fell off again a few days later, on the crumbling roads of Arran, and the cradle no longer clips onto the mount. It merely slides.
The mount cost £17, and I think it probably lasted about 17 days. It was convenient being able to put the phone on the handlebars for navigation, but I'm not sure it was £1-a-day convenient.
And somebody asked me about the FreeLoader solar phone charger. It's worthless.
Author Joe DunckleyPosted on July 1, 2011 Tags melrose, reviews, roadworks, scotland, scottish borders, touringLeave a comment on Followup: pimp my ride
Boris Johnson recently addressed People's Question Time at Battersea Arts Centre, by talking of his delightful cycle, carried on a river of blue from City Hall to Battersea Arts Centre on the CS7. As a local resident who cycles regularly down that route, I thought I'd share a snapshot of the glorious journey myself and Boris are accustomed to. This section of the CS7 is split level and comes with a fetching red fence.
What a smooth surface. Sublime.
The CS7 can also
be used to park any signs you may have.
traffic flow. By letting cars park on it.
This is the ghost of the CS7. not even one year old. Joking aside, the CS7
shows several faults in Boris's transport "legacy". What was trumpeted as a transport revolution was clearly a very expensive PR stunt, now that they can't be bothered with the upkeep. Yet again, Boris uses the fact that he cycles to detract from the fact that he
can't provide for cyclists. Within two days of the CS7 being laid it was being dug up by a water company. If the CS7's dilapidated now (and these photos are taken over a quarter mile distance) what will it look like in May 2012, election time?
Author Dawn FosterPosted on April 2, 2011 August 6, 2012 Tags boris johnson, crap cycleways, CS7, cycle superhighways, cycling, cycling infrastructure, london, roadworks9 Comments on Super
Roadwork charging
The Evening Standard this week declared that the Mayor and the Prime-minister are exactly equally powerful in London. And yet it appears that Boris feels that he is being ignored by the PM, and even thinks that Dave is more likely to listen to we peasants than to his old Bullingdon chum:
@MayorOfLondon Boris Johnson
Had enough of utility companies digging up our roads & causing traffic mayhem?! Help me do something about it: http://bit.ly/cAr9wS
21 hours ago via web
The mayor's campaign is for road charging — but don't panic, this is not another war on the poor motorist! The mayor recognises that London's streets are not gridlocked because there are too many cars on them, but because there are too many people digging them up. So this is a "lane rental" scheme for utilities companies, encouraging them to make quick, dangerous and botched jobs on their road works by charging them by the hour for closing lanes on busy roads. This will have the beneficial effect of smoothing the traffic flow. But the scheme can't go ahead until central government say it's OK, and central government seem to think that they have more important things to be doing.
So Boris Johnson realises that if central government won't listen to him, it will certainly listen to the 200 people who participate in his online poll and share his page on Friendface.
I voted "no" in the mayor's poll. Not because I think I'm sufficiently informed to comment on the desirability of an initiative that is likely to have complex and not entirely predictable effects, but simply because online polls are absurd. Mainly, though, I wouldn't be able to make my mind up until I know the Mayor's proposals for how much the utilities companies will be fined per "cyclists dismount" sign, and the hourly rate for blocking the pavement.
Or is the mayor's proposal precisely to incentivise a shift in utilities works out of the very important carriageway and into the unimportant bike lanes and footpaths?
Author Joe DunckleyPosted on November 20, 2010 August 6, 2012 Tags boris johnson, cyclists dismount, roadworks4 Comments on Roadwork charging
Part Two: Test-driving the Cycle Hire Scheme
First things first: I'm cynical as all hell, and I have an unbridled antipathy towards Boris Johnson. In spite of this, I adore the London Cycle Hire scheme. After outlining my previous impressions of and concerns surrounding the scheme, I cycled along to the Southbank with my artfully unbranded key.
The fruits of two minutes and a spot of nail varnish.
The docks in Waterloo were all full, whereas many I passed in the City were 75% empty. In a touristy area prior to casual use, this wasn't a surprise. Removing the bike from its dock was straightforward, with instructions clearly printed on the dock. Handy tip for easy removal: lift the back of the bike, then pull. We had some issues when attempting to replace the bike in the dock: the dock wouldn't recognise the bike, despite being used correctly. There's a button to report a broken bike on the dock, but not a button to report the dock. A passerby on a bike told us he was having a similar problem and had tried a number of docks. It sounds as though TfL recognised this, and as a result all journeys were retrospectively made free on the launch day.
The bike was heavy. I knew this from research and nosing around docks prior to the launch, but its still a shock when you handle one for the first time. The wheels are fat, and that combined with the weight made the bike stable: a factor that will hopefully increase safety by minimising the wobbling of new or unsteady cyclists. I struggled a little to work out how to use the bell and gears. The gears are integrated into the handlebar, though it's not immediately obvious. A three speed is all you really need in Central London, and it prevents people racing them.
Having experienced dynamo lights before, I was wary on hearing TfL had decided to install them on the bikes. Dynamo lights are notoriously unreliable, often cause drag on tyres and are prone to ceasing to work without the cyclist noticing. My university days were marked by regular swearwords and dynamo fiddling on the delightful streets of Coventry at 2am. Luckily, the dynamo mechanisms used on the bikes are top of the range, fully incorporated into the wheels with minimal drag, and staying bright rather than flashing with each pedal as standard dynamos do. They've sensibly added a picture between the handlebars, warning of the dangers of cycling on the left hand side of Heavy Goods Vehicles.
There's both a chainguard and skirtguard, to prevent skirt-caught-in-the-wheel-whilst-its-pouring-with-rain-and-you're-swearing-like-a-trouper moments, and a half-basket with a bungee attached to secure your belongings. But not your friends: 10kg maximum weight, a sticker chides. The seat post is a masterstroke: a small lever releases the seat to be adjusted, then locks it, with a rim preventing it being stolen. It's a great design, and I'd love to see it on more bikes. At least 11 people took the bikes on Critical Mass. I spoke to two of them, who remarked that though the bikes were heavy, they were easy to manouevre, and the weight didn't affect speed. I was chided for using the term "Borisbike" by a male cyclist who was worried the scheme would work well, and we'd have to give him credit for pulling it off. Snagging another bike on Grays Inn Road, we gave it another test drive at the pub. Friends of all heights gave it a go, with Lizzie at 5″2′ having no problem, even with the seat not at its lowest. The boys predictably attempted to do wheelies (it's possible, but not really worth the effort). A couple were entranced when I docked it, and I let a woman ride it briefly before returning it. It turned out she'd never ridden before, but after a few screams and some premature braking she was steady and enjoying herself.
Here's the crux: whenever people chimed "London's no Paris though, it won't work" I dismissed them with a flippancy and gauche that only comes with being young, immature, a bit thick, and having lived here for just shy of five months. London's great! It'll be a cycling city to rival Copenhagen in a decade. You wait. I bundled into Euston close to midnight after a day out, noting the slew of drunks weaving into the Underground. Aware that the Northern Line was closed south of Kennington I knew I'd have to change at Stockwell and get a bus regardless. Why not take a bike to Kennington, and catch the N155 from there? A couple spotted me grabbing a bike and quizzed me about it, enthused and intrigued. After a brief chat, they thanked me for answering questions and left planning to register themselves. I set off, buoyed by their enthusiasm. Then I met with the maddening chaos of Oxford Street, littered with roadworks and one way systems. The only signs I encountered bore A-road codes, which meant nothing to someone whose mental map of London is constructed entirely of Tube stations and gig venues. Frustrated by my inability to escape a quarter mile radius of W1, cycling in ever-decreasing loops and resenting the helpful jeers I've come to expect from taxi drivers, I tried to spot a docking station. This took a further ten minutes. I abandoned my bike in a dock next to Broadcasting House and headed towards the Tube.
Overall, I love them. I have no issues with the bikes, and I find it fantastic how Londoners feel completely comfortable asking you about them, and feel a sense of ownership over the scheme. I'm not sure I'll renew my 7 day access however. Until the shambles that is the London road system is rectified, road safety and cycling will still struggle to reach the level instigated by Paris's Velib. Little has been done to prepare the roads for a sudden, large increase in casual cycling. Simple things, like more signposting of areas, rather than just roads, and contraflow cycle lanes would make cycling simpler, more accessible and benefit London cycling far more than a few gallons of blue paint.
Author Dawn FosterPosted on August 1, 2010 December 9, 2010 Tags barclays, bike hire, cycling, london, roadworks, signposting26 Comments on Part Two: Test-driving the Cycle Hire Scheme


I have been working with SellingRestaurants for about two years and made more money from them then all my businesses combined this year. When I first spoke with SellingRestaurants, they suggested a building in Southern California that I had no interest in since I live in Sacramento. They insisted I see it. When I finally flew down there, I was impressed but not convinced. SellingRestaurants got me demographical information as well as a great overall picture of the market and the potential for this site. After hearing his "sales pitch," I did my own research and found SellingRestaurants was absolutely honest in their assessment. I acquired the building and have made what most people would consider a fortune. About six months ago, SellingRestaurants again presented another opportunity whereby the end result was the property was valued at more than twice the purchase price. SellingRestaurants is not a money making machine, rather they are excellent at identifying opportunities where most brokers see challenges. Beyond the financial return, SellingRestaurants has provided me with something greater...TRUST! Whenever I have needed anything, SellingRestaurants is there to help. I have called perhaps 10 times or more for favors above and beyond the call of duty, even after a deal has closed. When SellingRestaurants says "If you need any thing, just call me" they mean it! SellingRestuarants has not let me down. SellingRestaurants is not pushy, they are honest, and an EXTREMELY hard working team. I rarely trust people and I'm proud to include them as part of my circle of friends."


Welcome to the small beach cottage - in this great cottage bed your child will surely spend magical nights. What child is not dreaming of their own small house. This unique cabin bed STRANDHAUS this dream will now come true.
In the white-painted cottage bed it is not only absolutely cozy, it is provided with the three windows and the half closed roof for sufficient light so that your little treasure at night also need not fear and can not bargain on the favorite book before bed. On the 90x200cm big lawn is via the ladder and can then go into the game and sleeping paradise.
Under the rectangular window at the front of the crib, a bedside table is attached, so your child can leave there his alarm clock or a bedside lamp. Of course, may also Kuscheltiere seating in this place of honor. The Cottage Bed BEACH HOUSE is stable enough for all occupants, because that in addition to the high spec finish makes even the massive pine from the game this chic bed is built. You can send BEACH HOUSE and place it anywhere in the room, as well as at the back of the bed your child of two crossbeams is secured before rolling out.
The white-painted cottage bed is designed just very thought out and with class. Now let's move your child in this dream paradise of cottage bed. This bed is a product made of wood, so as to Knotholes be visible. This is not a defect of the bed, but it underlines the unique design of this bed and its authenticity of a natural product and a true beach house.
With a width of 216cm, a depth of 102cm and a total height of 167cm (depth to roof: 141cm, Drempelhöhe: 89cm) is enough space for the cabin bed in the smallest hut. Tip: the matching slatted we provide you with a direct and a large mattress 90x200cm see also here in our online shop.


text:
cameo.network_analysis package
==============================

Submodules
----------

cameo.network_analysis.networkx_based module
--------------------------------------------

.. automodule:: cameo.network_analysis.networkx_based
    :members:
    :undoc-members:
    :show-inheritance:

cameo.network_analysis.util module
----------------------------------

.. automodule:: cameo.network_analysis.util
    :members:
    :undoc-members:
    :show-inheritance:

Module contents
---------------

.. automodule:: cameo.network_analysis
    :members:
    :undoc-members:
    :show-inheritance:

redpajama_set_name: RedPajamaGithub


text:
module RandomFu

  # Instance methods mixed into String
  module StringInstanceMethods

    # Returns a random string the size of count created from the characters in
    # the string.  Characters are used one or more times, and characters may
    # repeat and/or not be used at all.  The source string is just a list of
    # possible characters (to place a string in a random order, use
    # String#random_order).  For example, "abcd".random(n) could result in
    # just one letter used multiple times:
    def random(count)
      if !count.is_a?(Integer) || count < 1 then
        raise(ArgumentError, "count needs to be a Integer >= 1")
      end
      return "" if self.empty?

      result = ""
      1.upto(count) do
        result << self[rand(self.length)]
      end
      result
    end

    # Returns a random string created from the characters in the string.
    # Characters in the string are used only once, and the result
    # will be the same length.  The result is simply a jumbled version.
    def random_order
      return "" if self.empty?

      result = ""
      chars = self.split(//)
      1.upto(chars.size) do
        result << chars.delete_at(rand(chars.size))
      end
      result
    end

  end

end


text:
A back-of-the-envelope calculation of Florida's capacity to handle Election Day turnout without lines
Did Florida have enough capacity to deal with the crush of voters who showed up on Election Day?
In the following posting, I take on this question by performing a back-of-the-envelope calculation of the ratio of turnout on Election Day to the number of voting booths reportedly deployed in the various counties. The short answer is that it looks like the number of voting booths was sufficient for keeping the lines short in Florida. The cause of the lines must lie elsewhere.
One very interesting paper helps us to think about this. Presented at the 2010 Electronic Voting Technology Workshop/Workshop on Trustworthy Elections (EVT/WOTE), a paper by Edelstein and Edelstein (http://static.usenix.org/events/evt/tech/full_papers/Edelstein.pdf) proposed a rule about the minimum number of voting booths (or electronic machines) that would keep long lines from forming.
Edelstein and Edelstein propose something called the "Queue Stop Rule." Stated simply, the Queue Stop Rule calculates the number of voters who can be expected to use one voting station in one day without causing lines to form of people waiting for a voting station to open up. The formula is ½ x TD/TV, where TD equals the number of minutes on Election Day allocated to voting and TV is the average number of minutes it takes a voter to cast a ballot. In the case of Florida, with a twelve-hour voting time on Election Day, TD is equal to 720. If it takes an average of 5 minutes to cast a ballot, then no voting booth should handle more than ½ x 720/5 = 72 voters per day. If it takes 3 minutes to cast a ballot, then a voting booth should be expected to handle 120 voters per day; if 7 minutes, then the voting booth could handle 51 voters.
How many voting booths are in Florida's counties? We can find this answer in the Election Administration and Voting Survey, administered by the EAC after each federal election since 2004. Among the 400+ items in the survey, counties are asked to report how many voting booths — which is the relevant statistic here — they possess. Counties by-and-large failed to report this in 2008, but there was much less missing data in 2010.
But, we do have to deal with missing data. In 2010, one county (Duval) did not report how many voting booths it possessed, and 11 others reported they had precisely zero booths. This takes us down to 55 Florida counties with plausible, non-missing values. In addition, seven counties reported a number of booths that was so much below that of the remaining counties that we have to rule them out as possibly erroneous. (These seven counties reported, on net, one voting booth per 1,434 registered voters, compared to 163 voters per voting booth in the remaining counties with usable answers.)
Thus, I focus on 48 Florida counties that seem to have usable data about voting booths. In these 48 counties, there were 40,783 voting booths serving over 6.6 million registered voters, or one voting booth for every 163 registered voters. Total turnout in these counties was 4.8 million, which works out to 117 voters per booth. One-quarter of these voters voted absentee, so if we assume only 3.6 million voters did so in-person, then each voting booth had to accommodate 88 voters. Finally, approximately half of Florida voters actually voted on Election Day. Thus, there were only 58 Election Day voters for each voting booth in the state.
How does this compare with the rest of the nation? Unfortunately, we can't run an apples-to-apples comparison, because we don't have comparable turnout data for other states in 2012. The best we can do is to compare the number of voting booths in counties nationwide with turnout in the 2010 election. When we do that, we see that the ratio of Election Day voters-to-voting booths for optically scanned ballots is 88:1, significantly above the comparable Florida ratio in 2012 of 58:1.
One last point about south Florida, where the reports of the longest lines originated on Election Day. Miami-Dade, the largest county in the state, is one of the counties that was excluded in the analysis above because of an implausibly small number of reported voting booths. In 2010, Miami-Dade reported it had only 416 voting booths in 799 precincts to accommodate an Election Day turnout of over 443,000 voters, for a voter-to-booth ratio of 1,066:1. In all likelihood, Miami-Dade had nearly 5,600 booths, which would be consistent with 799 precincts. Thus, Miami-Data most likely had something like an 80:1 radio of voters-to-voting booths. Broward County did not report how many voting booths it had; Palm Beach County reported having 5,850 booths, which works out to 48 Election Day voters per voting booth.
Assuming the numbers reported in the EAVS are mostly accurate — with the exceptions noted above and accounted for — then the number of voting booths is consistent with most of the state having no lines at the polls on Election Day, so long as the average time to vote is five minutes or less. If it takes longer on average, then the number of voting booths is insufficient. There were complaints about the length of the Florida ballot in 2012, but from my own examination of sample ballots posted on various web sites, it is easy to imagine that the average voting time was around five minutes.
This entire exercise could simply be a matter of performing a "garbage-in/garbage-out analysis," especially if the reports of the number of voting booths are inaccurate. However, the numbers reported in Florida are consistent with those reported in other states. Thus, until better data definitely comes along, I will stand by this analysis. And, if the analysis performed here is accurate, then it is hard to argue that the long lines on Florida on Election Day were caused by an under-supply of voting places, or even the ballots being long.
This entry was posted in Uncategorized on November 14, 2012 by cstewart.
← Some survey-based evidence about waiting in line to vote Pew survey on the voting process →


text:
Q: GZip encoding - what are the potential issues (old versions of IE etc)? I can vaguely remember that there are certain older versions of certain browsers that do weird things with GZip encoding - in particular I seem to recall a bug in IE which resulted in JavaScript sent over GZip getting mangled.
Vague recollections aren't much practical use though. Does anyone know exactly what kind of issues there are and which user agents they affect?

A: Which browsers can handle Content-Encoding: gzip
Some common htaccess rules for a starter
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

A: Basically there are two things you need to do:

*

*Ensure the browser accepts GZip encoding. See Supercharging Javascript, Part 2: GZip Everything for a PHP example and

*Handle buggy versions of IE when dealing with secure content. See Supercharging Javascript, Part 6: The Internet Explorer Problem.

Although these examples are in PHP the principles are universal. You don't say what language you're using.

redpajama_set_name: RedPajamaStackExchange


From entertaining to relaxing, this solid cotton curtain panel is the perfect solution to add the final touch to any space in your home.
Sold individually. Hang on a rod up to 1 1/4" in diameter. Cotton. Machine wash, line dry. Imported.


text:
Arc Summaries
emilyannimes.com
Most Recent Chapter: The White Rose of Fiorazzurro Chapter 30
Digital Merge: Chapter 38
Digital Merge
Chapter 38 (or, "Mistakes")
Tama and his friends hadn't thought about enlisting somebody to stay awake as a guard. They had figured they wouldn't need to. The cards themselves would stand guard.
Dvorak Romanov stood on Disasterville's gate, an entire deck of Digital Merge heroes in his suit pocket and a smile on his face. From here, he could see all of Disasterville. He liked playing with Isabel Gonzalez. But more importantly, he liked playing with the five kids she had chosen as her friends.
He hated it when he was tampered with. All he wanted at this point was to be left alone, but he couldn't just give up his job. He could, however, slack at it for the next millennia or so...which was what he had done, considering every job as a two-week vacation to a new universe. He would stick around long enough to get to know the population from his invisible standpoint and then move on. Sometimes, the worlds he went to weren't interesting at all -- Sarah usually classified his world as dead and picked one guardian for both worlds. And sometimes, he would have to suck it up and play guardian, which meant two weeks of dodging QWERTY's calls and ultimately putting an ends to both worlds as they merged.
At least he didn't have to be involved in any separations. Those were almost worse than collisions.
Regardless, he hadn't had any troubles with his long standing vacation -- until Isabel Gonzalez had showed up. He hated New York City. And he knew Sarah loved it. Both worlds in case 560 had been so similar that he had just went to world A and hid out in an abandoned subway station, hoping to stay there until it all blew over. If the substitute couldn't help and was stuck with his or her (or whatever) job, then there would be no substitute. But Sarah hadn't had any of that -- she had sent hints to the guardian Carissa Lopez, hints that made it possible for her to find him hiding out in City Hall.
Instead of staying hidden at that point, he had gotten mad, transformed all of New York City into his playground. And it would have stayed that way, except Carissa had then asked Ariana's help for getting into limbo. Operation Colemak had overridden his substitute role -- something that made him even madder than the substitute role in the first place. And Isabel Gonzalez had become the substitute in Carissa's place, ensuring Dvorak couldn't erase her best friend and taking the hit instead.
And Dvorak hated her for it.
He reached into his pocket and pulled out his communicator. Dvorak hadn't taken long in figuring out their plan: he could see how the cards were laid out. He could stay out here and eliminate all of their cards, giving them not a fighting chance in saving this world. But that would be just too rude and just too easy. Miss Gonzalez was already gone, anyway. He might as well prolong their suffering and snuff out their world at the last second.
He hated Sarah, but she was useful sometimes...for instance, she made sure that every member of her faction had the coordinates of every other member unless they were in limbo. Miss Gonzales was gone, sure, but there were still three QWERTY operatives in this realm, trying to protect their guardian. He selected one of the members and hit the center button, teleporting instantly to where they were.
He had figured he'd appear where the entire group was, but instead, he found himself on the town hall roof. Matsumoto Tamasine was there, facing away from Dvorak, looking out over the city in his modified street clothes and QWERTY jacket. The moon was overhead, hitting him at just the right angle, casting his shadow into Dvorak's path.
And all of a sudden, Dvorak knew.
He clenched his fist. This was no time for getting emotional. Even more so, he had to press on. This was just another hole in the plan, a hole that could be his end if the others ever discovered it. Sarah probably already knew, that good for nothing --
"You." Dvorak snapped back to reality. Tama had turned around.
He smiled. Time to put the facade back on. "What about me?"
Tama had his hands up, in a fighting position -- rather sloppy for a thirteen year old, like a puppy too big for his feet. "Why haven't you made me disappear yet?"
Dvorak wasn't sure what Tama was talking about until he remembered: this was mission 928, and he was messing with Isabel. He needed to keep this facade up. He could never tell anybody this secret. "Well, what if I don't want to make you disappear?"
Tama's hands went down. "Why don't you?"
He didn't have the answer for that. Not yet. "You think I'm the bad guy, don't you? That I just cause trouble for you and your friends."
"You sure do cause a lot of trouble. But I'm sure you have a reason for it." Tama took a few steps back, leaning against the short wall separating him from the long fall below. "How did you get here, anyway?"
"What does it matter to you? I'll always be the bad guy to you and your friends. You'll never be able to see past what I've done."
Tama remembered how Dvorak had taken over Dimitri, the man living in Brighton Beach; how he had interrupted their first mission and had almost re-established himself as a person in New York City. He caused stress and trouble wherever he went, but why was he? "I think I get it. You don't want to be a substitute anymore, do you? You just want to be a regular person."
"You know nothing!" Dvorak pointed his phone at Tama, intending to eliminate him, but the boy was quicker. He, instead, disappeared out of thin air. How had he done that?
Dvorak was furious now. He hated playing games. He was the substitute, and he made the rules.
He instead pointed his phone at the building below him and executed the command. Within three and a half seconds -- the normal execution time -- the entire building and its inhabitants had been transported to limbo. Dvorak landed on the ground. Stupid Matsumoto Tamasine, getting in his way. It was over now, though -- the guardian was in limbo.
Or so he thought.
Tama and Erika reappeared on the other side of town, diverted to the high school by the coordinates Canberra had sent before. "That was close," Tama said as he put Erika down -- he had been carrying her so the program could work.
Erika let herself collapse once her feet reached the ground. "Where are we?"
"The high school. The town hall -- Dvorak just made it disappear." Tama gritted his teeth. Jen had activated some of his code, but he, Rhiannon, Rikimo, and Rifka were now gone. It was just the two of them. Why couldn't he make Dvorak see?
"Are we safe?"
He turned back to her. "Call back your cards. It's too dangerous right now. We need to plan better."
Erika nodded and waved her hand; like magic, the cards returned to her hand. She paused to take a deep breath and realized she was still shaking. She had been safe. Had. "Now what?"
Tama tried to keep his own cool. "We need to get you into limbo, but without Dvorak. People can only come out of limbo when somebody goes in -- and not one of us, either. It has to be somebody from your world. When you go in, you'll get everybody else -- Canberra and Rikimo and Rhiannon and all of your friends -- and then we'll make sure your world stays the same as it once was."
"And then...what about me?"
He tried not to ramble. "You'll simply rewrite yourself back into your world. When limbo closes, instead of disappearing or going to QWERTY, you'll go back home. Everything will be the same again."
Erika put a hand to her chest. "I don't know if I can handle this. I feel really tight."
"You're probably stressed out." Tama put his hands on Erika's shoulders. "You're going to be okay. Just stay with me, okay?"
Erika looked into Tama's eyes and found the strength to nod. "As long as this nightmare will be over soon."
"It will be. I promise."
"Oh, I wouldn't be so sure about that." Within seconds, Dvorak was standing behind them. "Don't make any rash movements. I'd like to propose a deal."
Posted by Emily Imes at 7:38 PM
Labels: book 2, digital merge
Tweets by @WhatIsDvorak
The White Rose of Fiorazzurro: Chapter 1
The White Rose of Fiorazzurro: Prologue
Greetings from Limbo: Book 3 Announcement!


text:
Home / Publications / Thin on the Ground: Recalibrating EU-Turkey Engagement in Syria
Thin on the Ground: Recalibrating EU-Turkey Engagement in Syria
Christina Bache
Since the time that the popular uprisings in Syria mushroomed into a civil war, prospects for a negotiated political settlement have been thwarted because of the myriad diverging interests of the regime, local opposition groups, and regional and global actors, all of which are vying for power and influence in the country. Europe is deeply troubled by the human rights situation in the country. However, as currently organised, the EU lacks the foreign- and defence-policy mechanisms that would allow it to make a significant impact on the conflict.
Any chance of influencing the situation that the EU may have had in the beginning of the conflict dissipated relatively quickly. This paper recommends that the EU broadens its policy options and engages in 'linkage politics' with key powers, particularly Turkey, which has shared interests on certain fronts and direct influence on the ground in Syria. The EU has a long-standing relationship with Turkey, which was developed through the EU accession and customs union processes and more recently in connection with migration management.
Its concerns about Turkey's descent into authoritarianism notwithstanding, the EU should build on this relationship to promote, as much as possible, a democratic, stable, just and prosperous Syria and greater Middle East region. More specifically, this broader policy framework should emphasise deeper and more sustained coordination of humanitarian responses, border management and de-mining. It should also stress the need for inclusive economic growth as concerns both the displaced Syrian private sector operating in Turkey and its Turkish business counterpart.
Research Areas:
EU Foreign Policy
Niklas Nováky
Constantine Arv...
The Renewal of Vows: A New Transatlantic Chapter for Europe and America
Strategic Autonomy: Why It's Not About Europe Going it Alone
Antonios Nestoras
Political Warfare: Competition in the Cyber Era
Andreas Østhagen
The New Geopolitics of the Arctic: Russia, China and the EU
Subscribe to our newsletter, stay in touch
Through our work, we aim to inspire ideas for action and shape responses to European challenges.
Wilfried Martens
Privacy policy, Cookie Policy and Legal


Put my brembos on a while ago, overall happy with how they came up. Although they won't bloody stop squeeling! The front pads are making a terrible noise at low speed. They're the intima sr pads and they didn't come with and shims (assuming they're supposed to). Is it as simple as tracking down some shims or should I buy a different compound pad?
Anyway here's how they look.
I'm not normally a fan of Silver brakes but with that wheel combo they look amazing man!
Took the lib for a spin today and got some happy snaps. I'll be honest, I've got no real clue with taking photos. Here's how some turned out. unedited as I've got no clue how to do that either.
Also can someone help with attaching photo's, they come out huge and cut in half when I paste the Photobucket IMG.
Re: miboosta's GTB - ABS and Battery covers!
Fitted my battery and ABS covers today. Awesome fit and tidy up the bay pretty well IMO. I hate the blue silicon intake and I think I'm going to either buy/swap for some black ones.
Miboosta wrote: Fitted my battery and ABS covers today. Awesome fit and tidy up the bay pretty well IMO. I hate the blue silicon intake and I think I'm going to either buy/swap for some black ones.
If you don't mind me asking, where did you get them from and for how much? Can't find them anywhere.
They are genuine Subaru Parts used on high-end Japanese models. So either go to the dealer with the Part Numbers below, or somewhere like Garage 88 in Sydney who sell the genuine items much cheaper.


sample certificate of destruction confidential information fresh letter template.
free certificate of destruction template luxury elegant hard drive letter destructi.
sample solicitation letter for donations death word download intended donation letters to companies of destruction template.
new sample of certificate destruction acknowledgement letter templates free samples examples template templ.
landlord notice to vacate premises sample business letters day letter template release writing form of destruction.
cease and desist letter templates free template lab of destruction.
certificate of destruction templates free format download simple letter template.
best solutions of sample application letter for tax exemption in the bunch ideas rejecting request donation your rejection destruction template.
forwarders certificate of receipt template new employee plaint data destruction inspirational human letter.
sample loss of coverage letter from employer resume and cover destruction template.
free certificate of destruction template fresh ideas shredding elegant letter.
certificate of destruction templates free format download data template letter.
certificate of data destruction template letter.
chapter 8 forms imported and manufactured food program inspection image information to fill of the letter for voluntary destruction product description follows template.
destruction certificate template free templates of letter.
certificate of destruction templates free format download college template letter.


He is the recipient of MASH FICA Award for New Media Artist and Bismillah Khan SNA Award for Theatre Direction. He was nominated for Arte Laguna Prize, Italy, and Forecast Award, Germany. He has been on numerous artist residencies including PACT Zollverein (Germany), Tokyo Culture Creation Project (Japan), KMAT Residency (Australia), & Rote Fabrik (Prohelvetia, Switzerland). He has given prominent talks on his work at Performance Studies International '23 (Hamburg), University of Exeter (U.K.), Lasalle College of Art (Singapore), and National Drama Theatre (Lithuania), among others. He has also been on the jury of FICA Public Art Grant, ITFOK Kerala, & Theaterspektakel Switzerland. He is National School of Drama, India alumnus and CWIT scholar.


The world is changing. Globalization is the buzz word of the moment. And nowhere is this globalization more readily obvious than in the virtual worlds such as Second Life.
Bringing people together from all over the world regardless of race, religion or borders.
These virtual worlds allow people to interact like never before.
Imagine being able to travel the world from your office, bedroom or living room.


text:
Q: Java-JTable : how can I change the attributes of a specific cell (font, color...?)
Possible Duplicate:
Swing - Setting the color of a cell based on the value of a cell

I have a Spreadsheet class, containing a JTable and its TableModel.
And my main window contains this spreadsheet and a list of buttons, with for example a bold one.
I can successfully get the selected cell (see code below), but I have no idea of how to change its content and font, color etc.
public void actionPerformed(ActionEvent e)
{
    int rowToUpdate = -1, columnToUpdate = -1;
    for(int i = 0 ; i < tableToUpdate.getRowCount() ; i++)
        for (int j = 0 ; j < tableToUpdate.getColumnCount() ; j++)
            if(tableToUpdate.isCellSelected(i, j)){ rowToUpdate = i; columnToUpdate = j; }

    if(rowToUpdate >= 0 && columnToUpdate >= 0)
    {
        if(e.getSource == boldButton)
        {
             // Here, how to change the bold of the cell(rowToUpdate,columnToUpdate)
        }
    }
}

A: Couple things: first, the code you wrote could be a lot simpler.  JTable comes with getSelectedRow() and getSelectedColumn() methods out of the box, so no need to write the for loops yourself.
That being said, if you are just trying to change the way that the selected cell is rendered, you probably don't actually want to do any of this anyway.  The way to change the how a cell is rendered is to use a TableCellRenderer.  When JTables need to render a cell, they pass all the information about that cell (its value, whether or not it is selected, etc.) along to a TableCellRenderer.  There is a DefaultTableCellRenderer installed by default, which renders your cells as JLabels.  You can set your own renderer using setDefaultRenderer().  In your case, it should be very easy to extend DefaultTableCellRenderer, override getTableCellRendererComponent() to call super(), and then once super() returns, set the font to bold if the cell is selected.
The javadoc for JTable has a link to the JTable tutorial which has a special section on using custom renderers.  That tutorial (along with a bunch of other great Swing tutorials) can be found at http://docs.oracle.com/javase/tutorial/uiswing/components/table.html.


Formed by brothers Slim Jxmmi and Swae Lee, Rae Sremmurd is one of the main pillars of the American urban scene. Originating from Tupelo, Mississippi, the duo sold certified platinum with their debut album 'SremmLife' in 2015 and launched their best-known single, 'Black Beatles', one year later, which peaked at #1 in the U.S. Billboard Hot 100 while also making wave on an international scale with multiple Top 10 spots in a host of countries. Other highly acclaimed singles such as 'No Type', 'No Flex Zone' and 'Swang' also sold platinum and added to the duo's total of well over a billion Spotify streams, serving as a testament to the duo's incredible skill and popularity across the globe.


text:
Wskaźnik ubóstwa (z ang. misery index) – wskaźnik ekonomiczny stworzony przez ekonomistę Arthura Okuna (stąd też alternatywna nazwa: ang. Okun's Index). Jest to suma stopy bezrobocia oraz poziomu inflacji. Uważa się, że zarówno wyższa stopa bezrobocia, jak i wyższy poziom inflacji składają się na koszt ekonomiczny i społeczny, który musi ponieść państwo. Często niepoprawnie przypisuje się wyprowadzenie tego indeksu ekonomiście Robertowi Barro z Uniwersytetu Harvarda ze względu na stworzony przez niego wskaźnik ubóstwa Barro, który dodatkowo obejmuje PKB oraz stopy procentowe. Zazwyczaj w Stanach Zjednoczonych definiuje się wskaźnik ubóstwa w pewnym czasie (zależnym od długości kadencji prezydenta) oraz wskazuje momenty, kiedy był on najwyższy i najniższy.

Samemu wskaźnikowi brak jest podstaw naukowych, jednak jego wartość lub jej zmiany przed ważnymi wyborami determinują często ich wyniki. W licznych krajach w latach 1973–1974 (pierwszy szok naftowy) i potem w latach 1979–1980 (drugi szok naftowy) zarówno bezrobocie, jak i inflacja szybko wzrastały. W każdym z tych okresów wskaźnik ubóstwa był powiązany z gwałtowny, wzrostem cen ropy naftowej. Obwiniano za to rządy sprawujące wówczas władzę, które konsekwentnie w krajach demokratycznych ją traciły. Przykładami takich rządów, które padły ofiarą niezadowolenia obywateli ze wskaźnika ubóstwa są: rząd gaullistowski wymieniony w 1974 przez Giscarda d'Estainga, czy też holenderscy liberałowie wyparci przez lewicę. Podobna sytuacja miała miejsce w 1982, kiedy to konserwatywna CDU/CSU zastąpiła SPD, w Holandii liberałowie znowu doszli do władzy, a we Francji prym wiedli socjaliści pod przewodnictwem François Mitterranda. Często też z szybkim wzrostem wskaźnika ubóstwa wiąże się upadek Margaret Thatcher w 1990 r.

Wskaźnik ten jest krytykowany nie tylko za brak motywacji naukowej, ale także za zbytnie uogólnienia, które mogą niesłusznie warunkować poczucie dyskomfortu społecznego, kiedy brak jest ku temu podstaw. Bazując jedynie na stopie inflacji i bezrobocia, można jedynie nakreślić uproszczoną funkcję użyteczności. Tak więc sugeruje się, że rozsądnym byłoby włączenie do tej miary takich wskaźników jak np. stopa wzrostu gospodarczego czy sytuacja na giełdzie. Co więcej według teorii Okuna krzywe obojętności przeciętnego obywatela, wskazujące awersję do inflacji i bezrobocia są liniami prostymi o współczynniku kierunkowym -1 (krańcowa stopa substytucji wynosi jeden). W przeciwieństwie do modelu Okuna z liniami prostymi, tacy badacze jak Ducan MacRae czy William Nordhaus założyli, że w tym przypadku funkcja użyteczności powinna być funkcją kwadratową inflacji i bezrobocia.

Ubóstwo a przestępczość
Badania ekonometryczne wykazały silną korelację pomiędzy wskaźnikiem ubóstwa oraz poziomem przestępczości. Zbudowanie właściwego modelu może służyć zatem nie tylko do prognozowania stanu gospodarki, ale także sugerować spodziewany poziom przestępczości.

Wskaźnik ubóstwa w Polsce
Dane orientacyjne stworzone na podstawie danych statystycznych Głównego Urzędu Statystycznego na koniec każdego roku.

Powiązane wskaźniki
Występuje także dość silna zależność między Wskaźnikiem ubóstwa a Wskaźnikiem Przygnębienia, który jest upubliczniany przez Bureau of Inverse Technology.

Bibliografia
 Michael Burda, Charles Wyplosz, Makroekonomia. Podręcznik europejski, PWE, Warszawa, 2000.

Lovell, Michael C, Tien, Pao-Lin, Economic discomfort and consumer sentiment, Eastern Economic Journal, Winter 2000.

Ubóstwa
Ubóstwo

redpajama_set_name: RedPajamaWikipedia


text:
Downtown Phoenix's Roosevelt Row continues to attract developers, businesses
Catherine Reagor
The bustling Central Avenue and Washington Street hub of Roosevelt Row was recently voted the sixth most popular metro Phoenix intersection
Roosevelt Row garnered one of the American Planning Association's "Great Places" designations last year
Last week, plans for one of the area's historic buildings – the Knipe House - got the nod to be purchased and preserved as part of a $151 million project
Boarded-up buildings and weed-filled vacant lots were the norm in metro Phoenix's oldest historic neighborhood not too long ago.
Now, the 100-plus-year-old Roosevelt District in downtown Phoenix has evolved before our eyes into Roosevelt Row, one of the most popular neighborhoods in not only metro Phoenix but the U.S.
The bustling Central Avenue and Roosevelt Street hub of Roosevelt Row was recently voted the sixth most popular metro Phoenix intersection by Urban Land Institute Arizona. The area didn't even make the list 10 years ago.
Roosevelt Row garnered one of the American Planning Association's "Great Places" designations last year - Phoenix's first and only one.
Hotspots Rentals just ranked Roosevelt Row as the 24th "coolest" neighborhood in the U.S. based on transit, walkability, entertainment and cost of living. It was the only Arizona neighborhood to make the ranking.
Last week, plans for one of the area's historic buildings – the Knipe House - got City Council approval to be purchased and preserved as part of a $151 million project.
In October, construction started on the 30-story apartment tower Link Phx on the eastern end of Roosevelt Row. And one of the neighborhood's new apartment complexes, Alta Fillmore, just sold for a record price for downtown Phoenix.
"We are flooded with requests for information and development proposals for Roosevelt Row," said David Krietor, CEO of Downtown Phoenix Inc. "The biggest challenge is not squeezing out the area's artistic vibe."
Walking the art walk
While we Phoenix locals love "RoRo" for its bars and restaurants, most people know the area best for its First Friday art walk.
The tour now has dozens of venues and draws big crowds on Fridays. Many of Roosevelt's vacant lots and rundown buildings have been filled up by galleries, restaurants and bars.
The neighborhood has evolved so much in the past decade because area business owners like monOrchid gallery owner Wayne Rainey and Carly's Bistro owner Carly Wade Logan are fierce protectors of its art scene and historic buildings.
Developers are drawn to Roosevelt Row for both.
"We have a strong desire to save properties with significant history," said Niels Kreipke of Desert Viking, which renovated the popular retail and eatery hub Gold Spot Center at 3rd Avenue and Roosevelt. "We want to ensure Roosevelt holds onto its vast history and local business ownership."
Last week, the Phoenix City Council approved True North Holding's $3.56 million purchase of the city-owned Knipe House and land around it.
The developer plans to incorporate the house on 2nd Street near Roosevelt Street into an office, retail and housing development. A 19-story tower and two smaller buildings are planned for the project, named Ro2.
The 1909 Knipe House is now one of the last remaining historic buildings in Roosevelt Row that hasn't been redeveloped.
Seeing Roosevelt Row grow
Living and working adjacent to Roosevelt Row, it's been easy to take its rebirth for granted because I see it daily.
Recently, Roosevelt Row lost a court fight to become a business-improvement district, paid for by a new property tax. The boundaries would have stretched roughly from Fillmore to Moreland streets and Seventh Street to Seventh Avenue.
Many supporters from the city and the neighborhood are disappointed.
But Roosevelt Row's evolution is heartening, and continues despite the loss.
Recently on my way home from work, I noticed several restaurants with crowded patios and new apartments and condominiums with people on their balconies in Roosevelt Row.
A decade ago, I would have been staring at vacant lots and rundown buildings.
MORE ON REAL ESTATE, FROM STREET SCOUT:
Cool home: Duplex makes 'perfect' home for 7
Downtown Phoenix apartments sell for record price
$2.3M PV home features lush backyard oasis


A collection of secrets, insights, tips, valuable lessons, experiences and "True Hollywood Stories" that Rick Marcelli experienced talent buyer, and TV Producer. Rick has represented some of the biggest names in music, acting, comedy and magic. Most notably, he launched the career of the biggest star the magic world has ever known, Mr. David Copperfield.
"Rick Marcelli is the genius behind the biggest names in magic. He's one of the top managers in the industry!"


text:
Perivale tube station
The curved station building designed by Brian Lewis
Location of Perivale in Greater London
London Borough of Ealing
Number of platforms
Fare zone
London Underground annual entry and exit
2.24 million[1]
Listed status
Listing grade
Entry number
TfL station info page
51°32′12″N 0°19′24″W / 51.5366°N 0.3233°W / 51.5366; -0.3233Coordinates: 51°32′12″N 0°19′24″W / 51.5366°N 0.3233°W / 51.5366; -0.3233
London transport portal
Perivale is a London Underground station in Perivale in north-west London. It is located on the West Ruislip branch of the Central line, between Greenford and Hanger Lane stations, and is in Travelcard Zone 4.
3 TV appearances
The Great Western Railway opened "Perivale Halt" on 2 May 1904 but it was closed when the current London Underground station was opened on 30 June 1947. It was designed in 1938 by Brian Lewis, later Chief Architect to the Great Western Railway, but completion was delayed by the Second World War. The finished building was modified by the architect Frederick Francis Charles Curtis. A planned tower and extended wing were never constructed, leaving the station smaller than intended.[3] In July 2011 the station was one of 16 London Underground stations that were made a Grade II listed building.[4]
London Buses route 297 serves the station.
The front of the station featured briefly in the first episode of BBC TV show The Thick Of It (2005).[5]
Wikimedia Commons has media related to Perivale tube station.
Island platform looking west, with some refurbishment work ongoing, June 2008.
Island platform looking east, with former GWR tracks used mostly by freight on the extreme left.
Roundel on westbound platform face.
^ a b c d e "Multi-year station entry-and-exit figures" (XLSX). London Underground station passenger usage data. Transport for London. January 2018. Retrieved 22 July 2018.
^ Historic England. "Perivale Underground Station (1400747)". National Heritage List for England. Retrieved 3 April 2015.
^ "London's listed Tube stations". The Telegraph. Retrieved 25 June 2012.
^ "16 London Underground Stations Listed At Grade II". English Heritage. Retrieved 28 July 2011.
^ "The Thick of It Filming Locations :: Find That Location". findthatlocation.com. Retrieved 25 October 2015.
Preceding station
Following station
towards West Ruislip
Central line
Ruislip Branch
Hanger Lane
towards Epping, Hainault
or Woodford (via Hainault)
This article about the London Underground is a stub. You can help Wikipedia by expanding it.


text:
Front-Line Managers' Strategizing: A Case Study of a High Street Optical Retailer
Elbasha, Tamim (2015). Front-Line Managers' Strategizing: A Case Study of a High Street Optical Retailer. PhD thesis The Open University.
DOI: https://doi.org/10.21954/ou.ro.0000ef64
The present study investigates how Front-Line Managers (FLMs) accomplish strategizing practice and praxes in their day-to-day work at a high street optical retailer (Optica). Despite increasing research on strategizing work, we are still ill-informed about the phenomenon at the lower, non-senior management level. Data was collected over 12 months by interviewing 24 FLMs and four middle managers; by observing FLMs in their stores and during five regional monthly meetings; and by collecting internal documents and external industry reports covering seven years. The data was analysed using thematic coding whereby both the agent's context analysis and conduct analysis methodological bracketing techniques were mobilised.
Findings from the present research reveal that FLMs strategize by carrying out strategy-realising work in the form of localising practices and praxes. The organisation's strategy constrains the localising work of FLMs, while their professional experience enables it. The organisation's strategy is drawn up and enacted in the day-to-day work of FLMs when they are localising.
The present study claims four main theoretical contributions to the SaP literature. Firstly, it advances strategizing as strategy-realising work by defining strategizing as a social strategy-realising praxis that transposes the abstract strategy statement into the concrete conduct. Secondly, it elaborates on a notion of strategy as a combination of external and internal social structure explaining strategy heterogeneity. Thirdly, this research extends current SaP literature by discussing the role of structural context in the tension between normativity and creativity. Fourthly, it advances a framework illustrating strategy-realising as a structuration process, composed of multiple and overlapping structuration cycles. The framework illustrates how structural context and strategic agency co-depend and co-emerge in strategizing practices and praxis. Methodological contributions are made in two ways. First, the present study offers a critical assessment of employing Strong Structuration Theory to conduct empirical SaP studies. Second, it elaborates a data analysis model that combines abductive logic with the agent's context analysis and conduct analysis methodological bracketing techniques.
Download Final Version (PDF / 8MB)
Management; Organisational behaviour; retail; retail managers
Faculty of Business and Law (FBL) > Business


This is a list of organisations that offer music funding. We'll add more as we hear about them.
This fund is designed to assist UK-registered independent music companies with marketing campaigns when looking to introduce successful UK music projects overseas.
Designed to help you build your career by providing grants of £500 – £1500 to fund opportunities allowing you to focus on developing your artistic and professional development at a crucial point in your career. It can support opportunities such as short courses, workshops, training and time-limited periods of coaching with an expert in your field both in the UK or internationally.
Grants of up to £2,000 to support exceptionally talented artists with their career ambitions. From vocal coaching to support for touring or video production, this fund can be used to support opportunities which will have a significant impact on your creativity and career.
Supports the development of outstanding songwriters and composers of all genres and backgrounds at different stages of their career. The fund can support projects by songwriters, composers, or artists, bands, producers and performers who are writing their own music or commissioning others.
Offers UK artists and bands an innovative financing model with hands-on support from PledgeMusic to set up a direct-to-fan campaign, as well as grant support of up to £2500 from PRS Foundation to supplement funds raised from your campaign.
An opportunity for emerging artists that make outstanding music to receive support in the form of a grant of up to £1,500 to assist you with creative goals and career development, mentoring from an experienced, successful working artist (including Gilles Peterson, Four Tet, Floating Points and Koreless) and 500 x 12" vinyl manufactured in association with MODO – experts in creative packaging.
Vital support for artists, bands, songwriters and producers based in England and Scotland who have been invited to play an international showcasing festival or conference.
Arts and creative industries funding ranging between £1K – £100,000K for projects that develop skills or artistic practice; that create something new and of high quality; either present work to audiences or which try to develop and reach new audiences; encourage more people to get involved in artistic and creative activity.
Funding for a broad range of projects across the arts for individuals and organisations including performance, production, professional development, publishing, research and development, sector development, talent development, touring.
Artistic Development opportunities are available for emerging deaf and/or disabled musicians via this new artistic development programme.
The Unsigned Guide have just released their free Essential Guide to Music Funding which has been revised for 2016.
This 37 page document summarising many of the music funding options available to bands, musicians, labels and managers and contains contributions from Arts Council England, BPI, PRS For Music Foundation, Creative Industry Finance, Help Musicians UK, Music Tank, Transmit Start-Ups, Musicians' Union, Pledge Music and Remi Harris Consulting.
Since first publishing their music industry directory in 2003, The Unsigned Guide has become an essential resource for aspiring bands & artists, producers, new record labels or promoters starting out and anyone else working towards a career in the music business.
Along with maintaining their comprehensive online UK music directory, listing over 8,500 contacts spanning the music business, they also occasionally publish free PDF guides offering crucial and valuable advice to assist independent artists in getting to grips with the music business.
The Unsigned Guide Editor Louise Dodgson said: "We are regularly on the receiving end of enquiries from bands and musicians wanting to make a living from their craft, asking how they can be supported financially. So we set about gathering this info together to make sure artists are aware of the options and support out there that they can tap into".
Bands and musicians can obtain their free copy of The Unsigned Guide's Essential Guide to Music Funding by emailing louise@theunsignedguide.com.