, 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); })(); Venkatesh Speaks for Bouma Lecture - News & Stories | 麻豆区

麻豆区

Skip to main content

Calvin News

Venkatesh Speaks for Bouma Lecture

Tue, Mar 18, 2008
na

Calvin College will be bringing a well-known sociologist to Grand Rapids in mid-April for its annual Bouma Lecture.聽Sudhir Venkatesh will speak on April 10 at 3:30 pm in the Meeter Center Lecture Hall on "Law and Order in the Urban Ghetto."
Venkatesh is author of three books on urban life: American Project, Off the Books and Gang Leader for a Day. His research also was also featured in a chapter of Freakonomics.
Calvin sociology professor Mark Mulder says Venkatesh is a good fit for the annual Bouma Lecture, named for Donald Bouma who taught at Calvin from 1946 to 1960 and did groundbreaking work in civil rights and community organization.
"Dr. Bouma was always very passionate about issues of social justice," said Mulder, "as is our current department. Venkatesh conducts exhaustive ethnographic research that offers compelling insights on urban poverty in the U.S. Most significantly, his findings interrogate numerous assumptions and misconceptions about poverty. There are complex social organizations, networks and processes that exist in what Venkatesh calls the urban ghetto."
Venkatesh is a professor of sociology at Columbia University and the director of the Center for Urban Research.
In 2006 his qualitative work on a Chicago gang was featured in a chapter of Freakonomics entitled, 鈥淲hy Do Drug Dealers Still Live with Their Moms?鈥 His first book, American Project: The Rise and Fall of an Urban Ghetto, explored the social organization, history and moral universe of a Chicago public housing project.聽
His second book, Off the Books: The Underground Economy of the Urban Poor, examined the alternative economic networks of the south side of Chicago.
Earlier this year Venkatesh published Gang Leader for a Day, a memoir of the near-decade that he conducted research in and near the Robert Taylor Homes housing project in Chicago.聽