Connect with us

Vermont

Food in, food out: Need nearly doubles at local food pantry – VTDigger

Published

on

Food in, food out: Need nearly doubles at local food pantry – VTDigger


Tucked away in the back of the City Center building in downtown Montpelier, a small group of volunteers worked on a recent Tuesday morning to unload more than 700 pounds of food just transported from the Vermont Foodbank’s warehouse in Barre. Within a few hours, the metal shelves they stocked with peanut butter, mac and cheese, and canned vegetables would be nearly bare once again. 

“Food in, food out” is how my friend Katie describes the flow. She has volunteered at the Montpelier Food Pantry for a decade, and for the last several years, she has seen the need only deepen. 

Today you can support news coverage of Vermont’s challenges and help alleviate hunger at the same time.

The Montpelier Food Pantry reported serving nearly 1,300 patrons a month last year, almost double the number from just a few years previous. The Montpelier site is only one of the more than 300 locations that the Vermont Foodbank supports through its statewide food distribution network.

Advertisement

At VTDigger, we are committed to reporting on the challenges that Vermonters face every day. We know that rates of homelessness are among the highest in the nation, and that working a minimum wage job is often not enough to put food on the table. And for many Vermonters, the rising costs of health care might put a doctor out of reach.

This is why the work of the Vermont Foodbank is so critical, and why VTDigger is teaming up to support its efforts.

With your support, we can continue to shine a light on these pressing issues and ensure our neighbors aren’t left behind. Join our Thanksgiving member drive by donating today and you can support two worthy causes with one simple act.

Here’s how your donation helps:

  • $25 provides 1 meal for a family in need and supports our reporting.
  • $50 provides 5 meals and fuels in-depth investigative journalism.
  • $100 provides 25 meals and helps us continue covering stories that matter.

Give today and make a difference in your community.

With appreciation,

Advertisement
Diane Derby
Senior Editor, VTDigger





Source link

Advertisement

Vermont

Hour-by-hour: When to expect showers & thunderstorms Tuesday in Vermont, New York

Published

on

Hour-by-hour: When to expect showers & thunderstorms Tuesday in Vermont, New York


The most widespread storm coverage will occur between 2-8 PM Tuesday, April 14

Advertisement

Timeline: When to expect showers & thunderstorms Tuesday in Vermont, New York

The most widespread storm coverage will occur between 2-8 PM Tuesday, April 14

Advertisement

NBC5 meteorologists expect strong to locally severe thunderstorms Tuesday afternoon into the evening for Vermont and northern New York.Watch the video to see when showers, downpours, and storms are most likely near your town.

NBC5 meteorologists expect strong to locally severe thunderstorms Tuesday afternoon into the evening for Vermont and northern New York.

Advertisement

Watch the video to see when showers, downpours, and storms are most likely near your town.

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

Noah Kahan, Vermont consumers and venues voice support for ticket resale limits

Published

on


A movement to limit the resale price of concert and event tickets is growing in Vermont.Last Thursday, renowned Vermont singer Noah Kahan submitted a video to a state Senate committee voicing his support of H.512. The bill passed the House last month. “This bill is a critical step in eliminating predatory resale behaviors and offering promoters a great solution for exchanging and reselling tickets in a safe marketplace,” the Strafford native said to lawmakers.The bill would limit the resale of tickets to 110% of the value they were originally purchased at. Other Vermonter’s testified that day and said they found themselves purchasing tickets online, not from the event’s venue or artist. They said the price was way above the original rate. “Now I was not just mad at myself, but I was mad at this person who did it to me,” Marina Cole of Wheelock told lawmakers. In 2024, the National Association of Ticket Brokers told NBC 5 that they were against price caps, which this bill is currently pursuing.”We have really good businesspeople who are doing the right thing,” Executive Director Gary Adler said at the time. The bill, as passed by the House, would charge the Vermont Attorney General’s Office with enforcing the resale cap. The office would have the authority to conduct audits, issue penalties and revoke a reseller’s license. Resale licenses would be a new requirement under the current bill. “I suspect the enforcement won’t be easy,” executive director of the Champlain Valley Exposition Tim Shea said Monday. “But it’s something we’re looking to follow and advocate for the right ticket buyer.”Shea said the Expo has been approached by consumers who have faced high resale prices and even some cases of ticket fraud through online reselling. He believes the legislation would help avoid those issues and keep revenues for Vermont venues and artists within the state. “When tickets are marked up to the level, they are that money’s going out of Vermont. It’s not staying here. It’s not going to the promoter. It’s not going to the concessioners on the ground,” Shea said. The bill is currently being reviewed by the Senate Committee on Economic Development, Housing, and General Affairs.

A movement to limit the resale price of concert and event tickets is growing in Vermont.

Last Thursday, renowned Vermont singer Noah Kahan submitted a video to a state Senate committee voicing his support of H.512. The bill passed the House last month.

Advertisement

“This bill is a critical step in eliminating predatory resale behaviors and offering promoters a great solution for exchanging and reselling tickets in a safe marketplace,” the Strafford native said to lawmakers.

The bill would limit the resale of tickets to 110% of the value they were originally purchased at. Other Vermonter’s testified that day and said they found themselves purchasing tickets online, not from the event’s venue or artist. They said the price was way above the original rate.

“Now I was not just mad at myself, but I was mad at this person who did it to me,” Marina Cole of Wheelock told lawmakers.

Advertisement

In 2024, the National Association of Ticket Brokers told NBC 5 that they were against price caps, which this bill is currently pursuing.

“We have really good businesspeople who are doing the right thing,” Executive Director Gary Adler said at the time.

The bill, as passed by the House, would charge the Vermont Attorney General’s Office with enforcing the resale cap.

The office would have the authority to conduct audits, issue penalties and revoke a reseller’s license. Resale licenses would be a new requirement under the current bill.

“I suspect the enforcement won’t be easy,” executive director of the Champlain Valley Exposition Tim Shea said Monday. “But it’s something we’re looking to follow and advocate for the right ticket buyer.”

Advertisement

Shea said the Expo has been approached by consumers who have faced high resale prices and even some cases of ticket fraud through online reselling. He believes the legislation would help avoid those issues and keep revenues for Vermont venues and artists within the state.

“When tickets are marked up to the level, they are that money’s going out of Vermont. It’s not staying here. It’s not going to the promoter. It’s not going to the concessioners on the ground,” Shea said.

The bill is currently being reviewed by the Senate Committee on Economic Development, Housing, and General Affairs.



Source link

Advertisement
Continue Reading

Vermont

Meet the 95-year-old Vermont herbarium volunteer who had a fern named for her

Published

on

Meet the 95-year-old Vermont herbarium volunteer who had a fern named for her


BURLINGTON, Vt. (InvestigateTV) — For 28 years, Hilda White has shown up at the University of Vermont’s Pringle Herbarium to do a job most people have never heard of: mounting plants.

Now 95 years old, White has carefully preserved more than 50,000 plant specimens — pressing and affixing them to archival paper so they can be studied and referenced for generations to come.

“If I mount the plants, the plants will be around for hundreds of years, barring any unforeseen accidents or anything,” White said.

Birthday gift unlike any other

For her 95th birthday, the herbarium gave her a gift unlike any other: a newly discovered fern, found in Colombia in 2023, was officially named for her.

Advertisement

The plant — a Christmas fern — was discovered by Wes Testo, now the director of the Pringle Herbarium collection, during a research trip to South America.

“I was walking through the forest there, and I saw this just spectacular fern,” Testo said. “I knew immediately it was something I hadn’t seen before.”

After further research confirmed it was a species new to science, Testo and his colleagues decided to name it for White: Polystichum hildae.

“Oh, I was absolutely blown away,” White said when she learned of the honor.

“You can’t imagine, I cried all afternoon.”

Advertisement

‘Library for plants’

White’s work at the herbarium is kind of a library for plants.

“I can’t draw, but this is my artistic outlet,” she said.

Testo said White’s contributions have been essential to the research conducted in the collection, which now houses 400,000 plant specimens in a single room.

“Hilda mounted a huge amount of the specimens you see here,” Testo said. “Her contributions are absolutely essential to the research we do here.”

The collection’s survival is not something White or Testo take for granted. In 2017, a fire broke out at Torrey Hall, where the collection was housed at the time. Testo was in South America doing research when he received word.

Advertisement

“All I could see from an email in Colombia — the roof on fire. I thought my whole Ph.D. was going up in flames along with the whole collection here,” Testo said.

White was on her way into work when the fire broke out. Staff and volunteers, including White, worked to restore and remount the damaged plants. The collection has since been relocated to the Jeffords Building.

No plans to stop

White says she has no plans to stop.

“Oh no! I’ll be here as long as I can,” she said.

And when asked what she planned to give Testo for his birthday in return for the honor of having a plant named after her, White kept it simple.

Advertisement

“He just got good wishes!”

Read the full story.



Source link

Advertisement
Continue Reading

Trending