Connect with us

Kansas

Ex-St. John’s coach, KU assistant Roberts retires

Published

on

Ex-St. John’s coach, KU assistant Roberts retires


LAWRENCE, Kan. — Longtime college basketball coach Norm Roberts, who spent six seasons leading St. John’s but is perhaps better known for his long tenure as an assistant at Kansas, announced his retirement Monday after nearly four decades in coaching.

During his time on Bill Self’s bench, the Jayhawks won seven regular-season Big 12 Conference titles and three Big 12 Tournament titles, reached the Elite Eight of the NCAA Tournament four times and won the 2022 national championship.

“I’ve been fortunate that I’ve never worked a day in my life. Being able to coach at Kansas and be part of this program has been unbelievable,” Roberts said in a statement issued by the school. “After 37 years as a coach, it is time for me to move on, enjoy my family, spend more time with my wife and sons.”

Roberts was born in New York and played there for Queens College, a Division II school, before spending four seasons as its coach. He was hired by Self as an assistant at Oral Roberts in 1995 and followed him through stops at Tulsa and Illinois before arriving at Kansas, where Roberts came on the radar of St. John’s.

Advertisement

He wound up going 81-101 with the Red Storm, twice making the postseason but never the NCAA Tournament.

Roberts spent a quick stint at Florida before returning to Kansas in 2012, serving as one of Self’s closest confidants. He was the Jayhawks’ acting coach in recent years when Self dealt with some health issues and served a four-game suspension.

“This is a bittersweet moment for me because Norm and I have been together since 1995,” Self said. “Norm has played a key role to our success at all of the stops we’ve had together, especially here at Kansas. From recruiting to developing players to scouting and his knowledge of the game, both on and off the court, Norm has been instrumental in what we have achieved.

“We’ve had some unbelievable memories that will last our lifetimes.”

The 59-year-old Roberts was responsible for helping to recruit and coach seven NBA lottery picks, including Josh Jackson, Joel Embiid and Andrew Wiggins. In all, he has helped 35 players from Kansas alone go on to have professional basketball careers.

Advertisement

Roberts also coached his son, Niko, during his four-year career at Kansas. His other son, Justin, played at Toledo and Niagara.

“The thing I’m going to remember most are the players,” Roberts said, “and watching them grow, watching them succeed, and watching them fight through adversity and come back from that.”



Source link

Kansas

Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display

Published

on

Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display


Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display

Advertisement

MULTIPLE TIMES AND FIND NEW BOOTHS AND ARTISTS. THE METRO IS GETTING ITS FIRST LOOK AT ALL THE HEARTS THAT WILL BE FEATURED IN THIS YEAR’S PARADE OF HEARTS. THERE WAS A SNEAK PEEK EVENT AT THE OVERLAND PARK CONVENTION CENTER YESTERDAY. THE PARADE OF HEARTS SHOWCASES KANSAS CITY’S CREATIVITY AND HIGHLIGHTS LOCAL ART. EACH SCULPTURE WAS DESIGNED BY A LOCAL ARTIST AND WILL BE ON DISPLAY AROUND THE METRO. MY FAVORITE MOMENT IS JUST SEEING THE SMILES ON EVERYONE’S FACES AND THOSE PROUD MOMENTS WHERE YOU HAVE PARENTS SITTING THERE WATCHING THEIR KIDS. WE HAVE ARTISTS AS YOUNG AS NINE YEARS OLD, SEVEN YEARS OLD, AND THEN UP UNTIL CLOSE TO 80. SO WE HAVE ALL AGES REPRESENTED, SO WE SEE THEIR FAMILIES SUPPORTING THEM, AND IT’S JUST A GREAT MOMENT. AND SOON THE ART, THE HEARTS WILL GO TO THEIR DESIGNATED LOCATIONS ACROSS THE AREA. THEY’LL BE THERE ALL SUMMER LONG BEFORE BEING AUCTIONED OFF. THE PROCEEDS WILL GO TOWARDS SUPPORTI

Advertisement

Kansas City gets first look at 2026 Parade of Hearts sculptures ahead of summer display

Updated: 6:26 PM CDT Apr 5, 2026

Editorial Standards

Advertisement

Kansas City is getting an early look at one of its most recognizable public art displays.A preview event for the 2026 Parade of Hearts was held Saturday at the Overland Park Convention Center, giving attendees a first glimpse at this year’s heart sculptures.The annual event highlights local artists and showcases creativity across the metro, with each sculpture designed by a Kansas City-area artist.In the coming weeks, the hearts will be placed at locations throughout the region, where they will remain on display throughout the summer.Organizers say the installations are meant to encourage people to explore the metro while supporting the arts.At the end of the season, the sculptures will be auctioned off, with proceeds going toward supporting local artists.A full map of heart locations will be available online once installations are complete.

Kansas City is getting an early look at one of its most recognizable public art displays.

Advertisement

A preview event for the 2026 Parade of Hearts was held Saturday at the Overland Park Convention Center, giving attendees a first glimpse at this year’s heart sculptures.

The annual event highlights local artists and showcases creativity across the metro, with each sculpture designed by a Kansas City-area artist.

In the coming weeks, the hearts will be placed at locations throughout the region, where they will remain on display throughout the summer.

Advertisement

Organizers say the installations are meant to encourage people to explore the metro while supporting the arts.

At the end of the season, the sculptures will be auctioned off, with proceeds going toward supporting local artists.

A full map of heart locations will be available online once installations are complete.

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.kmbc.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kmbc.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.kmbc.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kmbc.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

Kansas

Where to watch Milwaukee Brewers vs Kansas City Royals: TV channel, start time, streaming for Apr. 5

Published

on

Where to watch Milwaukee Brewers vs Kansas City Royals: TV channel, start time, streaming for Apr. 5


play

Baseball is back and finding what channel your favorite team is playing on has become a little bit more confusing since MLB announced plans to produce and distribute broadcasts for nearly a third of the league.

We’re here to help. Here’s everything you need to know Sunday as the Milwaukee Brewers visit the Kansas City Royals.

Advertisement

See USA TODAY’s sortable MLB schedule to filter by team or division.

What time is Milwaukee Brewers vs Kansas City Royals?

First pitch between the Kansas City Royals and Milwaukee Brewers is scheduled for 2:10 p.m. (ET) on Sunday, Apr. 5.

How to watch Milwaukee Brewers vs Kansas City Royals on Sunday

All times Eastern and accurate as of Sunday, April 5, 2026, at 10:03 a.m.

  • Matchup: MIL at KC
  • Date: Sunday, Apr. 5
  • Time: 2:10 p.m. (ET)
  • Venue: Ewing M. Kauffman Stadium
  • Location: Kansas City, Missouri
  • TV: Royals.TV and Brewers.TV
  • Streaming: MLB.TV on Fubo

Watch MLB all season long with Fubo

MLB regional blackout restrictions apply

MLB scores, results

MLB scores for Apr. 5 games are available on usatoday.com . Here’s how to access today’s results:

Advertisement

See scores, results for all of today’s games.



Source link

Continue Reading

Kansas

Kansas State adds linebacker Colton McComb

Published

on

Kansas State adds linebacker Colton McComb


It is safe to say Kansas State has it rolling a bit on the recruiting trail in the 2027 recruiting class. K-State has landed Edmond, Oklahoma linebacker Colton McComb.

The announcement from McComb comes while on an unofficial visit to Kansas State. It was the first time the linebacker had visited Manhattan and he was blown away by the Wildcats on his visit leading to his commitment.

McComb was a newer target of Kansas State when Collin Klein was announced as the new head coach. His recruitment was much more of the sprint variety. The Oklahoma native was offered by K-State January 16 by area recruiter Brian Lepak.

Shortly after his offer from the Wildcats, McComb was visited by Kansas State defensive coordinator Jordan Peterson who conducted an in-home visit with the junior. After the in-home visit, he scheduled a visit to Manhattan for this weekend where he pulled the trigger. The K-State defensive coordinator deserves a lot of credit for getting this commitment done for the Wildcats.

Advertisement

The junior held offers from Baylor, Boston College, Kansas, Oklahoma, Oklahoma State, Purdue, Memphis and Tulane along with the offer from the Wildcats. McComb had official visits scheduled to Baylor and Kansas for the summer, but will no longer take those. Both Sooner State schools also wanted the junior linebacker, so he was a very wanted prospect on the recruiting trail. He is also the older brother of David McComb who began his college career at Kansas.

Overall, McComb is commitment No. 5 for Kansas State. At this point last year, K-State still had not received its first commitment yet. He joins the Wildcat class of defensive lineman Dawayne Jones, safety Julian Elzey, cornerback Nazir Pitchford and offensive lineman Canaan Smith. McComb is also the second Oklahoma native to join the class joining Jones.



Source link

Continue Reading

Trending