text:
Auburn prepping for Alabama offense unlike any it has seen in recent Iron Bowls
Four things to watch for, a key matchup, by the numbers, a player of the week and a prediction for Saturday's game between the Tigers and Tide.
Auburn prepping for Alabama offense unlike any it has seen in recent Iron Bowls Four things to watch for, a key matchup, by the numbers, a player of the week and a prediction for Saturday's game between the Tigers and Tide. Check out this story on montgomeryadvertiser.com: https://www.montgomeryadvertiser.com/story/sports/college/auburn/2018/11/21/auburn-football-preview-alabama-iron-bowl-tua-tagovailoa-deshun-davis-defense/2077843002/
Josh Vitale, Montgomery Advertiser Published 1:04 p.m. CT Nov. 21, 2018 | Updated 7:07 p.m. CT Nov. 21, 2018
View of the line of scrimmage during the Iron Bowl between Auburn and Alabama on Nov. 25, 2017, in Auburn, Ala.(Photo: Wade Rackley/AU Athletics)
AUBURN — Normally, Auburn players have a 24-hour rule. That's 24 hours to celebrate a win or lament a loss, 24 hours to take note of what went right and correct what went wrong. Then, they're supposed to move onto the next game.
Deshaun Davis didn't break that rule this week; he just changed it. The dust had barely settled after Auburn's blowout 53-0 victory on Saturday before the senior linebacker turned on the film of Alabama.
"It was like 24 minutes," he said. "I kind of jumped into it, man, and I'm excited to play this game Saturday."
There is a lot to prepare for when it comes to this particular Iron Bowl. The No. 1-ranked Crimson Tide play a brand of offense unlike any the Tigers have seen in recent meetings with their cross-state rival.
MORE: Auburn is the last team to beat Alabama. Can it do it again in this year's Iron Bowl?
Nick Saban lifted Alabama to the top of college football's hierarchy with a bruising run game and a consistently dominant defense. The Crimson Tide have both this season — it ranks 18th nationally averaging 5.4 yards per carry on offense and third surrendering just 13.1 points per game on defense.
What the Crimson Tide also has this season, though, is a ruthlessly efficient passing attack. Alabama ranked 62nd nationally in passing yards per game in 2015, 87th in 2016 and 91st in last season. This year, it ranks seventh averaging 328 yards per game despite averaging only 27.9 attempts per game, which ranks 95th.
"In the past, there were times where you knew if you stopped the run, you would be successful," senior Auburn defensive tackle Dontavius Russell said. "But I think they're a little more balanced, and it just presents that much more of a challenge."
Here's a terrifying set of statistics: Alabama ranks 95th nationally in pass attempts per game (27.9), but seventh in passing yards per game (328), second in passing touchdowns (38) and first in yards per pass attempt (11.8).
— Josh Vitale (@JoshVitale) November 21, 2018
The difference, of course, is quarterback Tua Tagovailoa, who has completed 69.2 percent of his passes for 2,865 yards and 31 touchdowns (to just two interceptions) despite spending most fourth quarters watching from the bench.
"He's got a unique skill set and he's very impressive to watch on film," Auburn coach Gus Malzahn said. "You can tell they feel like they can call anything and he'll make it right, and most of the time he does it."
That's what Auburn will be up against Saturday at in Tuscaloosa.
"I think a lot of people fear the logo of Alabama," Davis said. "They go out and they execute at an extremely high level. They dominate their opponent. But sometimes you can see from the first play of the game, some teams are defeated. That's just something that we can't afford to do going in Saturday. I can tell you right now, they don't need any help."
Alabama quarterback Tua Tagovailoa (13) directs from the line in first half action against Mississippi State at Bryant Denny Stadium in Tuscaloosa, Ala., on Saturday November 9, 2018. (Photo: Mickey Welsh)
WHO: Auburn (7-4, 3-4 SEC) at Alabama (11-0, 7-0 SEC)
WHERE: Bryant-Denny Stadium, Tuscaloosa
WHEN: Saturday, 2:30 p.m. CT
LINE: Alabama by 23 1/2
ON THE AIR: TV — CBS. Radio — WLWI 92.3 FM, WMSP 740 AM
TWITTER: @JoshVitale, @_AlexByington, @mgmsports
FOUR-DOWN TERRITORY
1. Tua: Not much else really needs to be said. "He needs no introduction," as Davis put it earlier this week. Statistically, he'll be the best quarterback Auburn has faced this season by a wide margin. Tagovailoa's name isn't at the top of the FBS leaderboards in terms of volume (his 2,865 yards rank 17th), but it is in pretty much everything else — he's eighth in completion percentage (69.2), seventh in touchdowns (31), and first in both yards per attempt (12.1) and quarterback rating (212.2). Auburn's pass defense has allowed the last four SEC quarterbacks it has faced (Tennessee's Jarrett Guarantano, Ole Miss' Jordan Ta'amu, Texas A&M's Kellen Mond and Georgia's Jake Fromm), throw for at least 210 yards and a touchdown while averaging at least 6.9 yards per completion, and Tagovailoa is averaging 277.4 yards and nearly three passing touchdowns per game against conference competition.
2. Committee approach: Like Auburn, Alabama goes into the final week of the regular season without a running back who has rushed for more than 700 yards. But that's not because the Crimson Tide have struggled on the ground — its because it has so many different mouths it can feed. Damien Harris has rushed 108 times for 678 yards and seven scores, Najee Harris 91 times for 639 yards and four scores, and Josh Jacobs 81 times for 384 yards and nine scores. Both Harrises are averaging more than 6.2 yards per carry. Even Tagovailoa is averaging more than 4.5 yards on the ground, and he has four rushing touchdowns on 41 attempts. As a team, Alabama ranks 29th nationally and third in the SEC averaging 213.5 yards per game and has rushed for at least 200 yards seven times in 11 games. Auburn surrenders 142.3 yards per game on average but has given up more than 200 three times over its last five SEC games.
3. Bend but don't break: Auburn's defense has allowed a few of its opponents this season to have good statistical performances through the ground and on the air, as noted above. But despite surrendering a good bit of yards (350.6 per game compared to 319.4 last year), the Tigers have been very stingy when it comes to giving up points. They have a top-10 scoring defense after shutting out Liberty last week — the program's first shutout of an FBS program since 2008 — and are allowing only 16.6 points per game. They're especially stout in the red zone, where they have surrendered just nine touchdowns on 31 drives (that 29 percent touchdown rate ranks second nationally). Auburn has lost four games but has yet to allow any opponent score more than Georgia's 27 points on offense (seven of Tennessee's 30 scored on a defensive touchdown). Continuing that against Alabama would be quite the feat — the Crimson Tide rank third nationally averaging 48.7 points per game on offense and have scored fewer than 39 points just twice (a 29-0 win over LSU and 24-0 win over Mississippi State, two teams the Tigers lost to). Alabama's average margin of victory this season has been 35.6 points.
4. Experience to draw on: Clearly, slowing that offense and competing with No. 1 Alabama will be a tall task for Auburn. No team has done it this year. But the Tigers do have experience they can lean on. The Crimson Tide entered last year's Iron Bowl undefeated, ranked No. 1 in the College Football Playoff Rankings and favored to win the game, and Auburn pulled off a 26-14 upset to win the SEC West. A lot of the players that helped the Tigers win that game — Davis, Russell, quarterback Jarrett Stidham, wide receiver Ryan Davis — are still key cogs for this year's Auburn team. That aftermath of that victory at Jordan-Hare will serve as motivation for Auburn, too — Alabama lost that game by double digits and did not play in the SEC Championship Game, but still earned a spot in the playoff and went on to win the national championship. The Tigers have not been as good overall this season and have no hope of achieving those heights this season, but they could put a dent in their rival's hopes with another upset win.
Alabama wide receiver Jaylen Waddle (17) and Alabama wide receiver Jerry Jeudy (4) celebrate Waddle's touchdown against The Citadel in second half action at Bryant-Denny Stadium in Tuscaloosa, Ala., on Saturday November 17, 2018. (Photo: Mickey Welsh)
KEY MATCHUP
Auburn's defensive backs vs. Alabama's wide receivers
Tagovailoa has been virtually unstoppable passing the ball this season, and a lot of the credit for his success needs to go to a wide receiving corps brimming with explosive playmakers. Each of Alabama's top five receivers — Jerry Jeudy, Jaylen Waddle, Henry Ruggs III, Irv Smith Jr. and DeVonta Smith — are averaging at least 18 yards per catch and have scored at least four touchdowns. No team in the country has more passing plays of 50 or more yards than the Crimson Tide's 14. That puts a lot of pressure on the Auburn secondary, which has been burned at times this season. The Tigers allow only 6.5 yards per attempt (34th nationally) and have 12 interceptions (22nd), but they have surrendered 19 passes of 30 or more yards this season and have let two quarterbacks (Guarantano and Ta'amu) top 300 yards passing. Auburn's secondary will need to keep the top on the coverage to avoid having those receivers break open the game.
10: Seasons that have passed since Auburn last won two consecutive Iron Bowls. The Tigers won six straight from 2002-07 but have won just three since — 2010, 2013 and 2017.
11.3: Miles that separate Auburn wide receiver Seth Williams' high school, named after Paul W. Bryant, from Bryant-Denny Stadium. Williams will be playing in his backyard on Saturday, though he insists it's "just another game."
11.4: Williams' yard per target in the passing game this season, which leads Auburn's receiving corps. The true freshman has caught 24 of 42 targets for 479 yards and five touchdowns and is coming off the first 100-yard game of his career against Liberty.
15: Tackles for loss Alabama defensive lineman Quinnen Williams has this season, which ranks second in the SEC. "He's got a gift," Malzahn said.
90: Rushing yards on 24 carries that Auburn running back JaTarvious has in three games since the bye week. Malzahn said he's "healthy and ready to go" this week after dealing with an ankle injury during the last month.
Alabama running back Josh Jacobs (8) is brought down by Auburn defensive lineman Nick Coe (91) during the Iron Bowl on Nov. 25, 2017, in Auburn, Ala. (Photo: John David Mercer-USA TODAY Spor)
Nick Coe — BUCK, So., 6-5, 282
After missing last week's win over Liberty with a right wrist injury suffered at Georgia, Auburn's top pass-rusher has been cleared to play against Alabama (albeit with what Malzahn described as "some kind of apparatus" on his right arm). That's big news for the Tigers, who will need all the help they can muster to get into the backfield at Bryant-Denny Stadium. Alabama has allowed only 48 tackles for loss and 10 sacks this season, totals which rank as the 13th- and 10th-fewest in the country, respectively. Coe has been Auburn's biggest threat from that Buck spot, as he leads the team with 13 ½ tackles for loss and seven sacks despite playing in just 10 of the team's 11 games.
It is a rivalry game, so anything could happen Saturday. The history of the Iron Bowl has shown that. But this Alabama team has looked unbeatable all season. Its most competitive win was a 24-0 decision over Mississippi State two weeks ago, and that came against a team Auburn lost to 23-9. The Tigers have never quit through their struggles this season, and their defense is good enough that they shouldn't get run off the field, but the offense simply hasn't shown that it is good enough to keep pace with the Tagovailoa-led Crimson Tide attack. Auburn hasn't won in Tuscaloosa since Cam Newton was quarterback in 2010, and that doesn't change Saturday. Alabama 34, Auburn 10.
Lowndes throwdown always big for Calhoun, Central
#4 Auburn Tigers vs. Florida Gators basketball: Video Highlights, score
Who Alabama football has coming back and what it could mean in 2020
Biggest in school history? Park Crossing takes down Carver
3 takeaways: Auburn suffers second straight loss at Florida
Auburn safety duo of Monday, Sherwood has chance to be great


As a mother of four, I realise that I will never have the entire house tidy at the same time. I gave up on that a child ago. While I wiz around upstairs, I hear the familiar sound coming from downstairs, of the Lego box being tipped out and the dog chewing on some poor helpless barbie, who had been left on the floor. Meanwhile there's a mound of clean washing on my bed that will get pushed onto the floor when it's time for bed, only to be chucked back on in the morning.
8.40am! Time for school! I run out the door, shutting the mess behind.
But today I started a new venture. To Keep Tairua Tidy. I got rid of the kids to school and Preschool, then parked my car just out of Tairua. Geared with my fluro vest, gloves and black sacks I headed off for a walk. Im such a geek. Not quite sure why I'm borthering. Surely there's someone I can call to report the state of our highway? Anyways, off I go, looking like I'm serving Community Service for some crime I've committed.
I'm just tired of driving past the countless beer bottles, energy drink cans, Mc Donald wrappers and cigarette packets. New Zealand's Coast is amazing. We have thousands of tourists that visit every year. They probably contribute to this mess too. But it's our back yard. We need to take Ownership of it and become its guardians. We are capable of doing it. If everyone pitches in its just a small job. I'll be back out there in a couple if days to finish the stretch of highway I started. I walked for 1 1/2hrs and collected 4 bags of rubbish. I didn't think there would be so much, so ran out of bags!
To dump the bags at the local tip cost me $3.20. That's 80c a bag.


text:
Home Chevron icon It indicates an expandable section or menu, or sometimes previous / next navigation options. Military & Defense
North Korea just showed it had a missile that can hit the US — here's what happens next
Alex Lockie
North Korean leader Kim Jong Un inspects the defence detachment on Jangjae Islet and the Hero Defence Detachment on Mu Islet located in the southernmost part of the waters off the southwest front, in this undated photo released by North Korea's Korean Central News Agency (KCNA) on May 5, 2017.
KCNA/ via REUTERS
North Korea just tested a nuclear-capable missile that experts say can hit Alaska.
The US has no practical way to counter North Korea's nuclear and missile development.
The US will just have to live with the fact that North Korean nukes can range its major cities, just like South Korea and Japan already do.
As Americans slept through the first few hours of July 4, Kim Jong Un personally observed the culmination of a years-long goal — the testing of a missile that he can use to nuke the US mainland.
Flying nearly 1,800 miles high above earth, the missile flew for over 35 minutes before crashing down into the sea, according to David Wright of the Union of Concerned Scientists. North Korean media stated that it shot the missile at a high arc so as not to hit any other countries.
Wright calculated that at a normal trajectory, the missile could fly 4,160 miles, or as far as Alaska from North Korea. Kim Jong Un has long threatened the US with nuclear attacks, and done everything in his power to demonstrate the capability to launch such an attack. While a single successful ICBM test doesn't mean North Korea has full combat capability, it could indicate that it's just a few months away.
Meanwhile, the US has taken every step short of military strikes to stop North Korea, saying that the era of "strategic patience" had ended and that "all options," including military strikes, were on the table for reeling back the rogue state.
In the aftermath of the test, Trump tweeted that China may try a "heavy move" against the Kim regime while hinting that South Korea and Japan could retaliate.
But North Korea's independence day missile launch wasn't a message to China, South Korea, Japan, or anyone besides the US. Kim Jong Un has told the US it's at risk of nuclear attack, so what changes now?
FILE PHOTO - North Korean leader Kim Jong Un inspects the long-range strategic ballistic rocket Hwasong-12 (Mars-12)
The short answer is nothing. Nothing will happen. The US has lived under threat of nuclear attack for over 50 years.
The US already lives with a nuclear-armed North Korea that can level Seoul, South Korea's capital and home to metro-area population of 25 million civilians. North Korea can already lay waste to the 28,000 US troops permanently stationed near the demilitarized zone.
Japan already lives with the knowledge that North Korea could most likely range Tokyo, home to a metro-area of almost 38 million, with a nuclear weapon.
Why should anything change when North Korea can reach Guam, Alaska, Los Angeles, or New York? North Korea doesn't attack Seoul, Tokyo, Guam, or any other place — because if they did, the US would absolutely destroy them.
The same nuclear posture that has deterred nuclear powers from attacking the US will continue to serve.
That's the same reason that Russia, despite deep differences on foreign policy and conflicts of interest with the US, never fired on the US, or any other country, even during the height of the Cold War.
"We can deter them," retired Adm. Dennis Blair, the former head of US Pacific Command, said of North Korea at a National Committee for US-China Relations event. "They may be developing 10 to 15 nuclear weapons. We have 2,000. They can do a lot of damage to the US, but there won't be any North Korea left in the event of a nuclear exchange. That's not a good regime survival strategy, and even Kim Jong Un would understand that."
Under Kim Jong Un, North Korea wrote the possession of nuclear weapons into their constitution as a guarantor of their security. Expect the US to push for sanctions, diplomatic talks, investments in missile defenses — the types of measures taken against other nuclear powers — but don't expect a nuclear exchange.
Because for North Korea to use one of its nuclear weapons in anger would absolutely undermine its desire for security, and likely turn much of the Korean peninsula into a glowing nuclear wasteland.
This column does not necessarily reflect the opinion of Business Insider.
SEE ALSO: The US military has prepared a new set of options for Trump on North Korea
NOW WATCH: Why the North Korea summit mattered even if it was 'mostly a photo op'
More: North Korea Missile Test South Korea Japan

redpajama_set_name: RedPajamaCommonCrawl


Some of my posts are inspired by hours - even days - of introspection and reflection. Others are sparked by mere seconds of exposure to something interesting. This is one of the latter, prompted by a brief snippet of a discussion on BBC radio I heard this morning.
A Muslim woman was commenting about how someone "practiced the right kind of Islam." Because it was so brief, I don't have any context for this statement. Nevertheless, it stuck with me. Is there a "right kind of Islam?"
Intuitively, I knew exactly what the speaker was referencing. It is exactly the same sort of thing we've all heard from liberal Christians when they want to distinguish between one of them and their extremist brethren. Someone who practices "the right kind of Christianity" is someone who practices the sort of Christianity with which the speaker agrees.
The Muslim speaker went on to say something about how the person she was referring to practiced a "peaceful Islam." This solidified my interpretation of the previous reference. To the Muslim speaker, there was indeed a "right kind of Islam," and it is a peaceful version (Note: Even the "peaceful" version sounds pretty damn oppressive). But that doesn't make it right, not when it is still based on delusion.
And yet, I suspect we all make distinctions like this woman was making - even those of us who are atheists. I suspect that I'd have far more in common with a politically progressive Christian than I would with a conservative atheist for whom Fox "News" served as a primary source of information about the world. And I could imagine myself saying something like, "Well, at least he or she is the right kind of Christian."
There is not a "right kind" of Islam or a "right kind" of Christianity. However, there are certainly forms of these religions that are more palatable to most of us than their extremist versions. The challenge, of course, is figuring out how much responsibility these more palatable forms should bear for the continued survival of the extremist versions.


The present application claims priority to U.S. Provisional Application No. 60/565,377 filed 26 Apr. 2004. The present application also claims priority to U.S. Provisional Application No. 60/566,669 filed 30 Apr. 2004.
The present invention relates to operating methods for electrically programmable and erasable non-volatile memory and integrated circuits including such memory, and more particularly to methods for establishing low threshold states, and for correction and prevention of over-erase conditions in such devices.
According to a first embodiment of the biasing procedure, a first bias pulse is applied that induces hot hole injection into the charge trapping structure. The first bias pulse is based on a biasing arrangement including applying a negative voltage to the gate terminal and a positive voltage to the first channel terminal while the second channel terminal is grounded, in order to induce band-to-band tunneling induced hot hole injection. Under the biasing arrangement of the first bias pulse, some cells may suffer over-erase due to excess holes in the charge trapping structure. After the first bias pulse, a self-converging pulse is applied, according to a different biasing arrangement. The biasing arrangement of the second bias pulse in this first embodiment of the biasing procedure, includes applying a voltage to the gate terminal that has a relatively low absolute value as compared to the specified value for the low threshold state, such as in the range of −1 to +1 volts. A positive voltage is applied to the first channel terminal while the second channel terminal is grounded. Thus, the biasing arrangement of the second bias pulse includes a low gate bias with a high drain bias after a hot hole erase pulse. Since hot electrons and hot holes will inject simultaneously into the charge trapping structure when the threshold voltage of the cell converges on the specified value under the biasing arrangement of the second pulse, a self-convergence is achieved.
The present invention is also embodied by integrated circuits including memory based on charge trapping memory cells, and control circuitry implementing the operating methods described above for the charge trapping memory cells.
FIGS. 3A-3C illustrate a two-pulse, self-convergent erase procedure, according to the timing diagram in FIG. 4.
FIGS. 6A-6C illustrate a two-pulse, self-convergent erase procedure, according to the timing diagram in FIG. 7.
FIGS. 9A-9C illustrate a one-pulse, self-convergent erase procedure, according to the timing diagram in FIG. 10.
A detailed description of embodiments of the present invention is provided with reference to FIGS. 1-11.
FIG. 1 is a simplified block diagram of an integrated circuit supporting self-convergent erase according to the present invention. The integrated circuit includes a memory array 100 implemented using NROM memory cells, or other charge trapping memory cells. A page/row decoder 101 is coupled to a plurality of word lines 102 arranged along rows in the memory array 100. A column decoder 103 is coupled to a plurality of bit lines 104 arranged along columns in the memory array 100. Addresses are supplied on bus 105 to column decoder 103 and page/row decoder 101. Sense amplifiers and data-in structures in block 106 are coupled to the column decoder 103 via data bus 107. Data is supplied via the data-in line 111 from input/output ports on the integrated circuit to the data-in structures in block 106. Data is supplied via the data-out line 112 from the sense amplifiers in block 106 to input/output ports on the integrated circuit.
The state machine 109 supports read, erase and program operations, including self-convergent erase according to the present invention. According to some embodiments, the erase process includes an erase verify procedure. According to the erase verify procedure, a signal is generated indicating whether the threshold of a memory cell has reached an erase verify threshold. After the memory cell has reached an erase verify threshold, no further erase pulse is need to be applied to the memory cell. The state machine 109 can be implemented using special-purpose logic circuitry as known in the art. In alternative embodiments, the controller comprises a general-purpose processor, which may be implemented on the same integrated circuit, which executes a computer program to control the operations of the device. In yet other embodiments, a combination of special-purpose logic circuitry and a general-purpose processor may be utilized for implementation of the state machine.
FIG. 2 is a simplified diagram of a prior art charge trapping memory cell, such as an NROM cell suitable for use in an integrated circuit as shown in FIG. 1. The memory cell is implemented in a semiconductor substrate 200. The cell includes a source 201 and a drain 202 formed by respective diffusion regions, separated by a channel in the substrate 200. A control gate 203 overlies the channel. Channel lengths in representative embodiments are 0.25 microns and less, as minimum feature sizes scale downward in integrated circuit manufacturing. A charge storage element 211 is isolated by an insulator such as silicon dioxide or silicon oxynitride 210 between the control gate 203 and the channel, typically having a thickness in the range of 30 to above 120 Angstroms depending on the operating arrangement selected, although other dielectric dimensions are applied for some memory cell embodiments. The charge storage element 211 comprises silicon nitride in a nitride MOS memory cell like an NROM cell or a SONOS cell. In other embodiments, other charge trapping material, such as Al2O3, HfOx, ZrOx, or other metal oxides can be used to form memory cells. The charge trapping layer can be continuous across the length of the channel as shown, or can consist of multiple isolated pockets of charge trapping material. Negative charge symbolized by charge traps 205, 215 is trapped in the charge trapping layer, in response to hot electron injection, Fowler-Nordheim tunneling, and/or direct tunneling in various program procedures.
In order to program the memory cell, control circuitry on the integrated circuit applies a source voltage VS to the source 201 such as ground, a drain voltage VD to the drain 202 such as +3 to +5 volts, a gate voltage VG to the control gate 203 such as +6 to +12 volts, and a substrate voltage VB to the substrate 200 such as ground, which together provide an example of a biasing arrangement that injects negative charge in the form of electrons into the charge trapping layer 211, raising the threshold voltage VT of the memory cell above a specified program threshold. Other procedures, including direct tunneling and E-field assisted tunneling can be used for establishing a high threshold state. In order to erase the cell, a different biasing arrangement is applied to inject holes eliminating the electrons or to otherwise remove the electrons from the charge trapping layer, lowering the VT below a specified erase threshold. Data is read from the memory cell by applying a source voltage VS to the source 201, such as ground, a drain voltage VD to the drain 202 such as +2 volts, a gate voltage VG to the control gate 203 which has a specified read threshold value above the erase threshold and below the program threshold. Over-erase is a condition in which the charge in the charge trapping layer has a positive net voltage, for example, or other charge value in which the VT is too low, causing the memory cell to leak current, when a low voltage, such as ground or a voltage less than the specified erase threshold, is applied to the gate. As illustrated in FIG. 2, the memory cell can store one or more bits of data on each of the left charge trapping region 215 and right charge trapping region 205 of the charge trapping structure 211. Typically, an NROM memory cell is programmed in a first "direction" with the first channel terminal 201 set at a voltage such as +5 or +6 volts, and the second channel terminal 202 set at ground, while the gate receives about +6 volts. The memory cell is then read in a reverse direction, where the first channel terminal 201 is grounded, and the second channel terminal 202 is set at a voltage such as +2 or +3 volts, while the gate receives a read potential. The opposite side of the memory cell is programmed and erased with the biasing arrangements set up in the opposite direction.
FIGS. 3A-3C illustrate a biasing arrangement for establishing a low threshold state, which corresponds with an erase state in typical embodiments, in a charge trapping memory cell. FIG. 3A heuristically illustrates a memory cell including a first channel terminal 300 and a second channel terminal 301 and a substrate, with a channel region 302 between them. A tunnel dielectric 303 overlies the substrate in the channel region 302. A charge trapping layer 304 overlies the tunnel dielectric 303. A top dielectric 305 overlies the charge trapping layer 304. A gate terminal 306 overlies the top dielectric 305. Charge trapped in the charge trapping layer 304 affects the threshold voltage for the memory cell.
As symbolized in FIG. 3B by the excess holes "+" in the charge trapping layer, over-erase can occur in some memory cells in an array after the first pulse. Following a first pulse as shown in block 400, a second bias pulse is applied as illustrated in block 401 of FIG. 4. The second bias pulse has a self-converging behavior, with separate pulses for the left and right side of the memory cell. According to the first pulse of the biasing procedure of FIG. 4, the voltage VD is raised to the level of about +5 volts for a program interval as illustrated at time 420. The gate voltage VG during this interval is set to a level in a range of about −1 to about +1 volts, which is low relative to the specified value of the threshold for the low threshold state. The source voltage VS during this interval remains at ground. The opposite side of the memory cell receives a similar pulse, during interval 421, in which the source voltage VS is raised to level of about +5 volts, while the drain voltage VD is ground. The gate voltage VG remains set to a level in a range of about −1 to about +1 volts during the interval 421.
The second pulse 401 illustrated in FIG. 4 can be applied after each erase pulse as shown in block 400, or after a successful erase verify operation following an erase pulse. Thus, in some embodiments applying the biasing procedure of FIG. 4, no erase verify operation is executed. In other embodiments, an erase verify is executed after the first pulse in the biasing procedure. In this case, if the signal is generated indicating that the memory cell has been successfully erased, then the self-converging second pulse is applied, else the first pulse is repeated. In other cases, the erase verify is executed after the second pulse in the biasing procedure. In this case, if the signal is generated indicating that there has not been successful erase, then the erase procedure is repeated, including the first and second pulses.
FIG. 5 is a graph illustrating the self-convergence behavior under the bias conditions during the second pulse shown in block 401. The graph shows traces 500 for two memory cells starting with a threshold voltage of about +2.2 volts. During the self-converging pulse with the drain voltage of about +5 volts, and a gate voltage of about −0.2 volts, the threshold voltage of the memory cell converges on about +2 volts. Traces 501 illustrate behavior of two memory cells starting with threshold voltage of about +1.0 and +1.2 volts, respectively. Again, after the self-converging pulse, the threshold voltage of the memory cells is converging on a level of about +2 volts. Traces 502 illustrate the behavior of memory cells with a starting threshold of about +0.5 and +0.7 volts, respectively. Traces 503 illustrate behavior of memory cells with a starting threshold of about +0.4 volts. As can be seen, the threshold voltage for the memory cells with starting thresholds between about +2.3 and about +0.4 volts converge on a target threshold voltage after the self-converging pulse. The traces 504 illustrate the behavior of an unselected memory cell during the self-converging pulse, where the drain voltage is maintained at a low level, in this example about +0.2 volts. As can be seen, the unselected memory cells are not disturbed by this process.
FIGS. 6A-6C illustrate an alternative biasing arrangement for establishing a low threshold state, according to the bias procedure shown in FIG. 7. According to the first pulse the shown in block 700 of FIG. 7, hot hole injection (310) is induced to reduce the threshold of the cell, as discussed above with respect to FIG. 3A and block 400 of FIG. 4. The second pulse according to the bias procedure is illustrated in block 701 of FIG. 7. In the second pulse in block 701 of FIG. 7, the bulk voltage VB is set to 0 volts or ground, the drain voltage VD is grounded or left floating and the source voltage VS is grounded or left floating. The gate voltage VG is set to a relatively high absolute value in the pulse interval. In one embodiment, the gate voltage VG is set to −14.5 volts on trace 702 of FIG. 7, and as shown in FIG. 6B and FIG. 6C. In an alternative, the gate voltage VG is set to a +14.5 volts as shown on trace 703 of FIG. 7. The biasing arrangement in block 701 results in counterbalancing Fowler-Nordheim tunneling between the gate and charge trapping layer, and between the charge trapping layer and substrate. The precise level of the gate voltage can be varied as suits the needs of a particular implementation of the memory cell, as necessary to achieve the self-converging effect. According to the present invention it is believed that the gate voltage within absolute value in a range of about 10 to about 20 volts will achieve the self-converging effect.
FIG. 6B illustrates the condition in which a memory cell is over-erased after the first pulse 700. In this case, with the gate voltage at −14.5 volts, electrons tunnel from the gate to the charge trapping structure as symbolized by arrow 611. The injected electrons tend to correct an over-erase condition. As illustrated in FIG. 6C, as the negative charge in the charge trapping layer reaches a level causing the specified value of threshold voltage for the erase condition, electrons stop tunneling or in some embodiments, can tunnel out of the charge trapping layer to the substrate as symbolized by the arrow 612. Thus the second pulse induces electron tunneling from the gate to the charge trapping layer that converges on a stable condition, or is balanced by tunneling from the charge trapping layer to the channel, when the pulse is negative, and induces electron tunneling from the channel to the charge trapping layer that converges on a stable condition or is balanced by tunneling from the charge trapping layer to the gate, when the pulse is positive. The second pulse in this embodiment, affects both the left and the right side of the memory cell simultaneously. The amplitude of the gate voltage for the second pulse can be varied as meets the needs of a specific embodiment of the memory cell. Typically, the gate voltage will have an absolute value greater than 10 volts, and in a range of about 10 to 15 volts or higher, for example, to achieve convergence to within an acceptable range of a specified threshold voltage in a reasonable interval time. In some embodiments, the second pulse has a pulse width of about 1 millisecond to about 100 milliseconds.
FIG. 8 illustrates the self-convergence behavior under the bias conditions of block 701, with four different starting conditions. The threshold voltages for a pair of memory cells is shown on trace 800, after being erased by hot hole injection with a gate voltage of −12 volts and a drain voltage of +5 volts. As can be seen, the starting threshold voltage was about +5 volts. After the self-converging pulse with −14.3 volts on the gate, the source and drain floating and the substrate set to about +0.2 volts, the threshold voltage converges on about +1.6 volts after 10 milliseconds. For memory cells shown on trace 801, after being erased within negative eightfold gate voltage, the starting threshold voltage was about one volt, and the threshold voltage after about 10 milliseconds of the self-converging pulse was about +1.6 volts. For memory cells shown on trace 802, after being erased within −6.0 volts on the gate, the starting threshold voltage is about +1.5 volts, and the converged threshold is about +1.8 volts. For the pair of memory cells programmed with a gate voltage at −12 volts on trace 803, the starting threshold voltage was about +2.0 volts, and the self-converge to threshold voltage was about +2.2 volts. Thus, convergence of the threshold voltage for the memory cell is achieved using a pulse as shown in block 701 of FIG. 7.
FIGS. 9A-9C illustrate yet another biasing arrangement for self-converging erase according to the present invention, using a single bias pulse as illustrated in FIG. 10. In FIG. 10, the first block 1000 illustrates the conventional hot hole injection arrangement which is like the first pulse in the first and second erase procedures illustrated above. In this case, the pulse of block 1000 is not applied. Rather, a self-converging pulse as shown in block 1001 is applied with the drain voltage VD for programming the left side set at a value during the interval 1002 higher than +5 volts, such as about +8 volts, the source voltage VS left at ground, and the gate voltage VG for example between zero and −1.5 volts to cause self-convergence. The drain voltage VD is increased relative to the conventional hot hole injection in the biasing arrangement of block 1000 to improve the speed of operation. To program the right side of the memory cell, the source voltage VS is pulsed during interval 1003, while the drain voltage VD is left grounded. The specified value of the threshold voltage for the erase state can be achieved by adjusting the gate voltage VG so that convergence occurs at the specified value. According to this embodiment, gate voltage VG is low relative to the specified value in order to achieve self convergence.
FIG. 11 is the graph illustrating the self-convergence behavior for the biasing arrangement of FIG. 10 for four pairs of memory cells, with channel lengths of about 0.24 microns, with different program threshold starting states. The first pair 1100 has a starting threshold of about +3.5 volts. After about one millisecond of erase pulse with a drain voltage of +6 volts and a gate voltage of −0.5, the thresholds of the memory cells converge on about +2.4 volts. The second pair 1101 has a starting threshold of about +4 volts, and likewise converges on about +2.4 volts after about one millisecond. The third pair 1102 has a starting threshold of about +4.4 volts, and converges on a threshold of about +2.4 volts after about one millisecond. The last pair 1103 has yet a higher starting threshold of about +4.7 volts, and converges on the same +2.4 volt threshold after about one millisecond. Thus, over a wide range of starting thresholds for the self-converging biasing arrangement of FIG. 10, the erase pulse causes convergence on a common threshold. The level of the threshold can be adjusted by adjusting the magnitude of the gate voltage, and other characteristics of the memory cells.
FIG. 12 is a graph illustrating the dependence on gatefold age (what is gatefold age?) of the threshold voltage shift caused by a biasing pulse as shown in FIG. 10. The graph illustrates that for a gate voltage of −0.2 volts the threshold change of about −2 volts is induced after about one hundred milliseconds. The threshold change increases in magnitude with increasing gate voltage during the pulse. Thus, for a gate voltage of about −2.0 volts, the threshold shift is about −3.5 volts after one hundred milliseconds.
applying a second bias pulse according to a second bias arrangement causing convergence of the threshold voltage toward the specified value, the second biasing arrangement including applying a low voltage relative to the specified value to the gate terminal, applying a positive voltage to the first channel terminal and grounding the second channel terminal, wherein the positive voltage on the first channel terminal is high enough to inject electrons into the charge trapping structure when the threshold voltage is low relative to the specified value, and to cause injection of holes into the charge trapping structure when the threshold is high relative to the specified value.
12. The method of claim 11, including after applying the bias pulse according to the first biasing arrangement, then providing a signal indicating whether the memory cell passes or fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell fails verification, then applying another pulse according to the first biasing arrangement.
13. The method of claim 11, wherein the negative voltage on the gate terminal, according to the first biasing arrangement, has an absolute value of about 1.5 volts or less, and the positive voltage on the first channel terminal, according to the first biasing arrangement, has an absolute value of about 6 volts or more.
applying a second bias pulse according to a second bias arrangement causing convergence of the threshold voltage in the low threshold state toward a specified value, the second biasing arrangement including applying a reference voltage near ground to the semiconductor body, applying a low voltage near ground or floating the first channel terminal, applying a low voltage near ground or floating the second channel terminal, and applying a state voltage to the gate terminal, wherein the gate voltage has an absolute value high enough that when the threshold voltage is low relative to the specified value to change the threshold voltage to a value nearer to the specified value, and low enough that when the threshold voltage is near the specified value not to substantially change the threshold voltage.
15. The method of claim 14, including after applying the first bias pulse according to the first biasing arrangement, providing a signal indicating whether the memory cell passes of fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell passes verification, then applying the second bias pulse according to the second biasing arrangement in response to the signal.
21. The method of claim 14, wherein the gate voltage applied to the gate terminal, according to the second biasing arrangement is in a range from about +10 volts to about +20 volts.
27. The method of claim 25, including after applying the pulse according to the first biasing arrangement, and applying the pulse according to the second biasing arrangement in response to the signal, then providing a signal indicating whether the memory cell passes or fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell fails verification, then applying another pulse according to the first biasing arrangement followed by another pulse according to the second biasing arrangement.
30. The method of claim 24, wherein the positive voltage on the first channel terminal, according to the second biasing arrangement, has an absolute value of about 5 volts or higher, and the low voltage applied to the gate terminal, according to the second biasing arrangement is in a range from about −1.5 volts to +1.5 volts.
32. The method of claim 24, wherein the low voltage applied to the gate terminal, according to the second biasing arrangement is in the range from about −1.5 volts to about ground.
applying a pulse according to a first bias arrangement inducing hot hole injection into the charge trapping structure to set a threshold voltage for the cell below a specified value for a low threshold state, the first biasing arrangement including applying a negative voltage to the gate terminal and positive voltage to the first channel terminal, while the second channel terminal is grounded, the negative voltage applied to the gate terminal having an absolute value of less than 3 volts, and the positive voltage applied to the first channel terminal having an absolute value high enough to induce hot hole injection while the threshold voltage of the cell is greater than the specified value and to induce hot electron injection when the threshold voltage of the cell is near to the specified value in order to suppress overshoot of the specified voltage.
37. The method of claim 35, wherein the negative voltage on the gate terminal, according to the first biasing arrangement, has no absolute value of about 1.5 volts or less, and the positive voltage on the first channel terminal, according to the first biasing arrangement, has an absolute value of about 6 volts or more.
applying a pulse according to a second bias arrangement inducing E-field assisted tunneling causing convergence of the threshold voltage in the case state toward the specified value.
44. The method of claim 42, including after applying the pulse according to the first biasing arrangement, and applying the pulse according to the second biasing arrangement in response to the signal, then providing a signal indicating whether the memory cell passes of fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell fails verification, then applying another pulse according to the first biasing arrangement followed by another pulse according to the second biasing arrangement.
45. The method of claim 40, wherein the negative voltage on the gate terminal, according to the first biasing arrangement has an absolute value of about 3 volts or higher, and the positive voltage on the first channel terminal, according to the first biasing arrangement, has an absolute value of about 5 volts or higher.
47. The method of claim 41, wherein the gate voltage applied to the gate terminal, according to the second biasing arrangement is in a range from about −10 volts to +20 volts.
establishing a low threshold state in the memory cell by reducing the negative charge in the charge trapping structure to set the threshold voltage for the cell below a specified value for the low threshold state, by applying a bias procedure which reduces negative charge in the charge trapping structure at a rate responsive to the amount of negative charge in the charge trapping structure during the bias pulse, and which increases negative charge in the charge trapping structure when the amount of negative charge in the charge trapping structure is reduced sufficiently that the threshold voltage is near or below the low state threshold, causing convergence of the threshold voltage in the low threshold state toward the specified value.
54. The integrated circuit of claim 53, wherein the bias procedure includes after applying the first bias pulse according to the first biasing arrangement, and applying the second bias pulse according to the second biasing arrangement in response to the signal, then providing a signal indicating whether the memory cell passes of fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell fails verification, then applying another bias pulse according to the first biasing arrangement.
55. The integrated circuit of claim 53, wherein the bias procedure includes after applying the first bias pulse according to the first biasing arrangement, and applying the second bias pulse according to the second biasing arrangement in response to the signal, then providing a signal indicating whether the memory cell passes or fails verification of whether the threshold voltage is below a low threshold verify voltages; and then if the memory cell fails verification, then applying another pulse according to the first biasing arrangement followed by another pulse according to the second biasing arrangement.
56. The integrated circuit of claim 52, wherein the negative voltage on the gate terminal, according to the first biasing arrangement, has an absolute value of about 3 volts or higher, and the positive voltage on the first channel terminal, according to the first biasing arrangement, has an absolute value of about 5 volts or higher.
60. The integrated circuit of claim 52, wherein the low voltage applied to the gate terminal, according to the second biasing arrangement is in a range of from about −1.5 volts to about ground.
63. The integrated circuit of claim 61, wherein the negative voltage on the gate terminal, according to the first biasing arrangement, has no absolute value of about 1.5 volts or less, and the positive voltage on the first channel terminal, according to the first biasing arrangement, has an absolute value of about 6 volts or more.
applying a second bias pulse according to a second bias arrangement inducing E-field assisted tunneling causing convergence of the threshold voltage in the low threshold state toward a specified value.
67. The integrated circuit of claim 64, wherein the bias procedure includes after applying the first bias pulse according to the first biasing arrangement, and applying the second bias pulse according to the second biasing arrangement in response to the signal, then providing a signal indicating whether the memory cell passes of fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell fails verification, then applying another pulse according to the first biasing arrangement.
68. The integrated circuit of claim 64, wherein the bias procedure after applying the first bias pulse according to the first biasing arrangement, and applying the second bias pulse according to the second biasing arrangement in response to the signal, then providing a signal indicating whether the memory cell passes or fails verification of whether the threshold voltage is below a low threshold verify voltage; and then if the memory cell fails verification, then applying another pulse according to the first biasing arrangement followed by another pulse according to the second biasing arrangement.
69. The integrated circuit of claim 64, wherein the negative voltage on the gate terminal, according to the first biasing arrangement, has an absolute value of about 3 volts or higher, and the positive voltage on the first channel terminal, according to the first biasing arrangements, has an absolute value of about 5 volts or higher.
70. The integrated circuit of claim 64, wherein the positive voltage on the first channel terminal, according to the first biasing arrangement, has an absolute value of about 5 volts or higher.
71. The integrated circuit of claim 64, wherein the gate voltage applied to the gate terminal, according to the second biasing arrangement is in a range from about −10 volts to −20 volts.


text:
Home / Greenpeace
NGOs: friend or foe to the paper industry?
BRUSSELS, June 1, 2014 (PPI Magazine) - It's safe to say that the pulp and paper industry's view of NGOs has dramatically changed over the past 20 years. No longer dismissed as a bunch of trouble-making, long-haired college kids who don't want to work and no longer viewed as "eco-terrorists" who want to completely shut down an industry, over the years, the industry, perhaps reluctantly, has come to view the NGOs as having the best interests of the planet in mind. Nor do the NGOs view the forest products companies or their executives as rapacious destroyers of the universe.
Greenpeace marks one-year anniversary of suspended active public campaign work against APP
JAKARTA, Indonesia, Feb. 5, 2014 (Press Release) - Greenpeace today marks the one-year anniversary it suspended active public campaign work against Asia Pulp & Paper (APP). The suspension gives the company the time and space to implement commitments it has made to end its involvement in deforestation.
To mark the anniversary, Bustar Maitar, Head of the Indonesia Forest Campaign at Greenpeace International, said:
Greenpeace tip-off triggers German government to seize two batches of illegal timber from Democratic Republic of Congo
BRUSSELS, Belgium, BERLIN, Germany and KINSHASA, Democratic Republic of the, Nov. 27, 2013 (Press Release) -German authorities have seized two batches of illegal timber from the Democratic Republic of Congo (DRC). The seizure is the strongest case of enforcement of an EU law banning the trade in illegally sourced timber which took effect in March 2013. The government action was triggered by a tip-off from Greenpeace.
Greenpeace on APP: "A lot of work still to do"
LONDON, March 25, 2013 (RISI) - PPI interviewed Andy Tait, senior forest campaigner for Greenpeace, and an environmental activist heavily involved in the highly visible media campaign against Asia Pulp & Paper (APP) over recent years. Tait was also instrumental in the behind -the -scenes talks that have now seen the dramatic turnaround of APP's procurement policy, which has recently resulted a complete halt to obtaining pulpwood from natural forest clearance in Indonesia.
Greenpeace issues a "wake up call" on deforestation
Jul 2, 2014 - 04:25
Jun 4, 2014 - 09:50


North Melbourne Football Club's Arden Street headquarters and a local recreation centre are now powered by solar thanks to an investment by the City of Melbourne and the Kangaroos.
Chair of the City of Melbourne's Environment Portfolio, Cr Arron Wood, said a 100kW solar system has been installed on the football club's roof and a 100kW solar system was on the adjoining North Melbourne Recreation Centre.
"We're proud to help the Kangaroos go solar and reduce their carbon emissions. Powering such an iconic building with renewable energy shows how solar can be installed on buildings of all shapes and sizes," Cr Wood said.
"More than one-million rooftops across Australia now have solar panels. We hope football fans across the country are inspired by our partnership with the Kangaroos to go solar."
The 800 panel solar system will produce 269 MWh of electricity per year. This is equivalent to the annual energy use of 70 residential homes in Melbourne.
North Melbourne CEO and Managing Director Carl Dilena said the club was proud to have worked with the City of Melbourne to make their seven-year-old training headquarters more environmentally friendly.
"The solar panels will result in our club using 22 per cent less energy from the grid," Mr Dilena said.
"A big thank you must go to the City of Melbourne for helping us make this environmentally-friendly project a reality. We are proud of our successful, ongoing relationship with the City of Melbourne."
The recreation centre and football club administration buildings include a high-performance training gym, offices for the football department and administration. There is also a fencing centre, community gym, basketball court, and 'The Huddle' Community learning centre.
Cr Wood said the $462,000 solar power system was installed by EnviroGroup and partly financed by the Clean Energy Finance Corporation.
"North Melbourne Football Club is one of the world's oldest sporting clubs. This project is a great example of how an iconic sporting club can work with government to reduce carbon emissions, promote clean energy jobs, and help the environment," Cr Wood said.
"We are installing 300kW worth of rooftop solar on Council and other community facilities which will mean we'll pay less to power buildings like pools and gyms which have large energy loads."
Following the Richmond football club's installation of a 100kW solar system in 2014, North Melbourne now has one of the largest solar systems among the 18 AFL teams. The system includes 800 x 250 watt Yingli solar panels and is one of the largest in the City of Melbourne.
There are currently 855 residential and commercial solar systems installed in the municipality producing 4.24MW of solar energy.


Pink rose wreath heart shape romantic gift laurelsbylaurie is one images from 17 unique heart shaped wreath of DMA Homes photos gallery. This image has dimension 1500x994 Pixel and File Size 248 KB, you can click the image above to see the large or full size photo. Previous photo in the gallery is heart shaped wreath madness pinterest. For next photo in the gallery is welcome wreath heart shaped laurelsbylaurie etsy. You are viewing image #6 of 17, you can see the complete gallery at the bottom below.


The Kong Futura Foot is here to stay. This new device in combination with the hand ascenders will produce a super light, super efficient ascension system. It was originally designed by top cavers for tight places in the most remote areas on earth (or under it). It weighs only 125 grams and can accommodate ropes 9-13mm in diameter.


text:
Q: Is there a good data structure for finding all stored subsets of a given bitset? Let X be a set of distinct 64-bit unsigned integers std::uint64_t, each one being interpreted as a bitset representing a subset of {1,2,...,64}.
I want a function to do the following: given a std::uint64_t A, not necessarily in X, list all B in X, such that B is a subset of A, when A, B are interpreted as subsets of {1,2,...,64}.
(Of course, in C++ this condition is just (A & B) == B).
Since A itself need not be in X, I believe that this is not a duplicate of other questions.
X will grow over time (but nothing will be deleted), although there will be far more queries than additions to X.
I am free to choose the data structure representing the elements of X.
Obviously, we could represent X as a std::set or sorted std::vector of std::uint64_t, and I give one algorithm below. But can we do better?
What are good data structures for X and algorithms to do this efficiently? This should be a standard problem but I couldn't find anything.
EDIT: sorry if this is too vague. Obviously, if X were a std::set we could search through all subsets of A, taking time O(2^m log |X|) with m <= N, or all elements of X in time O(|X| log |X|).
Assume that in most cases, the number of B is quite a bit smaller than both 2^m (the number of subsets of A) and |X|. So, we want some kind of algorithm to run in time much less than |X| or 2^m in such cases, ideally in time O(number of B) but that's surely too optimistic. Obviously, O(|X|) cannot be beaten in the worst case.
Obviously some memory overhead for X is expected, and memory is less of a bottleneck than time for me. Using memory roughly 10 * (the memory of X stored as a std::set) is fine. Much more than this is too much. (Asymptotically, anything more than O(|X|) or O(|X| log |X|) memory is probably too much).
Obviously, the use of C++ is not essential: the algorithms/data structures are the important things here.
In the case that X is fixed, maybe Hasse diagrams could work.
It looks like Hasse diagrams would be quite time-consuming to construct each time X grows. (But still maybe worth a try if nothing else comes up). EDIT: maybe not so slow to update, so better than I thought.
The below is just my idea so far; maybe something better can be found?
FINAL edit: since it's closed, probably fairly - the "duplicate" question is pretty close - I won't bother with any further edits. I will probably do the below, but using a probabilistic skip list structure instead of a std::set, and augmented with skip distances (so you can quickly calculate how many X elements remain in an interval, and thus reduce the number of search intervals, by switching to linear search when the intersection gets small). This is similar to Order Statistic Trees given in this question, but skip lists are a lot easier to reimplement than std::set (especially as I don't need deletions).
Represent X as a std::set or sorted std::vector of 64-bit unsigned integers std::uint64_t, using the ordinary numerical order, and do recursive searches within smaller and smaller intervals.
E.g., my query element is A = 10011010.
Subsets of A containing the first bit lie in the inclusive interval [10000000, 10011010].
Subsets of A containing the second bit but not the first lie in the interval [00010000, 00011010].
Those with the third but not the second bit are in [00001000, 00001010].
Those with the fourth but not the third bit are in [00000010, 00000010].
Now, within the first interval [10000000, 10011010] you could make two subintervals to search, based on the second bit: [10000000, 10001010] and [10010000, 10011010].
Thus you can break it down recursively in this manner. The total length of search intervals is getting smaller all the time, so this is surely going to be better asymptotically than a trivial linear search through all of X.
E.g., if X = {00000010, 00001000, 00110111, 10011100} then only the first, third, fourth depth-1 intervals would have nonempty intersection with X. The final returned result would be [00000010, 00001000].
Of course this is unbalanced if the X elements are distributed fairly uniformly. We might want the search intervals to have roughly equal width at each depth, and they don't; above, the sizes of the four depth-1 search intervals are, I think, 27, 11, 3, 1, and for larger N the discrepancies could be much bigger.
If there are k bits in the query set A, then you'll have to construct k initial search intervals at depth 1 (searching on ONE bit), then up to 2k search intervals at depth 2, 4k at depth 3, etc.
If I've got it right, since log |X| = O(N) the number of search intervals is O(k + 2k + 4k + ... + 2^n . k) = O(k^2) = O(N^2), where 2^n = O(k), and each one takes O(N) time to construct (actually a bit less since it's the log of a smaller number, but the log doesn't increase much), so it seems like this is an O(N^3) algorithm to construct the search intervals.
Of course the full algorithm is not O(N^3), because each interval may contain many elements, so listing them all cannot be better than O(2^N) in general, but let's ignore this and assume that there are not enough elements of X to overwhelm the O(N^3) estimate.
Another issue is that std::map cannot tell you how many elements lie within an interval (unlike a sorted std::vector) so you don't know when to break off the partitioning and search through all remaining X elements in the interval. Of course, you have an upper bound on the number of X elements (the size of the full interval) but it may be quite poor.
EDIT: the answer to another question shows how to have a std::set-like structure which also quickly gives you the number of elements in a range, which obviously could be adapted to std::map-like structures. This would work well here for pruning  (although annoying that, for C++, you'd have to reimplement most of std::map!)

A: Solution
Treating your integers as strings of 0 and 1, build a customized version of patricia tree, with the following rule:

*

*During lookup, if 1 is the current input bit at a branch, continue down both subtrees

The collection of all valid leaf nodes reached will be the answer.
Complexity
Let n be size of X,
Time: O(n)

*

*Worst case -1, when all subtrees are traversed. Complexity is bound by total number of nodes, stated below

Space: O(n)

*

*Number of nodes in a patricia tree is exactly 2n - 1

Rationale
Given that your match condition is (A & B) == B, a truth table is thus:

.
A0
A1

B0
T
T

B1
F
T

Hence, during lookup, we collect both subtrees on a branch node when the input bit is 1.

redpajama_set_name: RedPajamaStackExchange


This is a tour of all the pins available on the EZ-Key module. The module consists of a CSR BlueCore with custom firmware on a breakout PCB. The PCB makes it easy to use and hard to break. Every pin and connection you want is available on the breakout board, and there's even some handy mounting holes.
To use this module, you will need to at least power it. Powering it is easy though, you can give it anywhere between 3-16VDC and the power input is reverse-polarity protected. Connect the positive wire from your battery to Vin and ground to the Grounds or G pin. There is an output from the onboard 3.3V voltage regulator on pin 3v that will let you snag ~100mA of current for other sensors, microcontrollers or whatever.
RS - this is the reset pin. To reset the module, pull this pin to ground. It does not affect pairing.
L2 - this is the same output that is connected to the Pair LED. If you want to put this in a box and have an external Pair indicator LED, wire an LED from this pin, through a 1K resistor, to ground.
L1 - this is the same output that is connected to the Key LED. If you want to put this in a box and have an external Key-press indicator LED, wire an LED from this pin, through a 1K resistor, to ground.
RX - this is the UART input, used if you want to send UART->Keypress data, or re-map the buttons. It is 5V compliant, use 3V-5V TTL logic, 9600 baud.
TX - this is the UART output, used for watching debug data or re-mapping the buttons. It is 3V logic level output.
This row is easy, it is 12 individual pins that connect to a switch that will trigger a keypress. Each pin has a pullup resistor internally to 3V. To activate a keypress, connect the pin to ground. When it is connect to ground, a KEYDOWN is sent, when it is disconnected, a KEYUP is sent.
Do not inject 5V into these pins! They connect directly to the BT module which runs at 3V.
Despite looking a lot like an FTDI connector, this is the programming/test port. We use this at the Adafruit factory to get your modules tested. It is not field reprogrammable. Do not connect anything to these pins, it could damage or permanently brick the EZ-Key!
This guide was first published on Sep 27, 2013. It was last updated on Sep 27, 2013. This page (Pinouts) was last updated on Apr 24, 2019.


In this day and age, everything is synced to the cloud and OneDrive for Business is one of the most popular cloud storage systems. SysKit Security Manager can help you monitor OneDrive activity and control access to all OneDrive accounts in your environment.
Check who has access to which OneDrive files. Easily detect if sensitive files are shared before they become unavailable when an employee leaves the organization.
Check all OneDrive permissions, as well as OneDrive guest users  from a single report. If necessary, you can stop all file sharing with a single click and ensure the security of your environment.
Find out who is close to exceeding the storage limit and warn your colleagues of their need to free up some space. Check the OneDrive adoption rate and activity of your users.
Gain control over disabled or deleted users' OneDrive accounts. Generate a simple report with all the OneDrive accounts in a tenant with orphaned users.
Optimize your costs by removing orphaned users' licenses or transferring their ownership to the superior manager or an admin.


Just a few days to go! So today, the goal is to just take a little time out. We become hypnotized by our daily routines sometimes. getting up at the same time, eating the same breakfast, taking the same route to work and just generally zoning out when we are doing things throughout the day. Today, the goal is to stop work earlier than usual and take the time to be still. Now before you moan that you 'can't', especially if you work for someone else, I'm here to tell you that you can. Even if you stop just a couple of minutes before 5pm you can stop. The point isnt how early you stop, rather than you stop and be still. Even if its just a couple of minutes away from your desk where you can sit in stillness, then do that.
However you need to get away, do it, and just spend that time focused on you.


text:
package vezzoni.api.impl;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import vezzoni.api.PingController;

@Path(value = "/ping")
@Consumes(value = {MediaType.WILDCARD})
@Produces(value = {MediaType.APPLICATION_JSON})
public class PingControllerImpl implements PingController {

    @GET
    @Path(value = "/")
    @Produces(value = {MediaType.TEXT_HTML})
    @Override
    public Response ping() {
        return Response
                .status(Response.Status.OK)
                .entity("PONG")
                .build();
    }

}

redpajama_set_name: RedPajamaGithub


text:
Q: JavaScript and async methods in QtWebKit I am developing desktop software based on:

*

*Python: PySide (WebKit)

*JavaScript: AngularJS

Now, I need implement async feature:

*

*while uploading images from FTP (Python part) I need to show some uploader on UI (HTML+JS)

Need your advices about the elegant solution.
Very simple solution:

*

*save some flags in Python dictionary

*request value of this flags in JS by timer :)

However, I need to hard code the time and once I have long operation such as downloading files from FTP, its issue for me
Code of the solution:
templateManager.js
function _loadNewTemplates() {
        var deferred = $.Deferred();

        asyncManager.run($.proxy( _loadNewTemplatesCallback, null, deferred ), "get_new_templates_list" );

        return deferred;
    }

    function _loadNewTemplatesCallback ( deferred, response ) {
        template.newList = response.result;
        deferred.resolve();
    }

app_mamager.py
    @QtCore.Slot(int, result=str)
    def get_new_templates_list(self, id):
       thread.start_new_thread(get_new_templates_list,
                                    (id,))

utils.py
def get_new_templates_list(id):
   config.set_response(id, json.dumps({'result': _get_new_templates_list(), 'error': None}, MyEncoder))

def _get_new_templates_list():
    request = {'category': PRODUCT_CODE}
    response = requests.post(URL,
                             data=request,
                             headers=HEADERS)
    return json.loads(response.text)

config.py
def set_response(id, request):
    '''
    Put pair (id, request) to the internal dictionary
    :param id - int, request id:
    :param request - string, request string:
    :return:
    '''
    global _async_request
    _async_request[id] = request

def get_response(id):
    '''
    Returns request or empty string if request does not exist
    :param id - int
    :return - string, request string:
    '''
    global _async_request
    if _async_request.has_key(id):
        return _async_request.pop(id)
    else:
        return ''

A: Here is what you can do:

*

*retrieve the file size with stat / stat.ST_SIZE,

*decide on a chunk size,

*call PySide.QtGui.QProgressBar.setRange() with the correct range, which is 0 to number of blocks ( filesize / ftp transfer chunk size ) for binary files or number of lines for text files.

*pass a callback to ftplib.FTP.storbinary() or ftplib.FTP.storlines() so that each block / line transferred increases your progress bar accordingly with PySide.QtGui.QProgressBar.setValue()


TOKYO (AP) — Japanese prosecutors are charging major steelmaker Kobe Steel for falsifying data on a wide range of products.
Tokyo prosecutors said Thursday that Kobe Steel is being charged with violating laws overseeing fair competition.
Kobe Steel has repeatedly apologized for the practice but declined comment, saying it had not yet been notified of the charges.
Kobe Steel has said zealous pursuit of profit, unrealistic targets and an insular corporate culture were behind the scandal. There have been no reports of accidents related to the fake data.


text:
Bommarito Automotive SkyFOX Helicopter – Woman shot just south of Forest Park
Bill passes at St. Charles County Council that will require new safety features on ice cream trucks
Posted 11:11 pm, June 24, 2019, by Molly Rose
ST. CHARLES COUNTY, MO - New regulations are on the way for ice cream trucks in St. Charles County, nine months after a young girl was hit and killed by one. On Monday evening her grief-stricken family spoke out at a county council meeting, pushing for change regarding the safety features of the ice cream trucks. The loved ones of Felicity Karam, 2, said they believe if the regulations would have been in place at the time, their daughter would still be alive.
The tragedy took place in September of 2018 in a Wentzville neighborhood. Police said the little girl was hit by the ice cream truck when she crossed in front of it as it started driving forward.
Fox 2 spoke to Joe Cronin, Councilman for District 1, who has been putting together the new proposed regulations for months. It passed unanimously on Monday night.
He said the new rules will require front passenger side mounted mirrors like you see on school buses, signage that warns drivers children could be nearby, reverse backup alarms, rear viability for the driver and more. Cronin said he also was in contact with the ice cream companies during the work on the new bill because he said nobody wants to see an incident like this one happen again.
He said all of the new safety features will only cost around $200 to $300 per ice cream truck. Cronin said on Monday a state representative reached out to him and asked for a copy of the proposal because they want to look into making it a state law.
2-year-old struck and killed by ice cream truck in Wentzville
Wentzville toddler killed by ice cream truck identified; GoFundMe setup for funeral expenses
Wentzville neighborhood devastated after toddler is killed by an ice cream truck
Woman shot just south of Forest Park Friday afternoon
Officials warn drivers to watch out for pavement 'blowups'
46 ice cream trucks are being seized in a New York City crackdown
Stolen Blue Bell truck recovered in Oklahoma with ice cream untouched
St. Charles County executive looking to ban sale of kratom
Audit of St. Louis County Animal Shelter discussed at county council meeting
Here's why people lick tubs of ice cream or tongue depressors and put the video on social media
Tim's Travels
Tim's Travels: On the roll with Craving the Curls Rolled Ice Cream
ICE set to begin immigration raids in 10 cities on Sunday
Man accused of killing Angie Housman extradited to St. Charles County
Trump delays ICE raids two weeks to see if Congress can 'work out a solution'
Florida woman accused of urinating into ice cream maker, spitting into ice cream
LongHorn introduces new steak and bourbon ice cream for limited time
Cafe hires Goody Goody Diner employees displaced by fire
Police find juvenile they say licked a tub of ice cream and put it back on the shelf


. Fantastic finca located in a unique natural environment. Spectacular views of the sea and mountains. On a plot of 10986 M2 and with 377 meters built that are distributed in several buildings (main house, secondary construction, sheds, poultry houses, swimming pools, etc.) The main house has a large room with fantastic views, 1 double bedroom, 1 bathroom complete and a kitchen in state of origin. TAKE ADVANTAGE OF THE OPPORTUNITY TO BUY AN OASIS IN MALLORCA TODAY !!!


text:
U.S.|Day 104: The Latest on the Oil Spill
Day 104: The Latest on the Oil Spill
E.P.A. Releases Results on Dispersant-Oil Mix
Spraying dispersants on oily water in the Gulf of Mexico to break up the spill does not make the water any more toxic than it was with Louisiana sweet crude alone, the Environmental Protection Agency said Monday. Paul Anastas, the agency's assistant administrator for research and development, said the toxicity of the mix of oil and dispersant was generally in the range of "moderate," comparable to the effects of the oil. So while the use of toxic chemicals in the gulf has always been recognized as a trade-off of risks, Dr. Anastas said, the agency's latest research shows that using dispersants to limit the effects of the BP spill was "wise." The agency's conclusion was based on a report dated Saturday relaying the results of agency tests on two species, shrimp and inland silverside, he said. The E.P.A. has yet to investigate the health effects of the breakdown products of the dispersant.
Measuring the Dead Zone
Scientists say that this year the "dead zone" area that forms every summer in the Gulf of Mexico is one of the largest ever measured. It is roughly the size of New Jersey, or at least 7,722 square miles, according to the Louisiana Universities Marine Consortium. The researchers who measure the dead zone could not say there was a connection between the spill and the dead zone's size. The dead zone forms every year when bacteria feed on algae blooms and use up oxygen. The largest ever measured was just over 8,000 square miles in 2002.
Aid for Oil Workers
Up to 9,000 people will be eligible for money from a $100 million fund set up by BP to help oil workers idled by a federal moratorium on deepwater drilling in the Gulf of Mexico, according to a Louisiana charity chosen by BP to run the program. The Baton Rouge Area Foundation said on Monday that it would accept applications from Sept. 1 to Sept. 30. The group's president, John G. Davies, said in a statement that the applications would be graded against one another to determine need before any money was doled out. Grant checks ranging from $3,000 to $30,000 will be mailed in October.
An interactive map tracking the BP spill and where it has made landfall, a guide to online spill resources and additional updates: nytimes.com/national.
A version of this article appears in print on August 3, 2010, on Page A14 of the New York edition with the headline: Day 104: The Latest on the Oil Spill. Order Reprints| Today's Paper|Subscribe


The common pochard (Aythya ferina), which inhabits eutrophic lakes and marshes, has been classified as critically endangered (CR) due to a massive decrease in its population. The decline in population is most likely due to competition with fish for food resources, predation by small carnivores and the disappearance of the black-headed gull (Larus ridibundus) from many bird waters, as the common pochard nests most successfully in black-headed gull colonies. The species is also threatened by hunting. Photo Juha Laaksonen.
Parnassius mnemosyne is a Vulnerable butterfly living in herb-rich grasslands and wooded pastures. The species has three natural areas of occupancy. Through successful reintroduction, the species has additionally been restored to a fourth area, where it was observed last in the early 20th century. The species is dependent on grazing and is threatened by the overgrowing of open areas. Photo Mikko Kuussaari.
xThe future of Margaritifera margaritifera, which can live to be a hundred years old, seems gloomy. Although the species is still found in many rivers, young individuals may be completely missing. The species is classified as Endangered. Photo Panu Oulasvirta.


1. My friends – real friends – are few.
I am VERY cautious about who I allow to get close to me. Before, I was always concerned about alienating others. Now I am realizing that not everyone will be my "inner court" friend and confidante. I believe that God has brought some key people into my life to help me in reaching my destiny and fulfilling my purpose. He has also allowed the "scales" to fall off my eyes so I could see more clearly who needed to leave my inner circle. Separating from people you have been close to for a long time is never easy; pain almost always occurs, but if what is happening is in line with where God is taking you, then the pain is temporary and you will be better off in the end for doing it.
2. My desires are changing.
For as long as I can remember, I was the consummate people pleaser. I've never wanted to hurt feelings, but now I have a deeper desire to understand what God may be saying vs. what I or others may say, think or believe. I want to do what He wants. The change is gradual, but I believe it is visible.
3. I am more introspective.
I realize that every action, every decision, every word I utter will either draw me closer to my destiny or push me further away from where I need to be. With that realization, I am listening to myself more carefully and observing what I do, where I go and how I conduct myself in all situations. It's almost like being outside of yourself; like having a mirror held up before you ALL the time. I will even ask myself "Why do you need to do THIS NOW? Is there another way to handle this situation?" Reviewing past decisions is another way for me to understand what my thought process was at that time. This exercise helps me not to waste any lessons I need to learn.
4. I am less likely to ask others for advice FIRST.
Not too long ago I would be on the phone placing all my life's decisions (in gory detail) on the table for others to review or critique; it was as if I didn't know ANYTHING for myself or about myself. What were my opinions on matters that would affect me most? What about asking God's guidance in situations? Because I did this all the time, others were able to mold me into what THEY wanted me to be vs. who God wants me to be. So, back to my first point: When I discovered that I was being manipulated by several close ties, I had to sever them. This meant I also had to step up and take responsibility for WHO I AM BECOMING. I had to say "Yes" and "No" to the hard questions. No longer do I need to lean heavily on others' spin on my situation. Who knows me better than me??? GOD, of course, but aside from Him, the obvious answer is ME. Then I also realized that not everyone who appears to be on your side is genuinely fighting on your team. Some would want nothing better than to derail my dreams and my destiny because it would make them look bigger and better if I fail. So, I am seeking less advice from others, and I am choosing more introspection and prayer instead.
5. I am now learning to face the results of my actions.
If I do what's right, or wrong, there are outcomes for each type of action. Instead of running from my teachable moments, I am learning to glean important lessons. I am also learning to celebrate my positive or right actions; it is difficult for me to celebrate "wins" because usually I am prepping for the next step.
6. I am realizing that my destiny belongs to ME and to MY FUTURE GENERATIONS.
My son is now eight; he is my only child. I pray that what I plant will be the right type of crops that he will reap; I want my example to guide him during his childhood. I pray he knows how to make good decisions and how to allow God to take first place in his life. I pray that what I believe, know and experience will help to shape the lives of my future generations in positive ways.
7. I respect and defer to those who have more experience in life matters.
I always carry a writing tablet and a pen with me. I will whip it out on occasion to scribe wise words being imparted to me directly or should I happen to be within earshot of great advice or a memorable quote. Sitting under great leadership (such as at church) is a very wonderful experience for me. I LOVE to inhale wisdom and knowledge. But hearing (or writing down) the information is only the beginning. What I do with it matters MUCH more. My newest practice is to make every effort to place all I learned into practice and build on it, much like stepping-stones.
This list could go on infinitely, but summarily I realize that growth is taking place in the important areas of my life. I want to be ready for my breakthrough. Without adequate preparation I won't be able to walk into my God-ordained destiny.
I know, without a doubt, that "life unusual" is just around the corner!!!!


text:
Jerusalem Academy Chamber Choir
The Jerusalem Academy Chamber Choir has 32 members, mostly students or graduates of the Jerusalem Academy of Music and Dance. The choir, founded in 1969 by Avner Itai, was immediately recognized as one of the best choirs in the country. Music Director is Stanley Sperber.
These days it is known as the leading professional a cappella choir in Israel. The choir won gold and silver medals in competitions in the USA and in Germany, it has sung under the direction of world renowned conductors, among them Leonard Bernstein, Zubin Mehta, Gary Bertini, Kurt Masur and Daniel Barenboim. The choir specializes in a cappella singing, and premieres many Israeli works.
Beginning with 2014 the choir has had concert tours in Hungary, Germany and Poland where it performed in different festivals, and in Jewish and local communities, in a cappella programs as well as with orchestral players from all over Europe. In 2016, the choir sang in front of an audience of 100,000 spectators on the banks of the Oder River in Wroclaw, Poland.
The Jerusalem Academy Chamber Choir is a unique mix of young talented musicians representing the diversity of Israel and Jerusalem and includes Jews, Arabs, recent immigrants from the former Soviet Union and others. The Choir provides young musicians in Jerusalem an opportunity for professional growth and self-fulfillment. It encourages them to remain in Jerusalem and pursue their careers while contributing to the city's cultural and artistic life.
The Choir's repertoire is equally unique and includes original classical pieces, arrangements of Jewish and modern Israeli works, as well as culturally diverse pieces in Arabic, Latin, Hindu and Esperanto.
The Jerusalem Academy Chamber Choir is also known for its social engagement and educational activities in Jerusalem such as performances for asylum seekers and partnerships with Jerusalem school orchestras and choirs.
Many graduates of the choir continue in the path of director Stanley Sperber, by teaching music and establishing choirs in communities throughout Israel from north to south and, in this way, influencing a new generation of youth and children by bringing them into contact with high level musical and choral activities to which they would not otherwise be exposed
Stanley Sperber, Music Director
Born in NY, he graduated with a degree in musicology from Columbia University and completed his MA in conducting at the Juilliard School. He founded the Zamir Chorale, with whom he appeared in Israel at the Zimriyah in 1967. He came on Aliyah in 1972 and the following year made his conducting debut with the Israel Philharmonic Orchestra. Thereafter he conducted all the leading orchestras in Israel.
Maestro Sperber has conducted orchestras in Europe, Asia and the United States and appeared behind the Iron Curtain during the Cold War Era. For the past 20 years he has conducted annually "Messiah" by Handel at the Lyric Opera of Chicago with a choir of 1.500 singers.
Facebook: facebook.com/JAMDChoir
Webseite: www.jamd.ac.il


text:
You are here: NUHA Foundation > Community Development > Directory of Schools & Education NGOs > Angelic Army School
Angelic Army School, pre-school, Homabay County Kenya, 2014, armyangelic@gmail.com
"Angelic Army School is a non-profit, community pre-school founded in June 2014 in Rangwe, Homabay county in Kenya. It all started in a small community church, where 32 children were enrolled as a result of community project. By 2015, the number of children in our school had doubled to 78, which was more than the church could accommodate. A community member provided us with a piece of land at an affordable rate for the construction of classrooms. The school has a hall made of second hand iron sheets that accommodates four classes: the baby class, nursery, pre-school unit and class one. Our school has four ECDE-trained teachers, two matrons and two cooks. We believe that we will continue to grow and will play a more significant role in the community in future years. Our aims are twofold: to do away with the lack of education that is common in our community; and to provide a healthy environment for the children by offering them a balanced diet and providing them with proper medication."


Sunday Platform - Leader Anne Klaeysen: What About the Children?
This summer we were riveted by stories about children on our southern border and in a cave in Thailand. People around the world cheered when one by one that boys and their soccer coach were rescued from the cave. But what about the children our government separated from their parents? They still suffer. Even those who have been reunited will experience trauma. This morning we will consider our accountability and responsibility for the children of the world.


Destination NSW released its first Western Sydney Visitor Economy Strategy this month, in response to the region's growing tourism sector.
WSROC President Cr Stephen Bali said "It is great to see the NSW Government focus on Western Sydney as a tourism region. We have amazing destinations, natural assets and cultural experiences to share with Australia and the world.
"Currently, Western Sydney's visitor economy delivers $4.2 billion to the NSW economy. This includes a large number of domestic day trippers, as well as international guests many of whom are coming to visit family and friends," said Cr Bali.
"The new Strategy highlights our region's cultural diversity, rich heritage and natural environment as key strengths. It also accurately identifies transport connectivity and lack of a dedicated Destination Network as key barriers to the region's tourism development.
"While this is a fantastic first step to building Western Sydney's visitor economy, I am disappointed that the strategy does not recognise the role of local government in destination marketing and tourism, both as a provider of experiences and custodian of many of the West's venues, events and attractions," said Cr Bali.
As part of the strategy, Destination NSW has signed a memorandum of understanding with the NSW Business Chamber and Western Sydney Business Connection, to conduct a number of projects which will inform the Strategy actions over the coming years.
This includes mapping of Western Sydney's current infrastructure, events and attractions as well as developing a marketing strategy that includes packaging the region's experiences and touring routes.
Destination NSW will be providing a briefing to councils on the aim and scope of the strategy in the coming months. Any council officers interested in attending should contact the WSROC office.


text:
Q: Highcharts reloading issue with Backbone.js I'm struggling to solve a problem I have with getting a chart to be redrawn after navigating to another view and then return back to the same chart view.
I'm using Backbone.js and Underscore as a MVC and templating solution for my application.
When I navigate to the charting page initially it works great, but if I move away and then come back I get a `TypeError: chart.series[0] is undefined in the console log.
I have highlighted line where the error occurs in the code below, close to the end.
My thought is that I may need to destroy() the chart at some point, but I'm unsure where I would do this and if it would solve my problem.
I recently changed the script to now use HighStock 'Highstock JS v1.3.6 (2013-10-04)' from earlier HighCharts ver 2.3.5, where it appeared that I did not have this issue.
The app is live online if anyone really needs or wants to see it in action, let me know.
The following code section is the function thatis called by the Backbone router.
If there is a need for other sections of code, please let me know.
I'll be grateful for any advice.
EDIT:
I have managed to get this in JSFiddle for anyone to view the problem.
Clickty clack your fury tailless one here http://jsfiddle.net/rockwallaby/pqKWj
When you first run it up, you will get a trend being displayed.
Then hit the 'Go to a different page' link, you will get a fairly blank page.
On that page there is a link to bring you back to the trend page.
Hitting that link brings you back but the trend does not get rendered correctly due to the above mentioned error.
//=================================================================================
//  trendsBattery
//  A simple trend view showing Battery Volts and Solar Charge
//
window.trendsBattery = Backbone.View.extend({
trendModel: new TrendsModel(),
template: _.template(trendsTemplate),
chart: null,

chartoptions:{
    chart: {
        renderTo: 'chart-container',
    },
    rangeSelector: {
        enabled: false,
    },
    title:{
        text:'Battery Volts & Solar Amps'
    },
    xAxis: {
        type:'datetime',
        dateTimeLabelFormats: {month:'%e. %b',year:'%b'}
    },
    yAxis: [{
            title :{text: 'Battery Volts'},
            min: 22,
            max: 32,
            minorGridLineColor: '#E0E0E0',
    },
    {
            title :{text: 'Solar Charge Amps'},
            min: 0,
            max: 16,
            opposite: true,
    },
    ],
    series:[
        {yAxis: 0, data: [], type: 'line', step: true, name: 'Battery Vdc'},
        {yAxis: 1, data: [], type: 'line', step: true, name: 'Solar Amps'},
    ],
},

render:function() {
    that = this;
    $(this.el).html(this.template());
    this.chartoptions.chart.width = (windowWidth);
    this.chartoptions.chart.height = (windowHeight - 150);
    setTimeout(function() {
        chart = new Highcharts.StockChart(that.chartoptions);
        chart.events ={load: that.requestData(this.chart) };
    },20);
    return this;
},
requestData: function(chart){

    var querystring = '//myHostServer.com/myFolder/myPHP.php';
    jQuery.get(querystring, null, function(csv, state, xhr) {
        if (typeof csv !== 'string') {
            csv = xhr.responseText;
        };
        csv = csv.split(/\n/g);
        var vB_array = [];
        var iS_array = [];

        jQuery.each(csv, function (i, line) {
            if (line.length > 1) {
                line_array = line.split(',');
                var date = parseInt(line_array[0]) * 1000;
                var vBpoint = {};
                var iSpoint = {};
                vBpoint.x = date;
                iSpoint.x = date;
                vBpoint.y = parseFloat(line_array[1]);
                iSpoint.y = parseFloat(line_array[4]);
                vB_array.unshift(vBpoint);
                iS_array.unshift(iSpoint);
            };
        });
            chart.series[0].setData(vB_array, false);  // <<<<< Problem Area
            chart.series[1].setData(iS_array, false);
            chart.redraw();
    });
    chart.xAxis[0].setExtremes();    // expand out the scrollbar when moving through time:
    },
});

A: I just updated jsfiddle with the suggestion I provided in comment, it's working.
window.trendView = Backbone.View.extend({
    trendModel: new TrendsModel(),
    template: _.template(trendTemplate),
    chart: null,
    getChartOptions: function () {
        return {
            chart: {
                animation: true,
                renderTo: 'chart-container',
                backgroundColor: '#fff'
            },
            rangeSelector: {
                enabled: false
            },
            title: {
                text: 'Battery Volts & Solar Amps'
            },
            xAxis: {
                type: 'datetime',
                dateTimeLabelFormats: {
                    month: '%e. %b',
                    year: '%b'
                } // don't display the dummy year:
            },
            yAxis: [{
                title: {
                    text: 'Battery Volts'
                },
                min: 22,
                max: 32,
                minorGridLineColor: '#E0E0E0'
            }, {
                title: {
                    text: 'Solar Charge Amps'
                },
                min: 0,
                max: 16,
                opposite: true
            }],
            series: [{
                yAxis: 0,
                data: [],
                type: 'line',
                step: true,
                name: 'Battery Vdc'
            }, {
                yAxis: 1,
                data: [],
                type: 'line',
                step: true,
                name: 'Solar Amps'
            }]
        }
    },

    render: function () {
        that = this;
        $(this.el).html(this.template());
        var chartOptions = that.getChartOptions();
        chartOptions.chart.width = (windowWidth - 50);
        chartOptions.chart.height = (windowHeight - 50);
        setTimeout(function () {
            chart = new Highcharts.StockChart(chartOptions);
            chart.events = {
                load: that.requestData(this.chart)
            };
        }, 20);
        return this;
    },
    requestData: function (chart) {
        var querystring = '//paulalting.com/hydrosolar/clientGET.php?id=trendVolts&start=6400&size=200';
        console.log(querystring);
        jQuery.get(querystring, null, function (csv, state, xhr) {
            if (typeof csv !== 'string') {
                csv = xhr.responseText;
            }
            csv = csv.split(/\n/g);
            var vB_array = [];
            var iS_array = [];

            jQuery.each(csv, function (i, line) {
                if (line.length > 1) {
                    line_array = line.split(',');
                    var date = parseInt(line_array[0], 10) * 1000;
                    var vBpoint = {};
                    var iSpoint = {};
                    vBpoint.x = date;
                    iSpoint.x = date;
                    vBpoint.y = parseFloat(line_array[1]);
                    iSpoint.y = parseFloat(line_array[4]);
                    vB_array.unshift(vBpoint);
                    iS_array.unshift(iSpoint);
                }
            });
            chart.series[0].setData(vB_array, false); // <<<<< Problem Area
            chart.series[1].setData(iS_array, false);
            chart.redraw();
        });
        chart.xAxis[0].setExtremes(); // expand out the scrollbar when moving through time:
    }
});

here is the link
http://jsfiddle.net/pqKWj/14/
If you are interested let me know I see some more similar problems in the code, which I think fine for now, but will create issues, when you have 2 charts in the same page etc. we can talk