, 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); })(); Robert Hoeksema | ÇÑ×ÓÊÓÆµ

ÇÑ×ÓÊÓÆµ

Skip to main content

Dr. Robert Hoeksema

Professor

Biography

Dr. Hoeksema is a Civil Engineer with interests in hydraulics, hydrology, and water resources. He has done research applying geostatistical techniques to estimation problems in the subsurface. This work has been done for Oak Ridge National Laboratory and the Netherlands Institute of Applied Geosciences - TNO. He has also taught short courses in applied geostatistics for the International Groundwater Modeling Center (located at the Colorado School of Mines). He currently provides professional services for Fishbeck, Thompson, Carr and Huber, Inc.

Education

BSLE, Calvin College, 1976
BSCE, University of Michigan, 1976
MSCE, University of Michigan, 1978
Ph.D., University of Iowa, 1984

Academic Interests

Dr. Hoeksema has written several publications and gives frequent talks on the history of flood protection and land reclamation in the Netherlands. His book, Designed for Dry Feet: Flood Protection and Land Reclamation in the Netherlands, was published by ASCE Press in April 2006. He is a member of and has written papers for publication in Water Resources Research and Advances in Water Resources. He has written a book called (ASCE Press, April 2006). In 2008 he received the . For full story, .

To read the press release on Prof. Hoeksema's Book, visit

Prof. Hoeksema has offered this interim course every other January.

Research and Scholarship