Skip to main content

Trump Administration Will Pay More Energy Firms to Cancel Wind Farms

1 day 1 hour ago
The Trump administration says it will reimburse energy companies $885 million to cancel two planned offshore wind farms, with the firms in turn agreeing to put money into oil and gas projects instead. "The deals are modeled after a similar agreement last month with the French energy giant TotalEnergies," notes the New York Times. "TotalEnergies forfeited its leases for two wind projects planned off the coasts of New York and North Carolina, while committing to a range of fossil-fuel investments." From the report: [...] The first new agreement affects Bluepoint Wind, a wind farm in the early stages of development off New York and New Jersey. The project was proposed by Global Infrastructure Partners, a part of asset manager BlackRock, and Ocean Winds, which is itself a joint venture between Engie and EDP Renewables, two European clean-energy firms. The second deal would cancel Golden State Wind, another early-stage venture off California's central coast. Golden State Wind is a 50-50 partnership between the developers Ocean Winds and Reventus Power. Both Bluepoint Wind and Golden State Wind agreed not to pursue any new offshore wind projects in the United States, although that pledge would not necessarily apply to the companies behind the ventures. Ocean Winds has also been developing another giant wind farm known as SouthCoast Wind, off Martha's Vineyard, Mass., that is much further along in the planning and permitting process. That project is not affected by Monday's announcement, although it has essentially been paused since Mr. Trump took office last year. [...] It is also unclear how much the companies will actually invest in new fossil fuel infrastructure. In documents released this month, Interior revealed that it would count investments that TotalEnergies made before the deal toward its pledge, raising questions over whether the company had any obligations to make additional investments.

Read more of this story at Slashdot.

BeauHD

CodeSOD: Lint Brush Off

1 day 2 hours ago

A few years back, C# added the concept of "primary constructors". Instead of declaring the storage for class members and then initializing them in the constructor, you can annotate the class itself with the required fields, and C# automatically generates a constructor for you. It's all very TypeScript and very Microsoft, and certainly cuts down on some boilerplate.

Esben B's team isn't really using them in many places, but they are using a linter which is opinionated about them. So this in-line constructor causes the linter to complain:

public DocumentNetworkController(ILookupClient service)

The linter wants you to switch this to a primary constructor. Esben didn't want to do that, and didn't want to change the global linter configuration, and so added a pragma to disable that particular warning:

#pragma warning disable IDE0290 // Use primary constructor public DocumentNetworkController(ILookupClient service) #pragma warning restore IDE0290

The linter didn't like this. It threw a new warning: that this suppression wasn't needed. Which was news to Esben, as clearly the suppression was needed if you wanted to make the warnings go away. The obvious solution was to disable the warning that you didn't need to disable the warning:

#pragma warning disable IDE0079, IDE0290 // Use primary constructor public DocumentNetworkController(ILookupClient service) #pragma warning restore IDE0290, IDE0079

Except this doesn't work. These pragmas take effect on the next line, which means you can't disable IDE0079 on the same line as IDE0290 and expect it to work. Which means the final version of the code looked like this:

#pragma warning disable IDE0079 // Disable warning about not needed supression #pragma warning disable IDE0290 // Use primary constructor public DocumentNetworkController(ILookupClient service) #pragma warning restore IDE0290, IDE0079

Esben writes:

So the nice recommendation to use a primary ctor ended up with 3 lines of annoying boilerplate code. Good times \o/

While yes, this is frustrating, I will say there's an element of "when the table saw keeps taking fingers off, that may be more of a you problem." I don't know the details, so I can't say, "just change the linter config or adopt its recommendation" and claim that the problem goes away, but when the tool hurts you, it's a definite sign of one of two things: it's either the wrong tool, or you're using it wrong.

[Advertisement] ProGet’s got you covered with security and access controls on your NuGet feeds. Learn more.
Remy Porter