, but this code // executes before the first paint, when

麻豆区

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Calvin Teams With Grand Rapids Fire Department for Engineering Demo - News & Stories | 麻豆区

麻豆区

Skip to main content

Calvin News

Calvin Teams With Grand Rapids Fire Department for Engineering Demo

Wed, Oct 22, 2003
na

Calvin engineering students will have a chance to man a firehose this week - all in the name of science.
The event was arranged by Calvin professor Matt Heun as a way for him to give students in Engineering 319 (thermal-fluid sciences) a real-world example of science in action.
So on Wednesday, October 22 the Grand Rapids Fire Department will come to Calvin and Heun and his students will see - and feel - for themselves what it takes to hold a fire hose in place when fighting a fire.

"I thought it would be cool to put the students on the fire hoses," says Heun, "so that they get to feel for themselves how much force is required to hold the hose in place and understand that you have to lean into the hose."
The fire hose demonstration will take place twice on October 22 - each time for an hour. The first will be from 9 to 10 am and the second from 12:30 to 1:30 pm. Both demos will be in the parking lot of the Prince Conference Center (look for the firetruck).
Says Heun: "In class we do force calculations and determine that it typically takes two people to hold the hose in place. But, to the students this is very abstract. The fire hose problem is probably one of the most counterintuitive things we do. It is common to think that you need to pull back on the hose. But, firefighters push forward on the hose to keep it in place. The equations tell the correct story, but the students don't really believe it."
Come Wednesday, says Heun, they'll believe it!
Calvin offers a Bachelor of Science in Engineering degree (B.S.E.) with concentrations in chemical engineering, civil engineering, electrical & computer engineering, and mechanical engineering accredited by the Accreditation Board for Engineering and Technology (ABET).