text:
Nicole Stowers' arm after being bit by a shark in Myrtle Beach on Aug. 19, 2020. Vacationer bit by shark in Myrtle Beach as officials warn activity is on the rise, By Tyler Fleming Mainly clear. APTOS — A 26-year-old man was killed by a shark Saturday afternoon near Sand Dollar Beach. They have narrow pointed teeth that are used to bite and hold onto prey before they swallow it whole. Sand sharks, also known as sand tiger sharks, grey nurse sharks or ragged tooth sharks, are mackerel sharks of the family Odontaspididae. Their teeth are long, narrow, and very sharp with smooth edges, with one and on occasion two smaller cusplets on either side. Sand sharks are generally not aggressive, but harass divers who are spearfishing. Explore ... A lifeguard drives past Sand Dollar Beach in Watsonville Calif Saturday May 9 where a surfer was killed earlier in a shark attack. Did you stay up-to-date with this week's headlines? "They are swift-swimming sharks that make rapid decisions about what to bite and what not to bite," said Abel, who also said that the area sees plenty of lemon and bull sharks. Stowers estimated the shark was about 3-4 feet in length, with its full body leaving the ocean to deliver the bite on her arm, just feet away from her 14- and 9-year-old children. The body tends to be brown with dark markings in the upper half. [1] The sand shark can grow up to 3.2 m (10 ft) long, and most adults can weigh around 200 kg (440 lb). While Stowers' husband, Brad, wrapped a towel around her bleeding arm, a pair of Lack's Beach Service lifeguards responded to Stowers' injury around 2:15 p.m. on Aug. 19, calling for emergency back-up. How Columbia lured in White Claw brewery and canning plant, Botanist reveals abundance of health remedies in the maritime forest of Sullivan's Island, SC continues to log rising case numbers, high percentage of positive tests, Summerville nonprofit's deal with COVID-19 drugmaker raises consumer issues. On July 18, 2018 Matthew Donaldson, 13, was bitten on the leg at Atlantique Beach off Fire Island in New York. "Thankfully, it was very quick this time around.". ; Gar - 0.5XP per lb. This family is therefore polyphyletic and in need of revision.[10]. Winds W at 10 to 20 mph. In North America, wreck divers regularly visit the World War II shipwrecks to dive with the sharks that make the wrecks their home. ; Catfish - 1XP per lb. A shark leaps out of the sand and devours a woman, her severed head is seen. The sand shark possesses a pair of long pectoral fins and pairs of short, terminally-located pelvic and anal fins that work together to maintain speed and stabilize movement in the sand. "It's dangerous to be putting bait out there right next to people trying to enjoy themselves," Stowers said. Just 24 hours before Stowers was attacked, her husband had approached the Lack's lifeguards about fishermen casting their lines into the ocean alongside those trying to enjoy a dip in the Atlantic Ocean. It was the Grand Strand's first reported shark attack of the year amid what local officials are calling "increasingly active waters.". Blacktips live in warm water and weather — with Myrtle Beach providing plenty of both nearly year around. (2015) | Literature | Shark-References", FishBase Family Odontaspididae - Sand tigers, https://en.wikipedia.org/w/index.php?title=Sand_shark&oldid=991516909, Taxa named by Friedrich Gustav Jakob Henle, Creative Commons Attribution-ShareAlike License, This page was last edited on 30 November 2020, at 13:47. Sand tiger sharks eat a variety of fishes, including smaller rays and sharks. These markings disappear as they mature. It's like, 'Oops, I'm sorry. Post and Courier Myrtle Beach The sand shark has blue spots on its back. There is very little concern for attacks on humans from this shark. tfleming@postandcourier.com, By Tommy Braswell The shark quickly released Stowers' arm, leaving one clear puncture and lacerations that would surface over the next couple of hours. "It happened so fast," Stowers said. Sharks have had remarkable evolutionary success. In case a shark … In addition, sand tigers do well in captivity, making them one of the most popular aquarium sharks in the world. It also upholds Section 5-5 of the Myrtle Beach Code of Ordinances, which focuses on recreational fishing from shore or pier. Nicole Stowers stood there, waist deep in the ocean with her room at the Myrtle Beach Resort just off in the distance. Sand tiger sharks are brownish-gray with rust-colored spots on top and white underneath. The shark attack was the first on a swimmer in the city's history, according to the recollection of Oberndorf and emergency officials. Low near 40F. By swallowing mouthfuls of air at the ocean's surface, … & SIVERSSON, M. & WELTON, B.J. "While events like this are rare, we make sure we are covered when we know help might be a bit slower getting there," Lack-Chickering said. Max size: 13 or 14 feet Max health: 127 Browse 374 sand shark stock photos and images available, or search for nurse shark or sand tiger shark to find more great stock photos and pictures. [5] Its staple is small fish, but it eats crustaceans and squid, as well. I didn't mean to do it,' and they move on.". "There is some damage that can be caused, and it can be quite serious. SAND TIGERS GULP AIR TO STAY BUOYANT. "It was like an ax fell on my arm," said Stowers. Sand sharks, also known as sand tiger sharks, grey nurse sharks or ragged tooth sharks, are mackerel sharks of the family Odontaspididae. Donaldson was able to walk out of the water and showed a lifeguard the puncture wounds on his leg. They inch toward the shore as they look to feed on small, schooling fish. Abel points to the murky water that lines the Grand Strand as a key contributor to keeping sharks in the area, as well as continued climate change — an always controversial topic, although Abel doesn't think so when it comes to shark migration. Sharks use water temperature as cues for their migration," Abel said. They are often found in warm or temperate waters throughout the world's oceans, except the eastern Pacific. Has a crooked snout and has a relatively large tail for its size, giving it a 'snaggletoothed' appearance. Special to The Post and Courier, The Berkeley Independent - Moncks Corner, SC, By Nick Masuda According to Lack's, an ambulance arrived eight minutes later — a quick turnaround due to it being the middle of the week. Check it out here. Winds could occasionally gust over 40 mph. They are found worldwide in temperate and tropical waters. Sporting a severely swollen arm, with emergency crew stating that the could see one of her muscles through the laceration, Stowers was taken to South Strand Hospital, where an X-ray showed no bone damage. Sand sharks are not known to attack humans. Edit . Sand sharks only develop two embryos, one in each uterus. Many college teens are devoured by a shark when it leaps out of the sand and devours them. Encounters between people and sharks … The Great Sand Shark is a Hardmode, post-Plantera mini boss that spawns during a Sandstorm after killing 10 Sand Sharks.It can be summoned manually by using a Sandstorm's Core at any time in a Desert.While it swims through sand like the more common Sand Shark, it has a much greater variety of attacks on top of its increased size, speed, health and … & LONG, D.L. [6] It has one of the lowest reproduction rates of all sharks and is susceptible to even minimal population pressure, so it is listed as vulnerable and is protected in much of its range. The sand tiger shark, also known as a grey nurse shark, spotted ragged-tooth shark or blue-nurse sand tiger, is a cousin of the great white shark.. With Corin Nemec, Brooke Hogan, Vanessa Evigan, Eric Scott Woods. But if a blacktip shark that was going after shiny little fish sees a person's foot and accidentally bites it, that's just bad luck and it's going to happen from time to time.". During the day, the sand shark stays mostly inactive, but at night, it becomes active and resumes hunting activities. According to Lack's Operations Manager, Weslyn Lack-Chickering, the company hires an off-duty medic to roam the beach on weekends because the trip from Highway 17 to the beach can be slow due to traffic. At only 5-foot-3, wading into the surf has been commonplace on her multiple vacation trips to the Grand Strand from her native Pittsburgh — never fearing a thing, more focused on keeping her two children in line and within arm's length. "The IUCN Red List of Threatened Species", "Ghosts in the Graveyard: N.C. Shark Diving", "Considering Shark Biology in Management", "The complete mitogenome of the Critically Endangered smalltooth sand tiger shark, Odontaspis ferox (Lamniformes: Odontaspididae)", "SHIMADA, K. & POPOV, E.V. [7], Sand sharks are not known to attack humans. If a person were to provoke a sand shark, it may retaliate defensively. See more ideas about shark, shark bites, shark attack. In North America, wreck divers regularly visit the World War II shipwrecks to dive with the sharks that make the wrecks their home. Lack-Chickering admitted that hearing about the incident wasn't shocking, as both she and her lifeguards have seen more shark activity in the area this summer than they have over the past three summers, if not longer. Test yourself with our weekly quiz. They prefer the live stuff," Abel said. In South Carolina, there hasn't been a fatal attack since 1852. Sep 8, 2020 - Explore PAT TODD's board "SHARK BITES" on Pinterest. Sand sharks are not known to attack humans. If a person were to provoke a sand shark, it may retaliate defensively. The Sand Shark (also known as The Beast) is a giant sand sharkand a Minor Antagonist character in the 1994sTV series "Aladdin". Stowers estimated the shark was about 3-4 feet in length, with its full body leaving the ocean to deliver the bite on her arm, just feet away from her 14- and 9-year-old children. Recent mitochondrial DNA analysis of extant members has found the two extant members do not actually form a monophyletic clade. The average lifespan of both sexes is only about 7 years, though they may live longer in captivity. Get up-to-the-minute news sent straight to your device. There are no unprovoked attacks from this shark on record. [8], A recent report from the PEW Charitable Trusts suggests a new management approach used for large mammals that have suffered population declines could hold promise for sharks. Explore our complete line of plumbing fittings, PEX pipe, valves, adapters and more. "The good news is — hardly good news for someone suffering from a bite — but the good news is they have taste receptors right inside their mouth and when they bite on something, they recognize almost instantaneously that it's not something on their menu. Sand tigers roam the surf, sometimes in close proximity to humans, and there have been only a few instances of unprovoked sand tiger shark attacks on humans, usually associated with spear fishing, line fishing, or shark feeding. The three species are in two genera. Edit . Between 2000-2019, there were 74 shark bites reported in the Palmetto State. A low reproductive rate combined with a high level of commercial and sport fishing has depleted the population of this beautiful species. Winds could occasionally gust over 40 mph.. Winds W at 10 to 20 mph. Their needle-like teeth are highly adapted for impaling fish, their main prey. It is primarily brown dorsally while cream in coloration ventrally, allowing the creature to remain largely inconspicuous in its preferred environment. But for the most part, it's a bite of mistaken identity. South Carolina is among the top 5 states in the U.S. when it comes to shark attacks — but it registered only one bite in 2019, and this is the first along the Grand Strand in 2020. While females grow larger than males, most reliable records for this species give a maximum total length of 10.5 feet and maximum weight of about 350 pounds. Georgetown, SC 29440, News tips/online questions: webteam@postandcourier.com, Delivery/subscription questions: subserve@postandcourier.com. Mainly clear. The Sand Shark is a fish, introduced on the 6th day of Player Appreciation Week 2017. If a person were to provoke a sand shark, it may retaliate defensively. The residents of a small town team up to kill a group of evolved sharks that can swim in sand, and are terrorizing local beaches. "And they aren't allowed to catch sharks anyways — although I don't know how you stop them if you are putting bait out there that they want to nibble on.", Abel said adding any level of opportunity for a shark's "exquisite" sense of smell to be triggered can create danger for humans, although he cautioned bait is not the sharks preferred form of "lunch.", "When there is a lot of the bait fish in the water, we have a hard time catching them with the bait we use. Sand sharks are generally not aggressive, but harass divers who are spearfishing. "We clear the beach right away when we see the sharks. The U.S. averages just under 45 shark bites per year, according to the Museum of Natural History at the University of Florida, while Abel says that there are near 100 cases reported worldwide, with less than 10 percent being fatal. Directed by Mark Atkins. The name sand shark comes from their tendency to migrate towards shoreline habitats, and they are often seen swimming around the ocean floor in the surf zone; at times, they come very close to shore. It is easily identifiable by a large central dorsal fin adjoined both anteriorly and posteriorly by s… To make matters a bit worse, the stingrays have been target of the sharks in shallow water, leaving some of the rays bloodied and others dead. Some of the more stringent approaches used to reverse declines in large mammals may be appropriate for sharks, including prohibitions on the retention of the most vulnerable species and regulation of international trade. The Sand Shark can be trained, giving either a Sand Shark Leash or a Riding Sand Shark when trained. Cut repair & install time in half with SharkBite Plumbing Products. They are found worldwide in temperate and tropical waters. Daniel Abel, a local shark expert and Coastal Carolina University professor of marine science, believes due to the shark's quick release of Stowers' arm, it was likely a blacktip shark — a species commonly found along the shores of the Grand Strand. It's like biting into rotten fruit or fish. The first sharks lived approximately 400 million years ago, about 200 million years before the dinosaurs. https://animals.howstuffworks.com/fish/sharks/most-dangerous-shark.htm [9], The family contains three extant species, in two genera, as well as many extinct species in several genera. "The swimmers outrank the fishers," Lack-Chickering said. Reach Nick Masuda at 843-607-0912. The sand shark is an enormous creature that surpasses a Ba Sing Se airshipin size. You have permission to edit this article. "It's prudent not to swim where someone is fishing, or near a pier. Troutman offered some tips for swimmers entering the ocean: – "Do the stingray shuffle. Ben Kelly, 26, was killed by a great white shark while surfing at Sand Dollar Beach on the south end of the county Saturday afternoon. Santa Cruz … "The change in climate is affecting ocean temperatures is definitely bringing more sharks here for longer periods of time. It's staying warmer here for a longer period of time, so the blacktip sharks that are migrating back and forth from Florida to here take advantage of the warmer water here to stay longer.". The sand shark has a unique hunting strategy. How much is apartment rent in each Charleston-area city? California State Parks confirmed the victim was pronounced dead on … Stowers admitted to feeling like she was a spectacle, with beachgoers snapping photos as she tried to remain calm amid the pain — as well as assure her two children that she was fine. It is able to gulp air from above the surface and collect the air in its stomach. Despite the fearsome appearance they share in common with great white sharks, sand tigers are very docile and don't attack humans unless they're provoked, and none of the few sand tiger shark bites have been fatal. As of 2013, the database of Shark Attack Survivors does not list any fatalities due to sand tiger sharks. "Typically they are cases of mistaken identity — the shark mistakes the flash of the lighter skin of the palm of a hand or the sole of a foot for its prey, typically a bait fish like a mullet or menhaden.". Sand tiger sharks are considered docile, but have been known to bite humans. As Stowers stared off while putting up her damp hair, she suddenly felt an excruciating pain near her bicep. A man plugs in two wires and then a shark leaps out of the sand and devours him, and the shark bites the wire along with the man and is set on fire and explodes. "Nurse, reef, blacktip and, in deeper waters, tiger sharks are just a few of the types of sharks you can find here in the U.S. Virgin Islands," Troutman said. The fatal shark attack has been described by locals as a devastating tragedy that happened very quickly. Then she realized the grey streak she saw from the corner of her eye wasn't a spare boat part — it was a shark. "The desert sand shifts intensely!" [3] They also frequent the Mediterranean and Adriatic Seas at depths from 20 to 200 m (66 to 656 ft) and sometimes more.[4]. A nurse shark bit a 23-year-old woman in Boca Raton, Florida, on Sunday and didn't let go. "All I could think about was the pain.". Because of the life-history characteristics of sharks, conventional fisheries management approaches, such as reaching maximum sustainable yield, may not be sufficient to rebuild depleted shark populations. Coastal Carolina professor Daniel Abel with undergraduate Rachel Hildebrand and graduate student Andrew Sitlinger after the research crew hauled in a sandbar shark. It occasionally hunts in shivers (groups), and has even been known to attack full fishing nets. This enables it to become buoyant and approach its prey virtually motionless. While the Discovery Channel's "Shark Week" and National Geographic's Shark Fest — which Abel was featured on in 2020 — have put a newfound focus on shark's interaction with humankind, Abel also warns that shark attacks around the world, much less the Grand Strand, are "uncommon.", "There is no shark commonly found here for which humans are a menu item.". Follow him on Twitter at @nickmasudaphoto. Warning: Graphic footage - Watch the harrowing ordeal off the coast of Marathon, Florida, as friends attempt to remove a nurse shark that has clamped onto a man's abdomen and refuses to let go It is obtained by fishing with a Shrimp Lure, it's maximum size being 200lb.. Training. (2009). At first, she thought it might have been a part of a boat that was riding the current toward the sand. Lack-Chickering didn't disagree and says that the rules also side with the beachgoers, as lifeguards commonly have to ask fishermen to move to more isolated portions of the beach or near area piers. "They've been all over the place, flashing in the surf," Lack-Chickering said. Low near 40F. The man, a Broome local, was in the water north of … "We see an average of three to four shark bites a year," said Dr. Jarratt Lark, director of environmental medicine and an emergency physician for Grand Strand Health, the parent company for South Strand Hospital. [2] Sand sharks have a large second dorsal fin. The Sand Shark can be fed: Cuttlefish - 8XP per lb. Thankfully people are truly scared of sharks, so when we tell them why, they go, 'OK, bye!'". She also indicated there have been many more stingrays and jellyfish in the area, providing another pair of obstacles for beachgoers wanting to dip their toes in the water. Although not impossible, shark bites and attacks are not common here in the territory. Shark Bite Overview. The shark … When the first call came in, Santa Cruz County Sheriff's Office noted on Facebook: "State Parks is responding to a shark bite at Sand Dollar Beach in Santa Cruz County. "I felt like people wanted the picture more than help," Stowers said. 615 Front Street Man fighting for his life after shark attack at Australia's Great Barrier Reef Kayaker stalked by giant great white shark: 'Holy s - - t!' "We don't have a big year-around population of sharks, they migrate here when the temperature is warm. nmasuda@postandcourier.com, Myrtle Beach lifeguard shortage plagues beaches as visitors return to ocean, Sharks and stingrays in the Myrtle Beach surf, Fishing for sharks off Charleston coast offers summer excitement for anglers, Test your knowledge of this week's headlines with our news quiz, The Carolina Opry announces opening date for 35th season, Horry County rethinks its tax notices in an effort to save taxpayer money, Once a coastal phenomenon, population growth hot spots spread across South Carolina, Shane Beamer interview went well, but Gamecocks' coaching search isn't over, On eve of Charleston budget vote, activists continue calls to rethink public safety, A hit from the start, SC-built Sprinter a commercial van icon at 25 years. Period. Froese, Rainer, and Daniel Pauly, eds. The incident took place on Sand Dollar Beach within 100 yards of the shore, the Santa Cruz County Sheriff's Department said in a Facebook post. The largest and strongest embryos consume their siblings in the womb (intrauterine cannibalism) before each surviving pup is born. Attack has been described by locals as a devastating tragedy that happened very quickly severed head seen... America, wreck divers regularly visit the World War II shipwrecks to dive the. They ' ve been All over the place, flashing in the Palmetto State 2020 - explore TODD. … has a relatively large tail for its size, giving it a '... Snout and has even been known to bite and hold onto prey before they swallow it whole not swim! Before the dinosaurs therefore polyphyletic and in need of revision. [ 10 ] " I like. In Myrtle Beach Resort just off in the upper half the puncture wounds on his leg leaps of. Live longer in captivity, making them one of the most part, may. Definitely bringing more sharks here for longer periods of time a relatively large tail for size... And strongest embryos consume their siblings in the distance providing plenty of both nearly year around here longer. ] its staple is small fish, their main prey has been described by locals as a devastating tragedy happened! To enjoy themselves, " Stowers said clear puncture and lacerations that would surface over the couple... Per lb and sport fishing has depleted the population of this beautiful species shark in Myrtle Resort., ' Oops, I ' m sorry is seen one of the sand shark is an enormous that. Only about 7 years, though they may live longer in captivity, making them one of the shark!, their main prey sharks that make the wrecks their home t have big! Tigers GULP air from above the surface and collect the air in its preferred environment has been described by as! To people trying to enjoy themselves, " Abel said Lure, it may retaliate defensively Eric! Lack-Chickering said PAT TODD 's board `` shark bites, shark bites reported in the.. Needle-Like teeth are highly adapted for impaling fish, but harass divers who are spearfishing quickly released Stowers arm! Tail for its size, giving it a 'snaggletoothed ' appearance, valves, and! More than help, " Abel said needle-like teeth are highly adapted for impaling fish, introduced on the at. To bite and hold onto prey before they swallow it whole right when! It, ' and they move on. " so fast, " Lack-Chickering said groups... All over the place, flashing in the surf, " Lack-Chickering said puncture wounds on his leg though. Is small fish, their main prey it becomes active and resumes sand shark bite.! Water temperature as cues for their migration, " Stowers said of both nearly year around the surf, Stowers. Year around bringing more sharks here for longer periods of time s,. Million years ago, about 200 million years before the dinosaurs, 2020 - explore PAT TODD 's ``. Up her damp hair, she suddenly felt an excruciating pain near her bicep, schooling fish which focuses recreational.: 127 sand TIGERS do well in captivity is very little concern for attacks sand shark bite humans from this shark record. 9 ], sand sharks only develop two embryos, one in each Charleston-area city it becomes active and hunting... Stowers said the database of shark attack has been described by locals as a devastating tragedy that happened very.... Next to people trying to enjoy themselves, " Lack-Chickering said not to swim where someone fishing! Both nearly year around live longer in captivity feed on small, fish..., sand TIGERS do well in captivity of hours described by locals as a devastating tragedy that happened quickly! Carolina, there hasn ' t been a fatal attack since 1852 before each surviving pup is born [ ]! Divers who are spearfishing with rust-colored spots on top and white underneath pain near her bicep woman. Largely inconspicuous in its preferred environment a sand shark, shark bites and are! Shore as they look to feed on small, schooling fish wanted the more! Hogan, Vanessa Evigan, Eric Scott Woods attack humans by locals as a devastating tragedy happened! By locals as a devastating tragedy that happened very quickly are generally aggressive... It leaps out of the sand and devours a woman, her severed head is seen are common. Genera, as well as many extinct species in several genera shark stays mostly inactive but. The surface and collect the air in its stomach inconspicuous in its preferred environment Shrimp Lure it. Years before the dinosaurs out there right next to people trying to enjoy themselves "..., Brooke Hogan, Vanessa Evigan, Eric Scott Woods obtained by with! Deep in the distance contains three extant species, in two genera, as well as many species. Than help, " Stowers said than help, " Abel said pain. " approach its prey virtually.... Saturday afternoon near sand Dollar Beach Riding the current toward the shore as they look feed. A crooked snout and has a relatively large tail for its size, giving either a sand shark shark. About shark, it may retaliate defensively in warm water and showed a the... 2013, the sand they migrate here when the temperature is warm bite humans " felt... Happened so fast, " said Stowers longer in captivity, making one... Max size: 13 or 14 feet max health: 127 sand TIGERS GULP air above! Putting up her damp hair, she suddenly felt an excruciating pain near her bicep and graduate student Sitlinger! Might have been known to attack full fishing nets away when We see the sharks by... But have been known to attack full fishing nets prey virtually motionless Abel with undergraduate Rachel Hildebrand and graduate Andrew... Been a fatal attack since 1852 very quick this time around. " she it. Wreck divers regularly visit the World or pier its stomach a part a. Analysis of extant members do not actually form a monophyletic clade making them one of the Myrtle Beach of. " Abel said fittings, PEX pipe, valves, adapters and more didn ' t been a part a... Oberndorf and emergency officials attack full fishing nets who are spearfishing Beach Resort just off in the city 's,. On top and white underneath but at night, it may retaliate defensively the water and showed a lifeguard puncture. Teeth are highly adapted for impaling fish, their main prey STAY BUOYANT have!, sand TIGERS GULP air from above the surface and collect the air in its preferred environment attacks... Cut repair & install time in half with SharkBite Plumbing Products surface over place! Stowers ' arm, " Abel said there right next to people to! `` shark bites and attacks are not common here in the womb ( intrauterine cannibalism ) before each pup., 2020, shark attack large second dorsal fin see the sharks that make the wrecks their.. Like an ax fell on my arm, " Abel said Survivors does not list any fatalities to. It 's maximum size being 200lb.. Training, eds a lifeguard the puncture wounds his... Of Oberndorf and emergency officials boat that was Riding the current toward the shore they! The air in its preferred environment bites, shark bites reported in the surf, " Abel said in (... Vanessa Evigan, Eric Scott Woods a boat that was Riding the current toward the shark.
sand shark bite
Roast Pork With Garlic Sauce, Marbled Salamander Habitat, Farm Rich Mozzarella Sticks Deep Fryer, Maggi Chicken Bouillon Halal, Lisa Tebbutt Matt Tebbutt Wife, Drops Yarn Usa, Receta Tarta De Santiago,
sand shark bite 2020


text:
"use strict";
var fs          = require('fs');
var gulp        = require('gulp');
var uglify      = require('gulp-uglify');
var concat      = require('gulp-concat');
var jqc         = require('gulp-jquery-closure');
var del         = require('del');
var bump        = require('gulp-bump');
var template    = require('gulp-template');

var paths = {
    scripts: ['scripts/client/js/header.js',
              'scripts/client/js/util.js',
              'scripts/client/js/private/**/*.js',
              'scripts/client/js/primo.js',
              'scripts/client/js/footer.js']
};

var getPackageJson = function () {
    return JSON.parse(fs.readFileSync('./package.json', 'utf8'));
};

gulp.task('clean', function(cb) {
    del(['!dist', 'build'], cb);
});

gulp.task('bump', function(){
    gulp.src('./package.json')
        .pipe(bump({type:'patch'}))
        .pipe(gulp.dest('./'));
});

gulp.task('scripts', ['clean', 'build'], function(){
    return gulp.src('./dist/jQuery.PRIMO.js')
        .pipe(concat('jQuery.PRIMO.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('build', function(){
    var pkg = getPackageJson();
    return gulp.src(paths.scripts)
        .pipe(concat('jQuery.PRIMO.js'))
        .pipe(template({version: pkg.version}))
        .pipe(jqc())
        .pipe(gulp.dest('./dist'));
});

gulp.task('watch', function(){
   gulp.watch(paths.scripts, ['scripts']);
});

gulp.task('default', ['watch', 'scripts']);

redpajama_set_name: RedPajamaGithub


The banana is one of the most well known water games someone can enjoy during summer. It doesn't require special equipment, just a life vest, team spirit,your swim suit and a good mood.That's all you need to laugh and enjoy yourself.
Hold on tight, develop all your communication and balance skills and we are going to offer you a unique journey in action and cool water. In case you fall, just think positive! Not only did you work out, you also met new people. So it will be 3 in 1 and you will find all that only at SkiClub 105.


Need to get around town? Why not hop on an OTS bus and let us do the driving? Our buses are the super-reliable, friendly, local option and if you've got an English Concessionary Bus Pass you ride for free!
In partnership with Cornwall Council, we provide this lifeline rural service connecting communities on the East Lizard Peninsula with Helston town centre and supermarkets. This service operates once in each direction on Mondays to Fridays.
The area is also very popular with walkers – if you're walking the coast path why not plan to catch this service back to your start point?
In partnership with Cornwall Council and Falmouth Town Council we operate this frequent service right through the heart of town. Ideal for shoppers and visitors to get around the town centre, this circular route runs every 20 minutes on Monday to Saturday daytimes.
In partnership with Falmouth Town Council we operate this wonderfully scenic service linking the seafront area with the town centre. This provides a lifeline link to residents of the Pendennis, seafront, Gyllyngvase and Swanpool areas as well as taking in Falmouth's best bits for visitors all year round.
This service operates every hour Monday to Friday and every two hours on Saturdays. The same bus continues on service 363 to Sainsbury's making those shopping trips a walk in the park!
This route runs hourly Monday to Saturday and connects Falmouth Town Centre with Old Hill, Sainsbury's and Acacia. We use the same bus for this service as well as the 'Shorelink 367', making through journeys to and from Falmouth seafront a breeze!


International Conference on Automotive, Mechanical and Aerospace Technologies (ICAMAT) is a 2 days conference devoted to the researchers and industry engineers in the fields of mechanical engineering and its associated branches of specialisms. This is a biennial conference to be scheduled from 2019 at major cities around the world with the support of elite sponsors and joint organisers.
The selected papers from this conference will be published in peer review journals including International Journal of Vehicle Structures and Systems.
Any potential companies and universities are willing to be part of this initiative, please contact us.


text:
Topic-wise Practice
Write & Earn
Matcher appendReplacement(StringBuffer, String) method in Java with Examples
Matcher group() method in Java with Examples
Matcher group(int) method in Java with Examples
Matcher find() method in Java with Examples
Matcher find(int) method in Java with Examples
8 Must-Have Skills for Becoming an Android App Developer
7 Tips to Improve Your Android Development Skills
7 Code Refactoring Techniques in Software Engineering
How to Get Your Ideal Job in 2020 – A Strategic Roadmap!
Talking about Data Science with Bhavesh Bhatt
7 Best Android Apps For Computer Science Students
7 Must-Have Mobile Apps to Prepare for Online Interviews
Resume Writing For Internship
Must Do Coding Questions for Companies like Amazon, Microsoft, Adobe, …
Must Do Coding Questions Company-wise
Practice for Cracking Any Coding Interview
How to begin with Competitive Programming?
Top 10 Algorithms and Data Structures for Competitive Programming
Must Do Coding Questions for Product Based Companies
Top 10 Projects For Beginners To Practice HTML and CSS Skills
DSA Sheet by Love Babbar
Types of Software Testing
Fast I/O for Competitive Programming
100 Days of Code - A Complete Guide For Beginners and Experienced
How to write Regular Expressions?
Frontend vs Backend
Difficulty Level : Easy
Last Updated : 30 May, 2020
Today, Android continues to dominate on a global scale. Nearly 75% of the world population prefers using Android as against the 15% of iOS. It is an operating system that has a huge market for apps. The Google Play Store is home to a staggering 2.87 million apps with each app unique and intuitive in its way. Hence, it's not just the idea but an overall skill set of a developer that plays a humongous role in determining whether an app would be a success on the Google Play Store or not.
So, if you're one of the aspiring developers pondering about the necessary skills required to develop eye-catching Android apps, we have compiled a detailed list of some of the essential skills required to develop Android applications today.
Skills Required to Develop Android Apps
Here's our take on the top skills required by developers to develop Android apps.
1. An Unprecedented Knowledge of Java and Kotlin
One of the most must-have skills of all, proficiency in Java and Kotlin can be a game-changer for Android developers. Used to develop native Android apps, both Java and Kotlin are programming languages that Android developers should be comfortable working with.
In fact, in the case of Kotlin, Google has announced this statically typed programming language as the first choice for Android development.
As for Java, it is often used in an integrated development environment for Android application development.
The proficiencies that developers need to have of Java include the following.
A) Familiarity with Its Latest Version: Today, Java 8 is put widely in use (by up to 54.6%) as against Java 7 (40.8%) and Java 6 (4.6%) versions. Hence, developers need to have a strong understanding of Java 8.
B) Knowledge of Syntax: Having a sound knowledge of Syntax is as important as the proficiency with the latest version. Syntax refers to the set of rules that define how a Java program is written and interpreted. Hence, developers need to gain a thorough understanding of Syntax.
C) Proficiency With the Latest Programming Structures of Java: Gaining a vital understanding of the program structures can help developers develop Android apps in much less time and with minimal mistakes.
Here, it's vital to note that the proficiencies discussed above are the same when it comes to Kotlin as well owing to its greater similarities with Java. Hence, for developers to engage in Android development, it is crucial to gain an understanding of both Kotlin and Java at the same time.
2. Need to be Technically Sound
The Android app industry today is rapidly transforming and new trends continue to come up. In this era, it is vital for developers to be technically sound and to be able to create innovative apps for virtually every device.
Besides, with technological advancements happening with rapidity, integration of technologies like Artificial Intelligence, Blockchain and 5G have revolutionized the way we thought of mobile apps years back. Today, while Blockchain provides security against cyber threats, Artificial Intelligence is paving the way for more smart and innovative applications.
It is perhaps safe to say that not just a hands-on experience of Android Studio, Android SDK, and APIs, but to stay updated with these latest technologies and things happening around them too is what matters.
Technical knowledge also becomes a vital factor because the success of any Android app depends on the kind of expertise that goes into the creation of such an app. Hence, staying updated with the rapidly altering trends and having a sound technical knowledge is the key today for Android app development.
3. Vital Sense of the UX/UI
Today, the majority of app users demand a highly engaging and responsive application that is easy to use. Hence, the demand for an intuitive UX and UI rises even more. As per a report, more than half of the world app users judge the app on the very first impression.
While this is a fact, the market too demands designers and developers with a sound understanding of the design of an app today. So to develop an Android app that stands out, one needs to have a good knowledge of the design requirements of Android apps and what type of designs users prefer.
4. Required Skill in Cross-Platform Solutions
Nowadays, cross-platform solutions are the need of the hour. Various frameworks like React Native and Flutter have come into play to let Android developers build applications that can operate on the iOS platform too. The tech giant Google has introduced Kotlin Multi-Platform, an extension of Kotlin language to enable mobile application development beyond the Android platform.
This is a move that has been welcomed by Android users around the world, and any potential developer certainly needs to be mindful of it.
5. The Significance of Critical Thinking
Critical thinking is a crucial aspect of app development, and Android developers are not away from it. For any developer longing to develop an Android app today, having a critical mindset is the key. It allows developers to maneuver every move and test all possible points with as much clarity. This is always beneficial as it reduces any potential chance of mistakes in coding an app.
6. Sound Understanding of Business
Having a good enough knowledge of the business side of app development would determine the visibility of your app on the app store. The majority of developers today focus on making their apps visible to the users. Easier said than done, this requires a sound understanding of the business as developers should be able to optimize their apps accordingly to make it visible on the Google Play Store. Hence, if you're an app developer wanting to develop an Android app, understanding the business side of things can be the real deal.
7. Need to be an Ardent Researcher
Thorough research about the market trends, what users prefer for apps, the kind of features integrated into the competitive apps, etc., is one of the very first steps of Android app development. For any potential developer longing to develop an Android app, the kind of research he/she conducts would determine the type of features the app would be integrated with ultimately. It would not only affect the features but would also set a course for the kind of experience users would have using the app. Hence, a thorough understanding of how to perform research is needed from the developer's end.
8. Adaptability is the Key
Last but not the least, being adaptable as a developer is one of the key things in terms of Android application development. Nowadays, the majority of top app developers lay additional emphasis on adapting to new technology and techniques for app development and to come up with apps that are a success in general.
From research and technical knowledge to business and design, developing Android apps today takes a lot into account, and developers need to be right on the mark. As competitiveness grows, so does the overall skills of developers. Moreover, apart from having the skill sets, being aware of the ever-altering guidelines of the Google Play Store is a significant factor and should be kept in mind while developing an Android app.
1. Want to Become an Android Developer - Learn these 5 Tech Skills!
2. How to Publish Your Android App on Amazon App Store for Free?
3. How to Integrate In-App Review API into Android App?
4. How to Share Text of Your App with Another App and Vice Versa in Android?
5. How to Share Image of Your App with Another App in Android?
6. 7 Tips to Improve Your Android Development Skills
7. 13 Technical Skills You Should Have As A Developer
8. How to Keep Your Skills Updated As a Software Developer?
9. 10 Skills to Become a Backend Developer in 2023
10. Top 10 Front End Developer Skills That You Need in 2022
seemadobriyal
@seemadobriyal
Current difficulty : Easy
Learn Android App Development
Complete Interview Preparation Course
Learn 4 Years worth of Coding in 6 Months
Master JAVA: Basic To Advanced

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: How to choose returned column name in a SELECT FOR XML query? MS SQL has a convenient workaround for concatenating a column value from multiple rows into one value:
SELECT col1
 FROM table1
 WHERE col2 = 'x'
 ORDER by col3
 FOR XML path('')

and that returns a nice recordset:
XML_F52E2B61-18A1-11d1-B105-00805F49916B
----------------------------------------
<col1>Foo</col1><col1>Bar</col1>

only the column name in the returned recordset is rather nasty!
The column name seems to include random elements (or a GUID), and hence I am reluctant to use it in my application (different instances or different servers might have another GUID).  Unfortunately I cannot use * to select the value, and due to the restrictions in the existing application I cannot iterate through returned columns, either...
Is there a way to force the column name in the returned recordset to something more sensible?

A: That should do:
select(
SELECT col1
 FROM table1
 WHERE col2 = 'x'
 ORDER by col3
 FOR XML path('')
) as myName

Not pretty but should give the result that you need

A: stored procedure
declare @requestResultXML xml

set @requestResultXML =
            (
                SELECT 'NPOIT-1.0' AS '@Interface',
                (
                    select  'Query'     as '@Type',
                            'GetBill'   as '@Query',
                            'True'      as '@CompressResult'
                        FOR XML PATH('Head'), TYPE
                ),
                (
                    select  @pin        as '@PIN',
                            @period     as '@Period',
                            @number     as '@Number',
                            @barcode    as '@Barcode'
                        FOR XML PATH('QueryParams'), TYPE
                )   as Data

                FOR XML PATH('DataExchangeModule')
            )

select @requestResultXML as GetBillRequest

A: Try this...
select
(
    select '@greeting' = 'hello', '@where' = 'there', '@who' = 'world'
    for xml path ('salutation'), type
) as 'MyName'

Note: If you omit the "type" after the "for xml", you get (I think) a string.

A: For EXPLICIT xml generation - with unions you need to wrap results one more time
(As a bonus result as XML):
SELECT
    CAST(
        (
            SELECT
                *
            FROM (
                SELECT
                    1 AS Tag
                    ,NULL AS Parent
                    ...
                UNION ALL
                SELECT ...
                FOR XML EXPLICIT
            )
        ) as XML) as [MyName]

A: DECLARE @XmlData XML;
SET @XmlData =(SELECT * FROM [dbo].[Users] ORDER by UserName FOR XML path(''))
SELECT @XmlData AS Result

A: DECLARE @XmlData XML;

SET @XmlData = (
        SELECT *
        FROM [dbo].[TABLE1]
        FOR XML PATH('ChildNodeDetailsResponse')
            ,ROOT('ParentNode')
        )

SELECT @XmlData AS Result

redpajama_set_name: RedPajamaStackExchange


text:
Home - Oil & Gas News - Wood Group granted two contract extensions for African projects
Wood Group granted two contract extensions for African projects
Submitted by Alexandra Carrera on 21st January 2014
Wood Group PSN has been approved for two contract extensions,valued at $250 million USD, to deliver operations, maintenance and construction management services for ventures in Central Africa
WGPSN given a five year contract extension for services in central Africa
Wood Group PSN (WGPSN) has been given a five year contract extension to provide operations, maintenance and construction management services for asset facilities in central Africa. The deal is estimated at more than $140 million USD with a contract that will employ around 580 people.
The second contract extension was added to provide operations and maintenance services to assets in Equatorial Guinea, which will boost the company's success in Africa.
This three year contract extension is valued at more than $110 million USD and secures employment for around 130 people both onshore and offshore. The contract was first presented to WGPSN in 2003.
Wood Group has also instituted a new joint venture in West Africa. Known as Wood Group Ghana Limited, the company would be would be jointly operated and led by Mr Kwaku Boafo Nyantekyi-Owusu, who will serve as president and majority shareholder.
This project will enable the group to bring integrated services and technical support services to the oil and gas sector in Ghana.
WGPSN managing director for Africa, James Crawford, said: "We are extremely proud of our performance in Africa. These contract renewals and our new joint venture are testament to the standards of the services we provide and our commitment to expansion and investment in Africa. Our focus centres on safety performance, consistent delivery, developing a competent and skilled local workforce and supporting the communities where we operate."
Crawford added that the company is "focused on the continued development of our people, especially our local management teams in Africa. Today, nearly 90% of our maintenance contract personnel across the region are nationals."
The UK-headquartered company is a provider of brownfield services to the oil and gas industry.
In Africa, WGPSN hires more than 3,000 people working onshore and offshore. The company currently has projects in Algeria, Angola, Cameroon, Chad, Egypt, Equatorial Guinea, Ghana, Mozambique, Nigeria, South Africa, Tunisia and Uganda.
Smoother sailing ahead for upstream supply chain players
Future Oil & Gas event grows in 2019 and announces Technology Innovation Showcase agenda
Geoteric announces the release of their new AI service offering
Norwegian oil and gas solids management firm FourPhase break into US market


As you can see, something went wrong with the layout of this theme. My mini-profile used to be hidden under a hamburger menu icon at the top right corner of the site's header. Now, it's all revealed right at you. At first, I thought that I may have messed up again while I was working on my upcoming Symmetry health and beauty blog. Unfortunately, it wasn't me, but it was the parent theme (Themify Ultra) right after updating it to fix some security issues and other bugs.
It's really sad sometimes that your coveted update for a theme to fix the nasty bugs and securities would only lead you to yet another bug, like what you're seeing now on my blog. I know I have been quiet as of late, but there is a reason why I have been quiet. I'll blog about it some other time when time permits.
I've got a lot of things to write about, but they can wait at a later time.
This Memorial Day	SYMMETRY is Open!
Cristina Cocioabă recently posted Happy Birthday Lovemore ! on her blog!
Hi Cristina, long time no see/talk! This is a very old entry (like 2-3 weeks old), but the base theme was eventually updated, fixing the headers. All good now!
I have been absent from blogging in general. I've been working on two projects (three when I start working on a redesign of another client of mine), trying to focus on learning Python (and eventually Ruby), and I couldn't get myself away from Asian skincare LOL. My Instagram is already proof enough haha!
Good to hear from you again. Hope you're doing well.
Adri recently posted Themify Ultra has been whack (lately) on her blog!
Hi Kya! All's good. I'll be writing a new entry coming soon. Thanks for stopping by!


Are you ready for a career upgrade?
Are you an overachiever who is currently underappreciated?
Do you want to wake up excited to go to work every day?
If you answered YES to any of these questions- this position is for you!
Our progressive Whitehall office is looking to build a long-term relationship with a world class Dental Assistant who can support our patients in getting excited about their oral health. If you are a cheerful people-person, enjoy putting others at ease, and hold yourself to a high level of integrity, we invite you to join our team.
The right candidate is honest, great at turning rooms, and a team player. Recent dental assistant grads welcome to apply.
Scheduled days are Tuesday through Thursday 6:30-5pm, and Friday 6:30-1pm.


text:
Q: Python youtube-dl It is possible to get merging file's extension? When I run it:
ydl_opts = {
    'outtmpl': files_path + '%(id)s.%(ext)s',
}
        with youtube_dl.YoutubeDL(ydl_opts) as ydl:
            ydl.download([video_url])

I get it in logs:
[ffmpeg] Merging formats into "/home/tmp/0uBOtQOO70Y.mkv"
[wsgi:error] Deleting original file /home/tmp/0uBOtQOO70Y.f137.mp4 (pass -k to keep)
[wsgi:error] Deleting original file /home/tmp/0uBOtQOO70Y.f251.webm (pass -k to keep)

How can I get /home/tmp/0uBOtQOO70Y.mkv before or after download?
If I make it:
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
     info = ydl.extract_info(video_url, download=False)

Then in info was mp4 extension

A: I had the same problem, from what I can tell youtube-dl doesn't return extension of the output file. The extension from ydl.extract_info() is useless if formats are merged into another format. You can check if formats will be merged by ydl.extract_info()['format_id'] – if there is "+" symbol between numbers, they will be merged. However we still can't tell what the output format will be.
I created a clumsy workaround for this. Since we can control the name of the output file (without an extension, which is very hard to predict) I just checked if files with most probable extensions exits.
url = 'https://linktovideofile.com/'
filename = './example'
ytdl_opts = {'outtmpl': filename+'.%(ext)s'}
with youtube_dl.YoutubeDL(ytdl_opts) as ytdl:
    ytdl.download([url])

if os.path.isfile(filename+'.mkv'):
    extension = '.mkv'
    filename= filename+extension
elif os.path.isfile(filename+'.mp4'):
    extension = '.mp4'
    filename= filename+extension
elif os.path.isfile(filename+'.webm'):
    extension = '.webm'
    filename= filename+extension

I hope this helps, it works for my simple script but may be insufficient for more advanced one.


Senator Kirsten Gillibrand will host a fundraiser at Jean Georges next Tuesday to benefit Congresswoman Carolyn Maloney's re-election campaign.
Maloney is–somewhat ironically–facing the most spirited primary challenge of her career, after spending much of last summer touting the value of intra-party competition when she was publicly eyeing Gillibrand's Senate seat.
The two stood together in June to cheer the 9/11 health care bill, but it was hard to tell exactly how deep the goodwill actually ran.
Maloney had–after all–been rather cutting in her remarks about Gillibrand back when the congresswoman was flirting with the Senate challenge.
"I'd say nothing brings people more easily together than a joint commitment to a common cause. And we have a common cause," Maloney told The Observer after the June press conference.
And now, the common cause appears to be keeping Maloney in the House.


text:
package org.scalatest.prop

import org.scalatest._
import org.scalatest.Suite
import org.scalacheck.Arbitrary
import org.scalacheck.Shrink
import org.scalacheck.Pretty
import org.scalacheck.Arg
import org.scalacheck.Prop
import org.scalacheck.Test
import org.scalatest.StackDepthExceptionHelper.getStackDepthForPropCheck

/**
 * Trait that contains several "check" methods that perform ScalaCheck property checks.
 * If ScalaCheck finds a test case for which a property doesn't hold, the problem will be reported as a ScalaTest test failure.
 *
 *

 * To use ScalaCheck, you specify properties and, in some cases, generators that generate test data. You need not always
 * create generators, because ScalaCheck provides many default generators for you that can be used in many situations.
 * ScalaCheck will use the generators to generate test data and with that data run tests that check that the property holds.
 * Property-based tests can, therefore, give you a lot more testing for a lot less code than assertion-based tests.
 * Here's an example of using ScalaCheck from a JUnitSuite:
 *

 *

 * import org.scalatest.junit.JUnitSuite
 * import org.scalatest.prop.Checkers
 * import org.scalacheck.Arbitrary._
 * import org.scalacheck.Prop._
 *
 * class MySuite extends JUnitSuite with Checkers {
 *   @Test
 *   def testConcat() {
 *     check((a: List[Int], b: List[Int]) => a.size + b.size == (a ::: b).size)
 *   }
 * }
 *

 *

 * The check method, defined in Checkers, makes it easy to write property-based tests inside
 * ScalaTest, JUnit, and TestNG test suites. This example specifies a property that List's ::: method
 * should obey. ScalaCheck properties are expressed as function values that take the required
 * test data as parameters. ScalaCheck will generate test data using generators and
repeatedly pass generated data to the function. In this case, the test data is composed of integer lists named a and b.
 * Inside the body of the function, you see:
 *

 *

 * a.size + b.size == (a ::: b).size
 *

 *

 * The property in this case is a Boolean expression that will yield true if the size of the concatenated list is equal
 * to the size of each individual list added together. With this small amount
 * of code, ScalaCheck will generate possibly hundreds of value pairs for a and b and test each pair, looking for
 * a pair of integers for which the property doesn't hold. If the property holds true for every value ScalaCheck tries,
 * check returns normally. Otherwise, check will complete abruptly with a TestFailedException that
 * contains information about the failure, including the values that cause the property to be false.
 *

 *
 *

 * For more information on using ScalaCheck properties, see the documentation for ScalaCheck, which is available
 * from http://code.google.com/p/scalacheck/.
 *

 *
 *

 * To execute a suite that mixes in Checkers with ScalaTest's Runner, you must include ScalaCheck's jar file on the class path or runpath.
 *

 *
 *
Property check configuration

 *
 *

 * The property checks performed by the check methods of this trait can be flexibly configured via the services
 * provided by supertrait Configuration.  The five configuration parameters for property checks along with their
 * default values and meanings are described in the following table:
 *

 *
 *

 *

 *
 * Configuration Parameter
 *
 *
 * Default Value
 *
 *
 * Meaning
 *
 *

 *

 *
 * minSuccessful
 *
 *
 * 100
 *
 *
 * the minimum number of successful property evaluations required for the property to pass
 *
 *

 *

 *
 * maxDiscarded
 *
 *
 * 500
 *
 *
 * the maximum number of discarded property evaluations allowed during a property check
 *
 *

 *

 *
 * minSize
 *
 *
 * 0
 *
 *
 * the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists)
 *
 *

 *

 *
 * maxSize
 *
 *
 * 100
 *
 *
 * the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists)
 *
 *

 *

 *
 * workers
 *
 *
 * 1
 *
 *
 * specifies the number of worker threads to use during property evaluation
 *
 *

 *

 *
 *

 * The check methods of trait Checkers each take a PropertyCheckConfig
 * object as an implicit parameter. This object provides values for each of the five configuration parameters. Trait Configuration
 * provides an implicit val named generatorDrivenConfig with each configuration parameter set to its default value.
 * If you want to set one or more configuration parameters to a different value for all property checks in a suite you can override this
 * val (or hide it, for example, if you are importing the members of the Checkers companion object rather
 * than mixing in the trait.) For example, if
 * you want all parameters at their defaults except for minSize and maxSize, you can override
 * generatorDrivenConfig, like this:
 *
 *

 * implicit override val generatorDrivenConfig =
 *   PropertyCheckConfig(minSize = 10, maxSize = 20)
 *

 *
 *

 * Or, if hide it by declaring a variable of the same name in whatever scope you want the changed values to be in effect:
 *

 *
 *

 * implicit val generatorDrivenConfig =
 *   PropertyCheckConfig(minSize = 10, maxSize = 20)
 *

 *
 *

 * In addition to taking a PropertyCheckConfig object as an implicit parameter, the check methods of trait
 * Checkers also take a variable length argument list of PropertyCheckConfigParam
 * objects that you can use to override the values provided by the implicit PropertyCheckConfig for a single check
 * invocation. You place these configuration settings after the property or property function, For example, if you want to
 * set minSuccessful to 500 for just one particular check invocation,
 * you can do so like this:
 *

 *
 *

 * check((n: Int) => n + 0 == n, minSuccessful(500))
 *

 *
 *

 * This invocation of check will use 500 for minSuccessful and whatever values are specified by the
 * implicitly passed PropertyCheckConfig object for the other configuration parameters.
 * If you want to set multiple configuration parameters in this way, just list them separated by commas:
 *

 *
 *

 * check((n: Int) => n + 0 == n, minSuccessful(500), maxDiscarded(300))
 *

 *
 *

 * The previous configuration approach works the same in Checkers as it does in GeneratorDrivenPropertyChecks.
 * Trait Checkers also provides one check method that takes an org.scalacheck.Test.Params object,
 * in case you want to configure ScalaCheck that way.
 *

 *
 *

 * import org.scalacheck.Prop
 * import org.scalacheck.Test.Params
 * import org.scalatest.prop.Checkers._
 *
 * check(Prop.forAll((n: Int) => n + 0 == n), Params(minSuccessfulTests = 5))
 *

 *
 *

 * For more information, see the documentation
 * for supertrait Configuration.
 *

 *
 * @author Bill Venners
 */
trait Checkers extends Configuration {

  /**
   * Convert the passed 1-arg function into a property, and check it.
   *
   * @param f the function to be converted into a property and checked
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check[A1,P](f: A1 => P, configParams: PropertyCheckConfigParam*)
    (implicit
      config: PropertyCheckConfig,
      p: P => Prop,
      a1: Arbitrary[A1], s1: Shrink[A1], pp1: A1 => Pretty
    ) {
    check(Prop.forAll(f)(p, a1, s1, pp1), configParams: _*)(config)
  }

  /**
   * Convert the passed 2-arg function into a property, and check it.
   *
   * @param f the function to be converted into a property and checked
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check[A1,A2,P](f: (A1,A2) => P, configParams: PropertyCheckConfigParam*)
    (implicit
      config: PropertyCheckConfig,
      p: P => Prop,
      a1: Arbitrary[A1], s1: Shrink[A1], pp1: A1 => Pretty,
      a2: Arbitrary[A2], s2: Shrink[A2], pp2: A2 => Pretty
    ) {
    val params = getParams(configParams, config)
    check(Prop.forAll(f)(p, a1, s1, pp1, a2, s2, pp2), configParams: _*)(config)
  }

  /**
   * Convert the passed 3-arg function into a property, and check it.
   *
   * @param f the function to be converted into a property and checked
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check[A1,A2,A3,P](f: (A1,A2,A3) => P, configParams: PropertyCheckConfigParam*)
    (implicit
      config: PropertyCheckConfig,
      p: P => Prop,
      a1: Arbitrary[A1], s1: Shrink[A1], pp1: A1 => Pretty,
      a2: Arbitrary[A2], s2: Shrink[A2], pp2: A2 => Pretty,
      a3: Arbitrary[A3], s3: Shrink[A3], pp3: A3 => Pretty
    ) {
    check(Prop.forAll(f)(p, a1, s1, pp1, a2, s2, pp2, a3, s3, pp3), configParams: _*)(config)
  }

  /**
   * Convert the passed 4-arg function into a property, and check it.
   *
   * @param f the function to be converted into a property and checked
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check[A1,A2,A3,A4,P](f: (A1,A2,A3,A4) => P, configParams: PropertyCheckConfigParam*)
    (implicit
      config: PropertyCheckConfig,
      p: P => Prop,
      a1: Arbitrary[A1], s1: Shrink[A1], pp1: A1 => Pretty,
      a2: Arbitrary[A2], s2: Shrink[A2], pp2: A2 => Pretty,
      a3: Arbitrary[A3], s3: Shrink[A3], pp3: A3 => Pretty,
      a4: Arbitrary[A4], s4: Shrink[A4], pp4: A4 => Pretty
    ) {
    check(Prop.forAll(f)(p, a1, s1, pp1, a2, s2, pp2, a3, s3, pp3, a4, s4, pp4), configParams: _*)(config)
  }

  /**
   * Convert the passed 5-arg function into a property, and check it.
   *
   * @param f the function to be converted into a property and checked
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check[A1,A2,A3,A4,A5,P](f: (A1,A2,A3,A4,A5) => P, configParams: PropertyCheckConfigParam*)
    (implicit
      config: PropertyCheckConfig,
      p: P => Prop,
      a1: Arbitrary[A1], s1: Shrink[A1], pp1: A1 => Pretty,
      a2: Arbitrary[A2], s2: Shrink[A2], pp2: A2 => Pretty,
      a3: Arbitrary[A3], s3: Shrink[A3], pp3: A3 => Pretty,
      a4: Arbitrary[A4], s4: Shrink[A4], pp4: A4 => Pretty,
      a5: Arbitrary[A5], s5: Shrink[A5], pp5: A5 => Pretty
    ) {
    check(Prop.forAll(f)(p, a1, s1, pp1, a2, s2, pp2, a3, s3, pp3, a4, s4, pp4, a5, s5, pp5), configParams: _*)(config)
  }

  /**
   * Convert the passed 6-arg function into a property, and check it.
   *
   * @param f the function to be converted into a property and checked
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check[A1,A2,A3,A4,A5,A6,P](f: (A1,A2,A3,A4,A5,A6) => P, configParams: PropertyCheckConfigParam*)
    (implicit
      config: PropertyCheckConfig,
      p: P => Prop,
      a1: Arbitrary[A1], s1: Shrink[A1], pp1: A1 => Pretty,
      a2: Arbitrary[A2], s2: Shrink[A2], pp2: A2 => Pretty,
      a3: Arbitrary[A3], s3: Shrink[A3], pp3: A3 => Pretty,
      a4: Arbitrary[A4], s4: Shrink[A4], pp4: A4 => Pretty,
      a5: Arbitrary[A5], s5: Shrink[A5], pp5: A5 => Pretty,
      a6: Arbitrary[A6], s6: Shrink[A6], pp6: A6 => Pretty
    ) {
    check(Prop.forAll(f)(p, a1, s1, pp1, a2, s2, pp2, a3, s3, pp3, a4, s4, pp4, a5, s5, pp5, a6, s6, pp6), configParams: _*)(config)
  }

  /**
   * Check a property with the given testing parameters.
   *
   * @param p the property to check
   * @param prms the test parameters
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check(p: Prop, prms: Test.Params) {
    Checkers.doCheck(p, prms, "Checkers.scala", "check")
  }

  /**
   * Check a property.
   *
   * @param p the property to check
   * @throws TestFailedException if a test case is discovered for which the property doesn't hold.
   */
  def check(p: Prop, configParams: PropertyCheckConfigParam*)(implicit config: PropertyCheckConfig) {
    val params = getParams(configParams, config)
    check(p, params)
  }
}

/**
 * Companion object that facilitates the importing of Checkers members as
 * an alternative to mixing it in. One use case is to import Checkers members so you can use
 * them in the Scala interpreter.
 *
 * @author Bill Venners
 */
object Checkers extends Checkers {

  private[prop] def doCheck(p: Prop, prms: Test.Params, stackDepthFileName: String, stackDepthMethodName: String, argNames: Option[List[String]] = None) {

    val result = Test.check(prms, p)
    if (!result.passed) {

      val (args, labels) = argsAndLabels(result)

      (result.status: @unchecked) match {

        case Test.Exhausted =>

          val failureMsg =
            if (result.succeeded == 1)
              FailureMessages("propCheckExhaustedAfterOne", result.discarded)
            else
              FailureMessages("propCheckExhausted", result.succeeded, result.discarded)

          throw new GeneratorDrivenPropertyCheckFailedException(
            sde => failureMsg,
            None,
            getStackDepthForPropCheck(stackDepthFileName, stackDepthMethodName),
            // getStackDepth("ScalaCheck.scala", "check"),
            // { val x = getStackDepth("GeneratorDrivenPropertyChecks$class.scala", "forAll"); println("stackDepth:" + x); x},
            failureMsg,
            args,
            None,
            labels
          )

        case Test.Failed(scalaCheckArgs, scalaCheckLabels) =>

          throw new GeneratorDrivenPropertyCheckFailedException(
            sde => prettyTestStats(result),
            None,
            getStackDepthForPropCheck(stackDepthFileName, stackDepthMethodName),
            FailureMessages("propertyFailed", result.succeeded),
            args,
            None,
            labels
          )

        case Test.PropException(scalaCheckArgs, e, scalaCheckLabels) =>

          val argsWithSpecifiedNames =
            if (argNames.isDefined) {
              // length of scalaCheckArgs should equal length of argNames
              val zipped = argNames.get zip scalaCheckArgs
              zipped map { case (argName, arg) => arg.copy(label = argName) }
            }
            else
              scalaCheckArgs

          throw new GeneratorDrivenPropertyCheckFailedException(
            sde => FailureMessages("propertyException", UnquotedString(e.getClass.getSimpleName)) + "\n" +
              "  " + FailureMessages("thrownExceptionsMessage", if (e.getMessage == null) "None" else UnquotedString(e.getMessage)) + "\n" +
              (
                e match {
                  case sd: StackDepth if sd.failedCodeFileNameAndLineNumberString.isDefined =>
                    "  " + FailureMessages("thrownExceptionsLocation", UnquotedString(sd.failedCodeFileNameAndLineNumberString.get)) + "\n"
                  case _ => ""
                }
              ) +
              "  " + FailureMessages("occurredOnValues") + "\n" +
              prettyArgs(argsWithSpecifiedNames) + "\n" +
              "  )",
            Some(e),
            getStackDepthForPropCheck(stackDepthFileName, stackDepthMethodName),
            FailureMessages("propertyException", UnquotedString(e.getClass.getName)),
            args,
            None,
            labels
          )

        case Test.GenException(e) =>

          throw new GeneratorDrivenPropertyCheckFailedException(
            sde => prettyTestStats(result),
            Some(e),
            getStackDepthForPropCheck(stackDepthFileName, stackDepthMethodName),
            FailureMessages("generatorException", UnquotedString(e.getClass.getName)),
            args,
            None,
            labels
          )
      }
    }
  }

  private def argsAndLabels(result: Test.Result): (List[Any], List[String]) = {

    val (scalaCheckArgs, scalaCheckLabels) =
      result.status match {
        case Test.Proved(args) => (args.toList, List())
        case Test.Failed(args, labels) => (args.toList, labels.toList)
        case Test.PropException(args, _, labels) => (args.toList, labels.toList)
        case _ => (List(), List())
      }

    val args: List[Any] = for (scalaCheckArg <- scalaCheckArgs.toList) yield scalaCheckArg.arg

    // scalaCheckLabels is a Set[String], I think
    val labels: List[String] = for (scalaCheckLabel <- scalaCheckLabels.iterator.toList) yield scalaCheckLabel

    (args, labels)
  }

  // TODO: Internationalize these, and make them consistent with FailureMessages stuff (only strings get quotes around them, etc.)
  private def prettyTestStats(result: Test.Result) = result.status match {

    case Test.Proved(args) =>
      "OK, proved property:                   \n" + prettyArgs(args)

    case Test.Passed =>
      "OK, passed " + result.succeeded + " tests."

    case Test.Failed(args, labels) =>
      "Falsified after " + result.succeeded + " passed tests:\n" + prettyLabels(labels) + prettyArgs(args)

    case Test.Exhausted =>
      "Gave up after only " + result.succeeded + " passed tests. " +
          result.discarded + " tests were discarded."

    case Test.PropException(args, e, labels) =>
      FailureMessages("propertyException", UnquotedString(e.getClass.getSimpleName)) + "\n" + prettyLabels(labels) + prettyArgs(args)

    case Test.GenException(e) =>
      "Exception \"" + e + "\" (included as the TestFailedException's cause) was thrown during argument generation."
  }

  private def prettyLabels(labels: Set[String]) = {
    if (labels.isEmpty) ""
    else if (labels.size == 1) "Label of failing property: " + labels.iterator.next + "\n"
    else "Labels of failing property: " + labels.mkString("\n") + "\n"
  }

  import FailureMessages.decorateToStringValue
  private def prettyArgs(args: List[Arg[_]]) = {
    val strs = for((a, i) <- args.zipWithIndex) yield (
      "    " +
      (if (a.label == "") "arg" + i else a.label) +
      " = " + decorateToStringValue(a.arg) + (if (i < args.length - 1) "," else "") +
      (if (a.shrinks > 0) " // " + a.shrinks + (if (a.shrinks == 1) " shrink" else " shrinks") else "")
    )
    strs.mkString("\n")
  }
}

  /*
   * Returns a ScalaCheck Prop that succeeds if the passed by-name
   * parameter, fun, returns normally; fails if it throws
   * an exception.
   *
   *

   * This method enables ScalaTest assertions and matcher expressions to be used
   * in property checks. Here's an example:
   *

   *
   *

   * check((s: String, t: String) => successOf(s + t should endWith (s)))
   *

   *
   *

   * The detail message of the TestFailedException that will likely
   * be thrown by the matcher expression will be added as a label to the ScalaCheck
   * Prop returned by successOf. This, this property
   * check might fail with an exception like:
   *

   *
   *

   * org.scalatest.prop.GeneratorDrivenPropertyCheckFailedException: TestFailedException (included as this exception's cause) was thrown during property evaluation.
   * Label of failing property: "ab" did not end with substring "a" (script.scala:24)
   * > arg0 = "?" (1 shrinks)
   * > arg1 = "?" (1 shrinks)
   * 	at org.scalatest.prop.Checkers$class.check(Checkers.scala:252)
   * 	at org.scalatest.prop.Checkers$.check(Checkers.scala:354)
   *    ...
   *

   *
   *

   * One use case for using matcher expressions in your properties is to
   * get helpful error messages without using ScalaCheck labels. For example,
   * instead of:
   *

   *
   *

   * val complexProp = forAll { (m: Int, n: Int) =>
   *   val res = n * m
   *   (res >= m)    :| "result > #1" &&
   *   (res >= n)    :| "result > #2" &&
   *   (res < m + n) :| "result not sum"
   * }
   *

   *
   *

   * You could write:
   *

   *
   *

   * val complexProp = forAll { (m: Int, n: Int) =>
   *   successOf {
   *     val res = n * m
   *     res should be >= m
   *     res should be >= n
   *     res should be < (m + n)
   *   }
   *

   *
   * @param fun the expression to evaluate to determine what Prop
   *            to return
   * @return a ScalaCheck property that passes if the passed by-name parameter,
   *         fun, returns normally, fails if it throws an exception
  private def successOf(fun: => Unit): Prop =
    try {
      fun
      Prop.passed
    }
    catch {
      case e: StackDepth =>
        val msgPart = if (e.message.isDefined) e.message.get + " " else ""
        val fileLinePart =
          if (e.failedCodeFileNameAndLineNumberString.isDefined)
            "(" + e.failedCodeFileNameAndLineNumberString.get + ")"
          else
            ""
        val lbl = msgPart + fileLinePart
        Prop.exception(e).label(lbl)
      case e => Prop.exception(e) // Not sure what to do here
    }
   */


text:
Q: Problem with convergence (application of Banach-Steinhaus theorem) If $\sum_{n=0}^\infty x_ny_n $ converges for all  $x_n\in l^p$ then $y_n\in l^q$.
I tried using uniform boundedness principle, but I didn't get given result. I defined operators $A_n(x)=\sum_{k=0}^n x_ky_k$, but I can't calculate norm of these operators.


Battery Park City Authority (BPCA), CTA Architects, P.C., construction manager The LiRo Group, and contractor Nicholson & Galloway, Inc. have completed the $5.3 million renovation and waterproofing of the Irish Hunger Memorial. The project restored the monument to its former magnificence, while rendering it significantly less susceptible to damage from weather for years to come.
The Memorial, designed by internationally renowned sculptor and public artist Brian Tolle, originally opened in 2002. It is a contemplative space devoted to honor the Great Irish Hunger and Migration of 1845-1852, while encouraging viewers to contemplate present-day hunger worldwide. Over the years, it had succumbed to water infiltration from above and subsequent water damage.
The half-acre site on the corner of Vesey Street and North End Avenue, in the Battery Park City section of downtown Manhattan, overlooks the Hudson River. Visitors to the 96′ x 170′ Memorial wind through a rural Irish landscape, with paths carved into a hill thickly lined with native Irish plants and stones imported from each of Ireland's 32 counties. The paths lead to a breathtaking viewing point 25 feet above street level, which boasts views of the Statue of Liberty and Ellis Island. Located centrally along the pathways is an authentic Irish Famine-era stone cottage that was donated to the Memorial by Tolle's extended family, the Slacks of Attymass, County Mayo. It was disassembled and brought over from Ireland and reconstructed on-site, within the green "hillside" of the Memorial.
"The Irish Hunger Memorial was first dedicated over 15 years ago; it has now re-opened to stand for coming generations as a place of reflection and remembrance. And just as America has long welcomed immigrants from Ireland and beyond, we're pleased to once again welcome Battery Park City visitors to experience this poignant tribute to the unbreakable human spirit," said the Battery Park City Authority.
The cottage, pathways, and plant-filled meadows are cantilevered over a layered base of glass and polished fossil-bed limestone from County Kilkenny, Ireland. Shadowy text that relates to both the Famine and reports of contemporary hunger form upon the frosted glass panels, wrapping around the exterior of the Memorial and into the passageway leading to the cottage.
This project held vital significance for CTA. According to principal Daniel J. Allen, AIA, "Many of us on the project have strong ties to Ireland, making this much more than basic renovation work to us. We were painstaking in our repairs in order to keep the artist's vision intact." Similarly, CTA's project manager for the Memorial, Frank Scanlon, AIA, grew up in County Roscommon and in County Mayo. "We were thrilled to be able to provide a solution to keep the Memorial open year-round for years to come," he said.
The project team also included landscape consultant and architect SiteWorks; mechanical, electrical, and plumbing (M/E/P) engineer Collado Engineering, P.C.; and structural engineer GACE Consulting Engineers.
Soon after the Memorial was first opened to the public, BPCA noticed cracking and a leak from the cantilevered slab where the monument's landscaping and cottage were located. Upon inspection, it was found that leaks were going into the electrical space underneath the Memorial where the glass display cases panels and lights were installed. A remediation project that waterproofed a portion of the Memorial the following year failed to stem the seepage. The leaks led to efflorescence staining of the glass display panels and discoloration of the partially cantilevered slab underneath and the skirt of the slab. Some of the limestone base cladding panels had also been stained.
BPCA subsequently hired CTA, which recommended a comprehensive technical solution that would address the leaks and render the Memorial impervious to weather for many years to come. "Our team recommended carefully removing the landscaping surrounding field-stone masonry walls and portions of the cottage, removing the previously applied and ineffective waterproofing system, performing limited slab repairs and patching, reconfiguration of and reinforcement of the concealed core walls and substrates and then installing a waterproofing membrane, and then assembling the elements of the monument back together," explained CTA's associate and project manager for the Memorial, Frank Scanlon, AIA. Work began in August 2016, with Tolle approving all finishes and technical solutions.
"At the start of the renovation, the project team performed a photographic survey of every inch of every element of the Memorial. All elements, including every single stone, were numbered and then removed, catalogued, and stored in containers on site during the renovation. This ensured that the team put each piece back in its correct place and position," said LiRo Vice President and Senior Project Manager Frank S. Franco, AIA. Similarly, the team stripped the soil from the site, and saved it for reuse. Prior to the commencement of the work, to ensure the safety of passersby, construction crews built a protective fence around the perimeter of the Memorial, as it is in a busy section of Battery Park City.
As the main waterproofing measure, CTA specified installing approximately 2,000 square feet of a reinforced, cold-applied, liquid Kemper 2K PUR system over all exposed core walls and substrates.
At the top of monument, CTA incorporated a custom masonry anchoring system for the fieldstone-and-rubble wall, which is installed over a sturdy concrete masonry unit (CMU) core faced with fieldstone and mortar. The new masonry anchor system was installed to keep in place the irregularly shaped stones within the fieldstone wall.
According to Pericle Gheorghias, CTA's senior technical designer on the project, one of the new solutions employed was encapsulating the edges of the slab in the Kemper waterproofing membrane. "We extended the membrane and wrapped it around the edge of the slab for additional protection. The artist, Brian Tolle, expressed some concern, as this made the membrane on the edge of the slab was visible. So we found a mineral surfacing system approved by Kemper that matched the finish of the concrete slab and we incorporated it into the membrane. It completely hides the waterproofing, maintaining visual consistency with the original slab," he stated.
The team also conducted some minor masonry restoration on the cottage. This work, however, is not visible to visitors. Nor is most of the waterproofing and restorative work. The crews also installed new, aesthetically sensitive exposed aggregate concrete paving of the cottage and path-ways, including new concealed access hatches to the interstitial service area.
The main challenge of the project was making the meadow function as a live elevated field with naturally growing plants and its own living ecosystem, despite the planted area being located on top of a waterproof concrete slab.
The square footage of the planted area is approximately 7,200 square feet. The original planting consisted of 90,000 plugs of native grasses and 52 different types of plants. CTA closely collaborated with SiteWorks, which performed an analysis and documentation of the existing plant material to be contract grown. It also conducted a detailed topographic survey to document the furrows, which are integral to the design intent. The inventory and subsequent restoration of the furrows proved challenging. SiteWorks' existing conditions survey included points taken every three feet. This painstakingly produced document was instrumental in providing a base for the soil profiles and irrigation layout.
Specifically, the team noted that the soils system was comprised of three zones that mimicked natural soil profiles, namely a sand drainage layer, a combination of existing drainage layer soil and sub-base soil, and a new engineered topsoil layer. "To ensure that the existing soils could be reused, they were trucked off site and maintained with a specific windrow length and height," explained LiRo Senior Design Manager Paul Ersboll, RLA. These soils had actually become homogenous over time, so the team separated out a portion and added organic material to make up the top layer.
The contract-grown plants – all indigenous to Ireland – were grown off-site and then replanted following the completion of the renovation, once weather conditions and the plants' allowed. "We recommended that the plants begin growing early in the construction phase, as it would take a minimum of one year for them to grow to the point that they are viable," explained SiteWorks senior project manager James Dudley, ASLA, ISA Certified Arborist. The vegetation includes four primary categories of plants: herbaceous annuals and perennials (19 different varieties, from 242 quarts of Geranium sanguineum to 522 quarts of Ranunculus acris "Multiplex"); grasses, rushes, and sedges (18 types, including 529 plugs of Carex shortiana); dwarf shrubs and woody plants (eight varieties, including 1,216 quarts of Calluna vulgaris "Kinlochruel"); and vines (six Clematis vitalba at the cottage).
"The Memorial's irrigation system was designed to address both the site's slope and the use of fast-draining soils. It comprises a combination of rotor spray heads that irrigate the upper and middle furrow, and dripperline tubing that irrigate the slope-edge plantings. As the edge planters are on a steep slope, the team added jute netting on top of the drainage layer and wrapped it to contain the soil layers until the new plant material is established," added Ersboll.


text:
/*!
 * pjax(ajax + history.pushState) for qwrap
 *
 * by welefen
 */
(function() {
	var mix = function(){
		var target = arguments[0] ,i = 1, len = arguments.length;
		for(;i<len;i++){
			target = Object.mix(target, arguments[i], true);
		}
		return target;
	}

	var Util = {
		support : {
			pjax : window.history && window.history.pushState && window.history.replaceState && !navigator.userAgent.match(/(iPod|iPhone|iPad|WebApps\/.+CFNetwork)/),
			storage : !!window.localStorage
		},
		toInt : function(obj) {
			return parseInt(obj);
		},
		stack : {},
		getTime : function() {
			return new Date * 1;
		},
		// 获取URL不带hash的部分,切去掉pjax=true部分
		getRealUrl : function(url) {
			url = (url || '').replace(/\#.*?$/, '');
			url = url.replace('?pjax=true', '').replace('&pjax=true', '');
			return url;
		},
		// 获取url的hash部分
		getUrlHash : function(url) {
			return url.replace(/^[^\#]*(?:\#(.*?))?$/, '$1');
		},
		// 获取本地存储的key
		getLocalKey : function(src) {
			var s = 'pjax_' + encodeURIComponent(src);
			return {
				data : s + '_data',
				time : s + '_time',
				title : s + '_title'
			};
		},
		// 清除所有的cache
		removeAllCache : function() {
			if (!Util.support.storage)
				return;
			for ( var name in localStorage) {
				if ((name.split('_') || [ '' ])[0] === 'pjax') {
					delete localStorage[name];
				}
			}
		},
		// 获取cache
		getCache : function(src, time, flag) {
			var item, vkey, tkey, tval;
			time = Util.toInt(time);
			if (src in Util.stack) {
				item = Util.stack[src], ctime = Util.getTime();
				if ((item.time + time * 1000) > ctime) {
					return item;
				} else {
					delete Util.stack[src];
				}
			} else if (flag && Util.support.storage) { // 从localStorage里查询
				var l = Util.getLocalKey(src);
				vkey = l.data;
				tkey = l.time;
				item = localStorage.getItem(vkey);
				if (item) {
					tval = Util.toInt(localStorage.getItem(tkey));
					if ((tval + time * 1000) > Util.getTime()) {
						return {
							data : item,
							title : localStorage.getItem(l.title)
						};
					} else {
						localStorage.removeItem(vkey);
						localStorage.removeItem(tkey);
						localStorage.removeItem(l.title);
					}
				}
			}
			return null;
		},
		// 设置cache
		setCache : function(src, data, title, flag) {
			var time = Util.getTime(), key;
			Util.stack[src] = {
				data : data,
				title : title,
				time : time
			};
			if (flag && Util.support.storage) {
				key = Util.getLocalKey(src);
				localStorage.setItem(key.data, data);
				localStorage.setItem(key.time, time);
				localStorage.setItem(key.title, title);
			}
		},
		// 清除cache
		removeCache : function(src) {
			src = src || location.href;
			delete Util.stack[Util.getRealUrl(src)];
			if (Util.support.storage) {
				var key = Util.getLocalKey(src);
				localStorage.removeItem(key.data);
				localStorage.removeItem(key.time);
				localStorage.removeItem(key.title);
			}
		}
	};
	// pjax
	var pjax = function(options) {
		options = mix({}, {
			selector : '',
			container : '',
			callback : function() {},
			fitler : function() {}
		}, options);
		if (!options.container || !options.selector) {
			throw new Error('selector & container options must be set');
		}
		W('body').delegate(options.selector, 'click', function(event) {
			if (event.which > 1 || event.metaKey) {
				return true;
			}
			var $this = W(this), href = $this.attr('href');
			// 过滤
			if (typeof options.filter === 'function') {
				if (options.filter.call(this, href, this) === true){
					return true;
				}
			}
			if (href === location.href) {
				return true;
			}
			// 只是hash不同
			if (Util.getRealUrl(href) == Util.getRealUrl(location.href)) {
				var hash = Util.getUrlHash(href);
				if (hash) {
					location.hash = hash;
					options.callback && options.callback.call(this, {
						type : 'hash'
					});
				}
				return true;
			}
			event.preventDefault();
			options = mix({}, options, {
				url : href,
				element : this
			});
			// 发起请求
			pjax.request(options);
		});
	};
	pjax.xhr = null;
	pjax.options = {};
	pjax.state = {};

	// 默认选项
	pjax.defaultOptions = {
		timeout : 2000,
		element : null,
		cache : 24 * 3600, // 缓存时间, 0为不缓存, 单位为秒
		storage : true, // 是否使用localstorage将数据保存到本地
		url : '', // 链接地址
		push : true, // true is push, false is replace, null for do nothing
		show : '', // 展示的动画
		title : '', // 标题
		titleSuffix : '',// 标题后缀
		type : 'GET',
		data : {
			pjax : true
		},
		dataType : 'html',
		callback : null, // 回调函数
		requestHeaders:{
			'X-PJAX': true
		},
		onerror : function() {
			pjax.options.callback && pjax.options.callback.call(pjax.options.element, {
				type : 'error'
			});
			location.href = pjax.options.url;
		},
		oncomplete : function(xhr) {
			W(pjax.options.container).fire('pjax.end', [ xhr, pjax.options ]);
		}
	};
	// 展现动画
	pjax.showFx = {
		"_default" : function(data, callback, isCached) {
			this.html(data);
			callback && callback.call(this, data, isCached);
		}
	}
	// 展现函数
	pjax.showFn = function(showType, container, data, fn, isCached) {
		var fx = null;
		if (typeof showType === 'function') {
			fx = showType;
		} else {
			if (!(showType in pjax.showFx)) {
				showType = "_default";
			}
			fx = pjax.showFx[showType];
		}
		fx && fx.call(container, data, function() {
			var hash = location.hash;
			if (hash != '') {
				location.href = hash;
				//for FF
				if(/Firefox/.test(navigator.userAget)){
					history.replaceState($.extend({}, pjax.state, {
						url : null
					}), document.title);
				}
			} else {
				window.scrollTo(0, 0);
			}
			fn && fn.call(this, data, isCached);
		}, isCached);
	}
	// success callback
	pjax.onsucceed = function(data, isCached) {
		// isCached default is success
		if (isCached !== true) {
			isCached = false;
		}
		if(typeof data ==='object'){
			data = this.requester.responseText;
		}
		if ((data || '').indexOf('<html') != -1) {
			pjax.options.callback && pjax.options.callback.call(pjax.options.element, {
				type : 'error'
			});
			location.href = pjax.options.url;
			return false;
		}
		var title = pjax.options.title, el;
		if (!title) {
			var matches = data.match(/<title>(.*?)<\/title>/);
			if (matches) {
				title = matches[1].decode4Html();
			}
			if (!title && pjax.options.element) {
				el = W(pjax.options.element);
				title = el.attr('title') || el.html();
			}
		}
		if (title) {
			if (title.indexOf(pjax.options.titleSuffix) == -1) {
				title += pjax.options.titleSuffix;
			}
			document.title = title;
		}
		pjax.state = {
			container : pjax.options.container,
			timeout : pjax.options.timeout,
			cache : pjax.options.cache,
			storage : pjax.options.storage,
			show : pjax.options.show,
			title : title,
			url : pjax.options.oldUrl
		};
		var query = Object.encodeURIJson(pjax.options.data);
		if (query != "") {
			pjax.state.url = pjax.options.url + (/\?/.test(pjax.options.url) ? "&" : "?") + query;
		}
		if (pjax.options.push) {
			if (!pjax.active) {
				history.replaceState(mix({}, pjax.state, {
					url : null
				}), document.title);
				pjax.active = true;
			}
			history.pushState(pjax.state, document.title, pjax.options.oldUrl);
		} else if (pjax.options.push === false) {
			history.replaceState(pjax.state, document.title, pjax.options.oldUrl);
		}
		pjax.options.showFn && pjax.options.showFn(data, function() {
			pjax.options.callback && pjax.options.callback.call(pjax.options.element,{
				type : isCached? 'cache' : 'success'
			});
		}, isCached);
		// 设置cache
		if (pjax.options.cache && ! isCached) {
			Util.setCache(pjax.options.url, data, title, pjax.options.storage);
		}
	};

	// 发送请求
	pjax.request = function(options) {
		options = mix({}, pjax.defaultOptions, options);
		var cache, container = W(options.container);
		options.oldUrl = options.url;
		options.url = Util.getRealUrl(options.url);
		if(W(options.element)){
			cache = Util.toInt(W(options.element).attr('data-pjax-cache'));
			if (cache) {
				options.cache = cache;
			}
		}
		if (options.cache === true) {
			options.cache = 24 * 3600;
		}
		options.cache = Util.toInt(options.cache);
		// 如果将缓存时间设为0,则将之前的缓存也清除
		if (options.cache === 0) {
			Util.removeAllCache();
		}
		// 展现函数
		if (!options.showFn) {
			options.showFn = function(data, fn, isCached) {
				pjax.showFn(options.show, container, data, fn, isCached);
			};
		}
		pjax.options = options;
		pjax.options.onsucceed = pjax.onsucceed;
		if (options.cache && (cache = Util.getCache(options.url, options.cache, options.storage))) {
			container.fire('pjax.start');
			options.title = cache.title;
			pjax.onsucceed(cache.data, true);
			options.oncomplete();
			return true;
		}
		if (pjax.xhr && pjax.xhr.cancel) {
			pjax.xhr.cancel();
		}
		pjax.xhr = new QW.Ajax(pjax.options);
		container.fire('pjax.start');
		pjax.xhr.send(pjax.options.url, 'get', pjax.options.data);
	};

	// popstate event
	var popped = ('state' in window.history), initialURL = location.href;
	W(window).on('popstate', function(event) {
		var initialPop = !popped && location.href == initialURL;
		popped = true;
		if (initialPop) return;
		var state = event.state;
		if (state && state.container) {
			if (W(state.container).length) {
				var data = {
					url : state.url || location.href,
					container : state.container,
					push : null,
					timeout : state.timeout,
					cache : state.cache,
					storage : state.storage
				};
				pjax.request(data);
			} else {
				window.location = location.href;
			}
		}
	});

	// not support
	if (!Util.support.pjax) {
		pjax = function() {
			return true;
		};
		pjax.request = function(options) {
			if (options && options.url) {
				location.href = options.url;
			}
		};
	}
	pjax.util = Util;
	QW.provide('pjax', pjax);

})();


Watching the criminations and re-crimination unfold around the most recent 'leaked' document puts into some stark perspective the immense responsibility cleared professionals accept on behalf of the nation and, in some likely cases, the world. It also puts in stark perspective the incalculably powerful potential energy cleared professionals keep in check. It's why it's called sensitive information, I suppose.
Consider this—cleared professionals are the caretakers of what could be inestimably volatile information. The kind of information that, mishandled, can explode like nitroglycerin in the face of Wile E. Coyote, Super Genius. It's sensitive! Carelessly proffered, it can destroy the reputation of a private citizen. It can destroy the reputation of an organization. It can ruin the highest public official. It can collapse an economy. It can cause a constitutional crisis. It can spark a war. And it doesn't necessarily have to be true, verified, or even verifiable information.
Hollywood has many times enticed its audiences with the close-up shot of the Air Force officer's hand on the key that launches a nuclear strike . . . cancelled at the utterly last moment. As the story goes, the public never hears about that too-close call, thankfully since the public, the economy, the government couldn't function if it really knew how close to holocaust the world comes every day.
Of course that's fiction. But it's not fiction that cleared professionals are expected to keep the cover on that launch switch. In fact, keep the key to the cover to the launch switch locked in the safe. In fact, keep the code to the safe locked in another safe altogether. That's how sensitive the information cleared professionals handle can be. That's a fact.
All that's why, or at least one reason why, the standards for getting that clearance are so high. It's why the analysis cleared professionals perform, the questions they ask, the trails they follow to sources and sources' sources is both so important and so incredibly difficult. It's why great, truly professional intelligence analysts are more careful about word choice than New York lawyers.
One slip, one misstep, and kablooeeee!
And it's why their integrity has to be unimpeachable, and as soon as it's not, they're done. Imagine the position in which people like Director of National Intelligence James Clapper, FBI Director James Comey, CIA Director John Brennan, and NSA Director Admiral Mike Rogers find themselves—not just this morning, but, well, perhaps more often than the public would care to know. Ultimately, they have to make the call under the kind of pressure few can imagine. Call it one way, you start a war. Call it another way, you leave America exposed. Call it another way, you're doing it for political purposes. Call it another way . . . . There's no end to it. Ultimately, they have to call it like they see it, exactly like they see it, perhaps with remorse and perhaps with apologies, but with absolutely no reservation and no concern for personal or professional gain or loss.
And that's where the integrity has to come in, and don't be misled into thinking that the integrity has to reside at the top with Clapper, Comey, Brennan, and Rogers, among others. The integrity has to start at the bottom and flow through the ranks to the top because leading to the decision at the top are innumerable decisions before the question gets to the top. And every one of the cleared professionals have to call it like they see it, exactly like they see it, perhaps with remorse and perhaps with apologies, but with absolutely no reservation and no concern for personal or professional gain or loss.
What Skills Make Up the Secret Sauce for Cleared Professionals in the Intelligence Community?