Hand Embroidered Aprons and Bags are made of cotton and we hand embroider them with DMC embroidery floss.
Buy one, you will get 1 free handmade greeting card!
If you have a custom design, estimated processing and time is 2-3 weeks in the US.


text:
Trump posted his shirtless picture online and Twitter went WILD
November 28, 2019 | DNB Stories |
After Donald Trump took an unplanned trip to a government hospital outside Washington last Saturday, there were speculations the president has taken ill.
To quell the rumours, Trump decided to do what only a Donald can do. He posted his shirtless picture on Twitter.
In the picture, Trump appeared as a very healthy-looking, muscled bare-chested boxer.
In the photoshopped image which has been retweeted over 200K times, Trump's head is superimposed on the hulking body of actor Sylvester Stallone from the publicity poster of the movie "Rocky III."
On Tuesday, while giving a reelection campaign speech in Florida, Trump, 73, fumed at length about the reactions to his recent hospital visit.
He claimed that major media outlets were reporting he'd had a "massive" heart attack when he was taken to the Walter Reed Military Hospital.
The White House, in an official statement, said that Trump had simply decided to do part of his annual physical exam early, in order to save time later.
According to his last medical exam, in February, Trump is technically obese but in good health.
He rarely exercises, other than playing golf!
At the campaign rally, Trump told supporters that the heart attack rumours were false.
He claimed the doctors at the hospital could not get over his spectacular physique.
"The first thing they do is say, 'Take off your shirt, sir, and show us that gorgeous chest. We've never seen a chest quite like it,'" the president said.
Entry fees for all the beaches in Nigeria
by Staff writer There are dozens of beaches and resorts in Nigeria. There are over 15 beaches and resorts in Lagos State alone. Thous...

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Meaning of "yeeucch" and "uurgghh" I have read a story and do not understand the meaning of words "Yeeucch" and "Uurgghh" in the context "But if one comes in the house, especially if it's one of those really big spiders with furry legs and little red eyes, then I go 'Yeeucch' and I try to get rid of it" and "When my friend sees a spider, she doesn't just go 'Uurgghh!' or run away or ask someone else to get rid of the horrible creepy-crawly". So, could anyone tell me what they mean? Thanks in advance.

A: They are just (exaggerated) representations of the sounds of disgust people make when they see something they don't like.
See the second definition of yuck (not all possible spellings will be in the dictionary).

redpajama_set_name: RedPajamaStackExchange


text:
Ammotragus lervia
Mountain plateau
It belongs to the ovine genus, and it is the only wild representative of this species in the mountainous systems of the north of Africa, though it is extinct in the wild. The Barbary sheep is native to the Sahara and the Maghreb; it's known as "mouflon of the Atlas" (its name comes from the Berber language, which is widely spoken in the area). Its deportment is elegant, especially because of the hanging mane which covers the lower part of its body and reaches its legs.
An agile climber, it can reach the most inaccessible crags, leaping from stone to stone. Like sheep and goats (near relatives), they are very resistant to low temperatures and food scarcity. In spring, the females give birth to one or two lambs whose lactation period extends beyond even the first ingestion of solid food.
The Barbary sheep is very gluttonous if the pastures with which it is surrounded are abundant, though in times of scarcity it makes do with leaves and dry twigs.


Smeared greasepaint indicates where the dummy's head hit the B-pillar and head restraint during rebound. Head accelerations from these hits were low.
Forces on the lower right leg were high enough to indicate the possibility of injuries.
View of the vehicle after the crash with doors removed, showing damage to the occupant compartment.
Action shot taken during the side impact crash test showing the driver dummy's head being hit by the intruding barrier.
A noticeable dent indicates where the driver dummy's head hit the barrier.
The Mitsubishi Galant was redesigned for the 2004 model year.
Measures taken from the head, neck, chest, and left leg indicate low risk of injuries to these body regions in a crash of this severity. Forces on the right tibia indicate that injuries to the lower leg would be possible. The dummy's right knee contacted a metal reinforcement under the steering column, which gashed the vinyl 'skin.' Head acceleration from the B-pillar hit was low.
When side airbags are optional, as in this vehicle, the Institute conducts the test without this option. If a manufacturer offering optional side airbags requests the Institute to conduct an additional test of a vehicle with this option and agrees to reimburse the cost of the vehicle, a second test is conducted. Mitsubishi did not request such a test.
However, Mitsubishi made side airbags for front seat occupants standard in the 2005 model year and the Institute tested the 2005 model. The 2004 and 2005 models are rated separately, except that the structural ratings and rear passenger injury and head protection ratings for both vehicles are based on both tests.
Driver — Measures taken from the dummy indicate that rib fractures and/or internal organ injuries would be possible in a crash of this severity. In addition, loading to the shoulder was excessive. Serious skull fracture and/or brain injuries also would be possible.
Driver — The dummy's head was hit by the intruding barrier, producing high head injury measures.
Passenger — The dummy's head was hit by the window frame and window sill of the rear door. These hits did not produce high head injury measures, but the head protection is inadequate.


You've probably heard this term before, but what does it mean to be a remote worker?
In the first blog post of this two-part series we discussed the benefits we have noticed at CS2 with the whole team working remotely. In this post we address one of the primary factors we think block many people from being allowed the chance to realize these benefits.


text:
<?php

$lang['comments:title'] 					= 'Komentarze';
$lang['comments:your_comment'] 				= 'Wyślij komentarz';
$lang['comments:user_comments'] 			= 'Komentarze użytkowników';

$lang['comments:list_comment'] 				= '%s skomentował(a) wpis %s tymi słowami:';
$lang['comments:recent_comments'] 			= 'Ostatnie komentarze';
$lang['comments:view_more'] 				= 'Zobacz więcej...';

// labels
$lang['comments:name_label'] 				= 'Nazwa';
$lang['comments:website_label'] 			= 'Strona WWW';
$lang['comments:message_label'] 			= 'Wiadomość';
$lang['comments:status_label'] 				= 'Status';
$lang['comments:activate_label'] 			= 'Zatwierdź';
$lang['comments:deactivate_label'] 			= 'Odmów';
$lang['comments:module_label'] 				= 'Moduł';
$lang['comments:item_label'] 				= 'Numer';
$lang['comments:date_label'] 				= 'Data';
$lang['comments:posted_label'] 				= 'Wysłane';
$lang['comments:from_label'] 				= 'Od';
$lang['comments:preview_label'] 			= 'Podgląd';
$lang['comments:send_label'] 				= 'Komentarz';

$lang['comments:inactive_title'] 			= 'Komentarze oczekujące na zatwierdzenie';
$lang['comments:active_title'] 				= 'Zatwierdzone komentarze';
$lang['comments:edit_title'] 				= 'Edytuj komentarz';
$lang['comments:list_title'] 				= 'Wyświetl liste komentarze';

// messages
$lang['comments:add_success'] 				= 'Komentarz został zapisany.';
$lang['comments:add_approve'] 				= 'Komentarz został zapisany i oczekuje na akceptację.';
$lang['comments:add_error']					= 'Wystąpił błąd podczas dodawania komentarza. Proszę spróbować ponownie później.';

$lang['comments:edit_success'] 				= 'Komentarz został zmieniony.';
$lang['comments:edit_error'] 				= 'Komentarz nie został zmieniony.';

$lang['comments:approve_success'] 			= 'Komentarz został zatwierdzony.';
$lang['comments:approve_success_multiple']  = 'Wybrane komentarze zostały zatwierdzone.';
$lang['comments:approve_error'] 			= 'Wystąpił problem podczas zatwierdzania tego komentarza.';
$lang['comments:approve_error_multiple']    = 'Wystąpił problem podczas zatwierdzania wybranych komentarzy.';

$lang['comments:unapprove_success']         = 'Komentarz został odrzucony i nie będzie dłużej wyświetlany na witrynie.';
$lang['comments:unapprove_success_multiple'] = 'Wybrane komentarze zostały odrzucone i nie będą dłużej pojawiać się na stronie.';
$lang['comments:unapprove_error'] 			= 'Wystąpił problem podczas odrzucania tego komentarza. Może usunięcie go rozwiąże problem?';
$lang['comments:unapprove_error_multiple']  = 'Wystąpił problem podczas odrzucania wybranych komentarzy. Może usunięcie ich rozwiąże problem?';

$lang['comments:delete_single_success']     = 'Komentarz #%s został skasowany i nie będzie dłużej widoczny na stronie głównej.';
$lang['comments:delete_multi_success']      = 'Komentarze #%s zostały skasowane i nie będą dłużej widoczne na stronie głównej.';

$lang['comments:no_comments'] 				= 'Nie ma komentarzy';

// Helper counter comments
$lang['comments:counter_none_label']		= 'Brak komentarzy';
$lang['comments:counter_singular_label']	= '%d komentarz';
$lang['comments:counter_plural_label']		= '%d komentarzy';

/* End of file comments_lang.php */

redpajama_set_name: RedPajamaGithub


text:
Children of the World choir
In this week's TAB News, Jennifer Rash and Debbie Campbell interview Kayla Eshleman, choir leader for Children of the World choir.
Children of the World is an international children's choir founded by humanitarian organization World Help. This year, the children have come as far as Uganda and Nepal to sing, dance and tell stories of the refugee children whom are largely forgotten. The choir has been touring American for more than two decades, featuring children from countries such as Nepal, Philippines, Honduras, and Uganda, where World Help has child sponsorship programs. After the tour, the children return to their home countries, where their education up to the university level is sponsored by World Help.
The choir made recent stops in Alabama at First Baptist Church, Pell City, and White Springs Baptist Church as part of their 2018-2019 Refuge + Strength tour.
Following the 26-minute interview, TAB staff members and correspondents present an audio digest of this week's issue including news, features, Dr. Batson's Theology 101 column and Sunday School commentaries.
https://traffic.libsyn.com/tabnews/TAB28.mp3
Tim Meherg is the new pastor of New Hope Baptist Church, Haleyville. He and his wife, Peggy, have one child.
VictoryLand Casino in Macon County plans to shift its business to betting on horse races after a September ruling by
After three days of sold-out performances, the winners of Samford University's 2023 Step Sing competition were announced. Hundreds of students
Oakdale Baptist in Ramer calls new pastor
Tommy Norman Jr. is the new pastor of Oakdale Baptist Church, Ramer.


If you need a dependable, standard efficiency furnace in a fairly mild climate, the Goodman Multi-Position, Dual$aver — GMH8/GDH8 Gas Furnace Price is one to consider. Nancy in High Point, North Carolina did and seems pleased with her purchase. Here's the note she posted by filling out the simple form on our Share an HVAC Price page. We're always glad to pass on to you information on HVAC prices that will assist you in finding the right equipment for your needs.
DualSaver two-stage heating that runs on low 80% of the time during normal operation. Reduces temperature swings.
Standard efficiency 80% AFUE which will conserve energy over many older furnace models.
Circulator motor has 4 speeds for low-noise, high-efficiency performance.
Low constant fan mode insures quietest, most efficient operation.
Durable silicon nitride starter replaces pilot light.
Rugged steel cabinet with baked enamel paint.
Sizes to fit any application, from 45,000 Btu to 140,000 Btu.
Industry's best warranty: Limited lifetime on the TuffTube heat exchanger, 10-year furnace replacement if the heat exchanger fails in first decade, 10-year limited warranty on all functional parts.
Thank you Nancy! When you are considering an important investment like a new gas furnace, it is vital to get bids from several dealers and then choose the qualified contractor you feel the best about. It's never a bad idea to check references, the BBB, and other sources. Let the contractor handle the entire job, since that's the only way to have your warranty honored. It also ensures that your furnace is installed properly so that there are no safety problems and it runs at peak efficiency and performance with the best longevity.


text:
Archive for: September, 2014
California Governor Brown Vetoes Mandatory Kindergarten
On September 28, California Governor Jerry Brown vetoed legislation that would have required all children to complete kindergarten before entering first grade. This bill, AB 1444, supported by teachers' unions, would have had the practical effect of mandating that all 5 year-olds attend kindergarten. The Homeschool Legal Defense Association among other groups objected to the legislation on the grounds that it would deny parental choice over education. HSLDA also cited evidence that mandatory early education does not improve the quality of education and can lead to behavioral problems.
September 30, 2014 / Education, Homeschooling
Liberty Institute Files EEOC Charge of Discrimination on Behalf of Dr. Eric Walsh
ATLANTA, GA, September 23, 2014—Today, Liberty Institute and Parks, Chesin & Walbert, attorneys for Dr. Eric Walsh, a leading public health expert, who holds both a medical degree and Ph.D. and serves as lay minister with the Seventh Day Adventist Church, filed an official charge of discrimination with the United States Equal Employment Opportunity Commission (EEOC). Georgia Department of Health offered Dr. Walsh a job in May, which he accepted, announced his employment publicly, but then top officials laughed about their decision to terminate his position as Director of Public Health for the region of northeast Georgia based upon Dr. Walsh's religious beliefs.
September 29, 2014 / Current Events
Americans Fear Religion is Losing Influence in U.S. Pew Study Finds
According to a survey released September 22, 2014 by Pew Research Center, 72% of Americans think that religion is losing its influence on American society while only 22% believe that it is increasing its influence. Of these, 56% believe that this loss of influence is a "bad thing." Of the 22% who believe that religion is gaining influence, 12% say that it is a "good thing" while 10% say that it is not.
September 23, 2014 / Current Events, Discrimination, Family, Marriage
EEOC Files Suits on Behalf of Employees Who Allege Religious Discrimination
The Equal Employment Opportunity Commission has recently filed suit in two cases alleging that employers violated Title VII of the Civil Rights Act of 1964 when they failed to accommodate holy day observance practices of employees.
Prisoner's Beard Appeal to be Heard by Supreme Court on Oct. 7
On October 7, the U.S. Supreme Court is scheduled to hear oral argument on whether the Arkansas Department of Corrections grooming policy violates the Religious Land Use and Institutionalized Persons act of 2000 (RLUIPA) when it prohibits a prisoner from growing a one-half-inch beard in accordance with his religious beliefs.
Pope Francis: World's Current Conflicts Amount to Piecemeal WWIII
On September 13, during a visit to the Italian Military Memorial of Redipuglia, a monument in Italy where more than 100,000 soldiers who died in World War I are buried, Pope Francis said that World War III has begun in a "piecemeal" fashion.
7th Circuit Overturns Indiana and Wisconsin Bans on Same-Sex Marriage
A three-judge panel of the 7th Circuit Court of Appeals last week unanimously struck down state bans on same-sex marriage in Indiana and Wisconsin. In a 40-page opinion (http://www.scribd.com/doc/238675754/14-2386-212#download), Judge Richard Posner blasted the two states for arguing that the reason why gay marriages were prohibited while heterosexual marriages were encouraged was that heterosexuals needed marriage to make couples take responsibility for their unplanned children. The states had argued that since homosexual couples could not accidentally conceive children, the state had no interest in them being married.
September 12, 2014 / Constitution, Current Events, Family, Legal Issues, Marriage
Standing to Sue at Issue In 7th Cir. Hearing on Ministerial Housing Allowance
On September 10, the 7th Circuit Court of Appeals heard oral argument in Freedom from Religion Foundation (FFRF) v. Lew. The judges focused on whether FFRF had standing to bring the case.
September 12, 2014 / Church and State, Current Events, Religious Institutions, Tax Exemption
We ought to obey God rather than men.
— Acts 5:29


text:
'Apes' swings to top of US box office
LOS ANGELES – Agence France-Presse
"War for the Planet of the Apes" won this weekend's battle of the box office in North America, riding on strong reviews and ever more natural-looking apes to take $56.3 million.
The Fox/Chemin Entertainment production managed to outdraw "Spider-Man: Homecoming," which fell by more than half from its opening three-day weekend to pull in $44.2 million, website Exhibitor Relations reported.
"War," directed by Matt Reeves, tells the continuing story of how intelligent primate Caesar (Andy Serkis) and other apes battle the forces led by an evil human dictator (Woody Harrelson). The film, made for $150 million, has a 95 percent approval rating on the Rotten Tomatoes website, which collates reviews.
Sony-Marvel collaboration "Spider-Man," which draws a similarly strong 92 percent on Rotten Tomatoes, stars Tom Holland as a young Peter Parker, ably mentored by Robert Downey Jr. as Iron Man as he takes on bad guy Vulture (Michael Keaton).
Far behind on $19.4 million was Universal's animated sequel "Despicable Me 3," starring Steve Carell as the voice of bad guy-turned-protagonist Gru -- and his twin brother Dru, and Kristen Wiig as Gru's wife Lucy.
The film has done much better overseas than at home, according to Hollywood Reporter, which says its global gross of $519.4 million includes a whopping $113.6 million from viewers in China.
Placing fourth was Sony's heist thriller "Baby Driver," with Ansel Elgort ("The Fault in our Stars") front and center as a gifted getaway driver with a hearing problem. It netted $8.7 million.
And in a surprising fifth place among the big-studio blockbusters was independent rom-com "The Big Sick" from Lionsgate, taking in $7.5 million in its first week in wide release.
"Sick" stars Kumail Nanjiani in the semi-autobiographical role of a Pakistani-American stand-up comic who resists his parents' insistent efforts to find a wife for him, and instead falls in love with comedy-club customer Emily, played by Zoe Kazan.
The film, co-written by Nanjiani and the real-life Emily, his wife, rates a resounding 97 percent on Rotten Tomatoes and is credited by the New York Times with no less than "revitalizing an often moribund subgenre with a true story of love, death and... everyday comedy."


How can a Foreigner Open a Bank Account in the U.S.?
This post answers a question I have heard many times: How can a foreigner open a bank account in the U.S.?
Je suis Charlie (French for "I am Charlie").
This post supports freedom of expression, generally, and more particularly Parisian satirical weekly Charlie Hebdo, which was the victim of a massacre by Islamist radicals on January 7, 2015.
Last week, global management consulting firm A.T. Kearney released its 2013 Foreign Direct Investment Confidence Index. The major surprise: For the first time in more than a decade, senior executives in large companies chose the US as the most favorable place to make foreign direct investment (FDI).
After downturn-induced cutbacks, companies are investing in productivity-enhancing tools and equipment.
The dollar has weakened, while wages in developing countries have risen.
Most notably, China slipped to second place because increasing labor costs raise questions about the long-term attractiveness of China's development model.


text:
fgadfgadfg adfgadf adfgadfg adfgadfg
by RENALDO DORSETT Sports Reporter rdorsett@tribunemedia.net FREE throw shooting proved to be the deciding, factor in a matchup of GSSSA Senior Boys powerhouses - the CR Walker Knights struggled for much of the game, and the CI Gibson Rattlers made the most of a key trip to the line when it mattered most. Lamont Armaly converted a pair at the line with just 4.9 seconds left to play to lift the Rattlers to a 90-88 win over the Knights last night at the D.W Davis Gymnasium. A three pointer by Prince Braynen went long on the game's final possession as the Rattlers held on for the win. Adney Bethel led the Rattlers and all scorers with a game high 31 points. William Rigby finished with 12 points, Justin Gardiner and Lavardo Mezidor each added eight while Kristen Francis added six points and 11 assists. Laquan Nairn led the Knights with 23 points, Van Huntchinson finished with 21, while Braynen added nine and Joeseph Roberts added 12 off the bench. Late in the fourth, Rigby made the first of two at the line at for an 85-82 lead. A technical foul was called on Francis for hanging on rim in attempt to follow the second with a putback dunk and gave the Knights a chance to pull closer. Nashad Mackey made both shots to make the score 85-84 with 1:22 remaining. Rigby followed with a steal at halfcourt and weaved through a trio of defenders to finish with a layup and give the Rattlers an 87-84 lead with 39 seconds left to play. Mackey would again convert a pair the line to again bring the Knights within one, 87-86 with 27 seconds remaining, however squandered an opportunity to take the lead on the next possession. After Francis missed two at the line, Hutchinson was called for an offensive foul. Rigby again split a pair at the line made one, but with 11 seconds left on the clock, Braynen raced downcourt to tie the game at 88 and seemingly send the game into overtime. Roberts would foul Armaly shortly after the inbound pass to send him to the line and seal the game. Rattlers Head Coach Kevin Johnson said he expected a hard fought battle between the two rivals. "CR Walker is a very good team. It is always a battle and its always a dogfight and that is what high school basketball is about. Being competitive, its a good rivalry and hopefully my boys will understand the importance of taking care of the basketball and execution and possessions," he said, "We turned the ball over alot but hats off to CR Walker, they played an excellent game, they made all the shots they needed to down the stretch to stay in the game but we made our free shots down the stretch so we were able to pull off the big win." Knights Head Coach, Trevor Grant, said his team struggled to close the game out due to their woes at the line and a lack of focus in the game's closing moments. "We let a good game get away because the guys don't listen. They started playing for the fans. They have people telling them things and they listen to what they tell them," he said, "The Rattlers played more aggressive than us and the Rattlers played with more discipline than us because when I told my players to box out there was a problem. If we were boxing out, they wouldn't have had all those second opportunities and we went to the line " The Rattlers led by as much as nine in the fourth quarter before the Knights were able to rally late. They opened the quarter on a 5-0 run before the teams began trading scores. Braynen gave the Knights a 69-68 lead with 5:18 left to play, but it would be their last lead of the game. Bethel fouled out following a layup to give the Rattlers a 77-71 with 3:55 left to play. He propelled the CI Gibson offense all game, as he opened the game with a three on the opening possession and scored 10 points in the first quarter. The Rattlers led 19-8 before the Knights half court trap helped them to close the quarter on 8-0 run capped by a Nairn layup to come within one, 19-18 at the end of the first period. CR Walker was able to take a 37-36 Knights lead into the half and opened the third quarter with back to back fastbreak dunks from Braynen and Nairn for a 41-36 lead. Nairn's buzzer beating three pointer from the top of the key gave tied the game 58 heading into the fourth quarter.


text:
write("\nJ*************************** JSON test parse simple literals ***************");

write(JSON.stringify(JSON.parse("{ \"memberNum\" : -0.1}")));

var rev1 = function(name, value) {
    write("+++in reviver")
    //    for (a in this) {
    //        write(a)
    //        write(this[a])
    //    }
    if (this[name] != value) {
        write("error");
    }
    write(name);
    if (value === undefined) {
        write("undefined");
    }
    else if (value === null) {
        write("null");
    }
    else {
        write(value);
    }

    write("+++out reviver");
    if (value == 3) {
        return undefined;
    }
    else if (value == true) {
        return 99;
    }
    return value;

}

write("");
write("");
var jsObjString = "{\"\" : 7, \"memberNullFirst\" : null, \"memberNum\" : 3, \"memberNegNum\" : -98765,\"memberStr\"  : \"StringJSON\", \"memberBool\" : true , \"memberObj\" : { \"mm\" : 1, \"mb\" : false}, \"memberX\" : {}, \"memberArray\" : [33, \"StringTst\",null,{}], \"memberNull\" : null}";
//var jsObjString = "{\"memberNullFirst\" : null}";
write("\nJ*************************** JSON test parse simple with no reviver ***************");
write("");
write("JSON Parse__  original= ");
write(jsObjString);
var jsObjStringParsed = JSON.parse(jsObjString);
var jsObjStringBack = JSON.stringify(jsObjStringParsed);
write("");
write(" __Parsed and stringify back= ");
write( jsObjStringBack);

write("");
write("");
write("\nJ*************************** JSON test parse simple with tracing reviver ***************");
write("");
write("JSON Parse__  original= ");
write(jsObjString);
jsObjStringParsed = JSON.parse(jsObjString, rev1);
jsObjStringBack = JSON.stringify(jsObjStringParsed);
write("");
write(" __Parsed with tracing reviver and stringify back = ");
write( jsObjStringBack);

write("");
write("");
write("\nJ*************************** JSON test parse simple with data restore reviver ***************");

jsObjString = "{\"\" : 7, \"memberNullFirst\" : null, \"dateMember\" : \"2008-05-30T07:00:59Z\", \"memberNum\" : 3, \"memberStr\"  : \"StringJSON\", \"memberBool\" : true , \"memberObj\" : { \"mm\" : 1, \"mb\" : false}, \"memberX\" : {}, \"memberArray\" : [33, \"StringTst\",null,{}], \"memberNull\" : null}";
write("");
jsObjStringParsed = JSON.parse(jsObjString, function(key, value) {
    var a;
    if (typeof value === 'string') {
        a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
        if (a) {
            return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
        }
    }
    return value;
}
);
jsObjStringBack = JSON.stringify(jsObjStringParsed);
write("");
write("JSON Parse__  original= ");
write(jsObjString);
write("");
write(" __Parsed and stringify back with Date rev = ");
write(jsObjStringBack);
write("VERIFICATION:  restored date year(if this doesn't throw we know the filter worked)= ");
write(jsObjStringParsed.dateMember.getUTCFullYear());

var rev2 = function(name, value) {
    if (this[name] != value) {
        write("error " + this[name] + " != " + value);
    }
    if (value == 3.14) {
        return undefined;
    }
    else if (value == true) {
        return 99;
    }
    return value;
}
write("");
write("");
write("\nJ*************************** JSON test parse simple with  reviver2: replace(delete) 3.14 by undefined, replace'true' by 99 ***************");
write("");
jsObjStringParsed = JSON.parse(jsObjString, rev2);
jsObjStringBack = JSON.stringify(jsObjStringParsed);
write("");
write("JSON Parse__  original= ");
write(jsObjString);
write("");
write(" __Parsed with reviver2 and stringify back= ");
write(jsObjStringBack);

var num = 12345;
var bfalse = false;
var jundef;

function f() { return 0; }

var arrSimple = new Array();
arrSimple[0] = "document.location";
arrSimple[1] = "foolish";

var simpleObj = { MemberNo1: '"data"' };
simpleObj.dateMember = new Date(2008, 3, 1);
simpleObj.functionMember = f;
simpleObj.nullMember = null;
simpleObj.undefinedMember = jundef;
simpleObj.stringmember = "this string ends the obj. You should not see functionMember and undefinedMember";

var simpleObjN = { MemberNo1: '"data"' };
simpleObjN.dateMember = new Date(2008, 3, 1);
simpleObjN.functionMember = f;
simpleObjN.nullMember = null;
simpleObjN.arr = arrSimple;
simpleObjN.undefinedMember = jundef;
simpleObjN.nested = { nestedM1: {}, nestedM2: 1234, nestedM3: { a: true, b: false} };
simpleObjN.a = { a: {}, nestedM2: 1234, b: { a: true, b: false, c : 3.14} };
simpleObjN.stringmember = "this string ends the obj. You should not see functionMember and undefinedMember";

var objNull = null;

var objArrMem = new Object();
objArrMem.intMember = 3;
objArrMem.strMember = "string_member_in_object";
var arr = new Array();
arr[0] = "document.location";
arr[1] = "foolish";
arr[2] = 12.3;
arr[3] = new Date(2008, 9, 9);
arr[4] = new Object();
arr[6] = objArrMem;
arr[7] = objNull;
arr[8] = jundef;
arr[9] = f;
arr[10] = new Array();
arr[10][0] = "NestedArray_1stParamString";
arr[10][1] = 3.14;
arr[10][2] = { a: "nested object in array", c: true };
arr[10][4] = new Array();
arr[11] = "[0]-document.location, [1]-string, [2]-number, [3]-date, [4]-empty obj, [5]-missing, [6]-obj, [7]-null, [8]-undef, [9]-function, [10]-nestedArray, [11]-this";

function repf(key, value) {
    if (key == "a" && (this.b != undefined)) {
        return this.b;
    }
    return value;
}

var objectArray = [
{ obj: "SampleTest", desc: "String simple" },
{ obj: 1,           desc: "Number(1)" },
{ obj: num,         desc: "Number(1234)" },
{ obj: 3.14,        desc: "Number(3.14)" },
{ obj: Number.NaN,  desc: "Number(NaN)" },
{ obj: Number.POSITIVE_INFINITY, desc: "Number(POSITIVE_INFINITY)" },
{ obj: true,        desc: "bool(true)" },
{ obj: bfalse,      desc: "bool(false)" },
{ obj: null,        desc: "null" },
{ obj: jundef,      desc: "undefined" },
{ obj: new Date(2008, 10, 10), desc: "Date(2008, 10, 10)" },
{ obj: new Object("hello"), desc: "string in Object" },
{ obj: new Number(33), desc: "number in Object" },
{ obj: new Object(true), desc: "bool in Object" },
{ obj: simpleObj,   desc: "SimpleObject" },
{ obj: simpleObjN,  desc: "Object with nested objects and array" },
{ obj: arrSimple,   desc: "Simple array" },
{ obj: arr,         desc: "Complex array" }

];

var replacerArray = [
{ obj: null, desc: "null" },
{ obj: [], desc: "array replacer: []" },
{ obj: ["a", "b"], desc: "array replacer: [\"a\",\"b\"]" },
{ obj: ["a", "b", "a", "a"], desc: "array replacer: [\"a\",\"b\",\"a\",\"a\"]" },
{ obj: repf, desc: "replacer function, if the key is 'a' and the holder has a prop 'b', replace the value of the prop 'a' with the value of prop b " }
]

var spaceArray = [
{ obj: null, desc: "null" },
{ obj: 4, desc: "number 4" },
{ obj: 24, desc: "number 24" },
{ obj: "........................", desc: "string : ........................" }
]
var stringifiedObj;
var parsedObj;
var reStringified;

write("");
write("");
write("\n%%%%%%%%%%%%%%%%%         Matrix Testing  %%%%%%%%%%%%%%%%% ");
write("");
write("");

write("\nJ*************************** JSON test stringify - simple, no space, not replacer *********************** ");
for (var i = 0; i < objectArray.length; i++) {
    try {
        write("");
        write("------ JSON test stringify: " + objectArray[i].desc + "  ------");
        stringifiedObj = JSON.stringify(objectArray[i].obj);
        write(stringifiedObj);
        parsedObj = JSON.parse(stringifiedObj);
        reStringified = JSON.stringify(parsedObj);
        write("=== Parsed and restringified :")
        write(reStringified);

        parsedObj = JSON.parse(stringifiedObj, rev2);
        reStringified = JSON.stringify(parsedObj);
        write("=== Parsed with reviver and restringified :")
        write(reStringified);
    }
    catch (e) {
        write("!!Exception: " + e);
    }
}

function checkStrEqual(str1, str2)
{
    if (str1 === str2)
    {
        write("PASS");
    }
    else
    {
        write("FAIL");
        write(str1);
        write(str2);
    }
}

var complexStr = "/test ze\0ro\vString\n_u4:\u0061_u2:\xbc_u1:\x0e_u2clean:\x8f";
var expectedString = "\"/test ze\\u0000ro\\u000bString\\n_u4:a_u2:¼_u1:\\u000e_u2clean:\\"";

write("");
write("------ JSON test stringify: complex string  ------");
stringifiedObj = JSON.stringify(complexStr);
checkStrEqual(stringifiedObj, expectedString);

parsedObj = JSON.parse(stringifiedObj);
reStringified = JSON.stringify(parsedObj);
write("=== Parsed and restringified :")
checkStrEqual(reStringified, expectedString);

parsedObj = JSON.parse(stringifiedObj, rev2);
reStringified = JSON.stringify(parsedObj);
write("=== Parsed with reviver and restringified :")
checkStrEqual(reStringified, expectedString);

for (var k = 0; k < replacerArray.length; k++) {
    for (var j = 0; j < spaceArray.length; j++) {
        write("");
        write("");
        write("\n*************************** JSON test stringify:  replacer: " + replacerArray[k].desc + " space: " + spaceArray[j].desc + " *********************** ");
        for (var i = 0; i < objectArray.length; i++) {
            try {
                write("");
                write("------ JSON test stringify: " + objectArray[i].desc + "  ------");
                stringifiedObj = JSON.stringify(objectArray[i].obj, replacerArray[k].obj, spaceArray[j].obj);
                write(stringifiedObj);
                parsedObj = JSON.parse(stringifiedObj);
                reStringified = JSON.stringify(parsedObj);
                write("=== Parsed with no reviver and restringified :")

                write(reStringified);
                parsedObj = JSON.parse(stringifiedObj, rev2);
                reStringified = JSON.stringify(parsedObj);
                write("=== Parsed with reviver2 and restringified :")
                write(reStringified);
            }
            catch (e) {
                write("!!Exception: " + e);
            }
        }

        write("");
        write("------ JSON test stringify: complex string 2  ------");
        stringifiedObj = JSON.stringify(complexStr, replacerArray[k].obj, spaceArray[j].obj);
        checkStrEqual(stringifiedObj, expectedString);
        parsedObj = JSON.parse(stringifiedObj);
        reStringified = JSON.stringify(parsedObj);
        write("=== Parsed with no reviver and restringified :")

        checkStrEqual(reStringified, expectedString);
        parsedObj = JSON.parse(stringifiedObj, rev2);
        reStringified = JSON.stringify(parsedObj);
        write("=== Parsed with reviver2 and restringified :")
        checkStrEqual(reStringified, expectedString);
    }
}

function write(a) {
    if (this.WScript == undefined) {
        document.write(a);
        document.write("\n");
    }
    else
        WScript.Echo(a)
}


Most companies are looking for a solution, not a material, not a technology. You have a material and you are looking for a market. Through Mayflower Consulting's knowledge of your markets and through a broad industry network, we can uncover the opportunity in your target market. Serial entrepreneur Steve Blank says it well, "the answers are outside the building." Work with Mayflower Consulting to get the answers, and make informed decisions.
The image here represents an optimized design using the best material for the application, for the budget, and for the target market.
Wheel-end study of materials & design on light duty vehicles.
Opportunities & barriers to lightweighting of commercial trucks – view report & video.
This is a match-making role that positions the product or technology in front of key players, driving the customer feedback to product development teams. Examples include lightweight brake products, high temperature-grade alloys, and new aluminum for additive manufacturing.
Current sales of lightweight materials are focused on premium aluminum castings for defense ground vehicles, off-road trucks, performance cars, and space flight. Focus on lightweighting and new aluminum alloys for engine down-sizing, turbos and pistons.
Current initiatives include the introduction of new engine and body structure cast aluminum alloys to address CAFÉ 2025 initiatives. Also working on creep-resistant aluminum wire, strong sheet products, and new aluminum for additive manufacturing.
While the technologies and products differ, there are common barriers to bring novel, lightweight solutions to market. What are your challenges and how can I help you?


Hi my family member! Hi, I think your web site might be having web browser compatibility problems. Does your blog have a contact page? Is anyone else having this problem or is it a problem on my end? Hello my family member! Article writing is also a fun, if you be familiar with afterward you can write if not it is difficult to write.


text:
IN NECROPOLIS, DEATH IS...
...PERMANENT. Game Over? Jump right back in with a new adventurer and try again!
...DIFFERENT EVERY TIME. A new procedurally-generated dungeon with every death.
...BETTER WITH FRIENDS. Drop-in / drop-out CO-OP multiplayer for up to 4 players!
...MONSTROUS. Gemeaters, Changelings, Hoardmen, and more - they exist to kill you.
...NOT WITHOUT PERKS. Each new dungeon is littered with powerful weapons, armor, and upgrades to wield against your foes. (And there's crafting, too!)
...UNAVOIDABLE. But don't worry, this NEXT playthrough is totally the one. We've got a good feeling about it.
NECROPOLIS combines third-person action with Rogue-lite dungeon-delving for a game that's fast-paced and addictive, yet diabolically hardcore. You play as a nameless adventurer attempting to escape a living, magical dungeon that reconstructs itself each time you play, with only one way out - down. Craft, equip, explore, and fight to stay alive as you delve deeper and face ever-greater threats in the twisting halls and endless chasms of the NECROPOLIS. Have no doubt, you're going to die - often! - but you'll improve your combat skills, available upgrades, and dungeon know-how with every playthrough, bringing you one step closer to the exit. (Warning: "Just one more time" mindset can be addicting.)
Necropolis has all the makings of a smash hit – the kind of Roguelike that hardcore players will brag about beating for years to come. - Hardcore Gamer
Download Client Required
Necropolis: A Diabolical Dungeon Delve
ESRB Rating: T (Teen 13+)
T (Teen 13+)
Mild Language
Download orders are not eligible for returns or credits.


Decades-long experience in the pre-press, text and images managing services (translation, copy-editing, graphic design and layout) oriented to publishers, commercial business, advertising agencies, translation agencies. During our more than three decades-long experience we have translated, managed, and carried out the production of illustrated volumes, monographs, exhibition and art catalogues, hardware and software manuals, and technical documentation.
We have the resources and the skills to manage and coordinate large, medium and small projects, and we regularly update our software and hardware to assure our clients that we will meet their requirements.
We work in Windows environment and we use the best software to manage any request we receive (MS Office and Adobe graphic/DTP packages, Adobe Acrobat Pro and other CAT and terminology management tools).
just search for them and realize them."


Faithful unto death: Fifteen young people who were not afraid to die for their faith [Myron S Augsburger] on Amazon.com. *FREE* shipping on qualifying offers.
History. Zero was born to the King and Zoena. Sevar's Loss. For an undisclosed reason, the King abandoned the kingdom one fine day. A universal search was established, of which bore no results.
The Blue and Gold annual yearbook was first published at Schuylkill Haven High School in 1923 and continues today. In 1920, it was called Panorama and in 1921 it was called the Oriflamme.
She remained a faithful member of Union until her death. She had the privilege of serving as the. In 1964 Quilla was initiated into the Delta Eta Chapter of Delta Sigma Theta Sorority, Inc. during.
Notice is hereby given to the heirs and lesratees of Catherine Quick: Welling, deceased, to appear in the The struggle done, the long, long jour It was just past the meredian of The Tri-Stato Patron.
TUESDAY Beta Sigma Phi sorority chapters will meet as follows. "There is a way which seemeth right unto a man, but the end thereof are the-iways of death" (Proverbs 14:12). Christ wants to give.
Preceded in death by his loving wife, Helen. 45 LOCAL BURIAL OUT OF STATE TRANSFER CREMATION FUNERAL OPTIONS INC 407-737-0001 mm straghn & son mm TRI CITY FUNERAL HOMP 26 5th Ave., Delrav Beach 272.
Kobersky, Anton Death of Mr. Anton Kobersky. Alter a lingering illness Mr. Anton Kobersky was called by Death on Wednesday night at 6:30. The funeral took place on Friday at St. Michael's Cemetery at Weimar, Rev. Jos. Szymanski conducting the services. Due to bad roads there were lots of relatives and friends that could not be present to witness his funeral, but all who possibly could do so.
A Publisher Extra Newspaper Southern Illinoisan from Carbondale, Illinois · Page 15 Publication: Southern Illinoisan i Location: Carbondale, Illinois Issue Date: Thursday, June 17, 1999 Page: Page 15.
Services are under the direction of Accent Funeral Home, Meridian. Condolences may be left for the family at www.accentfuneral.com. We'll miss you, beloved Mother and Mur. "Be thou faithful unto death.
c into a nightmare of fire, water, and death. A. in public schools in the tri-state the duties of Professor of Edu-. Motto: "Faithful unto Death" and "Sigma Serve.
He was preceded in death. faithful four-legged companion, "Sista;" his brother, David Clodfelter, his sister, Karen Colley (Wayne); and many family members and friends. Donnie attended Thomas.
Symbols. Get to know the new Tri Sigma brand including the new logo, colors, fonts, and graphics. Members can access Tri Sigma brand standards, identity marks and graphics at Sigma Connect.Non-members can learn more about our brand identity guidelines by contacting our Director of Marketing and Communications.
(Click here for bottom) P p p, P Momentum. Utility of the concept of momentum, and the fact of its conservation (in toto for a closed system) were discovered by.
Be it done unto me according to Thy wiU. leaders want nothing more than to structure a life "faithful to love of the Lord Jesus Christ and enter ever more deeply into the mysteries of His death and.
Prof Schmucker based his remarks o the nineteenth Psalm, half of which was probably written by a man from Galilee, where God was worshipped in all simplicity without any formality or in the type of.
He served during the Vietnam War. He was a member of Messiah Lutheran Church. He was preceded in death by his parents and a brother, Jeff. "Be ye faithful unto death, and I will give thee a crown of.
Obituary, Death Notice on MILDRED H. SABO Sabo, Mildred H., 85, of Middle Grave Creek, formerly of McMechen, both in Marshall County, WV, died Thursday, October 16.
Be Faithful unto Death is the moving story of a bright and sensitive schoolboy growing up in an old-established boarding school in the city of Debrecen in.
Linda Elmore Enos. It is with our deepest sorrow that we announce the death of our beloved wife, loving mother, doting grandmother and great-grandmother, Linda Faye Elmore Enos on March 7, 2019.
He was preceded in death by two sons, Arthur Aaron Collier Jr. and Arthur. He was a loving father, grandfather and faithful friend. Services were Tuesday, January 8, at Tutor Memorial Funeral Home.
Robert Yeomans. Longtime Alaska resident Robert Michael "Bob" Yeomans, 60, died of lung cancer 28 Oct 08, in Eagle River. Bob was born 23 July 1948, in Oakland, N.J., to James Guy Yeomans and Florence Evelyn Romaine.
A host of oved ones gathered to pay their tri bute to her sweet life and untimely passing. died Friday at his home near the Double Springs church. Cause of his death was tuberculosis. Mr. Putnam.
A Guide to THE WINDOWS of Saint Andrew's Episcopal Church. H (eta) and S (sigma) – the first three letters in the Greek word for Jesus. and darkness through their belief in Him: "Be though faithful unto death, and I will. In Christian symbology, the tri-radiant halo is reserved for the three persons of the Holy Trinity.
He is preceded in death by his parents. She was a faithful member of the First Christian Church wherever they lived. She was active in Christian Women's Fellowship (CWF). She was a 47-year member.
Three daughters, four brothers and two sisters preceded him in death. He was a member of St. 3:45 p.m. Boy Scout troop 35 will meet at 7:15 p.m. Sigma Theta Xi and Kappa Delta Epsilon Tri-Hi-Y.
Rios. Soledad "Charlene" Rios, 47, of Eagle Lake, passed away Tuesday, Jan. 7. She was born April 8, 1955 in Tampico, Tamaulipas, Mexico to Acencion and Manuela Enriquez.
Now the elders of the city had judged and convicted her and were going to stone her to death. They were upset at Jesus. Jesus said, "As you do to the least of these, you also do it unto me." We.


Michael has been researching, practicing and helping others improve surfing performance through improving movement, nutrition, mindset and technique for 15 years.
Mike is a surf coach and movement coach focused on helping others to surf better through education, practice, and refinement. Michael combines surf coaching with; surf-specific bodyweight strength training, performance neurology & vision training to fast track your surfing progression.
Michael is passionate Surfer who has been studying surfing, human movement, athleticism, nutrition and health for over 15 years. He is an experienced Surf Coach & Personal Trainer who specializes in training surfers of all levels in and around Malibu, California and via Skype.
Surf lessons for all ages and levels.
The podcast is dedicated to sharing the knowledge of people in the surf industry who are happy to reveal their wealth of experience and insights to us all. Aimed at opening listeners to new ideas and fundamentals that will improve their surfing and surfing techniques and mindsets both in and out of the water.
We interview the best surfers in the world and the people behind them, so surfers can learn ways to improve their own surfing. The podcast is targeted to open-minded surfers who want to improve and progress thier surfing as well as enhance their surf longevity & health.
Each interview will educate the listener on ways to refine and progress their surfing and/or increase their surf longevity.
The course's, diploma's, certificates I have completed along with the books I have read, the coaches I have worked with and the training I have done have all been undertaken with a view to "improve my surfing"
I currently train surfers in Los Angeles, Malibu, C.A. specializing in surf-specific training – i.e. strength and conditioning for the movements of surfing, athletic development, surf mobility, body awareness training, balance, speed and quickness training, injuries and injury prevention.
I also run a variety of surf related health and fitness classes.
One on One and group surfing lessons available, call or text for availability.
We will rise early and hunt down the best and least crowded waves in the Malibu area, I have access to some private beaches or we can join the crowd at first point Malibu... and everything in between. We can just surf together, or I can film and coach from the beach. Grab a healthy lunch, surf again, go skating, hit the gym, breath training in the pool.. I am at your service and we will work together to create a bespoke & memorable surfing experience.
Zuma beach, Malibu point, Big Dume, County line, Leo C, Topanga Pt... Ventura beach breaks and Rincon or Lowers if you want to drive. Each location will have fun waves depending on conditions and the type of equipment you want to ride. I surf everyday and always find fun waves within 20mins drive.
Accommodation, food, some equipment, transportation, laughter, surfing knowledge, surf coaching, filming and photography.


This Herve Leger dress is composed of signature bandage knit, and detailed with a peek-a-boo panel at the yoke. The formfitting bodice flares into a swingy skirt. 3/4 sleeves. Hidden back zip. Unlined.
Shell: 90% rayon/9% nylon/1% spandex.


text:
Tune. New Sounds for the Week: 23 Nov
music, Uncategorized	by Melissa Ogier November 23, 2015 November 25, 2015
According to an unidentified source, holidays have been brought forward to put us all out of our collective misery. Actually, that's what we thought in our house last night, when we danced in the kitchen late on a Sunday evening. And, when the Wu Tang hair brush mic comes out, you just know that Monday is coming for you. With a vengeance. This week's new music is dedicated to you. Bloody Monday.
1200 Techniques: Flow Is Trouble feat. Ghostface Killah
Last month, Australian hip hop legends 1200 Techniques (DJ Peril, MC N'fa and Kemstar), dropped a huge track featuring Ghostface Killah from the notorious (and our firm family favourite) Wu-Tang Clan. We're loving the video filmed on the streets of Melbourne, including Fitzroy, my brother, my hood.
There are a few things I love about this; a. Peril and N'fa were a huge part of my clubbing days in the 90s, and I love that they succeeded beyond Carousel nighteclub b. Ghostface Killah from Wu Tang Clan and c. the video captures some of Melbourne's best street art.
Get ye to the single launch happening at The Workers Club on Thursday 3 December. Tickets on sale now.
Tiggs Da Author: Georgia
Southern hemi Summer is coming. It can be heard and felt in this snappy song.
Tiggs Da Author is a particularly individual proposition. Born and raised in Tanzania before moving to London at the age of eight, 25 year old multi-faceted rapper, singer, songwriter, and producer Tiggs Da Author (nee Adam Simon) is another eclectic soul graduate, who I would easily compare to the likes of Pharrell Williams and Janelle Monae.
Savages: T.I.W.Y.G.
Savages have unveiled new track 'T.I.W.Y.G.', an unflinching musical attack from the band's highly anticipated second album, Adore Life, which comes out on 22 January.
LDRU: Keeping Score
It's true. This song appeared on a Tune. post from a few weeks ago, but LDRU has since released the accompanying video, and the song has gone bah-nanas.
Peaches: I Mean Something feat. Feist
Watch the raucous new video from Peaches for I Mean Something – she's teamed up with 'advanced style' burlesque legends, filmmaker Silas & Feist. Peaches is an expert in eye opening. Lovers of garish fashions won't be disappointed.
RÜFÜS: Innerbloom
Innerbloom is lifted from the forthcoming Bloom, the second album from Australian trio, RÜFÜS. They've almost wrapped their massive, sold out, world tour; and their debut album, Atlas has just gone platinum.
Listen to The Garb Wire // A playlist of the music we write about.
1200 techniquesldrumusicpeachesRüfüssavagestiggs da authortune.
Style for Christmas: All About My Mother
Style for Christmas: A Foreign Affair


> asked about in your original question, your not seeing the KDE backports.
> That's the part I could learn from, the resolution of the problem.
Daniel has suggest I check the config file concerning apt-get. So I did.
that cleared up the problem.
Sometimes it the simplest things that mess everything up lol.
Did you have a problem too?


text:
Eupithecia sylpharia är en fjärilsart som beskrevs av W. Warren 1902. Eupithecia sylpharia ingår i släktet Eupithecia och familjen mätare. Inga underarter finns listade i Catalogue of Life.

Källor

Mätare
sylpharia

redpajama_set_name: RedPajamaWikipedia


Are you ready to explore the trendy boutiques of Central with your own Personal Shopper/ Stylist? Carla, a native of Sao Paulo, has shopped extensively throughout the world and will provide you with an exclusive tour that includes snacks, champagne, special discounts and styling advice.
She provides personal shopping for international clients and has organised a variety of fashion shows throughout Asia and the Middle East.
Feel free to invite up to 3 of your fabulous friends to enjoy the tour at no additional cost.


Hijiki is a seaweed which contains almost every trace mineral that an ocean can provide. It contains fiber, iodine, vitamin A and B, protein, and sodium alginate. It is highly rich in calcium, making it an extraordinary bone-builder. It acts as an excellent protector against bone diseases like osteoporosis. Hijiki is also rich in magnesium, iron, potassium, and phosphorus, all of which are important for the natural functioning of your body.
This seaweed is packed with high amounts of trace minerals and vitamins, containing an impressive variety of vitamins K, E, D, C, B and A. Kelp is also rich in iodine, fiber, sodium alginate and protein. Sodium alginate is a chemical compound which is helpful in removing radioactive particles from your body. Consuming raw kelp on a regular basis is helpful in improving digestive health and thyroid function, and it is an effective demulcent (soother) and blood purifier too.
An important ingredient in Japanese recipes, kombu is a type of seaweed as well, and is packed with almost all major minerals and vitamins owing to its high content of mineral salt. In addition to being rich in vitamins E, D, C and B, iodine, fiber, calcium, iron, potassium and protein, it also contains germanium, a rare nutrient with extraordinary skin-healing characteristics.
Agar is a gelatinous matter accumulating around cell walls of red algae. Nonetheless, it is an excellent food that can aid in weight loss. Containing 80% of fiber, agar absorbs water in the stomach and swells. This leads to a feeling of fullness, thereby discouraging overeating. It also has minimal fat or sugar, and only 14 calories per tablespoon. So, if you are looking for a healthy dessert without compromising your weight loss plan, then purchase some agar jellies.
A type of seaweed, Nori consists of 35-50% protein, and it an excellent source of protein for vegans and vegetarians.
These are some of the healthiest sea vegetables you can try to maintain and improve your health.


Mobile payments are the backbone of an increasingly omnichannel retail environment, allowing consumers to slip seamlessly between multiple devices, channels, and locations. Consumer mobile transactions are growing at a phenomenal rate, double that of the average retail, according to Critero's latest State of Mobile Commerce report.
This impressive growth in mobile payments and omnichannel behavior is driven by the youngest consumers in society: Generation Z. These true digital natives, born after 1995, are the most active adopters of mobile commerce. To these consumers, mobile payments and in-app services like Airbnb, Uber and Deliveroo are an instinctive and natural way to make purchases as they grew up with them. Unlike their older counterparts, Generation Z does not concern themselves with security fears or data privacy. As a result, Generation Z's use of mobile payments is more than double the average rate.
Business-to-consumer ecommerce is growing steadily across the globe, and will total approximately USD 2 trillion in 2016. By contrast, business-to-business ecommerce is expected to total USD 6 trillion this year, making up two-thirds of the total industry. Enterprises are completing business transactions online more and more frequently, yet mobile payments are almost entirely non-existent in a business environment. Settling payments to suppliers in a business environment is still largely a painful process, resulting in slow clearance times and sometimes strained business relations. There is clearly a disconnection between the current trends in consumer behavior – convenience, speed and mobility – and those in business. We expect the tides to turn on B2B mobile payments, and soon.
The oldest members of Gen Z are turning 21 this year. As they graduate and embark upon careers in the business world, they will expect their corporate affairs to be conducted with the same speed and convenience as their personal finances. They will expect the same intuitive digital applications to be available in a business setting.
Moreover, as financial service providers develop new tools for businesses, many are looking at the latest movements in consumer usage. By capitalizing on trends such as mobile and omnichannel payments, there is significant potential for B2B mobile payments to streamline the way SMEs and larger corporations do business.
The trend discussed in this blog post is just one insight from our Mobile Payments Report 2016. Curious to learn more about the current trends and patterns regarding mobile payments? Our report is available for free on our website, Payvision.com.


A brand isn't just about a logo. We craft an identity and create visuals that showcase your products and services using the right messaging and materials. We employ an integrated strategy for your brand to stand out in crowded markets.
As a full-service branding agency, our capabilities include brand strategy, logo design, naming, graphic identity, and more. We deliver outstanding identity systems to clients in professional services, real estate, finance, hospitality, and consumer goods. Let us earn your respect along with plenty of recognition for brand identity, logo design, website development, social media marketing, brochures, and sales collateral.
Your logo is the visual representation of your company. This is why a unique and eye-catching logo can go a long way in establishing your business identity and creating brand recognition. But what is a logo truly worth to a business? We view it as a long-term investment in your company's future. Your logo is a visual cue that tells a story of your brand's history, behavior, and values.
A well-designed logo should adapt to a variety of applications whether on a business card, a billboard or on Facebook. We take our time to understand your business, market, customers, and competitors to develop a unique, recognizable logo design that communicates your unique value proposition.
If you are looking for a design agency that has the track record, an appetite for craftsmanship, and the skills to translate your brand vision into a visual language, then you have come to the right place and DM Creative Studios is the right partner for you.


text:
Q: How to use SynchronousQueue appropriately in producer-consumer model? I wrote a test example of using SynchronousQueue in producer-consumer model. But it doesn't work well. Below are my codes:
public class QueueTest {

    String input;
    int pos;
    BlockingQueue<String> queue;
    volatile boolean exitFlag;

    QueueTest()
    {
        for(int i=0; i<10000; i++)
            input += "abcde";
        input += "X";
        pos = 0;
        queue = new SynchronousQueue<String>();
        exitFlag = false;
    }

    public static void main(String[] args) {
        QueueTest qtest = new QueueTest();
        qtest.runTest();
    }

    void runTest()
    {
        Thread producer = new Thread( new Producer());
        Thread consumer = new Thread( new Consumer());
        producer.start();
        consumer.start();
        try {
            producer.join();
            consumer.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    class Producer implements Runnable
    {
        public void run()
        {
            while(true)
            {
                String s = read();
                if(s.equals("X"))
                    break;
                try {
                    queue.put(s);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            exitFlag = true;
        }
    }

    class Consumer implements Runnable
    {
        public void run()
        {
            while(exitFlag == false)
            {
                String s = null;
                try {
                    s = queue.take();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                process(s);
            }
        }
    }

    String read()
    {
        String str = input.substring(pos, pos+1);
        pos++;
        return str;
    }

    void process(String s)
    {
        long sum = 0;
        for(long i=0; i<1000; i++)
            sum = sum * i + i;
    }
}

The problem is the running is stuck like a deadlock. Is there any bugs in these simple codes?

A: You are more then likely seeing a race condition.  Imagine the scenario
Thread 1 put into queue
Thread 2 takes out of queue quickly processes and awaits another put from thread 1
Thread 1 finishes and sets exitFlag to true

In this case Thread 2 will sit the permanently since exitFlag was not set to false before Thread 2 read from it.
You may want to consider a poison pill.  It's a message to the other thread that we have completed.  For instance:
   final String POISON_PILL = " POISON";

class Producer implements Runnable {
    public void run() {
        while (true) {
            String s = read();
            if (s.equals("X"))
                break;
            try {
                queue.put(s);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        try {
            queue.put(POISON_PILL);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

class Consumer implements Runnable {
    public void run() {
        String s = null;
        try {
            while ((s = queue.take()) != POISON_PILL) {
                process(s);
            }
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

So when the other thread is notified the other thread has completed both threads should end gracefully.

A: Since your exitFlag is shared between multiple threads, you must do something to make the update by the Producer visible to the Consumer (in terms of the java memory model).  for this example, making the value volatile would be sufficient.
UPDATE:
You should generate a stack dump of your hung code.  That will give you a clue as to what is happening.  This code is a good example as to why you shouldn't use a flag for control along with a BlockingQueue.
UPDATE 2:
Bummer, @JohnVint let the cat out of the bag.  Yes, the poison pill is the solution to this race condition.

A: Your program will be stuck in the following scenario:
Producer sets the exitFlag (without putting a new element) just after the Consumer checks whether existFlag is true. If there is no more elements in the queue (Consumer managed to process all the elements before) consumer will be blocked on queue.take().
You can use queue.poll(), which is no blocking method. It would require changing your program a little bit.


Bosch SPV40C00GB dishwasher review - Which?
The fully-integrated slimline Bosch SPV40C00GB dishwasher comes with space inside for 90 items and will take up less space in your kitchen than larger full-sized models. But does its small dimensions mean lower cleaning power? We tested it on dishes covered in tough-to-shift foods such as spinach and oat flakes, and glasses caked with dried-on milk. Read on to discover just how this Bosch dishwasher got on.


text:
Q: Facebook Share success callback Is there a callback or another way to track whether or not someone successfully shared something using the share button?

A: Are you using FB.ui?
As it says right there in the docs
function(response) {
  if (response && response.post_id) {
    alert('Post was published.');
  } else {
    alert('Post was not published.');
  }
}


text:
package com.digitalpebble.stormcrawler.filtering;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.slf4j.LoggerFactory;

import com.digitalpebble.stormcrawler.Metadata;
import com.digitalpebble.stormcrawler.util.ConfUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.NullNode;

/**
 * Wrapper for the URLFilters defined in a JSON configuration
 */
public class URLFilters implements URLFilter {

    public static final URLFilters emptyURLFilters = new URLFilters();

    private static final org.slf4j.Logger LOG = LoggerFactory
            .getLogger(URLFilters.class);

    private URLFilter[] filters;

    private URLFilters() {
        filters = new URLFilters[0];
    }

    /**
     * Loads and configure the URLFilters based on the storm config if there is
     * one otherwise returns an empty URLFilter.
     **/
    public static URLFilters fromConf(Map stormConf) {

        String urlconfigfile = ConfUtils.getString(stormConf,
                "urlfilters.config.file");
        if (StringUtils.isNotBlank(urlconfigfile)) {
            try {
                return new URLFilters(stormConf, urlconfigfile);
            } catch (IOException e) {
                String message = "Exception caught while loading the URLFilters from "
                        + urlconfigfile;
                LOG.error(message);
                throw new RuntimeException(message, e);
            }
        }

        return URLFilters.emptyURLFilters;
    }

    /**
     * Loads the filters from a JSON configuration file
     *
     * @throws IOException
     */
    public URLFilters(Map stormConf, String configFile) throws IOException {
        // load the JSON configFile
        // build a JSON object out of it
        JsonNode confNode;
        try (InputStream confStream = getClass().getClassLoader()
                .getResourceAsStream(configFile)) {
            ObjectMapper mapper = new ObjectMapper();
            confNode = mapper.readValue(confStream, JsonNode.class);
        } catch (Exception e) {
            throw new IOException("Unable to build JSON object from file", e);
        }

        configure(stormConf, confNode);
    }

    @Override
    public String filter(URL sourceUrl, Metadata sourceMetadata,
            String urlToFilter) {
        String normalizedURL = urlToFilter;
        try {
            for (URLFilter filter : filters) {
                long start = System.currentTimeMillis();
                normalizedURL = filter.filter(sourceUrl, sourceMetadata,
                        normalizedURL);
                long end = System.currentTimeMillis();
                LOG.debug("URLFilter {} took {} msec", filter.getClass()
                        .getName(), end - start);
                if (normalizedURL == null)
                    break;
            }
        } catch (Exception e) {
            LOG.error("URL filtering threw exception", e);
        }
        return normalizedURL;
    }

    @Override
    public void configure(Map stormConf, JsonNode jsonNode) {
        // initialises the filters
        List<URLFilter> filterLists = new ArrayList<>();

        // get the filters part
        String name = getClass().getCanonicalName();
        jsonNode = jsonNode.get(name);

        if (jsonNode == null) {
            LOG.info("No field {} in JSON config. Skipping", name);
            filters = new URLFilter[0];
            return;
        }

        // conf node contains a list of objects
        Iterator<JsonNode> filterIter = jsonNode.elements();
        while (filterIter.hasNext()) {
            JsonNode afilterNode = filterIter.next();
            String filterName = "<unnamed>";
            JsonNode nameNode = afilterNode.get("name");
            if (nameNode != null) {
                filterName = nameNode.textValue();
            }
            JsonNode classNode = afilterNode.get("class");
            if (classNode == null) {
                LOG.error("Filter {} doesn't specified a 'class' attribute",
                        filterName);
                continue;
            }
            String className = classNode.textValue().trim();
            filterName += '[' + className + ']';

            // check that it is available and implements the interface URLFilter
            try {
                Class<?> filterClass = Class.forName(className);
                boolean interfaceOK = URLFilter.class
                        .isAssignableFrom(filterClass);
                if (!interfaceOK) {
                    LOG.error("Class {} does not implement URLFilter",
                            className);
                    continue;
                }
                URLFilter filterInstance = (URLFilter) filterClass
                        .newInstance();

                JsonNode paramNode = afilterNode.get("params");
                if (paramNode != null) {
                    filterInstance.configure(stormConf, paramNode);
                } else {
                    filterInstance.configure(stormConf, NullNode.getInstance());
                }

                filterLists.add(filterInstance);
                LOG.info("Loaded instance of class {}", className);
            } catch (Exception e) {
                LOG.error("Can't setup {}: {}", filterName, e);
                continue;
            }
        }

        filters = filterLists.toArray(new URLFilter[filterLists.size()]);
    }
}


The Site is one of the largest string mires in southern Norway. It contains areas of transition between open water, bogs, and dry areas with mountainous birch forest. The central part of the Site is dominated by a small watercourse and Kulingstjern, the largest lake. There are also distinct glacial landforms such as drumlins, eskers and kames, formed by movements of ice and melted water during glaciation. 103 bird species have been recorded; for many northern and alpine bird species this is their southernmost breeding site. The Site is also important for reindeer during their calving season. In addition, it is valuable for carbon storage and sequestration. Human activities include nature conservation, fishing, livestock grazing, recreation, and tourism. More than 100 archaeological sites relate to iron works from the Viking Age and Middle Ages.


Astri Wee Photography – Luxury. Quality. Fine Art Photography.
LUXURY. QUALITY. FINE ART PHOTOGRAPHY.
Custom, fine art photography is an investment that lasts a lifetime.
A portrait session with Astri Wee Photography is the perfect way to preserve your most cherished moments as unique works of art. Dedicated to delivering you only the best service and the finest products, Astri captures the natural beauty of newborns and families into stunning works of photographic art.
Astri offers photography sessions onsite at your home, or other locations of your choosing. She loves to photograph outdoors, which is ideal for achieving a more natural feel of children, as well as families. Sessions from Astri Wee Photography are relaxed and enjoyable, so she can catch those perfect moments of genuine emotions and interactions among family members.
Her goal is to preserve your family's fleeting, loving moments as beautiful works of art that will be treasured forever. Astri's clients love to display their custom art as wall clusters and albums to tell a visual story with their portraits.
As a client, Astri wants you to feel welcomed and comfortable. You will walk away from your experience completely in love with the images you and Astri have made together.
Astri Wee Photography offers a 100% satisfaction guarantee. If you are not thrilled with your portraits, a free re-shoot is offered until you are.
Please contact Astri at her studio via email or under Contact to discuss the ideal setting, styling and inspiration for your session.
Astri Wee Photography serves all of the Northern VA, DC and MD area, and Astri is more than happy to travel further. Please inquire for jobs outside of 20 miles of zip code 20191.


Dr. █████: "Please have a seat."
Dr. █████: "Let's get down to business. I understand you're requesting a transfer out of fieldwork. Would you like to talk about that?"
Agent Walker: "I'd rather not."
Dr. █████: "It's your choice. However, I can't approve a transfer without reason."
Agent Walker: "Look, I…" The agent paused here. "You've seen my record. You know I worked on twenty-six, right?"
Dr. █████: "I've read the report."
Agent Walker: "I was there the first time we took one of the sleepers out. A lot of them were adults when they disappeared, but they're kids again when we find them. So, I see this sixteen-year-old boy just kind of shrivel away. I had nightmares that night."
Dr. █████: "You're supposed to report any unusual dreams after contacting a potentially mind-altering phenomenon."
Agent Walker: "It hadn't been declared a mindscrew yet. We just thought it was a weird space thing. We were just watching it until the Picnickers got there. And it was a shock, you know? We weren't expecting anything like that. Anyway, I got over it quick enough. I'd seen worse. I once had a guy melt while I was holding onto him."
Dr. █████: "I see. What happened next?"
Agent Walker: "Nothing, for a while. I went in a couple of times, but didn't see anything too weird. But… Look, I know I should have reported it. But one of my buddies had just been disappeared after getting touched by some weird scip, and I didn't want it to happen to me."
Dr. █████: "You've been affected by an SCP?"
Agent Walker: "I… Yeah. It was a week later. I was dozing in the back of the van, and I started dreaming."
Dr. █████: "Can you describe this dream?"
Agent Walker: "Just like the others. You've read the reports, right?"
Dr. █████: "Pretend that I haven't. For the record, Agent Walker."
Agent Walker: "All right. I'm in a classroom. It's just like one of the ones in 026, but new. Not falling apart. I knew the teacher's name. I knew who was sitting by me, even though I'd never seen most of them before. The bell started ringing, but no one moved. I raised my hand, but the teacher didn't notice. Finally, I tried to leave, but the door wouldn't open. Then I noticed something strange with my hand. It had color. Everything else was black and white. But I felt like I was the one who was… wrong? Out of place? That's when I woke up. The van was leaving. No one else noticed I'd been asleep."
Dr. █████: "And you didn't think to report this?"
Agent Walker: "Like I said, I was scared. And this was before they found Malek. I figured it was just another nightmare. Nothing weird. And after Malek had his dream, well, they didn't do anything with him, so I figured it wasn't a big deal."
Dr. █████: "He was put on observation. You should have been as well, for your own safety and for the safety of others."
Agent Walker: "You paper-pushers think it's all so easy, don't you? Sitting behind a desk all day, you don't know what it's like. Well, things aren't so clear out there. Not when you're the one hunting talking cats in a sewer, or waiting to see if you're the one who's not going to come back this time."
Agent Walker was visibly distressed. It was several minutes before she calmed down enough to continue the interview.
Agent Walker: "Anyway, it wasn't until later that we connected the dreams with the sleepers. Not until they found those Class Ds on the second floor. Still, I thought I might be okay. I wasn't actually inside of twenty-six when I dreamed. I wasn't sure until the dreams started."
Dr. █████: "You're having reoccurances?"
Agent Walker: "Yeah. They started six months ago. It's the same dream. But each time, it takes me a little longer to notice it isn't real. And when I look at my hands, they're a little more gray."
Note: Agent Walker has since been given a Class A Amnesiac and returned to field work.


Endgame for DNA Collection Debate?
For five years, the ACLU of Pennsylvania has fought legislation to collect and store DNA from people who have not been convicted of a crime. The varying forms of the legislation demanded DNA collection from people who had been arrested for or charged with certain crimes, flipping the idea of "innocent until proven guilty" on its head.
In each of the last two sessions, a bipartisan coalition of state representatives has turned back the legislation when it has reached the House. If you follow the personalities of state politics, check out this amendment vote from 2012. Those voting "yea" voted to remove the preconviction collection provision from that bill. Yes, Rep. Daryl Metcalfe (R-Butler County) and Rep. Dan Frankel (D-Pittsburgh) voted together, along with a host of liberals and conservatives and moderates.
On Tuesday, the House Judiciary Committee took up yet another version of this legislation. But instead of moving the bill along with the offending language, as the committee has done in the past, Chairman Ron Marsico (R-Dauphin County) offered an amendment to remove the language that requires DNA collection from people who have been arrested. His amendment replaced it with expansion of the current postconviction collection to include all first-degree misdemeanors and some second-degree misdemeanors.
While some civil libertarians won't like expanding the post-conviction practice, which is currently for all felonies and a few misdemeanors, stopping across-the-board, blanket DNA collection from people who have not been convicted is, in the words of Vice President Biden, a big (frickin') deal. Twenty eight states and the federal government collect DNA from people who have been arrested or charged but not convicted, and in 2013, a divided Supreme Court upheld the practice.
The privacy implications of preconviction DNA collection are huge. First, the government must jam a swab into your mouth or pluck a hair from your head or take blood to get a DNA sample. (The swab is the most common form of the practice.) In that practice alone, the government is in choppy privacy grounds in invading the person of someone who is still considered innocent under the law and in doing so without a warrant approved by a court.
Then, the government takes that very personal, very private information and uploads it to a database at the Pennsylvania State Police, which is linked to a query system at the FBI called the Combined DNA Index System, or CODIS. Remember, our DNA contains more than 1,000 identifying characteristics about us. And while the profile created for these databases only contain the markers that identify a person, don't kid yourself. The infrastructure is in place to store more. If you're acquitted or never charged or exonerated, you have to go back to court to get your DNA profile out of the database.
Of course, every win comes at a cost. The Marsico amendment maintained and actually worsened language in the bill on "modified DNA searches," or what are more commonly known as familial searches. You and your family members share DNA. The more distant the relative, the less DNA you share. If this language becomes law, a law enforcement agency can go to the state police and ask for a modified search. PSP would then determine if the evidentiary sample is a close enough match to someone in their database that it could be linked to a family member of that person. If your troublemaker cousin is in the DNA database, you're in the DNA database.
Senate Bill 683 contains all sorts of requirements before a familial search can be conducted, but the Marsico amendment added language that prohibits a person from challenging an arrest, conviction, search, or any other investigatory action because the law enforcement agency did not follow the requirements. So the limitations on familial searches are, essentially, meaningless.
This will probably be a contentious issue if and when this bill makes it to the House floor. Familial searches are highly controversial. And in its opinion upholding Maryland's arrestee DNA law, the Supreme Court suggested that familial searches may be unconstitutional.
This bill still has several steps to go before it is finished, so no one is declaring victory. But the House Judiciary Committee, for the first time in three tries, recognized that the will of the legislature- and, specifically, Republicans and Democrats in the House- wasn't there to pass a bill to collect DNA from people who have not been convicted of a crime. That's a BFD.
For the second consecutive legislative session, a bill that would greatly expand when law enforcement could collect your DNA has failed to pass in the state legislature. The bill would have invested a lot of additional money into the existing state DNA database, and more alarmingly, it would have required state police to collect DNA samples from individuals who were arrested for specific crimes, even if they were never actually charged.
The new collection would have been introduced gradually, covering only people arrested on suspicion of murder in the first year of implementation before expanding to felony sexual offenses in the second. By the third year, however, the mandate expands to arrestees of ALL felonies and certain specified misdemeanors. Even if an arrestee was never charged (let alone convicted) of the crime, the DNA sample would remain in the database unless the person filed a written request for removal and the request was granted.
Supporters of this bill got a win in the United States Supreme Court in 2013, when the court upheld Maryland's arrestee DNA collection procedure as an adequate identification procedure. We—and many other groups and individuals—disagreed with the court's interpretation of the Fourth Amendment and were incredibly cynical about the claim that arrestee DNA collection was primarily used for identification and not investigation, but because they ultimately interpret the Bill of Rights, our tactic had to change slightly. We were prepared to make a case that even if arrestee DNA collection is permissible under the Fourth Amendment, it still violates the search and seizure provision of the state constitution. The PA Supreme Court has articulated some scenarios where the state constitution affords a higher level of protection that the Fourth Amendment, but it can be a difficult argument to make and sell to legislators.
Fortunately, we never really had to make that argument. DNA collection expansion provoked strong opposition in the House, as numerous representatives expressed serious concerns about how this bill would encroach on people's privacy. The opposition was truly bipartisan—members who could be described as very conservative, very liberal, or moderate all expressed their disapproval of such an extreme expansion of law enforcement's power, and many of the representatives who helped defeat the bill in the 2011-12 session were willing to stand once again against the proposed DNA expansion. This opposition encouraged us greatly, and when it became clear that House Leadership was not going to act on the Senate bill, we were optimistic that the fight might be over.
In the final two weeks, however, the Senate revived DNA expansion by amending it into an unrelated online impersonation bill that the House had already passed. This was the Senate's Hail Mary pass, as it hoped enough House members would be supportive of the online impersonation bill to overlook the DNA language that had been added.
Fortunately, our House allies came through for us again. After the bill passed the Senate, the House Rules Committee quietly removed the DNA amendment as violating the state constitution's Single Subject Clause before there was any opportunity to debate the substance of the DNA amendment itself. With that, the House ended any fear that the arrestee DNA collection bill would pass this session.
The last two sessions have made it clear that there is definitely motivation within Senate leadership to expand DNA collection within the commonwealth, so we may have to fight a bill like this again next year. Hopefully, the failure to pass the bill in two consecutive sessions sends a strong message to the Senate that this is not a policy that the people of Pennsylvania support, but if the Senate remains insistent that this bill should pass, then those of us in Harrisburg next session will continue our efforts to lobby against this bill and any other proposed policy that would dramatically encroach on the privacy rights of Pennsylvanians.
Paul Anderson is the 2014-15 Larry Frankel Legislative Fellow at the ACLU of Pennsylvania and a third year student at Penn State Dickinson School of Law.


text:
Alternative Data for Predicting Geopolitical Risk
A machine learning algorithm is only as good as the data you use to train it with. That's why any company that has a large proprietary data set can now start to extract exclusive insights from it, something that in the olden days we used to call "data mining." Nowadays, it's all about trying to predict the future using something called "predictive analytics." Nowhere is the need to predict the future more lucrative than in the world of finance. That's because there are financial products – like options – that can be used to place highly leveraged bets on particular outcomes. This has led to an increasing availability of obscure data sets that are commonly referred to as "alternative data."
Alternative Data for Geopolitical Risk
Consumer footfall and transaction data, app downloads and usage, national job listings, vessel tracking, and satellite images of metal ingots are all alternative data sets that can contain signals that help predict the future. Hedge funds are even tracking the movement of private jets in order to try and predict what the rainmakers of the world are going to do next. The demand for alternative data hasn't gone unnoticed by large firms like Bloomberg which announced they'll move into the alternative data space as a distributor, or Nasdaq which acquired Quandl – an aggregator of alternative data – late last year. Today, we're going to look at some firms that are producing alternative data for "geopolitical risk."
Also known simply as political risk, geopolitical risk is pretty much what it says on the tin – risk that stems from change resulting from the government. Per Investopedia, this could be "taxes, spending, regulation, currency valuation, trade tariffs, labor laws such as the minimum wage, and environmental regulations." The word "geopolitical" implies a broader focus on international relations as opposed to just what the Americans happen to be squabbling about at the moment.
Up until now, political risk consultancies like Eurasia Group and Oxford Analytica have provided guidance at a strategic level for firms looking to manage political risk. Today, there's a move towards using machine learning techniques like "natural language processing" to scour the world's information and quantify geopolitical risk at a much more tactical level. One such firm is Geoquant.
Geoquant
Founded in 2016, San Francisco startup Geoquant raised $4 million in funding to develop "an AI-driven political risk intelligence platform that measures, analyzes, and forecasts political risks in real time." Geoquant's top line Political Risk Scores and data streams for G20 countries were made available on the Bloomberg Terminal back in 2017. The company has produced an excellent white paper which talks about how emerging markets have been historically more prone to geopolitical risks because they have less predictable governments, but in today's world, "developed markets no longer offer investors the political stability and political predictability they once did."
The paper goes on to talk about how political risk used to be too idiosyncratic to define until Geoquant developed the world's first benchmark measures for political risk using both structured and unstructured data. Structured data comes in the form of 250 variables drawn from "credible country-level databases maintained by multilateral institutions, NGOs, governments, social scientists, and the like," with historical data going back to 2009. Since these data points are updated infrequently – annually or quarterly – Geoquant uses high-frequency unstructured data to give their models some responsiveness. This data is "drawn from high-quality traditional and social media sources" using natural language processing algorithms.
Since going live in June 2016, the system has been used "to forecast most major political events in the G20 with remarkable accuracy," says the company. For example, here's a chart which shows how the Turkish coup was anticipated by the model.
Source: GeoQuant white paper
There are plenty of other examples given in the white paper which also does a good job of defining the limitations of geopolitical risk models. In other words, this stuff is really complicated and until we figure out how to use quantum computers to time travel, we're never going to truly predict the future. What might help the predictive power of geopolitical risk – if not make it a bit more confusing – is to throw another magic eight ball into the mix. A firm called Predata is also predicting geopolitical risk, they're just doing it a bit differently.
Update 11/15/19: GeoQuant has raised $4.5 million in Series A funding to accelerate growth and development of the first high-frequency political risk data set with demonstrated market relevance. This brings the company's total funding to $8.5 million to date.
Predata
Founded in 2015, New Yawk startup Predata has taken in $3.3 million in funding to develop a platform that uses machine learning algorithms to "condense data sources from around the web into clear and unified signals for geopolitical risk." Similar to Geoquant, Predata attempts to quantify political risk in an increasingly connected world with many moving parts. The difference is explained in a recent article by the Global Association of Risk Professionals:
"We don't employ natural language processing or key word analysis," Dawani explains. "We purely look at sources curated by our expert analysts on serious topics and employ machine learning technologies to identify patterns of behavior." The software performs in any language – it is language-agnostic; can customize queries, posing a broad range of questions; and covers 180 countries.
The end result is a tool that allows you to track geopolitical risk over time and across various countries and regions.
Source: Predata
In March of this year, Predata's geopolitical risk signals were made available to Bloomberg clients including a daily index of political volatility for 125 countries called the Predata Political Volatility Index (PVIX). Just last month, the firm released a dedicated offering for U.S. equities which will examine sector-level and company level risks. Some examples given by the company include:
The swine fever epidemic in China & how the rise of this crisis into the public eye had a divergent effect on meat processing companies with and without Chinese ties
How heightened research into crop insurance underlies the economic situation of US farmers in light of trade war tariffs, and the consequences of reduced CapEx spend on companies in that space
Anomalous spikes of non-English language attention to a Tesla supplier, which provided early warning that something may be amiss ahead of an official recall announcement
This is the sort of thing that an equity portfolio manager might find useful. Speaking of equity portfolio managers, the world's largest money manager, BlackRock (BLK), has also developed an in-house tool for monitoring geopolitical risk.
BlackRock's Geopolitical Risk Dashboard
As of June 30, 2019, BlackRock's Assets Under Management (AUM) total $6.84 trillion across equity, fixed income, cash management, alternative investment, real estate, and advisory strategies. When you're managing that much money, there's an expectation from your clients that every conceivable tool is made available to your portfolio managers so that they can make better investment decisions. It's no surprise to see that BlackRock has built their own geopolitical risk signalling tool. Below, you can see a global index of political risk – not surprisingly at an all-time high – and also the top-10 geopolitical risks according to BlackRock.
Source: BlackRock
In the fine print, BlackRock talks about the methodology used to produce these charts which is similar to the other firms we've discussed:
We identify specific words related to geopolitical risk in general and to our top-10 risks. We then use text analysis to calculate the frequency of their appearance in the Refinitiv Broker Report and Dow Jones Global Newswire databases as well as on Twitter. We then adjust for whether the language reflects positive or negative sentiment, and assign a score.
Looks like all the armchair CEOs on Twitter are actually being listened to by somebody. The whole thing appears to be a work in progress as BlackRock goes on to say:
We recently improved the methodology of our global BGRI, tying it closely to our other risks and updating the keywords. The chart may look different from previous updates as a result.
Making adjustments to the methodology can be expected as BlackRock looks to refine the BlackRock Geopolitical Risk Dashboard (BGRD) which was first launched just over a year ago. While the dashboard sure looks slick, that's not where the real value lies.
You may be thinking to yourself, if BlackRock makes all this information available on their website, then how can startups like Predata and Geoquant make money selling pretty much the same information? The answer lies in how the data is made available. This isn't about some financial adviser who rides the train to work showing some geopolitical risk charts to his client who gets driven to work in a Maybach. That's not where the value is. In order to generate alpha with this information, it needs to be plugged into extremely sophisticated trading strategies – many now powered by machine learning algorithms – and that requires the data to be made available in real-time via an Application Programming Interface (API). That way, trading strategies can take action within microseconds of a data point changing. In order to get access to this data in real-time, you'll need to pay for it.
At the beginning of this article, we talked about the value of data sets that companies have exclusive access to. This raises an obvious question about the increasing prevalence of alternative data. How much less valuable does an alternative data set become when a firm decides to distribute it to the masses through platforms like Bloomberg? In our past conversations with alternative data creator RavenPack, they spoke about how making the data available to everyone just increases the number of ways in which it can be used – something they referred to as "alternative data democratization." Machine learning algorithms are now a commodity. Anyone can download one of the many free AI software platforms out there and start extracting data. The real value appears to be the research teams who can make the most sense of it.
Inpher Preserves Data Residency With Secret Computing
Why We're Not Buying Appen Stock On the Dip
The Big Business of Big Data Labeling as a Service