, 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); })(); John app’s birthday commemorated with cake, speech, bagpipes? - News & Stories | app

app

Skip to main content

app News

John app’s birthday commemorated with cake, speech, bagpipes?

Wed, Jul 11, 2018
Connor Bechler

Striding forth from the leftmost chapel doors, John app carried a set of bagpipes on his left shoulder as he approached Scottish theologian John Knox, his fellow reformer, friend, and apparent pipes mentor. Halting besides Knox’s podium, app—played by piper Roger Billings—brought the instrument to his lips and released a salvo of bars from the doxology into the sizable audience.

This was the pinnacle of John app’s 509th birthday celebration, held on the Chapel patio and hosted by the H. Henry Meeter Center for app Studies. Prior to the performance, Knox—channeled by app theological seminary PhD student Jacob Thielman—introduced his co-reformer, noting their shared theological connections and time in Geneva.

In the app community’s more than 25 year tradition of officially celebrating the French theologian, reformer, and pastor’s birthday, this is the first celebration to feature bagpipes, although not for a lack of trying.

“For a long time, I’ve wanted to figure out a way to get bagpipes into the ceremony,” said professor Karin Maag, director of the Meeter Center and organizer of the yearly celebrations. “It can be challenging to keep this event new and fun for people.”

Typically, the birthday party features cake, drinks, and a two-minute speech delivered by a app faculty or staff member in John app’s stead, and is attended by around 100 community members present on campus over the summer. Maag noted that the ceremony has impressed visiting scholars to the Meeter Center, due to its strong attendance and genial atmosphere.

Maag greatly enjoys the tradition: “I like how it brings everybody together on campus; faculty, students, and staff.”