Causes of cancer are quite well known, aren't they?
Everyone knows that smoking causes cancer, and that too much sun exposure does the same thing.
Medicinenet.com discusses risk factors and ranks them numerically.
Here they are: 1. Growing Older, 2. Tobacco 3. Sunlight, 4. Ionizing radiation, 5. Certain chemicals and other substances, 6. Some viruses and bacteria, 7. Certain hormones, 8. Family history of cancer, 9. Alcohol, 10. Poor diet, lack of physical activity, or being overweight.
The last one may be the only one of any real import, although number 5 must also be considered.
But numbers 6, 7 and 8? I don't think so.
I'm not a doctor of any type. I'm just a very healthy senior citizen who hasn't had any professional medical attention since childhood.
All of us are growing older - so why don't we all have cancer?
Of course, these are risk factors - not actual causes of cancer.
One small word is usually left off any list of causes or risk factors: fear.
Fear comes as a result of the high mortality rate of cancer victims - a rate publicized regularly along with admonitions about early detection.
Add the stories of pain and suffering from medicine's program of treatments and fear is compounded.
If you and I know that we will never be at risk of having cancer take hold in our bodies, we eliminate fear.
Not that super intelligence is required. In fact the only requirement is the ability to separate truth from dogma.
The prevailing dogma on the American health care scene is that we are all vulnerable organisms susceptible to germs, genes, and other biological structures beyond our control.
The only reason that this dogma prevails is that the vast majority of Americans are products of the public school systems and have been schooled to accept the reverence for medical science and pharmacology.
If you are part of that majority, you most likely believe that the common cold is a disease you catch by being exposed to bacteria or viruses. And, you most likely run to your doctor at the first sign or sniffle - or maybe you just go to the nearest drug store or supermarket and pick up some Tylenol Cold and Sinus, or some Vicks Nyquil.
If you rely on a lot of those kinds of products sold over the counter at all the drug stores now located on nearly every major intersection of metropolitan areas across the land, you are likely ingesting the actual causes of cancer.
Not that cold products are the only culprits - not by a long shot.
All the toxins ingested from foods, body lotions and deodorants, sprays, hair products, noxious fumes from our environments, stress from external sources along with stress we generate internally - all contribute to the formation of cancer cells.
But every single one of us has a body which is capable of getting rid of cancer cells as soon as they form.
That capability is compromised by the fact that most of us pay very little attention to our diets.
You could say we ourselves are the causes of cancer.
We typically eat whatever we feel like eating.
Hamburgers, hotdogs, pizza, doughnuts, steaks from corn-fed cattle, lots and lots of bread made from wheat, all kinds of processed and packaged foods with chemical preservatives, gallons of carbonated beverages highly sweetened with sugar, or even worse, sweetened with high fructose corn syrup -- the list is really endless.
None of these items by themselves are actually causes of cancer.
They just cause us to be unhealthy, and reduce or eliminate our natural ability to get rid of cancer cells when they form.
The crap most Americans eat all the time is bad enough, but a terrible side effect of eating all that stuff is that our taste buds are trained to enjoy all those flavors, and they detest the organically raw green leafy vegetables loaded with chlorophyll and other natural substances which actually enhance the body's ability to eliminate cancer cells.
So, we could make a case for food being among the causes of cancer.
But real food, food that actually provides the vitamins, minerals, enzymes, proteins and energy your body needs to stay healthy, is separate and distinct from the junk that masquerades for food.
Not that I never eat junk. Sometimes I can't resist.
There are quite a few things I never eat - such as anything containing wheat. At least if I know it contains wheat, I don't eat it.
If you think whole-grain wheat is okay, pick up a copy of Dangerous Grains, by James Braley, M.D. and Ron Hoggan, M.A.
Our bodies can handle a little bit of junk if we feed ourselves mostly really health-promoting foods. That means mostly raw fruits and vegetables - organically grown, or obtained from local growers you know and trust - or grown in your own garden.
Oh - one thing I didn't mention as one of the causes of cancer. Two things, actually.
I can hear the howls from anyone who has a friend or loved one undergoing such therapies.
But, please. Consider the long list of side effects. If you're using any such therapies, you're being made sicker by using them. They ruin any natural immunity you might have left.
The procedures kill cancer cells, but they kill people as well. I'm amazed that some really hardy souls survive these so-called treatments. It's a testament to the incredible durability of the human organism.
If you survive chemo and radiation, you may have followed a strict diet consisting of juices of fresh organically grown vegetables during and after your chemo or radiation.
If, somehow, you've survived chemo or radiation, and have been declared to be in remission, congratulations! If you have yet to change your regular diet to one which is really healthy, please do so immediately.
Go out and buy a copy of Clean, by Dr. Alejandro Junger, M.D.
Please read it and follow it to the letter, paying close attention to what to eat and when to eat it.


We woke up to rain on Independence day. We had to cancel our parade plans and instead went to Bob Evans for breakfast.
And for dinner we hit up LaRosa's with Levi and his family. These guys ordered swords with their pizza!
And the rain cleared off just in time for some fireworks. God Bless the USA!
Buy 1 get one free frappe's and smoothies at Mickey D's. And yes, that is a Big Mac in the background.
Pizza and cupcakes with family. Yum!
A memo from Mitsubishi. So funny!
He loves to shop! At only ONE store.
The cow seemed slightly confused when Caleb showed up in his McAwesome tshirt!
Rediscovering old friends. A wonderful visit with a faraway (and a not so faraway) friend. So fun to see our kids becoming friends too!
Grant's face is killing me in this picture! Um...Mom, why are you acting like this in public?!
And now he's giving me "the look"
Then we settled down and tried to take a normal picture.
For some reason, every time we are together we always end up at a icecream place. Few thing are more fun that chasing each other around the table.
Wow! This summer has flown by! I can't believe school starts in just 2 weeks. These are the rest of my pictures for June.
Road trip to Chicago. Passing a landmark - the Greensburg exit.
Back home from Chicago and we got to spend the whole day with this cute face! A little trip to the grocery store with Taylor while Robbie and Tricia worked on his property.
Swimming at "Grammy's" pool. Isaac is hidden behind Abby's pool noodle.
Old Navy 7am. Annual flip-flop sale. Per Abby's request we braved the crowds and scored a deal!
Dessert for Sunday dinner compliments of Chef Ella.
Baby squash growing in our garden!


text:
namespace osrm
{
namespace engine
{
struct Engine::EngineLock
{
    // will only be initialized if shared memory is used
    storage::SharedBarriers barrier;
    // decrease number of concurrent queries
    void DecreaseQueryCount();
    // increase number of concurrent queries
    void IncreaseQueryCount();
};

// decrease number of concurrent queries
void Engine::EngineLock::DecreaseQueryCount()
{
    // lock query
    boost::interprocess::scoped_lock<boost::interprocess::named_mutex> query_lock(
        barrier.query_mutex);

    // decrement query count
    --(barrier.number_of_queries);
    BOOST_ASSERT_MSG(0 <= barrier.number_of_queries, "invalid number of queries");

    // notify all processes that were waiting for this condition
    if (0 == barrier.number_of_queries)
    {
        barrier.no_running_queries_condition.notify_all();
    }
}

// increase number of concurrent queries
void Engine::EngineLock::IncreaseQueryCount()
{
    // lock update pending
    boost::interprocess::scoped_lock<boost::interprocess::named_mutex> pending_lock(
        barrier.pending_update_mutex);

    // lock query
    boost::interprocess::scoped_lock<boost::interprocess::named_mutex> query_lock(
        barrier.query_mutex);

    // unlock update pending
    pending_lock.unlock();

    // increment query count
    ++(barrier.number_of_queries);
}
} // ns engine
} // ns osrm

namespace
{
// Abstracted away the query locking into a template function
// Works the same for every plugin.
template <typename ParameterT, typename PluginT, typename ResultT>
osrm::engine::Status RunQuery(const std::unique_ptr<osrm::engine::Engine::EngineLock> &lock,
                              osrm::engine::datafacade::BaseDataFacade &facade,
                              const ParameterT &parameters,
                              PluginT &plugin,
                              ResultT &result)
{
    if (!lock)
    {
        return plugin.HandleRequest(parameters, result);
    }

    BOOST_ASSERT(lock);
    lock->IncreaseQueryCount();

    auto &shared_facade = static_cast<osrm::engine::datafacade::SharedDataFacade &>(facade);
    shared_facade.CheckAndReloadFacade();
    // Get a shared data lock so that other threads won't update
    // things while the query is running
    boost::shared_lock<boost::shared_mutex> data_lock{shared_facade.data_mutex};

    osrm::engine::Status status = plugin.HandleRequest(parameters, result);

    lock->DecreaseQueryCount();
    return status;
}

template <typename Plugin, typename Facade, typename... Args>
std::unique_ptr<Plugin> create(Facade &facade, Args... args)
{
    return osrm::util::make_unique<Plugin>(facade, std::forward<Args>(args)...);
}

} // anon. ns

namespace osrm
{
namespace engine
{

Engine::Engine(EngineConfig &config)
{
    if (config.use_shared_memory)
    {
        lock = util::make_unique<EngineLock>();
        query_data_facade = util::make_unique<datafacade::SharedDataFacade>();
    }
    else
    {
        if (!config.storage_config.IsValid())
        {
            throw util::exception("Invalid file paths given!");
        }
        query_data_facade = util::make_unique<datafacade::InternalDataFacade>(config.storage_config);
    }

    // Register plugins
    using namespace plugins;

    route_plugin = create<ViaRoutePlugin>(*query_data_facade, config.max_locations_viaroute);
    table_plugin = create<TablePlugin>(*query_data_facade, config.max_locations_distance_table);
    nearest_plugin = create<NearestPlugin>(*query_data_facade);
    trip_plugin = create<TripPlugin>(*query_data_facade, config.max_locations_trip);
    match_plugin = create<MatchPlugin>(*query_data_facade, config.max_locations_map_matching);
    tile_plugin = create<TilePlugin>(*query_data_facade);
}

// make sure we deallocate the unique ptr at a position where we know the size of the plugins
Engine::~Engine() = default;
Engine::Engine(Engine &&) noexcept = default;
Engine &Engine::operator=(Engine &&) noexcept = default;

Status Engine::Route(const api::RouteParameters &params, util::json::Object &result)
{
    return RunQuery(lock, *query_data_facade, params, *route_plugin, result);
}

Status Engine::Table(const api::TableParameters &params, util::json::Object &result)
{
    return RunQuery(lock, *query_data_facade, params, *table_plugin, result);
}

Status Engine::Nearest(const api::NearestParameters &params, util::json::Object &result)
{
    return RunQuery(lock, *query_data_facade, params, *nearest_plugin, result);
}

Status Engine::Trip(const api::TripParameters &params, util::json::Object &result)
{
    return RunQuery(lock, *query_data_facade, params, *trip_plugin, result);
}

Status Engine::Match(const api::MatchParameters &params, util::json::Object &result)
{
    return RunQuery(lock, *query_data_facade, params, *match_plugin, result);
}

Status Engine::Tile(const api::TileParameters &params, std::string &result)
{
    return RunQuery(lock, *query_data_facade, params, *tile_plugin, result);
}

} // engine ns
} // osrm ns

redpajama_set_name: RedPajamaGithub


text:
The funerary monument of Margaret of Brabant, the wife of Emperor Henry VII (1312-1314), in the genoese church of San Francesco di Castelletto, was the apex of Giovanni Pisano's artistic career. An extraordinary type of royal patronage, it was the only funerary commission that the artist accepted in honour of a woman who had been loved as a spouse, honoured as an Empress, exalted because of her charity and venerated as a saint. Thes exceptional requirements determined a tomb with unique features, far from the standard types. M. appeared in it three times: as the image of Caritas, sitting among the Cardinal Virtues, in the moment of her transitus and in that of her rebirth to eternal life, perfect in soul and body , ready for the visio Dei. At the same time the monument's iconography contained Marian themes, connected to an individual life and meanings referring to a providential mission and to a political dream of restauratio Imperii. The monument was the loftiest and most emblematic document of this, aiming to transform a mournful event in the glorious sign of a divine benediction and the promise of a victory. This aim, altough fully reached from an artistic point of view, was lost on a political and historical plane.
Facie ad faciem. Approfondimenti su Giovanni Pisano e il mausoleo di Margherita imperatrice
DI FABIO, CLARIO

redpajama_set_name: RedPajamaCommonCrawl


text:
Vs > Gioia Del Colle
Puerto Princesa, Palawan vs Gioia Del Colle Climate & Distance Between
Puerto Princesa, Palawan vs Yardmili, Azerbaijan
Puerto Princesa, Palawan vs Broadview, Sk, Canada
Puerto Princesa, Palawan vs Ciudad Real, Spain
Puerto Princesa, Palawan vs Charshangngy, Turkmenistan
Gioia Del Colle vs Alexandroupolis, Greece
Gioia Del Colle vs Caratinga, Brazil
Gioia Del Colle vs Oujoa, Morocco
Gioia Del Colle vs Pine Bluff, Ar, Usa
Sao Carlos vs Tampere
Kupang, Timor vs Chiang Rai
Berbera vs Faiz Abad
Canakkale vs Pantelleria
The distance between Puerto Princesa, Palawan, Philippines and Gioia Del Colle, Italy is approximately 10,276 km or 6,385 mi.
To reach Puerto Princesa, Palawan in this distance one would set out from Gioia Del Colle bearing 74.9° or ENE and follow the great circles arc to approach Puerto Princesa, Palawan bearing 132.1° or SE .
Puerto Princesa, Palawan has a tropical wet and dry/ savanna climate with dry winters (Aw) whereas Gioia Del Colle has a humid subtropical climate (Cfa).
Puerto Princesa, Palawan is in or near the tropical moist forest biome whereas Gioia Del Colle is in or near the warm temperate dry forest biome.
The altitude of the sun at midday is overall 24.4° higher in Puerto Princesa, Palawan than in Gioia Del Colle.
Relative humidity levels are 1.3% lower.
The table shows values for Puerto Princesa, Palawan relative to Gioia Del Colle. You can also view this comparison the other way around from the perspective of Gioia Del Colle vs Puerto Princesa, Palawan.
Average Min Temperature °C ( °F) +19 (+34) +19 (+34) +17 (+31) +16 (+29) +13 (+24) +10 (+17) +7 (+13) +6 (+11) +9 (+16) +12 (+22) +16 (+29) +19 (+34) +14 (+25)
Average Precipitation mm (in) -15 (-1) -40 (-2) -7 (0) +0 (+0) +90 (+4) +132 (+5) +153 (+6) +159 (+6) +172 (+7) +138 (+5) +138 (+5) +50 (+2) +970 (+38)
Sun altitude at solar noon on the 21st day (°) +30.9 +30.7 +30.8 +26.7 +10.2 +3.6 +9.6 +26.2 +30.9 +30.9 +31 +31 +24.4
Relative Humidity (%) -11 -12 -10 -6 +2 +9 +13 +9 +5 +0 -6 -8 -1.3
Average Dew Point Temperature °C & (°F) +18.1 (+33) +17.2 (+31) +16.4 (+30) +15.4 (+28) +13.1 (+24) +9 (+16) +7.2 (+13) +6.5 (+12) +8.5 (+15) +11.8 (+21) +15 (+27) +17.6 (+32) +13 (+23)
http://www.puerto-princesa.climatemps.com/vs/gioia-del-colle.php
Puerto Princesa, Palawan vs Tooele, Ut, Usa
Puerto Princesa, Palawan vs Hernando, Ms, Usa
Puerto Princesa, Palawan vs Kalamata, Greece
Puerto Princesa, Palawan vs Shambat, Sudan
Gioia Del Colle vs Taunggyi, Myanmar
Gioia Del Colle vs Hato Mayor, Dominican Republic
Gioia Del Colle vs Antananarivo, Madagascar
Gioia Del Colle vs In Amenas, Algeria
Jersey vs Tauherenikau
Belgaum (Sambre) vs Taguatinga
Car Nicobar vs Ndola
Talbotton, Ga vs Hakodate
Puerto Princesa, Palawan vs Gioia Del Colle Discussion
Climate Guides for Locations near Gioia Del Colle
Sant'Angelo (Mount), Italy - 133.4 kms (82.9 miles) NW
Amendola, Italy - 133.5 kms (83 miles) NW
Foggia, Puglia, Italy - 139.8 kms (86.9 miles) NW
Bari/ Palese Macchie, Italy - 43.8 kms (27.2 miles) NNW
Trevico, Italy - 146.4 kms (91 miles) WNW
Potenza, Basilicata, Italy - 95.9 kms (59.6 miles) W
Marina Di Ginosa, Italy - 38.2 kms (23.7 miles) S
Latronico, Italy - 108.5 kms (67.4 miles) SW
Cape Palinuro, Campania, Italy - 162.6 kms (101 miles) WSW
Bonifati (Cape), Italy - 158.5 kms (98.5 miles) SW
Scuro Mountain, Italy - 166.1 kms (103.2 miles) SSW
Brindisi, Italy - 86.8 kms (53.9 miles) E
Grottaglie, Italy - 48 kms (29.8 miles) SE
Taranto, Puglia, Italy - 42.6 kms (26.5 miles) SE
Lecce, Italy - 117.5 kms (73 miles) ESE
Santa Maria Di Leuc, Italy - 159.7 kms (99.2 miles) SE


The malaria-free, Big Five Madikwe Game Reserve is located in South Africa's North West province. Established in 1991 and comprising of 750 square kilometres of magnificent bushveld, this reserve was named after the Madikwe or Marico River, on whose basin it is located.
Accessible by aircraft or road transfer.
South Africa's Madikwe Game Reserve offers travellers an adventurous and rewarding safari experience with close encounters of the 'Big 5' (lions, buffalo, rhinos, leopards and elephants) which roam this vast, malaria-free reserve.
This bushveld habitat in the North West Province is home to the rare brown hyena, which is not often seen in other regions of South Africa. Besides the gemsbok, eland and sable are two other uncommon antelope species travellers encounter here. Serval and caracal are elusive, but can sometimes be spotted on night drives.
Lion is plentiful, with sightings of cheetah and leopard being rarer. The endangered wild dog can often be seen which has become extinct in some other areas of Africa. Both black and white rhino are present with the white rhino being very common. With only a few vehicles traversing the Madikwe Game Reserve, guests are ensured of exclusive, high-quality wildlife experience.
The accommodation in the Madikwe Game Reserve ranges from rustic safari lodges and camps to the most exquisite and luxurious game lodges. Guests have a great choice of various safari accommodation options to choose from to meet their individual requirements.
The Madikwe Game Reserve is located on the border between South Africa and Botswana. This game-rich reserve can be easily been accessed from Johannesburg, Pretoria and from the Gaborone airport in Botswana. Most of the game lodges which are situated on the western side of the Madikwe Game Reserve are accessed via the Wonderboom Gate. The safari accommodation in the eastern and central regions of Madikwe is mainly accessed via the Abjaterskop Gate.
Your enquiry has been sent successfully. Our team will be in touch with you soon!


870-872 Emory St., Imperial Beach, CA, 91932 - Photos, Videos & More!
Two separate houses on one lot-both completely renovated in 2017! Renovations in both houses include quartz countertops with white shaker cabinets in kitchens and bathrooms, as well as new flooring. Front house is a modern open layout- 3 bedroom, 2 bath, with a fireplace. There is a two car garage attached to the front home, with RV parking in the driveway. The separate back unit has two bedrooms and one bathroom, above its own large three car garage. Both houses are currently rented month to month.
I have a question about MLS#190005033 at 870-872 Emory St.
I'd like to go see MLS#190005033 located at 870-872 Emory St.


text:
Share to Maximize
Raised toward our $100,000 Goal
46 Offline donations and ticket revenue
Project ends on May 01, at 12:00 AM PDT
Project Owners
Exciting News + Halloween Bash
Fall is here, and the school year is in full swing. The WWU Symphony Orchestra is gearing up for its first concert of music by Sarah Kirkland Snider, Claude Debussy, and Gustav Mahler on November 15, 2019, and everyone is excited for our travels abroad next June.
An Exciting and Impactful Development
One of the items on our tour itinerary is a visit to Terezín, a concentration camp outside Prague that was used as a sort of "model" to show the Red Cross how well imprisoned Jews were being treated. In reality, of course, it was just a Potemkin village and a waystation on the route to Auschwitz and other extermination camps. Many prominent artists and musicians were held there, and the Terezín had a remarkably thriving cultural life. Months ago, in preparing for the tour, I was looking for a piece by a Terezín composer to perform at our concerts in Prague and Vienna, and came upon the work of Gideon Klein, a brilliant Jewish Czech musician who spent three years at the camp before being murdered in 1944 at the age of 25 (this coming December, he would have turned 100). He wrote no known music for orchestra, but composed a Piano Sonata at Terezín that is utterly captivating and rich with orchestral gestures. As a shot in the dark, I reached out to the Gideon Klein Foundation in Prague asking their permission to arrange the piece for orchestra and perform it on the tour. After months of silence, they finally responded on Friday, giving their blessing for this project! What this means is that the WWU Symphony will be giving the world premiere of a work by a major composer who perished in the Holocaust. Also, according to our current itinerary, the students will be visiting Terezín the very day before they give the first performance of Klein's "Chamber Symphony" in Prague, his hometown. This is the opportunity of a lifetime in two ways:
Western is in a position to make a significant contribution to the discourse on music from the Holocaust.
Our students will have the chance to not only present this important new work, but to visit the very place where he wrote it.
I couldn't be more excited about this development, as it gives this tour an entirely new level of purpose in addition to the already wonderful opportunity for our students to perform together. If anyone you know values this work as much as we do, please share this news with them and encourage them to lend their support!
Halloween Bash on October 26
The WWU Symphony is hosting a fundraising Halloween party and silent auction on October 26, 2019 from 7-10PM at the Bellingham Yacht Club. Please come join us for a hosted bar, costume contest, dessert dash, great auction items, and more! For more information and to reserve seats, please visit our registration site here: https://commerce.cashnet.com/MU12
Thank you for all your support!
Ryan Dudenbostel
Thank you so much for lending your support to the WWU Symphony Orchestra's 2020 European Tour! I'm just writing to give you a quick update on the progress our project has made since we officially launched in May.
On Western Give Day, we raised over $20,000, outpacing nearly every other WWU campaign both in terms of dollars raised and number of donors participating. The response was nothing short of overwhelming! Combined with other individual donations, ticket revenue from our film music concert in May, and bake sale proceeds, we currently have over $29,000 raised!
Nonetheless, we still have a long way to go to meet our goals. We have a number of projects and special events in the works for 2019-2020, but in the meantime, if you have anyone in your life who might be interested in supporting these students in this incredible international educational opportunity, I encourage you to please pass along the link to our VikingFunder website:
www.vikingfunder.com/wwusymphony2020tour
Thank you again for all your support in helping to bring this opportunity within reach for our students.
All best wishes for a warm and relaxing summer,
Choose a giving level
Contribute $100
Contribute $1,000
Contribute $10,000


We run a range of different projects and activities each year for local people and communities in west and central London. A selection of our current and active projects is presented below.
Getting training and experience through an apprenticeship or internship significantly increases a young person's chance of finding paid employment.
A two year programme, delivered alongside other providers in Westminster from 2009-2011.


Following on from the marriage of Fanny Dinnis to John William Forbes in 1876, the next piece of information about them comes from the London, England, Births and Baptisms Directory. Their first child was baptised on July the 8th 1877 – a daughter named Edith Beatrice.
I then noticed the name above Edith's looked familiar, and sure enough it is my great-grandfather's first-born child – a son named John Taylor Dinnis. His parents are listed as George and Catherine Dinnis. This took place at Holy Trinity Church, Islington.
So they must have had a joint celebration with George and his sister Fanny both celebrating the births of their first-born children. It must have been a very happy occasion, which is nice because the happiness was short-lived.
Little John Taylor Dinnis is listed in the deaths that occurred between Jan-Feb-Mar 1878. He was aged 1.
The next documentation is from the London, England, Births and Baptisms Directory, where we see that on the 27th of November 1881 a further two of Fanny and John William's children were christened.
This took place in Southwark, St Antony's Church. From the document we see Ethel Lilian was born on October 18th 1881, and John Dinnis Hamilton Forbes was born on the 8th of May 1879. Fanny's little family was living in Lugard Road, Peckham at this time. Her husband John William was still working as a Compositor.
I have had trouble tracking the family beyond this point. In the England Census of 1891 we know John William Forbes was living with Fanny, his wife, their eldest daughter Edith Beatrice, and Fanny's father, John Dinnis. There is no mention of John Dinnis Hamilton Forbes, or Ethel Lilian Forbes.
I have found some documentation in which it would appear Ethel Lilian died, aged 7, but so far I have been unable to trace John Dinnis Hamilton, or indeed any further information about Fanny Dinnis.
This entry was posted in Catherine Taylor, Fanny Dinnis, George Dinnis, John Taylor Dinnis, John William Forbes and tagged Family History, History, Holy Trinity Church. Bookmark the permalink.


09:57; realize that dad is in The Chair; begin my ascent of Mt Dad; upon attaining the summit, claim my dominance by immobilizing his arms, begin liberally coating his face with dog spit, occasionally hooking a nostril with a canine.
10:03 hear mom rattle some plastic in the kitchen; with no regard for dad's tender vegetation, leap from the chair to investigate.
10:05 notice that dad has almost finished wiping dog spit from his face, apply a second layer; lather, rinse, repeat.
10:22 Max looks waaaay too smug and comfortable, a situation that calls for an appearance of Ninja Dog; Max is not pleased.
10:25 Mia the Spazcrobat proves to be a more worthy adversary; hilarity ensues.
10:38 a refreshing drink from the porcelain bowl; again, The Voice.
10:45 everybody finally situated in their respectful territories on the bed, dad relegated to the barren wasteland of the far eastern territories; lights out.
10:52.5 banished to the floor; I will have my revenge, in this life or the next.
11:08 click, click, click down the hall, pause, click, click, click back down the hall, slurp, slurp, nibble, nibble, heavy sigh,long pause… slurp, slurp, slurp DANG IT, DOG, WILL YOU EVER CALM DOWN?!?
Lmao! Love it! You always make my day!
Charlie, you have a mad and nutty life at the lather rinse and repeat is a fun thing my girl looooves to do, especially pre bed, and she must do the ears for some mad reason.
Love your stories Charlie. Great way to start my Friday. Thanks!
Isn't every day with CB?
Are you sure that you and Lucky aren't more closely related?? As I am certain your Dad thinks you are such a comedian the way I say Lucky is….as she seems to always have 'perfect' comedic timing…NOT!!! LOL, luvin' me sum pupz!! Go Charlie Girl! P.s. I love the smile you have in this photo…(truth told, I am thrilled that you are such a happy completely loved girl now after your initial start in life)!
Oh Charlie,You make my day with your posts.Love them.


a plant or tree grown from a seed.
a tree not yet 3 feet (1 meter) high.
any young plant, especially one grown in a nursery for transplanting.
Mr. Prince, of Yamhill county, has modified his views somewhat in regard to the grafted and seedling trees.
A seedling of Catawba and so similar to it that many consider them identical.
A seedling of Major Espren; probably first reported in 1845.
A seedling of Van Mons in whose catalog of 1828 it is No. 521.
A seedling, especially when transplanted the first year, flops all over like a flowering shrub.
"young plant developed from seed," 1650s, from seed (n.) + diminutive suffix -ling.
A young plant, especially one that grows from a seed rather than from a cutting. See Note at germination.


Artemis Clover: The real L.A. love story.: A photo interruption.
Baby story is coming later today...I promise!
King being cute at our baseball game this past weekend.
Wow - that is all.
baby king cannot get any cuter.
I stumbled on your blog and I am hooked! You have the most adorable baby and I am intrigued by your story. Great pictures and beautiful writing. Looking forward to more!
Oh my goodness! You did a marvelous job capturing him!
He is so absolutely and positively delicious. I can't even stand it! Love. Love. LOVE!
hi faye, i am always stoked when new people visit. hope you enjoy your stay!
thanks, hannah, for your encouraging comment. my son is pretty handsome so i don't have to do much when taking pics. :) don't i sound like a new gushing mom?
life with kaishon, thank you!!!! =D!!!
I love that photo of Venice Beach. The colors, the reflection, the sky, the trees... everything!


text:
Asian movie news, views, and reviews
Writer: Kim Jee-Woon
A true gangster epic with brilliant performances, direction and action and not a mockney geezer or wideboy in sight. Simply: great.
If you are willing to substitute blood for brains and real heart for cheap scares, this movie will be one you will remember long after you see it.
The Age Of Shadows
Packed with switching allegiances, twists and turns and on occasion stellar set-pieces, 'The Age of Shadows' rockets along on its quest to keep one guessing and in a perpetual state of tension.
The Foul King
Despite its obvious shortcomings, 'The Foul King' is an excellent advert for Korean cinema and retains a strong entertainment value even during its weaker moments.
The Good, The Bad, The Weird
'The Good, The Bad, The Weird' is a great achievement and another success for Kim Jee-woon and is most importantly big, bright and ballistic entertainment that should be seen on a screen as big as possible.
'Three' is a bold idea, but one out of three is too bad. The follow-up, 'Three… Extremes' would do it all better.
© 2021 Far East Films


A data management platform (DMP) is a type of data warehouse that performs the function of data collections , translations, classification, indexing and storage. At the highest level DMP's perform three major tasks, (a) import data from a lot of places (first and third-party audience data), (b) create custom segments (aka. audiences) to accurately target with messages and (c) send a combination of targeting instructions to third-party ad networks and exchanges.


Stunning custom home just steps from the prestigious San Joaquin CC in one of the finest neighborhoods in NW Fresno. Upon entering this unique custom home, your eyes are immediately drawn to the abundance of windows with inviting views of pristine maintained yard and the indoor planter beds that lead you into the step down living room. There is a large family room great for entertaining friends & family just steps from the updated kitchen with newer stainless-steel appliances & eat-in area. Each bedroom is bright with natural light and plenty of closet space. The large master suite features its own backyard entrance and a private bathroom with a tile shower. You will love the stunning backyard oasis with lush landscaping and a sparkling pool with newer plaster. Other amenities include large corner lot, a courtyard off the family room and a 2-car garage. Don't miss out on this amazing home!


RubyMine integrates with compilers that translate Sass, Less, and SCSS code into CSS. To use integration in RubyMine, you need to configure compiler as a File Watcher. For each supported compiler, RubyMine provides a predefined File Watcher template. Predefined File Watcher templates are available at the RubyMine level. To run a compiler in a project, create a project-specific File Watcher based on the relevant template.
Install the compiler globally at the RubyMine level so it can be used in any RubyMine project.
Global installation makes a compiler available at the RubyMine level so it can be used in any RubyMine project. Moreover, during installation the parent folder of the compiler is automatically added to the PATH variable, which enables you to launch the compiler from any folder.
lessc.cmd for Less If you installed the tool through the Node Package Manager, RubyMine locates the required file itself at <node.js_home>/node_modules/bin/lessc.cmd and fills in the field automatically. Otherwise, type the path manually or click the Browse button and choose the file location in the dialog box that opens.
If you installed the Sass and SCSS tools through Ruby, RubyMine locates the required files itself at <ruby_home>/bin/sass.bat <ruby_home>/bin/scss.bat respectively and fills in the field automatically. Otherwise, type the path manually or click the Browse button and choose the file location in the dialog box that opens.
When you open a Less, Sass, or SCSS file, RubyMine checks whether an applicable file watcher is available in the current project. If such file watcher is configured but disabled, RubyMine displays a pop-up window that informs you about the configured file watcher and suggests to enable it.
RubyMine creates a separate file with the generated output. The file has the name of the source Sass, Less, or SCSS file and the extension css. The location of the generated files is defined in the Output paths to refresh text box of the New Watcher dialog. However, in the Project Tree, they are shown under the source file which is now displayed as a node.


text:
Phoenix Municipal Stadium
Phoenix Municipal Stadium Please selectVenue homeLocation and directionsPre-theatre diningSeating maps
5999 E Van Buren St, Phoenix, AZ 85008
About Phoenix Theater: We are an independent show guide not a venue or show. We sell primary, discount and resale tickets which may be priced above or below face value.
2023 Arizona State Sun Devils Baseball Season Tickets (Includes Tickets To All Regular Season Home Games)
San Diego State Aztecs at Arizona State Sun Devils Baseball
UNLV Rebels at Arizona State Sun Devils Baseball
High Point Panthers at Arizona State Sun Devils Baseball
March '23
North Dakota State Bison at Arizona State Sun Devils Baseball
UC Irvine Anteaters at Arizona State Sun Devils Baseball
Mar 3 - 5, 2023
UC Davis Aggies at Arizona State Sun Devils Baseball
Mar 10 - 12, 2023
Dixie State Rebels at Arizona State Sun Devils Baseball
Grand Canyon University Lopes at Arizona State Sun Devils Baseball
Arizona Wildcats at Arizona State Sun Devils Baseball
April '23
Seattle University Redhawks at Arizona State Sun Devils Baseball
Washington State Cougars at Arizona State Sun Devils Baseball
Apr 6 - 8, 2023
Oregon State Beavers at Arizona State Sun Devils Baseball
Cal State Fullerton Titans at Arizona State Sun Devils Baseball
Stanford Cardinal at Arizona State Sun Devils Baseball
UCLA Bruins at Arizona State Sun Devils Baseball
Sound good to you? Share this page on social media and let your friends know about it.
Please note: The term Phoenix Municipal Stadium as well as all associated graphics, logos, and/or other trademarks, tradenames or copyrights are the property of the Phoenix Municipal Stadium and are used herein for factual descriptive purposes only. We are in no way associated with or authorized by the Phoenix Municipal Stadium and neither that entity nor any of its affiliates have licensed or endorsed us to sell tickets, goods and or services in conjunction with their events.


text:
Meru è una città del Kenya, capoluogo dell'omonima contea.

Posizione
Meru sorge lungo il fiume Kathita, sulle pendici nordorientali del Monte Kenya. È posta circa otto chilometri a nord dell'equatore, a circa 1500 metri di quota, in un'area caratterizzata da una molteplicità di ambienti: foreste, radure, piccole città, villaggi e fattorie.
La città è raggiungibile su strada asfaltata sia da sud, attraverso Embu e costeggiando le pendici orientali del Monte Kenya, che da nord, attraverso Nanyuki e Timau lungo le pendici nordoccidentali del monte.
Il Distretto di Meru è inoltre un punto strategico per raggiungere le vicine riserve naturali Samburu, Buffalo Spring, Lewa Downs e per il Parco nazionale di Meru.

Economia
La città di Meru è un importante centro per l'economia, l'agricoltura e l'istruzione del Kenya nordorientale. Vi si trovano banche e hotel, mercati e stazioni di trasporti. Nel distretto sono diffuse le coltivazioni del caffè, del tè, dei fagiolini, nonché l'allevamento del bestiame e la raccolta di legname. Per quel che riguarda le scuole, vi si trovano istituti primari e secondari, tra cui due delle più prestigiose scuole del Kenya, la Meru High School e la Kaaga Girls School.
È un'importante area di produzione del caffè. Il raccolto viene effettuato due volte all'anno, in corrispondenza delle stagioni piovose, ma quello principale avviene in tempi differenti rispetto al resto della nazione a causa delle diverse condizioni climatiche dell'area a nord delle pendici del Monte Kenya e della catena montuosa del Nyambene. Le piantagioni sono tutte ad alta quota, su suoli vulcanici.
Meru è inoltre la principale area di coltivazione della Miraa del Kenya. Molti coltivatori la preferiscono poiché economicamente più vantaggiosa.

Cultura
All'interno della città si trova il Meru National Museum.

Società

Evoluzione demografica
Secondo una statistica effettuata nel 1999 dal Kenya National Bureau of Statistics, nella città di Meru risiedono 42.677 abitanti (censiti nel 1999 ).
La sua popolazione appartiene principalmente alla tribù dei Meru.

Note

Collegamenti esterni

Centri abitati della contea di Meru

redpajama_set_name: RedPajamaWikipedia


While using Internet Explorer in eBenefits, I constantly receive this message: "This page contains both secure and nonsecure items. Do you want to display the nonsecure items?" How can I make this message stop appearing?
2.Select the following menu command: Tools > Internet Options. The Internet Options window opens.
4.Click the Internet icon in the upper left of the window.
5.Under Security level for this zone, click Custom Level. The Security Settings window opens.
6.Scroll to the Miscellaneous section.
7.Under Display Mixed Content, select Enable.
8.Click OK to close the Security Settings window.
9.Click OK to close the Internet Options window.


text:
Home > topics
The Best Films Out Now
There are films to meet every taste in theartsdesk's guide to the best movies currently on release. In our considered opinion, any of the titles below is well worth your attention.Enola Holmes ★★★★ Millie Bobby Brown gives the patriarchy what-for in...
Trolls World Tour review - a visual spectacle full of toe-tapping tunes
The world might have changed drastically in the wake of Covid-19, but thankfully those hyperactive, candy-coloured Trolls haven't. Anna Kendrick and Justin Timberlake are back as the delightful odd-couple, Poppy and Branch, for round two of pop-...
Onward review - do you believe in magic?
Welcome to New Mushroomton: a fantasy land that's forgotten itself. This is how we're introduced to Pixar's Onward, which is set in a Dungeons & Dragons daydream of suburbia. Director Dan Scanlon's film is a tribute to his late father, but it...
Playmobil The Movie review - resolutely kids' stuff
Modern children's films wink knowingly over kids' heads at their paying parents, as with the Lego movies' rapid-fire pop-culture salvos. Lino DiSalvo (Disney's Head of Animation for Frozen) could have sulked upon receiving the apparent short straw...
Manga, British Museum review - stories for outsiders
Manga, the Japanese art of the graphic novel, took its modern form in the 1800s. Illustrated stories already had a long heritage in Japan — encompassing woodblock prints and illustrated scrolls and novels — but the introduction of the printing press...
Disenchantment, Netflix review - Matt Groening show has promise after poor start
It's an event that only comes around once a generation: a new Matt Groening TV series. The Simpsons is rightly regarded as one of the greatest shows ever made. It changed the face of American television, and 10 years later was followed Futurama, a...
Coming soon: trailers to the next big films
Summer's here, which can only mean Hollywood blockbusters. But it's not all Spider-Man, talking apes and World War Two with platoons of thespians fighting on the beaches. There's comedy, a saucy menage-à-trois, a film about golf and even a ghost...
CD: Gorillaz - Humanz
For some of us Blur were an irritant during the 1990s rather than one of the decade's premier bands. However, once Gorillaz arrived it was impossible to ignore Damon Albarn's outrageous talent any longer. His golden touch ensured his cartoon group...
Ghost in the Shell review - 'a mind-bending futuristic dystopia'
The Japanese Ghost in the Shell phenomenon is celebrating its 25th birthday, and already has a long history in manga cartoons and animated movies. Now Hollywood has clambered aboard, though this live-action version, finally helmed by British...
High Spirits: The Comic Art of Thomas Rowlandson, The Queen's Gallery
"High Spirits" is a multi-layered title: the caricaturist Thomas Rowlandson (1757-1827) was himself a heavy gambler and a heavy drinker, continually using up his material assets in such pursuits. His high spirits extended to the Georgian society he...
Gotham, Channel 5
Michael Keaton, Val Kilmer, George Clooney, Christian Bale and (coming soon) Ben Affleck have all had a go at playing the fully-formed Caped Crusader, though for some Adam West's ludicrously campy Sixties incarnation remains the score to beat. But...
Arena: Whatever Happened to Spitting Image? BBC Four
"You can never embarrass politicians by giving them publicity." Michael Heseltine's verdict on Spitting Image – he claimed, of course, he never watched it – was surely one of the truer things said in last night's Arena memorial Whatever Happened to...


text:
Mortgage defaults soar to record 13%
In the second quarter, the number of homeowners behind on payments or in foreclosure rose along with the jobless rate, with California among states leading the way.
By E. Scott Reckard and Ronald D. White
Widespread joblessness is causing more Americans to fall behind on their house payments, triggering a new round of foreclosures that some analysts fear could delay the nation's economic recovery.
A mortgage trade group reported Thursday that more than 13% of the nation's mortgage holders were delinquent on their mortgages or in the process of having their homes repossessed during the second quarter of this year. That's the highest figure since tracking began in 1972. California's rate, 15.2%, was among the highest of all states.
The numbers underscore a worrisome trend. A spate of foreclosures -- which began with speculators who walked away from their souring investments, then spread to high-risk borrowers who couldn't make their payments when their low-interest mortgages reset -- is now hitting unemployed homeowners with good credit scores, clean financial histories and conventional home loans.
The U.S. has shed 6.7 million jobs since the recession began, employment losses that have left even high-quality borrowers struggling. One in three new foreclosures from April to June was from a prime, fixed-rate loan, up from 1 in 5 a year earlier.
The rising tide of foreclosures could swamp positive economic trends such as improving home sales and a surprise increase in U.S. regional manufacturing, also reported Thursday.
"The broadening of the foreclosure crisis to include prime loans due to high and rising unemployment will delay a bottom in the housing market and threatens the economic recovery," said Mark Zandi, co-founder and chief economist of Moody's Economy.com.
It's also a huge challenge to the Obama administration, which is pressuring banks to restructure troubled mortgages to keep borrowers in their homes. Such modifications are difficult to achieve when a family's income is slashed. The Washington-based Mortgage Bankers Assn. predicts that U.S. job losses will continue at least until the middle of 2010, meaning that mortgage delinquencies and repossessed homes will almost certainly continue rising.
"We would expect delinquencies and foreclosures to peak sometime after that, probably at the end of next year," said Jay Brinkmann, the trade group's chief economist.
The U.S. jobless rate in July was 9.4%, down slightly from 9.5% in June, a 26-year high. California's June unemployment rate was 11.6%. July figures will be released today.
The employment troubles are compounding a messy situation for banks. Faced with a burgeoning backlog of problem loans, loan-servicing giants such as Bank of America Corp. and Wells Fargo & Co. have gotten off to a slow start on the Obama administration's Home Affordable Modification program, recently released government statistics show.
Anxious borrowers who have contacted The Times complain that lenders lose their documents, pass them from employee to employee and make them endure unexplained delays.
They include Janet and Stan Hurwitz, who said they enjoyed pristine credit and good salaries before this recession turned their financial world upside down. Both now unemployed, they're worried about exhausting their savings and losing their spacious Porter Ranch home.
Stan, 58, lost his job as an apparel sales representative in May and has pursued dozens of leads without success. Janet, a 53-year-old commercial pilot, has been unable to find work in the battered airline industry since returning from disability last summer.
The couple have pared expenses drastically and are trying to refinance their 6.25% mortgage to reduce their $2,789-a-month payment. But the Hurwitzes say that the mounds of paperwork they have sent out -- to Bank of America, two government-sponsored home retention plans, credit and debt consolidation agencies and several elected officials -- seem to have disappeared into a black hole.
"No matter what you send in, or where, it just disappears," Stan Hurwitz said.
After The Times contacted Bank of America on Thursday about the case, the bank issued a statement saying it "has reached out to the Hurwitzes to apologize for their experience and to ensure they have a single point of contact to help them through these challenging times."
"Despite our best efforts, there are limits to how far modification programs can go," the Bank of America statement said. With unemployment rates so high, "even the most ambitious modification plan will not help when the homeowner has no income or prospects."
The bank said unemployment benefits count as income under the Obama plan as long as they continue for nine months, adding that it is working with the government "to find solutions for at-risk homeowners who fall outside the eligibility requirements of the current program as well as the growing number of customers now unemployed."
The mortgage bankers group said efforts to aid distressed borrowers, such as the Obama administration's housing affordability program, are providing some relief but are not addressing all the problems.
"While the various loan modification programs continue to have an impact on holding foreclosure rates below where they otherwise would be, the issue is that many of the foreclosures involve homes that are vacant, borrowers who no longer have jobs, or loans where there was fraud involved," Brinkmann said.
Another problem plaguing California and other hard-hit areas is the unprecedented decline in home prices. Falling values have left homeowners who purchased at the peak of the housing boom "underwater," owing far more than their homes are worth. Even drastically reducing interest rates and paying borrowers bonuses to stay in their homes can have little lasting effect if it will be years before homeowner equity is restored, Economy.com's Zandi noted.
"The idea [of the Obama plan] is to give homeowners a break so they can get through the recession and the falling housing market and, hopefully somewhere down the road, make full payments again," Zandi said. "That's going to be helpful, but as long as foreclosures keep rising and home prices keep falling, a lot of houses will be so far underwater that it makes no sense to bother modifying them -- from the lender's perspective and from the borrower's."
He said the Obama administration might reach its goal of having lenders offer 3.5 million to 4 million loan modifications -- restructurings that lower rates, extend the time for borrowers to repay what they owe and, in some cases, suspend interest payments on part of the loan balance. But Economy .com is projecting that only half of those offers will result in actual modifications, "and they'll be lucky if they get 1 million successful modifications out of that," Zandi said.
If the problem worsens, the government and lenders may have to revisit some ideas that so far have proved untenable, such as finding a way to reduce the principal owed on large numbers of loans, he added.
The problems are especially thorny in California, Zandi noted, because unemployment is higher and home prices have fallen more than in most states.
Still, he said, the Golden State should recover sooner than other hard-hit states including Nevada, Florida and Michigan because its economy is more diversified. Already, he noted, there are signs of stabilizing prices in areas such as San Francisco and Orange County, as buyers step in on the belief that California's notoriously up-and-down housing market will eventually stage one of its famous recoveries.
latimes.com/business/la-fi-mortgage-defaults21-2009aug21,0,4202530.story
Posted by Kali Akuno at 9:06 AM
Rise of the Super-Rich Hits a Sobering Wall
Foreclosures Plunge People Into Depression
New jobless claims rise unexpectedly to 576K
U.S. productivity soars as employers slash payroll...
Ahead of the Bell: Productivity
Labor costs fall as productivity increases slightl...


text:
Home / World News / China launches world's first fully electric cargo ship
China launches world's first fully electric cargo ship
The vessel, manufactured by the Guangzhou Shipyard International Company Ltd, is powered by a 26-tonne lithium battery.
world Updated: Nov 14, 2017 17:22 IST
Press Trust of India, Beijing
In this March 5, 2016, file photo, a Chinese flag is seen as paramilitary policemen perform a ceremony on Tiananmen Square in Beijing.(AP)
China has launched the world's first all-electric ship, which can travel up to 80km with 2000-tonnes cargo after a two-hour charge, state media reports said.
The 70.5-metre-long ship, which weighs about 600 tonnes, was launched in Guangzhou in South China's Guangdong Province, the People's Daily reported.
The vessel, manufactured by the Guangzhou Shipyard International Company Ltd, is powered by a 26-tonne lithium battery. It can cruise at the top speed of 12.8 km per hour.
As the ship do not use fossil fuels, it has zero emission, including carbon, sulphur and PM2.5 and it could be used as a passenger liner or a working ship, state-run Global Times reported.
On its inaugural run, the vessel was loaded with thermal coal mainly for areas around the Pearl River in Guangdong Province, the report added.
"This kind of ship takes into consideration the harmony between humans and nature and can protect water quality and marine life, and should be copied by other ships sailing on local rivers," Wang Yongchen, a Beijing environmentalist, was quoted as saying in the report.
Supreme Court restores Unitech's land allotments, gives buyers hopes of getting flats
Mystery virus spreads across China; 3 dead, 217 infected
'Sad' Prince Harry says he did not want to end royal role
Elon Musk's SpaceX launches, destroys rocket in astronaut escape test
Meghan Markle's father accuses daughter of 'cheapening' UK's royal family
https://www.hindustantimes.com/world-news/china-launches-world-s-first-fully-electric-cargo-ship/story-ceg5ZbMb67yOLpYFZNdg4I.html
https://www.hindustantimes.com/world-news/mystery-virus-spreads-across-china-3-dead-217-infected/story-domaCTegCz4Tj1IjbS9bdI.html
https://www.hindustantimes.com/world-news/iran-plans-one-last-step-on-nuclear-deal/story-PVom20iiIkSVpRs93cYujJ.html
Iran plans 'one last step' on nuclear deal
https://www.hindustantimes.com/world-news/billionaires-richer-than-60-of-the-world-s-population-oxfam-report/story-rjSl3wFFiqNnIE2lrw4bxH.html
Billionaires richer than 60% of the world's population: Oxfam report
https://www.hindustantimes.com/world-news/nepal-government-resumes-search-for-4-trekkers-3-guides-missing-in-avalanche/story-z59Wbe9TGRGmq2bj4VQLvO.html
Nepal government resumes search for 4 trekkers, 3 guides missing in avalanche


text:
WHAT DO THE PARTY MANIFESTOS MEAN FOR THE BRITISH OVERSEAS TERRITORIES?
By Sarah Cooper-Lesadd, sarah.cooper-lesadd@fotbot.org
Although the British Overseas Territories do not have a vote in the upcoming General Election, the British political parties have addressed the Overseas Territories to different extents in their manifestos.
Unless otherwise stated, we presume that the absence of policy areas means a continuation of the status quo.
The Labour Party's manifesto underlines the importance of internationalism, placing this at the core of their movement, emphasising sovereignty and the need to tackle tax avoidance. The manifesto states "We have a duty to stand up for the security and sovereignty of our overseas territories, including the Falklands, and for the rights of our citizens and dual nationals abroad".
Previously, Jeremy Corbyn proposed a Northern Ireland style power sharing deal for the Falkland Islands. Although not explicitly stated in their manifesto, there is a possibility that the Labour Party could propose a sovereignty referendum for the Falkland Islands.
The Labour Party have also committed to returning full sovereignty to the Chagos Islands which incorporates Diego Garcia, a militarised atoll just south of the equator in the central Indian Ocean. Earlier this year, the UN general assembly voted by a majority of 116 to six countries in an advisory decision, ordering the UK to return the Chagos Islands to Mauritius. Labour have indicated that they would abide by this advisory decision and thereby return the British Indian Ocean Territory to Mauritius.
While Labour have committed to securing a new Brexit deal, they are committed to ensuring that there is no change in the status or sovereignty of Gibraltar. However, this commitment has been taken with the consideration that Gibraltar will need to stay central in any negotiating position if the UK leaves the European Union.
Finally on tax avoidance, the Labour administration proposes to launch "the biggest ever crackdown on tax avoidance and evasion". They previously published a comprehensive tax transparency and avoidance programme, which involves extending the register of beneficial ownership, a specialised Tax Enforcement Unit in HM Revenue & Customs (HMRC), minimum standards for Crown Dependencies and Overseas Territories and a withholding tax for 'abusive' tax havens.
Under the current government, Britain's Overseas Territories will not be forced to establish public registries of company beneficial ownership until 2023 at the earliest, rather than the 2020 deadline demanded by MPs.
Although, there is still the possibility that a new administration could seek to escalate this process, opening the UK to further legal challenges as two Overseas Territories have previously launched legal challenges. The British Virgin Islands and the Cayman Islands both have substantial financial sectors and any premature move to enforce public register of beneficial owners of companies could involve lengthy legal challenges.
The Conservative Party have committed to putting national security first, saying that:
"The security of our nation comes first. We will protect the British people at home and abroad, and also ensure that the democratic rights of people in Gibraltar, the Falklands and all our overseas territories are protected".
The manifesto includes strong commitments to defend the security and economic prosperity of the UK and its Overseas Territories, showing that the Conservatives will continue to support self-determination, especially in the face of adversarial actions by other countries like Spain and Argentina.
The manifesto has committed to protecting the environment, emphasising that "Conservation is, and always has been, at the heart of Conservatism". The Conservatives will carry out that commitment by forging new international partnerships to tackle deforestation and establishing a new £500m Blue planet Fund to help protect oceans from plastic pollution, warming sea temperatures and overfishing.
This means that a Conservative Government would continue and enhance its work to protect and develop the biodiversity of the British Overseas Territories.
The Liberal Democrat manifesto is committed to globalism, stating that "as the world changes, the European Union needs to lead. The Liberal Democrats want Europe to be strong, willing to act, and at the forefront of world progress". The Liberal Democrats are committed to reversing the results of the referendum however as they are likely to be only in government in a coalition, it would make sense to consider this point in the context of a Labour-led Government.
The manifesto underlines the importance of the European Elections in driving forward change, including a commitment to Gibraltar, pledging to support their rights in Europe and their right to self determination. The manifesto makes the point that European Elections are the only elections where Liberal Democrat representatives can be elected for Gibraltar. It recalls that 67% voted Liberal Democrat in 2014.
The Greens have committed:
"To making at least 30% of UK domestic waters into fully protected marine protected areas by 2030. We will also work with British Overseas Territories (BOTs) to increase the 'blue belt' protecting BOTs' waters from commercial extraction, from the current 32% of coverage to 50".
This is similar to the 'Blue Belt' of the Conservative Party and will continue to build on the work of the current government.
The Greens have also stated that they intend to clamp down on "tax haven internationally and, domestically, requiring offshore companies to reveal their beneficial ownership before being accepted as competitors for publicly funded contracts.
The Green Party will campaign for the EU to clamp down on member state tax havens, including Ireland, the Netherlands and Luxembourg. While the current government have already committed to introducing registers of beneficial ownership, what this would mean in policy terms is unclear, but it may be adverse to both the Cayman Islands and the British Virgin Islands substantial financial and services sector.
The DUP have committed to maintaining a diplomatic presence abroad through the commonwealth and defending British sovereignty through our Overseas Territories.
The DUP supports the people of the Falklands and Gibraltar stating that "their expressed desire to remain linked to the United Kingdom is admirable and must be respected and if necessary defended".
The SNP have not mentioned the Overseas Territories in their manifestos. However, they have said they will 'clamp down on tax avoidance' (which may or may not affect the Overseas Territories).
The SNP want the Trident nuclear deterrent to be scrapped by the UK. It has been suggested that Trident could be moved from Faslane (Scotland) to another base, perhaps Gibraltar.
While the Brexit Party have not published an official manifesto, they have produced a contract which is available on their website. Although, their contract does not explicitly reference the overseas territories, it mentions that they will invest £2.5bn in our fishing and coastal communities and through a clean break Brexit, recovering control of a 200 mile exclusive economic zone which would include the overseas territories.


text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import * as _ from 'lodash';
import {isNullOrUndefined, isUndefined} from 'util';
import {Component, ElementRef, Injector, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';
import {StringUtil} from '@common/util/string.util';
import {Alert} from '@common/util/alert.util';
import {PopupService} from '@common/service/popup.service';
import {AbstractPopupComponent} from '@common/component/abstract-popup.component';
import {PrDataflow} from '@domain/data-preparation/pr-dataflow';
import {FileFormat, PrDatasetHive, PrDatasetJdbc, RsType} from '@domain/data-preparation/pr-dataset';
import {PreparationCommonUtil} from '../../util/preparation-common.util';
import {DataflowService} from '../../dataflow/service/dataflow.service';
import {DatasetService} from '../service/dataset.service';

declare let moment;
declare let async;

@Component({
  selector: 'app-create-dataset-name',
  templateUrl: './create-dataset-name.component.html'
})
export class CreateDatasetNameComponent extends AbstractPopupComponent implements OnInit, OnDestroy {

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Private Variables
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Protected Variables
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Public Variables
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

  @Input()
  public datasetHive: PrDatasetHive;

  @Input()
  public datasetJdbc: PrDatasetJdbc;

  @Input()
  public datasetFiles: any;

  @Input() // [DB, STAGING, FILE]
  public type: string;

  @Input()
  public isFromDatasetList: boolean = true;

  // name error msg show/hide
  public showNameError: boolean = false;

  // desc error msg show/hide
  public showDescError: boolean = false;

  // to check request is only sent once.
  public flag: boolean = false;

  @ViewChild('nameElement')
  public nameElement: ElementRef;

  public datasetInfo: DatasetInfo[] = [];
  public fileExtension: string;

  public dsfileInformations: any;

  public isMultiSheet: boolean = false;
  public names: string [] = [];
  public clonedNames: string[] = [];
  public descriptions: string [] = [];
  public nameErrors: string[] = [];
  public descriptionErrors: string[] = [];
  public currentIndex: number = 0;
  public isMaxLengthError: boolean = false;
  public results: any[] = [];

  public isChecked: boolean = true; // jump to dataflow main grid

  public prepCommonUtil = PreparationCommonUtil;

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Constructor
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
  constructor(private popupService: PopupService,
              private datasetService: DatasetService,
              private dataflowService: DataflowService,
              protected elementRef: ElementRef,
              protected injector: Injector) {
    super(elementRef, injector);
  }

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Override Method
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
  public ngOnInit() {
    super.ngOnInit();

    this.dsfileInformations = [];

    // Set default name
    this._setDefaultDatasetName(this.type);

    // Set dataset information
    this._setDatasetInfo();

  }

  public ngOnDestroy() {
    super.ngOnDestroy();
  }

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Public Method
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

  /** Complete */
  public complete() {

    if (this.flag) {
      return;
    }

    // Name validation
    this.names.forEach((item, index) => {
      if (isUndefined(item) || item.trim() === '' || item.length < 1) {
        this.nameErrors[index] = this.translateService.instant('msg.dp.alert.name.error');
        this.showNameError = true;
      }

      if (item.length > 150) {
        this.showNameError = true;
        this.nameErrors[index] = this.translateService.instant('msg.dp.alert.name.error.description');
      }

    });

    // description validation
    this.descriptions.forEach((_item, index) => {
      if (!StringUtil.isEmpty(this.descriptions[index]) && this.descriptions[index].length > 150) {
        this.descriptionErrors[index] = this.translateService.instant('msg.dp.alert.description.error.description');
      }
    });

    if (this.showNameError || this.showDescError) {
      return;
    }

    let params = {};
    if (this.type === 'STAGING') {

      this.datasetHive.dsName = this.names[0];
      this.datasetHive.dsDesc = this.descriptions[0];
      params = this._getHiveParams(this.datasetHive);
      this._createDataset(params);
    }

    if (this.type === 'DB') {

      this.datasetJdbc.dsName = this.names[0];
      this.datasetJdbc.dsDesc = this.descriptions[0];
      params = this._getJdbcParams(this.datasetJdbc);
      this._createDataset(params);

    }

    if (this.type === 'FILE' || 'URL' === this.type) {

      // List of parameters used to make multiple dataSets
      const fileParams = this.names.map((name: string, index: number) => {
        this.datasetFiles[this.dsfileInformations[index].datasetFileIndex].dsName = name;
        this.datasetFiles[this.dsfileInformations[index].datasetFileIndex].dsDesc = this.descriptions[index];
        this.datasetFiles[this.dsfileInformations[index].datasetFileIndex].sheetName = this.dsfileInformations[index].sheetName;
        if (this.datasetFiles[this.dsfileInformations[index].datasetFileIndex].fileFormat !== FileFormat.JSON) {
          this.datasetFiles[this.dsfileInformations[index].datasetFileIndex].manualColumnCount = this.dsfileInformations[index].manualColumnCount;
        }
        return this._getFileParams(this.datasetFiles[this.dsfileInformations[index].datasetFileIndex]);
      });

      // Make list of params into observable using from.
      // used concatMap to send multiple sequential HTTP requests
      this.flag = true;
      this.results = [];

      const procFileDs: ((callback) => void)[] = [];
      fileParams.forEach(param => {
        procFileDs.push((callback) => {
          this._createFileDataset(param).then( result => {
            if (result) {
              this.results.push({dsId: result.dsId, dsName: result.dsName, link: result['_links'].self.href});
            }
            callback();
          }).catch((err) => {
            console.error( err );
            callback();
          });
        });
      });

      this.loadingShow();

      async.waterfall(procFileDs, () => {

        this.flag = false;
        this.loadingHide();

        // Find number of errors
        const errorNum = this.names.length - this.results.length;
        if (errorNum > 0) {
          Alert.error(this.translateService.instant('msg.dp.alert.num.fail.dataset', {value: errorNum}));
        }

        // 데이터셋 리스트에서 진입과 체크됐다면(데이터플로우로 바로 이동)
        if (this.isChecked && this.isFromDatasetList && this.names.length === 1) {
          this._makeShortCutToDataFlow();
        } else {

          // 리스트로 돌아간다.
          this.popupService.notiPopup({
            name: 'complete-dataset-create',
            data: this.results.length > 0 ? this.results[0].dsId : null
          });
        }
      });

    }

  }

  /**
   * Short cut to dataFlow
   * @private
   */
  private _makeShortCutToDataFlow() {

    const today = moment();
    const df = new PrDataflow();
    this.loadingShow();

    // 데이터셋이 생성이 됐다면 데이터플로우 생성을 한다.
    if (this.results[0] && !isNullOrUndefined(this.results[0].link)) {
      df.datasets = [this.results[0].link];
      df.dfName = `${this.results[0].dsName}_${today.format('MM')}${today.format('DD')}_${today.format('HH')}${today.format('mm')}`;

      // 1. create dataflow with dataset
      this.dataflowService.createDataflow(df).then((result1) => {
        this.loadingHide();
        if (result1) {

          // 2. Find wrangled dataset
          // 3. Move to dataFlow main grid (navigate)
          this.router.navigate([`/management/datapreparation/dataflow/${result1['dfId']}/rule/${result1.datasets[1].dsId}`]);
        } else {

          // If error move to dataset list
          this.loadingHide();
          this.close();
        }

      }).catch(() => {

        // If error move to dataset list
        this.loadingHide();
        this.close();
      });
    } else {
      // If error move to dataset list
      this.loadingHide();
      this.close();
    }
  }

  /** go to previous step */
  public prev() {

    if (this.type === 'FILE') {
      this.popupService.notiPopup({
        name: 'select-sheet',
        data: null
      });
    } else if (this.type === 'STAGING') {
      this.popupService.notiPopup({
        name: 'create-dataset-staging-selectdata',
        data: null
      });
    } else if (this.type === 'DB') {
      this.popupService.notiPopup({
        name: 'create-db-query',
        data: null
      });
    } else if (this.type === 'URL') {
      this.popupService.notiPopup({
        name: 'select-url',
        data: null
      })
    }
  }

  /**
   * close popup
   */
  public close() {
    super.close();

    this.popupService.notiPopup({
      name: 'complete-dataset-create',
      data: null
    });
  }

  /**
   * show/hide error msg
   * @param index
   */
  public hideNameError(index: number) {
    if (isUndefined(this.names[index]) || this.names[index].length > 0 || this.names[index].length <= 150) {
      this.showNameError = false;
      this.nameErrors[index] = '';
    }
  }

  /**
   * show/hide error msg
   * @param index
   */
  public hideDescError(index: number) {
    if (isUndefined(this.descriptions[index]) || this.descriptions[index].length <= 150) {
      this.showDescError = false;
      this.descriptionErrors[index] = '';
    }
  }

  /**
   * Error action
   * @param _error
   */
  public errorAction(_error) {
    this.flag = false;
    Alert.error(this.translateService.instant('msg.dp.alert.num.fail.dataset', {value: 1}));
    this.close();
  }

  /**
   * Check if next button is disabled or not
   */
  public isBtnDisabled(): boolean {
    return this.showNameError || this.showDescError;
  }

  /**
   * Keyup event
   * @param event
   */
  public keyupEvent(event) {
    if (event.keyCode === 13) {
      this.complete();
    }
  }

  /**
   * Keyboard down event on name input
   * @param event
   * @param index
   */
  public keyDownEvent(event, index) {

    if (this.names[index].length > 149 && this.isKeyPressedWithChar(event.keyCode) && !this.isMaxLengthError) {
      this.isMaxLengthError = true;
      if (this.type !== 'FILE') {
        this.showNameError = true;
      }
      this.nameErrors[index] = this.translateService.instant('msg.dp.ui.max.length.error');
      setTimeout(() => {
        this.hideNameError(index);
        this.isMaxLengthError = false;
      }, 2000);
    }

    if (this.nameErrors[index] !== '' && !this.isMaxLengthError) {
      this.hideNameError(index);
    }
  }

  /**
   * Keyboard press down event on description input
   * @param event
   * @param index
   */
  public keyDownDescEvent(event, index) {

    if (this.descriptions[index].length > 149 && this.isKeyPressedWithChar(event.keyCode) && !this.isMaxLengthError) {
      this.isMaxLengthError = true;
      this.descriptionErrors[index] = this.translateService.instant('msg.dp.ui.max.length.error');
      setTimeout(() => {
        this.hideDescError(index);
        this.isMaxLengthError = false;
      }, 2000);
    }

    if (this.descriptionErrors[index] !== '' && !this.isMaxLengthError) {
      this.hideDescError(index);
    }

  }

  /**
   * Returns true if something is typed on the keyboard
   * Returns false if shift, tab etc is pressed
   * @param keyCode
   */
  public isKeyPressedWithChar(keyCode: number): boolean {
    const exceptionList: number[] = [8, 9, 13, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 91, 92, 219, 220, 93, 144, 145];
    return exceptionList.indexOf(keyCode) === -1
  }

  /**
   * Return appropriate title for each dataset type
   */
  public get getTypeName() {

    let result = 'Staging DB';

    if (this.type === 'DB') {
      result = 'Database';
    }

    if (this.type === 'FILE') {
      result = 'File';
    }

    if (this.type === 'URL') {
      result = this.type;
    }

    return result;

  }

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Protected Method
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/

  /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  | Private Method
  |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
  /**
   * 데이터셋 이름의 default값을 넣는다.
   * @param {string} type
   * @private
   */
  private _setDefaultDatasetName(type: string): void {

    if ('FILE' === type || 'URL' === type) {

      // FIXME: no idea why dsfileInformations is used instead of datasetInfo
      this.datasetFiles.forEach((dsFile, index) => {
        if (dsFile.sheetInfo) {
          if (dsFile.fileFormat === FileFormat.EXCEL) {
            dsFile.sheetInfo.forEach((sheet) => {
              if (sheet.selected) {
                const name = `${dsFile.fileName} - ${sheet.sheetName}`;
                this.names.push(name.slice(0, 150));
                this.descriptions.push('');
                this.nameErrors.push('');
                this.descriptionErrors.push('');
                this.dsfileInformations.push({
                  datasetFileIndex: index,
                  fileName: dsFile.filenameBeforeUpload,
                  fileFormat: dsFile.fileFormat.toString(),
                  sheetName: sheet.sheetName,
                  manualColumnCount: sheet.columnCount,
                  svg: dsFile.fileFormat.toUpperCase(),
                });
              }
            })
          } else {
            if (dsFile.selected) {
              const name = `${dsFile.fileName}.${dsFile.fileExtension}`;
              this.names.push(name.slice(0, 150));
              this.descriptions.push('');
              this.nameErrors.push('');
              this.descriptionErrors.push('');
              if (dsFile.fileFormat === FileFormat.JSON) {
                this.dsfileInformations.push({
                  datasetFileIndex: index,
                  fileName: dsFile.filenameBeforeUpload,
                  fileFormat: dsFile.fileFormat.toString(),
                  sheetName: '',
                  svg: dsFile.fileFormat.toUpperCase(),
                });
              } else {
                this.dsfileInformations.push({
                  datasetFileIndex: index,
                  fileName: dsFile.filenameBeforeUpload,
                  fileFormat: dsFile.fileFormat.toString(),
                  sheetName: '',
                  manualColumnCount: dsFile.sheetInfo[0].columnCount,
                  svg: dsFile.fileFormat.toUpperCase(),
                });
              }
            }
          }
        }
      });

    } else if ('DB' === type) {

      // When table
      if (this.datasetJdbc.rsType === RsType.TABLE) {
        this.names[0] = `${this.datasetJdbc.tableInfo.tableName}_${this.datasetJdbc.dataconnection.connection.implementor}`;
      } else {
        this.names[0] = '';
      }

    } else if ('STAGING' === type) {

      // When table
      if (this.datasetHive.rsType === RsType.TABLE) {
        this.names[0] = `${this.datasetHive.tableInfo.tableName}_STAGING`;
      } else {
        this.names[0] = '';
      }

    }

    // For placeholder
    this.clonedNames = _.cloneDeep(this.names);

    this.nameElement && setTimeout(() => {
      this.nameElement.nativeElement.select();
    });
  } // function - _setDefaultDatasetName

  /**
   * Set dataset information (summary)
   * @private
   */
  private _setDatasetInfo() {

    if ('FILE' === this.type || 'URL' === this.type) {

      if (this.names.length === 1) {
        const ext = this.prepCommonUtil.getFileNameAndExtension(this.datasetFiles[0].filenameBeforeUpload)[1];
        if ('FILE' === this.type) {

          this.datasetInfo.push({
            name: this.translateService.instant('msg.dp.ui.list.file'),
            value: this.datasetFiles[0].fileName,
            svg: this.prepCommonUtil.getFileFormatWithExtension(ext).toString()
          });
        } else {
          this.datasetInfo.push({
            name: `URL(${this.prepCommonUtil.getFileFormatWithExtension(ext)})`,
            value: this.datasetFiles[0].storedUri,
            svg: this.prepCommonUtil.getFileFormatWithExtension(ext).toString()
          });
        }

        if ('XLSX' === this.datasetFiles[0].fileExtension.toUpperCase() || 'XLS' === this.datasetFiles[0].fileExtension.toUpperCase()) {
          this.datasetInfo.push({
            name: this.translateService.instant('msg.dp.th.sheet'),
            value: this.datasetFiles[0].sheetName
          });
        }
      }

    } else if ('DB' === this.type) {

      const ds = this.datasetJdbc;

      // TYPE
      this.datasetInfo.push({
        name: this.translateService.instant('msg.comm.th.type'),
        value: `DB(${ds.dataconnection['connection'].implementor})`,
        svg: ds.dataconnection['connection'].implementor,
      });

      if (this.datasetJdbc.rsType === RsType.TABLE) {

        // DATABASE NAME
        this.datasetInfo.push({
          name: this.translateService.instant('msg.dp.th.database'),
          value: ds.tableInfo.databaseName
        });

        // TABLE NAME
        this.datasetInfo.push({
          name: this.translateService.instant('msg.dp.th.ss.table'),
          value: ds.tableInfo.tableName
        });

      } else {

        this.datasetInfo.push({
          name: this.translateService.instant('msg.dp.th.database'),
          value: ds.sqlInfo.databaseName
        });

        // QUERY STATEMENT
        this.datasetInfo.push({
          name: this.translateService.instant('msg.dp.btn.query'),
          value: ds.sqlInfo.queryStmt
        });

      }

      if (ds.dataconnection['connection'].hostname && ds.dataconnection['connection'].port) {

        // HOST & PORT
        this.datasetInfo.push(
          {name: this.translateService.instant('msg.comm.th.host'), value: ds.dataconnection['connection'].hostname},
          {name: this.translateService.instant('msg.comm.th.port'), value: ds.dataconnection['connection'].port}
        );
      } else {

        // URL
        this.datasetInfo.push(
          {name: this.translateService.instant('msg.nbook.th.url'), value: ds.dataconnection['connection'].url}
        );
      }

    } else if ('STAGING' === this.type) {
      this.datasetInfo.push({
        name: this.translateService.instant('msg.comm.th.type'),
        value: 'STAGING_DB',
        svg: 'HIVE'
      });

      if (this.datasetHive.rsType === RsType.TABLE) {
        this.datasetInfo.push(
          {name: this.translateService.instant('msg.dp.th.database'), value: this.datasetHive.tableInfo.databaseName},
          {name: this.translateService.instant('msg.dp.th.ss.table'), value: this.datasetHive.tableInfo.tableName}
        );
      } else {
        this.datasetInfo.push({
          name: this.translateService.instant('msg.dp.btn.query'),
          value: this.datasetHive.sqlInfo.queryStmt
        });
      }

    }

  }

  /**
   * Returns parameter needed for creating staging dataset
   * @returns {Object}
   * @private
   */
  private _getHiveParams(hive): object {

    if (hive.rsType === RsType.QUERY) {
      hive.queryStmt = hive.sqlInfo.queryStmt;
      hive.dbName = hive.sqlInfo.databaseName;
    } else {
      hive.tblName = hive.tableInfo.tableName;
      hive.dbName = hive.tableInfo.databaseName;
    }
    return hive
  }

  /**
   * Returns parameter needed for creating jdbc dataset
   * @param jdbc
   * @returns {Object}
   * @private
   */
  private _getJdbcParams(jdbc): object {

    // For postgre dbName is database not databaseName!
    if (jdbc.rsType === RsType.QUERY) {
      jdbc.queryStmt = jdbc.sqlInfo.queryStmt;
      jdbc.dbName = jdbc.sqlInfo.databaseName;
    } else {
      jdbc.tblName = jdbc.tableInfo.tableName;
      jdbc.dbName = jdbc.tableInfo.databaseName;
    }
    return jdbc
  }

  /**
   * Returns parameter needed for creating staging dataset
   * @returns {Object}
   * @private
   */
  private _getFileParams(file): object {
    const params: any = {};
    if (file.fileFormat === FileFormat.EXCEL) {
      params.delimiter = ',';
    } else {
      params.delimiter = file.delimiter;
    }

    if (file.fileFormat === FileFormat.CSV || file.fileFormat === FileFormat.TXT) {
      params.quoteChar = file.quoteChar;
    }

    params.dsName = file.dsName;
    params.dsDesc = file.dsDesc;
    params.dsType = 'IMPORTED';
    if (this.type === 'FILE') {
      params.importType = 'UPLOAD';
    } else if (this.type === 'URL') {
      params.importType = 'URI';
    } else {
      params.importType = 'UPLOAD';
    }
    params.filenameBeforeUpload = file.filenameBeforeUpload;
    params.storageType = file.storageType;
    params.sheetName = file.sheetName;
    params.storedUri = file.storedUri;
    params.manualColumnCount = file.manualColumnCount;

    return params
  }

  /**
   * Create dataset (call API)
   * @param {Object} params
   * (staging and db)
   * @private
   */
  private _createDataset(params: object) {

    const type = this.type === 'DB' ? this.datasetJdbc : this.datasetHive;

    const tableInfo = type.tableInfo;
    const sqlInfo = type.sqlInfo;

    // delete - only use in UI
    delete type.tableInfo;
    delete type.sqlInfo;

    // Error when creating dataflow with dataset with no querystmt
    if (type.rsType === RsType.TABLE) {
      let databaseName = tableInfo.databaseName;
      let tableName = tableInfo.tableName;
      if (type.dataconnection.connection.implementor === 'POSTGRESQL') {
        if (/^[a-z0-9]+$/.test(databaseName) === false) {
          databaseName = `"${databaseName}"`;
        }
        if (/^[a-z0-9]+$/.test(tableName) === false) {
          tableName = `"${tableName}"`;
        }
      }
      params['queryStmt'] = `select *
                             from ${databaseName}.${tableName}`;
    }

    this.loadingShow();
    this.flag = true;
    this.datasetService.createDataSet(params).then((result) => {
      this.flag = false;
      this.loadingHide();
      if (result) {
        this.results = [];
        this.results.push({dsId: result.dsId, dsName: result.dsName, link: result['_links'].self.href});
        if (this.isChecked && this.isFromDatasetList) {
          this._makeShortCutToDataFlow();
        } else {
          this.popupService.notiPopup({
            name: 'complete-dataset-create',
            data: this.results.length > 0 ? this.results[0].dsId : null
          });
        }
      }
    }).catch((error) => {

      type.tableInfo = tableInfo;
      type.sqlInfo = sqlInfo;

      // Error when creating dataflow with dataset with no querystmt
      if (type.rsType === RsType.TABLE) {
        delete params['queryStmt'];
      }

      this.loadingHide();
      this.errorAction(error);
    })
  }

  /**
   * Create file type dataset
   * @param param
   * @private
   */
  private _createFileDataset(param): Promise<any> {
    return new Promise((resolve, reject) => {
      this.datasetService.createDataSet(param).then(result => resolve(result)).catch(error => reject(error));
    });
  }

}

class DatasetInfo {
  name: string;
  value: any;
  svg?: string;
}


Always hustlin', baby. My latest for EBONY is on National HIV Testing Day: "Time for "A Real Conversation" on HIV/AIDS and Blacks."
The number of new HIV infections has finally stabilized at about 50,000 per year, according to the Centers for Disease Control and Prevention. Unfortunately the epicenter of the domestic epidemic is Black America. African-American and other Black communities represent only 14 percent of the nation's population but account for 44 percent of all new HIV infections, reports the CDC.
Black gay and bisexual men continue to suffer the highest new infection rates in the country. The number of new infections have been particularly "alarming" among young Black gay and bisexual men aged 13 to 19, according to CDC. New seroconversions have increased by almost half between 2006 and 2009.
"The statistics speak for themselves," Keith R. Green, MSW told EBONY.com. Green is the chairman of the Chicago Black Gay Men's Caucus, which promotes sexual health, wellness and empowerment among Black gay and bisexual men. "Black gay and bisexual men are disproportionately impacted by HIV/AIDS. That is largely because of not knowing their status and not taking appropriate action when we do."
Thanks to Planned Parenthood, the Centers for Disease Controls and the Chicago Black Gay Men's Caucus. Read the full article HERE.


text:
describe("bootstrap-tagsinput", function() {

  describe("Reproduced bugs", function() {

    describe("#1: Demo error", function() {

      testTagsInput('<input type="text" value="some_tag" />', function() {
        it("clicking remove button should remove item", function() {
          $('[data-role=remove]', this.$sandbox).trigger('click');
          expect(this.$element.tagsinput('items').length).toBe(0);
        });
        it("clicking remove button should remove tag element", function() {
          $('[data-role=remove]', this.$sandbox).trigger('click');
          expect($('.tag', this.$sandbox).length).toBe(0);
        });
      });
    });
  });
});


The 'Nabes book, softcover with black and white photos of movie theatres in Toronto in the early 1900's. Lots of photographs of the kinds of neighbourhood theatres our grandparents went to. Signed by author.


How vulnerable are utilities to the growing use of alternative energy?
That was the question posed to Ralph Izzo, the chief executive officer, president, and chairman of Public Service Enterprise Group, during the company's annual shareholder meeting shareholder yesterday in Newark at the Robert Treat Hotel.
It is an issue that many utility companies are wrestling with as states are adopting tougher standards to rely on renewable energy to generate electricity, programs to reduce energy consumption, and initiatives to build smaller power plants to provide power to local businesses.
All of the forgoing end up reducing utilities' traditional source of revenue by decreasing gas and electric consumption by customers, a threat to a company's ability to maintain safe and reliable service to businesses and consumers.
In response, Izzo said the utility always has the opportunity to file a rate case to make sure it gets enough revenue to maintain the reliability of its power grid. He also defended the company's investments in renewables and energy efficiency, saying it earns as much money on its investments as in traditional utility projects.
Public Service Electric & Gas, a subsidiary of the Newark-based company, has invested about $1 billion in both solar energy and energy-efficiency projects in recent years -- far more than any other utility in the state.
Izzo would like to invest more of the company's money into energy efficiency, saying it should be a top priority of where utilities invest their capital. Last week, the state Board of Public Utilities approved a new $95 million energy-efficiency program proposed by PSE&G to help hospitals, multifamily units, and governments cut back their energy use and save money.
In the next five years, however, most of the company's $13 billion investment program will be targeted at upgrades and other projects related to the utility's transmission lines, which deliver electricity from power plants to the company's substations and wires to most businesses and residential customers.
Eventually, Izzo said, investments in alternative energy projects will dry up as existing subsidies to promote such technologies as solar power end. Still, he said the big unresolved question is how the nation decides to adapt to climate change, which would have a big impact on today's power plants.
It could lead to increased investments in renewable energy and energy efficiency, but also raises concerns about reliability of the power grid, according to Izzo. He has argued that the company should invest much more in energy efficiency -- up to $1billion -- a tough sell to regulators, even given the fact that most agree it is the best way to save consumers and businesses money on their energy bills.
In terms of the traditional power system, Izzo said the company plans to add another 130 megawatts of capacity to the Peach Bottom nuclear unit, which it partially owns. It also has installed new equipment to increase the efficiency of its gas-fired plant in Linden and another facility in Bergen County.


DTS Pool Service in Virginia Beach, VA.
Is your pool in need of a repair, modification, or maintenance? DTS Pool Service provides high-quality pool services to the Virginia, Beach VA area. We have the experience and skills to handle and project or repair. Our team is dedicated at providing our customers with excellent customer service and half 24 hour service for your emergency needs too! Our weekly service is reliable and will leave your pool in top condition. DTS Pool Service always offers affordable prices on all of our pool services. Call today to hear more about our services!
Call today to receive more information about our services and pricing!