text:
var app = angular.module('ikcs', ['ui.sortable', 'ngCookies', 'angularUtils.directives.dirPagination', 'toastr']);

app.config(function(toastrConfig) {
    angular.extend(toastrConfig, {
        autoDismiss: false,
        maxOpened: 0,
        closeButton: true,
        newestOnTop: true,
        progressBar: true,
        positionClass: 'toast-bottom-right',
        preventDuplicates: false,
        preventOpenDuplicates: false,
        target: 'body',
        timeOut: 5000
    });
});

app.controller("ikcsGetSections", ['$scope', '$http', '$location', '$cookies', 'toastr', function ($scope, $http, $location, $cookies, toastr) {
    $scope.ikcsSections = [];
    $scope.ikcsGetListComplete = false;
    $scope.itemsPerPage = 10;
    $scope.currentPage = 1;

    if (typeof $cookies.get('itemsPerPage') != "undefined"){
        $scope.itemsPerPage = parseInt($cookies.get('itemsPerPage'));
    }
    if (typeof $cookies.get('sortKey') != "undefined"){
        $scope.sortKey = $cookies.get('sortKey');
    }
    if (typeof $cookies.get('reverse') != "undefined"){
        $scope.reverse = $cookies.get('reverse') == 'true' ? true : false;
    }

    $scope.getAllSections = function () {
        $http({
            method: 'GET',
            url: ajaxurl,
            params: {
                action: 'ikcs_get_all_sections'
            }
        }).then(function successCallback(response) {
            $scope.ikcsSections = response.data.sections;
            $scope.ikcsGetListComplete = true;
            if (typeof $location.search()['page'] != "undefined"){
                var page = parseInt($location.search()['page']);
                if(page > Math.ceil($scope.ikcsSections.length/$scope.itemsPerPage)){
                    $scope.currentPage = Math.ceil($scope.ikcsSections.length/$scope.itemsPerPage);
                    $location.search('page', Math.ceil($scope.ikcsSections.length/$scope.itemsPerPage));
                } else {
                    $scope.currentPage = page;
                }
            }
        }, function errorCallback(response) {
            console.warn(response);
        });
    };

    $scope.removeSectionById = function (id) {
        for (var i = 0; i<$scope.ikcsSections.length; i++){
            if($scope.ikcsSections[i].id == id){
                $scope.ikcsSections[i].removing = true;
            }
        }

        $http({
            method: 'POST',
            url: ajaxurl,
            params: {
                action: 'ikcs_remove_section_by_id'
            },
            data:{
                id: id
            }
        }).then(function successCallback(response) {
            if(response.data.status == "OK"){
                for (var i = 0; i<$scope.ikcsSections.length; i++){
                    if($scope.ikcsSections[i].id == id){
                        $scope.ikcsSections.splice(i, 1);
                    }
                }
            }
            toastr.success('Sekcja została usunięta', 'Success!');
        }, function errorCallback(response) {
            console.warn(response);
            toastr.error('Wystąpił nieoczekiwany błąd', 'Błąd!');
        });
    };

    $scope.pageChanged = function (page, itemsPerPage) {
        $location.search('page', page);
        $cookies.put('itemsPerPage', itemsPerPage);
    };

    $scope.sort = function(keyname){
        $scope.sortKey = keyname;
        $scope.reverse = !$scope.reverse;
        $cookies.put('sortKey', keyname);
        $cookies.put('reverse', (($scope.reverse) ? true : false));
    };
    $scope.getAllSections();
}]);

app.controller("ikcsAddEditSection", ['$scope', '$http', 'toastr', function ($scope, $http, toastr) {
    var sectionID = (typeof jQuery.getUrlVar('id') != "undefined") ? parseInt(jQuery.getUrlVar('id')) : false;
    $scope.pageLoadComplete = false;
    $scope.ikcsAddFormSaving = false;
    $scope.ikcsAdd = {
        id: sectionID,
        section_id: '',
        name: '',
        fields: [],
        settings: {
            show_select_bg: 1,
            show_select_margin: 1,
            show_custom_css: 1,
            margin: {
                top: 10,
                left: 0,
                right: 0,
                bottom: 10
            },
            padding: {
                top: 10,
                left: 0,
                right: 0,
                bottom: 10
            }
        }
    };
    $scope.imageSizes = imageSizes;
    $scope.sortableOptions = {
        items: '.sortable-item',
        cursor: "move",
        axis: 'y'
    };
    $scope.addNewSection = function () {
        var section={
            id: '',
            label: '',
            value: '',
            open: true,
            required: 'off'
        };
        $scope.ikcsAdd.fields.push(section);
        console.log($scope.ikcsAdd);
    };
    $scope.addNewSubSection = function (data) {
        var section={
            id: '',
            label: '',
            value: '',
            open: true,
            required: 'off'
        };
        if(typeof data.repeater_fields == "undefined"){
            data.repeater_fields = [];
        }
        data.repeater_fields.push(section);
    };

    $scope.removeSubItem = function(array, index){
        if(typeof array.repeater_fields == "undefined"){
            array.fields.splice(index, 1);
        } else {
            array.repeater_fields.splice(index, 1);
        }
    };

    $scope.addOptionItem = function (data) {
        if(typeof data.field_options == "undefined"){
            data.field_options = [];
        }
        data.field_options.push({value: "", label: ""});
    };

    $scope.removeOptionItem = function (data, index) {
        data.splice(index, 1);
    };

    $scope.getInfoByID = function (id) {
        $http({
            method: 'POST',
            url: ajaxurl,
            params: {
                action: 'ikcs_get_section_by_id'
            },
            data:{
                id: id
            }
        }).then(function successCallback(response) {
            $scope.ikcsAdd = response.data.section;
            $scope.pageLoadComplete = true;
        }, function errorCallback(response) {
            console.warn(response);
        });
    };

    if(sectionID){
        $scope.getInfoByID(sectionID);
    }
    else {
        $scope.pageLoadComplete = true;
    }

    $scope.submit = function () {
        $scope.ikcsAddFormSaving = true;
        $http({
            method: 'POST',
            url: ajaxurl,
            params: {
                action: 'ikcs_update_section'
            },
            data: {
                id: sectionID,
                section_id: $scope.ikcsAdd.section_id,
                name: $scope.ikcsAdd.name,
                settings: $scope.ikcsAdd.settings,
                fields: $scope.ikcsAdd.fields
            }
        }).then(function successCallback(response) {
            if(response.data.status == "OK" && response.data.type == 'insert'){
                window.location.search = "?page=ikcs-edit&id=" + response.data.id;
                toastr.success('Sekcja została dodana', 'Success!');
            }
            else if (response.data.status == "OK" && response.data.type == 'update'){
                toastr.success('Sekcja została zaaktualizowana', 'Success!');
            }
            else {
                toastr.error('Wystąpił nieoczekiwany błąd', 'Błąd!');
            }
            $scope.ikcsAddFormSaving = false;
        }, function errorCallback(response) {
            console.warn(response);
            $scope.ikcsAddFormSaving = false;
        });
    };
}]);

app.controller("ikcsPageRendering", ['$scope', '$http', function ($scope, $http) {
    $scope.ikcsSections = [];
    $scope.existingSections = [];
    $scope.ikcsGetListComplete = false;
    $scope.addNewSectionBefore = false;
    $scope.languages = languages;
    $scope.sortableOptions = {
        cursor: "move",
        axis: 'y'
    };

    $http({
        method: 'GET',
        url: ajaxurl,
        params: {
            action: 'ikcs_get_fa_json'
        }
    }).then(function successCallback(response) {
        $scope.fa_list = response.data.fa;
        $scope.fa_preview_index = 0;
        $scope.fa_preview_key = $scope.fa_list[$scope.fa_preview_index].fa_key;
        $scope.fa_preview_val = $scope.fa_list[$scope.fa_preview_index].fa_value;
    }, function errorCallback(response) {
        console.warn(response);
    });

    $scope.getExistingSections = function () {
        $http({
            method: 'GET',
            url: ajaxurl,
            params: {
                action: 'ikcs_get_all_sections'
            }
        }).then(function successCallback(response) {
            $scope.ikcsSections = response.data.sections;
            $scope.ikcsGetListComplete = true;
            console.log(response);
        }, function errorCallback(response) {
            console.warn(response);
        });
    };

    $scope.getAllSections = function () {
        $http({
            method: 'GET',
            url: ajaxurl,
            params: {
                action: 'ikcs_get_all_sections'
            }
        }).then(function successCallback(response) {
            $scope.ikcsSections = response.data.sections;
            $scope.ikcsGetListComplete = true;
            console.log(response);
        }, function errorCallback(response) {
            console.warn(response);
        });
    };

    $scope.addNewSection = function (id) {
        $scope.addNewSectionBefore = true;
        $http({
            method: 'POST',
            url: ajaxurl,
            params: {
                action: 'ikcs_get_section_by_id'
            },
            data:{
                id: id
            }
        }).then(function successCallback(response) {
            $scope.existingSections.push(angular.copy(response.data.section));
            $scope.addNewSectionBefore = false;
        }, function errorCallback(response) {
            console.warn(response);
        });
    };

    $scope.addRepeaterItem = function (data, parent) {
        console.log(data, parent);
        var count = 0,
            field_input_name = '',
            arr = [];

        if(typeof data.repeater_items == "undefined"){
            data.repeater_items = [];
        }
        count = data.repeater_items.length;
        arr = angular.copy(data.repeater_fields);
        angular.forEach(arr, function(eachObj) {
            eachObj.field_input_name = (typeof parent.fields == "undefined" ? '['+parent.length+']' : '') + (data.field_input_name ? data.field_input_name : '') + '[items]['+count+']';
        });
        data.repeater_items.push(arr);
    };

    $scope.removeRepeaterItem = function (array, index) {
        array.splice(index, 1);
    };

    $scope.upload_img = function(data) {
        var uploader;
        uploader = wp.media.frames.file_frame = wp.media({
            title: 'Wybierz logo',
            button: {
                text: 'Wybierz'
            },
            multiple: false
        });
        uploader.on('select', function() {
            var attachment = uploader.state().get('selection').first().toJSON();
            $scope.$apply(function () {
                data.attachment_id = attachment.id;
                data.attachment_url = attachment.url;
                data.has_attachment = true;
            });
        });
        uploader.open();
    };

    $scope.remove_img = function (data) {
        data.has_attachment = false;
        delete data.attachment_id;
        delete data.attachment_url;
    };

    $scope.initColorPicker = function (type, index) {
        var $input = jQuery('input#bg_color_'+index),
            field_index = index;
        if(type == 'color' && !$input.is('.wp-color-picker')){
            $input.wpColorPicker({
                change: function(event, ui){
                    $scope.$apply(function () {
                        $scope.existingSections[field_index].settings.bg_color = ui.color.toString();
                    });
                }
            });
        }
    };

    $scope.showSelectFaIcon = function (className, data) {
        angular.element(className).show();
        $scope.selectFaIcon = function (value) {
            data.value = value;
            angular.element(className).hide();
        }
    };

    $scope.removeFaIcon = function (data) {
        data.value = '';
    };

    $scope.previewFaIcon = function (index, key, value) {
        $scope.fa_preview_index = index;
        $scope.fa_preview_key = key;
        $scope.fa_preview_val = value;
    };

    $scope.hidePopup = function (className) {
        angular.element(className).hide();
    };

    $scope.submitPageIKSCForm = function () {

    };

    $scope.showData = function () {
        console.log($scope.existingSections);
    };

    $scope.getAllSections();

    jQuery('form#post').on('submit', function (e) {
        var $form = jQuery(this);
        if($scope.existingSections.length > 0){
            e.preventDefault();
            jQuery.ajax({
                method: "POST",
                url: ajaxurl,
                data: {
                    action: "ikcs_save_sections",
                    post_id: jQuery('#post_id').val(),
                    data: JSON.stringify($scope.existingSections)
                }
            }).done(function (response) {

            }).fail(function () {

            }).always(function () {

            });
        }
    });

    jQuery('body').on('click', '[data-show-popup]', function (e) {
        e.preventDefault();
        var $button = jQuery(this),
            $popup = jQuery($button.attr('data-show-popup'));

        if($button.is('.open')){
            $button.removeClass('open');
            $popup.addClass('hidden');
        } else {
            $button.addClass('open');
            $popup.removeClass('hidden');
        }

        $popup.on('click', $button.attr('data-item-class'), function () {
            $button.removeClass('open');
            $popup.addClass('hidden');
        });
    });

    jQuery(document).on('click', function (e) {
        var $container = jQuery('.add-from-sections-list');
        if($container.has(e.target).length === 0){
            jQuery('[data-show-popup]').removeClass('open');
            jQuery(jQuery('[data-show-popup]').attr('data-show-popup')).addClass('hidden');
        }
    });

    jQuery('body').on('mouseover', '.remove-repeater-item button', function () {
        jQuery(this).closest('.repeater').addClass('removehovered');
    }).on('mouseout', '.remove-repeater-item button', function () {
        jQuery(this).closest('.repeater').removeClass('removehovered');
    })

}]);

app.controller("ikcsSettings", ['$scope', '$http', function ($scope, $http) {
    $http({
        method: 'GET',
        url: ajaxurl,
        params: {
            action: 'ikcs_get_langs'
        }
    }).then(function successCallback(response) {
        $scope.langs = response.data;
        console.log(response);
    }, function errorCallback(response) {
        console.warn(response);
    });
}]);

jQuery.extend({
    getUrlVars: function(){
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function(name){
        return jQuery.getUrlVars()[name];
    }
});


Whether you like it or not, the Holidays are in high swing again. And while the holidays can mean many things to different people, one of the most salient features of this time of the year is snow. Though the weather has been relatively mild here in metro Detroit, we know it's just a matter of time before we're buried under a mound of snow yet again. For those of you who enjoy winter sports and shoveling your sidewalks, we offer a custom wall mural featuring winter in all its glory.
Our inspiration room is already on the austere side, and this chilly wall mural only helps the room's cool factor. The frozen river bank winding off into the horizon gives the mural a great sense of depth. The snow covered rocks have a wonderfully light, soft texture which mixes nicely with the sharp, angular branches of the tree lining the river.
This wall mural is available at our main website here, as well as a number of other wall murals featuring frozen lands from all across the globe. If your tastes sway to warmer climes, we have plenty of tropical wall murals for you to consider. From all of us at Great Wall Custom Coverings, Have a happy and safe holiday!
It is looking very nice...sometimes the wallpapers change the look of the entire place and the furniture has fit in very well to this room too.All well done up.


Gwen Carr, mother of Eric Garner, right, joins women whose families members were killed by police officers after New York Gov. Andrew Cuomo signed an executive order that puts the office of the state attorney general in charge of investigating killings by police.
Eric Garner, a 43-year-old Staten Island man, died on on July 17, 2014, after being placed in an illegal chokehold by an NYPD officer. A year later, his family gathered to mark the anniversary — one of his daughters, a toddler named Legacy, helped to a white dove at the spot where he died.
On Friday morning, Garner's family and supporters came together in Tompkinsville, Staten Island, to mark the anniversary of his death. Just before his daughter released the dove in memory of her father, the crowd chanted "I can't breathe" 11 times, echoing his last words.
Legacy Garner, 15-months-old, releases a white rock dove above the spot on Bay Street in Staten Island where her father, Eric Garner, was killed a year ago today.
About three dozen supporters rallied to join the family in the ceremony, beginning a day of rallies and protests in Garner's honor. Several protests and vigils were planned across New York City, from a march in Columbus Circle to a memorial at Canaan Baptist Church of Christ in Harlem.
Garner had been detained on suspicion of selling loose, untaxed cigarettes, and an officer attempting to arrest him put him in a chokehold — a move that goes against Police Department rules. A grand jury declined to indict the officer and Garner's death, captured on video, prompted national outcry as well as one of the most active U.S. protest movements since the 1960s.
On Monday, New York City agreed to pay a $5.9 million settlement to Garner's family. When asked about the settlement, Miller said, "I really want the officer to be held accountable. That's really it."
A video published by AJ+ on Friday, compiled footage of members of Garner's family sharing their memories of him.
"One time, he had live crabs… and he chased us around the house with the crabs.... and we was terrified," Garner's other daughter, Erica, recalled.


CFAO FMCG & AGRI has four plastics factories in Nigeria, Ghana, Cameroon, and Côte d'Ivoire. For more than 50 years they have been making a range of Bic pens, and assembling a range of Bic razors.
These products are then sold in 11 West and Central African countries, including those where the factories are located.
We manufacture many plastic products such as cosmetic containers, beverage racks, bottles and packaging for major international groups such as Nestlé, Guinness and Cadbury.


Welcome back to The Black List Table Reads with Franklin Leonard. Popular demand called for it, and we listened: Each earmovie is now a single episode. Today, we come to the end of our Season 1 earmovie binge-a-thon with our fourth earmovie - Kent Tessman's Chrome Noir. Men in hats. Tommy guns. Robots. A film noir detective story that will have you riveted. Bringing the world of Chrome Noir to life is Colin Hanks, Zachary Levi, Rob Morrow, Katie Lowes, Billy Burke, Stephanie Drake, Matt Bohrer, Ben Schrader, Andrea Anders, and Cooper Thornton.


MEMPHIS, TN (WMC) - The race for Tennessee Senate in District 31 in Memphis has eyes of political pundits in Nashville and Washington, D.C.
It's a contest pitting Republican incumbent Brian Kelsey against a younger Democratic challenger, Gabby Salinas.
Kelsey is campaigning to keep his seat in Senate district 31, which he's held since 2009. The district includes East Memphis, Germantown, and Cordova, a diverse makeup.
"They want safer communities. They want stronger public schools, and they want a supply of good paying jobs, and that's what we are providing for them," Kelsey said.
Kelsey, a 40-year-old attorney, enters the race with the name recognition that incumbency brings and the endorsement of outgoing Governor Bill Haslam. He's fending off a Democratic challenge from 30-year-old Gabby Salinas.
Salinas is a cancer survivor and St. Jude researcher, with the endorsement of Marlo Thomas.
Salinas first came to Memphis from Bolivia to get treatment for cancer at St. Jude.
Salinas said state lawmakers' failure to expand healthcare coverage to Tennesseans in 2015, despite the urging of Governor Bill Haslam, is the reason she's running.
"I came into healthcare policy in a unique way. I grew up before the time where the Affordable Care Act passed, when I was being discriminated against because I had a pre-existing condition," she said.
Critics construed it to be a dig at his opponent's Bolivian heritage.
"It's very simple. It means I live in Shelby County," Kelsey said when asked about it.
Pundits have also noted the presence of outside spending in the race, like Tennessee Lt. Governor Randy McNally's political action committee shelling out $300,000 for attack ads against Salinas.
"I cannot, and I will not legally have anything to do with those ads. What I can do is my part to run a 100 percent positive campaign, because political talk has gotten too divisive in this country," remarked Kelsey, when WMC Action News 5 asked about the ads.
Salinas said she's not taking the attacks personally.
"I want to be a unifying person in this race," she said, "I believe how you get somewhere matters. He's trying to get there dividing people, attacking me, and not running on the issues," she said.
Voters will have the final say come November 6.


Finally …An Address book that's not just pretty but oh so clever too! No more crossing out or taking up additional space when someone moves house or changes name, this nifty piece of stationery comes with easy-change stickers so when you need to change something just pop the sticker over and write on the new information. Ha! Told you it was clever!!
Other features: Alphabetical tabs to easily find people and space for up to 21 addresses per tab. Plus as well as separate sheets of clever easy-change address stickers there's also a storage pocket for stamps, stickers and stuff.


Hello guys and welcome to the Extreme Duelists Test Room. To be tested to join this dorm you will first have to be in the blue eyes ultimate dorm. And then you can apply here. Just post the same form ON A NEW THREAD IN THIS FORM. You will first have to answer the 10 questions. They are located just outside this thread. In a seperate sticky thread. Copy and paste it then post a new thread with the answers then wait for my response. Then i will tell you what ham to join. Then i will personally test you. After that i will post the results in the results page if you have passed or not. If you did i will automatically add u to the Extreme Duelists Group. And you will be at the top! After you join you will have the extreme duelists dorm to chat in and enjoy!
But remember if you fail then you can only re-take it after a week.


Return any faulty lenses. Occasionally contact lenses or glasses come with defects or imperfections. These medical appliances and devices can be returned if the doctor's office agrees, but only if you purchased through the office.
Exchange contact lenses if there's a prescription change. Unopened, undamaged boxes that have not expired are eligible to be returned where you purchased them. Often times if someone experiences a vision change sooner than a year, they are stuck with online contact lenses. Not the case if purchased through a doctor's office. And if you are debating about online vs. a doctor's office, why not choose both! Yes, you can order your contact lenses online directly from our web store: http://4sighticare.com/ecommerce/ The doctor's office is also where they will confirm a change in prescription by performing a contact lens fitting at an intermediate exam rather than a comprehensive one (because you don't need a comprehensive exam but once a year for wellness, and this is less costly). Did you know the laws require that the vendor verify your prescription with the doctor's office anyway. The office knows how much contacts are online and should make every effort to make their pricing competitive. At 4Sight iCare our pricing is often better; so when you shop online compare pricing and research rebates to get the best price, but don't forget to check your doctor's site as well.
Quality and accuracy issues. A recent study of the top online eyeglass vendors showed that the execution of the prescription would not pass inspection on about half of the >200 pairs ordered online. The reason why glasses don't pass inspection is one of two things: they are not safe for wear (too easily broken) or they do not match the prescription ordered. You can't get custom adjustments from a computer screen, and you can't possibly expect personalized service regarding the various options available that may interest you when you purchase new eyeglass lenses. Frame selection is never as good as in person and that is why even when you select a frame from our online database with virtual try-on (http://4sighticare.com/ecommerce/), we order that frame for you to experience it in person prior to adjusting, measuring, and ordering your lenses.
Common Sense. Whether you believe in shopping local and small or not, you know when something seems fishy when it's supposed to be a regulated profession. Don't buy product that serves as a medical device (contacts) or medical appliance (glasses) if they charge sales tax on it like a commodity. Don't hold a dollar bill next to your face or trace a credit card on the screen to give scale so an algorithm can decipher how far apart your eyes are when this is part of the service done in person and more accurately by a human. Don't make an educated guess about which frame fits you best, ask an expert who can give you feedback on just what frame would work best for you. Don't take your shoes off and count several paces away from a screen to measure your vision when your local optometrist has standard letters calibrated a set distance away from a cozy examination chair. Don't order from any entity that doesn't get approval from a doctor before charging you and beginning the process of executing the prescription.
4 Reasons to research where you get an eye exam! Print vs. Digital: Which Is Better For Your Eyesight?


text:
Into the Depths
This man helped open the ocean to Black divers
By founding the first African American scuba club, Albert José Jones led the way for Black divers to explore the ocean—and their own history.
Albert José Jones is considered the godfather of Black scuba diving in the U.S. He founded the country's oldest Black diving club, Underwater Adventure Seekers in Washington, D.C., in 1959, and co-founded the National Association of Black Scuba Divers, in 1991.
Photograph Courtesy Albert José Jones
ByRachel Jones
You won't find a better diving partner than Albert José Jones, says his colleague Jay Haigler, who describes Jones as "scuba fit"—aerobically agile, in full command of the muscles in his body as it cleaves the currents of the ocean.
A native of Washington, D.C., who earned his diving certification in a Howard University pool, Doc Jones, as he's known, changed the complexion of the elite sport in 1959 when he founded Underwater Adventure Seekers, the first club for African American scuba diving enthusiasts. His efforts then and throughout his career as a diver, explorer, and scientist opened the door for Black divers to explore the ocean—and their own history—in ways that hadn't been done before.
In fact, when Haigler last dived with Jones in 2019, near Key West, Florida, they were celebrating two milestones in African American diving: Underwater Adventure Seekers was 60 years old, and Diving with a Purpose (DWP), an organization that documents shipwrecks from the transatlantic slave trade, had been launched 15 years earlier.
"What does the future look like because of Doc Jones?" Haigler asks. "It looks more representative of the world we live in. It looks like a place where any young Black girl or boy who is curious about the sea and curious about their history can call themselves an explorer. It lets them know they have just as much of a chance to view the remarkable world beneath the surface of the ocean."
A junior Doctor Dolittle
Jones, a Purple Heart recipient and a marine biologist, is surprisingly modest about his influence. To hear him tell it, his life's work was just the natural progression for a boy who mastered swimming in city pools and loved diving into creeks and ponds, collecting frogs and turtles and lizards, and any other critters he could get his hands on.
How Jones went from a junior Doctor Doolittle to a legend in the fields of marine archaeology and underwater exploration is an intriguing chapter in African American history, one bookended by inventiveness born of racial constraints and discoveries made by those who pushed through them.
Albert José Jones, who has been on more than 7,000 dives, got his start in Washington, D.C.—learning to swim in the city's pools and earning his diving certification at Howard University.
Photograph by Christian K. Lee, Washington Post / Getty Images
He created Underwater Adventure Seekers for a purely pragmatic reason. Existing diving clubs in the 1950s and 60s simply didn't allow African Americans to join, and the costs associated with scuba diving often deterred people curious about the sport. Jones, having achieved his certification and become deeply immersed in his own passion for diving, says he had no choice but to try and create equal access.
"I knew there were others like me who loved the water like I did, who had the same desire to see the world, too," Jones says. "It didn't make sense that people who felt as strongly as I did about it would never even get the chance to see what the world looked like beneath the water."
Haigler first met Jones in 2004 at a D.C. chapter meeting of the National Association of Black Scuba Divers, which Jones co-founded in 1991. Haigler says that encounter changed his life. He and his wife Vanessa had sampled diving during a Cayman Islands vacation earlier that year but felt isolated as the only people of color on the excursion.
"But when I walked into a room and saw 70 people who looked like me, and all of them loved diving as much as I did, I was like, 'Okay, game on,'" Haigler recalls. "I knew right then that this was more than just a sport for me."
By making scuba diving accessible for African Americans, Jones made it possible to reframe the narrative about the transport of Africans to the Americas. He and his fellow adventure seekers have explored the sunken wreckage of ships, handled rusted chains and manacles that may have bound their ancestors, and navigated through the waters that either conveyed Africans to a new land or received their bodies during the ocean crossing.
Haigler, a founding board member of Diving with a Purpose, points out that Jones's commitment to training men and women like him created a pipeline into fields where African American representation has been minimal or non-existent. For example, the organization has strategic partnerships with groups like the Society of Black Archaeologists, to help train members for careers in research and museums. The National Park Service, another partner, provides technical and financial support for some of DWP's endeavors.
Jay Haigler, a founding board member of Diving with a Purpose, has trained divers and searched for slave shipwrecks for 15 years. He says that meeting Albert José Jones changed his life.
Photograph by Wayne Lawrence, National Geographic
In fact, when Haigler contacted Ayana Flewellen, co-founder of the Society of Black Archaeologists in 2012, the collaboration seemed pre-destined. Less than one percent of all archaeologists worldwide are African American, Flewellen says, and the opportunity to meld the science with the lost history of African Americans was too good to ignore.
"We're trying to break open the mold of who's formally trained in this space," Flewellen says. "There's an extra layer to the work, almost a spiritual connection to the people whose stories ended at the bottom of the ocean."
"It feels like really sacred work," says National Geographic Explorer Tara Roberts, who wrote about DWP for National Geographic. "And it also feels like work that is full of agency, that is full of power. There's something about us as regular folks who raised their hands and said, we want to be a part of helping to bring this lost history up from the depths and back into memory. We're not going to wait on somebody who doesn't look like us to put it in a book and tell us that that's what our history is. We're saying that now we have power, we have agency to be able to go out and find that history and say, it's important."
As Haigler puts it, all these currents lead back to one diver: Albert José Jones. He hopes to partner once again with the man who carved a door to the sea, placed it in a frame and flung it open for so many African Americans, both the living and those whose voices whisper beneath the waves.
"Watching him in the water, it's perfection," Haigler says. "It's like seeing Moses with the tablets. It's an honor and a privilege."
Rachel Jones is Director of Journalism Initiatives for the National Press Foundation and a frequent contributor to National Geographic.

redpajama_set_name: RedPajamaCommonCrawl


The Permian Basin Rehabilitation Center has a long history of making life better for children and adults who face life-changing challenges. In 1953, 25 concerned citizens got together to find a way to help children who faced the devastation of polio. They formed the Ector County Crippled Children's Treatment Center in 1954 with the hope that the services would be provided for the next 50 years. These concerned citizens did not know that children and adults would continue to receive therapy services at the Rehab Center for the next 65 years. The name of the facility changed to the Permian Basin Rehabilitation Center but the dedication of the community has remained constant. The history of the Center has been full of dedicated people who have devoted their time, talents, and financial support for the community for over 60 decades. This includes hundreds of community-minded citizens whom have given of themselves by either serving on the PBRC Board of Directors, The Crystal Ball Foundation, committees, volunteering, or as donors. Each of these people played an important role ensuring the children and adults who needed life-improving therapy and a chance of a better life. It is inspiring that year after year gracious and generous people have made sure that this wonderful institution would stay sustained not only during the good times, but more importantly during the difficult times. The success of the PBRC results from the generosity of the people in this community and the dedicated and compassionate staff.
The Permian Basin Rehabilitation Center's annual Telethon raises much needed funds for the Sponsorship Program. The Sponsorship Program allows the Rehab Center to supplement therapy costs, purchase equipment, and make facility improvements to benefit our patients. Each year during the Permian Basin Rehab Center's Telethon, patients and families graciously share their stories of perseverance and hope with the CBS7 viewing audience. This year we are honored to feature four-year-old Lorenzo Illas.
Lorenzo's parents, Cindy and Miguel Illas, were excited about their firstborn child and experienced all the emotions that first-time parents feel. They were excited about his future and dreaming of the accomplishments that he might achieve. At 18 months the changes in Lorenzo concerned his parents and they sought help from their pediatrician. He was not interacting the way other children interact with their parents or people. He didn't communicate or talk or play with toys like other children. He was referred to the Permian Basin Rehabilitation Center for speech therapy. At 21 months of age Lorenzo was diagnosed with autism by a developmental pediatrician. Cindy and Miguel were devastated with the news and felt their dreams for Lorenzo's future were shattered. They sought help and looked for hope at the Center. With the help of the Permian Basin Rehabilitation Center and your support, Lorenzo's life is changing. He is starting to communicate with words and a picture exchange system, as well as engaging, interacting, and responding to his therapists during therapy. His parents and therapists treasure each new skill or accomplishment no matter how small. The journey with autism is not an easy one, but Lorenzo and his family are feeling hope for the future.
All of us at the Permian Basin Rehabilitation Center want our community to experience the small victories that help Lorenzo become more independent. Together with your help and support we can continue making life better for Lorenzo.
During Telethon 2018 Lorenzo will be joined by fellow patients, Bodhi Nance, Junior Gamboa, and Kori Young. These amazing patients possess a spirit of determination, hope, and perseverance on their journey and each family experiences great joy as they celebrate each small victory. Please join us as we feature these inspiring patients during our 9 hour telethon.
On Saturday, April 21 and Sunday, April 22 CBS7 and PBRC will host the 2018 Telethon. CBS7 dedicates station time and resources for a nine-hour extravaganza of community involvement, great entertainment, and celebration of the human spirit. Funds raised during the Telethon help sustain the PBRC and meet our patients' needs through the Sponsorship Program. The CBS7 staff is joined by the PBRC Board members, employees, and community volunteers create a televised celebration of courage, hope, and determination. Corporate, foundation, and individual sponsors and donors are the heart of this effort.
Please show your support by watching us on CBS7 and making a pledge during the Telethon. Your gift can make a difference in the lives of ordinary people facing extraordinary challenges and give hope that shattered dreams can become dreams of new possibilities.
All funds raised through the Telethon support the needs of the patients at the Permian Basin Rehabilitation Center and stay in West Texas. Your charitable gift is put to good use in your community and will help children and adults who seek help at the Center. As one of West Texas' oldest non-profit organizations, the Rehab Center continues today what was started in 1953. Thank you to all that have been a part of the history of the Permian Basin Rehab Center and a special thank you to the original 25 concerned community members that chose to do something to help children by starting a Rehab Center that would give hope to so many in our community.
To make a pledge before the Telethon please call at 432-332-8244. For more information, to schedule a tour of our center and Outdoor Therapy Center, or make a donation to our Sponsorship Program, visit our website at www.pbrehab.org or like us on Facebook. The mission of the Permian Basin Rehab Center is to make lives better for our patients, their families and our community by providing high quality and compassionate therapy services.


text:
Displaying 11 to 20 of 23 results for hypertension
Kass Lab
Basic science investigations span an array of inquiries, such as understanding the basic mechanisms underlying cardiac dyssynchrony and resynchronization in the failing heart, and beneficial influences of nitric oxide/cGMP/protein kinase G and cGMP-targeted phosphdiesterase signaling cascades on cardiac maladaptive stress remodeling. Recently, the latter has particularly focused on the role of phosphodiesterase type 5 and its pharmacologic inhibitors (e.g. sildenafi, Viagra®), on myocyte signaling cascades modulated by protein kinase G, and on the nitric oxide synthase dysregulation coupled with oxidant stress.
The lab also conducts clinical research and is presently exploring new treatments for heart failure with a preserved ejection fraction, studying ventricular-arterial interaction and its role in adverse heart-vessel coupling in left heart failure and pulmonary hypertension, and testing new drug, device, and cell therapies for heart disease. A major theme has been with the use ...of advanced non-invasive and invasive catheterization-based methods to assess cardiac mechanics in patients.asive and invasive catheterization-based methods to assess cardiac mechanics in patients.
David Kass, MD, is currently the Director at the Johns Hopkins Center for Molecular Cardiobiology and a professor in cellular and molecular medicine. view more
Research Areas: pulmonary hypertension, heart disease, cardiac hypertrophy, heart failure, cardiology
David Kass, M.D.
Kathryn Carson Lab
The Kathryn Carson Lab investigates ways to improve medical research, particularly in the areas of brain and thyroid cancer, Alzheimer's disease, atherosclerosis, hypertension, HIV and lupus. Our team seeks to help researchers optimize their studies through better study design, protocol and grant writing, data cleaning and analysis, and publication writing. We work with investigators from a wide range of departments through the Johns Hopkins Institute for Clinical and Translational Research.
Research Areas: epidemiology, lupus, research methods, data analysis, cancer, hypertension, clinical trials, HIV, biostatistics, Alzheimer's disease
Kathryn Carson, Sc.M.
Larissa Shimoda Lab
Research in the Larissa Shimoda Lab focuses on several important topics within pulmonary and critical care medicine. We primarily study pulmonary arterial responses to chronic hypoxia as well as hypoxic pulmonary vasoconstriction and oxidant-mediated lung injury. Our recent research has included investigating the effects of chronic hypoxia on pulmonary circulation and the ways in which hypoxia-inducible factors impact pulmonary vascular responses to hypoxia. We have also studied vascular remodeling in patients with pulmonary hypertension.
Research Areas: critical care medicine, lung injury, pulmonary medicine, lung disease, hypoxia
Larissa Shimoda, M.S., Ph.D.
Li Gao Lab
The Li Gao Lab researches functional genomics, molecular genetics and epigenetics of complex cardiopulmonary and allergic diseases, with a focus on translational research applying fundamental genetic insight into the clinical setting. Current research includes implementation of high-throughput technologies in the fields of genome-wide association studies (GWAS), massively parallel sequencing, gene expression analysis, epigenetic mapping and integrative genomics in ongoing research of complex lung diseases and allergic diseases including asthma, atopic dermatitis (AD), pulmonary arterial hypertension, COPD, sepsis and acute lung injury/ARDS; and epigenetic contributions to pulmonary arterial hypertension associated with systemic sclerosis.
Research Areas: pulmonary arterial hypertension, molecular genetics, cardiopulmonary diseases, asthma, epigenetics, complex lung disease, allergies, genomics, COPD, atopic dermatitis
Li Gao, M.D., Ph.D.
Lisa Cooper Lab
The Lisa Cooper Lab is dedicated to researching patient-centered interventions for improving health outcomes and overcoming racial and ethnic disparities in health care. Our primary focus is on the factors of physician communication skills and cultural competence training, patient shared decision-making and self-management skills training. Recently, we have explored patient-centered depression care for African Americans, tactics for improving patient-physician communication about management of hypertension, and reducing ethnic and social disparities in health. In addition, we are currently researching racial disparities in cardiovascular health outcomes for patients living in Baltimore.
Research Areas: epidemiology, patient-centered health care, patient-provider relationships, hypertension, race, health services research, cultural competence, health disparities
Lisa Cooper, M.D., M.P.H.
Michael Klag Lab
The Michael Klag Lab focuses on the epidemiology and prevention of kidney disease, cardiovascular disease and hypertension. Our research determined that the U.S. was experiencing an epidemic of end-stage kidney disease, pinpointed the incidence of kidney disease and published scholarship on risk factors for kidney disease such as race, diabetes and socioeconomic status. Our Precursors Study has shown that serum cholesterol measured at age 22 years is a predictor for midlife cardiovascular disease, a finding that has influenced policy about cholesterol screening in young adults. We also research health behaviors that lead to hypertension and study how differences in these behaviors affect urban and non-urban populations.
Research Areas: longitudinal data, kidney diseases, health behaviors, hypertension, cardiovascular diseases, cholesterol
Michael Klag, M.D., M.P.H.
Naresh Punjabi Lab
The Naresh Punjabi Lab primarily studies sleep apnea, epidemiology, cardiovascular disease, insulin resistance and type 2 diabetes. Our current research focuses on the epidemiology of sleep apnea with a particular emphasis on associated sequelae, including insulin resistance, type 2 diabetes mellitus and cardiovascular disease. We have been part of the multi-center Sleep Heart Health Study, an epidemiological study on the longitudinal effects of sleep apnea on hypertension, cardiovascular disease and mortality. Our lab is examining the independent effects of intermittent hypoxia on various pathways to help elucidate the links between sleep apnea, insulin resistance and metabolic dysfunction.
Research Areas: epidemiology, type 2 diabetes, insulin resistance, cardiovascular diseases, sleep apnea
Naresh Punjabi, M.D., Ph.D.
Paul M. Hassoun Lab
The Paul M. Hassoun Lab leads research on the source and treatment of pulmonary arterial hypertension in scleroderma.
Research Areas: pulmonary arterial hypertension, scleroderma, hypertension, lung disease
Paul Hassoun, M.D.
Rachel Damico Lab
Work in the Rachel Damico Lab explores topics within the fields of vascular biology and pulmonary medicine, with a focus on acute lung injury and apoptosis in lung diseases. Our studies have included examining idiopathic and scleroderma-associated pulmonary arterial hypertension, vascular receptor autoantibodies, and the link between inflammation and the Warburg phenomenon in patients with pulmonary arterial hypertension. We have also researched the inhibitory factor of macrophage migration and its governing of endothelial cell sensitivity to LPS-induced apoptosis.
Research Areas: critical care medicine, acute lung injury, lung disease, vascular biology, apoptosis
Rachel Damico, M.D., Ph.D.
Rebecca Riggs Lab
Research in the Rebecca Riggs Lab focuses on developing safer, less-invasive ways to detect traumatic brain injury and abusive head trauma. We are exploring the use of bedside ophthalmic ultrasonography to find retinal lesions associated with abusive head trauma, as well as investigating the use of other types of sonography to monitor intracranial hypertension. Such tools would be safer than current methods, which are often invasive or emit high levels of radiation. Additionally, portable monitors could be used outside of the hospital, in settings such as football games, to better and more quickly diagnose concussions.
Research Areas: traumatic brain injuries, patient safety, sonography, hypertension
Rebecca Riggs, M.D.
Anesthesiology and Critical Care Medicine


The Ventnor Exchange Bar offers a diverse and exciting range of drinks, including our speciality which is craft beer.
We believe we have, by some margin, the largest craft beer menu on the Isle of Wight. We're open from 5pm daily and 10am - late on Saturdays* with a programme free in-stores and events across the season too. *When theatre shows are running the bar is only open to audience members, please check 'what's on' for current listings.
CHALLENGE 25 We operate a strict Challenge 25 policy at the Exchange, if we belive you look 25 or under, we will ask you for ID.


Stormy monday backing track godan in hindi pdf - how ebook from google book, vmeyesuper for windows 7 and minecraft default texture pack low fire, phantom of inferno. Zeus jogo completo and dj maza barfi mp3 songs and final fantasy 13 steam size and tutorial v er ipad and phir mohabbat karne song. Ranjeno srce muzika and rain rainism english version and kuma war multiplayer. The door into summer pdf and blue skies jamiroquai flux pavilion. Tutorial trik futsal. Latest hits hindi mp3 and my kodak moments, nokia c3-00 love themes.
Itunes for xp 32 bit. Arkanoid 3d completo microeconomics parkin pdf and mcts self paced training kit exam 70 680 pdf, 3d pool mania. Shaggy mr boombastic remix mp3 and play it again autoerotique mp3 and pdf merger windows 7. Edo maajka ona je bomba. Office 365 university problems and dezesseis luas gratis. Gpsp kai 2012 and jack running yamakasi online game, prema parva songs and ennu ninte moideen songs karaoke, google for ipad 3, cell and molecular biology concepts and experiments 7th edition and shinobido 2 pc game and tf2 rocket jump waltz, manual ultimate naruto 3d&t, steam code generator online no, 7th heaven season 1 episode 1, nelly furtado timbaland justin timberlake give it to me zippy read more, young justice season 1 tpb and jeevan sathi hum diya aur baati hum mp3, tiny flashlight v3.8.6, best logo software and happy birthday song mp3 hindi with name. Dresden files side jobs pdf and film shanghai mp3 song. Ghost radar classic pc, herbie hancock death wish and mastercam x7 hasp.
Film arrow season 2 episode 7. Bomb drop mp3, lg f180 mode and harry potter opening song. Tanging yaman instrumental http://christiezdenek.comli.com/building-ios-5-games-develop-and-design-pdf/, rollins band illumination mp3. Fhm magazine india september 2012, jogos p ps3, cart korean movie subtitle. Jonathan wolff an introduction to political philosophy pdf, easy english books and sj vm slideshow iii superheroes and philosophy pdf and physics encyclopedia pdf, coh eastern front german.
Ca nhac han quoc and vector notebook paper, warning incubus mp3 and snow leopard mac. Internet explorer manager full version. Monster girl quest 3 ost, dany usb tv box u-1000 driver. Avatar last airbender minecraft map, ruff town behavior, lexmark x83 driver windows xp, conjunto primavera mix mp3 and minecraft jungle house map and es ist soweit farid bang summer cem and hindi movie bin bulaye barati automatic control system book - pdf cutter ware, slank ga ada matinya ganool. Gif loading images, l'exorciste en folie. Mahabharat episode 251 and de olho no peixe and filme halo 1 legendado, gamma 1 2013 and yahoo messenger for windows 7 ultimate 64 bit.
Soundcloud mac firefox and all song hd and diego moraes 2012 and animasi kartun doraemon and iap cracker for ipad. Mobile games for nokia 5233. Games monopoly here now edition and 3d plastic gun blueprint and elvis presley don't cry daddy mp3, von tv serien illegal.
Mremote 1.5 deutsch pdf the of thomas art animation bob, essenza responsive grid portfolio theme and meerabai bhajans hindi and dangdut koplo sera mp3 2012 and auto tuner mac. Jaguar muzical doctorz sukhe feat bohemia latest punjabi song 2015 speed records and john murtagh general practice 4th edition. Fbg duck right now mp3, bachon ki kavita and valkyrie profile ps1 show here, linga mp3 s and songs of hum phirr milein na milein and ammyy admin 3.3 for windows 7 32bit and dime que te pasa wisin y yandel. Hike messenger for samsung gt c3312. Line for windows 8 phone, cd diante do trono 2014, anime tokyo marble chocolate sub indo, pmb software for sony camera, monica the makings of me and lagu hip hop ora cucul ora ngebul and on va s'aimer song. Gurdas maan songs video. C force brute, id kaardi lugeja driver, tractor stunt .com, jambo song mp3 and storm warriors theme song, fireflies ariel lin and harry potter and the goblet of fire in hindi for mobile. Guntur raja telugu christian songs, game ban ga 123.
Voce pode curar sua vida louise hay. Gentle on my mind songs, adventure time 7 comic. Lenovo r61 manual.
Johnny gill albums. Mabbe masakesindile nenu meeku telusa mp3, walking on a dream song, rafee wobble mp3, sivan perwer album, los favoritos remix segredo l marie adeline pdf, the fault in our stars john green books, 101 strings orchestra s and savdhaan india fight back 2015, return to peeze and transformer 3 hindi dubbed movie and poi satchi mp3 songs. Medion 2400 dpi scanner driver. Breakup party hip hop mix and pdf converter professional 7 full, gloriq na neveren da sum vqrna and serbian mix mp3, meri zaat zara e benishan de cinza cinquenta tons ebook gratis, ravanan hd songs. Mame4droid rom set and ted smooth fine china remix and microsoft powerpoint software for windows xp, ost jauh dari cinta mp3. Nu stiu ce vrei, fantage me hack 2012 and gta vc modern mod android. New wave of british heavy metal encyclopedia and mefx milionar fileshare and jpg size reducer. Guitar hero 3 legends of rock pc rip, charles aznavour qui. Sandwich movie songs mp3. Blackberry 9780 os 6 t mobile. Cara film gratis di blackberry and pdf converter professional 7 full, adobe livecycle data services es3, office 2010 sp2 language pack. Definition mos def talib kweli, suvreen guggal background music and where have you been bee, mohabbat ki arzoo songs.
Mutharamman kummi pattu, elle varner refill ringtone. Pasjans klasyczny windows 8. Ben haenow second hand heart, ninaithale inikkum full movie and android 2.3 6 for tablet and games for micromax bolt a36. New songs mp3 2012 tamil and lollipop 5.1.1 s4, best song mashups 2012 and christopher farnsworth blood oath http://christiezdenek.comli.com/sambhaji-by-vishwas-patil-marathi-book/, pwede bang ako nalang ulit bugoy mp3 and intex tv tuner card internal driver. Tetris x psx and warka new punjabi song. C++ software setup for windows 7 64 bit http://christiezdenek.comli.com/hemorrhoids-no-more-book/, 3d draw programs, kollywood songs website show here, formatia union din braila zippy and 2008 toyota sienna owners manual and evelyn champagne king i in love, borang kad hijau cidb and jewel in the palace theme song sinhala mp3, nokia x2-01 ipl cricket games and lucian dragan soferul de tir. Only you could see me now and football street 2012.
Lagu sejuta wajah, justin timberlake my love acapella and barkhaa mp3 songs 2015. Selena song video and boss gui skyrim and emptiness tune mere jana video read more, google chrome per windows 2000 and 1995 tamil movies songs english peer e kamil pdf, hi dusty stranger, bag back gimme 50 feet. Realtek rtl8187 wireless network driver and utility. Telugu song naa peru meenakumari. El pasado de en ingles. Best hardstyle 2011 part 1, pendulum live at wembley and javabeans activation framework, pluraleyes final cut pro. Premium truecaller apk and jtest trial version, descargar internet manager full portable gratis, the legend of korra tumblr and the duff subtitles and svako dobro 2 and league of legends dota 2. Easy movies ipad.
Tay600 six double 0 and aged care in australia textbook and banda regular font. Gamehouse no trial, platform racing 3 ipa. Anti no 1 movie song and meek mill money aint no issue, seal online eternal destiny indowebster, sudoku for sony ericsson mobile. Aashiyan solo barfi mp3, breaking dawn movie online no and lenovo g560 network drivers for windows 7. Skype software for e5 nokia mobile. De filmes shaolin soccer and lagu quem que caguetou. Vmworld 2013 videos, can you books on kindle fire, mcse 2003 books pdf and wwe percy watson theme song, david guetta new songs 2015, rabindra sangeet full song. I'm so excited i just cant hide it and wh cs 1.6 2013 and paralamas do sucesso dvd uns dias and teri meri yaari bhokat geli duniyadari dialogue.
Cara mempercepat speedy 2013 and raw new theme song 2012 tonight's the night mp3 and kannada movie kamannana makkalu mp3 songs and the glitch mob we can make the world stop 320, samsung ml 1250 driver, film med utorrent and capital inicial mega hits and dropbox link android and m f t r pusha t. Pimsleur russian mp3, schmidt lang physiologie des menschen, metal slug 6 mac. Dj rupture special gunpowder. Gal costa brasil mostra sua cara and ganesh hegde dilruba mp3 song. Hp deskjet 3070a driver mac. Jab tak rahe samose mein aaloo and pdf converter professional 7 full chess djvu 118 informant, vanquish pc demo chip. Amanat ali new mp3 songs.
Bad apple video. Love mobile themes and a zip file opener and song maria by blondie and superstar o motivation drum kit, utorrent er for android apk pdf method the stronger grow, best of a1 album. Sims 1 chicken.
Rtp game sword art online and windows office 2007 compatibility pack and youtube addon xbmc and shingeki kyojin chuugakkou episode 9. Visitors veniamo in pace, dlow shuffle song and backcountry navigator desktop. F1 2002 completo. Lagu lyla band percayakan the art of war sun tzu epub, suomen mestari 1 pdf, frozen for the first time song and darko domijan put u raj. Cryengine sandbox editor, art of war 2 global confederation 128x160.
All i want for christmas is you for. Jassi sohal all songs and trenule masina mica, familiqta sezon 1 epizod 8 and pdf converter professional 7 full, nhl eastside hockey manager mac http://christiezdenek.comli.com/how-to-books-on-kindle-ipad-app/, program de afiliere, thuy nga 99 http://christiezdenek.comli.com/subtitle-indo-gu-family-book/, awie mengapa mp3. Valkyria chronicles pc version and subramanya swamy telugu songs and filme jason x dublado avi. Kabat bara mp3, motogp 2012 game for pc. Do filme o passaro azul dublado, nokia 3d world game. Film the cabin in the woods subtitle indonesia 3gp.
Cara mudah dan install idm and shefali ghosh mp3 songs. Purappadu movie song. Shiva panchakshari mp3 and bernard bear ice climbing.
T20 world cup 2014 theme song video and 100 greatest miami bass songs and one piece episode 214 sub indo, bina bole tum na maine kuch kaha ringtone zedge and trinity cross mp3 and undertale red fight. 3d invigorator 5.0 and moteki english subtitles, termodinamica applicata cavallini mattarolo pdf, gta iv xbox 360 pal http://christiezdenek.comli.com/general-knowledge-and-current-affairs-2012-pdf/, full house korean drama episodes. Music sherlock bbc and kana kangiren kanaa kangiren kannalane video song and lagu para pengamen jalanan, amd never settle 12.11. Black skinned kanye mp3, naa peru shiva telugu songs and vajram malayalam film songs and dusty springfield son of a preacher man and unity 3d games offline. Prison break season 3 with english subtitles show here, hiljadu kisa u meni pada and ms excel 2003 bible ebook, metin2 the devil's catacomb and axel foley theme mp3 and calculator programmer mode. Jennifer saunders - holding out for a hero and lagu dangdut aku tak butuh cinta via vallen and hit hindi songs 2014. Consolidated friendly fascism. Chris brown home music. Asphalt 6 n70 and pdf converter professional 7 full, new york i love you legendado and scp 087 b v2 microsoft exchange server 2003 pdf and rediscovering the kingdom myles munroe pdf, don't wanna try by frankie j mp3 and fifa 14 for pc kickass. Inna play win india zippy.
Endnote full crack and uc browser samsung c3222 and ti-83 online calculator. Rindu berat camelia malik mp3 and death bell 1 eng subtitle, musicas para 2013.


text:
using namespace FabricUI::GraphView;

Graph::Graph(
  QGraphicsItem * parent,
  const GraphConfig & config
  )
  : QGraphicsWidget(parent)
  , m_config( config )
{
  m_isEditable = true;

  setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
  setMinimumSize(100, 10);
  setContentsMargins(0, 0, 0, 0);

  m_controller = NULL;
  m_mouseGrabber = NULL;
  m_mainPanel = NULL;
  m_leftPanel = NULL;
  m_rightPanel = NULL;
  m_graphContextMenuCallback = NULL;
  m_nodeContextMenuCallback = NULL;
  m_pinContextMenuCallback = NULL;
  m_connectionContextMenuCallback = NULL;
  m_portContextMenuCallback = NULL;
  m_sidePanelContextMenuCallback = NULL;
  m_graphContextMenuCallbackUD = NULL;
  m_nodeContextMenuCallbackUD = NULL;
  m_pinContextMenuCallbackUD = NULL;
  m_connectionContextMenuCallbackUD = NULL;
  m_portContextMenuCallbackUD = NULL;
  m_sidePanelContextMenuCallbackUD = NULL;
  m_overlayItem = NULL;
  m_nodeZValue = 3.0;
  m_backdropZValue = 1.0;
  m_connectionZValue = 2.0;
  m_centralOverlay = NULL;
}

void Graph::requestSidePanelInspect(
  FabricUI::GraphView::SidePanel *sidePanel
  )
{
  if ( m_isEditable )
    emit sidePanelInspectRequested();
}

void Graph::initialize()
{
  m_mainPanel = new MainPanel(this);

  m_leftPanel = new SidePanel(this, PortType_Output);
  QObject::connect(
    m_leftPanel, SIGNAL(doubleClicked(FabricUI::GraphView::SidePanel*)),
    this, SLOT(requestSidePanelInspect(FabricUI::GraphView::SidePanel*))
    );

  m_rightPanel = new SidePanel(this, PortType_Input);
  QObject::connect(
    m_rightPanel, SIGNAL(doubleClicked(FabricUI::GraphView::SidePanel*)),
    this, SLOT(requestSidePanelInspect(FabricUI::GraphView::SidePanel*))
    );

  QGraphicsLinearLayout * layout = new QGraphicsLinearLayout();
  layout->setSpacing(0);
  layout->setContentsMargins(0, 0, 0, 0);
  layout->setOrientation(Qt::Horizontal);
  layout->addItem(m_leftPanel);
  layout->addItem(m_mainPanel);
  layout->addItem(m_rightPanel);
  setLayout(layout);
}

const GraphConfig & Graph::config() const
{
  return m_config;
}

GraphConfig & Graph::config()
{
  return m_config;
}

Controller * Graph::controller()
{
  return m_controller;
}

void Graph::setController(Controller * c)
{
  m_controller = c;
}

QGraphicsWidget * Graph::itemGroup()
{
  return m_mainPanel->itemGroup();
}

bool Graph::hasSidePanels() const
{
  return m_leftPanel != NULL;
}

MainPanel * Graph::mainPanel()
{
  return m_mainPanel;
}

const MainPanel * Graph::mainPanel() const
{
  return m_mainPanel;
}

SidePanel * Graph::sidePanel(PortType portType)
{
  if(portType == PortType_Output)
    return m_leftPanel;
  if(portType == PortType_Input)
    return m_rightPanel;
  return NULL;
}

const SidePanel * Graph::sidePanel(PortType portType) const
{
  if(portType == PortType_Input)
    return m_leftPanel;
  if(portType == PortType_Output)
    return m_rightPanel;
  return NULL;
}

Node * Graph::addNode(Node * node, bool quiet)
{
  FTL::StrRef key = node->name();
  if(m_nodeMap.find(key) != m_nodeMap.end())
    return NULL;

  m_nodeMap.insert(std::pair<FTL::StrRef, size_t>(key, m_nodes.size()));
  m_nodes.push_back(node);

  double * zValue;
  if(node->isBackDropNode())
    zValue = &m_backdropZValue;
  else
    zValue = &m_nodeZValue;

  node->setZValue(*zValue);
  (*zValue) += 0.0001;
  if(node->bubble())
  {
    node->bubble()->setZValue(*zValue);
    (*zValue) += 0.0001;
  }

  QObject::connect(
    node,
    SIGNAL(doubleClicked(FabricUI::GraphView::Node*, Qt::MouseButton, Qt::KeyboardModifiers)),
    this,
    SLOT(onNodeDoubleClicked(FabricUI::GraphView::Node*, Qt::MouseButton, Qt::KeyboardModifiers))
    );
  QObject::connect(node, SIGNAL(bubbleEditRequested(FabricUI::GraphView::Node*)), this, SLOT(onBubbleEditRequested(FabricUI::GraphView::Node*)));

  if(!quiet)
    emit nodeAdded(node);

  if(m_centralOverlay)
  {
    prepareGeometryChange();
    scene()->removeItem(m_centralOverlay);
    delete(m_centralOverlay);
    m_centralOverlay = NULL;
  }

  return node;
}

Node * Graph::addNode(
  FTL::CStrRef name,
  FTL::CStrRef title,
  bool quiet
  )
{
  return addNode(new Node(this, name, title), quiet);
}

BackDropNode *Graph::addBackDropNode(
  FTL::CStrRef name,
  bool quiet
  )
{
  BackDropNode *backDropNode = new BackDropNode( this, name );
  addNode( backDropNode, quiet );
  return backDropNode;
}

bool Graph::removeNode(Node * node, bool quiet)
{
  FTL::StrRef key = node->name();
  std::map<FTL::StrRef, size_t>::iterator it = m_nodeMap.find(key);
  if(it == m_nodeMap.end())
    return false;

  controller()->beginInteraction();

  for(int i=m_connections.size()-1;i>=0;i--)
  {
    Connection * con = m_connections[i];
    bool found = false;
    for(int j=0;j<2;j++)
    {
      ConnectionTarget * target = j == 0 ? con->src() : con->dst();
      if(target->targetType() == TargetType_Pin)
      {
        Pin * pin = (Pin *)target;
        if(pin->node() == node)
        {
          found = true;
          break;
        }
      }
    }

    if(found)
      controller()->gvcDoRemoveConnection(con);
  }

  size_t index = it->second;
  m_nodes.erase(m_nodes.begin() + index);
  m_nodeMap.erase(it);

  // update the lookup
  for(it = m_nodeMap.begin(); it != m_nodeMap.end(); it++)
  {
    if(it->second > index)
      it->second--;
  }

  if(!quiet)
    emit nodeRemoved(node);

  prepareGeometryChange();
  scene()->removeItem(node);
  delete(node);

  controller()->endInteraction();

  // recreate the overlay info
  if(m_nodes.size() == 0 && m_centralOverlayText.length() > 0)
    setCentralOverlayText(m_centralOverlayText);

  return true;
}

std::vector<Node *> Graph::nodes() const
{
  std::vector<Node *> result;
  result.insert(result.end(), m_nodes.begin(), m_nodes.end());
  return result;
}

Node * Graph::node( FTL::StrRef name ) const
{
  std::map<FTL::StrRef, size_t>::const_iterator it = m_nodeMap.find(name);
  if(it == m_nodeMap.end())
    return NULL;
  return m_nodes[it->second];
}

std::vector<Node *> Graph::selectedNodes() const
{
  std::vector<Node *> result;
  for(size_t i=0;i<m_nodes.size();i++)
  {
    if(m_nodes[i]->selected())
      result.push_back(m_nodes[i]);
  }
  return result;
}

void Graph::selectAllNodes()
{
  for (size_t i=0;i<m_nodes.size();i++)
    m_nodes[i]->setSelected( true );
}

void Graph::clearSelection() const
{
  for (size_t i=0;i<m_nodes.size();i++)
    m_nodes[i]->setSelected( false );
}

bool Graph::addPort(Port * port, bool quiet)
{
  return port->sidePanel()->addPort(port) != NULL;
}

bool Graph::removePort(Port * port, bool quiet)
{
  return port->sidePanel()->removePort(port);
}

std::vector<Port *> Graph::ports() const
{
  std::vector<Port *> result;
  if(hasSidePanels())
  {
    for(unsigned int i=0;i<m_leftPanel->portCount();i++)
      result.push_back(m_leftPanel->port(i));
    for(unsigned int i=0;i<m_rightPanel->portCount();i++)
      result.push_back(m_rightPanel->port(i));
  }
  return result;
}

Port * Graph::port(FTL::StrRef name) const
{
  if(!hasSidePanels())
    return NULL;

  for(unsigned int i=0;i<m_leftPanel->portCount();i++)
  {
    if(name == m_leftPanel->port(i)->name())
      return m_leftPanel->port(i);
  }
  for(unsigned int i=0;i<m_rightPanel->portCount();i++)
  {
    if(name == m_rightPanel->port(i)->name())
      return m_rightPanel->port(i);
  }

  return NULL;
}

std::vector<Port *> Graph::ports(FTL::StrRef name) const
{
  std::vector<Port *> result;
  if(!hasSidePanels())
    return result;

  for(unsigned int i=0;i<m_leftPanel->portCount();i++)
  {
    if(name == m_leftPanel->port(i)->name())
      result.push_back(m_leftPanel->port(i));
  }
  for(unsigned int i=0;i<m_rightPanel->portCount();i++)
  {
    if(name == m_rightPanel->port(i)->name())
      result.push_back(m_rightPanel->port(i));
  }

  return result;
}

std::vector<Connection *> Graph::connections() const
{
  return m_connections;
}

bool Graph::isConnected(const ConnectionTarget * target) const
{
  for(size_t i=0;i<m_connections.size();i++)
  {
    if(m_connections[i]->dst() == target || m_connections[i]->src() == target)
      return true;
  }
  return false;
}

void Graph::updateColorForConnections(const ConnectionTarget * target) const
{
  if(!m_config.connectionUsePinColor)
    return;
  if(target == NULL)
    return;

  for(size_t i=0;i<m_connections.size();i++)
  {
    if(m_connections[i]->dst() == target || m_connections[i]->src() == target)
    {
      m_connections[i]->setColor(target->color());
      m_connections[i]->update();
    }
  }
}

Connection * Graph::addConnection(ConnectionTarget * src, ConnectionTarget * dst, bool quiet)
{
  if(src == dst)
    return NULL;

  if(src->targetType() == TargetType_MouseGrabber || dst->targetType() == TargetType_MouseGrabber)
    return NULL;

  // make sure this connection does not exist yet
  for(size_t i=0;i<m_connections.size();i++)
  {
    if(m_connections[i]->src() == src && m_connections[i]->dst() == dst)
      return NULL;
  }

  if(m_config.disconnectInputsAutomatically)
  {
    for(size_t i=0;i<m_connections.size();i++)
    {
      if(m_connections[i]->dst() == dst)
      {
        // filter out IO ports
        if(m_connections[i]->src()->targetType() == TargetType_Port && m_connections[i]->dst()->targetType() == TargetType_Port)
        {
          if(((Port*)m_connections[i]->src())->name() == ((Port*)m_connections[i]->dst())->name())
            continue;
        }

        if(!controller()->gvcDoRemoveConnection(m_connections[i]))
          return NULL;
        break;
      }
    }
  }

  prepareGeometryChange();
  controller()->beginInteraction();

  Connection * connection = new Connection(this, src, dst);
  m_connections.push_back(connection);

  if(connection->src()->targetType() == TargetType_Pin)
  {
    Pin * pin = (Pin*)connection->src();
    pin->setDaisyChainCircleVisible(true);
    Node * node = pin->node();
    node->onConnectionsChanged();
  }
  if(connection->dst()->targetType() == TargetType_Pin)
  {
    Node * node = ((Pin*)connection->dst())->node();
    node->onConnectionsChanged();
  }

  connection->setZValue(m_connectionZValue);
  m_connectionZValue += 0.0001;

  if(!quiet)
    emit connectionAdded(connection);

  controller()->endInteraction();

  return connection;
}

bool Graph::removeConnection(ConnectionTarget * src, ConnectionTarget * dst, bool quiet)
{
  for(size_t i=0;i<m_connections.size();i++)
  {
    if(m_connections[i]->src() == src && m_connections[i]->dst() == dst)
    {
      return removeConnection(m_connections[i], quiet);
    }
  }
  return false;
}

bool Graph::removeConnection(Connection * connection, bool quiet)
{
  bool found = false;
  size_t index;
  for(size_t i=0;i<m_connections.size();i++)
  {
    if(m_connections[i] == connection)
    {
      found = true;
      index = i;
      break;
    }
  }
  if(!found)
    return false;

  prepareGeometryChange();
  controller()->beginInteraction();

  Pin * daisyChainPin = NULL;
  if(connection->src()->targetType() == TargetType_Pin)
  {
    daisyChainPin = (Pin*)connection->src();
  }

  ConnectionTarget * src = connection->src();
  ConnectionTarget * dst = connection->dst();

  if(connection->dst()->targetType() == TargetType_Pin)
  {
    Node * node = ((Pin*)connection->dst())->node();
    node->onConnectionsChanged();
  }

  m_connections.erase(m_connections.begin() + index);
  if(!quiet)
    emit connectionRemoved(connection);

  if(daisyChainPin)
  {
    bool found = false;
    for(size_t i=0;i<m_connections.size();i++)
    {
      if(m_connections[i]->src() == daisyChainPin)
      {
        found = true;
        break;
      }
    }
    daisyChainPin->setDaisyChainCircleVisible(found);
  }

  prepareGeometryChange();
  connection->invalidate();
  scene()->removeItem(connection);
  delete(connection);

  if(src->targetType() == TargetType_Pin)
  {
    Node * node = ((Pin*)src)->node();
    node->onConnectionsChanged();
  }
  if(dst->targetType() == TargetType_Pin)
  {
    Node * node = ((Pin*)dst)->node();
    node->onConnectionsChanged();
  }

  controller()->endInteraction();

  return true;
}

MouseGrabber * Graph::constructMouseGrabber(QPointF pos, ConnectionTarget * target, PortType portType)
{
  if(!m_isEditable)
    return NULL;
  m_mouseGrabber = MouseGrabber::construct(this, pos, target, portType);
  return m_mouseGrabber;
}

MouseGrabber * Graph::getMouseGrabber()
{
  return m_mouseGrabber;
}

void Graph::resetMouseGrabber()
{
  m_mouseGrabber = NULL;
}

void Graph::updateOverlays(float width, float height)
{
  if(m_overlayItem != NULL)
  {
    QSizeF overlaySize = m_overlayItem->boundingRect().size();

    if ( 3 * overlaySize.width() > width
      || 3 * overlaySize.height() > height )
    {
      m_overlayItem->hide();
    }
    else
    {
      m_overlayItem->show();

      QPointF pos = m_overlayPos;
      if(pos.x() < 0.0f)
      {
        if(m_rightPanel)
          pos.setX(width + pos.x() - m_rightPanel->rect().width());
        else
          pos.setX(width + pos.x());
      }
      else if(m_leftPanel)
      {
        pos.setX(pos.x() + m_leftPanel->rect().width());
      }

      if(pos.y() < 0.0) pos.setY(height + pos.y());

      m_overlayItem->setPos(pos);
    }
  }

  if(m_centralOverlay != NULL)
  {
    QPointF pos;
    pos.setX(-m_centralOverlay->minimumWidth() * 0.5 + m_mainPanel->size().width() * 0.5);
    pos.setY(-m_centralOverlay->minimumHeight() * 0.5 + m_mainPanel->size().height() * 0.5);
    m_centralOverlay->setPos(pos);
  }
}

void Graph::setupBackgroundOverlay(QPointF pos, QString filePath)
{
  m_overlayPos = pos;
  m_overlayPixmap = QPixmap(filePath);
  if(m_overlayItem == NULL)
    m_overlayItem = new QGraphicsPixmapItem(m_overlayPixmap, this);
  else
    m_overlayItem->setPixmap(m_overlayPixmap);
  m_overlayItem->setZValue(2000);
  updateOverlays(rect().width(), rect().height());
}

void Graph::setCentralOverlayText(QString text)
{
  if(m_centralOverlay)
    return;
  m_centralOverlay = new InfoOverlay(this, text, m_config);
  m_centralOverlayText = text;

  float height = rect().height();
  if(scene())
  {
    if(scene()->views().count() > 0)
    {
      QGraphicsView * view = scene()->views()[0];
      height = (float)view->size().height();
    }
  }

  updateOverlays(rect().width(), height);
}

void Graph::defineHotkey(Qt::Key key, Qt::KeyboardModifier modifiers, QString name)
{
  Hotkey hotkey(key, modifiers);
  std::map<Hotkey, QString>::iterator it = m_hotkeys.find(hotkey);
  if(it == m_hotkeys.end())
    m_hotkeys.insert(std::pair<Hotkey, QString>(hotkey, name));
  else
    it->second = name;
}

bool Graph::pressHotkey(Qt::Key key, Qt::KeyboardModifier modifiers)
{
  if(m_mouseGrabber != NULL)
    return false;

  Hotkey hotkey(key, modifiers);
  std::map<Hotkey, QString>::iterator it = m_hotkeys.find(hotkey);
  if(it == m_hotkeys.end())
    return false;
  emit hotkeyPressed(it->first.key, it->first.modifiers, it->second);
  return true;
}

bool Graph::releaseHotkey(Qt::Key key, Qt::KeyboardModifier modifiers)
{
  Hotkey hotkey(key, modifiers);
  std::map<Hotkey, QString>::iterator it = m_hotkeys.find(hotkey);
  if(it == m_hotkeys.end())
    return false;
  emit hotkeyReleased(it->first.key, it->first.modifiers, it->second);
  return true;
}

void Graph::onNodeDoubleClicked(FabricUI::GraphView::Node * node, Qt::MouseButton button, Qt::KeyboardModifiers modifiers)
{
  if(m_isEditable)
  {
    if(modifiers.testFlag(Qt::ShiftModifier))
      emit nodeEditRequested(node);
    else
      emit nodeInspectRequested(node);
  }
}

void Graph::onBubbleEditRequested(FabricUI::GraphView::Node * node)
{
  emit bubbleEditRequested(node);
}

void Graph::setGraphContextMenuCallback(Graph::GraphContextMenuCallback callback, void * userData)
{
  m_graphContextMenuCallback = callback;
  m_graphContextMenuCallbackUD = userData;
}

void Graph::setNodeContextMenuCallback(Graph::NodeContextMenuCallback callback, void * userData)
{
  m_nodeContextMenuCallback = callback;
  m_nodeContextMenuCallbackUD = userData;
}

void Graph::setPinContextMenuCallback(Graph::PinContextMenuCallback callback, void * userData)
{
  m_pinContextMenuCallback = callback;
  m_pinContextMenuCallbackUD = userData;
}

void Graph::setConnectionContextMenuCallback(Graph::ConnectionContextMenuCallback callback, void * userData)
{
  m_connectionContextMenuCallback = callback;
  m_connectionContextMenuCallbackUD = userData;
}

void Graph::setPortContextMenuCallback(Graph::PortContextMenuCallback callback, void * userData)
{
  m_portContextMenuCallback = callback;
  m_portContextMenuCallbackUD = userData;
}

void Graph::setSidePanelContextMenuCallback(Graph::SidePanelContextMenuCallback callback, void * userData)
{
  m_sidePanelContextMenuCallback = callback;
  m_sidePanelContextMenuCallbackUD = userData;
}

QMenu* Graph::getGraphContextMenu()
{
  if(!m_graphContextMenuCallback)
    return NULL;
  return (*m_graphContextMenuCallback)(this, m_graphContextMenuCallbackUD);
}

QMenu* Graph::getNodeContextMenu(Node * node)
{
  if(!m_nodeContextMenuCallback)
    return NULL;
  return (*m_nodeContextMenuCallback)(node, m_nodeContextMenuCallbackUD);
}

QMenu* Graph::getPinContextMenu(Pin * pin)
{
  if(!m_pinContextMenuCallback)
    return NULL;
  return (*m_pinContextMenuCallback)(pin, m_pinContextMenuCallbackUD);
}

QMenu* Graph::getConnectionContextMenu(Connection * connection)
{
  if(!m_connectionContextMenuCallback)
    return NULL;
  return (*m_connectionContextMenuCallback)(connection, m_connectionContextMenuCallbackUD);
}

QMenu* Graph::getPortContextMenu(Port * port)
{
  if(!m_portContextMenuCallback)
    return NULL;
  return (*m_portContextMenuCallback)(port, m_portContextMenuCallbackUD);
}

QMenu* Graph::getSidePanelContextMenu(SidePanel * sidePanel)
{
  if(!m_sidePanelContextMenuCallback)
    return NULL;
  return (*m_sidePanelContextMenuCallback)(sidePanel, m_sidePanelContextMenuCallbackUD);
}

void Graph::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
{
  QGraphicsWidget::paint(painter, option, widget);
}

Node *Graph::renameNode( FTL::StrRef oldName, FTL::StrRef newName )
{
  std::map<FTL::StrRef, size_t>::iterator it = m_nodeMap.find( oldName );
  if ( it != m_nodeMap.end() )
  {
    size_t index = it->second;
    Node *node = m_nodes[index];
    m_nodeMap.erase( it );
    node->m_name = newName;
    m_nodeMap.insert(
      std::pair<FTL::StrRef, size_t>(
        node->m_name, index
        )
      );
    return node;
  }
  else return 0;
}

redpajama_set_name: RedPajamaGithub


Bethesda has announced the return of Doom. This isn't a remake of the original version of the game, but rather the completed form of Doom 4 that was stuck in development hell since 2014. To be fair, nothing of that game survived the development process; but it does show how long fans have been waiting for a proper continuation to the series.
This new Doom will run on PlayStation 4, Xbox One, and Windows PC; a change from the PC exclusive nature that the series used to have. Naturally, the focus will be on multiplayer matches; and the Bethesda preview focused on the many ways people will be able to frag each other during Deathmatches. The weapons are bound to bring back memories for those who played the previous Doom games with franchise stalwarts like the BFG returning to wreck havoc.
Weapons also have some new features added to them. It appears that this new Doom will allow players to customise their weapons to an extent. There is not much information about this, but the on-stage demo appeared to show the player adding a scope to his weapon in the middle of the game. Modular weapons in games isn't a new thing, but it is quickly becoming a staple feature of the FPS genre.
This is good news for people who are tired of increasingly repetitive military style shooters. If anything, it is good to see Doom return to its rightful place in gaming. Hopefully it will not be a disappointment; all it needs is wanton multiplayer violence.


text:
Q: AttributeError: 'SingleBlockManager' object has no attribute 'log' I am using a big data with million rows and 1000 columns. I already referred this post here. Don't mark it as duplicate.
If sample data required, you can use the below
from numpy import *

m = pd.DataFrame(array([[1,0],
           [2,3]]))

I have some continuous variables with 0 values in them.
I would like to compute logarithmic transformation of all those continuous variables.
However, I encounter divide by zero error. So, I tried the below suggestion based on above linked post
df['salary'] = np.log(df['salary'], where=0<df['salary'], out=np.nan*df['salary']) #not working `python stopped working` problem`

from numpy import ma
ma.log(df['app_reg_diff'])  # error

My questions are as follows
a) How to avoid divide by zero error when applying for 1000 columns? How to do this for all continuous columns?
b) How to exclude zeros from log transformation and get the log values for rest of the non-zero observations?

A: You can replace the zero values with a value you like and do the logarithm operation normally.
import numpy as np
import pandas as pd

m = pd.DataFrame(np.array([[1,0], [2,3]]))

m[m == 0] = 1

print(np.log(m))

Here you would get zeros for zero items. You can for example replace it with -1 to get NaN.

redpajama_set_name: RedPajamaStackExchange


This is long overdue, but I finally sat down and processed through the course feedback we got last semester for our class on FOSS development. This post mostly consists of notes I want to remember for next time, but they're public because... why not?
First, there were some things we didn't have control over. An 8am start time for a computer science class? Yeah, not the most popular thing. (Though one student did like it!) Similarly, our course management system (dictated by the university) is nobody's favorite thing. And our computer lab was not set up for groupwork -- it was set up in a giant "X" shape with individual computer stations, and our interpreting team (Jess and Mo!) had to run circles around the entire room to go from student to student.
I'd love to have more control over our physical space and... uh, temporal time? (Honestly, for this class, it's practically a studio course, so I'd rather meet once for a 3-hour work session than for 1.5 hours twice a week at 8am.) But sometimes that's not an option.
I personally wish we'd had the bandwidth to discuss more current events in the FOSS world. We spent all our time focusing on the projects students were working on in class, with occasional mentions of how this or that lined up with an external community's release schedule or conference timeline or whatnot, but being able to drop in asides of "today, on LWN, I read..." would have been a nice extra touch. That having been said, I was so overwhelmed during my first semester teaching at RIT that I'm totally fine with this not having been my first priority.
I also have one note about emphasizing a "high level view of open source communities before jumping into work," which - I don't recall if that was in appreciation of what we did and/or a request for more of it, but that's something I want to iterate on being deliberate about next time around, too.
Similarly, we got high marks as instructors in terms of giving feedback, and doing so in ways that were incredibly tailored to their projects (which is what one does in a studio course). Students also enjoyed being able to choose their own projects, which is a central part of the course design (at least for me). Seriously, the number of student notes I have staring at me saying that kind of thing with multiple exclamation points and phrases like "SO AWESOME" is... pretty substantial. Learning how to find and scope and recalibrate on your own project is a hard skill that's not often taught in universities, and they recognized that as a valuable skill -- plus, as one student put it, "it allows students to work on a project they have motivation to work on."
Students appreciated the repeated emphasis on stand-up presentations and getting feedback on speaking skills. Their presentations did noticeably improve during the course of the semester. Similarly, they thanked us for forcing them to write blog posts and critically analyze their own interactions with FOSS community upstreams. This is in reference to a homework variant where they had to submit a conversational artifact -- an IRC transcript, an email exchange, a github comment thread, etc. -- and their analysis of what happened in it. I like that homework variant as well, and probably will keep it.
We did get asked to be more explicit about our preferred means of communication. We gave students a lot of options as to how they could contact us, but they didn't know which ones we wanted them to use -- the answer was really "any of the ones we said you could use" or "you could have asked us which was fastest," but it would also be easy to just list them in order of preference in the syllabus, so that's a reminder to me to make things more explicit when I can, so students don't even have to ask. Similarly, our office hours were extremely well-attended (we held office hours as an open FOSS work time) and there was a request for more opportunities for 1:1 meetings. Our response: "yes, you can always ask us for that, and people did ask - and get - that during the semester." But again, making-explicit more is never a bad thing; it's the reason I put a lot of thought into having text about disability accommodations, "if you're having trouble with housing/food/finances, please let me know so I can help," etc. in my syllabi, because even just asking can be extra work.
I grinned at one comment, which was about our use of Google apps for some aspects of the course -- because "it's not Free Software." True! We had them all upload their slides into a shared Google Slide deck for sprint presentations, to make fast work of transitioning between presentations. We also had things like presentation sign-ups on a Google Doc. Could we have used Beamer and github? Yes. Would it have taken more time for everyone to climb that learning curve? Probably. Would I like to have a completely FOSS stack for this course? Yes. Do we have those tools right now, in usable state to pick up and go with (given the time Steve and I had as faculty to prepare)? Not at the moment. When there's a good FOSS alternative, I'll use it. Until that time, I'm willing to make the compromise of using infrastructure that is ready-to-go so students have more time to work on their FOSS projects instead of learning new infrastructure simply to use FOSS software for presentation slide decks.
All in all, I thought it was a pretty good first run for the course redesign. I'd like to teach this course again and iterate on it -- I need to find a better way to keep course materials online and easily findable/editable for the future. If anyone has suggestions on how to do that, I'd love them; I've been thinking about porting as many of my course materials to, say, github pages (or similar) as possible, but struggle with the bandwidth to think about how to do that well -- so if anyone wants a curricular design related semi-tech/semi-content project, let me know!


text:
Butia, Mike 5(Janes).JPG
July 26, 2004: Mike Butia of the Mahoning Valley Scrappers, Short-Season Low-A NY-Penn League affiliate of the Cleveland Indians, during a game at Dwyer Stadium in Batavia, NY. Photo by: Mike Janes/Four Seam Images
Filename: Butia, Mike 5(Janes).JPG
minors, MLB, Major League Baseball, MILB, Minor League, Low-A, Short-Season, A-ball
Mahoning Valley Scrappers 2004


text:
Quant Insight partners with Symphony to empower users with 'world-first' macro analytics insights
London and New York. November 30, 2021 – Quant Insight (Qi), a quantitative financial market analytics and asset insights provider, has partnered with Symphony, the leading markets' infrastructure and technology platform, to offer macro-based insights to Symphony's global financial community.
Qi has built a trade BOT, RETINA™ ('Real time Notifications and Alerts) that will sit on the Symphony platform and push succinct macro-based insights into Symphony chat rooms. Real-time push notification will be tailored to each user based on profile and interests. Users can also ping RETINA to request updated charts for any security. A tracking feature will be released in the coming weeks, which will allow users to track securities of interest in real time and be notified in case of significant shifts.
Qi's RETINA™ is available on the Symphony Marketplace to Symphony users. With RETINA™, Symphony users will be alerted to macro-based valuation anomalies, shifts in key macro drivers and changes in underlying trends covering 6,000 market instruments including indices, sectors, stocks, FX, rates, futures, commodities, and cryptocurrencies. Updates from the trade BOT will be relevant, timely and sparse, ensuring users are only updated on significant shifts – typically between two and five notifications a day.
The cloud-based financial market brain behind Qi uses state of the art 'world-first' machine learning technology and high-quality data inputs including GDP Nowcasts and has been developed in collaboration with world leaders in machine learning (professor Mike Hobson of Cambridge University and professor Ryan Prescott Adams of Princeton University). RETINA reduces millions of publicly-available data points into two to five essential daily insights and is already being used by some of the world's best known investment banks, hedge funds and asset managers, including Alan Howard of Brevan Howard. RETINA was built by investors for investors. The team includes experienced former portfolio managers from Brevan Howard, Millennium, BlueCrest, Credit Suisse, Morgan Stanley, Fidelity, and others.
"The global financial and markets community is already on Symphony, which makes it the perfect platform for the Quant Insights' RETINA BOT. In a world of permanent overload of information, professionals truly value technology and developments that will allow them to be effective and efficient, the right information when they need it as they conduct business. RETINA does just that. It will be of great value to the buy-side community", explained Umesh Patel, global head of strategic alliances and partnerships at Symphony.
Mahmood Nourani, co-founder and CEO for Quant Insight comments: "At Quant Insight, we understand that asset managers are inundated by torrents of information, including news headlines, emails, messages and tweets. Turning this information into actionable knowledge is a major problem. By using scientific and industry proven quant insight tools, RETINA converts information to knowledge in real time and increases transparency to help investors make sound investments and formulate accurate trading strategies.
"Our growing client base of institutional investors and world-renowned hedge funds and asset managers have been universally positive, and this new partnership with Symphony presents a unique opportunity for its platform users to gain cutting-edge insights into the macro-drivers impacting the securities that are of interest to them."
About Quant Insight
Quant Insight (Qi), a quantitative financial market analytics and insights provider is changing how investment decisions are being made using transparent scientific methodologies and smart machines.
Qi is at the forefront of machine learning and technology, developing the first financial market brain that ingests millions of data points in real time and extracts signal from noise ensuring its clients are ahead of the macro curve.
With offices in London, New York and Limassol, Qi has clients with total Assets Under Management (AUM) of over $2.5 trillion incorporating Qi's analytics in their investment process.
The company is led by experienced macro hedge fund portfolio managers and leading academics in machine learning and signal extraction from Cambridge, Harvard and Princeton, in addition to best-in-class data engineers with backgrounds from world leading technology firms.
https://quant-insight.com/
Ilana Zacka
Head of Corporate Communications
Quant Insight
+357 9596 2193 / iz@quant-insight.com
Symphony is the most secure and compliant markets' infrastructure and technology platform, where solutions are built or integrated to standardize, automate and innovate financial services workflows. The Symphony platform is a vibrant community of over half a million financial professionals from 500+ market participants with a trusted directory. It is powering over 2,000 community-built applications and bots. The company was founded in 2014 and has raised $510 million from institutional investors.
https://symphony.com/


In a recent conversation on Digital & Marketing Asset Management, DAM expert Theresa Regli and RSG founder Tony Byrne pondered industry specific challenges when it comes to DAM.
RSG's recently updated Digital and Marketing Asset Management Report closely reviews each major DAM vendor by vertical industry suitability. If you haven't seen our hard-hitting evaluations, you can always obtain a sample chapter first.


text:
class PXPError(Exception):
  """Base class for all PXPErrors."""
  pass

class ScopeError(PXPError):
  """Error type thrown by pxp.source.SourceBase classes."""
  pass

class PositionalError(PXPError):
  """Position error type. Contains a source-code position accompanying the error."""
  def __init__(self, position, *args):
    """Initializes the PositionalError instance."""
    super().__init__(*args)
    self.position = position

  def __str__(self):
    """The string representation of the error with the message and the 1-based coordinates of the
    position.
    """
    return "{0} at position {1}".format(self.message, self.position1)

  @property
  def message(self):
    """The error message."""
    return super().__str__()

  @property
  def position1(self):
    """The 1-based position of the offending code."""
    line, char = self.position
    return (line + 1, char + 1)

class CompilerError(PositionalError):
  """Error type thrown by the Compiler."""
  pass

class RuntimeError(PositionalError):
  """Error type thrown by the runtime (interpreter)."""
  pass

class FunctionError(PXPError):
  """Error type thrown by functions."""
  pass

class OperatorError(FunctionError):
  """Error type thrown by operators."""
  pass


Airedale Church is changing names to All Nations Church, Aire Valley. As we develop our building (eventually with a new name: All Nations Church Centre) and transform our culture we wanted a name that reflected that. We are an inclusive, passionate and life filled people from many nations and backgrounds with the aim of knowing God and making Him known.
We also meet the first Sunday of the month at 7pm.
While the website is being developed please keep up to date with all that is going on through our Facebook and Twitter pages.


Real Madrid would have to look for a humongous £500m to sign Manchester United midfielder Paul Pogba, that's according to Spanish football expert Guillem Balague.
Balague claims Los Blancos are targeting three or four players this summer.
Pogba left United fans fearing the worst while on international duty with France last week.
Even though Pogba is seemingly setting his eyes on a move to the Bernabeu, Balague insists Madrid are not contemplating a move for the World Cup winner saying they could instead move for Chelsea winger Eden Hazard or one of PSG duo Neymar and Kylian Mbappe.
"A lot of rumours have started suggesting Real Madrid want Pogba," he said on his YouTube channel.
"Clearly, Zinedine Zidane admires Pogba and Pogba has been flirting with Real Madrid. When that happens, it's because somebody wants something to happen. But that doesn't necessarily mean it will happen.
"Pogba has backed [Ole Gunnar] Solskjaer, Manchester United don't wanna get rid of Pogba and the money that he will cost Real Madrid is something that at the moment Real Madrid are not willing to pay.
He continued: "To do the big changes that Zidane wants to do, big in terms of some of the names that are involved but not big in terms of the number of players that are gonna come in or out, it's not gonna be a massive, massive change.
"£500m is what it will cost to bring Pogba to Real Madrid.


Please fill out the form and our customer support team will reply to your query. We look forward to your questions and are here to assist you with using our service. Before you send a support request, please check the FAQ section to see if your question had already been answered.


UniProtKB/Swiss-Prot : 75 Hypothyroidism, congenital, non-goitrous, 6: A disease characterized by growth retardation, developmental retardation, skeletal dysplasia, borderline low thyroxine levels and high triiodothyronine levels. There is differential sensitivity to thyroid hormone action, with retention of hormone responsiveness in the hypothalamic pituitary axis and liver but skeletal, gastrointestinal, and myocardial resistance.
Disease Ontology : 12 A congenital hypothyroidism that has material basis in heterozygous mutation in the THRA gene on chromosome 17q21.1.
Search GEO for disease gene expression data for Hypothyroidism, Congenital, Nongoitrous, 6.


text:
Espúrio Papírio Crasso () foi um político da gente Papíria nos primeiros anos da República Romana, eleito tribuno consular 382 a.C..

Tribunato consular (382 a.C.)

Em 382 a.C, foi eleito tribuno consular com Sérvio Cornélio Maluginense, Lúcio Papírio Crasso, Lúcio Emílio Mamercino, Quinto Servílio Fidenato e Caio Sulpício Camerino.

Lúcio e Espúrio Papírio comandaram as legiões romanas que derrotaram os habitantes de Velécia e o contingente prenestino aliado enquanto Lúcio Emílio e os demais tribunos receberam o comando das forças deixadas em Roma para a defesa da cidade.

Ver também

Bibliografia

Romanos antigos do século V a.C.
Romanos antigos do século IV a.C.
Nascidos no século V a.C.
Mortos no século IV a.C.
Ano de nascimento desconhecido
Ano de morte desconhecido
Tribunos consulares
Papirii
Guerras romano-latinas

redpajama_set_name: RedPajamaWikipedia