CINXE.COM

Short Topics in System Administration Series | USENIX

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr" xmlns:og="http://ogp.me/ns#" xmlns:article="http://ogp.me/ns/article#" xmlns:book="http://ogp.me/ns/book#" xmlns:profile="http://ogp.me/ns/profile#" xmlns:video="http://ogp.me/ns/video#" xmlns:product="http://ogp.me/ns/product#"> <head profile="http://www.w3.org/1999/xhtml/vocab"> <script type="text/javascript" id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="694f6fb4-ca29-459f-a9b6-c1deccf2eaca" async="async"></script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"d823139095",applicationID:"509444"};;/*! For license information please see nr-loader-rum-1.281.0.min.js.LICENSE.txt */ (()=>{var e,t,r={122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},217:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>b,xN:()=>v});r(860).K7.genericEvents;const n="experimental.marks",i="experimental.measures",o="experimental.resources";var a=r(993);const s=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(614),u=r(944),l=r(384),d=r(122);const f="[data-nr-mask]",g=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0,level:a.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(i)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:c.wk,inactiveMs:c.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){s(t)?e.mask_selector="".concat(t,",").concat(f):""===t||null===t?e.mask_selector=f:(0,u.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){s(t)?e.block_selector+=",".concat(t):""!==t&&(0,u.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,u.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},p={},m="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(m);if(!p[e])throw new Error("Configuration for ".concat(e," was never set"));return p[e]}function v(e,t){if(!e)throw new Error(m);p[e]=(0,d.a)(t,g());const r=(0,l.nY)(e);r&&(r.init=p[e])}function b(e,t){if(!e)throw new Error(m);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>d});var n=r(122),i=r(384),o=r(154),a=r(324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},l={};function d(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!l[e])throw new Error("Runtime for ".concat(e," was never set"));return l[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");l[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(l[e],"harvestCount")||Object.defineProperty(l[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=l[e])}},324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.281.0",i="PROD",o="CDN"},154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>l,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,l=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>d,x3:()=>u});var n=r(836),i=r(606),o=r(860),a=r(646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};l(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function l(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function d(e="",t="feature",r=!1){if(l(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(990),o=r(371),a=r(646),s=r(607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},l={},d=!1;try{d=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=m(e),l=c.length,d=0;d<l;d++)c[d].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:d?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:d};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return l[t]=l[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),l=(0,n.Zm)();l.ee||(l.ee=u)},646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(566).bz)()},566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(836),i=r(154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>l,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>d});var n=r(154),i=r(863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function l(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(836),i=r(607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];l(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return l(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,l,d;try{a=this,o=[...arguments],l="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],l],e)}i(r+"start",[o,a,s],l,c);try{return d=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],l,c),e}finally{i(r+"end",[o,a,d],l,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(836),i=r(687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(555),o=r(371),a=r(908),s=r(836),c=r(687),u=r(289),l=r(154),d=r(944),f=r(969),g=r(384),p=r(344);const m=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],h=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(863),b=r(614),y=r(993);var w=r(646),A=r(434);const R=new Map;function _(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,d.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[A.Jt]||t[r];return R.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>R.get(c))),i}function E(){const e=(0,g.pV)();m.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,d.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const m={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var R="api-",E=R+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(R,n,!0,o||null===r?"session":void 0)(t,r)}function k(){}m.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,v.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},m.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),_(w,e,t,{customAttributes:r,level:i})},h.forEach((e=>{m[e]=j(R,e,!0,"api")})),m.addPageAction=j(R,"addPageAction",!0,n.K7.genericEvents),m.recordCustomEvent=j(R,"recordCustomEvent",!0,n.K7.genericEvents),m.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(R,"setPageViewName",!0)()},m.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,d.R)(40,typeof t)}else(0,d.R)(39,typeof e)},m.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,d.R)(41,typeof e)},m.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,d.R)(42,typeof e)},m.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,d.R)(23,e)}},m[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},m[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},m.interaction=function(e){return(new k).get("object"==typeof e?e:{})};const T=k.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(E+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,v.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,w),r?void 0:this}}function I(){r.e(296).then(r.bind(r,778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,d.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{T[e]=j(E,e,void 0,g?n.K7.softNav:n.K7.spa)})),m.setCurrentRouteName=g?j(E,"routeName",void 0,n.K7.softNav):j(R,"routeName",!0,n.K7.spa),m.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},l.RI?(0,u.GG)((()=>I()),!0):I(),m}var k=r(217),T=r(122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},I={};var S=r(284);const O=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function K(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:d={},exposed:f=!0}=t;d.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,k.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");I[e]=(0,T.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=I[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},l.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const m=(0,k.D0)(e.agentIdentifier),h=[c.beacon,c.errorBeacon];P||(m.proxy.assets&&(O(m.proxy.assets),h.push(m.proxy.assets)),m.proxy.beacon&&h.push(m.proxy.beacon),E(),(0,g.US)("activatedFeatures",S.B),e.runSoftNavOverSpa&&=!0===m.soft_navigations.enabled&&m.feature_flags.includes("soft_nav")),d.denyList=[...m.ajax.deny_list||[],...m.ajax.block_internal?h:[]],d.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,d),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=N(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),P=!0}},374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.281.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.281.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){s=d;break}}if(!s){c=!0;var f={296:"sha512-zqOtfbjYsGTkQScey1O8Hh9fA1+m2RFxLpfv7BWqqTivgQ6iM13v6QJ4d5xykyDwx1GoMFmngC4SKpFn6VciYg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={374:0,840:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.281.0.PROD"]=self["webpackChunk:NRBA-1.281.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(374);var e=i(944),t=i(344),r=i(566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(217);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var l=i(603);var d=i(687),f=i(234),g=i(289),p=i(154),m=i(384);const h=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function v(e){return!!(0,m.dV)().o.MO&&h(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,d.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,d.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,d.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,d.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return v(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(908),_=i(843),E=i(878),x=i(782),N=i(863);class k extends y{static featureName=x.T;constructor(e,t=!0){super(e,x.T,t),p.RI&&((0,_.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,x.T,this.ee)),!0),(0,E.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,x.T,this.ee))),this.importAggregator(e))}}var T=i(969);class j extends y{static featureName=T.TZ;constructor(e,t=!0){super(e,T.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,m.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,l.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,m.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,k,j],loaderType:"lite"})})()})();</script> <link rel="shortcut icon" href="https://www.usenix.org/sites/default/files/waves_favicon.ico" type="image/vnd.microsoft.icon" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> <title>Short Topics in System Administration Series | USENIX</title> <link type="text/css" rel="stylesheet" href="https://www.usenix.org/sites/default/files/css/css_xE-rWrJf-fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.usenix.org/sites/default/files/css/css_6Lm0rnfxqNW_dZrK-jiErWln-cm6IgixIkNMwxv7Ar4.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.usenix.org/sites/default/files/css/css_nUFTrBzuSS1e6iNFoYIyAptja28IikBBh8IfX_l3-Jw.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.usenix.org/sites/default/files/css/css_exNc2HUqF3VxqwtRmix6q_KNhAzR5yiRj_9CIsD-TUY.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.usenix.org/sites/default/files/css/css_mRbT5IPFSFuKfzZdgdvZZ85p2out8lpep9KzGqViarQ.css" media="all" /> <script type="text/javascript" src="https://www.usenix.org/sites/default/files/js/js_fyV0VVkC6Q3xduxGurKMTFIU2dMmArUrbAdZORL-9WQ.js"></script> <script type="text/javascript" src="https://www.usenix.org/sites/default/files/js/js_s7yA-hwRxnKty__ED6DuqmTMKG39xvpRyrtyCrbWH4M.js"></script> <script type="text/javascript" src="https://www.usenix.org/sites/default/files/js/js_DjF-Bb20xeeKeAY25OYUCrKu9mAURkrZnvUmdejl3_I.js"></script> <script type="text/javascript" src="https://www.usenix.org/sites/default/files/js/js_gHk2gWJ_Qw_jU2qRiUmSl7d8oly1Cx7lQFrqcp3RXcI.js"></script> <script type="text/javascript" src="https://www.usenix.org/sites/default/files/js/js_c1UQOxhwNnuTsWnd9lDhuB9StH6KO8O7hCZUlrbwCwM.js"></script> <script type="text/javascript" src="https://js.stripe.com/v3"></script> <script type="text/javascript" src="https://www.usenix.org/sites/default/files/js/js_ZO6lBzNCyArV9XKBSrkUh7Vi0Hl4xwt03mPiMaTMGPA.js"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"cotija","theme_token":"Q7kkO0FqsAtmnHWVN6lYVRCLpmZb-TEEdRIkb8vsYdY","js":{"https:\/\/www.usenix.org\/sites\/default\/files\/google_tag\/usenix\/google_tag.script.js":1,"sites\/all\/modules\/jquery_update\/replace\/jquery\/1.8\/jquery.min.js":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/beautytips\/js\/jquery.bt.min.js":1,"sites\/all\/modules\/beautytips\/js\/beautytips.min.js":1,"sites\/all\/modules\/jquery_update\/replace\/ui\/external\/jquery.cookie.js":1,"sites\/all\/libraries\/mmenu\/dist\/mmenu.js":1,"sites\/all\/modules\/entityreference\/js\/entityreference.js":1,"sites\/all\/modules\/behavior_weights\/behavior_weights.js":1,"sites\/all\/modules\/cookiebot\/js\/cookiebot.js":1,"sites\/all\/modules\/usenix\/usenix_blocks\/js\/mobile-menu.js":1,"https:\/\/js.stripe.com\/v3":1,"sites\/all\/themes\/custom\/cotija\/cotija.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"sites\/all\/libraries\/mmenu\/dist\/mmenu.css":1,"modules\/comment\/comment.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"modules\/poll\/poll.css":1,"modules\/search\/search.css":1,"sites\/all\/modules\/usenix\/usenix_conference\/css\/timezone-picker.css":1,"modules\/user\/user.css":1,"sites\/all\/modules\/workflow\/workflow_admin_ui\/workflow_admin_ui.css":1,"sites\/all\/modules\/views\/css\/views.css":1,"sites\/all\/modules\/cookiebot\/css\/cookiebot.css":1,"sites\/all\/modules\/media\/modules\/media_wysiwyg\/css\/media_wysiwyg.base.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/geshifilter\/geshifilter.css":1,"sites\/all\/modules\/biblio\/biblio.css":1,"sites\/all\/modules\/usenix\/usenix_blocks\/css\/mobile-menu.css":1,"sites\/all\/modules\/addtoany\/addtoany.css":1,"sites\/all\/themes\/custom\/cotija\/css\/normalize.css":1,"sites\/all\/themes\/custom\/cotija\/css\/style.css":1,"sites\/all\/themes\/custom\/cotija\/fonts\/fontawesome\/css\/all.min.css":1}},"beautytipStyles":{"default":{"fill":"#F4F4F4","strokeStyle":"#666666","spikeLength":20,"spikeGirth":10,"width":350,"overlap":0,"centerPointY":1,"cornerRadius":0,"cssStyles":{"fontFamily":"\u0026quot;Lucida Grande\u0026quot;,Helvetica,Arial,Verdana,sans-serif","fontSize":"12px","padding":"10px 14px"},"shadow":1,"shadowColor":"rgba(0,0,0,.5)","shadowBlur":8,"shadowOffsetX":4,"shadowOffsetY":4},"plain":[],"netflix":{"positions":["right","left"],"fill":"#FFF","padding":5,"shadow":true,"shadowBlur":12,"strokeStyle":"#B9090B","spikeLength":50,"spikeGirth":60,"cornerRadius":10,"centerPointY":0.1,"overlap":-8,"cssStyles":{"fontSize":"12px","fontFamily":"arial,helvetica,sans-serif"}},"facebook":{"fill":"#F7F7F7","padding":8,"strokeStyle":"#B7B7B7","cornerRadius":0,"cssStyles":{"fontFamily":"\u0022lucida grande\u0022,tahoma,verdana,arial,sans-serif","fontSize":"11px"}},"transparent":{"fill":"rgba(0, 0, 0, .8)","padding":20,"strokeStyle":"#CC0","strokeWidth":3,"spikeLength":40,"spikeGirth":40,"cornerRadius":40,"cssStyles":{"color":"#FFF","fontWeight":"bold"}},"big-green":{"fill":"#00FF4E","padding":20,"strokeWidth":0,"spikeLength":40,"spikeGirth":40,"cornerRadius":15,"cssStyles":{"fontFamily":"\u0022lucida grande\u0022,tahoma,verdana,arial,sans-serif","fontSize":"14px"}},"google-maps":{"positions":["top","bottom"],"fill":"#FFF","padding":15,"strokeStyle":"#ABABAB","strokeWidth":1,"spikeLength":65,"spikeGirth":40,"cornerRadius":25,"centerPointX":0.9,"cssStyles":[]},"hulu":{"fill":"#F4F4F4","strokeStyle":"#666666","spikeLength":20,"spikeGirth":10,"width":350,"overlap":0,"centerPointY":1,"cornerRadius":0,"cssStyles":{"fontFamily":"\u0022Lucida Grande\u0022,Helvetica,Arial,Verdana,sans-serif","fontSize":"12px","padding":"10px 14px"},"shadow":true,"shadowColor":"rgba(0,0,0,.5)","shadowBlur":8,"shadowOffsetX":4,"shadowOffsetY":4}},"beautytips":{".beautytips":{"cssSelect":".beautytips","style":"default"}},"jcarousel":{"ajaxPath":"\/jcarousel\/ajax\/views"},"cookiebot":{"message_placeholder_cookieconsent_optout_marketing_show":false,"message_placeholder_cookieconsent_optout_marketing":"\u003Cdiv class=\u0022cookiebot cookieconsent-optout-marketing\u0022\u003E\r\n\t\u003Cdiv class=\u0022cookieconsent-optout-marketing__inner\u0022\u003E\r\n\t\tPlease \u003Ca href=\u0022!cookiebot_renew\u0022 class=\u0022cookieconsent-optout-marketing__cookiebot-renew\u0022\u003Eaccept marketing-cookies\u003C\/a\u003E to view this embedded content from \u003Ca href=\u0022!cookiebot_from_src_url\u0022 target=\u0022_blank\u0022 class=\u0022cookieconsent-optout-marketing__from-src-url\u0022\u003E!cookiebot_from_src_url\u003C\/a\u003E\t\u003C\/div\u003E\r\n\u003C\/div\u003E\r\n"}}); //--><!]]> </script> </head> <body class="html not-front not-logged-in no-sidebars page-short-topics user-is-non-member" > <div id="skip-link"> <a href="#main-content" class="element-invisible element-focusable">Skip to main content</a> </div> <noscript aria-hidden="true"><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WQSPGJT" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div id="page-wrapper"><div id="page"> <div id="header"> <div class="section clearfix"> <div class="region region-header"> <div id="block-usenix-blocks-usenix-logo-1" class="block block-usenix-blocks usenix-logo-1"> <div class="content"> <a href="/" title="Home" rel="home"><img src="https://www.usenix.org/sites/all/themes/custom/cotija/images/logo.svg" alt="Home" /></a> </div> </div> <div id="block-system-main-menu" class="block block-system block-menu main-menu"> <div class="content"> <ul class="menu"><li class="first collapsed"><a href="/about">About</a></li> <li class="collapsed"><a href="/conferences">Conferences</a></li> <li class="collapsed"><a href="/publications" title="Publications from USENIX">Publications</a></li> <li class="leaf"><a href="/membership">Membership</a></li> <li class="collapsed"><a href="/students" title="Student Programs">Students</a></li> <li class="leaf hidden-medium-up"><a href="/search/site" class="search-link">Search</a></li> <li class="last leaf"><a href="https://www.usenix.org/donate" class="btn">Donate Today</a></li> </ul> </div> </div> <div id="block-system-user-menu" class="block block-system block-menu user-menu"> <div class="content"> <ul class="menu"><li class="first leaf"><a href="/user/login" class="login-link">Sign In</a></li> <li class="last leaf hidden-medium-down"><a href="/search/site" class="search-link">Search</a></li> </ul> </div> </div> <div id="block-usenix-blocks-usenix-mobile-menu" class="block block-usenix-blocks usenix-mobile-menu"> <div class="content"> <a href="#mobile-menu" id="mobile-menu-toggle"><i class="fas fa-bars"></i><i class="fas fa-times"></i></a><div id="mobile-menu"><ul class="menu"><li class="first expanded"><a href="/about">About</a><ul class="menu"><li class="first leaf"><a href="/board" title="USENIX Board of Directors">USENIX Board</a></li> <li class="leaf"><a href="/staff" title="Usenix Staff">Staff</a></li> <li class="leaf"><a href="/newsroom">Newsroom</a></li> <li class="leaf"><a href="/good-works-program" title="Good Works Program">Good Works</a></li> <li class="leaf"><a href="/blog">Blog</a></li> <li class="leaf"><a href="/about/governance-financials">Governance and Financials</a></li> <li class="leaf"><a href="/about/awards">USENIX Awards</a></li> <li class="leaf"><a href="/supporters">USENIX Supporters</a></li> <li class="leaf"><a href="/board/elections24">2024 Board Election</a></li> <li class="collapsed"><a href="/board-meeting-minutes">Board Meeting Minutes</a></li> <li class="last leaf"><a href="https://www.usenix.org/donate" title="USENIX Annual Fund">Donate</a></li> </ul></li> <li class="expanded"><a href="/conferences">Conferences</a><ul class="menu"><li class="first collapsed"><a href="/conferences/upcoming">Upcoming</a></li> <li class="leaf"><a href="/conferences/byname" title="">By Name</a></li> <li class="leaf"><a href="/conferences/calls-for-papers">Calls for Papers</a></li> <li class="leaf"><a href="/conferences/grants">Grants</a></li> <li class="leaf"><a href="/conferences/sponsorship" title="Sponsorship Opportunities">Sponsorship</a></li> <li class="leaf"><a href="/conferences/best-papers">Best Papers</a></li> <li class="leaf"><a href="/conferences/test-of-time-awards">Test of Time Awards</a></li> <li class="leaf"><a href="/conferences/multimedia">Multimedia</a></li> <li class="leaf"><a href="/conferences/faq">Conference FAQ</a></li> <li class="leaf"><a href="/conferences/policies-resources">Conference Policies</a></li> <li class="last leaf"><a href="/conferences/coc">Code of Conduct</a></li> </ul></li> <li class="expanded"><a href="/publications" title="Publications from USENIX">Publications</a><ul class="menu"><li class="first leaf"><a href="/publications/proceedings">Proceedings</a></li> <li class="collapsed"><a href="/conferences/author-resources">Author Resources</a></li> <li class="leaf"><a href="/publications/loginonline">;login: Online</a></li> <li class="leaf"><a href="/publications/loginonline/writing">Writing for ;login: Online</a></li> <li class="last leaf"><a href="/publications/login">;login: Archive</a></li> </ul></li> <li class="leaf"><a href="/membership">Membership</a></li> <li class="expanded"><a href="/students" title="Student Programs">Students</a><ul class="menu"><li class="first leaf"><a href="/students/fees">Conference Fees</a></li> <li class="last leaf"><a href="/students/grants">Student Grant Program</a></li> </ul></li> <li class="leaf hidden-medium-up"><a href="/search/site" class="search-link">Search</a></li> <li class="last leaf"><a href="https://www.usenix.org/donate" class="btn">Donate Today</a></li> </ul></div> </div> </div> </div> </div> </div> <!-- /.section, /#header --> <div id="sub-menu-wrapper"></div> <div id="postheader"> </div> <!-- /#postheader --> <div id="main-wrapper"><div id="main" class="clearfix"> <div id="content-header" class="column"><div class="section"> <div class="tabs"></div> <h1 class="title" id="page-title">Short Topics in System Administration Series</h1> </div></div> <!-- /.section, /#content-header --> <div id="content" class="column"><div class="section"> <div class="region region-content"> <div id="block-block-156" class="block block-block block-usenix-donate 156"> <div class="content"> <!--<a class="btn" href="https://connect.clickandpledge.com/w/Form/a9f96acc-aa05-4c52-a9b4-e12ab505abdf" target="_blank">Donate Today</a>--> <a class="btn" href="https://www.usenix.org/ways-to-give" target="_blank">Donate Today</a> </div> </div> <div id="block-system-main" class="block block-system main"> <div class="content"> <div class="view view-booklets view-id-booklets view-display-id-page_2 view-dom-id-4820984fe1a0c59de720622cda66a267"> <div class="view-header"> <p>The Short Topics in System Administration books provide information not available elsewhere. Presenting topics in thorough, refereed fashion, they are small enough and flexible enough to grow with the community. <!--They are living documents, which we update as needed.</p>--> <!-- <p>Each year of your LISA membership, you may choose any one book to be sent to you for free, and you may order any additional print books for at a member-discounted rate—with the added ease of online ordering. </p> <p>USENIX is always interested in ideas and proposals for books. Contact <a href="mailto:shorttopics@usenix.org" target="_blank">shorttopics@usenix.org</a>.</p> <p>You've told us you love the books and want more—more content and more about the topics that interest <i>you</i>. Now we're publishing more new book titles every year and offering the You Choose program: Each year of your membership you may choose any one book to be sent to you for free, and you may order any additional print books for at a member-discounted rate—with the added ease of online ordering.</p> <p>Nonmembers may order any book for full price.</p> <p><strong>Current LISA Members:</strong> Order your free book or purchase books at discounted prices. During your membership term, you're eligible to receive one free book, which you may order at any time. If you don't want to receive your free book today, no problem; the form will offer you the discounted prices on books.</p> <p><strong>Want discounts on book purchases and access to books online?</strong> <a href="/membership/lisa-membership">Become a member of LISA.</a> You may also purchase books online at full price.</p> --> <!--<p class="smalltext"><strong>Online Ordering Terms:</strong> Sales tax will be applied to book purchases shipped to California. Shipping is free on purchases shipped to the U.S. or Canada; a shipping fee of $8 will be applied to all other purchases. Please allow 2–3 weeks for delivery.</p>--> <!-- <h2>Books Online</h2> <p>Books are available in PDF form online for members; anyone can order the printed versions, but members receive a discount.</p>--></p> </div> <div class="view-content"> <table class="views-table cols-0"> <tbody> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/modern-infrastructure-engineering-cfengine-3"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/login/covers/26cfe3.jpg?itok=_LxlGH9k" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/modern-infrastructure-engineering-cfengine-3">#26 Modern Infrastructure Engineering with CFEngine 3</a><br />Mark Burgess and Diego Zamboni </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/enterprise-ipv6-deployment-experience-report-google"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/login/covers/25cover.png?itok=F0H_RX-o" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/enterprise-ipv6-deployment-experience-report-google">#25 Enterprise IPv6 Deployment: Experience Report from Google</a><br />Haythum Babiker, Irena Nikolova, and Kiran Kumar Chittimaneni </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/cloud-computing-vmware-vcloud-director"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/login/covers/cloudcover.jpg?itok=7Ok2Oa_n" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/cloud-computing-vmware-vcloud-director">#24 Cloud Computing with VMware vCloud Director</a><br />John Y. Arrasjid, Ben Lin, Raman Veeramraju, Steve Kaplan, Duncan Epping, and Michael Haines </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/sysadmins-guide-navigating-business-world"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/login/covers/23_shorttopics_cover_0.png?itok=fOXX_cP9" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/sysadmins-guide-navigating-business-world">#23 A Sysadmin&#039;s Guide to Navigating the Business World</a><br />Mark Burgess and Carolyn Rowland </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/job-descriptions-system-administrators-3d-edition"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/login/covers/22_jobs3rd_cover_0.png?itok=qTXSLUeO" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/job-descriptions-system-administrators-3d-edition">#22 Job Descriptions for System Administrators, 3d Edition Revised</a><br />Tina Darmohray </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/foundation-cloud-computing-vmware-vsphere-4"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/21vsp.jpg?itok=772eVHcq" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/foundation-cloud-computing-vmware-vsphere-4">#21 Foundation for Cloud Computing with VMware vSphere 4</a><br />John Arrasjid, Duncan Epping, and Steve Kaplan </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/running-numbers-system-network-and-environmental-monitoring"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/20mon.jpg?itok=11IkqOO1" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/running-numbers-system-network-and-environmental-monitoring">#20 Running the Numbers: System, Network, and Environmental Monitoring</a><br />Daniel V. Klein and John Sellens </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/configuration-management-bcfg2"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/19bcf.jpg?itok=UQouKwin" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/configuration-management-bcfg2">#19 Configuration Management with Bcfg2</a><br />Narayan Desai and Cory Lueninghoener </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/deploying-vmware-infrastructure-second-printing"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/18vmw.jpg?itok=T5GHId_G" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/deploying-vmware-infrastructure-second-printing">#18 Deploying the VMware Infrastructure, Second Printing</a><br />John Arrasjid, Karthik Balachandran, Daniel Conde, Gary Lamb, and Steve Kaplan </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/lcfg-practical-tool-system-configuration"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/17lcf.jpg?itok=vU2PSzIZ" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/lcfg-practical-tool-system-configuration">#17 LCFG: A Practical Tool for System Configuration</a><br />Paul Anderson </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/system-engineers-guide-host-configuration-and-maintenance-using-cfengine"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/16cfe.jpg?itok=AcMdkLbD" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/system-engineers-guide-host-configuration-and-maintenance-using-cfengine">#16 A System Engineer&#039;s Guide to Host Configuration and Maintenance Using Cfengine</a><br />Mark Burgess and Æleen Frisch </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/internet-postmaster-duties-and-responsibilities"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/15pos.jpg?itok=mr6DvlKU" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/internet-postmaster-duties-and-responsibilities">#15 Internet Postmaster: Duties and Responsibilities</a><br />Nick Christenson and Brad Knowles </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/system-configuration"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/14con.jpg?itok=y5JeYY24" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/system-configuration">#14 System Configuration</a><br />Paul Anderson </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/sysadmins-guide-oracle"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/13ora.jpg?itok=hS5x6-Vo" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/sysadmins-guide-oracle">#13 The Sysadmin&#039;s Guide to Oracle</a><br />Ben Rockwood </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/building-logging-infrastructure"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/12log.jpg?itok=GrSMkSPj" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/building-logging-infrastructure">#12 Building a Logging Infrastructure</a><br />Abe Singer and Tina Bird </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/documentation-writing-system-administrators"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/11doc.jpg?itok=d4NPzqRS" width="60" height="89" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/documentation-writing-system-administrators">#11 Documentation Writing for System Administrators</a><br />Mark C. Langston </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/budgeting-sysadmins"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/10bud.jpg?itok=oloF-RzT" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/budgeting-sysadmins">#10 Budgeting for SysAdmins</a><br />Adam Moskowitz </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/backups-and-recovery"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/9bac.jpg?itok=qNTFOOcf" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/backups-and-recovery">#9 Backups and Recovery</a><br />W. Curtis Preston and Hal Skelly </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/system-and-network-administration-higher-reliability"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/7rel.jpg?itok=MUfleoTh" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/system-and-network-administration-higher-reliability">#7 System and Network Administration for Higher Reliability</a><br />John Sellens </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/system-administrators-guide-auditing"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/6aud.jpg?itok=sjCWpzsY" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/system-administrators-guide-auditing">#6 A System Administrator&#039;s Guide to Auditing</a><br />Geoff Halprin </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/hiring-system-administrators"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/5hir.jpg?itok=g_uIIQOh" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/hiring-system-administrators">#5 Hiring System Administrators</a><br />Gretchen Phillips </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/educating-and-training-system-administrators-survey"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/lisa/books-covers/4edu.jpg?itok=VeN0Q3ql" width="60" height="87" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/educating-and-training-system-administrators-survey">#4 Educating and Training System Administrators: A Survey</a><br />David Kuncicky and Bruce Alan Wynn </td> <td class="views-field views-field-edit-node"> </td> </tr> <tr > <td class="views-field views-field-field-login-cover"> <a href="/short-topics/guide-developing-computing-policy-documents"><img src="https://www.usenix.org/sites/default/files/styles/book_thumbnail/public/login/covers/2_shorttopicscover.png?itok=ekUjLMij" width="60" height="90" alt="" /></a> </td> <td class="views-field views-field-title"> <a href="/short-topics/guide-developing-computing-policy-documents">#2 A Guide to Developing Computing Policy Documents</a><br />Edited by Barbara L. Dijker </td> <td class="views-field views-field-edit-node"> </td> </tr> </tbody> </table> </div> </div> </div> </div> </div> </div></div> <!-- /.section, /#content --> </div></div> <!-- /#main, /#main-wrapper --> <div id="footer"><div class="section"> <div id="footer-col-1" class="footer-col"> <div class="region region-footer-col-1"> <div id="block-usenix-blocks-usenix-logo-2" class="block block-usenix-blocks usenix-logo-2"> <div class="content"> <a href="/" title="Home" rel="home"><img src="https://www.usenix.org/sites/all/themes/custom/cotija/images/logo.svg" alt="Home" /></a> </div> </div> <div id="block-block-141" class="block block-block 141"> <div class="content"> <p class="subtitle-small">&copy; USENIX <script>new Date().getFullYear()>document.write(new Date().getFullYear());</script><br>Website designed and built<br>by <a href="https://giantrabbit.com"target="_blank" style="color: black;">Giant Rabbit LLC</a></p> </div> </div> <div id="block-usenix-blocks-usenix-social-media-2" class="block block-usenix-blocks usenix-social-media-small usenix-social-media-2"> <div class="content"> <ul class="usenix-social-media"><li class="0 first"><a href="https://www.linkedin.com/company/usenix-association/" class="usenix-social-media-icon" alt="LinkedIn" title="LinkedIn"><i class="fab fa-linkedin"></i></a></li> <li class="1"><a href="https://www.facebook.com/pages/USENIX-Association/124487434386" class="usenix-social-media-icon" alt="Facebook" title="Facebook"><i class="fab fa-facebook-square"></i></a></li> <li class="2"><a href="https://www.youtube.com/user/USENIXAssociation" class="usenix-social-media-icon" alt="YouTube" title="YouTube"><i class="fab fa-youtube"></i></a></li> <li class="3 last"><a href="https://twitter.com/usenix" class="usenix-social-media-icon" alt="Twitter" title="Twitter"><i class="fab fa-square-x-twitter"></i></a></li> </ul> </div> </div> </div> </div> <div id="footer-col-2" class="footer-col"> <div class="region region-footer-col-2"> <div id="block-menu-menu-footer" class="block block-menu menu-footer"> <div class="content"> <ul class="menu"><li class="first leaf"><a href="/privacy-policy">Privacy Policy</a></li> <li class="last leaf"><a href="/contact">Contact Us</a></li> </ul> </div> </div> </div> </div> <div id="footer-col-3" class="footer-col"> <div class="region region-footer-col-3"> <div id="block-block-140" class="block block-block 140"> <div class="content"> <a class="anchor" name="signup"></a> <script src="https://www.google.com/recaptcha/api.js"></script> <script> function timestamp() { var response = document.getElementById("g-recaptcha-response"); if (response == null || response.value.trim() == "") {var elems = JSON.parse(document.getElementsByName("captcha_settings")[0].value);elems["ts"] = JSON.stringify(new Date().getTime());document.getElementsByName("captcha_settings")[0].value = JSON.stringify(elems); } } setInterval(timestamp, 500); </script> <div class="subtitle">Sign up for Our Newsletter:</div> <form action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST" class="inline-form-extra-large"> <input type=hidden name='captcha_settings' value='{"keyname":"web_to_lead_google_v2_recaptcha","fallback":"true","orgId":"00DA0000000Ihkj","ts":""}'> <input type=hidden name="oid" value="00DA0000000Ihkj"> <input type=hidden name="retURL" value="https://usenix.org?newsletter_submit=1"> <input type=hidden name="lead_source" value="Newsletter"> <div class="row"> <input name="first_name" type="text" placeholder="First Name" required style="border: none;"> <input name="last_name" type="text" placeholder="Last Name" required style="border: none;"> <input name="email" type="email" placeholder="Email" required style="border: none;"> </div> <div class="row"><div class="g-recaptcha" data-sitekey="6Ldbd8gUAAAAAKvBvNAlRsQWTH1ZqzM5f07hB7lO"></div></div> <div class="row"><input type="submit" name="submit" value="Submit" class="btn-small"></div> </form> </div> </div> </div> </div> </div></div> <!-- /.section, /#footer --> </div></div> <!-- /#page, /#page-wrapper --> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"d823139095","applicationID":"509444","transactionName":"YVJVZksCXkEEVhIMWFgYYkBQTBodDFsCAE8YR19C","queueTime":0,"applicationTime":12,"atts":"TRVWEAMYTU8=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10