text:
ACOEL : American College of Environmental Lawyers : ACOEL : Environmental Law, Ethics, Administration of Justice
American College of Environmental Lawyers
Regulation of Isolated Wetlands
Posted on August 31, 2011 by Thomas Lavender
While we know all too well what the U.S. Supreme Court concluded in the SWANCC and Rapanos with respect to the jurisdiction of the Army Corps of Engineers over isolated and adjacent wetlands, what was not before the Supreme Court was the status of non-jurisdictional, isolated wetlands. By default, that issue remained within the purview of the states. While some states already had express authority to regulated isolated, non-jurisdictional wetlands, others had not specifically addressed the matter.
Previously, South Carolina's omnibus environmental statute, the Pollution Control Act, did not expressly address isolated wetlands, but did describe "waters of the State" rather broadly. Nonetheless, South Carolina had not overtly attempted to exercise jurisdiction over isolated wetlands following SWANCC. Recently, the South Carolina Supreme Court in Georgetown League of Women Voters vs. Smith Land Company, 2011 WL 268243 (S.C. July 11, 2011). While the State environmental agency argued in its brief that it did not have the authority to require a permit for a small, isolated wetland in the center of a residential building site wetlands, the Court disagreed. In that case, the lot owner, Smith Land, filled the lot and was sued by a number of local environmental groups arguing that the landowner failed to obtain required permits from the State for filling the isolated wetland.
In Smith Land, the trial court granted summary judgment in favor of the property owner, and the S.C. Court of Appeals affirmed. The S.C. Supreme Court granted certiorari, and on July 13, 2011, held that the State's Pollution Control Act does extend regulatory authority over isolated wetlands. The two significant holdings in the case found that the property owner was required to obtain a permit for the discharge of pollutants into the isolated wetland, which it held was within the scope of the statutory definition of "environment." Just as significantly, the Supreme Court held that the Pollution Control Act afforded the plaintiff a private cause of action to enforce the provisions of the Act, heretofore not previously addressed.
This case is significant to the regulation of wetlands since, while there is a permit program in place for storm water discharges resulting from land-disturbing activities, there is no specific statutory or regulatory framework for immediately responding to requests for permits to fill isolated wetlands. Interestingly, the majority of the Court left untouched the legitimate question of whether the plaintiffs even had standing to bring the action and whether the existing stormwater permit program that excludes land-disturbing activities below a certain threshold levels satisfied the requirement for a State permit exemption. At this point, landowners in South Carolina have been left hanging in the balance with the implementation of a judicially-created regulatory program.
Where You Stand Depends on Where You Sit: Utility MACT Edition
Posted on August 30, 2011 by Seth Jaffe
As the deadline passed last week for submitting comments on EPA's Utility MACT rule, it's worth taking a big picture look at how the commenters line up. Big utility groups, such as the Edison Electric Institute and the American Public Power Association are looking for EPA to delay the rules. The basic argument is that it is going to take a long time to comply. EEI states that so many facilities will require extensions that the number of requests will create a backlog that will itself essentially create compliance problems.
However, it is not just environmental and public health groups that filed comments in support of the MACT rule. Exelon, which has a large nuclear fleet, submitted comments in support of the rule. In fact, Exelon referred to the "overblown critique" of the Utility MACT proposal, stating that the "lack of a national standard for toxic emissions continues to be a barrier to investment in new, cleaner generation capacity." Industry supporters are not limited to Exelon. The Clean Energy Group, which includes PG&E, Calpine, and other generators with large gas fleets, also focused on the "business certainty the electric sector needs to move forward with capital investment decisions."
In looking at these comments, it is worth keeping in mind that the Utility MACT rule is only one of nine rules under development by EPA that would impose costs on coal-fired power plants. This confluence of rules has been referred to as the "train wreck" for coal-fired power plants. While the Utility MACT rule may impose the greatest costs - and achieve the greatest benefits, according to EPA - many are concerned about the cumulative impact on coal-fired capacity. Earlier this week, the Congressional Research Service attempted to debunk the train wreck perspective:
The primary impacts of many of the rules will largely be on coal-fired plants more than 40 years old that have not, until now, installed state-of-the-art pollution controls. Many of these plants are inefficient and are being replaced by more efficient combined cycle natural gas plants, a development likely to be encouraged if the price of competing fuel - natural gas - continues to be low, almost regardless of EPA rules.
In any case, what's the argument against promulgation of these rules on the same time frame? Isn't that a good thing? There may be coal-fired plants which could sustain the capital investment required to comply with Utility MACT, but not the added cost of cooling water intake improvements to comply with new Clean Water Act requirements or the added cost of new disposal requirements if coal ash is regulated as a hazardous waste. Isn't it better to know about all of these rules up front, so that facilities can plan for the total cost of all the rules? Wouldn't a facility have legitimate cause to complain if the rules were instead issued seriatim, so that the facilities did not know about the full range of regulatory compliance costs when they make the decision whether to invest to comply with the first rule or instead to shut down?
Tags: Air, Clean Energy Group, Congress, EPA, Exelon, Legislation, MACT, Regulation, climate change
CERCLA "CONTINUING OBLIGATIONS" -- THE NEW ASTM STANDARD
Posted on August 29, 2011 by Kenneth Gray
ASTM has just given birth to a new standard for contaminated property – E2790-11 – the Standard Guide for Identifying and Complying with Continuing Obligations, which might become the most important American Society for Testing and Materials ("ASTM") standard for contaminated property after its Phase I and II Standard Practices. Its six-year gestation involved the consensus building labor of the usual parties and midwives, including consultants, private and government landowners, lenders, EPA, and private practitioners.
Who needs another ASTM standard? CERCLA and similar state superfund statutes require landowners to comply with "continuing obligations" after discovery that property is contaminated, whether discovered before or after acquiring real property, as a condition of maintaining the landowner liability defenses. Since EPA is not authorized to undertake rulemaking on continuing obligations and because of concern that courts unfamiliar with environmental practices might take decades to develop a useful body of law to guide landowners, the ASTM E50 subcommittee on Real Estate Assessment and Management got to work.
Several of CERCLA's six continuing obligations are straightforward and are therefore not addressed (e.g., legally required notices) in this Standard which focuses on the three continuing obligations that cover compliance with land use restrictions, institutional controls, and "taking reasonable steps" with respect to releases of hazardous substances and petroleum. The new Standard notes that the nature and extent of the continuing obligations should be proportional to the nature, extent, and complexity of the release and the potential for exposure at the property in question. It then describes a sequential process for determining whether continuing obligations apply, starting with identification of any recognized environmental conditions and then the review and evaluation of those conditions and activity and use limitations at the property (AULs are defined to include Institutional Controls, Land Use Restrictions, and Engineering Controls). This important evaluation step may in turn identify the need for a "Phase II" assessment or other detailed environmental sampling to gain a clear understanding of releases and exposure pathways, and consideration of whether the landowner should take additional remedial steps, or adopt or upgrade existing activity and use limitations.
If recognized environmental conditions do not qualify as continuing releases, threatened releases, or releases that could cause unacceptable exposure (and there are no land use restrictions or institutional controls), the procedures set forth in the Standard do not apply (other than documenting that determination). Otherwise, the next task is to prepare a "Continuing Obligations Plan" for developing or maintaining the AULs and reasonable steps for addressing releases of chemicals of concern, and a periodic "Continuing Obligations Monitoring and Evaluation Report." Time is not on the contaminated property owner's side: continuing obligations arise upon acquiring contaminated property under the bona fide prospective purchaser defense.
The ASTM Standard for Continuing Obligations is not intended to, and cannot replace, legal advice, and the Standard calls out the need to seek legal advice countless times. Intended for "users" (read: real property owners), a primary audience will be environmental consultants who will find the step-by-step process of the standard and the report outline comforting. Nevertheless, the Standard recognizes that continuing obligation determinations will be highly site-specific, providing another source of work for environmental consultants.
Of course, clients are keenly interested in what continuing obligations they must take to retain their landowner liability protections, and can be expected to ask what the law (or a court) may require. Consultants should fear to tread, and counsel will tread carefully.
EPA's extant guidance on "reasonable steps" to stop and prevent hazardous substance releases is almost too general to be useful. In some cases, EPA has suggested that reasonable steps can include additional investigation (environmental testing), or steps to limit exposure (such as fencing or drum removal).
Does this ASTM Standard help clarify what is a "reasonable step" for addressing contamination? It does provide a next level of detail, and properly focuses on whether releases result in unacceptable exposures, but the Standard will in some cases require significantly more effort than some property owners envisioned with respect to analyzing potential future exposures and contaminant migration (e.g., the Standard mentions contamination of and migration in utility corridors), as well as ecological receptors and "species that may routinely inhabit the property or may seasonally migrate through the property" – not to mention evaluation of intended property development.
The Standard also contemplates a careful review of whether AULs exist or should be adopted to address unacceptable exposures or protect remedies, and how they should be maintained. The review may also require consideration of whether additional activity and use limitations should be adopted, and whether existing AULs should be improved.
The Standard does note one issue that historically has not been part of the environmental lawyer's beat: a determination of whether prior recorded interests (such as an easement or mortgage) can potentially compromise or otherwise defeat a land use restriction or institutional control. Those familiar with recorded Environmental Covenants under the recent Uniform Environmental Covenants Act will recognize this issue, but real estate law governing recorded interests can impact all AULs recorded after the prior interest. The continuing obligation duty in some cases may require obtaining consent for a land use restriction from an outstanding interest holder. Can you say "subordination"?
By publishing a Standard, ASTM is providing a ready reference as courts weigh whether these three continuing obligation elements of the CERCLA defense have been established. Depending on the complexity of the site and the issues, clients would be wise to consider the investigation and documentation processes. Of course, the Standard is not a legal requirement, but environmental practitioners may wish to identify sites and transactions where the Standard can be helpful to clients in limiting unwanted exposures and liability – recognizing that whether continuing obligations are satisfied will be evaluated with the benefit of hindsight.
CERCLA
ADAPTATION TO CLIMATIC CHANGE – SAVING OUR INFRASTRUCTURE
By Joseph Manko - Manko, Gold, Katcher & Fox, LLP
While climate change skeptics continue to dispute the linkage between climate change and greenhouse gas emissions, others throughout the scientific community continue to report on problems being caused by climate change and to call for a serious assessment of what can be done to adapt to these changes in climate. The following are a few examples of recent reports on climate change impacts and calls for adaptation to those impacts.
The National Oceanic and Atmospheric Administration (NOAA) concludes that the temperature in the first decade of the 21st century (2000-2010), averages 1.5 degrees Fahrenheit above that of the 1970s. Without including the record high temperatures in the first half of 2011, satellite data indicate that the earth's groundwater is being depleted. In addition, a report by the PEW Center on Global Climate Change concludes that climate change is increasing the frequency of extreme weather events (e.g., wildfires in the southwest, flooding in North Dakota and myriad tornadoes, heat waves, and heavy precipitation) and calls for the entire community to join with the scientific community not only to determine the resultant damage and debate its causes, but also to decide how best to respond by means of adaptation.
Areas of adaptation include reducing our reliance on fossil fuel and our demand for electricity while increasing green practices (to further reduce the emission of greenhouse gases). Those leading the "adaptation discussion" also call for efforts to make certain that our infrastructure is protected from climate change by focusing on its repair, restoration, and -- in some instances -- relocation.
Accomplishing these adaptive practices in "normal times" would be tough. It is even more difficult to make progress, though, in the height of a recession, with legislators at both the federal and state level facing persistent gridlock and reduced budgets for infrastructure improvements (e.g., EPA's Federal Clean Water and Drinking Water State Revolving Funds).
Climate | Greenhouse Gases (GHGs)
WILL THE STATE OF FLORIDA'S EVERGLADES RESTORATION PROGRAM BE FEDERALIZED?
Posted on August 17, 2011 by William Green
Blog written by: William Green and Gary Perko
Florida's Everglades is a diverse mosaic of wetland communities that once extended from the shores of Lake Okeechobee to Florida Bay almost 100 miles to the south. Over a period of 100 or more years, a series of alterations and controls changed how the historic Everglades water naturally flowed. First, drainage canals were constructed from Lake Okeechobee to the ocean and Gulf of Mexico. These were followed by development of a fertile Everglades Agricultural Area (EAA) and compartmentalization of the remaining wetland ecosystem into series of Water Conservation Areas laying north of the Everglades National Park.
The diversity of the Everglades system is now rivaled by the complexity of litigation over Everglades water quality. In 1988, the United States sued the State of Florida alleging that the state had failed to enforce state water quality standards for phosphorus released into two key undeveloped components of the remaining Everglades: the Loxahatchee National Wildlife Refuge in the northern Everglades and Everglades National Park in the south. This led to a comprehensive settlement agreement and state legislation -- the Everglades Forever Act or "EFA" -- calling for construction of the largest man-made wetland treatment system ever attempted in the world. See, United States v. South Fla. Water Management Dist., 847 F.Supp. 1567 (S.D.Fla. 1992) (order approving settlement agreement); § 373.4592, Fla. Stat. (Florida's Everglades Forever Act). To date, Florida has invested over $1 billion to convert approximately 45,000 acres of EAA farmland into Stormwater Treatment Areas or "STAs." EAA farmers also have implemented Best Management Practices that have reduced phosphorus loads from the EAA by more than 50 percent over the past 15 years.
Despite these significant state efforts, yet another lawsuit has led the federal government to threaten to wrest total control over Everglades restoration from the State of Florida and force the state to spend billions more on STA expansion. That case started out as a modest APA review of the U.S. Environmental Protection Agency's approval, under the federal Clean Water Act, of certain amendments to the EFA, as well as Florida's new water quality standard for phosphorus in the Everglades. As part of that water quality standard, the state adopted an ambitious phosphorus criterion of 10 ppb, but included certain moderating provisions based on the recognition that compliance with the 10 ppb criterion is a daunting task that, if achievable at all, will take decades or more to realize. In 2008, however, a federal district court rejected EPA's approval of the moderating provisions, remanded the matter back to EPA for further review, and closed the case. See, Miccosukee Tribe of Indians of Fla. v. United States, 2008 WL 2967654 (S.D.Fla. July 29, 2008).
When EPA issued a revised determination in 2009, those disagreeing with EPA's action chose not to file a new lawsuit to challenge the 2009 determination. Instead, the plaintiffs asked the district court to hold EPA in contempt of the 2008 order. Then, in an unprecedented expansion of APA jurisdiction, the district court reopened the case and issued another order in 2010, requiring EPA to take several actions aimed at the State. See, Miccosukee Tribe, 706 F.Supp.2d 1296 (S.D.Fla. 2010). These included: (1) ordering Florida to re-write portions of the Everglades phosphorus standard; (2) requiring the Florida Legislature to further amend the EFA; (3) declaring the state "out-of-compliance" with state water quality standards and instructing the "manner and method" to obtain compliance within a time certain; (4) requiring the state to conform all state-issued NPDES permits and EFA permits with the court's order; and (5) requiring EPA to "initiate and carry out" its authority to withdraw approval of the state's NPDES program, prohibiting the state from issuing or modifying of any permits for the STAs during the interim.
Based on the district court's 2010 order, EPA issued yet another determination "instructing" the state that a 40,000-acre STA expansion -- estimated to cost approximately $2 billion -- is necessary to achieve compliance with state water quality standards. And, in accordance with yet another order issued by the district court in Miccosukee Tribe, 2011 WL 1624977 (Apr. 26, 2011), EPA has set in motion the process by which it can assume NPDES permitting authority over the STAs to impose a stringent water quality-based effluent limit and ultimately ensure that its proposed STA expansion is implemented. Not surprisingly, the State of Florida has appealed the district court's 2010 and 2011 orders to the U.S. Court of Appeals for the Eleventh Circuit. Thus, it remains to be seen whether the dispute over state water quality standards will ultimately lead to federalization of Everglades restoration and beyond.
WHITHER FEDERAL PREEMPTION?
Posted on August 15, 2011 by Rick Glick
Environmental lawyers of a certain age who work on projects licensed by the Federal Energy Regulatory Commission (FERC) once knew what federal preemption meant: FERC has exclusive jurisdiction. Over the past couple of decades, the lines have been blurred as courts find plenty of room in federal legislation for broad assertion of state authority. Is there a point at which states overplay their hand?
In the context of hydropower licensing, the Supreme Court in First Iowa Hydro-Electric Cooperative v. FPC [1] made clear that federal regulation preempts duplicative state review of hydroelectric projects. The Court reaffirmed the principal in California v. FERC,[2] which held that states may not invoke their authority over water law to impose minimum stream flow requirements in conflict with FERC.
Then the states discovered Section 401 of the Clean Water Act (CWA)[3], which requires FERC applicants to demonstrate compliance with state water quality standards and "any other appropriate requirement of State law." In two separate opinions, the Supreme Court found that section 401 confers extensive regulatory authority in the states that all but equals the reach of FERC authority. See, PUD No. 1 of Jefferson County v. Wash. Dept. of Ecology,[4] and S. D. Warren Co. v. Me. Bd. of Envtl. Protection.[5] Add to that the Second Circuit's holding in American Rivers v. FERC [6] that federal agencies must accept all conditions in state certifications, and not much is left of the doctrine of federal preemption.
The preemption issue arises in an interesting way with regard to authorization of LNG projects. Title III of the Energy Policy Act of 2005 (EPACT)[7], confers upon FERC exclusive siting authority over LNG terminals. Like the Natural Gas Act, EPACT reserves to the states their full authority under the federal Coastal Zone Management Act (CZMA), Clean Air Act (CAA) and CWA. In Oregon, which has a federally approved coastal management program, implementation[8] of CZMA consists of the state compiling local governments' comprehensive land use plans that were previously acknowledged by the state; consistency with CZMA is measured by compliance with local land use regulations, which implement them. Further, state law [9] requires that regulatory agencies must have received a land use compatibility statement from the local governments before a permit may be issued.
Thus, Oregon imposes local land use requirements as a basis for implementing its authority under the federal laws carved out by EPACT. Does this mean that LNG terminal and pipeline developers must get local land use approvals to comply with CZMA, CAA and CWA? One LNG developer has challenged the state's implementation of the federal law on the basis of EPACT preemption. That case [10] is now pending in federal court.
It would seem that allowing local governments veto authority over LNG development would be contrary to Congress'intent in vesting "exclusive" siting authority in FERC. Federal courts will strive to read EPACT, CZMA, CAA and CWA as harmonious. The question is, when does state implementation of these federal laws subvert the underlying policy?
[1]328 U.S. 152 (1946).
[3]33 U.S.C. § 1341.
[6]129 F.3d 99 (2d Cir. 1997).
[7]Pub. L. 109-58, codified at 15 U.S.C. 717b(e)(1).
[8]ORS Chapters 195, 196 and 197.
[9]ORS 197.180.
[10]Pacific Connector Gas Pipeline, LP v. Louise Sollidayet. al., No.CV6279(D. Or..filed August 27, 2010).
A TUG OF WAR: HOW CAN THE STATE SATISFY ITS BURDEN OF PROOF?
Posted on August 8, 2011 by Michael L. Hardy
In a very interesting air pollution control enforcement case, the Court of Appeals of Ohio, Tenth Appellate District (which sits in Columbus, Ohio) issued an opinion that concerns many experienced practitioners: State ex rel. Ohio Attorney General v. The Shelly Holding Co., et. al., 191 Ohio App. 3d 421, 2010 – Ohio – 6526, 946 N.E. 2d 295.
Shelly owned a number of hot mix asphalt plants. During stack tests to determine compliance with air pollution permit emission limitations, several plants failed their tests. But Shelly continued to operate those hot mix asphalt plants. The Ohio Environmental Protection Agency claimed that the continued operation of the plants after the failed tests constituted continuing violations even though the state had no monitoring data to prove that point. The Trial Court rejected the state's contention, stating that it was unwilling to infer a continued violation until Shelly successfully completed a subsequent stack test. "Simply put the Court does not find the requested inference to be reasonable given the fact that the State has the burden . Further, the Court finds Shelly's argument that a 'stack test' does not represent normal operating conditions to be compelling. Based on the foregoing, the Court will only consider the day of the 'stack test' demonstrating excess emission to be evidence of a violation." State ex rel. Ohio Attorney General v. The Shelly Holding Co., et. al. (Sept. 2, 2009), Franklin Cty. C. P. No. 07CVH07-9702.
The Court of Appeals reversed the Trial Court, stating that "…in determining the number of days each violation existed, the trial court should have concluded that the violation continued until the subsequent stack test determined that the plant no longer was violating the permit limitations." The Ohio Supreme Court has agreed to consider Shelly's appeal of this ruling. Shelly also has the amicus curiae support of a number of trade organizations, including the Ohio Chamber of Commerce.
Arguing that the state has the burden of proof to demonstrate by a preponderance of the evidence each and every day of violation, Shelly seeks a ruling from the Supreme Court that would prohibit the state from showing, by mere inference, that there are ongoing violations of permits and regulations after a failed stack test. Citing the record evidence that stack testing conditions are "snapshots" of operating conditions at the time of the test, typically "maximum, worst-case testing conditions," Shelly claims there was undisputed evidence that those tests do not represent day-to-day operations. The state offered no evidence to show that stack test conditions are indicative of day-to-day operations. Thus, Shelly argues, the proof of violation during a stack test does not necessarily show that the hot mix asphalt plant exceeded its permit limits during subsequent, more normal operations. Shelly also argued that the Tenth District incorrectly assumed that another stack test is the only way to show the reestablishment of compliance. Changes in operating conditions, restrictions on output or hours, and repairs may prove to be easier corrections than awaiting another stack test that requires coordination with state schedules. If a successful stack test is the only way to show compliance, the facility faces the Hobson's Choice of shut down or, if it continues to operate, the possible inference of continuing violations (and fines).
In short, this case will be interesting to follow because it highlights the real world difficulties that arise from the regulatory requirement to test under unrealistic, maximum, worst case conditions that do not correspond to day to day operations. While Shelly may be correct that it is improper to assume non-compliance during continuing, business normal operations after a failed stack test that proceeded under artificial conditions, there remains another difficult question for Shelly: how to re-establish compliance in a mutually satisfactory way. There is no doubt that the state regulatory authorities would balk at any ruling that would allow a regulated source unilaterally to change or curtail operations to attain compliance.
Endangered Species Act Still a Complication for Energy Development
Posted on August 3, 2011 by Pamela Giblin
Since its inception and the early battles over the snail darter and the Tennessee Valley Authority's Tellico Dam in the 1970s, the Endangered Species Act (ESA) has been substantially entangled with energy production in the United States. Energy development is no less ensnared today by the Act. Recent significant ESA activities affecting the energy sector include: proposed listing of the dunes sagebrush lizard, which is found in the middle of one of the most prolific oil and gas fields in the U.S.; a suit for injunction of a massive solar power development in the Mojave Desert; and a settlement proposal between the Department of Interior and conservation groups setting an aggressive timetable for future ESA listing decisions involving over 250 species. All of these could have wide repercussions on energy development for some time. This post provides the latest update on how the ESA is affecting the energy sector and outlines some ways that interested parties can play a part in the process.
Recent Listing Proposals and Litigation Affecting the Energy Industry
A number of conservation organizations have filed petitions with the U.S. Fish & Wildlife Service (Service or FWS) to "list" species as endangered or threatened throughout the U.S. When the Service has delayed making listing determinations, conservation organizations have followed up with litigation against the Service.
On July 12, 2011, the Center for Biological Diversity (CBD) announced that it was dropping its opposition to a comprehensive settlement agreement between the Department of Interior and WildEarth Guardians encompassing 13 listing suits filed by WildEarth Guardians and consolidated in the D.C. District Court. The settlement would establish work plans and timelines for the FWS to take key steps in the ESA process on over 250 species. The goal is to make listing decisions by 2016 for all species identified on FWS's current "candidate list". The listing of several species covered by the settlement agreement - including the greater sage grouse, the spot-tailed earless lizard, the lesser prairie chicken, and mollusks - could have major effects on the energy industry. The settlement agreement has not been finalized, due in part to a pending motion to intervene by a hunting group. But even the prospect of a set timetable for the listing of certain species has created difficulties for energy development.
The potential listing of species like the greater sage grouse is problematic for alternative energy and the oil and gas sector because they can be found in a number of areas where upstream oil and gas activities and alternative energy projects now exist or are planned. One such area is the energy prolific Powder River Basin area of Wyoming. Sage grouse are also found in Colorado, and in a 2008 rulemaking the Colorado Oil and Gas Conservation Commission proposed a number of provisions that were designed to protect the sage grouse and other sensitive species such as the mule deer, including restrictions on oil and gas well development in "sensitive wildlife habitat". In addition, those provisions gave the Colorado Division of Wildlife a prominent role in the Application for Permit to Drill process. The provisions were actively opposed by industry and became the source of controversy during the rulemaking process.
Recent litigation over the desert tortoise in California's Mojave Desert shows how the ESA can affect planned developments even after initial ESA reviews show no adverse effects. On June 27, 2011, the conservation group Western Watersheds sought a preliminary injunction and temporary restraining order (TRO) to stop construction of a $1.4 billion solar power plant project. Western Watersheds argued that the project's impacts on desert tortoises were underestimated during the Bureau of Land Management's review and approval process. While the TRO was denied, a hearing on Western Watersheds' motion for a preliminary injunction is set for August 1, 2011.
FWS's December 2010 proposed listing of the dunes sagebrush lizard in New Mexico and Texas as endangered specifically identified oil and gas, wind and solar energy activities as a threat. This has motivated stakeholders to commence an innovative joint Candidate Conservation Agreement with Assurances (CCAA) and Habitat Conservation Plan (HCP) process to insulate these energy sectors from potential adverse effects resulting from a listing. The use of more "programmatic" CCAAs and HCPs tied to industry activities as opposed to specific properties has taken on increasing importance to the energy sector as it becomes common for listing petitions and proposals to single out industry as a threat to species.
Another example involves litigation brought in March 2010 by The Aransas Project against several officials at the Texas Commission on Environmental Quality (TCEQ). That lawsuit, which was filed in United States District Court for the Southern District of Texas, Corpus Christi Division, alleges that TCEQ is committing "takes" of endangered whooping cranes when it allocates water in the Guadalupe and San Antonio rivers and prevents sufficient flows from reaching Nueces Bay, where the whooping crane is found. To the extent that it seeks wide declaratory and injunctive relief, including relief against a state agency and curtailment of existing water rights, the suit could set a significant precedent for future ESA suits related to water rights and actions by state agencies.
Keeping Up with the Evolving ESA Landscape
As is evident from the description of these recent developments, there are a number of steps in the process of listing a species as endangered or threatened under the ESA. As such, there are also a number of opportunities – both formal and informal – for members of the energy industry to weigh in on this process before the Service reaches the point of actually adding a species to the endangered and threatened species list. In addition, there are opportunities to initiate or intervene in litigation involving FWS with respect to listing actions and other ESA determinations.
To help develop a comprehensive strategy to anticipate and respond to potential challenges posed by ESA and related regulatory activities, interested parties should:
Survey Potential State and Federal Species and Habitat Listings
Survey Pending and Threatened FWS Litigation
Keep Abreast of New and Creative Uses of the ESA and Similar Statutes by Environmental Groups; and
Assess Risk to Operations and Evaluate Need for Possible Comments on Listings, Intervention in Litigation, or Subsequent Monitoring of Key Listing Decisions and Litigation.
By closely following the constantly evolving ESA landscape and taking advantage of strategic opportunities to influence the listing process and get involved in ESA litigation, the energy such parties can seek to influence the outcome of a process that can significantly impact the ability of companies to engage in energy production.
Tags: Endangered Species Act
The Process Continues: Savannah Harbor Expansion Project (SHEP)
Posted on August 1, 2011 by Drew Ernst
The deepening of the Savannah Harbor, now estimated to cost $588 million, was conditionally approved in part when Congress passed the Water Resources Development Act of 1999 ("WRDA99"). Those conditions included finalizing an environmental impact statement for the project as well as other supporting studies and completion of the permitting process. The act also required the selected plan for this project, which is known as SHEP, to be jointly approved by the Secretary of Interior, the Secretary of Commerce, the Administrator of the Environmental Protection Agency, and the Secretary of the Army, pursuant to § 101(b)(9)(B(ii) of WRDA99.
On April 15, 2010, I posted a blog entitled "In Search of Mitigation" on the ACOEL website (see Archives) which outlined the history and need for SHEP, as well as various proposals for mitigating the project's adverse environmental impacts. A Draft Tier II EIS and Draft General Re-Evaluation Report for SHEP were released in November 2010. The public comment period closed in January of 2011 and the Corps of Engineers has been analyzing comments and undertaking additional studies.
Because of the unique language in WRDA99, EPA, U.S. Fish and Wildlife and NOAA individually have a "kill switch" (a term coined by Savannahians) on key issues regarding SHEP. Fish and Wildlife is concerned that the proposed five years of post-construction monitoring is not adequate, and that ten years of monitoring should be required to ensure that proposed mitigation procedures are working. As discussed in my earlier posting, SHEP incorporates an Adaptive Management Plan ("AMP") which in itself is somewhat unique. The AMP, one of the first ever implemented for a harbor project, is designed to evaluate whether the measures undertaken to mitigate adverse impacts are performing as predicted and provide for changes to those mitigation measures if needed. And it's worth noting that those mitigation measures represent a very substantial share of the total project costs - 41.6 percent according to a March 2011 update from the Corps.
Of great concern to Fish and Wildlife is preservation of areas of tidal freshwater marsh found in the Savannah National Wildlife Refuge adjacent to the Savannah harbor. Fish and Wildlife also wants a guaranty that the money will be readily available to implement the AMP if mitigation measures need to be modified during post-construction monitoring. Mitigation efforts will include acquisition of freshwater wetlands across from and upriver of the Savannah National Wildlife Refuge (approximately 2,680 acres of wetland preservation) to replace freshwater acres which will be lost in part to increased salinity as a result of future rising tides, whether or not SHEP is implemented.
NOAA also remains concerned about SHEP's impacts, particularly on the endangered shortnose sturgeon. Many of NOAA's concerns could be alleviated if an out of service lock and dam system located upriver in Augusta, Georgia, were removed. However, such action would not be popular with residents in and about Augusta who use the impoundment for recreational purposes. EPA, in turn has requested a better explanation from the Corps of the impacts of harbor deepening on future harbor growth and on increases in air pollution and other collateral impacts.
Watching every move the agencies make is the Southern Environmental Law Center ("SELC") and the Coastal Conservation League. Both have threatened to sue if their environmental concerns are not resolved. SELC advocates a systematic by the Corps that would include consideration of all ports located on the Eastern Seaboard as "alternative sites" in order to determine which port best warrants deepening after considering environmental impacts and construction costs at each location.
Another player to watch is South Carolina, which shares the Savannah River as a common boundary with Georgia. South Carolina appears to be doing everything it can to stop or slow down SHEP in an effort to protect the competitiveness of the Port of Charleston.
Given the size of SHEP and its potential impacts, we can expect that other parties may join the action, and I in turn expect to be reporting again on SHEP as the project progresses into its second decade.
Tags: Water
Members Only Site
About ACOEL
Events and Publications
Search Membership
"Keep Makin' Bacon" Indiana's Right to Farm Act Statute Upheld As ConstitutionalComments: 0
Paying More than Your CERCLA Fair ShareComments: 0
Showerheads: Untangling the Outgoing Administration's Last Attack on Energy Conservation StandardsComments: 0
EPA's Ozone NAAQS Decision — Perhaps the Statute Itself Deserves Some of the BlameComments: 0
EPA Finalizes Decision to Retain the Existing PM2.5 NAAQS — Single Worst Environmental Decision of the Trump Administration?Comments: 0
Who Gets To Decide What is a Major Source That Requires a Permit? That's a Fine QuestionComments: 0
New Jersey Governor Signs Historic Environmental Justice LegislationComments: 0
One Op-Ed + One Book = ACOEL BlogComments: 0
Combating Climate Change with the Clean Air Act's International Air Pollution ProvisionComments: 0
HAS THE TIME COME FOR A GREENHOUSE GAS NAAQS? LAW STUDENTS WILL ARGUE THE ISSSUE AT THE 33RD ANNUAL NATIONAL ENVIRONMENTAL MOOT COURT COMPETITIONComments: 0
ACOEL
1730 M Street NW Suite 700
American College of Environmental Lawyers, The ACOEL, is a professional
association of lawyers distinguished by experience and high standards in the
practice of environmental law, ethics, and the development of environmental law.
Copyright © 2011, American College of Environmental Lawyers. All Rights Reserved.


text:
"""
Handle the planning of installs and their execution.

NOTE:
    conda.install uses canonical package names in its interface functions,
    whereas conda.resolve uses package filenames, as those are used as index
    keys.  We try to keep fixes to this "impedance mismatch" local to this
    module.
"""
from __future__ import absolute_import, division, print_function, unicode_literals

from collections import defaultdict
from logging import getLogger
from os.path import abspath
import sys

from .base.constants import DEFAULTS_CHANNEL_NAME, UNKNOWN_CHANNEL
from .base.context import context, reset_context
from .common.compat import itervalues, text_type
from .common.io import env_var, time_recorder
from .core.index import LAST_CHANNEL_URLS, _supplement_index_with_prefix
from .core.link import PrefixSetup, UnlinkLinkTransaction
from .core.prefix_data import is_linked, linked_data
from .core.solve import get_pinned_specs
from .exceptions import CondaIndexError, RemoveError
from .history import History
from .instructions import (CHECK_EXTRACT, CHECK_FETCH, EXTRACT, FETCH, LINK, PREFIX,
                           RM_EXTRACTED, RM_FETCHED, SYMLINK_CONDA, UNLINK)
from .models.channel import Channel, prioritize_channels
from .models.dist import Dist
from .models.enums import LinkType
from .models.version import normalized_version
from .resolve import MatchSpec, Resolve, dashlist
from .utils import human_bytes

try:
    from cytoolz.itertoolz import concat, concatv, remove
except ImportError:  # pragma: no cover
    from ._vendor.toolz.itertoolz import concat, concatv, remove  # NOQA

log = getLogger(__name__)

def print_dists(dists_extras):
    fmt = "    %-27s|%17s"
    print(fmt % ('package', 'build'))
    print(fmt % ('-' * 27, '-' * 17))
    for dist, extra in dists_extras:
        name, version, build, _ = dist.quad
        line = fmt % (name + '-' + version, build)
        if extra:
            line += extra
        print(line)

def display_actions(actions, index, show_channel_urls=None, specs_to_remove=(), specs_to_add=()):
    prefix = actions.get("PREFIX")
    builder = ['', '## Package Plan ##\n']
    if prefix:
        builder.append('  environment location: %s' % prefix)
        builder.append('')
    if specs_to_remove:
        builder.append('  removed specs: %s'
                       % dashlist(sorted(text_type(s) for s in specs_to_remove), indent=4))
        builder.append('')
    if specs_to_add:
        builder.append('  added / updated specs: %s'
                       % dashlist(sorted(text_type(s) for s in specs_to_add), indent=4))
        builder.append('')
    print('\n'.join(builder))

    if show_channel_urls is None:
        show_channel_urls = context.show_channel_urls

    def channel_str(rec):
        if rec.get('schannel'):
            return rec['schannel']
        if rec.get('url'):
            return Channel(rec['url']).canonical_name
        if rec.get('channel'):
            return Channel(rec['channel']).canonical_name
        return UNKNOWN_CHANNEL

    def channel_filt(s):
        if show_channel_urls is False:
            return ''
        if show_channel_urls is None and s == DEFAULTS_CHANNEL_NAME:
            return ''
        return s

    if actions.get(FETCH):
        print("\nThe following packages will be downloaded:\n")

        disp_lst = []
        for dist in actions[FETCH]:
            dist = Dist(dist)
            info = index[dist]
            extra = '%15s' % human_bytes(info['size'])
            schannel = channel_filt(channel_str(info))
            if schannel:
                extra += '  ' + schannel
            disp_lst.append((dist, extra))
        print_dists(disp_lst)

        if index and len(actions[FETCH]) > 1:
            num_bytes = sum(index[Dist(dist)]['size'] for dist in actions[FETCH])
            print(' ' * 4 + '-' * 60)
            print(" " * 43 + "Total: %14s" % human_bytes(num_bytes))

    # package -> [oldver-oldbuild, newver-newbuild]
    packages = defaultdict(lambda: list(('', '')))
    features = defaultdict(lambda: list(('', '')))
    channels = defaultdict(lambda: list(('', '')))
    records = defaultdict(lambda: list((None, None)))
    linktypes = {}

    for arg in actions.get(LINK, []):
        dist = Dist(arg)
        rec = index[dist]
        pkg = rec['name']
        channels[pkg][1] = channel_str(rec)
        packages[pkg][1] = rec['version'] + '-' + rec['build']
        records[pkg][1] = rec
        linktypes[pkg] = LinkType.hardlink  # TODO: this is a lie; may have to give this report after UnlinkLinkTransaction.verify()  # NOQA
        features[pkg][1] = ','.join(rec.get('features') or ())
    for arg in actions.get(UNLINK, []):
        dist = Dist(arg)
        rec = index[dist]
        pkg = rec['name']
        channels[pkg][0] = channel_str(rec)
        packages[pkg][0] = rec['version'] + '-' + rec['build']
        records[pkg][0] = rec
        features[pkg][0] = ','.join(rec.get('features') or ())

    new = {p for p in packages if not packages[p][0]}
    removed = {p for p in packages if not packages[p][1]}
    # New packages are actually listed in the left-hand column,
    # so let's move them over there
    for pkg in new:
        for var in (packages, features, channels, records):
            var[pkg] = var[pkg][::-1]

    updated = set()
    downgraded = set()
    channeled = set()
    oldfmt = {}
    newfmt = {}
    empty = True
    if packages:
        empty = False
        maxpkg = max(len(p) for p in packages) + 1
        maxoldver = max(len(p[0]) for p in packages.values())
        maxnewver = max(len(p[1]) for p in packages.values())
        maxoldfeatures = max(len(p[0]) for p in features.values())
        maxnewfeatures = max(len(p[1]) for p in features.values())
        maxoldchannels = max(len(channel_filt(p[0])) for p in channels.values())
        maxnewchannels = max(len(channel_filt(p[1])) for p in channels.values())
        for pkg in packages:
            # That's right. I'm using old-style string formatting to generate a
            # string with new-style string formatting.
            oldfmt[pkg] = '{pkg:<%s} {vers[0]:<%s}' % (maxpkg, maxoldver)
            if maxoldchannels:
                oldfmt[pkg] += ' {channels[0]:<%s}' % maxoldchannels
            if features[pkg][0]:
                oldfmt[pkg] += ' [{features[0]:<%s}]' % maxoldfeatures

            lt = LinkType(linktypes.get(pkg, LinkType.hardlink))
            lt = '' if lt == LinkType.hardlink else (' (%s)' % lt)
            if pkg in removed or pkg in new:
                oldfmt[pkg] += lt
                continue

            newfmt[pkg] = '{vers[1]:<%s}' % maxnewver
            if maxnewchannels:
                newfmt[pkg] += ' {channels[1]:<%s}' % maxnewchannels
            if features[pkg][1]:
                newfmt[pkg] += ' [{features[1]:<%s}]' % maxnewfeatures
            newfmt[pkg] += lt

            P0 = records[pkg][0]
            P1 = records[pkg][1]
            pri0 = P0.get('priority')
            pri1 = P1.get('priority')
            if pri0 is None or pri1 is None:
                pri0 = pri1 = 1
            try:
                if str(P1.version) == 'custom':
                    newver = str(P0.version) != 'custom'
                    oldver = not newver
                else:
                    # <= here means that unchanged packages will be put in updated
                    N0 = normalized_version(P0.version)
                    N1 = normalized_version(P1.version)
                    newver = N0 < N1
                    oldver = N0 > N1
            except TypeError:
                newver = P0.version < P1.version
                oldver = P0.version > P1.version
            oldbld = P0.build_number > P1.build_number
            newbld = P0.build_number < P1.build_number
            if context.channel_priority and pri1 < pri0 and (oldver or not newver and not newbld):
                channeled.add(pkg)
            elif newver:
                updated.add(pkg)
            elif pri1 < pri0 and (oldver or not newver and oldbld):
                channeled.add(pkg)
            elif oldver:
                downgraded.add(pkg)
            elif not oldbld:
                updated.add(pkg)
            else:
                downgraded.add(pkg)

    arrow = ' --> '
    lead = ' ' * 4

    def format(s, pkg):
        chans = [channel_filt(c) for c in channels[pkg]]
        return lead + s.format(pkg=pkg + ':', vers=packages[pkg],
                               channels=chans, features=features[pkg])

    if new:
        print("\nThe following NEW packages will be INSTALLED:\n")
        for pkg in sorted(new):
            # New packages have been moved to the "old" column for display
            print(format(oldfmt[pkg], pkg))

    if removed:
        print("\nThe following packages will be REMOVED:\n")
        for pkg in sorted(removed):
            print(format(oldfmt[pkg], pkg))

    if updated:
        print("\nThe following packages will be UPDATED:\n")
        for pkg in sorted(updated):
            print(format(oldfmt[pkg] + arrow + newfmt[pkg], pkg))

    if channeled:
        print("\nThe following packages will be SUPERSEDED by a higher-priority channel:\n")
        for pkg in sorted(channeled):
            print(format(oldfmt[pkg] + arrow + newfmt[pkg], pkg))

    if downgraded:
        print("\nThe following packages will be DOWNGRADED:\n")
        for pkg in sorted(downgraded):
            print(format(oldfmt[pkg] + arrow + newfmt[pkg], pkg))

    if empty and actions.get(SYMLINK_CONDA):
        print("\nThe following empty environments will be CREATED:\n")
        print(actions['PREFIX'])

    print()

def add_unlink(actions, dist):
    assert isinstance(dist, Dist)
    if UNLINK not in actions:
        actions[UNLINK] = []
    actions[UNLINK].append(dist)

# force_linked_actions has now been folded into this function, and is enabled by
# supplying an index and setting force=True
def ensure_linked_actions(dists, prefix, index=None, force=False,
                          always_copy=False):  # pragma: no cover
    assert all(isinstance(d, Dist) for d in dists)
    actions = defaultdict(list)
    actions[PREFIX] = prefix
    actions['op_order'] = (CHECK_FETCH, RM_FETCHED, FETCH, CHECK_EXTRACT,
                           RM_EXTRACTED, EXTRACT,
                           UNLINK, LINK, SYMLINK_CONDA)

    for dist in dists:
        if not force and is_linked(prefix, dist):
            continue
        actions[LINK].append(dist)
    return actions

# -------------------------------------------------------------------

def add_defaults_to_specs(r, linked, specs, update=False, prefix=None):
    return

def _remove_actions(prefix, specs, index, force=False, pinned=True):  # pragma: no cover
    r = Resolve(index)
    linked = linked_data(prefix)
    linked_dists = [d for d in linked]

    if force:
        mss = list(map(MatchSpec, specs))
        nlinked = {r.package_name(dist): dist
                   for dist in linked_dists
                   if not any(r.match(ms, dist) for ms in mss)}
    else:
        add_defaults_to_specs(r, linked_dists, specs, update=True)
        nlinked = {r.package_name(dist): dist
                   for dist in (Dist(fn) for fn in r.remove(specs, set(linked_dists)))}

    if pinned:
        pinned_specs = get_pinned_specs(prefix)
        log.debug("Pinned specs=%s", pinned_specs)

    linked = {r.package_name(dist): dist for dist in linked_dists}

    actions = ensure_linked_actions(r.dependency_sort(nlinked), prefix)
    for old_dist in reversed(r.dependency_sort(linked)):
        # dist = old_fn + '.tar.bz2'
        name = r.package_name(old_dist)
        if old_dist == nlinked.get(name):
            continue
        if pinned and any(r.match(ms, old_dist) for ms in pinned_specs):
            msg = "Cannot remove %s because it is pinned. Use --no-pin to override."
            raise RemoveError(msg % old_dist.to_filename())
        if (abspath(prefix) == sys.prefix and name == 'conda' and name not in nlinked
                and not context.force):
            if any(s.split(' ', 1)[0] == 'conda' for s in specs):
                raise RemoveError("'conda' cannot be removed from the base environment")
            else:
                raise RemoveError("Error: this 'remove' command cannot be executed because it\n"
                                  "would require removing 'conda' dependencies")
        add_unlink(actions, old_dist)
    actions['SPECS'].extend(specs)
    actions['ACTION'] = 'REMOVE'
    return actions

def remove_actions(prefix, specs, index, force=False, pinned=True):
    return _remove_actions(prefix, specs, index, force, pinned)
    # TODO: can't do this yet because   py.test tests/test_create.py -k test_remove_features
    # if force:
    #     return _remove_actions(prefix, specs, index, force, pinned)
    # else:
    #     specs = set(MatchSpec(s) for s in specs)
    #     unlink_dists, link_dists = solve_for_actions(prefix, get_resolve_object(index.copy(), prefix),  # NOQA
    #                                                  specs_to_remove=specs)
    #
    #     actions = get_blank_actions(prefix)
    #     actions['UNLINK'].extend(unlink_dists)
    #     actions['LINK'].extend(link_dists)
    #     actions['SPECS'].extend(specs)
    #     actions['ACTION'] = 'REMOVE'
    #     return actions

def revert_actions(prefix, revision=-1, index=None):
    # TODO: If revision raise a revision error, should always go back to a safe revision
    # change
    h = History(prefix)
    user_requested_specs = itervalues(h.get_requested_specs_map())
    try:
        state = h.get_state(revision)
    except IndexError:
        raise CondaIndexError("no such revision: %d" % revision)

    curr = h.get_state()
    if state == curr:
        return UnlinkLinkTransaction()

    _supplement_index_with_prefix(index, prefix)
    r = Resolve(index)

    state = r.dependency_sort({d.name: d for d in (Dist(s) for s in state)})
    curr = set(Dist(s) for s in curr)

    link_dists = tuple(d for d in state if not is_linked(prefix, d))
    unlink_dists = set(curr) - set(state)

    # check whether it is a safe revision
    for dist in concatv(link_dists, unlink_dists):
        if dist not in index:
            from .exceptions import CondaRevisionError
            msg = "Cannot revert to {}, since {} is not in repodata".format(revision, dist)
            raise CondaRevisionError(msg)

    unlink_precs = tuple(index[d] for d in unlink_dists)
    link_precs = tuple(index[d] for d in link_dists)
    stp = PrefixSetup(prefix, unlink_precs, link_precs, (), user_requested_specs)
    txn = UnlinkLinkTransaction(stp)
    return txn

# ---------------------------- Backwards compat for conda-build --------------------------

@time_recorder("execute_actions")
def execute_actions(actions, index, verbose=False):  # pragma: no cover
    plan = _plan_from_actions(actions, index)
    execute_instructions(plan, index, verbose)

def _plan_from_actions(actions, index):  # pragma: no cover
    from .instructions import ACTION_CODES, PREFIX, PRINT, PROGRESS, PROGRESS_COMMANDS

    if 'op_order' in actions and actions['op_order']:
        op_order = actions['op_order']
    else:
        op_order = ACTION_CODES

    assert PREFIX in actions and actions[PREFIX]
    prefix = actions[PREFIX]
    plan = [('PREFIX', '%s' % prefix)]

    unlink_link_transaction = actions.get('UNLINKLINKTRANSACTION')
    if unlink_link_transaction:
        raise RuntimeError()
        # progressive_fetch_extract = actions.get('PROGRESSIVEFETCHEXTRACT')
        # if progressive_fetch_extract:
        #     plan.append((PROGRESSIVEFETCHEXTRACT, progressive_fetch_extract))
        # plan.append((UNLINKLINKTRANSACTION, unlink_link_transaction))
        # return plan

    axn = actions.get('ACTION') or None
    specs = actions.get('SPECS', [])

    log.debug("Adding plans for operations: {0}".format(op_order))
    for op in op_order:
        if op not in actions:
            log.trace("action {0} not in actions".format(op))
            continue
        if not actions[op]:
            log.trace("action {0} has None value".format(op))
            continue
        if '_' not in op:
            plan.append((PRINT, '%sing packages ...' % op.capitalize()))
        elif op.startswith('RM_'):
            plan.append((PRINT, 'Pruning %s packages from the cache ...' % op[3:].lower()))
        if op in PROGRESS_COMMANDS:
            plan.append((PROGRESS, '%d' % len(actions[op])))
        for arg in actions[op]:
            log.debug("appending value {0} for action {1}".format(arg, op))
            plan.append((op, arg))

    plan = _inject_UNLINKLINKTRANSACTION(plan, index, prefix, axn, specs)

    return plan

def _inject_UNLINKLINKTRANSACTION(plan, index, prefix, axn, specs):  # pragma: no cover
    from os.path import isdir
    from .models.dist import Dist
    from ._vendor.toolz.itertoolz import groupby
    from .instructions import LINK, PROGRESSIVEFETCHEXTRACT, UNLINK, UNLINKLINKTRANSACTION
    from .core.package_cache_data import ProgressiveFetchExtract
    from .core.link import PrefixSetup, UnlinkLinkTransaction
    # this is only used for conda-build at this point
    first_unlink_link_idx = next((q for q, p in enumerate(plan) if p[0] in (UNLINK, LINK)), -1)
    if first_unlink_link_idx >= 0:
        grouped_instructions = groupby(lambda x: x[0], plan)
        unlink_dists = tuple(Dist(d[1]) for d in grouped_instructions.get(UNLINK, ()))
        link_dists = tuple(Dist(d[1]) for d in grouped_instructions.get(LINK, ()))
        unlink_dists, link_dists = _handle_menuinst(unlink_dists, link_dists)

        if isdir(prefix):
            unlink_precs = tuple(index[d] for d in unlink_dists)
        else:
            # there's nothing to unlink in an environment that doesn't exist
            # this is a hack for what appears to be a logic error in conda-build
            # caught in tests/test_subpackages.py::test_subpackage_recipes[python_test_dep]
            unlink_precs = ()
        link_precs = tuple(index[d] for d in link_dists)

        pfe = ProgressiveFetchExtract(link_precs)
        pfe.prepare()

        stp = PrefixSetup(prefix, unlink_precs, link_precs, (), specs)
        plan.insert(first_unlink_link_idx, (UNLINKLINKTRANSACTION, UnlinkLinkTransaction(stp)))
        plan.insert(first_unlink_link_idx, (PROGRESSIVEFETCHEXTRACT, pfe))
    elif axn in ('INSTALL', 'CREATE'):
        plan.insert(0, (UNLINKLINKTRANSACTION, (prefix, (), (), (), specs)))

    return plan

def _handle_menuinst(unlink_dists, link_dists):  # pragma: no cover
    from ._vendor.toolz.itertoolz import concatv
    from .common.compat import on_win
    if not on_win:
        return unlink_dists, link_dists

    # Always link/unlink menuinst first/last on windows in case a subsequent
    # package tries to import it to create/remove a shortcut

    # unlink
    menuinst_idx = next((q for q, d in enumerate(unlink_dists) if d.name == 'menuinst'), None)
    if menuinst_idx is not None:
        unlink_dists = tuple(concatv(
            unlink_dists[:menuinst_idx],
            unlink_dists[menuinst_idx+1:],
            unlink_dists[menuinst_idx:menuinst_idx+1],
        ))

    # link
    menuinst_idx = next((q for q, d in enumerate(link_dists) if d.name == 'menuinst'), None)
    if menuinst_idx is not None:
        link_dists = tuple(concatv(
            link_dists[menuinst_idx:menuinst_idx+1],
            link_dists[:menuinst_idx],
            link_dists[menuinst_idx+1:],
        ))

    return unlink_dists, link_dists

@time_recorder("install_actions")
def install_actions(prefix, index, specs, force=False, only_names=None, always_copy=False,
                    pinned=True, update_deps=True, prune=False,
                    channel_priority_map=None, is_update=False,
                    minimal_hint=False):  # pragma: no cover
    # this is for conda-build
    with env_var('CONDA_ALLOW_NON_CHANNEL_URLS', 'true', reset_context):
        from os.path import basename
        from ._vendor.boltons.setutils import IndexedSet
        from .core.solve import Solver
        from .models.channel import Channel
        from .models.dist import Dist
        if channel_priority_map:
            channel_names = IndexedSet(Channel(url).canonical_name for url in channel_priority_map)
            channels = IndexedSet(Channel(cn) for cn in channel_names)
            subdirs = IndexedSet(basename(url) for url in channel_priority_map)
        else:
            # a hack for when conda-build calls this function without giving channel_priority_map
            if LAST_CHANNEL_URLS:
                channel_priority_map = prioritize_channels(LAST_CHANNEL_URLS)
                channels = IndexedSet(Channel(url) for url in channel_priority_map)
                subdirs = IndexedSet(
                    subdir for subdir in (c.subdir for c in channels) if subdir
                ) or context.subdirs
            else:
                channels = subdirs = None

        specs = tuple(MatchSpec(spec) for spec in specs)

        from .core.prefix_data import PrefixData
        PrefixData._cache_.clear()

        solver = Solver(prefix, channels, subdirs, specs_to_add=specs)
        if index:
            solver._index = index
        txn = solver.solve_for_transaction(prune=prune, ignore_pinned=not pinned)
        prefix_setup = txn.prefix_setups[prefix]
        actions = get_blank_actions(prefix)
        actions['UNLINK'].extend(Dist(prec) for prec in prefix_setup.unlink_precs)
        actions['LINK'].extend(Dist(prec) for prec in prefix_setup.link_precs)
        return actions

def get_blank_actions(prefix):  # pragma: no cover
    from collections import defaultdict
    from .instructions import (CHECK_EXTRACT, CHECK_FETCH, EXTRACT, FETCH, LINK, PREFIX,
                               RM_EXTRACTED, RM_FETCHED, SYMLINK_CONDA, UNLINK)
    actions = defaultdict(list)
    actions[PREFIX] = prefix
    actions['op_order'] = (CHECK_FETCH, RM_FETCHED, FETCH, CHECK_EXTRACT,
                           RM_EXTRACTED, EXTRACT,
                           UNLINK, LINK, SYMLINK_CONDA)
    return actions

@time_recorder("execute_plan")
def execute_plan(old_plan, index=None, verbose=False):  # pragma: no cover
    """
    Deprecated: This should `conda.instructions.execute_instructions` instead
    """
    plan = _update_old_plan(old_plan)
    execute_instructions(plan, index, verbose)

def execute_instructions(plan, index=None, verbose=False, _commands=None):  # pragma: no cover
    """Execute the instructions in the plan

    :param plan: A list of (instruction, arg) tuples
    :param index: The meta-data index
    :param verbose: verbose output
    :param _commands: (For testing only) dict mapping an instruction to executable if None
    then the default commands will be used
    """
    from .instructions import commands, PROGRESS_COMMANDS
    from .base.context import context
    from .models.dist import Dist
    if _commands is None:
        _commands = commands

    log.debug("executing plan %s", plan)

    state = {'i': None, 'prefix': context.root_prefix, 'index': index}

    for instruction, arg in plan:

        log.debug(' %s(%r)', instruction, arg)

        if state['i'] is not None and instruction in PROGRESS_COMMANDS:
            state['i'] += 1
            getLogger('progress.update').info((Dist(arg).dist_name,
                                               state['i'] - 1))
        cmd = _commands[instruction]

        if callable(cmd):
            cmd(state, arg)

        if (state['i'] is not None and instruction in PROGRESS_COMMANDS and
                state['maxval'] == state['i']):

            state['i'] = None
            getLogger('progress.stop').info(None)

def _update_old_plan(old_plan):  # pragma: no cover
    """
    Update an old plan object to work with
    `conda.instructions.execute_instructions`
    """
    plan = []
    for line in old_plan:
        if line.startswith('#'):
            continue
        if ' ' not in line:
            from .exceptions import ArgumentError
            raise ArgumentError("The instruction '%s' takes at least"
                                " one argument" % line)

        instruction, arg = line.split(' ', 1)
        plan.append((instruction, arg))
    return plan

if __name__ == '__main__':
    # for testing new revert_actions() only
    from pprint import pprint
    pprint(dict(revert_actions(sys.prefix, int(sys.argv[1]))))

redpajama_set_name: RedPajamaGithub


text:
Movies & TV Jun 24, 2004
Man In Suit! Man In Suit!
Godzilla Destroys Tokyo! Again!
by Erik Henriksen
dir. Honda
Opens Fri June 25
How do you stop Godzilla? Missiles? Torpedoes? Yeah, right. Tanks and airplanes? Useless! Bullets, you say? Please. An atomic bomb? Perhaps... but since the prehistoric motherfucker was brought back to life because of radioactive experiments, it'd probably just make him stronger!
Much like its city-trashing star, Godzilla's immensely successful franchise has been impossible to kill for the past 50 years. Yet despite his tenacity, Godzilla's had a pretty tough time here in America--not only was there the execrable 1998 remake, but the version that most Americans consider the "real" Godzilla, Godzilla: King of the Monsters, isn't even the original classic. Rather, it's a poorly dubbed version with 40 minutes edited out, mostly to make room for a clumsily inserted Raymond Burr. (Even the monster's name was changed, from the Japanese "Gojira" to the Anglicized "Godzilla.") The Burr-ified version was designed to make the film marketable to American audiences, but according to Godzilla enthusiasts, the changes severely undercut the impact of the original film.
Godzilla enthusiasts also insist that the original is a serious social commentary, a dark meditation upon the dangers of modern technology. They have a point, but it's an overstated one--when it comes down to it, the appeal of any Godzilla movie is watching a man in a monster suit smash the shit out of miniature cardboard buildings.
Hardcore and casual fans alike, rejoice: the re-release of the original Godzilla restores that lost footage, boasts a new 35mm print, pretends Raymond Burr never lived, and has fresh translations and subtitles. More importantly, Godzilla's smashing of various shit looks better than ever--you name it, Godzilla smashes it, and it's awesome.
As an effects movie made before special effects were invented, the film undoubtedly shows its age. The heavy use of miniatures and other cheap effects can't be taken seriously, but therein lies Godzilla's campy, earnest charm. If it's a choice between watching a perfect CGI storm destroy a perfect CGI city in The Day After Tomorrow or watching a guy in a bulky lizard suit enthusiastically stomp and roar through some models, I'll pick the latter.
Scream (2022) Review: A Horror Film About Horror Films About Horror Films
by Matt Baume
Film Review: The 355 Is a Bummer (With a Really Good Cast)
Calling All Filmmakers (and Stoners): Submissions are Now Open for the 2022 SPLIFF Film Fest!
by Mercury Promotions

redpajama_set_name: RedPajamaCommonCrawl


text:
The Man Who Cried Dust
Christopher Muhammad's fight with Lennar over toxic dust has resulted in a restraining order against him, an accusation that he's a shakedown artist, and...
Lauren Smiley • 07/01/2009 4:00 am
When Nation of Islam minister Christopher Muhammad walked into a community meeting at the Bayview Opera House this spring, everyone knew he'd come to yell at people who don't agree with him. For the past three years, Muhammad and his followers had noisily criticized a housing development at the old Hunters Point Shipyard, which they contended was exposing children at the Nation's nearby private school, the Muhammad University of Islam, to toxic dust. What no one anticipated was that the night would end with someone getting a restraining order against him.
The meeting was hosted by environmentalists from the Sierra Club and Arc Ecology, a Bayview nonprofit that has monitored the shipyard for 25 years. The meeting's purpose was to clear up some of the misinformation about Lennar Corporation's massive redevelopment project. The Florida-based developer is poised to build thousands of condos and rental housing units at the shipyard over the next 10 to 20 years.
Even though he'd missed the night's presentation and a good portion of the public comment, Muhammad strode in 90 minutes late with his ever-present posse of followers from Mosque No. 26 in San Francisco and yelled at the organizers about not being concerned about the health issues of the community.
The disruption prompted as much as a third of the 70-person audience to get up to leave, Lennar rep Keith Jackson included. But if Jackson thought he could simply get in his car and go, he was wrong.
As Jackson walked out to the parking lot, Leon Muhammad, the school's dean, followed him with two other guys and surrounded Jackson's 2000 Jaguar.
Jackson told SF Weekly that Muhammad antagonized him by saying things like, "'How could [you] kill the babies? How dare you. You're a house Negro, you're an Uncle Tom.' I said, 'Brother Leon, I'm trying to get to my car and get home.'"
Soon after, Christopher Muhammad walked out and stood in front of the car so Jackson couldn't leave. Jackson recalls Christopher warning him, "Brother Keith, I told you the wrath is coming down on you! The wrath is coming down on you!"
Meanwhile, Leon continued with the taunts. Sellout. Punk. Sissy. Coward. The other men added, "What do you want to do, punk?" (Leon Muhammad refused to answer questions about the episode; Christopher Muhammad didn't respond to questions e-mailed to his aide about the exchange.)
Jackson had had enough. "I have never been threatened in that manner," he says. "I was forced to protect myself." The next day he drove to Bayview Police Station and obtained a five-day emergency protective order against the minister.
Despite a very strong bark, no one accuses Christopher Muhammad and the Nation of Islam in San Francisco of biting. (Jackson said the next time the two men met, Muhammad was polite.) He has given voice to some in the Bayview, who see him as David going up against a Goliath of racist government and corporate interests. But many question the group's in-your-face tactics against anyone who doesn't agree with its belief that Lennar is poisoning the largely African-American neighborhood. And while Muhammad's group hasn't succeeded in shutting down construction, it has unnerved community members and people in city government. The health department even had to abandon its door-to-door outreach about the dust after they were followed by school representatives calling them liars.
Muhammad and his allies cast their fight as a righteous battle for justice guided by God. Yet after expert on top of expert — including the Environmental Protection Agency under President Obama — has refuted Muhammad's claims that the dust caused by Lennar's construction is a long-term health hazard, a growing chorus of detractors is questioning his motives — and what he stands to gain.
"Nothing!" Muhammad bellows in response to such questions from the pulpit of the Grace Tabernacle Community Church on a recent Thursday night. "What I need is environmental justice. I don't need no grant. No funding. We're well funded, by the poor people. When you meet people you can't buy or sell, it's like, 'What in the world, what manner of people is this?'"
For the last three years, the boxy church on Oakdale up the hill from the shipyard has served as ground zero of the movement against Lennar. The weekly "Town Hall Meeting" draws a steady cast of black community activists, allied Christian pastors, Nation of Islam congregants, and little girls in floppy berets marked with the initials of the Muhammad University of Islam. It's an audience that holds the minister as the disciple of truth and justice, excoriating the powers he says hold down and push out black residents from San Francisco. The "greedy bums" in government. The redevelopment agency. The industrial prison complex. Environmental racism. Lennar.
Muhammad, who describes himself as being "near 50 years of age," speaks with charisma and force. He weaves a history of government betrayal of the black community, from the FBI's COINTELPRO to destroy black leadership in the '50s and '60s to the redevelopment agency that destroyed the black community in the Fillmore District, claiming the same "ethnic cleansing" is planned for the Bayview. He works in mistrust of corporations, with a sobering account of how his father developed esophageal cancer after years working as a bus mechanic, yet the bus company drew out the lawsuit until after he died so it wouldn't have to pay a cent. During his speech, people nod, cheer, and snap in approval — he's clearly a convincing orator.
Muhammad's style, while it offends some, earns respect from others. Bill Barnes, a political operative who has worked for Mayor Willie Brown and Supervisor Chris Daly, says Muhammad has driven serious and legitimate policy debates in recent years. "I think if you talk to people he represents, the individuals in the Nation of Islam want betterment for their community, they aren't motivated by hate or spite," he says. "Maybe they think what the government is doing isn't reaching [its] goal. They're not motivated by anything that's bad."
[page]
Even his critics offer Muhammad grudging respect. One of his foes at City Hall admits that "he's rhetorically quite brilliant." One pro-Lennar leader in the Bayview, who asked not to be named, credited him with playing an important role in badgering Lennar to make more of its development affordable to low-income residents: "If his leadership was part of the process from the very beginning, who knows, with that kind of call [for] accountability, because their style is so confrontational, who knows what we would have gotten?"
Muhammad has said that he was "quietly doing my work on Third Street" before Lennar's dust came along. During a 2008 interview, he declined to give many details about himself separate from his fight with Lennar, other than to say that he came to the San Francisco mosque from Los Angeles almost 20 years ago, and was now living "right outside the city." While the issue of the dust has given him a visible platform in recent years as a crusader against City Hall, Muhammad and the Nation of Islam enjoyed a good relationship with the powers that be under Brown, who tapped him to serve on his citizen advisory group, Committee 2000. (Muhammad supported Brown's election.)
Near the end of Brown's tenure, the mayor engineered a deal with the Nation of Islam that would eventually set the stage for the group's fight with Lennar and Brown's successor, Gavin Newsom. In 2002, the Housing Authority leased a derelict property above the shipyard to the Nation's private school.
Muhammad has said that he originally supported Lennar when the city entered into negotiations to develop the shipyard in the late '90s. But he says that support went south in 2006, after dust from the construction site blew across the fence onto his school's property and he says adversely affected students' health. In February 2007, Arc Ecology recommended that the Muhammad University of Islam be temporarily moved away from construction dust. But at a community meeting that month, he said he didn't want his school to be made into a "political football," and said he would accept only a permanent relocation. He noted that the current site had a waiting list of 200 children who couldn't fit in the few trailers that serve as classrooms. "So I think we can figure that out and I'm open to that dialogue, knowing that the city, Lennar, with all of its resources, can find a permanent place for children of color in this community," Muhammad said.
According to a meeting transcript, moments later Muhammad followed the request with a not-so-subtle threat: "I think if Lennar is not careful, they're going to force us to have to take this up to another level. I've been very measured in my methodology, if you will, but we are reaching that point of no return and … I would hate that the whole community begin to look at this development and this company in another light. I think we're getting close to that."
The Muhammad University of Islam School, which has about 100 students from kindergarten to 12th grade, sits across a chain-link fence from Parcel A of the Hunters Point Naval Shipyard, the site of the Naval Radiological Defense Laboratory and a decontamination site for ships returning from testing nuclear weapons in the Pacific during the Cold War. Since the Navy pulled out for the first time in 1974 and the recommissioned shipyard closed in 1991, the abandoned acres of land have been an ugly reminder of lost jobs and a toxic legacy from decades of discarding of dangerous waste.
Even before the shipyard closed down, the city began talks on how to redevelop the site. Eventually, 500 acres and six parcels of Navy property were identified for future housing, light industrial, and park sites after toxic cleanups were concluded.
The Navy declared Parcel A was safe to transfer to city ownership for construction in 2004; the city then transferred the land to Lennar for development. Though the levels of chemicals in the soil were determined to be safe for residential use by various regulatory agencies, the hill was laced with naturally occurring serpentine rock, which when disturbed can release asbestos, a mineral that in heavy doses over a period of years can cause the lung-scarring disease asbestosis. Since the city's southeast sector is one of six in the Bay Area disproportionately affected by air pollution, the city and the Bay Area Air Quality Management District required Lennar to monitor levels of dust and the concentration of asbestos in the air. Lennar agreed to mist the dirt and shut down work when asbestos rose to a "conservative" cutoff level of 16,000 particles per cubic meter of air. (The federal government will let children attend school after an asbestos abatement project at 20,000 asbestos particles per cubic meter.)
But Lennar broke its promises. The developer failed to install dust monitors at the beginning of construction. Then it reported to the city in August 2006 that its asbestos monitors didn't work for more than three months after major earth-moving work began in April 2006. After residents complained about dust levels, the city cited Lennar for various violations throughout 2006 and 2007. The air district eventually settled with the company for $515,000, the largest penalty in the agency's history for asbestos violations. Muhammad refers to it as "blood money." (The nonprofit he runs, the Center for Self-Improvement and Community Development, is suing Lennar for injunctive relief to stop construction.)
Muhammad says nobody from the city or the company told him there were dust control issues. But he says when students started to suffer from respiratory problems, bloody noses, and itchy eyes, he began to demand they be tested.
His blanket statement is at best a half-truth. There is no test to detect asbestos in the body, an assertion backed by a 2007 letter to the city's Department of Public Health (DPH) from the National Center for Environmental Health in Atlanta. The letter stated that the best way to monitor asbestos release is at its source. DPH agreed in January 2007 to estimate the "worst-case" exposure of the children during the months the monitors weren't functioning. A private environmental consulting firm hired by the city later concluded that the students were not exposed to dangerous amounts of dust.
At various times, DPH, the California Department of Health, the U.S. Department of Health and Human Services, the air district, a UCSF environmental health expert, and Arc Ecology have reported that the asbestos exposure from Parcel A does not present a significant long-term health risk.
Saul Bloom, the director of Arc Ecology, says that the Nation and its allies' insistence that the dust from Parcel A can be blamed for the Bayview's health problems distracts from addressing the more likely suspects in the environment, such as car and diesel exhaust, and mold and mildew in substandard housing. Since 2006, Arc Ecology has held the city contract to monitor the shipyard asbestos rates — which is billed to Lennar — but his organization has been working at the shipyard since 1983. Bloom's insistence on looking at the facts and not being swayed by political interests has led to him bump heads with the city, Lennar supporters, and Minister Muhammad. In the Bayview, that's about as independent as it gets.
"With Christopher Muhammad, he sees things within his own background — African-American community, not getting his fair share of development — and here's his opportunity to speak to those issues," Bloom said. "The detail issues, those aren't so important" to him.
But Muhammad has refused to accept official declarations from anyone that Lennar, despite its screw-ups, hasn't harmed anyone while working on Parcel A. As proof of his students' health problems, he has relied on the evaluation of the school's physician, Dr. Alim Muhammad.
At a redevelopment commission meeting in December 2006, Christopher Muhammad read a letter from the doctor, stating he had detected particles of serpentine rock in several students' lungs. The DPH committed to evaluate any children at the school who had health concerns related to dust exposure, and sent Dr. Muhammad a protocol for doing so in January 2007. Amy Brownell, the DPH environmental engineer assigned to the shipyard, says she has never heard back, and the school has presented no students for evaluation. DPH offered to meet with parents, students, and staff of the school for an information session. The answer was the same: none.
The Nation of Islam seemed interested only in disseminating its own message about the dust. In October 2006, Christopher Muhammad said during an interview last year, people connected with the school started knocking on doors to "educate" Bayview residents about the health risks. Robert Van Houten said he challenged a man accompanying school dean Leon Muhammad, who handed him a flyer talking about the cancer risks of the dust: "I said, 'You're scaring everybody,' and he got really defensive and said, 'Well, you're either with us or against us.'"
Next, the Nation of Islam sabotaged the Department of Public Health's own door-to-door campaign, which had been requested by Supervisor Sophie Maxwell in June 2007. According to a DPH memo, Leon Muhammad crashed an outreach training session at a nonprofit on Third Street, "contradicting the training content and asserting the DPH position [was] untruthful." Two days later, a group of about 10 adults and children from the school followed public health workers through the neighborhood and told residents that the workers had been paid by DPH to say those things and "Don't listen to them." The workers gave up after three hours.
There's no doubt the Nation's style leaves many feeling bullied. In the past, the Hunters Point Citizen Advisory Committee, a mayor-appointed body that advises the redevelopment agency on shipyard development, has requested police officers at the meetings when Muhammad and his allies were expected to show. At the Board of Supervisors meeting in July 2007, where Bayview residents complained of the ill- health effects of the construction, a Nation of Islam member stood on each level of the rotunda and at the elevators. "It's a form of intimidation, from our perspective," says Reverend Aurelius Walker, one of the pastors who will develop affordable housing on the Lennar construction site, who Muhammad insinuates are "paid operatives."
Christopher Muhammad told SF Weekly that his followers simply couldn't get into the boardroom. "I guess when it comes to African-American males, it's intimidating for us to be standing in City Hall," he said. "That's offensive." Lennar's spokesman, Sam Singer, says one of the suited men accompanying Muhammad told him: "'I looked you up on the Web page. I know where you're at, I don't like you, and I don't like the way you look.'… They're tough guys; they're to be taken seriously."
While some would say the attempts to get a permanent school location make Muhammad a hero, Singer and his client suggest something more nefarious at work (former Lennar vice president Paul Menaker reportedly described Muhammad as a "shakedown artist").
"Mr. Muhammad has been very clear from the beginning that the only thing he's interested in is money," Singer says. "He wanted money from Lennar to 'make the problem go away,' and the company just doesn't play that game."
While Muhammad's request still has many questioning his motives, neither Lennar nor the city has offered a permanent site for his school. In fact, for a while it looked as if he was in danger of losing the current site after getting into a very public feud with Mayor Gavin Newsom.
Judging from the scene at a campaign stop in Oakland this spring, the slick Gavin Newsom for Governor show had hit prime time. An illuminated "Gavin Newsom for a Better California" tarp hung behind rows of spectators gathered for a town hall meeting. Newsom used audience members' questions as a springboard to hit his talking points: universal health care, green jobs, medical marijuana, and a sanctuary city. The crowd ate it up. At least, most of them did.
When the microphone was handed to Christopher Muhammad, the lovefest was over. "These babies have been poisoned," he yelled. "Black, Latino, Pacific Islander, they've been poisoned, and the health department admits they were poisoned." A couple of folks in the audience clapped; others booed, while several taped the exchange to later post on YouTube. Newsom frowned and shook his head, later shuffling to a stool to pour a glass of water.
That wouldn't be the end: Muhammad's allies showed up two days later at Newsom's campaign stop in Napa. A week later in San Diego, Newsom ignored Leon Muhammad, who was waiting at the microphone. In Palo Alto, a Nation of Islam member took on the mayor again. Newsom later met with Muhammad twice, asking the minister to present any proof to substantiate his claims. Those at the meeting said Muhammad still presented no hard evidence, one calling his arguments "rhetorical theater."
Muhammad characterized the sit-down with the mayor at one of his own meetings at Grace Tabernacle, bestowing Newsom with a bumbling stutter in his impersonation: "I was with the mayor in a meeting recently," he began. "'But, but' — listen to how he said it — 'B-bu-but, listen, minister, what do you want?' What do you mean, what do I want? My message has been clear from day one. Haven't you been listening? We want you to stop work temporarily and assess these children's health. Again, for the 105th time."
Muhammad's contentious relationship with Newsom is a stark contrast to the supportive one he had with Brown. In a 2008 interview with SF Weekly, Muhammad said his support for Newsom cooled after the mayor refused to adopt the protocol developed by the African American Community Police Relations Board, a group of religious and neighborhood leaders of which Muhammad was the chairman.
But it's the issue of the dust that has most irritated both men. Two years ago, an agitated Newsom told the San Francisco Sentinel, "You know what, why does Minister Muhammad still have his kids up there? … He was given an opportunity to move his kids. If he believes what he is saying, why would he still allow those kids to still be there?"
After the confrontations on the campaign trail, the Housing Authority filed separate lawsuits against the Center for Self-Improvement and Community Development, which operates the Muhammad University of Islam. One suit alleged the school carried no insurance, as required in its 2002 lease. Secondly, the school had paid no rent — set at $2,000 per month — until January 2006, when the housing authority would deduct any school expenses from the rent. The Housing Authority itself has yet to pay the school district — the original owner — the agreed-upon $100,000 for the property, despite "efforts to collect money over the years," says school district spokeswoman Gentle Blythe.
The San Francisco Chronicle reported that the Housing Authority's decision came after consulting with Commissioner Reverend Amos Brown, a vocal opponent of Muhammad and supporter of Lennar, who recently wrote an editorial in the Examiner denouncing the "intimidation tactics" of the "extremist group" of the Nation of Islam.
Last month, a state Superior Court judge threw out the city's lawsuits. According to the Nation's lawyer, the judge found that the statute of limitations had passed to collect most of the back-rent. The school had obtained insurance after being served the eviction notice, rendering that complaint by the city moot. Point Muhammad.
Muhammad declined SF Weekly's request to discuss his face-offs with the mayor, although he has addressed the issue in recent speeches that, at times, have sounded vaguely threatening. "The target is Lennar and those who support Lennar in doing what Lennar has done in criminality to this community, and if Mayor Newsom or whoever else doesn't want the focus on them, then do the right thing," he said at Grace Tabernacle. "You've got time, but the window of time is closing."
One by one, city agencies, boards, and commissions moved past the asbestos issue. Yet Leon Muhammad found another venue to talk about the dust: the Navy's Restoration Advisory Board (RAB).
Dating back to the beginning of the Navy's shipyard cleanup in 1993, the board was intended to be an advisory volunteer group of community stakeholders who hear and voice opinions on the methods of the Navy's efforts. While long-time attendees say the board has gone through rough patches before, they say the process has disintegrated further since Leon Muhammad came on as cochair. The Navy says the discussion turned to asbestos dust on the city-owned parcel, which, from the Navy's perspective, is no longer its problem.
The last straw came at January's meeting, when six new members were voted onto the board. All but one formed a voting bloc to help pass three off-agenda motions introduced by Muhammad. First, the board voted to have a civil grand jury investigate whether there was a fair amount of community truckers receiving Navy contracts at the shipyard. Then the members voted DPH representative Amy Brownell off the board, alleging she had refused to answer their question about exceedences detected by a dust monitor on the border between Lennar and Navy property. (Brownell counters that she has given all the answers she has: "They don't like the answers, so they come up with new questions.") Lastly, the board voted to stop all construction work at the entire shipyard until the Navy and DPH explain the source of exceedences at that monitor, and detect the health risk to the adjacent community.
After that meeting, the Navy suspended the board, presenting information on cleanup at generic community meetings. The RAB cochair, Keith Forman, who was not present at the January meeting, told Leon Muhammad that the resolutions passed in his absence weren't approved RAB functions. The RAB later called an emergency meeting, during which the attendees voted Forman off the board. According to an e-mail from RAB member Lonnie Mason, Forman had "degraded the comments of others in this community as well as attacked the voices of the people from this community."
In an interview with SF Weekly, Leon Muhammad says considering the tone of meetings "hostile," as they're labeled in the Navy's memo, is a matter of perspective. "Was it hostile for Rosa Parks to sit down on the bus? As if the Navy wasn't hostile. … You could be considered hostile for what you've done to this community for the last 70 years."
Preaching at Grace Tabernacle, Christopher Muhammad said the Navy shut down the RAB for doing its job: "These little commissions … are always designed to be rubber-stamp, brother-slap entities to allow these people to do their dirt with the cover of community engagement, when in fact there was no community involvement at all."
Leon Muhammad says they plan to fight the decision by sending a letter to the Navy. Christopher Muhammad advised the RAB "to rise up, get off that plantation that you still on. … Let's expose these bums for what they are!" he said to wide applause. "Nobody gets a pass today. We're aiming to make life hard."
Minister Christopher Muhammad does not want reporters to write about him. When SF Weekly recently requested an interview, his answer came in the form of a lengthy pre-emptive attack on the paper during one of his town hall sermons at Grace Tabernacle. He accused the Weekly writer of "snooping around like a pig."
"They're always looking for dirt," he said. "J. Edgar Hoover was good at that, and there are people like that today … hoping that by destroying the good name or reputation, you can divert focus from the real crime which was the poisoning of this community."
Bishop Ernest Jackson of Grace Tabernacle ended another meeting with a prayer against press attention: "I'm not trying to play favorites, but the Nation of Islam has become a vanguard for the community. When you have strong voices among the community, grievous wolves will try to destroy them, but we shall not be moved. …We shall not be moved, no matter what the Chronicle says about us, no matter what the SF Weekly writes, no matter who they sent in, because God is with us."
The Nation and its allies might soon be on the righteous trail again, since more Newsom town hall meetings are scheduled. The meetings will implement a new format in which people write queries for the candidate on cards which are read by Newsom's staff. Newsom's campaign manager, Eric Jaye, denies this is connected to the Nation's questioning.
Muhammad and his movement continue with their demands: Replace Lennar with a green developer. Stop the construction. He told the air district that with the settlement, it should test residents, launch an education campaign, and install a hospital-grade air filter in each home in the neighborhood. So far, none of his demands have been answered, and Lennar is plowing on, installing infrastructure on Parcel A to start construction on the first houses in early 2011.
On a recent Thursday, Christopher Muhammad went to talk to the Environmental Protection Agency's Superfund site clean-up branch, accompanied by about 20 people, including Greenaction and the Sierra Club. In January, Leon Muhammad had asked the agency to look at the asbestos data to date from Parcel A to see whether it constituted "emergency" levels. EPA officials delivered their conclusion at the June meeting: No, it didn't. But they said they'd continue to monitor the site, even though the federal agency doesn't typically track asbestos levels.
Back at the Grace Tabernacle headquarters that night, Muhammad relayed a very different message to his followers. He said he'd asked the agency why it hadn't done more monitoring in the past: "They had no answers. Couldn't say anything in its defense. Because you sat back and watched this."
Leon yelled, "Nonnnnnne!" from a back pew, and Muhammad's followers were all ears.
Tags: Christopher Muhammad, Featured Stories, Lennar Corporation, Leon Muhammad, Nation of Islam
Overhauling San Francisco Government for the Digital Age
By Alisha Green
Mental Health, Homelessness and Civil Rights: S.F.'s Crisis of Conscience
By Nuala Sawyer Bishari
Sixth Street's 2020 Redesign Prioritizes Pedestrians
Sixth Street: S.F.'s Innercity Home
By Peter-Astrid Kane