, 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); })(); Waka Waka Bang Splat! - News & Stories | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

ÃÛÌÒapp News

Waka Waka Bang Splat!

Thu, Apr 10, 2003
na
It's been almost 13 years since two ÃÛÌÒapp folks, Fred Bremmer and Steve Kroese, wrote the first poem for the internet, a poem composed entirely of computer keyboard characters. It swept through cyberspace with amazing speed for a poem and still lives on in hundreds of website across the globe. In the interest of posterity we reproduce it now below on ÃÛÌÒapp's website, assuming that the authors allow it to be so (if they don't, contact us!).
The poem is called "Waka Waka Bang Splat!" It goes like this:

< > ! * ' ' #
^ " ` $ $ -
! * = @ $ _
% * < > ~ # 4
& [ ] . > . /
| { , , SYSTEM HALTED


Read aloud it goes like this:

< > ! * ' ' #
Waka waka bang splat tick tick hash,

^ " ` $ $ -
Caret quote back-tick dollar dollar dash,

! * = @ $ _
Bang splat equal at dollar underscore,

% * < > ~ # 4
Percent splat waka waka tilde number four,

& [ ] . . /
Ampersand bracket bracket dot dot slash,

| { , , SYSTEM HALTED
Vertical-bar curly-bracket comma comma CRASH.