Connect with us

Vermont

Climate Matters: Big victories for greener energy in Vermont – Addison Independent

Published

on

Climate Matters: Big victories for greener energy in Vermont – Addison Independent


GREG DENNIS

The Legislature last week achieved several milestones on the way to reducing climate pollution — even in the face of Gov. Phil Scott’s best efforts to keep Vermont stuck in the age of fossil fuels.

A greener Renewable Energy Standard — long a goal of 350Vermont and others — passed despite Gov. Scott’s veto. So did a set of improvements to Act 250 that will open some towns and cities to much needed residential development while better protecting the biodiversity of sensitive areas.

In the process, Scott’s anti-environmental vetoes have placed him even to the right of some of his natural allies. More on that below. First, a little background.

Advertisement

It used to be that veto overrides were as rare in Vermont as snowstorms in July. But in Montpelier these past two years, it’s been snowing all summer. Gov. Scott has been lobbing veto snowballs at the General Assembly, and legislators have responded with an avalanche of overrides.

Scott, a Republican in an overwhelmingly Democratic state, has had six vetoes overridden during each of the past two legislative sessions.

This year, the governor even went after the birds and the bees. He vetoed (and was overridden on) a bill banning neonicotinoid pesticides that contribute to the decline of vital pollinators. He declined to sign two bills that became law: VPIRG’s “make big oil pay” bill, and a bill to protect wetlands and floodplains from the more extreme weather of our deteriorating climate.

Now back to Scott’s rightward shift as the climate crisis worsens. 

His vetoes of Act 250 changes and the Renewable Energy Standard (RES) came even though traditionally conservative power blocs supported the bills.

Advertisement

The RES, for example, was endorsed by virtually all the state’s utilities, which are normally political allies of the Republican governor. Much of the hard work to improve the RES was accomplished in a working group that included the utilities and was headed by Rep. Amy Sheldon, D-Middlebury, and Addison County Sen. Chris Bray.

Under the new RES, Vermont is committed to achieving nearly 100% renewable electrical energy by 2030. The law also aims to double the amount of clean energy (mostly solar and wind) produced in the state and regionally. It will mean more green jobs and less burning of dirty oil and gas.

On revisions to Act 250, Scott also found himself to the right of political allies. The bill he vetoed drew support not just from environmental groups but also from the development industry and the Vermont Chamber of Commerce. In a statement supporting its passage, the chamber said a portion of the bill was “a top priority for the Vermont business community.”

Perhaps overlooked in all this were two other achievements pushed by 350Vermont and others.

The grassroots group recognized the potential of thermal energy networks to generate cleaner community energy and use it more efficiently. That approach, which avoids the need for burdensome bureaucracy, gained approval this session. So, too, did a study committee to suggest ways to protect lower-income Vermonters from electricity rate hikes.

Advertisement

Vermonters have a lot to celebrate at the end of this biennium. Working as a tighter coalition, advocates pushed the General Assembly to approve substantial climate legislation — and to make those approvals stick during the difficult task of overriding multiple vetoes.

Joan Baez used to sing of “little victories and big defeats.” Too often that’s been the experience for the climate movement even here in the Green Mountain State. This year, though, Vermonters can sing a song of big victories.



Source link

Vermont

Hour-by-hour: See when to expect steady snow Tuesday in Vermont, New York

Published

on

Hour-by-hour: See when to expect steady snow Tuesday in Vermont, New York


Roads will turn slippery mid-morning through mid-afternoon

Advertisement

Hour-by-hour: See when to expect steady snow Tuesday in Vermont, New York

Roads will turn slippery mid-morning through mid-afternoon

Advertisement

NBC5 meteorologists expect a burst of steady snow to arrive Tuesday morning in Vermont and northern New York, lasting through the early-mid afternoon. Deteriorating road conditions will lead to slow travel for several hours, with some improvement expected by the evening commute.Watch the video above to see the timeline for your area.

NBC5 meteorologists expect a burst of steady snow to arrive Tuesday morning in Vermont and northern New York, lasting through the early-mid afternoon.

Advertisement

Deteriorating road conditions will lead to slow travel for several hours, with some improvement expected by the evening commute.

Watch the video above to see the timeline for your area.

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.mynbc5.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.mynbc5.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

Advertisement

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

Advertisement

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

Advertisement

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.mynbc5.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.mynbc5.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

Advertisement

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

Advertisement

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Advertisement

Loading more articles…



Source link

Continue Reading

Vermont

Magnificent 7: Must-See, Must-Do Events in and Around Vermont, April 8-15 | Seven Days

Published

on

Magnificent 7: Must-See, Must-Do Events in and Around Vermont, April 8-15 | Seven Days


Perfectly Seasoned

Sunday 12

You know TV personality Alton Brown as the quirky host of hit reality cooking shows such as “Iron Chef America” and “Cutthroat Kitchen.” Now the culinary commentator and author takes the stage solo at Rutland’s Paramount Theatre for a no-frills show of his talents, trading the glitz and glamour of Hollywood for a more intimate showcase of food science, humor and heart.

Girl Almighty

Friday 10
Diana Whitney Credit: Courtesy of Beowulf Sheehan

Queer author and educator Diana Whitney launches her patriarchy-smashing poetry collection, Girl Trouble, in conversation with fellow writer Eve Alexandra at Next Stage Arts in Putney. Listeners hear unflinching takes on growing up female, adolescent trauma, rape culture and modern movements of resilience before roaring onto the dance floor to channel the grit and grace of feminism.

Fun Facts

Thursday 9
Local News Day Credit: © Undrey | Dreamstime

It’s no surprise that we stan Local News Day (see page 13). Journalism leaders and advocates fill Montpelier’s Kellogg-Hubbard Library for a fact-forward fête celebrating the value of civic transparency and trusted community information. A documentary screening and a panel discussion explore media ecosystems and spur dialogue about how to sustain an essential public resource.

Role Models

Saturday 11
CAN-AM Con Credit: © Nanantachoke | Dreamstime

Scale model makers and Lego lovers connect at CAN-AM Con at Williston’s National Guard Armory, where seminars and vendors complement a display contest honoring late Japanese producer Shunsaku Tamiya. Junior builders and veterans show off their finest constructions from any Tamiya kit for consideration in categories such as Best of Class and People’s Choice.

Advertisement
Saturday 11

Disco Inferno

Gala ’54: After Hours Credit: © Anton Vierietin | Dreamstime

The Current — Stowe’s center for contemporary art — invites philanthropic partygoers to the Lodge at Spruce Peak for Gala ’54: After Hours. The annual fundraiser boasts silent and live auctions, a cocktail reception, and chef-crafted food stations, all inspired by New York City’s glamorous Studio 54 era. Then revelers hit the dance floor to boogie oogie oogie in their flashiest disco dress.

See gallery listing at sevendaysvt.com/art

Piste de Résistance

Saturday 11 & Sunday 12
Gather Outdoors Credit: Courtesy

Music and winter culture festival Gather Outdoors takes Stratton Mountain Resort by storm with a superlative lineup of jam bands and electronic artists, including Philadelphia legends the Disco Biscuits and rising star Karina Rykman. The high-energy mountainside affair fuses plein air recreation with an immersive club atmosphere for an unforgettable end to the ski season.

Reading the Room

Tuesday 14
Bianca Stone Credit: Courtesy

Vermont poet laureate Bianca Stone continues her “State of Poetry” tour with a stop at Phoenix Books in Burlington. Stone leads an analytical deep dive into the craft of late Nobel Prize-winning writer — and the nation’s 12th poet laureate — Louise Glück, underscoring the vital cultural impact of her contributions to American literature.



Source link

Advertisement
Continue Reading

Vermont

Aly Richards announces run for Vt. governor

Published

on

Aly Richards announces run for Vt. governor


NEWBURY, Vt. (WCAX) – A new face joins the race for Vermont governor.

Aly Richards, the former CEO of Lets Grow Kids, will hold her campaign announcement on Monday morning.

Richards has spent the last decade advocating for affordable child care in Vermont, including pushing for the state’s landmark child care law.

Richards’ campaign announcement will take place in her hometown of Newbury at 11 a.m.

Advertisement



Source link

Continue Reading

Trending