text:
Q: UIImage size variation when picked from UIImagePickerController While picking image from UIImageController and calculating its size there is variation in image size i.e. size of image in disk is different.
Is there a way to get proper size?
What I have tried -

*

*Converting image to data using UIImagePNGReprensentation & UIImageJPEGReprensentation. The problem with this approach -

a. This approach is memory consuming, so doesn't looks good.
b. Size vary, I can understand that it convert image to data and then calculate size, so size is different.
But whatever I have searched, every accepted answers is around this only.

*Using ALAssetsLibrary to get the image size, but size calculated from this also doesn't match the disk size.

I have used following method - assetForURL: resultBlock:^(ALAsset *asset) failureBlock:

*Using CGImageRef methods CGImageGetBytesPerRow, but this also does't give desired result.

Any other approach which I have missed?
EDIT -
So Here are size difference -
when I check a image size in finder - 5.3 MB
when I check UIImage object size using -
UIImageJPEGRepresentation (image. 1.0) - 2.29 MB
When I check image size using ALAsset Library - 4.4 MB

A: UIImageJPEGRepresentation & UIImagePNGReprensentation is using different compression method and ratio for images so that's why you are getting different sizes of images.
Also ALAssetLibrary uses different image compression method for image that's why you get different sizes of image every time.
Just use any of the three methods to get image size don't try to compare them. Because all three methods use their own image compression methods.

A: Like other answers in the post, different image reading techniques will result in varying sizes when comparing on disk file size and in memory file size.
I suggest looking at this SO post.  The user is using NSFileSize attribute to read the "actual" size on disk.
I venture to say that there will always be a size difference between what is on disk vs. the size in memory due to the backing mechanism that is used to represent an image in memory vs. an image stored on disk.
You may want to alter your approach.  If your goal is to determine the image "size" in memory then you must measure the size against the compression mechanism you use.  If your goal is to determine the file "size" when it's on disk then I suggest asking the operating system to give you it's metadata (NSFileSize) about that image on disk.  Again, depending on the compression technique you used to save the image to disk, the size comparisons will vary.  Using NSFileSize will give you a definitive answer to the "actual" size of the image on disk using a compression technique be that JPEG, PNG, etc.

A: I needed something similar and ran into the same issue. Turns out tweaking the quality factor a bit gets this going.
UIImageJPEGRepresentation(image, 0.67)

Ideally the quality should be 1.0 for the image size to be calculated in the most precise form. Turns out it provides you abnormally large values for 1.0 quality.
I couldn't find this documented anywhere and had to keep the above solution in my Photos app. It has been working out okay for my use case. It's not ideal, you might need to further tweak this a bit to best suit your use case.

A: I had an issue where the image size of the captured image was so big I could not manage it so I had to resize it to my desired size... I am adding my code here
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    dispatch_async(dispatch_get_main_queue(), ^{
    for(UIView *v in imgView.subviews) {
        [v removeFromSuperview];
    }
    CGSize newSize=CGSizeMake(200, 200);
    UIImage *image = [info valueForKey: UIImagePickerControllerOriginalImage];
    UIGraphicsBeginImageContext(newSize);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    [imgView setImage:newImage];

    [self.view layoutIfNeeded];
    [self.navigationController dismissViewControllerAnimated: YES completion: nil];
    });
}

redpajama_set_name: RedPajamaStackExchange


I love you but I'm not in love with you, I really do not have to be in love with you to love you.
Tomorrow, I could be in love with you but not love you.
Today, I love you & I'm in love with you.
Does not make sense right? but does it have to make sense?
I worry about falling "in love" because of the immeasurable pain of heartbreak.
I worry that I may not find love when I m old & grey.
I worry that about not having the capacity to love anybody anymore.
I worry about facing my former lovers, the ones I truly loved.
I gave love, I forsake love & sometimes I broke love.
I should be scared of love but surprisingly I still crave love.
I doubt if the love I crave even exists.
Love for me & for you the one I will love till the end of time.


text:
Museums at the Crossroads (MAC 29)
Cambridge and the Study of Netherlandish Art
The Low Countries and the Fens
M. Hale (ed.)
Add to basket ->
223 p., 96 colour ill., 210 x 297 mm, 2016
The publication is available.
Retail price: EUR 90,00 excl. tax
Nine essays explore the study and collecting of Netherlandish art in Cambridge.
The Speelman Fellowship in Netherlandish Art at Wolfson College, Cambridge, celebrated its fortieth anniversary in 2011. Holders of the Fellowship have included such world-renowned scholars as Dr Lorne Campbell of the National Gallery, London, Professor Joanna Woodall of the Courtauld Institute of Art, and Professor Ivan Gaskell of the Bard Institute in New York. They have all contributed to the present volume, which presents new research by no fewer than seven Speelman Fellows and is edited by the post's present incumbent.
Edward Speelman's endowment of the Fellowship in 1971 has crucially supplemented Cambridge's tradition of distinguished scholarship in the field. It also complements the important holdings of Dutch and Flemish works in the Fitzwilliam Museum and in Cambridge Colleges, a range of which are discussed in this volume. The eminent historian of Early Modern Art, Professor Jean Michel Massing of King's College, who has advised on the selection of Speelman Fellows for nearly forty years, also contributes an essay here.
Jean Michel Massing & Meredith McNeill Hale, The Speelman Fellowship and Netherlandish Art in Cambridge
Lorne Campbell, Antoine, the 'Grand Bâtard De Bourgogne', and his Portrait by Rogier Van Der Weyden
Joanna Woodall, 'Greater or lesser?' Tuning into the Pendants of the Five Senses by Jan Brueghel the Elderand his Companions
Ivan Gaskell, Fooled Again: Trompe l'Oeil Revisited
Maria-Isabel Pousão-Smith, Adriaen Brouwer's Hybrid Technique and Social Indeterminacy
Lindsey Shaw-Miller, 'Beautiful Secrets': Poetical Disclosure in the Work of Michael Sweerts (1618‒64)
Cordula van Wyhe, The Fabric of Female Rule in Leone Leoni's Statue of Mary of Hungary, c. 1556
Meredith McNeill Hale, Hollands hollende koe: The Political Satirist and Moral Conviction
Elenor Ling, The Dutch and Flemish Print Albums Compiled by Lord Fitzwilliam (1745‒1816) at the Fitzwilliam Museum
Art History (general)
This publication is also distributed by: ISD, Marston
Women Artists in Early Modern Italy
Barker Les vitraux de la première moitié du XVIe siècle conservés en Belgique
Vanden Bemden Cartons de vitraux du XVIIe siècle. La cathédrale Saint-Michel, Bruxelles
Vanden Bemden et al. Frauen-Kloster-Kunst
Hamburger et al. Optics, Ethics, and Art in the Thirteenth and Fourteenth Centuries
Kessler et al. Silver-Stained Roundels and Unipartite Panels before the French Revolution
Caen et al. Daniele Barbaro 1514-1570. Vénitien, patricien, humaniste
Lemerle-Pauwels et al.

redpajama_set_name: RedPajamaCommonCrawl


text:
'use strict';

var domv = require('../lib/domv');

function testParseHTMLDocumentResult(test, doc)
{
        var p;

        test.ok(doc.outerNode);
        test.ok(doc.innerNode);
        test.ok(doc.head);
        test.ok(doc.body);
        test.ok(doc.titleWrapped);
        test.ok(doc.titleWrapped.textContent); // a title element may not be empty
        p = doc.selectorAll('p');
        test.strictEqual(p.length, 1);

        test.strictEqual(doc.outerNodeName, 'html');
        test.strictEqual(doc.innerNodeName, 'body');
        test.strictEqual(doc.head.outerNodeName, 'head');
        test.strictEqual(doc.titleWrapped.outerNodeName, 'title');
        test.strictEqual(p[0].outerNodeName, 'p');

        test.ok(doc.isInnerNodeEqual(doc.body), 'body should be the inner node');
        test.ok(doc.isOuterNodeEqual(doc.innerNode.parentNode), 'body should be the child of html');
        test.ok(doc.isOuterNodeEqual(doc.head.parentNode), 'head should be the child of html');
        test.ok(doc.head.isNodeEqual(doc.titleWrapped.parentNode), 'title should be the child of head');
        test.ok(doc.body.isNodeEqual(p[0].parentNode), 'body should be the child of p');
}

function TestComponent(node, firstArg, secondArg)
{
        domv.Component.call(this, node);
        this.testAbc = node;
        this.firstArg = firstArg;
        this.secondArg = secondArg;
}
require('inherits')(TestComponent, domv.Component);

module.exports = {
        setUp: function (callback)
        {
                // nwmatcher which is used in jsdom for querySelector,
                // requires a documentElement to be present!

                // https://github.com/substack/node-browserify/issues/702
                this.document = global.document || require('jsdom').jsdom('');
                callback();
        },
        tearDown: function (callback)
        {
                callback();
        },
        'isSupported()': function(test)
        {
                test.throws(function(){ domv.isSupported(); }, domv.Exception);
                test.ok(domv.isSupported(this.document, false));
                test.ok(domv.isParseHTMLDocumentSupported());
                test.ok(domv.isSupported(this.document, true));
                test.done();
        },
        'mayContainChildren()': function(test)
        {
                var divNode = this.document.createElement('div');
                var textNode = this.document.createTextNode('foo');
                test.ok(!domv.mayContainChildren(null));
                test.ok(domv.mayContainChildren(divNode));
                test.ok(domv.mayContainChildren(domv.wrap(divNode)));
                test.ok(domv.mayContainChildren(this.document));
                test.ok(domv.mayContainChildren(this.document.createDocumentFragment()));
                test.ok(!domv.mayContainChildren(textNode));
                test.ok(!domv.mayContainChildren(this.document.createComment('comment')));

                test.throws(function(){ domv.mayContainChildren(null, true); }, domv.Exception);
                test.throws(function(){ domv.mayContainChildren(textNode, true); }, domv.Exception);

                test.done();
        },
        'wrap()': function(test)
        {
                var divNode = this.document.createElement('div');
                var div2Node = this.document.createElement('div');
                var wrapped;

                wrapped = domv.wrap(divNode);
                test.ok(wrapped instanceof domv.Component);
                test.ok(wrapped.outerNode === divNode);

                wrapped = domv.wrap(wrapped);
                test.ok(wrapped.outerNode === divNode);

                wrapped = domv.wrap([divNode, div2Node]);
                test.ok(wrapped[0].outerNode === divNode);
                test.ok(wrapped[1].outerNode === div2Node);

                test.throws(function(){ domv.wrap({}); }, domv.Exception);

                wrapped = domv.wrap(divNode, TestComponent);
                test.ok(wrapped instanceof domv.Component);
                test.ok(wrapped instanceof TestComponent);
                test.ok(wrapped.testAbc === divNode);

                wrapped = domv.wrap(divNode, TestComponent, 'bla', 5);
                test.ok(wrapped instanceof domv.Component);
                test.ok(wrapped instanceof TestComponent);
                test.ok(wrapped.testAbc === divNode);
                test.ok(wrapped.firstArg === 'bla');
                test.ok(wrapped.secondArg === 5);

                test.done();
        },
        'wrap() constructor args': function(test)
        {
                function Foo(node)
                {
                        var i;
                        domv.Component.call(this, node);

                        this.sum = 0;

                        for (i = 1; i < arguments.length; ++i)
                        {
                                this.sum += arguments[i]; // + undefined = NaN
                        }
                }
                require('inherits')(Foo, domv.Component);

                function bla(n)
                {
                        return n * (n + 1) / 2;
                }

                var divNode = this.document.createElement('div');

                test.strictEqual(domv.wrap(divNode, Foo).sum                           , bla(0));
                test.strictEqual(domv.wrap(divNode, Foo, 1).sum                        , bla(1));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2).sum                     , bla(2));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3).sum                  , bla(3));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4).sum               , bla(4));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4, 5).sum            , bla(5));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4, 5, 6).sum         , bla(6));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4, 5, 6, 7).sum      , bla(7));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4, 5, 6, 7, 8).sum   , bla(8));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4, 5, 6, 7, 8, 9).sum, bla(9));
                test.strictEqual(domv.wrap(divNode, Foo, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10).sum, bla(10));
                test.throws(function(){ domv.wrap(divNode, Foo, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); }, domv.Exception);

                test.done();
        },
        'wrap([]) constructor args': function(test)
        {
                function Foo(node)
                {
                        var i;
                        domv.Component.call(this, node);

                        this.sum = 0;

                        for (i = 1; i < arguments.length; ++i)
                        {
                                this.sum += arguments[i]; // + undefined = NaN
                        }
                }
                require('inherits')(Foo, domv.Component);

                function bla(n)
                {
                        return n * (n + 1) / 2;
                }

                var divNode = this.document.createElement('div');

                test.strictEqual(domv.wrap([divNode], Foo)[0].sum                           , bla(0));
                test.strictEqual(domv.wrap([divNode], Foo, 1)[0].sum                        , bla(1));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2)[0].sum                     , bla(2));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3)[0].sum                  , bla(3));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4)[0].sum               , bla(4));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4, 5)[0].sum            , bla(5));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4, 5, 6)[0].sum         , bla(6));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4, 5, 6, 7)[0].sum      , bla(7));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4, 5, 6, 7, 8)[0].sum   , bla(8));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4, 5, 6, 7, 8, 9)[0].sum, bla(9));
                test.strictEqual(domv.wrap([divNode], Foo, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)[0].sum, bla(10));
                test.throws(function(){ domv.wrap([divNode], Foo, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); }, domv.Exception);

                test.done();
        },
        'unlive()': function(test)
        {
                var parent = this.document.createElement('div');
                var child = this.document.createElement('p');
                var result, resultUnlive;
                parent.appendChild(child);

                result = parent.getElementsByTagName('p');
                resultUnlive = domv.unlive(result);

                test.strictEqual(result.length, 1);
                test.strictEqual(resultUnlive.length, 1);
                test.ok(result[0] === child);
                test.ok(resultUnlive[0] === child);

                parent.removeChild(child);
                test.strictEqual(result.length, 0);
                test.strictEqual(resultUnlive.length, 1);
                test.ok(resultUnlive[0] === child);

                test.done();
        },
        'create()': function(test)
        {
                var wrapped;

                test.throws(function(){ domv.create(); }, domv.Exception);
                test.throws(function(){ domv.create(this.document);}.bind(this), domv.Exception);

                wrapped = domv.create(this.document, 'div');
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName.toLowerCase(), 'div');
                test.strictEqual(null, wrapped.outerNode.getAttribute('class'));

                wrapped = domv.create(domv.wrap(this.document), 'div', 'Test');
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName.toLowerCase(), 'div');
                test.strictEqual('Test', wrapped.outerNode.getAttribute('class'));

                wrapped = domv.create(this.document, 'div', 'Test', {'data-test': 5}, 'Hi!');
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName.toLowerCase(), 'div');
                test.strictEqual('Test', wrapped.outerNode.getAttribute('class'));
                test.strictEqual('5', wrapped.outerNode.getAttribute('data-test'));
                test.strictEqual('Hi!', wrapped.outerNode.textContent);
                test.strictEqual(1, wrapped.outerNode.childNodes.length);

                wrapped = domv.create(this.document, 'div', 'Test', [{'data-test': 5}, 'Hi!']);
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName.toLowerCase(), 'div');
                test.strictEqual('Test', wrapped.outerNode.getAttribute('class'));
                test.strictEqual('5', wrapped.outerNode.getAttribute('data-test'));
                test.strictEqual('Hi!', wrapped.outerNode.textContent);
                test.strictEqual(1, wrapped.outerNode.childNodes.length);

                wrapped = domv.create(this.document, 'div', 'Test', [[[{'data-test': 5}]], ['Hi!']]);
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName.toLowerCase(), 'div');
                test.strictEqual('Test', wrapped.outerNode.getAttribute('class'));
                test.strictEqual('5', wrapped.outerNode.getAttribute('data-test'));
                test.strictEqual('Hi!', wrapped.outerNode.textContent);
                test.strictEqual(1, wrapped.outerNode.childNodes.length);

                wrapped = domv.create(this.document, '#text');
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName, '#text');
                test.strictEqual(wrapped.outerNode.nodeType, domv.NodeType.TEXT);

                wrapped = domv.create(this.document, '#text', 'abc def', 'ghj');
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName, '#text');
                test.strictEqual(wrapped.outerNode.nodeType, domv.NodeType.TEXT);
                test.strictEqual(wrapped.outerNode.data, 'abc defghj');

                wrapped = domv.create(this.document, '#comment', 'abc def', 'ghj');
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName, '#comment');
                test.strictEqual(wrapped.outerNode.nodeType, domv.NodeType.COMMENT);
                test.strictEqual(wrapped.outerNode.data, 'abc defghj');

                wrapped = domv.create(this.document, '#document-fragment', 'abc def', domv.create(this.document, 'div'));
                test.ok(wrapped.isDOMVComponent);
                test.strictEqual(wrapped.outerNode.nodeName, '#document-fragment');
                test.strictEqual(wrapped.outerNode.nodeType, domv.NodeType.DOCUMENT_FRAGMENT);
                test.strictEqual(wrapped.outerNode.firstChild.nodeType, domv.NodeType.TEXT);
                test.strictEqual(wrapped.outerNode.firstChild.data, 'abc def');
                test.strictEqual(wrapped.outerNode.lastChild.nodeName.toLowerCase(), 'div');

                test.throws(function(){ domv.create(this.document, '#document'); }.bind(this), domv.Exception);
                test.throws(function(){ domv.create(this.document, '#cdata-section'); }.bind(this), domv.Exception);
                test.throws(function(){ domv.create(this.document, '#someunknownthing'); }.bind(this), domv.Exception);

                test.done();
        },
        'text()':function(test)
        {
                var wrapped;

                test.throws(function(){ domv.text(); });

                wrapped = domv.text(this.document);
                test.strictEqual(wrapped.outerNodeType, domv.NodeType.TEXT);
                test.strictEqual(wrapped.outerNode.data, '');

                wrapped = domv.text(this.document, 'foo');
                test.strictEqual(wrapped.outerNodeType, domv.NodeType.TEXT);
                test.strictEqual(wrapped.outerNode.data, 'foo');

                wrapped = domv.text(domv.wrap(this.document), 'foo');
                test.strictEqual(wrapped.outerNodeType, domv.NodeType.TEXT);
                test.strictEqual(wrapped.outerNode.data, 'foo');

                wrapped = domv.text(this.document, 'foo', 'bar');
                test.strictEqual(wrapped.outerNodeType, domv.NodeType.TEXT);
                test.strictEqual(wrapped.outerNode.data, 'foo bar');

                test.strictEqual(domv.text(this.document, 'foo', 'bar', 'baz').outerNode.data, 'foo bar baz');
                test.strictEqual(domv.text(this.document, 'foo', 'bar', 'baz', 'qux').outerNode.data, 'foo bar baz qux');
                test.strictEqual(domv.text(this.document, 'foo', 'bar', 'baz', 'qux', 'norf').outerNode.data, 'foo bar baz qux norf');
                test.strictEqual(domv.text(this.document, 'foo', 'bar', 'baz', 'qux', 'norf', ' alice').outerNode.data, 'foo bar baz qux norf  alice');
                test.strictEqual(domv.text(this.document, 'foo', 'bar', 'baz', 'qux', 'norf', ' alice', 'bob').outerNode.data, 'foo bar baz qux norf  alice bob');

                test.done();
        },
        'createHtmlDomDocument()': function(test)
        {
                var doc = domv.createHtmlDomDocument();
                test.strictEqual(doc.nodeType, domv.NodeType.DOCUMENT);
                test.strictEqual(doc.lastChild.nodeName.toLowerCase(), 'html');
                test.strictEqual(doc.lastChild.firstChild.nodeName.toLowerCase(), 'head');
                test.strictEqual(doc.lastChild.lastChild.nodeName.toLowerCase(), 'body');
                test.done();
        },
        'createHtmlDomDocument(minimal=true)': function(test)
        {
                var doc = domv.createHtmlDomDocument(true);
                test.strictEqual(doc.nodeType, domv.NodeType.DOCUMENT);
                test.strictEqual(doc.lastChild.nodeName.toLowerCase(), 'html');
                test.strictEqual(doc.lastChild.childNodes.length, 0);
                test.done();
        },
        'parseHTMLDocument()': function(test)
        {
                var doc = domv.parseHTMLDocument(
                          '<!DOCTYPE html>'
                        + ''
                                + ''
                                        + '<title>domv Unit Tests</title>'
                                        + ''
                                        + ''
                                + ''
                                + ''
                                        + '
something
'
                                + ''
                        + ''
                );

                test.ok(doc.document !== this.document);
                testParseHTMLDocumentResult(test, doc);
                test.done();
        },
        'parseHTMLDocument() with given Document': function(test)
        {
                var doc = domv.parseHTMLDocument(
                          '<!DOCTYPE html>'
                        + ''
                                + ''
                                        + '<title>domv Unit Tests</title>'
                                        + ''
                                        + ''
                                + ''
                                + ''
                                        + '
something
'
                                + ''
                        + '',
                        this.document
                );

                test.ok(doc.document === this.document);
                testParseHTMLDocumentResult(test, doc);

                doc = domv.parseHTMLDocument(
                          '<!DOCTYPE html>'
                        + ''
                                + ''
                                        + '<title>domv Unit Tests</title>'
                                        + ''
                                        + ''
                                + ''
                                + ''
                                        + '
something
'
                                + ''
                        + '',
                        domv.wrap(this.document)
                );

                test.ok(doc.document === this.document);
                testParseHTMLDocumentResult(test, doc);

                test.throws(function()
                {
                        doc = domv.parseHTMLDocument(
                                  '<!DOCTYPE html>'
                                + ''
                                        + ''
                                                + '<title>domv Unit Tests</title>'
                                                + ''
                                                + ''
                                        + ''
                                        + ''
                                                + '
something
'
                                        + ''
                                + '',
                                'invalid param'
                        );
                }, domv.Exception);

                test.done();
        },
        'parseHTMLSnippit()': function(test)
        {
                var fragment = domv.parseHTMLSnippit(this.document, '
def

ghj
');
                test.strictEqual(fragment.outerNodeType, domv.NodeType.DOCUMENT_FRAGMENT);
                test.strictEqual(fragment.firstChild.outerNodeName, 'div');
                test.strictEqual(fragment.firstChild.getAttr('class'), 'abc');
                test.strictEqual(fragment.firstChild.textContent, 'def');
                test.strictEqual(fragment.lastChild.outerNodeName, 'p');
                test.strictEqual(fragment.lastChild.textContent, 'ghj');
                test.strictEqual(fragment.childNodes.length, 2);

                fragment = domv.parseHTMLSnippit(domv.wrap(this.document), '
def

ghj
');
                test.strictEqual(fragment.outerNodeType, domv.NodeType.DOCUMENT_FRAGMENT);
                test.strictEqual(fragment.firstChild.outerNodeName, 'div');
                test.strictEqual(fragment.firstChild.getAttr('class'), 'abc');
                test.strictEqual(fragment.firstChild.textContent, 'def');
                test.strictEqual(fragment.lastChild.outerNodeName, 'p');
                test.strictEqual(fragment.lastChild.textContent, 'ghj');
                test.strictEqual(fragment.childNodes.length, 2);

                test.throws(function(){ domv.parseHTMLSnippit(null, '
def

ghj
'); }, domv.Exception);
                test.throws(function(){ domv.parseHTMLSnippit('invalid param', '
def

ghj
'); }, domv.Exception);

                test.done();
        },
        'throw new domv.Exception()': function(test)
        {
                var exception;

                exception = new domv.Exception(Error('Fooooo bla'));
                test.strictEqual(exception.message, 'Fooooo bla');
                test.strictEqual(exception.name, 'domv.Exception');
                test.ok(exception.toString());

                test.done();
        },
        'cssStringEscape()': function(test)
        {
                test.strictEqual(domv.cssStringEscape('hello'), '"hello"');
                test.strictEqual(domv.cssStringEscape('hello', true), '"hello"');
                test.strictEqual(domv.cssStringEscape('hello', false), 'hello');
                test.strictEqual(domv.cssStringEscape('foo"bar', true), '"foo\\"bar"');
                test.strictEqual(domv.cssStringEscape('foo\\bar', true), '"foo\\\\bar"');
                test.strictEqual(domv.cssStringEscape('foo"bar\nhmm\rbla', true), '"foo\\"bar\\a hmm\\d bla"');
                test.done();
        },
        'shorthand()': function(test)
        {
                test.throws(function(){ domv.shorthand(); }, domv.Exception);
                // the rest is tested in Component.js
                test.done();
        },
        'isLeftMouseButton()': function(test)
        {
                /*jshint -W016 */
                test.throws(function(){ domv.isLeftMouseButton(); }, domv.Exception);

                test.ok(domv.isLeftMouseButton({
                        button: 0 // left
                }));

                test.ok(! domv.isLeftMouseButton({
                        button: 2 // right
                }));

                test.ok(domv.isLeftMouseButton({
                        buttons: 1 | 2 // left and right
                }));

                test.ok(! domv.isLeftMouseButton({
                        buttons: 2 // right only
                }));

                test.done();
        }
};

redpajama_set_name: RedPajamaGithub


Children of Lucifer explores the historical origins of Satanism, the "anti-religion" that adopts Satan, the Judeo-Christian representative of evil, as an object of veneration. Ruben van Luijk traces its development from a concept invented by the Christian church to demonize its internal and external competitors, to a positive (anti-)religious identity embraced to varying degrees by groups in the modern West. Van Luijk offers a comprehensive intellectual history of this long and unpredictable trajectory; a story that involves Romantic poets, radical anarchists, eccentric esotericists, Decadent writers, and schismatic exorcists, among others, culminating in the establishment of the Church of Satan by carnival entertainer Anton Szandor LaVey. Yet, he argues, this story is more than just a collection of colorful characters and unlikely historical episodes. The emergence of new attitudes towards Satanproves to be intimately linked to the Western Revolution-the ideological struggle for emancipation that transformed the West and is epitomized by the American and French Revolutions. It is also closely connected to secularization, that other exceptional historical process during which western culturespontaneously renounced its traditional gods in order to enter into a self-imposed state of religious indecision. Children of Lucifer, thus, makes the case that the emergence of Satanism presents a shadow history of the evolution of modern civilization as we know it.


text:
The Free Nationals Archives - This Song Is Sick
Watch Anderson .Paak & The Free Nationals' Full 70-Minute Performance from .Paak House 2021
Reid BG
For his last performance of 2021, Anderson .Paak linked up with his go-to ensemble, The Free Nationals, at his...
Play Track
Benny Sings' 'Music' Is a Collection Of Diverse, Easygoing Pop Gems Sure To Bring You Joy
Mike Ali
Benny Sings is a prolific songwriter, producer and artist from Amsterdam who has had a long and colorful career. The...
ThisSongIsSick.com is all about making it easier for you to discover sick new music that you've never heard before. We work with musicians and record labels from all over the world to showcase a variety of the freshest electronic, hip-hop, indie, and alternative music to a global following that is comprised of millions of music lovers in over 110 countries. So, make yourself at home while enjoying countless amazing musicians from a variety of genres and let the sick sounds fill your ears!
Read more about our new site.
The Free Nationals Return To Tiny Desk Concerts Alongside Anderson .Paak
Austin Miller
NPR's Tiny Desk Concert series has evolved into an amazing source of intimate performances by some of the world's biggest...
The Free Nationals Deliver Highly-Anticipated Stand-Alone Album Ft. Mac Miller, Daniel Caesar, Chronixx & More
Anderson .Paak's famous live band, the Free Nationals, have finally unveiled their long-awaited, self-titled, stand alone album. We've been...
Watch The Free Nationals & Anderson .Paak Perform Unreleased Track "Gidget" Live On Jimmy Fallon
Langston Thomas
The Free Nationals have been having an incredibly successful year so far. Having doled out a barrage of incredible tracks...
The Free Nationals Capture Feel-Good Vibes On "Eternal Light" Ft. Chronixx
Jake Nixon
The Free Nationals have really blossomed this year. The band best known for their work in the studio and on...
JID Links Up With The Free Nationals To Drop Groovy Soulful Bop "On Sight"
The Free Nationals have just dropped an epic collaboration with one of our current favorite rappers and two very talented...
Free Nationals Release "Time" Collab With Mac Miller & Kali Uchis
This one is special. We lost a legendary human and musician this past year when Mac Miller passed away. A...
Anderson .Paak's Band The Free Nationals Share Smooth New Song "Beauty & Essex" (Ft. Daniel Ceasar & Unknown Mortal Orchestra)
Today we have something special we've been waiting for. After stealing the hearts of Anderson .Paak fans everywhere, his band...


Location and coordinates are for the approximate centre of Carmunnock within this administrative area. Geographic features and populated places may cross administrative borders.
Carmunnock, par. and vil., NW. Lanarkshire, 5 miles SE. of Glasgow -- par., 3479 ac., pop. 722; vil., pop. 315; P.O., called Carmunnoch.


It is with great sadness announcing the death of our father and grandfather, Jose Pimentel Silva on January 17, 2019 at the Kootenay Boundary Regional Hospital. Jose was born on March 2, 1932 in Vila Franca do Campo, Sao Miguel Azores to Antonio and Ernestina DaSilva, the youngest of seven children.
Jose married Natalia Soares on May 29, 1957 and shortly after moved to Canada in June 1957.
Jose first worked for CP Rail in the west and east Kootenays, then found work at the local sawmill which then convinced him of staying in Canada. In May 1964 Natalia joined Jose in Castlegar, BC to begin a life together and to start a family. Jose continued to work for the sawmill, retiring from Pope & Talbot in 1995.
Jose was a quiet, kind and a hardworking man who loved spending time with his family. He had a witty yet sarcastic sense of humour who loved to prank and joke around with family and friends. Jose enjoyed gardening, fishing and spending time with friends and family picnicking at local parks. He also liked sitting under his grape trellis listening to Portuguese music admiring his pristine lawn.
Jose was predeceased by his parents, brother, sisters, his loving wife of more than 60 years, Natalia (2017) and his beloved son Victor (2003).
Jose is survived by his daughters Elizabeth (Art), Dorothy (Fernando), grandchildren Mark and Leanne Machado, Ashley, Taylor, and Olivia Jorge, great granddaughter Elaina, brother and sister in law Armando and Exeolinda Rego, along with many nieces and nephews.
Jose's family would like to thank Dr. Humphreys, Dr. Tiechrob and all nursing staff from surgical and ICU, your professionalism and compassion was so greatly appreciated. A special thank you to Father Nino Tuyo, Armando Cardoso, Loraine and Matt Gallo, the ladies from CWL, and also Jordan and Renee from the Castlegar Funeral Chapel.


text:
Büßer steht für:

 im religiösen Sinn Buße Praktizierende, siehe Buße (Religion)
 Die Büßer, eine historische Bewegung im Islam, siehe Tauwābūn

Siehe auch:
 Büsser

redpajama_set_name: RedPajamaWikipedia


What is the meaning of Theory of Change?
Theory of Change is a comprehensive description (and illustration) of how and why a desired change is expected to happen in a particular context. It maps out the "missing middle" between what a programme does (its activities or interventions) and how these lead to desired goals being achieved.
At a very simplistic level, 'social impact' is the social benefit that an organisation creates through its actions- i.e. the impact of its interventions. Depending on the nature of your interventions (defined in your theory of change), the social impact of your organisation may include things that happen sometime after the actual intervention and / or affect a wider group of individuals than just your chosen target population.
What areas are covered under Social Impact?
GIIN ('The Global Impact Investing Network') is a nonprofit organisation dedicated to increasing the scale and effectiveness of impact investing around the world. The GIIN builds critical infrastructure and supports activities, education, and research that help accelerate the development of a coherent impact investing industry. The GIIN is registered as a 501(c)3 organisation. For more details visit https://thegiin.org BayTree is collaborating with GIIN in the area of impact measurement and evaluation.
IRIS is managed by the Global Impact Investing Network (GIIN), a nonprofit organisation dedicated to increasing the scale and effectiveness of impact investing. The GIIN recognizes impact measurement as a core characteristic of impact investing and offers IRIS as a free public good to support transparency, credibility, and accountability in impact measurement practices across the impact investing industry.
IRIS metrics are designed to measure the social, environmental and financial performance of an investment. Filter based on your investment priorities and focus areas. Use the bookmark icon to save chosen metrics along the way. Download your selections when you have completed your search.
Can I choose my own metric for social impact reporting?
The filter process is inclusive, so as you add criteria, applicable metrics will be added.


This heritage variety was bred on the Isle of Arran off the West coast of Scotland at the end of the First World War and was named in celebration of this. Boasting a vibrant blue purple skin encasing a fluffy white flesh this is an earthy tasting potato great for mashing, baking, roasting, chipping and wedging. They would be perfect to accompany your Burn's Night haggis or try using them to make gnocchi.
Arran Victory can also be found in our Mixed Medley selection box.
The unusually hot weather this year affected the size and yield of our Arran Victory. If you have a preference on what size potatoes you would like us to send, please let us know when you order.


text:
Social Work Schools
Social Work Schools in Arkansas
Social Work Schools in Fayetteville, AR
Fayetteville has a general population of 58,047 and an overall student population of 20,000. Approximately 19,849 of Fayetteville's students are enrolled in schools that offer social work programs.
Of the 1 social work schools in Fayetteville, the largest social work school, by student population, is University of Arkansas. In 2010, University of Arkansas graduated approximately 50 students with credentials in social work.
In 2010, 50 students graduated with a social work degree from one of Fayetteville's social work schools. If you decide to attend one of Fayetteville's social work schools, you can expect to pay an average of $18,241 per year in instate tuition and $27,118 per year in out of state tuition.
In addition to tuition costs, you should plan on spending an average of $1,082 for books and supplies each year, while enrolled in a social work program in Fayetteville. And if you live on campus, you will face an additional expense of $7,732 per year, on average, for room and board at Fayetteville-based social work schools. Students who live at home can cut this cost down to approximately $0.
Social Work Salaries and Career Outlook in Fayetteville
Many social work graduates choose to work as social workers after graduation. If you choose to follow that path and remain in Fayetteville, your job prospects are good. There were 880 social workers working in Arkansas and 130 working in the greater Fayetteville area in 2010. By the year 2018, the number of social workers is expected to increase by 17% in Fayetteville. This anticipated change is slower than the projected nationwide trend for social workers.
The average salary you can expect to earn as a social worker in Fayetteville is $34,470 per year, which is higher than the average for social workers state-wide.
Social Work Degree in Fayetteville
Associates Degree in Social Work
Bachelors Degree in Social Work
Social Work Classes
Social Work Courses
Social Work schools in Tahlequah, Oklahoma
Human Services Schools in Fayetteville
Public Health Schools in Fayetteville
Human Resources Schools in Fayetteville
Public Administration Schools in Fayetteville
Social Work Schools in Fayetteville, Arkansas
Online Walden UniversityMore Info Online Capella UniversityMore Info
1 University of Arkansas
Administration Bldg 425, Fayetteville, Arkansas 72701


text:
Trevor J. Watt
January 6, 1999 ~ September 1, 2018 (age 19)
Trevor J. Watt, 19, of Princeton, passed away Saturday, September 1, 2018 as the result of an automobile accident, north of Princeton. He was born January 6, 1999 in Princeton and was a graduate of Princeton Community High School and where he played baseball. He also played co-ed softball at the Southside Park in Princeton. He enjoyed all sports and was an avid Chicago Cubs baseball fan and he loved to play poker. He was employed at Aerotek in Princeton.
Trevor is survived by his mother, Tabitha DeVasier of Princeton; his father and step-mother, Jason and Summer Watt of Princeton; the love of his life, Kelsey Kolb-Blume of Princeton; 5 siblings, Ashton Watt, Kaden McKannan, Reese McKannan, Brody DeVasier and Jaxon Watt; grandmothers, Peggy Simpson of Patoka and Fonda Watt of Princeton; grandfather, Steve Watt of Princeton; grandparents, Stan and Judy McNeece of Princeton; great grandmothers, Loretta Chapman of Patoka and Dora McDaniels of Mt. Carmel, IL; 2 aunts, Samantha DeVasier and Chelcie Watson both of Princeton; 1 uncle, Nathan McNeece of Evansville; many cousins and great and great-great aunts and uncles.
He was preceded in death by his great grandfather, Bill Chapman; his granny Sue Hall and an aunt, Brandi Watt-Hardiman.
Funeral service will be held at 10 a.m. Friday, September 7, 2018 at Hillside United Methodist Church, 828 W. Archer Road in Princeton, with Brother James Wilkerson officiating. Burial will follow at Columbia White Church Cemetery in Princeton. Visitation will be from 2 until 8 p.m. Thursday, September 6th and again from 9 until 10 a.m. Friday at Hillside United Methodist Church. Colvin Funeral Home in Princeton has the honor of being entrusted with the arrangements.
Memorial contributions may be made in memory of Trevor to a baseball scholarship for a PCHS student, through the Dollars for Scholars program. Envelopes will be available at the church or at Colvin's. You may leave a message of sympathy or light a candle in memory of Trevor at www.colvinfuneralhome.com.


If you drive a Chevrolet towbars can add resourcefulness and importance to your vehicle. When fitted to your Chevrolet, towbars can be used to pull everything from a simple trailer right up to a ample caravan or horsebox. We have such a wide range of towbars that whatever the model of your Chevrolet, towbars can be fitted to meet a variety of needs. These include detachable flange towbars, flange ball towbars, detachable swan neck towbars and fixed swan neck towbars.
We have over 5000 towbars listed online, offering the widest choice of towbars on the UK market. If you're searching for the perfect towbar, simply enter the registration of your Chevrolet. Towbar search results will then show you all of the many options available.
Naturally, you want the very best for your Chevrolet. Towbars supplied by Witter are all manufactured in the UK and have undergone dynamic testing to ensure they meet Regulation 55 standards to guarantee you years of towing vacations. For Chevrolet towbars are priced inclusive of towbar, towball, vehicle electrics and towbar fitting at your local fitting centre.
Click on your specific model of Chevrolet for a list of suited towbars or alternatively search for your towbar by using the Vehicle Registration Search.


Kelly's is a beautiful lakeside restaurant with guest rooms on the shore of Moosehead Lake, in Greenville Junction, Maine. Our spacious dining room and large deck offer full views of West Cove. We're easily accessible by car, train, boat, 4-wheeler, snowmobile and float plane. We offer a full bar and the best home-cooked meals, 7 days a week, year-round. Our extensive menu ranges from burgers to prime rib, chicken fingers to-fresh from the coast seafood, which insures that we can satisfy any appetite. We make all our soups and desserts on the premises and offer a children's menu as well as a senior citizen discount.Our rooms range from 1 bedroom suites to 3 bedrooms. We also have a 4 bedroom log home that is great for friends and larger families.


Jane's work tends to focus on simple but bold design concepts that reflect everyday shapes and forms. She is drawn to creating unique pieces of art that have an architectural and industrial theme, incorporating lines, angles and shapes that influence our lives. Some of Jane's pieces allow the wearer to manipulate the design, providing a sense of individuality and personal ownership.


Telomeres are noncoding DNA regions at the end of the chromosomes that are crucial for genome stability. Since telomere length decreases with cell division, they can be used as a signature of cell proliferation history. T-cell reconstitution in severe combined immunodeficiency (SCID) subjects, recipients of T-cell-depleted, allogeneic-related bone marrow cells, is due to the development and maturation of donor T-cell precursors in the infant's vestigial thymus and to homeostatic proliferation of mature T cells in the peripheral organs. Since T-cell function, thymic output, and T-cell clonal diversity are maintained long term in these patients, we investigated whether donor T-cell engraftment resulted in increased telomere shortening. Our study of seven SCID patients, following successful bone marrow transplantation, demonstrates that the patients' peripheral T cells did not exhibit greater than normal telomere shortening.


text:
Edwards moguls skier Tess Johnson finds career-best result in China
Sports | December 22, 2017
John LaConte
jlaconte@vaildaily.com
EDWARDS — Local Tess Johnson notched her best-ever finish on the World Cup circuit on Thursday, Dec. 21, when she finished seventh in the moguls event in China's Secret Garden venue.
The venue will be the site of the 2022 Olympics, but Johnson, 17, has her eye on 2018. She's currently in a tightly contested race to be one of the four female competitors to make the team. Finishing third among Americans on Thursday, her parents described it as a breakthrough performance.
"She was pretty excited about her run and her performance," said Carol Johnson, Tess' mother, who talked to Tess following the race. "But she wants more."
Moguls competitors receive their scores based on the time they post down the course, the quality of their turns and the tricks they perform in the air on the course's two jumps.
A panel of judges examines the turns and airs, and athletes advance through rounds of semi-finals, finals and super finals to determine top finishers.
Tess Johnson, along with Americans Mikaela Matthews, Keaton McCargo and Morgan Schild all finished among the top 10 on Thursday.
BEST RESULT YET
Johnson's score on Thursday was the best she had ever received in a competition. Finishing in seventh, she was one place behind the goal every moguls skier sets for himself or herself in a competition — making the top-six super final competition.
"Her goal is getting a super final and a podium this season, so she's working toward that goal," Carol Johnson said.
Before Thursday, Johnson's best World Cup finish had been a eighth-place result in Lake Placid, New York, last season.
In the first event of this season, Johnson qualified into finals in fourth as the top-finishing American in another breakthrough performance. She skied out of the course in finals, however, and did not finish the race, settling for 15th place. Carol Johnson said those two scenarios for Tess — a breakthrough result or a "DNF" (did not finish) are the two likely outcomes the 17-year-old is facing at this point in her career.
"She doesn't want to ski safe because if she skis safe she's not going to end up where she wants to be, in that top six," Carol Johnson said. "It's definitely a bit of a journey and a puzzle, and she seems to be figuring it out."


"To Ease the Burden" tells the story of how Charleston pediatrician Conrad Williams, '05, helps children at the end of their lives. We reprinted this moving article with permission from The Post and Courier, a newspaper in Charleston, South Carolina, where it originally ran Dec. 3, 2017.
Read the full article — and see photographs not published with our reprint — on the newspaper's website here.


There are many ways you can leave feedback about your experience at our hospitals. You can do this by contacting PALS (Patient Advice and Liaison Service), by sharing your feedback online, or alternatively, by using the form below.
If you'd like to share your feedback with the Trust in a way that means other people can also see it online, you can leave a comment on one of a number of websites where this sort of information is shared.
You can also get in touch with us via Twitter or leave a message on the Trust's Facebook page.
You can use the form below to share your feedback with the patient experience team.
You must read the 'Feedback form - What we do with your information' section found below prior to submitting feedback.
Each question within our form clearly stipulates the information required from you. Please do not include futher details about yourself or anyone else within this form other than that being specifically asked. If you wish to contact the Patient Experience team about any other matter, please email qmcpet@nuh.nhs.uk or call 0115 924 9924 ext 67184.
Your name, your email address and your question or additional comments. Only the question field is mandatory however we wouls ask that at least include an email address so we may reply to your question.
The personal information you submit via the hospital feedback form is used to ensure your feedback is seen by the right people. We also use the information you give to enable them respond to your feedback, or to ask for more details if we need them.
All access to your submitted information is via a password protected secure access point within our website content management system.
Members of the Patient Experience team. This access is required to ensure your feedback is read and responded to.
Senior website administrators. This access is required for technical support purposes.
When feedback has been submitted, an email is generated and sent notifying the Patient Experience team of the feedback submission. This email contains no personal information. The email does contain a link to a secure web address where an feedback can be securely downloaded from our SSL encrypted website and saved within our protected hospital computer network. Click here to find out more about SSL encryption.
Your details are deleted from our web system as soon as a memeber of the Patient Experience team has downloaded your question.
The Patient Experience team delete your details from their system immediatly after a suitable response has sent back to you.
You are entitled to request that we remove any personal information we have about you stored within our systems at any time. For more information on how to do this please email qmcpet@nuh.nhs.uk or call 0115 924 9924 ext 67184.
For further information please visit our Privacy, cookies and disclaimer page.
Click here more detailed information about how organisations are required to manage personal and identifiable information.
Click here to submit your feedback and comments.


text:
Johnson City Press
The Tomahawk
The Erwin Record
This Week's Front Page
Classifieds Legal Notices
Celebrations - Birthdays
Celebrations - Engagements
Celebrations - Weddings
Celebrations - Anniversaries
Celebrations - Five Generations
Anton Schorer
Anton Tony Schorer, 74, of Jonesborough, TN, passed away on October 7, 2011, in Nashville, Tenn. He was born in Kempton Germany and was the son of the late Anton and Annie Domke Schorer.
Anton was kind-hearted, caring, humorous man who enjoyed stamp collecting, Indian relics, cooking and creating and building. He loved spending time with his family and was passionate about church charities.
He was a member of Central Christian Church of Jonesborough. He retired from the United States Air Force and worked at Antelope Valley College in Lancaster, California.
In addition to his parents, Anton is preceded in death by one Sister.
Survivors include his wife, Judy Schorer; three daughters, Teresa Schorer of Stuttgart, Germany and Monika Schorer of Maryland, Jeannie Martin of Simpsonville, South Carolina; one son: Jeff Horvat of Grand Junction, Colorado; grandchildren: Jordan Schorer and Joseph Wicinske of Stuttgart, Germany, Devin Horvat of Grand Junction, Colorado and Malinah Martin of Simpsonville, South Carolina; and his church family.
The family had private military honors graveside service, Friday, October 14, 2011 at Mountain Home National Cemetery with Pastor Bob Roberson officiating. A memorial service was held at Central Christian Church on Saturday, October 15, 2011, followed by fellowship at the church. In lieu of flowers, the family has requested donations be sent to the American Cancer Society in his name. Memories and condolences may be shared with the family at www.tetrickfuneralhome.com.
Tetrick Funeral and Cremation Services, 3001 Peoples St., Johnson City, 610-7171.
October 19, 2011 by wpmaster in Obituaries
Leaders unlikely to support weakening of sunshine law
Beaufort Sea spill could be worse
The Herald & Tribune was first established on August 26, 1869. Since then, it has served Jonesborough, TN and is published weekly on Wednesday.
The Herald & Tribune
Jonesborough, TN 37659
Statewide Public Notices
© 2001-2019 Herald & Tribune. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed. Privacy Policy / Terms of Use
Herald & Tribune, 702 W. Jackson Blvd., Jonesborough, Tennessee 37659, 423-753-3136
Innovation by The NET360


text:
Q: Gap Analysis/Report for CSV in Python 3.6.2 Start         End
MM0001        MM0009
MM0010        MM0020
MM0030        MM0039
MM0059        MM0071

Good afternoon, I wanted to create code in Python in 3.6.2 that will allow me to essentially look for gaps in rows of consecutive numbers, such as with this one. It would then output to the screen for the missing numbers in a format similar to below:
MM0021    MM0029
MM0040    MM0051
MM0052    MM0058

I've created some code for this program based on an answer I found around here, but I don't believe it's complete, as well as it being done in Python 2.7 I believe. I however used it as a basis for what I was trying to do.
import csv
with open('thedata.csv') as csvfile:
    reader = csv.reader (csvfile)
    for line, row in enumerate(reader, 1):
    if not row:
       print 'Start of line', line, 'Contents', row

Any help will be greatly appreciated.

A: import csv

def out(*args):
    print('{},{}'.format(*(str(i).rjust(4, "0") for i in args)))

prev = 0
data = csv.reader(open('thedata.csv'))

print(*next(data), sep=', ') #  header

for line in data:
    start, end = (int(s.strip()[2:]) for s in line)

    if start != prev+1:
        out(prev+1, start-1)

    prev = end
    out(start, end)

it's really ugly sorry, but should work?
outputs comma separated text
if something doesn't work, or you want it to save to a file, just comment


Robert and Bart met at the School of Arts (Composition & Music Production) back in 2005, where they started working together straight away. Their interest in alternative pop music, WWII movies and late night music sessions resulted in fast friendship and eventually their shared business venture. Over the years, they have developed a high quality and high speed workflow and provide music for high profile clients. To visit a partial list, visit the clients page.
In 2012, Robert and Bart moved their studio to the woods of Lage Vuursche. It is here that Bart and Robert decided on the name Pine Tree Studio. After 6 years they decided to move to the legendary Wisseloord Studios in Hilversum. Pine Tree Studio has grown out to be a fully operational studio for almost all music and audio needs, such as composition, production, sound design, mixing and songwriting.
Interested? Feel free to give us a call (+31 (0)6 4181 8702) or drop us a message and swing by for a cup of coffee.
Robert (1984) is a multi talented composer, songlover, producer and songwriter who loves to create distinctive and compelling custom made music for media. With a European Media Master of Arts degree and plenty of experience in the field as a freelance composer, he has already created many beautiful songs for al kinds of media. In 2012, Robert joined multi Grammy Award winner Joe Chiccarelli's course from the 'Mix With the Masters' series in studio la Fabrique in France.
Next to his fulltime job working with Bart, Robert loves to build his own instruments, studio gear and further develop his guitar skills.
Besides his excellent skill set as a creative composer, Robert has more than adequate communication skills, which come in handy when talking to clients or teaching others about creating music.
Heroes: Neil Young, David Bowie, Ryan Adams, Tom Petty & The Heartbreakers, Coldplay, Bob Marley, Eddie Vedder.
Bart (1987) is a composer, producer, songwriter and performer with a passion for catchy melodies, vintage 50's ballads and the more obscure Spotify playlists. With a long list of shows for the biggest clubs and festivals in the Netherlands, Bart has gained a lot of experience performing music on stage. Bart knows how to handle many instruments, whether it be drums, percussion, synths or a bass guitar and he understands perfectly how to incorporate musical energy from the floor into the recording. Bart graduated as a Bachelor of Music (with honours) from the Utrecht School of Arts. During his studies, he already composed and produced music for several TV commercials, a career he wanted to pursue since the age of 14. Besides working fulltime in the studio, Bart also likes to write nostalgic indie pop with Donna Blue, folk songs as Postcards From Mars, and occasionally 8-bit electropop as Findel.
Heroes: The Shadows, Paul Simon, David Lynch, Jonny Greenwood (Radiohead), Sufjan Stevens.