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

app

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); })(); app Remembers David Laverell - News & Stories | app

app

Skip to main content

app News

app Remembers David Laverell

Wed, Jul 17, 2024

A gifted theologian and mathematician, a grace-filled pastor and computer analyst. Believe it or not this description fits a single man: David Laverell.

“He had an unusual combination of talents,” said Joel Adams, a former colleague of Laverell’s. “Not many ordained pastors have also worked as professional software developers (or vice versa).”

David Laverell, 83, died on June 27, 2024. He served for a quarter century (1984-2009) as a professor of mathematics and then computer science at app.

“When I arrived, the department was a combined department of mathematics and computer science,” said Adams, “when it divided into two departments in the late 1990s, David was one of the faculty who joined the nascent CS department.”

A life-long learner

The idea that Laverell would enter into a new and less familiar space was on brand with who he was his entire life.

“David Laverell’s story is one of life-long learning,” wrote Adams in his retirement tribute to Laverell in 2009.

In the late 1960s and 70s, after completing his PhD, Laverell taught mathematics at Temple University and then at Indiana-University-Purdue University-Indianapolis. A decade later, he received his master of arts in religion and master of theology from Westminster Theological Seminary. This would lead him to the pastorate for a few years.

But during his time there, he continued to discover more about himself, including that he was a gifted computer analyst. In fact, he taught himself IBM assembly/machine language programming.

Where passions intersect

In 1984, Laverell saw an opportunity where he could shepherd students who were passionate about their Christian faith and who wanted to study mathematics and computer science.

Mike Stob served with Laverell during his entire career and was his department chair and dean at times. He said Laverell’s expertise in mathematics and computing was critical in advancing app’s computer science program.

“David was willing to do anything. He never complained about his teaching assignments or other departmental assignments. As a result, he often got more than his fair share of service courses and seemed to enjoy them,” said Stob. “We especially needed David to teach computer science in the early days of the program and he spent a lot of time on course development where we weren’t in the position to help him out.”

A pastoral approach

While Laverell was becoming an expert in his field (in fact he even served as an expert witness in an intellectual property lawsuit), the approach he took with his colleagues and students was what was most impressive.

“He actually served as an unofficial departmental chaplain and would offer devotionals at appropriate occasions,” said Stob.

“His empathetic nature came out in his interactions with colleagues,” said Adams. “When my father died, he came to my office and talked to me about dealing with grief and loss, as a pastor would. He was equally at home counseling people and writing system-level software.”

Student-centered

Adams saw Laverell take this approach as well with his students.

“David was unfailingly kind to people and was always willing to extend grace to students with whom others of us would have lost patience,” said Adams. “More than one student would not have finished our program if it weren’t for David!”

“His students and colleagues will remember him as a humble person who always put others—especially the students—before himself.”

Laverell is survived by his wife of 56 years, Marilyn, his children, Tim (Lisa), Beckie (Jeremy), Paul (Stacy), and Lara (Jason), and ten grandchildren.



Authors: