text:
Council Candidate Balks at Campaign Finance Questions From 'Pretty Girl'
By DNAinfo Staff on January 22, 2013 1:52pm
UPPER EAST SIDE — A host of new candidates are entering the City Council race for Jessica Lappin's soon-to-be-vacated District 5 seat — but at least one of them doesn't like to talk to the ladies about his finances.
Ed Hartzog, a Community Board 8 member who once worked for Anthony Weiner's campaign, has not widely publicized his candidacy, but he has raised nearly $8,000 since throwing his hat into the ring about a month ago, according to documents listed on the New York City Campaign Finance Board website. About half the donations have come from out of state, the documents show.
When a DNAinfo.com New York reporter asked about the campaign finance documents recently, Hartzog replied, "What's a pretty girl like you doing reading those?"
Asked about his comments later, he added, "I hope for goodness sake that my flippant comment isn't going to be part of the story. I was just sort of being something. I hope you didn't take offense by that. I didn't mean to be offensive."
Hartzog, 50, has raised $7,953 so far for the local Upper East Side race, which puts him in the middle of the pack of what the other candidates for the seat have raised, documents show. At least 10 of Hartzog's 21 donors live outside New York State.
When pressed about this, Hartzog said: "When you run for office, the first people [are from] the friends-and-family list," who are not necessarily from the city.
"Once we have a chance to do a full filing period to do fundraising, I think that'll be different," Hartzog continued. "I think you'll see a lot of community support."
Hartzog said he grew interested in politics because his father, George B. Hartzog Jr., served as director of the National Park Service from January 1964 to December 1972.
"I watched him, and those politicians from that era, do a lot of great things at that time, and I saw them getting a lot of things done," he said. "Even though I was very small, I was old enough to appreciate it and find it very exciting."
Hartzog has made a name for himself on CB8 as a proponent of smart development, calling on area medical institutions to be better neighbors by creating more open space.
He has been involved in local politics — including a two-month stint as a field coordinator for former U.S. Rep. Anthony Weiner's campaign — and has also served as an officer of the New Democratic Majority.
And he founded and serves as the executive director of Kids Voting New York City, an educational organization that fosters youth civic engagement.
Stalwart political consultant Hank Sheinkopf — a top Democratic strategist known as "The Terminator" — confirmed that he's in discussions with Hartzog to work on the campaign.
Hartzog approached Sheinkopf shortly after Dec. 17, 2012 — when the Upper East Side resident registered to run for office — and they have communicated about working together since, they said.
"We've been having a good time together," Sheinkopf said, "and it might lead to a more permanent engagement."
Hartzog added, "I would feel very fortunate to have someone of his stature and experience on both the national and local level work on my campaign."
Other candidates' war chests range from full to nil.
Benjamin Kallos leads the pack with $43,283 in donations since declaring his candidacy on Jan. 24, 2012, documents show.
Money-wise, Kallos directly trailed by Domenico Minerva, who has raised $27, 213.
Hill Krishnan has collected $2,565.
Assemblyman Micah Kellner — who announced his candidacy last week — has not yet listed contributions, record shows.
Next in Upper East Side & Roosevelt Island
Fancy French Bistro's Sex Harassment of Dishwasher Nearly Killed Her: Suit
See How Much Time You've Lost to Subway Delays Since 2012
Elite High Schools Should Ditch Admission Test to Increase Diversity: Study
MTA to Start Phasing Out MetroCards in 2019, Officials Say
NYC Rents Are Still High, But Price Growth Slows to a Crawl, Report Finds
Police Shoot Knife-Wielding Man Who Charged at Them, NYPD Says
LIC, Midtown West Among 4 Neighborhoods Pitched by City for Next Amazon HQ
Columbia Street Waterfront District »
Jiu Jitsu Instructor Says Sexed-Up Dojo Axed Her for Showing Racy Video
New York City Collects Record $1.9 Billion in Fines and Fees


text:
Chancery Court Dismisses Derivative Lawsuit against GM Directors Relating to Recalled Ignition Switches, Finding That Plaintiffs Failed to Show Demand Futility
Browse archives for July 10, 2015
Bad Faith, Breach of Fiduciary Duty, Caremark, Chancery Court Rule 23.1, Demand Futility, Derivative Action, Derivative Claim, Derivative Suit, Duty of Loyalty, Fiduciary Duty
By Scott Waxman and Lauren Garraux
In a June 26, 2015 Memorandum Opinion, Vice Chancellor Sam Glasscock III dismissed a derivative complaint filed by stockholders of General Motors ("GM") relating to defective ignition switches that led to the recall of approximately 13 million GM vehicles beginning in February 2014. According to Vice Chancellor Glasscock, Plaintiffs failed to adequately plead bad faith on the part of the GM directors named as defendants in the lawsuit and, therefore, failed to show demand futility under Chancery Rule 23.1.
The general facts underlying this derivative lawsuit have been widely publicized and relate to GM's recall of approximately 13 million vehicles for issues with the vehicles' ignition switch, which caused a vehicle's engine and electrical system to shut off, disabling power steering and power brakes and causing the vehicle's airbags to not deploy in the event of a crash.
Plaintiffs, stockholders of GM, subsequently filed this derivative lawsuit seeking to hold GM's directors personally liable for these losses, which Plaintiffs allege amount to breaches of the duty of loyalty. Because Plaintiffs did not make a pre-suit demand on GM's Board prior to filing suit, the issue before the Court was whether Plaintiff's sufficiently demonstrated demand futility, a necessarily "rigorous" standard to "prevent usurpation of a core director function by a stockholder, with all the distraction and chaos that would portend." Vice Chancellor Glasscock concluded that the stockholders failed to plead demand futility and, therefore, dismissed their complaint pursuant to Rule 23.1.
First, Vice Chancellor Glasscock concluded that Plaintiffs failed to show that certain actions taken by GM's directors — namely, transferring risk management responsibilities to the general auditor and the audit committee, decisions which Plaintiffs alleged made an already poorly-functioning risk management system even worse — were not a valid exercise of business judgment because they were taken in bad faith. According to the Vice Chancellor, Plaintiffs identified no "red flags" that would have made the Board aware that its risk management system was not functioning as it should. As a result, Vice Chancellor Glasscock was unable to conclude that the board's transfer of responsibility — a decision which he described as squarely within the realm of director decision-making — was the product of bad faith or reflected a conscious disregard of the Board's duties.
Vice Chancellor Glasscock similarly rejected Plaintiffs' contentions relating to the Board's alleged inaction, in particular, the Board's alleged failure to implement a reporting system which would have apprised it specifically of serious injuries and deaths resulting from safety defects, as well as lawsuits that potentially involved punitive damages. As the Vice Chancellor explained, GM did have a risk reporting system and Plaintiffs' claim that that system was insufficient in hindsight did not amount to an "utter[] fail[ure] to implement any reporting or information system or controls," as is required to raise a reasonable doubt as to the directors' good faith under the standard set forth in the Chancery Court's decision in In re Caremark International Inc. Derivative Litigation.
Finally, Vice Chancellor Glasscock determined that Plaintiffs failed to plead with particularity that the Board consciously failed to monitor or oversee the company's operations, an alternative basis for liability under Caremark. Specifically, the Vice Chancellor concluded that Plaintiffs had not pled with particularity the existence of "red flags" that the Board consciously ignored and otherwise failed to plead that the Board knew that its existing systems were inadequate.
For these reasons, Vice Chancellor Glasscock granted GM's motion to dismiss the derivative complaint under Chancery Rule 23.1.
InReGeneralMotors
Delaware Court of Chancery Declines to Dismiss Claims for Breach of Contract and Breach of Fiduciary Duties
Delaware Chancery Court Addresses Alleged Breaches of LLC Agreement

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: How can one distinguish the host and the port in an IPv6 URL? URLs always have this format:
<protocol>://<host>[:<port>]/[<path>][#<hash>]

The problem is that IPv6 uses colons, just like the separator of port and host, e.g:
2001:db8:1f70::999:de8:7648:6e8

But what if this is the host, and I want to connect to it with HTTP on port 100?
http://2001:db8:1f70::999:de8:7648:6e8:100/

The problem is the last colon. Since zero's are omitted with double colons (between 1f70 and 999), it's unknown if ':100' belongs to the IP or the port number. How can we know this?

A: The notation in that case is to encode the IPv6 IP number in square brackets:
http://[2001:db8:1f70::999:de8:7648:6e8]:100/

That's RFC 3986, section 3.2.2: Host

A host identified by an Internet Protocol literal address, version 6
      [RFC3513] or later, is distinguished by enclosing the IP literal
      within square brackets ("[" and "]").  This is the only place where
      square bracket characters are allowed in the URI syntax.  In
      anticipation of future, as-yet-undefined IP literal address formats,
      an implementation may use an optional version flag to indicate such a
      format explicitly rather than rely on heuristic determination.

redpajama_set_name: RedPajamaStackExchange


Kent Wildlife Trust are now grazing their own Exmoors on Burham Downs for the first time. Elfin and Merlin travelled from Silverdale to Maidstone earlier this year to graze chalk downland, woodland, and scrub with two old chalk quarries. Dave Hutton (warden) is pleased with the way in which the ponies are grazing the site to date and is getting lots of positive feedback from the visitors. Ann Massini is helping to support the project.


text:
Pulaski Library, also known as Hudson Branch Library, is a historic library building located at Rochester in Monroe County, New York. It was built in 1931 and is a tall one story building with a full basement and small second story office over the rear entrance foyer.  The front entrance portico is flanked by round Doric columns decorated with bosses on the column necks.  It was the second permanent library constructed by the City of Rochester.  The library was dedicated by the local Polish citizenry to General Casmir Pulaski.  It closed in 1994.

It was listed on the National Register of Historic Places in 2002.

References

Library buildings completed in 1931
Educational buildings in Rochester, New York
Libraries on the National Register of Historic Places in New York (state)
National Register of Historic Places in Rochester, New York

redpajama_set_name: RedPajamaWikipedia


text:
PayPal withdraws from association overseeing Facebook's Libra cryptocurrency
Libra has faced regulatory scrutiny from lawmakers.
Queenie Wong
Oct. 4, 2019 1:23 p.m. PT
Facebook and its partners plan to launch a new cryptocurrency called Libra in 2020.
Thomas Trutschel via Getty Images
Payments company PayPal is withdrawing from an association made up of Facebook and other companies that are overseeing a new cryptocurrency called Libra, which is scheduled to launch in 2020.
The move by PayPal underscores the challenges that Facebook and its partners that are part of the Libra Association face as the group tries to get the cryptocurrency off the ground.
"PayPal has made the decision to forgo further participation in the Libra Association at this time and to continue to focus on advancing our existing mission and business priorities as we strive to democratize access to financial services for underserved populations," said Amanda Christine Miller, a spokeswoman for PayPal.
She didn't say why the payments company is dropping out of the association. But she did note that PayPal supports the Libra Association's goals and will continue to partner with Facebook in other ways.
Libra, which is scheduled to launch in 2020, has faced regulatory scrutiny from lawmakers around the globe who are concerned it could be abused for money-laundering and other illegal activities. Facebook is also building a digital wallet, called Calibra, to store the currency.
Visa, Mastercard and other financial partners have been reconsidering their involvement in the effort after regulatory backlash, The Wall Street Journal reported this week.
Dante Disparte, head of policy and communications for the Libra Association, declined to say if other partners are also withdrawing. The group said it has "no other member news to share at this time."
"This journey to build a generational payment network like the Libra project is not an easy path," he said in a statement. "We recognize that change is hard, and that each organization that started this journey will have to make its own assessment of risks and rewards of being committed to seeing through the change that Libra promises."
Now playing: Watch this: Would you use Facebook's new Libra cryptocurrency? (The...
Tech Industry Facebook Cryptocurrency
Discuss: PayPal withdraws from association overseeing Facebook's Libra cryptocurrency


text:
How A&W Took Control of its Own Destiny Again
It's been 10 years since the iconic brand placed its future in the hands of franchisees. And it hasn't looked back since.
Web Exclusives | December 22, 2021 | Danny Klein
A&W's root beer is core to who the brand is, and franchisees understood that.
Kevin Bazner had an agreement to join another brand on his desk when the phone rang. It was Dale Mulder, an A&W lifer who had been with the chain since the early 1960s, and is credited as the first restaurant owner to put a bacon cheeseburger on the menu some 58 years ago.
"He said, 'well, you haven't sign anything, have you?" Bazner says.
Mulder, now A&W's chairman, was about to join a core group of franchisees and buy the iconic restaurant back from Yum! Brands. The Taco Bell, KFC, Pizza Hut, and Habit Burger owner acquired A&W, along with Long John Silver's, in 2002.
Kevin Klein, chairman of the National A&W Franchisee Association, says the brand got "kind of lost there" operating under one of the largest umbrellas in quick service. Perhaps most notably, A&W's growth had redirected toward co-brands—a path that turned a lot of operators into "a slave to both brands," he says. Generally, co-brands end up leaning one concept over another, and in A&W's case, running alongside Yum!'s chains seemed to favor whoever else was sharing the space, whether it was KFC or Long John Silver's. "We were kind of second fiddle in those things and lost some control," Klein says.
It's not to say Yum! didn't aid A&W in some respects. The company brought stability to its menu, for one, and reeled in add-ons that had bloated across stores.
Yet the broader implications threatened something far more lasting—A&W's core equities. Scalable changes, like bag-in-the-box root beer, brought into stores, put into the mix machines, and dispensed like everything else, alongside everything else, drifted the brand further and further from its peak, which, in the late 1960s, had numbered as many as 2,400 restaurants. Roughly 70 percent of the system adopted this approach, and, again, co-brands represented the majority of the concept's expansion.
Franchisees wanted to put both hands on the reins again, Klein says. But he's not sure they would have even tried if Bazner wasn't willing.
Bazner first joined A&W in 1985, working in corporate operations. Three years later, he assumed control of the company's international arm and became president and COO from 2000–2003. During his time away, he was a franchising consultant, investor, and ultimately, president and COO of Smoothie King.
Mulder's call in 2011, though, jogged Bazner's memories. "The short answer is, I never gave it a second thought," Bazner says. "I was like, yes. This is the right thing for me. It feels good. Working with people you know and like and having a trusting relationship with over the years."
"And at a point and time in my career when I was asking myself what's going to be my last mark, if you may, in the industry, it just felt right that it would be A&W," he adds.
December 19 marked 10 years since A&W's franchisees closed the deal, and it's still the only major restaurant brand 100 percent owned by its operators.
Klein, who was actually hired by Bazner—then a district manager—in 1985, calls those early stages a "whirlwind time." A&W had a national convention coming up in January and, while they were happy to have the brand back, nobody had a blueprint for whether or not this would work.
Let's turn the calendar forward. A&W's same-store sales have increased every year since, reversing seven years of declines. Comps are up 10.2 percent in 2021, following last year's 9.2 percent growth. Average-unit volumes climbed nearly 50 percent in that 10-year stretch and close to 70 new restaurants opened, with more than 20 in development.
Bazner says A&W is in positon to achieve yearly growth, in terms of unit count for its base-brand business, for the "first time in decades" this coming year. Ever since acquiring A&W, the departure from co-brands and toward A&W-centric venues, especially drive-thrus, dragged the overall unit count down. It was a necessary step, Bazner says, to tighten what had become a misrepresentation of A&W when A&W was at its best.
In the past three years, the chain's co-brand footprint has declined by a net of 69 locations. And that side of the business won't grow again.
"However, in 2022, we will be positive store count for our core base-brand business," Bazner reiterates. "And I expect that given the pipeline we have, the interest we have in the brand, for that to continue."
It's what Bazner believes will define the next decade for A&W—measured, replicable, annual growth in terms of store counts of that core A&W concept. Minus a few exceptions, we're talking freestanding or travel plaza stores, with drive-thrus and seating.
"The 50 percent same-store sales growth that we've seen in average-unit volumes over 10 years puts us in the decision set when franchisee prospects are looking around the industry in terms of where is an opportunity," Bazner says. "Our financials have gotten the point, the ROI has gotten to the point, where we're getting people's attention. We're in the discussion."
Interest among prospective franchisees is also at the highest level since 2011, the company says.
"We built an organization, we didn't inherit an organization," CEO Kevin Bazner says.
The top quartile of freestanding A&W's with a drive-thru reported average net sales of $1.574 million last year (the total average was $1.1 million). A&W posted U.S. systemwide sales of $235 million and finished the calendar with 541 total units—a 31-store decline, year-over-year (co-brands factored in). There are also about 400 locations overseas, and plenty of growth opportunities, Bazner says.
So what rerouted one of the country's most recognizable brands? It wasn't just stepping away from co-brands and Yum!'s ownership.
That first year, A&W engaged outside help to poll consumers within a 3–5 radius of its single-brand stores. Meanwhile, Bazner and Paul Martino, the brand's president and COO, traveled across America and even overseas to take the pulse of franchisees. Mulder tagged along for some as well.
Bazner estimates they hit 80 percent of the system within two years. Two things became clear and they intertwined in many ways—among franchisees, there was a sense of apathy, Bazner says. For consumers, A&W had slid into a blurry middle ground. It wasn't McDonald's and it wasn't Five Guys, either.
"And we unanimously said, we've got to go one way or the other," Bazner says.
Given the fact A&W is not on every street corner, competing on price was going to feel like scaling Everest, he adds. A&W didn't have the share of voice. And, guests already perceived the brand as having higher prices and higher quality. "So we said, 'let's give them more of both," Bazner says.
Additionally, much of that apathy stemmed from A&W's identity starting to slip.
Root beer has been the bulk of its business over the company's entire history (the chain started as a root beer stand in 1919 in Lodi, California). Root beer outsells every other drink 3:1 at A&W. Of course, there isn't another quick-serve in the world who can mirror that.
The entire system went back to making it in-house with the ownership flip. "It's time consuming, it's very labor consumer, but it's worth it," Klein says.
Leadership received very little kickback, he adds. The board put incentives behind the mixers it uses (operators are literally making simple syrup). Restaurants take 12 gallons of water, 120 pounds of sugar, and stir it. Now, there are smaller batches. Either way, A&W offered rebate money behind auto mixers and enticed operators to order the equipment, which Klein says, some 95 percent did. The others were still mixing by hand.
No preservatives. No shortcuts. Served in a frosted glass and dispensed by a draft arm (in select locations).
None of that, no matter how you spin it, suggests a brand that competes at the bottom of the price ladder.
From day one and throughout this 10-year stretch, A&W's focus has been "quality is our value proposition, not price," Bazner says.
One of the first proclamations he made at that first January convention was A&W had zero intentions to develop a dollar menu. They'd still offer daily specials, coupons, etc., on the local level, but, nationally, A&W was going to center its strategy on quality and differentiated products at a fair price. "And rebuild the business that way," he says.
"The coupon clippers, whether it's physical or digital these days, are not the most loyal customers," Bazner adds. "They're loyal to the deal."
This has turned out to be a fortuitous call. With inflation pressing the price ceiling across the sector today, A&W finds itself in a position of strength. Brands that court guests who define value in other ways, like Starbucks for instance, tend to have more pricing power. There isn't as much risk pricing out a core base, like there would be at a chain that deep discounts to drive traffic.
At this point, Bazner says, A&W's customer understands the proposition. "Frankly, in the last two years, we've had an opportunity to take price through the quality we've been providing that we weren't able to before," he says.
And it all comes back to ownership. A&W doesn't host quarterly earnings calls or answer to private equity. Decisions run through a long-term filter. "There's no POS system, there's no marketing campaign [to provide a short-term fix]," Bazner says. "It's a long-term thing, always. And, fortunately with the shareholder structure, we've been able to do that."
Those were Bazner's marching orders from the outset. Because franchisees own A&W, everything is about protecting the company's interests.
"We built an organization, we didn't inherit an organization," he says. "We built it person-by-person with the notion and understanding that everybody coming into the organization, we exist to support these franchise partners."
Or as Klein puts it, "We came in as partners and we're spending our franchisees' money. But the thought was, 'what better way to use our franchisees' money, through dues and things like that, then to buy the company and get in control of it."
Klein says "90 percent-plus" of operators didn't want to grow the way Yum! was taking A&W (co-brands). Also, one of the realities of being involved with such a large franchise company was some operators felt unattended to, he adds. Namely single-unit ones.
Bazner's team quickly put people into the field to let owners "know we were back in town," Klein says. The company got the message across. And when January's convention arrived, franchisees recognized the hands-on nature of A&W's organization had returned.
Those ties have only gotten closer over the years, Klein says. There are multi-generational franchisees and board members dotted across the brand. They leaned on this support during COVID, when Bazner and other leaders hosted constant webinars to walk franchisees through what to do next, from PPP funding to safety measures.
The long-term vision Bazner referenced hangs over A&W at all times, Klein adds. And that's a good notion. There's no interest in selling the company or chasing large growth targets. Of the stores built since the acquisition, Klein says, only "one or two" have gone by the wayside. "Otherwise, these things are all financially feasible. They're all successful restaurants," he says. "And knowing that helps us to move forward, knowing that we do have a successful model."
"We'd like to be building faster," Klein continues. "But we're not out there signing 30- and 50-store deals to people who may have the money, but not the operational background to run it. We want to make sure everyone we put in business will be successful."
A&W's decade-long journey as a franchise-owned group has inspired a family feel throughout the system. It's a collection of operators that's emerged from the wringer, Klein says. Back in 2012, The Atlantic published an article on 10 companies it felt were approaching their expiration date. A&W was No. 9. Bazner admits The Atlantic wasn't that far off at the time. But they sure didn't turn out to be right.
"Our franchisees are some real tough people," Klein says. "And we continue to prove that."
Roetzel & Andress LPA
41 South High Street; Huntington Center, 21st Fl.
Roetzel is a full-service law firm that provides comprehensive, integrated legal (more)
Cooking & Prep Equipment
Metris Instruments East. LLC
25 Longmeadow Place 21
South Setauket
A GREAT Line for independent SALES REP - 20 years in business - SHIP in 48 hours. (more)
Headsets & Timers
CSI Drive Thru Communications Group, LTD
8901 West Fwy #141


text:
The Cosmic Origin of the Rig Veda
Because of the thirty or more color figures in the book, the publishers set the retail price higher than I would have liked. In order to make the book available to my obviously more intelligent good friends and followers I am offering twenty copies of the book to the first twenty of you who send your mailing address to angiras@firmament-chaos.com . Even shipping is free.
If you spread the word to others with similar interests, it may be possible to extend this offer. I have never written blogs or books expecting monetary returns, only to share my revelations of the profound knowledge in ancient texts and the Bible, which go far beyond what is taught in any universities and textbooks. Depending on your response I may be able to make more available!
I am happy to announce my new book, the culmination of 20 years of continuous study of ancient texts, titled "The Cosmic Origin of the RigVeda". The RigVeda is the oldest book in the world and the most sacred book of the Hindu religion. Although translated into all languages its subject matter has remained a mystery until today. My interest is not one of linguistics, but what the Rig Veda reveals about the creation of the Earth. Its 1,028 hymns voice fears of thunderbolts, meteorite 'falls' and world-wide earthquakes (the Biblical raash), at the same time offering praise for deluges, clouds of red soil and Soma (manna in the Bible, haoma, ambrosia) the first intoxicating dew, containing live sprouts which brought all current vegetative life to the Earth between 3687 and 687 BC, (leaving no time for evolution). It tells of ninety-nine thirty-year cycles of captures (kalpas) and releases (pralayas) of Indra in a geostationary orbit above Mt. Kailas the incremental tidal drag of which produced cratons which raised the continents and moved them to their current positions in only 3,000 years. Seismology has only recently become sufficiently sensitive to detect the incremental nature of the cratons, and uniformitarian geologists imagine they are billions of years old. Granite, miraculously produced by this process is found nowhere else in the solar System. The motion of the continents validates many aspects of Alfred Wegener's Drift of the Continents and shows why folding of the lithosphere was radially focused above. Mt. Kailas.
The location of the Aryan people in the Punjab is proven by a huge tidal bulge, the samudra, a confluence of marine waters, centered on Mt. Kailas to the East, which forced them to become a seafaring people. Its formation comprised horizon-to-horizon tidal waves of saltwater drawn eastward from the Atlantic, emptying the Mediterranean and Red seas at the beginning of each kalpa, which returned westward at each release. The eastward floods across Mesopotamia and the world-wide earthquakes at each capture of Indra forced every city along the way to excavate tells and build pyramids and ziggurats to keep their people from being carried away. This was true also for cultures in Central America because of flows of the Gulf of Mexico to the antipode of the samudra in the South Pacific. These ninety-nine episodes of marine incursions gradually diminished the value of agricultural land across Mesopotamia and some cultures ceased to exist. The sudden flooding at each capture drew the Red Sea across the Arabian peninsula killing many large animals and burying them in the Arabian gulf producing the largest oilfields in the world.
The samudra occupied a vast area, completely isolating the Indian continent and prevented all intercourse of the Aryans with the Dravidian culture on the continent leaving the entire area strewn with animal carcasses during the pralayas, (Siwalik deposits). The astronomical dates provide a definite constraint on the origin of the Hindu culture to after 600 BC. A map of the samudra somehow survived as an illustration in a book titled "H. G. Well's Pocket History of the World".
Fig 1. Mars Planum Boreum covered with the maelstrom in the northern ocean, the demise of the cosmic mill, Grotti, in Grottasongr, Prose Edda
Fig. 2. The circumpunct
Fig. 3 Valles Marineris
Fig. 4. The Eye of Ra hieroglyph, showing the solid core exiting through the Valles Marineris
The 'gods' addressed in the RigVeda have never been understood until now, primarily due to the current stable solar system in which we live. However, probes of Mars, Venus and Mercury all reveal features described in the ancient texts, such as the iconic 3 km-high island at the north pole of Mars formed by the expansion of the 'world egg' in the Oceanus Borealis (northern ocean). Mars remained stationary in the heavens during each 14.4 year kalpa, then left the Earth for 15.6 years, providing time for the recovery of its vegetation and the expansion of rhyolite intrusions beneath the continents, only to become recaptured ninety-nine times. The eye of Ra or (Horus) hieroglyph is obviously a depiction of the Valles Marineris, which is the fault through which the solid core of Mars was ejected in order to release Mars from its geostationary orbit each time.
The prominent northern island, now Planum Boreum, was the Egyptian duat and the Biblical raqia, stated in
Genesis 1:6 … Let there be a firmament (raqia) in the midst of the waters, and let it divide the waters above (on Mars) from the waters below (on Earth).
The same island seen centered on Mars, during the Vedic Period, was the origin of the 'lost' circumpunct symbol found in the texts of every ancient culture and Dan Brown's books. Amazingly, that island remains covered to this day by a huge mythical maelstrom (whirlpool) the size of Texas which overflowed the island and cascaded into the core of Mars through the "navel of the world" at its north pole, flashing into steam, ejecting its solid core at the end of each kalpa (encounter). The same island was Atlantis, told to have been covered by the ocean. Note that these most significant features are not discussed in 'scientific' literature because they cannot be explained.
The 3,000-year period of cyclic cosmic resurfacing of the Earth, the Vedic Period, ended in 687 BC but spanned a greater time than the current solar system configuration. The multiple 'deities' in the Rig Veda were based upon three huge bodies close above the Earth, as a result not eligible for the term "planet". The ancient texts have rightfully become recognized as 'Traditional Cosmology' because, unlike the "inflation" cosmology touted by the 'great minds' of the modern era, they represent the observations of every soul on Earth in the Vedic Period, (3687 to 687 BC). The Vedic hymns reveal many aspects of the heavenly bodies which puzzled them, questioning how Indra (Mars) remained stationary in the heavens, while all others rose in the East and set in the West.
Quoting from the Rig Veda RV (IV. XIV. 5.) How is it that, unbound and unsupported he falleth not, although directed downward? By what self-power moves he? Who hath seen it?
Since all of the soil on Earth today was blasted from hundreds of volcanoes in the northern hemisphere of Mars, 700 million years older than the Earth, the ubiquitous zircons in sedimentary rock and soil used to date deposits actually give the age of the planet from which they were blasted, not the age of the Earth. This has led to the estimated age of objects deposited in the new-fallen crust, the Cenezoic era, to be 66 million years thick, whereas it is less than 6,000 years old. The Earth was not formed by meteorites. All meteorites on Earth came from Mars and the differences in their oxygen isotopic ratios, currently believed to establish their origins from 'asteroids', are merely due to the explosive activity on that planet during the 3,000-year Vedic Period.
The currently accepted idea that the entire solar system is 4.6 billion years old, is due to the scattering of the Mars rocks, the ages calculated from the zircons blasted from Mars, meteorites and a rapid-fire stream, ambhamsi in the RigVeda, of fourteen large incandescent bodies ejected from the huge vent at the north pole of Mars in rapid succession which impacted the near side of the Moon forming the maria. This was described in Egyptian myths as Isis (the Moon) collecting the fourteen pieces of Osiris body and placing a monument at each site. The calculated ages of the maria differ because each body came from deeper, (hotter) in Mars and so differing amounts of Argon were lost during their short flights.
The most ancient of the traditional cosmologies, recorded by Plato telling of "four suns" by an Egyptian priest is "remembered" in the myths of a number of Amerind cultures, proving the strength of their verbal transmission of ancient times is still strong. Seemingly simple expressions in the Rig Veda such as "Mt. Kailas was Indra's Home on Earth" reveal profound facts about how a huge body was captured in a geostationary orbit. Also the commonality of the "world egg" in many ancient texts reveals that every culture on Earth observed the same cosmic events in the heavens. No planet in the solar system today appears the same or is in the orbit it was in during the Vedic Period.
Geologists have much to learn about the Earth from traditional cosmologies like the Rig Veda, which explain the recently measured motion of the lithosphere as a unit (Carlo Doglioni) and the recent displacing of the continents, verifying and complementing Alfred Wegener's theory of Continental Drift.
The 'learned' Oriental Societies of the world do nothing more than contend with the fine details of linguistic forms, but have long ago given up trying to understand the actual meaning, the subject of the Rig Veda. This book is the only one to do so.
The book "The Cosmic Origin of the RigVeda" by John Ackerman is available HERE
~ by Angiras on July 8, 2019.
Posted in Anthropology, archaeology, astronomy, Astrophysics, Atlantis, Bible, catastrophism, Cosmology, geochemistry, geology, Hindu Mythology, mythology, Paleontology, paradigm shift, planetary science, Rig Veda, solar system, Solar system formation, Uncategorized, Velikovsky


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

package lease

import (
	"container/heap"
	"context"
	"errors"
	"math"
	"sort"
	"sync"
	"time"

	"github.com/coreos/go-semver/semver"
	pb "go.etcd.io/etcd/api/v3/etcdserverpb"
	"go.etcd.io/etcd/api/v3/version"
	"go.etcd.io/etcd/server/v3/lease/leasepb"
	"go.etcd.io/etcd/server/v3/storage/backend"
	"go.etcd.io/etcd/server/v3/storage/schema"
	"go.uber.org/zap"
)

// NoLease is a special LeaseID representing the absence of a lease.
const NoLease = LeaseID(0)

// MaxLeaseTTL is the maximum lease TTL value
const MaxLeaseTTL = 9000000000

var (
	forever = time.Time{}

	// maximum number of leases to revoke per second; configurable for tests
	leaseRevokeRate = 1000

	// maximum number of lease checkpoints recorded to the consensus log per second; configurable for tests
	leaseCheckpointRate = 1000

	// the default interval of lease checkpoint
	defaultLeaseCheckpointInterval = 5 * time.Minute

	// maximum number of lease checkpoints to batch into a single consensus log entry
	maxLeaseCheckpointBatchSize = 1000

	// the default interval to check if the expired lease is revoked
	defaultExpiredleaseRetryInterval = 3 * time.Second

	ErrNotPrimary       = errors.New("not a primary lessor")
	ErrLeaseNotFound    = errors.New("lease not found")
	ErrLeaseExists      = errors.New("lease already exists")
	ErrLeaseTTLTooLarge = errors.New("too large lease TTL")
)

// TxnDelete is a TxnWrite that only permits deletes. Defined here
// to avoid circular dependency with mvcc.
type TxnDelete interface {
	DeleteRange(key, end []byte) (n, rev int64)
	End()
}

// RangeDeleter is a TxnDelete constructor.
type RangeDeleter func() TxnDelete

// Checkpointer permits checkpointing of lease remaining TTLs to the consensus log. Defined here to
// avoid circular dependency with mvcc.
type Checkpointer func(ctx context.Context, lc *pb.LeaseCheckpointRequest)

type LeaseID int64

// Lessor owns leases. It can grant, revoke, renew and modify leases for lessee.
type Lessor interface {
	// SetRangeDeleter lets the lessor create TxnDeletes to the store.
	// Lessor deletes the items in the revoked or expired lease by creating
	// new TxnDeletes.
	SetRangeDeleter(rd RangeDeleter)

	SetCheckpointer(cp Checkpointer)

	// Grant grants a lease that expires at least after TTL seconds.
	Grant(id LeaseID, ttl int64) (*Lease, error)
	// Revoke revokes a lease with given ID. The item attached to the
	// given lease will be removed. If the ID does not exist, an error
	// will be returned.
	Revoke(id LeaseID) error

	// Checkpoint applies the remainingTTL of a lease. The remainingTTL is used in Promote to set
	// the expiry of leases to less than the full TTL when possible.
	Checkpoint(id LeaseID, remainingTTL int64) error

	// Attach attaches given leaseItem to the lease with given LeaseID.
	// If the lease does not exist, an error will be returned.
	Attach(id LeaseID, items []LeaseItem) error

	// GetLease returns LeaseID for given item.
	// If no lease found, NoLease value will be returned.
	GetLease(item LeaseItem) LeaseID

	// Detach detaches given leaseItem from the lease with given LeaseID.
	// If the lease does not exist, an error will be returned.
	Detach(id LeaseID, items []LeaseItem) error

	// Promote promotes the lessor to be the primary lessor. Primary lessor manages
	// the expiration and renew of leases.
	// Newly promoted lessor renew the TTL of all lease to extend + previous TTL.
	Promote(extend time.Duration)

	// Demote demotes the lessor from being the primary lessor.
	Demote()

	// Renew renews a lease with given ID. It returns the renewed TTL. If the ID does not exist,
	// an error will be returned.
	Renew(id LeaseID) (int64, error)

	// Lookup gives the lease at a given lease id, if any
	Lookup(id LeaseID) *Lease

	// Leases lists all leases.
	Leases() []*Lease

	// ExpiredLeasesC returns a chan that is used to receive expired leases.
	ExpiredLeasesC() <-chan []*Lease

	// Recover recovers the lessor state from the given backend and RangeDeleter.
	Recover(b backend.Backend, rd RangeDeleter)

	// Stop stops the lessor for managing leases. The behavior of calling Stop multiple
	// times is undefined.
	Stop()
}

// lessor implements Lessor interface.
// TODO: use clockwork for testability.
type lessor struct {
	mu sync.RWMutex

	// demotec is set when the lessor is the primary.
	// demotec will be closed if the lessor is demoted.
	demotec chan struct{}

	leaseMap             map[LeaseID]*Lease
	leaseExpiredNotifier *LeaseExpiredNotifier
	leaseCheckpointHeap  LeaseQueue
	itemMap              map[LeaseItem]LeaseID

	// When a lease expires, the lessor will delete the
	// leased range (or key) by the RangeDeleter.
	rd RangeDeleter

	// When a lease's deadline should be persisted to preserve the remaining TTL across leader
	// elections and restarts, the lessor will checkpoint the lease by the Checkpointer.
	cp Checkpointer

	// backend to persist leases. We only persist lease ID and expiry for now.
	// The leased items can be recovered by iterating all the keys in kv.
	b backend.Backend

	// minLeaseTTL is the minimum lease TTL that can be granted for a lease. Any
	// requests for shorter TTLs are extended to the minimum TTL.
	minLeaseTTL int64

	expiredC chan []*Lease
	// stopC is a channel whose closure indicates that the lessor should be stopped.
	stopC chan struct{}
	// doneC is a channel whose closure indicates that the lessor is stopped.
	doneC chan struct{}

	lg *zap.Logger

	// Wait duration between lease checkpoints.
	checkpointInterval time.Duration
	// the interval to check if the expired lease is revoked
	expiredLeaseRetryInterval time.Duration
	// whether lessor should always persist remaining TTL (always enabled in v3.6).
	checkpointPersist bool
	// cluster is used to adapt lessor logic based on cluster version
	cluster cluster
}

type cluster interface {
	// Version is the cluster-wide minimum major.minor version.
	Version() *semver.Version
}

type LessorConfig struct {
	MinLeaseTTL                int64
	CheckpointInterval         time.Duration
	ExpiredLeasesRetryInterval time.Duration
	CheckpointPersist          bool
}

func NewLessor(lg *zap.Logger, b backend.Backend, cluster cluster, cfg LessorConfig) Lessor {
	return newLessor(lg, b, cluster, cfg)
}

func newLessor(lg *zap.Logger, b backend.Backend, cluster cluster, cfg LessorConfig) *lessor {
	checkpointInterval := cfg.CheckpointInterval
	expiredLeaseRetryInterval := cfg.ExpiredLeasesRetryInterval
	if checkpointInterval == 0 {
		checkpointInterval = defaultLeaseCheckpointInterval
	}
	if expiredLeaseRetryInterval == 0 {
		expiredLeaseRetryInterval = defaultExpiredleaseRetryInterval
	}
	l := &lessor{
		leaseMap:                  make(map[LeaseID]*Lease),
		itemMap:                   make(map[LeaseItem]LeaseID),
		leaseExpiredNotifier:      newLeaseExpiredNotifier(),
		leaseCheckpointHeap:       make(LeaseQueue, 0),
		b:                         b,
		minLeaseTTL:               cfg.MinLeaseTTL,
		checkpointInterval:        checkpointInterval,
		expiredLeaseRetryInterval: expiredLeaseRetryInterval,
		checkpointPersist:         cfg.CheckpointPersist,
		// expiredC is a small buffered chan to avoid unnecessary blocking.
		expiredC: make(chan []*Lease, 16),
		stopC:    make(chan struct{}),
		doneC:    make(chan struct{}),
		lg:       lg,
		cluster:  cluster,
	}
	l.initAndRecover()

	go l.runLoop()

	return l
}

// isPrimary indicates if this lessor is the primary lessor. The primary
// lessor manages lease expiration and renew.
//
// in etcd, raft leader is the primary. Thus there might be two primary
// leaders at the same time (raft allows concurrent leader but with different term)
// for at most a leader election timeout.
// The old primary leader cannot affect the correctness since its proposal has a
// smaller term and will not be committed.
//
// TODO: raft follower do not forward lease management proposals. There might be a
// very small window (within second normally which depends on go scheduling) that
// a raft follow is the primary between the raft leader demotion and lessor demotion.
// Usually this should not be a problem. Lease should not be that sensitive to timing.
func (le *lessor) isPrimary() bool {
	return le.demotec != nil
}

func (le *lessor) SetRangeDeleter(rd RangeDeleter) {
	le.mu.Lock()
	defer le.mu.Unlock()

	le.rd = rd
}

func (le *lessor) SetCheckpointer(cp Checkpointer) {
	le.mu.Lock()
	defer le.mu.Unlock()

	le.cp = cp
}

func (le *lessor) Grant(id LeaseID, ttl int64) (*Lease, error) {
	if id == NoLease {
		return nil, ErrLeaseNotFound
	}

	if ttl > MaxLeaseTTL {
		return nil, ErrLeaseTTLTooLarge
	}

	// TODO: when lessor is under high load, it should give out lease
	// with longer TTL to reduce renew load.
	l := &Lease{
		ID:      id,
		ttl:     ttl,
		itemSet: make(map[LeaseItem]struct{}),
		revokec: make(chan struct{}),
	}

	if l.ttl < le.minLeaseTTL {
		l.ttl = le.minLeaseTTL
	}

	le.mu.Lock()
	defer le.mu.Unlock()

	if _, ok := le.leaseMap[id]; ok {
		return nil, ErrLeaseExists
	}

	if le.isPrimary() {
		l.refresh(0)
	} else {
		l.forever()
	}

	le.leaseMap[id] = l
	l.persistTo(le.b)

	leaseTotalTTLs.Observe(float64(l.ttl))
	leaseGranted.Inc()

	if le.isPrimary() {
		item := &LeaseWithTime{id: l.ID, time: l.expiry}
		le.leaseExpiredNotifier.RegisterOrUpdate(item)
		le.scheduleCheckpointIfNeeded(l)
	}

	return l, nil
}

func (le *lessor) Revoke(id LeaseID) error {
	le.mu.Lock()

	l := le.leaseMap[id]
	if l == nil {
		le.mu.Unlock()
		return ErrLeaseNotFound
	}

	// We shouldn't delete the lease inside the transaction lock, otherwise
	// it may lead to deadlock with Grant or Checkpoint operations, which
	// acquire the le.mu firstly and then the batchTx lock.
	delete(le.leaseMap, id)

	defer close(l.revokec)
	// unlock before doing external work
	le.mu.Unlock()

	if le.rd == nil {
		return nil
	}

	txn := le.rd()

	// sort keys so deletes are in same order among all members,
	// otherwise the backend hashes will be different
	keys := l.Keys()
	sort.StringSlice(keys).Sort()
	for _, key := range keys {
		txn.DeleteRange([]byte(key), nil)
	}

	// lease deletion needs to be in the same backend transaction with the
	// kv deletion. Or we might end up with not executing the revoke or not
	// deleting the keys if etcdserver fails in between.
	schema.UnsafeDeleteLease(le.b.BatchTx(), &leasepb.Lease{ID: int64(l.ID)})

	txn.End()

	leaseRevoked.Inc()
	return nil
}

func (le *lessor) Checkpoint(id LeaseID, remainingTTL int64) error {
	le.mu.Lock()
	defer le.mu.Unlock()

	if l, ok := le.leaseMap[id]; ok {
		// when checkpointing, we only update the remainingTTL, Promote is responsible for applying this to lease expiry
		l.remainingTTL = remainingTTL
		if le.shouldPersistCheckpoints() {
			l.persistTo(le.b)
		}
		if le.isPrimary() {
			// schedule the next checkpoint as needed
			le.scheduleCheckpointIfNeeded(l)
		}
	}
	return nil
}

func (le *lessor) shouldPersistCheckpoints() bool {
	cv := le.cluster.Version()
	return le.checkpointPersist || (cv != nil && greaterOrEqual(*cv, version.V3_6))
}

func greaterOrEqual(first, second semver.Version) bool {
	return !version.LessThan(first, second)
}

// Renew renews an existing lease. If the given lease does not exist or
// has expired, an error will be returned.
func (le *lessor) Renew(id LeaseID) (int64, error) {
	le.mu.RLock()
	if !le.isPrimary() {
		// forward renew request to primary instead of returning error.
		le.mu.RUnlock()
		return -1, ErrNotPrimary
	}

	demotec := le.demotec

	l := le.leaseMap[id]
	if l == nil {
		le.mu.RUnlock()
		return -1, ErrLeaseNotFound
	}
	// Clear remaining TTL when we renew if it is set
	clearRemainingTTL := le.cp != nil && l.remainingTTL > 0

	le.mu.RUnlock()
	if l.expired() {
		select {
		// A expired lease might be pending for revoking or going through
		// quorum to be revoked. To be accurate, renew request must wait for the
		// deletion to complete.
		case <-l.revokec:
			return -1, ErrLeaseNotFound
		// The expired lease might fail to be revoked if the primary changes.
		// The caller will retry on ErrNotPrimary.
		case <-demotec:
			return -1, ErrNotPrimary
		case <-le.stopC:
			return -1, ErrNotPrimary
		}
	}

	// Clear remaining TTL when we renew if it is set
	// By applying a RAFT entry only when the remainingTTL is already set, we limit the number
	// of RAFT entries written per lease to a max of 2 per checkpoint interval.
	if clearRemainingTTL {
		le.cp(context.Background(), &pb.LeaseCheckpointRequest{Checkpoints: []*pb.LeaseCheckpoint{{ID: int64(l.ID), Remaining_TTL: 0}}})
	}

	le.mu.Lock()
	l.refresh(0)
	item := &LeaseWithTime{id: l.ID, time: l.expiry}
	le.leaseExpiredNotifier.RegisterOrUpdate(item)
	le.mu.Unlock()

	leaseRenewed.Inc()
	return l.ttl, nil
}

func (le *lessor) Lookup(id LeaseID) *Lease {
	le.mu.RLock()
	defer le.mu.RUnlock()
	return le.leaseMap[id]
}

func (le *lessor) unsafeLeases() []*Lease {
	leases := make([]*Lease, 0, len(le.leaseMap))
	for _, l := range le.leaseMap {
		leases = append(leases, l)
	}
	return leases
}

func (le *lessor) Leases() []*Lease {
	le.mu.RLock()
	ls := le.unsafeLeases()
	le.mu.RUnlock()
	sort.Sort(leasesByExpiry(ls))
	return ls
}

func (le *lessor) Promote(extend time.Duration) {
	le.mu.Lock()
	defer le.mu.Unlock()

	le.demotec = make(chan struct{})

	// refresh the expiries of all leases.
	for _, l := range le.leaseMap {
		l.refresh(extend)
		item := &LeaseWithTime{id: l.ID, time: l.expiry}
		le.leaseExpiredNotifier.RegisterOrUpdate(item)
		le.scheduleCheckpointIfNeeded(l)
	}

	if len(le.leaseMap) < leaseRevokeRate {
		// no possibility of lease pile-up
		return
	}

	// adjust expiries in case of overlap
	leases := le.unsafeLeases()
	sort.Sort(leasesByExpiry(leases))

	baseWindow := leases[0].Remaining()
	nextWindow := baseWindow + time.Second
	expires := 0
	// have fewer expires than the total revoke rate so piled up leases
	// don't consume the entire revoke limit
	targetExpiresPerSecond := (3 * leaseRevokeRate) / 4
	for _, l := range leases {
		remaining := l.Remaining()
		if remaining > nextWindow {
			baseWindow = remaining
			nextWindow = baseWindow + time.Second
			expires = 1
			continue
		}
		expires++
		if expires <= targetExpiresPerSecond {
			continue
		}
		rateDelay := float64(time.Second) * (float64(expires) / float64(targetExpiresPerSecond))
		// If leases are extended by n seconds, leases n seconds ahead of the
		// base window should be extended by only one second.
		rateDelay -= float64(remaining - baseWindow)
		delay := time.Duration(rateDelay)
		nextWindow = baseWindow + delay
		l.refresh(delay + extend)
		item := &LeaseWithTime{id: l.ID, time: l.expiry}
		le.leaseExpiredNotifier.RegisterOrUpdate(item)
		le.scheduleCheckpointIfNeeded(l)
	}
}

func (le *lessor) Demote() {
	le.mu.Lock()
	defer le.mu.Unlock()

	// set the expiries of all leases to forever
	for _, l := range le.leaseMap {
		l.forever()
	}

	le.clearScheduledLeasesCheckpoints()
	le.clearLeaseExpiredNotifier()

	if le.demotec != nil {
		close(le.demotec)
		le.demotec = nil
	}
}

// Attach attaches items to the lease with given ID. When the lease
// expires, the attached items will be automatically removed.
// If the given lease does not exist, an error will be returned.
func (le *lessor) Attach(id LeaseID, items []LeaseItem) error {
	le.mu.Lock()
	defer le.mu.Unlock()

	l := le.leaseMap[id]
	if l == nil {
		return ErrLeaseNotFound
	}

	l.mu.Lock()
	for _, it := range items {
		l.itemSet[it] = struct{}{}
		le.itemMap[it] = id
	}
	l.mu.Unlock()
	return nil
}

func (le *lessor) GetLease(item LeaseItem) LeaseID {
	le.mu.RLock()
	id := le.itemMap[item]
	le.mu.RUnlock()
	return id
}

// Detach detaches items from the lease with given ID.
// If the given lease does not exist, an error will be returned.
func (le *lessor) Detach(id LeaseID, items []LeaseItem) error {
	le.mu.Lock()
	defer le.mu.Unlock()

	l := le.leaseMap[id]
	if l == nil {
		return ErrLeaseNotFound
	}

	l.mu.Lock()
	for _, it := range items {
		delete(l.itemSet, it)
		delete(le.itemMap, it)
	}
	l.mu.Unlock()
	return nil
}

func (le *lessor) Recover(b backend.Backend, rd RangeDeleter) {
	le.mu.Lock()
	defer le.mu.Unlock()

	le.b = b
	le.rd = rd
	le.leaseMap = make(map[LeaseID]*Lease)
	le.itemMap = make(map[LeaseItem]LeaseID)
	le.initAndRecover()
}

func (le *lessor) ExpiredLeasesC() <-chan []*Lease {
	return le.expiredC
}

func (le *lessor) Stop() {
	close(le.stopC)
	<-le.doneC
}

func (le *lessor) runLoop() {
	defer close(le.doneC)

	for {
		le.revokeExpiredLeases()
		le.checkpointScheduledLeases()

		select {
		case <-time.After(500 * time.Millisecond):
		case <-le.stopC:
			return
		}
	}
}

// revokeExpiredLeases finds all leases past their expiry and sends them to expired channel for
// to be revoked.
func (le *lessor) revokeExpiredLeases() {
	var ls []*Lease

	// rate limit
	revokeLimit := leaseRevokeRate / 2

	le.mu.RLock()
	if le.isPrimary() {
		ls = le.findExpiredLeases(revokeLimit)
	}
	le.mu.RUnlock()

	if len(ls) != 0 {
		select {
		case <-le.stopC:
			return
		case le.expiredC <- ls:
		default:
			// the receiver of expiredC is probably busy handling
			// other stuff
			// let's try this next time after 500ms
		}
	}
}

// checkpointScheduledLeases finds all scheduled lease checkpoints that are due and
// submits them to the checkpointer to persist them to the consensus log.
func (le *lessor) checkpointScheduledLeases() {
	// rate limit
	for i := 0; i < leaseCheckpointRate/2; i++ {
		var cps []*pb.LeaseCheckpoint

		le.mu.Lock()
		if le.isPrimary() {
			cps = le.findDueScheduledCheckpoints(maxLeaseCheckpointBatchSize)
		}
		le.mu.Unlock()

		if len(cps) != 0 {
			le.cp(context.Background(), &pb.LeaseCheckpointRequest{Checkpoints: cps})
		}
		if len(cps) < maxLeaseCheckpointBatchSize {
			return
		}
	}
}

func (le *lessor) clearScheduledLeasesCheckpoints() {
	le.leaseCheckpointHeap = make(LeaseQueue, 0)
}

func (le *lessor) clearLeaseExpiredNotifier() {
	le.leaseExpiredNotifier = newLeaseExpiredNotifier()
}

// expireExists returns true if expiry items exist.
// It pops only when expiry item exists.
// "next" is true, to indicate that it may exist in next attempt.
func (le *lessor) expireExists() (l *Lease, ok bool, next bool) {
	if le.leaseExpiredNotifier.Len() == 0 {
		return nil, false, false
	}

	item := le.leaseExpiredNotifier.Peek()
	l = le.leaseMap[item.id]
	if l == nil {
		// lease has expired or been revoked
		// no need to revoke (nothing is expiry)
		le.leaseExpiredNotifier.Unregister() // O(log N)
		return nil, false, true
	}
	now := time.Now()
	if now.Before(item.time) /* item.time: expiration time */ {
		// Candidate expirations are caught up, reinsert this item
		// and no need to revoke (nothing is expiry)
		return l, false, false
	}

	// recheck if revoke is complete after retry interval
	item.time = now.Add(le.expiredLeaseRetryInterval)
	le.leaseExpiredNotifier.RegisterOrUpdate(item)
	return l, true, false
}

// findExpiredLeases loops leases in the leaseMap until reaching expired limit
// and returns the expired leases that needed to be revoked.
func (le *lessor) findExpiredLeases(limit int) []*Lease {
	leases := make([]*Lease, 0, 16)

	for {
		l, ok, next := le.expireExists()
		if !ok && !next {
			break
		}
		if !ok {
			continue
		}
		if next {
			continue
		}

		if l.expired() {
			leases = append(leases, l)

			// reach expired limit
			if len(leases) == limit {
				break
			}
		}
	}

	return leases
}

func (le *lessor) scheduleCheckpointIfNeeded(lease *Lease) {
	if le.cp == nil {
		return
	}

	if lease.getRemainingTTL() > int64(le.checkpointInterval.Seconds()) {
		if le.lg != nil {
			le.lg.Debug("Scheduling lease checkpoint",
				zap.Int64("leaseID", int64(lease.ID)),
				zap.Duration("intervalSeconds", le.checkpointInterval),
			)
		}
		heap.Push(&le.leaseCheckpointHeap, &LeaseWithTime{
			id:   lease.ID,
			time: time.Now().Add(le.checkpointInterval),
		})
	}
}

func (le *lessor) findDueScheduledCheckpoints(checkpointLimit int) []*pb.LeaseCheckpoint {
	if le.cp == nil {
		return nil
	}

	now := time.Now()
	var cps []*pb.LeaseCheckpoint
	for le.leaseCheckpointHeap.Len() > 0 && len(cps) < checkpointLimit {
		lt := le.leaseCheckpointHeap[0]
		if lt.time.After(now) /* lt.time: next checkpoint time */ {
			return cps
		}
		heap.Pop(&le.leaseCheckpointHeap)
		var l *Lease
		var ok bool
		if l, ok = le.leaseMap[lt.id]; !ok {
			continue
		}
		if !now.Before(l.expiry) {
			continue
		}
		remainingTTL := int64(math.Ceil(l.expiry.Sub(now).Seconds()))
		if remainingTTL >= l.ttl {
			continue
		}
		if le.lg != nil {
			le.lg.Debug("Checkpointing lease",
				zap.Int64("leaseID", int64(lt.id)),
				zap.Int64("remainingTTL", remainingTTL),
			)
		}
		cps = append(cps, &pb.LeaseCheckpoint{ID: int64(lt.id), Remaining_TTL: remainingTTL})
	}
	return cps
}

func (le *lessor) initAndRecover() {
	tx := le.b.BatchTx()

	tx.LockOutsideApply()
	schema.UnsafeCreateLeaseBucket(tx)
	lpbs := schema.MustUnsafeGetAllLeases(tx)
	tx.Unlock()
	for _, lpb := range lpbs {
		ID := LeaseID(lpb.ID)
		if lpb.TTL < le.minLeaseTTL {
			lpb.TTL = le.minLeaseTTL
		}
		le.leaseMap[ID] = &Lease{
			ID:  ID,
			ttl: lpb.TTL,
			// itemSet will be filled in when recover key-value pairs
			// set expiry to forever, refresh when promoted
			itemSet:      make(map[LeaseItem]struct{}),
			expiry:       forever,
			revokec:      make(chan struct{}),
			remainingTTL: lpb.RemainingTTL,
		}
	}
	le.leaseExpiredNotifier.Init()
	heap.Init(&le.leaseCheckpointHeap)

	le.b.ForceCommit()
}

// FakeLessor is a fake implementation of Lessor interface.
// Used for testing only.
type FakeLessor struct{}

func (fl *FakeLessor) SetRangeDeleter(dr RangeDeleter) {}

func (fl *FakeLessor) SetCheckpointer(cp Checkpointer) {}

func (fl *FakeLessor) Grant(id LeaseID, ttl int64) (*Lease, error) { return nil, nil }

func (fl *FakeLessor) Revoke(id LeaseID) error { return nil }

func (fl *FakeLessor) Checkpoint(id LeaseID, remainingTTL int64) error { return nil }

func (fl *FakeLessor) Attach(id LeaseID, items []LeaseItem) error { return nil }

func (fl *FakeLessor) GetLease(item LeaseItem) LeaseID            { return 0 }
func (fl *FakeLessor) Detach(id LeaseID, items []LeaseItem) error { return nil }

func (fl *FakeLessor) Promote(extend time.Duration) {}

func (fl *FakeLessor) Demote() {}

func (fl *FakeLessor) Renew(id LeaseID) (int64, error) { return 10, nil }

func (fl *FakeLessor) Lookup(id LeaseID) *Lease { return nil }

func (fl *FakeLessor) Leases() []*Lease { return nil }

func (fl *FakeLessor) ExpiredLeasesC() <-chan []*Lease { return nil }

func (fl *FakeLessor) Recover(b backend.Backend, rd RangeDeleter) {}

func (fl *FakeLessor) Stop() {}

type FakeTxnDelete struct {
	backend.BatchTx
}

func (ftd *FakeTxnDelete) DeleteRange(key, end []byte) (n, rev int64) { return 0, 0 }
func (ftd *FakeTxnDelete) End()                                       { ftd.Unlock() }

redpajama_set_name: RedPajamaGithub


Looking to get away for a few days with the family? Renting a lake house in Texas is an excellent option. With over 100 lakes and thousand of lake house rentals in Texas you'll want to spend a bit of time researching your options.
If you live near the Dallas/Fort Worth Texas area then consider Cedar Creek Lake as its's only one hour southwest of Dallas and there are dozens of great rental lake houses to fit almost any budget. Many of the homes allow you to pull your boat right up to the dock for easy access during your stay. Another great benefit of Cedar Creek Lake are the thriving communities around the lake with plenty of restaurants and community events.
Also in the DFW area, check out Lake Texoma with some of the best hiking, biking and wilderness areas in the state. You'll find plenty of private, romantic getaways tucked deep in the woods or huge lake homes on the water. If fishing is your thing, check out Lake Fork, one of the top bass fishing lakes in the country. Whether you choose a small fishing cabin or a luxury lake house be sure you arrange a fishing guide to take you out for a day of fishing.
If you spend your time in central Texas then consider Lake Whitney with breathtaking views of a hill country style cliffs and amazing sunsets. You'll find dozens of lake whitney rentals to fit any budget and style.
For our hill country residents, we recommend Lake LBJ, one of the few truly constant level lakes in the state. Lake LBJ offers hundreds of rental options and tons of great restaurants and entertainment in the area.
If you live in Houston then we recommend Lake Sam Rayburn for your Texas rent house. Located about 90 minutes northeast of Houston, deep in the southern portion of the East Texas Piney woods, Sam Rayburn is a great option for those families looking to escape the hustle and bustle of the city life. You'll find a dozen types of lake house rentals from romantic hideaways to huge luxury homes. Bring your clubs and try the great Rayburn Country golf course.


text:
Our previous case results should not be taken as expectations for your case, as results such as these can never be promised, especially not before reviewing your case ourselves. These results do, however, demonstrate our ability to provide for our clients what they truly need. With the law on our side, we are not afraid of any insurance company, employer, or manufacturer.
All Automobile CrashCyclists and Pedestrians
Recovery for family of 29 year old Manhattan Cyclist
Flanzig and Flanzig have obtained a $4,800,000.00 settlement on behalf of the family of a 29-year-old Manhattan cyclist killed in the Bronx.
The death of Heather Lough received wide publicity following the tragic day in 2016 when Heather was struck by a commercial truck that ultimately led to her death. Shortly thereafter, the driver was criminally charged with multiple violations of the Vehicle and Traffic Law including NYC's "right of way" law Section 19-190. After every attempt by the driver to escape criminal liability, including a challenge to the constitutionality of NYC's right of way law (19-190), the defendant ultimately plead guilty to the charges resulting in payment of a fine and suspension of his license. Using this plea, together with the evidence obtained by the Collision Investigation Squad, our own independent investigation, and the deposition testimony of parties, Cathy Flanzig, Esq. obtained the pre-trial granting of Summary Judgement against the owner of the trucking company and its driver. With liability being established, the case was ultimately settled prior to trial via private mediation between our office and the insurance carrier for the trucking company in the amount of $4,800,000.00.
Recovery for Vespa Crash Victim
Cathy Flanzig obtained a $2,900,000.00 recovery for the victim of a serious Vespa crash in Hewlett, New York. Our client was operating his scooter, when a vehicle made a sudden left turn in front of him. As a result of the crash, our client sustained severe thoracic injuries. The settlement, which netted a total payout of over $3 Million Dollars, was reached just prior to the start of the trial in the New York State Supreme Court, Nassau County. This settlement has obtained the distinction of the Top 25 Settlements in New York for 2014 for crashes involving motorcycles by the New York Law Journal.
Recovery for Victim of Pedestrian Crash
Daniel Flanzig obtained a $2,000.000.00 Dollar Recovery for a NYC Pedestrian who sustained life threatening injuries after being struck by a NYPD Traffic Enforcement Agent. The crash occurred at the intersection of York Ave. and 72nd Street in Manhattan. The police claimed the cause of the crash was our client crossing against the light. However, video of the crash obtained by our office showed the driver failed to yield the right of way to our client who was in the crosswalk and had almost completely crossed the street. We also secured statements from multiple witnesses who all were able to see our client clearly in the crosswalk. A settlement was reached with the City of New York just prior to the commencement of jury selection in New York County Supreme Court.
Settlement for Pedestrian Struck by a Vehicle While in His Driveway
Cathy Flanzig obtained a $1.1 Million recovery for a 56 year old man who suffered a severe leg injury, requiring him to undergo several limb salvage surgeries, as a result of being struck by his children's religious school teacher while in his own driveway. The settlement was reached soon after the action was commenced and the $1.1 million recovery represented the defendant's full policy limits. This case was reported in the New York Law Journal and the New York Jury Verdict Reporter as a 'Top 25 Verdicts or Settlements' for a pedestrian accident in 2010.
Settlement Obtained for Manhattan Cyclist
Daniel Flanzig obtained a $900,000.00 settlement for a cyclist who sustained a severe foot injury when struck by a tractor-trailer in New York City. The cyclist who was lawfully operating in the bike lane on the 2nd Avenue in Midtown was struck when a tractor trailer attempted to execute a left turn through the intersection in across the bike lane. The settlement was reached before trial in the Supreme Court, Westchester County.
Recovery for Pedestrian Struck in Crosswalk
Cathy Flanzig obtained a $675,000.00 recovery for a 68 year old woman who sustained a severe leg fracture while crossing with the light at a Port Washington, NY intersection. The case was settled for $675,000.00 dollars prior to trial in the Supreme Court, Queens County.


Dr. Michael Ellman is a sports medicine specialist at Panorama who specializes in hip arthroscopy and repairing labral tears in the hip. He prides himself on his conservative approach to performing arthroscopic labral repairs to address hip pain.
A patient with a torn labrum can typically obtain pain relief through either a repair or a reconstruction of the labrum, an important ring of cartilage inside the hip socket that provides lubrication and stability to the joint.
In a repair, the patient's own torn labrum tissue is reattached to the hip socket. With a reconstruction, the torn labrum is removed completely and replaced with non-living tissue from a donor, or from another part of the patient's body.
Dr. Ellman said that in addition to being a less extensive and less costly surgery, repairs also might give a patient the best chance of avoiding a future hip replacement.
Repairs have up to a 90 percent success rate, but if a repair fails and the patient still has pain, the back-up option would be a labral reconstruction, he said. Unfortunately, if a patient had a reconstruction for a torn labrum, their native labral tissue has been removed so the back-up option would likely be a hip replacement.
Dr. Ellman specializes in hip arthroscopy and routinely performs surgery to address labral tears.


text:
From Hiking Through Hills to a Short Walk for Maternal Care
Home / Stories
Mpingo Epicenter's maternity unit was constructed in 2009 through a partnership between the Mpingo Epicenter community and THP-Malawi. However, the facility lacked medical equipment as well as professionally trained staff to oversee deliveries. THP-Malawi had long been working with Mpingo community partners to fill this gap by developing cross-sector partnerships with corporations and government.
Since early 2011, THP-Malawi had been following a lead on a partnership with Telecom Networks Malawi (TNM), one of Malawi's largest mobile network carriers. The partnership would be significant: THP-Malawi had written a proposal for 3 million kwacha (approx.US$20,000) worth of maternity equipment for Mpingo Epicenter. At the same time, THP staff members were lobbying the Blantyre District Health Office (DHO) to fulfill their mandate of providing the health personnel and medications required to fully operate the facility.
In Quarter 4 2011, all the partners came together to meet their commitments. TNM's 3 million kwacha donation, the DHO's provision of staff and materials, THP-Malawi's logistical coordination and Mpingo Epicenter's community contributions fused to complete the Mpingo maternity wing and prepare it for its opening on December 16, 2011.
The rural maternity clinic was opened at a colorful celebration attended by TNM officials, THP-Malawi officials, Blantyre District Health Management Team, community leadership, about 800 community members, and Blantyre District Assembly officials. The health facility has a four-bed fully equipped modern delivery room; a 10-bed prenatal ward and a 10-bed postnatal ward.
As though she were waiting for the opening of the facility, on December 17, 2011, Mercy Thomas, 25 years old, from Tambala partner village, walked less than a kilometer (0.6 miles) into Mpingo maternity, ready to deliver. Mercy has the distinction of being the first woman to deliver in the facility. She gave birth to a healthy baby boy, Enock.
"This is my third born child – the first two are girls. I used to walk a long distance of about 7 kilometers (4.4 miles) to safely deliver at Mpemba health center. The area is hilly and mountainous, making it really difficult for pregnant women to walk on foot, and as such many of my colleagues used to deliver at home and some of them died, including many newborns. I thank THP-Malawi, Blantyre DHO and TNM for opening this maternity wing. It's clean and I have been given all the help I needed. Within a kilometer, we now have a decent delivery place," Mrs. Mercy Thomas stated. Within just two weeks, six babies (one boy and five girls) had already been safely delivered at the facility. On top of that, 88 women received family planning services and 16 children (9 boys, 7 girls) received 'children under five' clinic services.
THP-Malawi
Meet other partners in Africa, South Asia and Latin America
Together, we can end hunger.
Across the globe, our programs are empowering people to break the poverty cycle.
The Hunger Project as an Influencer in 2022
Transforming Our Global Food System in Harmony with the Planet and People
Stella Expands Her Business Through Internet Access
16 Days of Activism Against Gender-Based Violence 2022
We Call for Inclusive, Community-led Solutions From COP27…Again
Subscribe to our newsletter to receive updates of latest news and events.
Policies & disclosures | Privacy policy | Press & media | Terms of use


Join our curator for a free lunchtime tour of our exhibition, Art Between the Wars , with a special focus on Julian Trevelyan's 1938 painting, The Potteries. This painting shows the streets and chimneys of Stoke, and offers a unique insight into working life and culture during the interwar period.
Lunchtime talks start at 12.3opm and last for approximately 30 minutes.


Discussion in 'Guides' started by aa25, Sep 10, 2018.
First of all, I think I will try to expand the target audience a little bit this time. To make my life simple, I will still compare to only items that can be obtained in a future. I won't make a comparison with items rewarded in past events, unless there is something unique about them or STMR. I will still focus on new players as usual. I hope this guide is useful for people.
There are a lot of items to talk about this time around, including two (out of three) summon units who can be fused for TMR. Alright, let's go!
Progression: Most of these weapons, except Romandan Pistol, can also be purchased from the Mog Minister as part of Dragonlord KM event. I recommend you try to purchase a second copy of Glacos' Spear, Caultery Sword, and Erdrick Sword, if possible.
Crow's Claws (52 ATK, granted 'Two-hit Combo', Fist): This weapon is quite bad, imo. The special ability 'Two-hit Combo' causes your normal attack to hit twice. If you DW-ing, you will attack 4 times total. Note that, this weapon doesn't work on counter. I don't really see a real use for it.
This may be useful to generate LB crystals from enemies if you use it on a unit that hit multiple times per attack (like Ace, OK, VoL, etc). From my observation, each hit will have a chance to drop the LB crystal. Thus, the higher number of hits, the higher chance to get LB crystals, in contrast to single hitter (like Olive, Cloud, etc).
Iron Axe (58 ATK, Axe): This weapon is bad. At 58 ATK, it is not really that good. On top of that, it is an Axe which is one of the worst weapon type in FFBE (no mastery to support). Since you have access to Falcion which is a sword of 80 ATK from Rookie Quest, I don't see any use of this weapon at all.
Staff of Antimagic (62 SPR, inflict Silence (30%), Staff): This is an okay defensive weapon for healer, tank, or support unit. At 62 SPR, it is not bad, but nothing special either. If you use this Staff to attack, it has 30% to inflict Silence, but it is more or less useless in most cases. Although, it might be useful in Arena to deal with some annoying magic user. (Unfortunately, both LM.Fina and Ayaka immune to Silence innately.) Beside that, this Staff doesn't grant anything else which makes it less valuable than other Staffs with lower SPR, such as Aura Staff (53 SPR, grant Dispel).
Some bosses'/trials' attack can be 'sealed' or 'disabled' when inflicting with certain status ailment. If you want to use this Staff for that propose, keep in mind that it's inflicting chance is only 30%. Other items, such Toxic Rain, Rikku's Pouch, are more reliable.
Big Boss Shield (45 DEF, grant 'Auto-shell', Heavy Shield): A decent shield. Technically speaking, 45 DEF is not bad at all. However, not many unit can use Heavy Shield. For those who can, they are mostly dmg dealers, who tend to end up DW-ing or DH/TDH-ing, and Tanks. When it comes to tanks, it is sometimes better to pick a shield that provides elemental resistance. Putting all of these factors together makes this shield is not as useful as it appears to be, imo. Nonetheless, this is still a solid shield for new players. The Auto-shell is nothing to rely on. It gives 20% SPR buff (non-dispelable) which will be overwritten by bigger buff. So, it won't be much useful in most cases.
It may be useful in Bahamut Island or Madam's Manor where enemies have a high chance to do preemtive attack. Having a bit of SPR buff may help your tank survive the preemtive.
Romandan Pistol (107 ATK, Gun): This is Mustadio's TMR. First of all, Gun is not a good weapon type due to lacking Gun mastery to support it (although, there is a unit with Gun Mastery as a TMR in the future). Most notable Guns are two-handed gun due to a massive weapon variance of Gun (150%), but not this weapon. On top of that, it is non-element. Essentially, this weapon offers only decent/high ATK of 107, but nothing else. Unless the unit prefers gun for some reason, I would use different weapon type instead.
There are many other weapons that provide comparable ATK and better weapon type. For example, Apocalype (103 ATK, Greatsword) and Genji Blade (107 ATK, Katana).
Gracos' Trident (82 ATK, Ice element, grant 'Aquan Killer', Spear): Finally, a good weapon to talk about. First of all, it is ice element. Ice is rarely resisted by bosses/enemies. Then, we have Fryevia and Orlandeau family who can chain with ice. Most members of this family can use Spear which makes this weapon a good choice as a source of ice element for chaining. Spear is not the best weapon type, but not so bad either since it has two masteries to support (SSP-Wind and Duke's Dragoon Pride). This weapon also grants Aquan Killer. Aquatic monster is quite rare, so this killer may not be that useful.
For Orlandeau chaining family, Raegen will like this weapon a lot. Not only he can equip it, his chaining move and LB also inflict ice imperil.
Although, it is still unclear to me if chaining partners will be common enough or not, especially for new players, since the option that this family has is so broad. With the arrival of Hyoh, this family will end up having light, dark, fire, ice, and lightning as the options. While the 'unit' should be very common and easy to find, the 'right element' may not be that easy to find.
Cautery Sword (85 ATK, grant 'Demon Killer', Sword) Another good weapon. This time is due to it's Killer effect. Demon is one of the most common enemy type, so using this weapon can deal more damage than what it appears to be. Being a Sword also helps since Sword mastery is available and there are a lot of units who can use Sword.
Erdrick Sword (125 ATK, Greatsword) Another good weapon. In my opinion, this weapon is not as good as it may appear to be. Don't get me wrong, it is still a solid weapon, but many people may be in a situation that doesn't benefit from it that much. It's problem, in my opinion, is it's weapon type. In fact, Greatsword is arguable the best weapon type in FFBE since it has the most masteries to support and many elements available. However, having many elements available implies players tend to build a DW-chainer around it, especially light element for Orlandeau family. Then, when you build a DW user, you want to use a different weapon type in each hand to maximize weapon masteries. If your source of element is already a Greatsword, equipping another Greatsword may not be so useful as a different weapon type of lower ATK but with more masteries.
Summon Unit: I won't include Marquis de Leon in this part since the rumors said that the drop rate is abysmally low, meaning getting his TMR implies feeding him with moogles or farming.
Dracky's TMR - Devilish Designs (10% MP, 15% dark resistance) This is an okay TMR since Dark Resistance is quite rare among the equipments. Most of them are TMR or limited items. Getting some of this around doesn't bad at all.
Slime's TMR - Scorch (Fire Aoe mag damage of 2.8x) This is terrible TMR. Well, most unit already comes with better abilities. I don't see any use of this TMR at all.
Crafting: Craftable items this time around is quite underwhelming again. The Spear is a must have, but the rest is quite skippable.
Dragovian Spear (90 ATK, grant Demon and Dragon Killers, Spear, Limited to 1 copy): A solid spear. Killer effect is always a good thing to have. This spear comes with Demon and Dragon, which are pretty common enemy types. At 90 ATK is also quite good. There is no reason not to craft this one.
Sacred Claws (70 ATK, grant Demon Killers, Fists): Another solid weapon due to the killer effect it provides. At 70 ATK, the fist itself is not that exciting. Although, given that this same event also rewards Caultery Sword and the Spear above, you may end up not using it at all. (Those two weapons also have a better type.) I would say it is up to you. You can craft two copies if you want, just in case you need it for 10-man trial or skip it if you are running low on the material.
Sage's Staff (11 ATK, 34 MAG, 54 SPR, Staff): A well-round Staff. At 34 MAG, it is kinda okay for mag dmg dealer early, given that most easy-to-obtain Rod are around 25-30 MAG. An exception is Wizard Rod from from one of the easy trial which gives 72 MAG. For the SPR side, this Staff is decent. Similar to Staff of Antimagic above, this Staff also provides nothing else which makes it less useful. Nonetheless, it is still a decent defensive weapon for support for new players. I would craft 3-4 just in case you want to give your support/tank/healer some defensive weapon (or lower, if you already have better staffs).
Dragon Scale (1 DEF, 1 SPR, 10% HP, 15% fire resistance, Accessory): Another okay-ish accessory. First of all, the 10% HP looks nice. However, 10% HP is nothing special given that we can craft Muscle Belt which also gives 10% HP. The 15% fire resistance makes this accessory a little bit more appealing. Although, 15% is not much but it is still decent for an accessory. I feel like the reason why you would use this accessory is for the fire resistance.
Since neither Sage's Staff nor Sacred Claws are worth crafting, I think this accessory may be the best option of craft in the end, especially for new players who still don't have enough accessories to fill the slots. I would recommend you craft this item upto 5-6 pairs (10-12 total). Try to craft them as pair so that you can use two on the same unit.
Last words: Sorry for posting this a bit late this time. I've been busy if real life stuffs and haven't got a chunk of time to sit down and analyze this item set until now. Please let me know if I made any mistake. Any comments/suggestions are welcomed as usual.
Master Red, Dashh the Outrider, Eynskaet and 5 others like this.
If scorch is ability and not magic, would it be good for ice bird trial?
I can't think of why it will be useful. Could you elaborate why you think being an ability make it useful against the Ice Bird ?
Ice bird puts always reflect against magic but it is extremely weak to fire. -1000%.
Not sure how useful the damage output from scorch is (2,8 multiplier) and probably a normal chain attack would be way better with fire weapon equipped.
Hmm...I don't think it will be that useful.
Note: I won't consider 7* in this as they are still way too rare and this trial was released way before 7* becomes a thing. Putting 7* into the picture will pretty much make anything look like a viable strategy.
Assuming the unit who use it is a top 6* mag dmg dealer (~1200 MAG) without M Bird killer, the dmg dealt to the Big Bird would be around 6M (1200*1200*2.8*11*2/15). With ~50% break, it becomes around 12M or about 25% HP which is enough to offset the Big Bird's self-heal. However, I think that will proc the Big Bird threshold right away, along with typical retal that will inflict ice imperil on your team.
Granted, you can use it to control the amount of Glacon's. But the dmg is unnecessarily high and may proc the Big Bird threshold instead.
I am honestly not sure. I feel like with that amount of prep (top-tier MAG stats, 50% break, and survive the preempive), you should be able to one-shot the Big Bird already, not just chirping it down.


1-3 bed, 1-2 bath • 1,348 sq. ft.
Live the best of both worlds outside the city in our spacious 1, 2, and 3 bedroom apartment homes in south Austin, TX. With sleek, designer features like granite countertops and deep-soaking tubs and full-size washer and dryer connections, you'll be proud to call any of our apartments home. With walkability to the many shopping and dining options of SouthPark Meadows,Terraces at SouthPark Meadows is minutes away from major points in the Austin area. With easy access to I-35 and the 130, you're just minutes away from downtown Austin and the many outdoor features the city has to offer.
1-3bd, 1-2ba • 1,096 sq. ft.
1-3bd, 1-2ba • 818 sq. ft.
1-3bd, 1-2ba • 1,388 sq. ft.


We are interviewing Medical Biller to assist with cash and insurance payments at our client's busy healthcare organization.
Our client is a Los Angeles based, non-profit tissue recovery organization. They administer the process of matching tissue donors with recipients, and offer additional services to those involved, such as bereavement counseling, application preparation, evaluation and more. This position offers a great opportunity to grow with this amazing team of caring and talented professionals who provide quality and innovative care to the surrounding multi-cultural community.
Medical billers use multiple software systems to submit medical claims to insurance companies and payers such as Medicare and Medicaid. Review and follow up on insurance payments, update insurance information and communicate related information to patients.
Ideal candidates bring solid medical industry experience, a dedicated attitude to ensure quality customer service and 3+ years' experience in medical billing roles, with specific knowledge in Medicare/Medical, HMO/PPO and managed care.


text:
Q: Using ng-disabled inside of an ng-repeat I have a radio input that contains an ng-repeat that has ng-disabled which fires a function that has an if else if block inside of it. If one of the conditions are met a boolean is returned. My problem is that I only want certain radios disabled if the condition their condition is met. Currently if the conditions is met the boolean will be set for all of the items in the array. How do I run functions for ng-disabled inside of ng-repeat and satisfy conditions on a per item basis?

A: You must pass item or repeat $index to your checker function for differentiation, like this:
<input ng-repeat="item in yourItems" type="radio" ng-disabled="yourChecker($index, item)">

And in controller js:
$scope.yourChecker = function(index, item){
    if(index==x){
       // TODO: return state here
    }

    // Or check item property

    if(item.x){

    }
}

A: <form>
  <input type="radio" ng-repeat="element in array track by $index" ng-disabled="isDisabled(element)">{{element}}</input>
</form>

Define isDisabled in your scope, and use the properties of any given element to return a boolean. If you want to do it based on the index, you can pass $index to the function as well.


text:
CASProgramsSociologyBA in Sociology
BA in Sociology
Sociology is the study of social life, social relations, social change, and the social causes and consequences of human behavior. Sociology majors acquire critical analytic skills in evaluating sociological research, including the background assumptions, appropriateness of methods used, and the strength of explanatory evidence; learn the fundamentals of theoretical and methodological approaches used by sociologists; and gain substantive expert knowledge in a variety of sociological subfields, including medical sociology, gender and sexuality, culture, urban sociology, global and transnational sociology, crime and policing, race, immigration, economic sociology, political sociology, and much more. Critical-thinking skills and broad theoretical knowledge prepare majors for many different career options. Sociology graduates work in fields that range from medicine and law to social work, education, market research, business, journalism, criminal justice, policy analysis, and nonprofits. Many students go on to complete graduate work in a variety of academic and professional fields, such as sociology and other social sciences, business and management, education, law and criminal justice, and medicine and public health.
Demonstrate knowledge of fundamental theoretical approaches and key disciplinary concepts.
Demonstrate understanding of sociological methods of research design, data gathering, and analysis.
Exhibit critical thinking skills in evaluating sociological research, including the background assumptions, appropriateness of methods used, and strength of explanatory evidence.
Communicate sociological knowledge in appropriate oral, written, and graphic forms.
All BU undergraduate students, including both entering first-year and transfer students, will pursue coursework in the BU Hub, the University's general education program that is integrated into the entire undergraduate experience. BU Hub requirements can be satisfied in a number of ways, including coursework in and beyond the major as well as through cocurricular activities. Students majoring in Sociology will ordinarily, through coursework in the major, satisfy BU Hub requirements in Scientific and Social Inquiry, Diversity, Civic Engagement and Global Citizenship, and the Intellectual Toolkit. Remaining BU Hub requirements will be satisfied by selecting from a wide range of available courses outside the major or, in some cases, cocurricular experiences.
The major in Sociology comprises 11 courses: 10 in sociology and 1 in statistics, as described below. All courses must be taken within the College of Arts & Sciences (CAS), with the exception of transfer-of-credit courses, based upon department approval and only as described below.
All majors are assigned an advisor in the department with whom they should regularly consult in planning their programs of study.
All courses for the major must be completed with grades of C or higher.
Courses required are as follows:
CAS SO 100 Principles in Sociology (4 cr)
CAS SO 201 Sociological Methods (4 cr)
CAS SO 203 Introduction to Sociological Theories (4 cr)
CAS SO 303 Substantive Themes in Sociological Theory (4 cr)
Two additional 4-credit CAS sociology (SO) courses at the 200 level or above
Two additional 4-credit CAS sociology (SO) seminars at the 400 level or above
One 4-credit course in statistical analysis chosen from CAS MA 113, 115, 116, 213, QST QM 221, QST QM 222
Students are expected to take CAS SO 201 and CAS SO 203 in their sophomore year or the first semester after declaring the major. It is recommended that CAS SO 303 be taken in the semester following completion of CAS SO 203.
Sociology majors admitted to CAS from the College of General Studies (CGS) who have completed CGS SS 101 and SS 102, each with a grade of C or higher, will receive credit for completing the introductory sociology course, CAS SO 100 Principles in Sociology.
Students who have completed the two Core Curriculum social science courses (CAS CC 221, previously CC 211, and CC 222) with grades of C or higher will receive credit toward the major for the introductory sociology course, CAS SO 100 Principles in Sociology.
Transfer credit from outside the University will not be given for CAS SO 201, 203, 303, or any seminar (400-level) course, all of which must be taken within the department and in order to satisfy the Sociology major.
Honors in the Major
The department encourages interested and qualified students to pursue a special program aimed toward graduating with honors in the major. After completion of the sociological research practicum in the spring semester of their junior year, students conduct a yearlong independent research project under a faculty advisor, then write and defend a thesis before a committee of department faculty in the spring semester of their senior year.
Interested students are encouraged to discuss this senior honors thesis with their advisors in the fall semester of the junior year, when students are considering which courses to register for in the spring semester ahead. For more information, visit our departmental website or consult with the Director of Undergraduate Studies.
If you choose to pursue senior honors thesis option, the course sequence is as follows:
SO 400 Advanced Research Practicum (4 cr) is taken in the spring of your junior year. This course counts for one of the two required seminars for graduation in the major. You must earn a B or higher in this course to continue with the sequence.
SO 401 Senior Independent Work (2 cr) is taken the fall of your senior year. This is a directed study course with your primary thesis advisor, who will continue to work with you on specific details of your project. You must earn a B or higher in this course to continue with the sequence.
SO 402 Senior Independent Work (4 cr) is taken the spring of your senior year. This will consist of a directed study under the primary supervision of your thesis advisor, culminating in the final draft of the thesis and the oral examination, including the oral examination and thesis defense. You must earn a B+ or higher for this course.
College of Arts & Sciences Departments
College of Arts & Sciences Courses
Bachelor of Arts Degree Overview
Second Language Requirement
African American & Black Diaspora Studies
American & New England Studies
Biochemistry & Molecular Biology; Biotechnology
Cinema & Media Studies
Minor in the Core Curriculum
Minor in Core Independent Studies
Editorial Studies
Education Minors
Global Medieval Studies
Holocaust, Genocide & Human Rights Studies
Middle East & North Africa Studies
Muslim Studies
Psychological & Brain Sciences
Minor in Sociology
Women's, Gender & Sexuality Studies
World Languages & Literatures
Arts & Sciences Writing Program
BA/MA and BA/MS Programs
BA/MPH Program
Seven-Year Liberal Arts/Medical Education Program
Sea Education Association/SEA Semester
The Frederick S. Pardee School of Global Studies
Pardee School of Global Studies


Ontario ARC- "Since 1954, Ontario ARC has been a resource for people with intellectual and other developmental disabilities and their families. With a focus on providing innovative service options and transition support, we are with you every step of the way!"
Happiness House- "... offers clinic services, pre-vocational, residential, community and day programming for adults with both developmental and acquired disabilities, including traumatic brain injury, multiple sclerosis, dementia/frail elderly, and spinal cord injury. These services help to improve the quality of life for adults with disabilities throughout our service region."


Fun and playful landscape of tree and birds wall sticker for creative power sockets and light switches!
Add some action to your plain power points and light switches with our Surfer wall sticker!
Cheeky pin up girl wall sticker for creative power points and light switches!
For the golf addict, little golfer wall sticker for creative power sockets and light switches!
Fun and playful scene with divers wall sticker for creative power sockets and light switches!


When art is incorporated into art of when fashion is influenced by a piece of art I find it extremely inspirational. Art if very rarely the base of fashion influence any more, as world issues and architecture seems to be the base of all ideas. However Bobby Hillson is, in my eyes an inspiration that should be used.
Based on models and trends seen during the time, the quirkiness of Hillsons art work is responsible for inspiring some of Mary Quants mini dress designs, with fun loving girls being the idea behind the clothing. With simple pencil sketches she created a world of beautiful drawings.
I can't help but think that its the simple things that manage to cause a stir that are the true greats.


The probability of the UK remaining in the EU has now doubled to 40%, the highest it has been since the referendum, say analysts at investment bank JP Morgan, offering a fundamental view that supports the formation of a technical floor we see forming under the Pound.
Theresa May's recent parliamentary defeats - first on access to legal advice and then on the Grieve amendment, which would give MPs more of a say were she to fail to win approval for her withdrawal bill - have radically increased the chances the whole Brexit endeavour could be thwarted.
The likely pending decision of the European Court of Justice (ECJ) to allow Britain the unilateral right to discontinue article 50 and remain in the EU - or delay its conclusion - is a further factor enhancing the chances Brexit could be reversed, or that there will eventually be an orderly Brexit.
"The UK now appears to have the option of revoking unilaterally and taking a period of time of its own choosing to decide what happens next," says Malcolm Barr, an economist at JP Morgan.
The probability of other outcomes has also been revised by Barr, who has reduced the chances of a 'no-deal' Brexit to only 10% (down from 20%) and an orderly Brexit to 50% (down from 60%).
The analysis has profound implications for Sterling traders since it reduces the chances of the main scenario likely to cause further weakness - ergo that of a disorderly Brexit - to only 1 in 10. This suggests a very strong probability the Pound is now underpinned by a 'hard floor' at current levels, all other things being equal.
The idea the pair could be resting on a 'hard floor' due to diminishing Brexit risks finds its corollary in the 1.1180-1.1200 technical level on the Pound-to-Euro exchange rate, which has seen multiple touches and rejections since September.
The same thing goes for the 1.2670-1.2700 level on the Pound-to-Dollar exchange rate which has acted as a 'safety net' to the exchange rate on three occasions since August. Each time the exchange rate has rebounded after touching the 1.27 floor. The consensus expectation is that the same will happen again.
Yet Sterling has failed to rally on the good news despite sitting once again on these key floor levels.
One possible reason Sterling has not seen more upside despite the changing Brexit probabilities, is due to short-term political uncertainty from the expectation that Theresa May won't win the meaningful vote on her deal next Tuesday.
This will leave a 'deal vacuum' only months before the deadline and still raises the spectre, however unlikely now, of the UK sleepwalking out of the EU without a deal in March.


↑ 2.0 2.1 2.2 Michael Olaf's Essential Montessori: School Edition for Ages 3-12+.
↑ Current Biography 1940, p. 591.
Kramer, Rita (1988). Maria Montessori: a biography. Da Capo Press. ISBN 978-0201092271. http://books.google.com/?id=GZHc4_2i20gC&pg=PA21&dq=maria+montessori+born#v=onepage&q=maria%20montessori%20born&f=false.
Burnett, Alice. "Montessori Education Today and Yesterday." The Elementary School Journal 63 (1962): 71–77.
Montessori, Mario. "Maria Montessori's Contribution to the Cultivation of the Mathematical Mind" International Review of Education / Internationale Zeitschrift für Erziehungswissenschaft / Revue Internationale de l'Education 7 (1961): 134–41.
Gardner, Riley W. "A Psychologist Looks at Montessori." The Elementary School Journal 67 (1966): 72–83.
O'Donnell, Marion (2007). Maria Montessori: Continuum Library of Educational Thought. Continuum. ISBN 0-8264-8406-9.
Brehony, Kevin (2000). Montessori, individual work and individuality in the elementary school classroom. History of Education, 29, 115–128.
Schapiro, Dennis (1993). What if Montessori Education is Part of the Answer?. Education Digest.
Cohen, Deborah L. (1990). Montessori Methods in Public Schools. Education Digest.
Plekhanov, A., Jones, Anthony (1992). The Pedagogical Theory and Practice of Maria Montessori. Russian Social Science Review.
Maria Montessori. Early Childhood Today. 2000.
Shute, Nancy (2002). Madam Montessori. Smithsonian.
Whitescarver, Keith; Cossentino, Jacqueline (2008). "Montessori and the Mainstream: A Century of Reform on the Margins". Teachers College Record খণ্ড 110 (12): 2571–2600. http://www.tcrecord.org/Content.asp?contentid=14765.
Wikisource has the text of a 1921 Collier's Encyclopedia article about মাৰিয়া মণ্টেছৰী.