CINXE.COM
Michael S. Wong | Faculty | The People of Rice | Rice University
<!DOCTYPE html> <html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# "> <head> <meta charset="utf-8" /><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"be757ebc50",applicationID:"1737010280"};;/*! For license information please see nr-loader-rum-1.275.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(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)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);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])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>h,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={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,harvestTimeSeconds:10,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},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.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,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,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){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(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}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);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},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.275.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);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,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(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 d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(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)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=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=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();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!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};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]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).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))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);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])}},3878:(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})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);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("")}},2614:(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}},1863:(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})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);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})))}},8990:(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}},6389:(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})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);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:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);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 d(e,t){a()[e]=t}function l(){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()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);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)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);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];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(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,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,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 d(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},3969:(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"},6630:(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},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);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},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);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)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);const R=new Map;function E(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.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 x(){const e=(0,g.pV)();h.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,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const _={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");_[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{_[e]=t}));var R="api-",x=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 T(){}h.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,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),E(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(R,e,!0,"api")})),h.addPageAction=j(R,"addPageAction",!0,n.K7.genericEvents),h.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)()},h.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,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[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)},h[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)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.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)(x+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.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,m.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,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(x,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(x,"routeName",void 0,n.K7.softNav):j(R,"routeName",!0,n.K7.spa),h.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,m.t)(),!1,r,!!_[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var T=r(9417),S=r(8122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},k={};var I=r(5284);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:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,T.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");k[e]=(0,S.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=k[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,T.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];P||(h.proxy.assets&&(O(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),x(),(0,g.US)("activatedFeatures",I.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),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}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",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"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.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.275.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.275.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"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-VznhEApF3XO7GHWYwoNt4lU4Zn1sF0wsG8RtlBJC9Du2BOSHAa8jtx37qttCscUPYIniZ1GOu0mu/jpr+lo34w=="};(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={840:0,374: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.275.0.PROD"]=self["webpackChunk:NRBA-1.275.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#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)}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(9417);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 d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);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,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.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(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));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(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(296).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.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 m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.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,d.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,h.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,T,j],loaderType:"lite"})})()})();</script> <meta name="description" content="" /> <link rel="canonical" href="https://profiles.rice.edu/faculty/michael-s-wong" /> <meta property="og:description" content="" /> <meta name="twitter:description" content="" /> <meta name="google-site-verification" content="-5Kk0NsKqzujxs9iKveOdtUPqjKDx0X-lWe7daELsHg" /> <meta name="Generator" content="Drupal 9 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" href="/sites/g/files/bxs3881/files/favicon.ico" type="image/vnd.microsoft.icon" /> <script src="/sites/g/files/bxs3881/files/google_tag/profiles_gtm/google_tag.script.js?smfyon" defer></script> <script>window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};</script> <title>Michael S. Wong | Faculty | The People of Rice | Rice University</title> <link rel="preload" href="https://staticws.b-cdn.net/assets/fonts/TrajanPro/TrajanPro-Regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://staticws.b-cdn.net/assets/fonts/Copernicus/Copernicus Book/Book.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://staticws.b-cdn.net/assets/fonts/Mallory/Mallory Book/Book.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://staticws.b-cdn.net/assets/fonts/Copernicus/Copernicus Bold/Bold.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://staticws.b-cdn.net/assets/fonts/Mallory/Mallory Bold/Bold.woff2" as="font" type="font/woff2" crossorigin> <link rel="stylesheet" media="all" href="/sites/g/files/bxs3881/files/css/css_CowiOSPQY6awoWyFz9k2j6kRZms2lMMC4gqN3pChgdM.css" /> <link rel="stylesheet" media="all" href="https://kit.fontawesome.com/c22e70c3df.css" /> <link rel="stylesheet" media="all" href="https://cdn.jsdelivr.net/npm/@accessible360/accessible-slick@1.0.1/slick/slick.min.css" /> <link rel="stylesheet" media="all" href="https://cdn.jsdelivr.net/npm/@accessible360/accessible-slick@1.0.1/slick/accessible-slick-theme.min.css" /> <link rel="stylesheet" media="all" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" /> <link rel="stylesheet" media="all" href="https://cdn.jsdelivr.net/npm/plyr@3.7.2/dist/plyr.css" /> <link rel="stylesheet" media="all" href="https://staticws.b-cdn.net/assets/css/app.css" /> <link rel="stylesheet" media="all" href="https://staticws.b-cdn.net/assets/css/extra.css" /> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"node\/1286","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxPageState":{"libraries":"addtoany\/addtoany.front,adm_rice\/global,ckeditor_accordion\/accordion_style,system\/base,tooltip_taxonomy\/simple_tooltip","theme":"adm_rice","theme_token":null},"ajaxTrustedUrl":[],"ckeditorAccordion":{"accordionStyle":{"collapseAll":1,"keepRowsOpen":null}},"user":{"uid":0,"permissionsHash":"aad16f2c2a7685f9be50c83b878fbac457254f9eb5fa11071ac1a4e5960fed50"}}</script> <script src="/sites/g/files/bxs3881/files/js/js_S013Tjyy-EwZE2_DdTPHLuemTwjV2Cs6m8-rfSNja50.js"></script> <script src="https://cdn.jsdelivr.net/npm/@accessible360/accessible-slick@1.0.1/slick/slick.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/focus-visible@5.2.0/dist/focus-visible.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/selectric@1.13.0/public/jquery.selectric.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/plyr@3.7.2/dist/plyr.polyfilled.min.js"></script> <script src="https://staticws.b-cdn.net/assets/js/app.js" async></script> <script src="https://staticws.b-cdn.net/assets/js/calendar.js"></script> <script src="https://staticws.b-cdn.net/assets/js/events.js"></script> <script src="https://staticws.b-cdn.net/assets/js/facts.js"></script> <script src="https://staticws.b-cdn.net/assets/js/featured-articles.js"></script> <script src="https://staticws.b-cdn.net/assets/js/menus.js"></script> <script src="https://staticws.b-cdn.net/assets/js/news.js"></script> <script src="https://staticws.b-cdn.net/assets/js/profile-news.js"></script> <script src="https://staticws.b-cdn.net/assets/js/profiles.js"></script> <script src="https://staticws.b-cdn.net/assets/js/related-articles.js"></script> <script src="https://staticws.b-cdn.net/assets/js/extras.js" defer></script> </head> <body class="path-node page-node-type-profile"> <a href="#main-content" class="visually-hidden skip-to-content"> Skip to main content </a> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-57R8HQX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <header class="header"> <div class="header__content content-mobile"> <div id="block-headercustomcss"> <div> <div class="visually-hidden">Body</div> <div><script type="text/javascript"> <!--//--><![CDATA[// ><!-- try { if (window.location.search.length>0){ let newURL="https://profiles.rice.edu" + window.location.pathname; location.replace(newURL); } } catch (e) { console.log(e); } //--><!]]> </script><style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ /** GENERAL **/ /* Footer line fix */ footer hr.hide{ display: none !important; } .article--bio .article__body p a {color: #3455DB; line-height: normal !important; text-decoration-style: dotted; text-decoration-color: #00205B; text-decoration-thickness: .1em; text-decoration-skip-ink: auto; text-underline-offset: 1.5px; display: inline; line-height: 1.2rem;} .article--bio .article__body p a:hover { color: #697E2F; text-decoration-style: solid; text-decoration-color: #697E2F; text-decoration-thickness: .1em; text-decoration-skip-ink: auto; text-underline-offset: 1.5px; line-height: 1.2rem; } .article--bio .article__body p { font-family: MalloryBook,sans-serif; margin-bottom: 1.5rem; } .article--bio .article__body p.profileBody { display: inline-block; font-family: MalloryBook, sans-serif !important; margin: 0.5rem 0 0 !important; font-size: 1.125rem !important; text-transform: uppercase; padding: 0 !important; color: #0A509E !important; line-height: 1 !important; font-weight: bold; } .article--bio .article__body ol, .article--bio .article__body ul {font-family: 'MalloryBook'; margin: 0 10px;} .article--bio .article__image .image-responsive, .article--bio .article__image img, .card--bio .card__image img { aspect-ratio: 1; object-fit: cover; object-position: 0 25%; } /* Bio H6 Section Titles */ .article--bio .article__body hr+.h6, .article--bio .article__body hr+h6, .article--bio .article__summary hr+.h6, .article--bio .article__summary hr+h6 { margin: inherit; } .article--bio .article__body hr, .article--bio .article__body hr, .article--bio .article__summary hr, .article--bio .article__summary hr { margin: 1rem 0; } .article .article__body .h6, .article .article__body h6, .article .article__summary .h6, .article .article__summary h6, .article .article__body .h6 strong, .article .article__body h6 strong, .article .article__summary .h6 strong, .article .article__summary h6 strong { display: inline-block; font-family: 'MalloryBook', sans-serif; font-size: 1.125rem; color: #0A509E; margin: 0.5rem 0 0; padding: 0; line-height: 1; text-transform: uppercase; font-weight: bold; } .pb-5 { padding-bottom: 2%; } .profile-news-title { font-size: 1rem; } .hero__image { min-height: 400px; } div.title { padding: 60px 5%; } .profile-details-title { font-family: CopernicusBold,serif; font-size: 1.25em; } .profile-research-img-caption { font-family: MalloryBook,sans-serif; font-size: .875rem; } .button__text { font-size: 1.25em; font-weight: 600; } .alert { padding: .75em; } form.webform-submission-form label { margin-right: 1em; } form.webform-submission-form { padding-top: 0; } .webform-confirmation__message { padding: 4em 2em; font-size: 1.5em; } .h1, h1 { line-height: 1.5; } .pager { left: 0px; height: 50px; width: 100%; text-align: center; margin: 2em 0 4em 0; } .pager__items { margin: 0; padding: 0; display: inline-block; } .pager__item { margin: 0; padding: 0; float:left; } .pager__item a { text-decoration: none; padding: 10px 20px; display: block; color: #034EA1; text-align: center; } .pager__item.is-active a { color: #303B61; font-family: 'MalloryBold'; font-weight: bold; } #block-views-block-profiles-search-profiles .col { text-align: center; } /* CARD BIO TITLES */ .card--bio .card__title .p, .card--bio .card__title form.webform-submission-form .description, .card--bio .card__title p, form.webform-submission-form .card--bio .card__title .description { font-family: 'MalloryLight', sans-serif; line-height: 1.37; color: #222; } /* Menu Footer */ .footer__logo .image-responsive { width: 100%; } .menu--footer .menu__item:last-child { position: fixed; bottom: 0.5rem; right: 0.5rem; left: auto; padding: 1rem; margin: 10px; width: 50px; height: 50px; color: #303b61; background: #303b61; border: 1px solid #303b61; border-radius: 50%; line-height: 1; font-size: 8px; text-align: center; display: flex; align-items: center; justify-content: center; flex-direction: column; box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1); cursor: pointer; transition: all 0.3s ease; } .menu--footer .menu__item:last-child::after { color: #fff; top: 15%; font-size: 2rem; } .menu--footer .menu__item:last-child:focus, .menu--footer .menu__item:last-child:active { outline: none !important; -webkit-tap-highlight-color: transparent; } .menu--footer .menu__item:last-child:hover { color: #a5c151; background: #a5c151; border-color: #a5c151; box-shadow: 0 10px 10px rgba(0,0,0,0.22); } .menu--footer .menu__item:last-child:hover::after { color: #303B61; } /*--><!]]>*/ </style><script type="text/javascript"> <!--//--><![CDATA[// ><!-- var elements = document.getElementsByClassName('ckeditor-accordion-toggler'); for (var i = 0; i < elements.length; i++) { elements[i].href = 'ckeditor-accordion-container'; } //--><!]]> </script><script> <!--//--><![CDATA[// ><!-- var $ = jQuery; $(window).on('load', function() { $('a.menu__item.fr').hide(); }); $(window).scroll(function() { if (window.screen.width >= 768) { if (window.screen.width < 1180) { if ($(this).scrollTop() < 600 ) { $('a.menu__item.fr').hide(); } else { $('a.menu__item.fr').show(); } } else { if ($(this).scrollTop() < 900 ) { $('a.menu__item.fr').hide(); } else { $('a.menu__item.fr').show(); } } } else { $('a.menu__item.fr').show(); } }); //--><!]]> </script></div> </div> </div> <div class="fl logo-container"> <figure class="lockup"> <a class="inline-block" href="https://www.rice.edu" title="Rice University Shield"><img class="lockup__image" src="/sites/g/files/bxs3881/files/2019-08/Shield.png" alt="Shield"></a> <div class="lockup__text"> <a class="lockup__parent" href="https://www.rice.edu" >Rice University</a> <a class="lockup__child1" href="https://profiles.rice.edu" >The People of Rice</a> <a class="lockup__child2" href="https://profiles.rice.edu" >Faculty, Staff, Students and Alumni</a> </div> </figure> </div> <div class="fr menu-box"> <nav class="menu menu--header"> <button id="share-button" class="menu__share-btn menu__item button button--round button--small share-fade" title="Social Menu" > <i class="button__icon button__icon--center icon icon-social"></i> </button> <div class="menu__share"> <a href="https://www.linkedin.com/edu/school?id=19472" class="button__icon-row icon icon-linkdin" tabindex="-1" title="Linked In"></a> <a href="https://www.facebook.com/riceuniversity" class="button__icon-row icon icon-fb" tabindex="-1" title="Facebook"></a> <a href="https://www.youtube.com/riceuniversity" class="button__icon-row icon icon-yt" tabindex="-1" title="YouTube"></a> <a href="https://twitter.com/riceuniversity" class="button__icon-row icon icon-twitter" tabindex="-1" title="Twitter"></a> <a href="https://instagram.com/riceuniversity" class="button__icon-row icon icon-instagram" tabindex="-1" title="Instagram"></a> </div> <button id="search-button" class="menu__search-btn menu__item button button--round button--round button--small share-fade" title="Search"> <i class="button__icon button__icon--center icon icon-search"></i> </button> <!--a id="login-button" class="share-fade menu__item button button--inline" title="Login"> <span class="button__text hide@s">Login</span><i class="icon icon-login"></i> </a--> <button id="menu-button" class="hide@m menu__item button button--inline menu-button menu-end" title="Menu" aria-expanded="false" aria-label="Open Menu" aria-controls="site-nav"> <span class="button__text">Menu</span><i class="icon icon-menu" aria-hidden="true"></i> </button> <div class="inline@m hide menu--mobile-icon tar"> <button id="menu-button-mobile" class="menu__item button menu-button" title="Mobile Menu"> <i class="icon icon-menu"></i> </button> <button id="close-button-mobile" class="menu__item hideim button close-button menu__close-button-mobile" title="Close"> <i class="icon icon-close"></i> </button> </div> </nav> </div> <div class="menu__search"> <div class="search hidden-sm"> <form action="https://search.rice.edu" name="gs" method="get"> <label class="hidden" for="p">Search Form</label> <input class="search-box" name="q" type="text" id="p" title="search engine" aria-label="Search Terms" size="20" maxlength="255" placeholder="Search..." tabindex="-1"> <button title="Search" class="search-button" type="submit" name="tab" value="Search" tabindex="-1"></button> <button id="search-close" class="search-close-button" type="button" tabindex="-1"></button> </form> </div> </div> <nav role="navigation" aria-labelledby="block-mainnav-menu" id="block-mainnav"> <h2 class="visually-hidden" id="block-mainnav-menu">Main Nav</h2> <div class="menu--nav"> <script> (function() { var cx = '014332935913219502104:djq0abwo2eq'; var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = 'https://cse.google.com/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s); })(); </script> <gcse:searchresults-only></gcse:searchresults-only> <div class="menu--items" aria-hidden="false"> <button class="menu__back hide@m">< back</button> <ul region="header" class="menu--main"> <li class="menu menu__sub-toggle"> <button onclick="location.href='/faculty'" tabindex="-1">Faculty</button> </li> <li class="menu menu__sub-toggle"> <button onclick="location.href='/staff'" tabindex="-1">Staff</button> </li> <li class="menu menu__sub-toggle"> <button onclick="location.href='/students'" tabindex="-1">Students</button> </li> <li class="menu menu__sub-toggle"> <button onclick="location.href='/friends'" tabindex="-1">Friends of Rice</button> </li> <li class="menu menu__sub-toggle"> <button onclick="location.href='/all-people'" tabindex="-1">All People</button> </li> </ul> </div> <button id="close-button" class="hide@m menu__item hideim button button--inline close-button menu__close-button" title="Close"> <span class="button__text">Close</span><i class="icon icon-close"></i> </button> </div> </nav> <div class="menu--image" style="background-image: linear-gradient( rgba(0,0,0,.6), rgba(0,0,0,.6) ), url('/sites/g/files/bxs3881/files/styles/banner_extra_large_1600xauto/public/2019-06/o-week-2019-menu-hero.jpg.jpeg?itok=PHIK8EVd');" id="block-menubackground"> </div> <div id="block-profilesearchcss"> <div> <div class="visually-hidden">Body</div> <div><style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ .policy-view { padding: 2em 0; } .views-exposed-form { display: flex; padding: 1em; align-items: center; justify-content: center; } .js-form-item{ display: flex; width: 50%; padding: 1em; } .js-form-item label { margin: auto; font-family: CopernicusBold,sans-serif; font-size: 1.1rem; color: #00205b; } .form-select, .selectric-form-select, .form-text { width: 100%; margin: 0 1em; border: none; border-bottom: 1px solid #bbb; } .form-text { min-height: 2.5em; } .selectric { border: none; padding: 2px; } .form-actions { display: flex; } .js-form-submit{ width:100%; padding:.5rem 1.5rem; text-transform: uppercase; margin:0 .2em; color: #fff; background: #054ea1; cursor:pointer; border: 1px solid #054ea1; border-radius: 15px; } .js-form-submit:hover{ font-size: 1.1rem; } @media (max-width: 64em){ .view-group { margin: 0 1em; } } @media (max-width: 48em){ .js-form-item, .views-exposed-form { display: block; width: 100%; } .form-select, .selectric-form-select, .form-text { margin: 0; } .js-form-submit { width: 25%; padding: .5rem 0; } .view-group h3 { font-size: 1.5rem; } ul.views-item-list { margin: 0; } } /*--><!]]>*/ </style></div> </div> </div> </div> </header> <main id="main-content" role="main"> <div> <div data-drupal-messages-fallback class="hidden"></div><div id="block-adm-rice-content"> <article data-history-node-id="1286" role="article" about="/faculty/michael-s-wong"> <nav class="breadcrumbs"> <a href="/">RICE</a> <span class="separator">></span> <a href="/faculty">Faculty</a> </nav> <div> <div class="container pv-5 mh-5 mh@m-rs"> <div class=" article article--bio grid-mw--1080"> <div class="article__info"> <div class="article__breadcrumbs"><!-- Make these breadcrumbs dynamic --> <span><</span> <a href="/faculty"><strong>BACK TO FACULTY</strong></a> </div> <div class="article__share"> <a onclick="window.print(); return false;" title="Print" href="#" class="icon icon-print"></a> <a title="Share" href="#" class="icon icon-share"></a> </div> <div class="article__share-buttons"></div> </div> <div class="article__header grid grid-hg grid-hg-collapse grid-hg-collapse@m-rs grid-hg@m-rs profile profile-font"> <div class="article__image col-5 col@m-4 col@s-4"> <img class="image-responsive" src="/sites/g/files/bxs3881/files/2023-10/2310_Michael_S_Wong_600.jpg" alt="Headshot of Michael Wong"> </div> <div class="article__author col-7 col@m-4 col@s-4"> <h2 class="article__author-name profile">Michael S. Wong</h2> <p class="article__author-role profile"> Chair, Department of Chemical and Biomolecular Engineering <br> Tina and Sunit Patel Professor in Molecular Nanotechnology <br> Professor, Chemical and Biomolecular Engineering, Chemistry, Materials Science and Nanotechnology, Civil Environmental Engineering <br> </p> <div class="article__author-contact"> <p class="article__author-role profile top-border"> <a class="link link--small" href="https://chbe.rice.edu/ " style="text-decoration: none;">Chemical and Biomolecular Engineering</a> </p> <div class="article__author-address col top-border"> <p>CONTACT</p> <p class="body body-mediumSmall"> <span>O'Connor Engineering and Science Building 236</span><span class="hide@xs"> | </span> <span class="block@xs"><span> 713-348-3511</span><span> | </span> <a href="mailto:mswong@rice.edu" class="link link--small body body-small">mswong@rice.edu</a></span> </p> </div> </div> </div> </div> <div class="article__website"> <p>WEBSITE(S)<span>|</span> <a href="https://www.ruf.rice.edu/~wonglab/index.html" target="_blank" class="link link--small body body-small"> Catalysis and NanoMaterials Group</a> <span>|</span> <a href="https://www.ruf.rice.edu/~wonglab/Publications.html" target="_blank" class="link link--small body body-small"> Publications</a> <span>|</span> <a href="https://scholar.google.com/citations?user=z2UWh4MAAAAJ&hl=en&oi=sra" target="_blank" class="link link--small body body-small"> Google Scholar</a> </p> </div> <div class="article__body profileBody"> <div><p>Dr. Michael S. Wong is professor and chair of the Department of Chemical and Biomolecular Engineering at Rice University. He is also professor in the Departments of Chemistry, Civil and Environmental Engineering, and Materials Science and NanoEngineering. He was educated and trained at Caltech, MIT, and UCSB before arriving at Rice in 2001. His research program broadly addresses chemical engineering problems using the tools of materials chemistry, with a particular interest in energy and environmental applications ("catalysis for clean water"). He has received numerous honors, including the MIT TR35 Young Innovator Award, the American Institute of Chemical Engineers (AIChE) Nanoscale Science and Engineering Young Investigator Award, Smithsonian Magazine Young Innovator Award, and the North American Catalysis Society/Southwest Catalysis Society Excellence in Applied Catalysis Award. He is research thrust leader on multifunctional nanomaterials in the NSF-funded NEWT (Nanotechnology Enabled Water Treatment) Engineering Research Center. He is chair of the ACS Division of Catalysis Science and Technology (CATL), and serves on the Applied Catalysis B: Environmental editorial board. Previous experiences include chairmanship of the AIChE Nanoscale Science and Engineering Forum and Chemistry of Materials editorial board membership.</p></div> </div> <div class="article__body profileBody"> <p class="profileBody">Research Areas</p> <p>Dr. Wong's research program broadly addresses chemical engineering problems using the tools of materials chemistry, with a particular interest in energy and environmental applications ("catalysis for clean water") and an emphasis on understanding synthesis-structure-property relationships in heterogeneous catalysis. Current research activities and interests are (i) structure-property analysis of palladium-on-gold catalysts; (ii) metal-on-metal nanoparticle synthesis; (iii) treatment of dioxane, nitrate, fluorocarbons, and chlorocarbons from water; (iv) sugar upgrading chemistry, and (v) nanoparticle assembly.</p> </div> <div class="grid-3 grid@m grid-hg grid-hg-collapse grid-hg-collapse@m-rs profile-details"> <div class="col"> <!--Column 1 --> <p class="profile-details-title">Education</p> <p class="profile-details-item">2000-2001 Postdoctoral Training, University of California, Santa Barbara</p> <p class="profile-details-item">2000 Ph.D., Chemical Engineering, Massachusetts Institute of Technology</p> <p class="profile-details-item">1997 M.S., Chemical Engineering Practice, Massachusetts Institute of Technology</p> <p class="profile-details-item">1994 B.S., Chemical Engineering, California Institute of Technology</p> </div> <div class="col"> <!--Column 2 --> </div> <div class="col"> <!--Column 3 --> <div class="profile-publications" data-authId=""> <!-- Render via REST --> </div> <div class="container"> <div class="profile-news-feed" data-feed-url="http://news.rice.edu/wp-json/wp/v2/posts" data-category-id="31" data-tag-id="" data-per-page="2" data-page="1"> <!-- Render via REST API --> </div> </div> </div> </div> </div> </div> </div> </article> </div><div id="block-siterefreshmessage"> <div> <div class="visually-hidden">Body</div> <div><style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ .photo-caption { padding: 1.5rem; text-align: center; font-weight: normal; font-size: .8rem !important; border: 1px 0 dashed #44474F; } .photo-caption-color { background-color: #E0E2E6; color: #44474F; } /*--><!]]>*/ </style><div id="block-photocredit"> <div class="photo-caption-color"> <p class="photo-caption">Changes or additions to profiles.rice.edu will not take effect on the Rice sub-sites until after its next refresh which occurs at 5:15am, 10:15am, 1:15pm, 4:15pm and 7:15pm daily. (This does not affect profiles.rice.edu)</p> </div> </div> </div> </div> </div> </div> </main> <footer class="footer"> <div class="footer__content grid"> <div class="tal tac@l col col-5 col@xl-3 col@ml"> <a class="footer__logo" href="https://www.rice.edu/"><img class="image-responsive" src="/sites/g/files/bxs3881/files/2020-07/Rice_University_Horizontal_Blue.svg" alt="Rice University Logo"></a> </div> <div class="footer--content-box col@ml footer__footer-menu"> <nav class="footer__menu menu menu--footer tal tac@m"> <a href="/faculty" class="menu__item footer__menu" data-drupal-link-system-path="node/29">Faculty</a> <a href="/staff" class="menu__item footer__menu" data-drupal-link-system-path="node/2041">Staff</a> <a href="/students" class="menu__item footer__menu" data-drupal-link-system-path="node/7921">Students</a> <a href="/friends" class="menu__item footer__menu" data-drupal-link-system-path="node/12451">Friends</a> <a href="/all-people" class="menu__item footer__menu" data-drupal-link-system-path="node/2406">All Profiles</a> <a href="#" class="menu__item fr">BACK TO TOP</a> </nav> <hr class="hide block@ml"> <div class="footer__address"> <p>6100 Main St., Houston, TX 77005-1827 <span class="hide@s">|</span></p> <p>Mailing Address: P.O. Box 1892, Houston, TX 77251-1892 <span class="hide@s">|</span></p> <p>713-348-0000 | <a href="https://privacy.rice.edu/"><strong>Privacy Policy</strong></a> | <a href="https://rice.edu/campus-carry">Campus Carry</a></p> </div> </div> </div> </footer> </div> <script src="https://static.addtoany.com/menu/page.js" async></script> <script src="/sites/g/files/bxs3881/files/js/js_4FTefpxZkveZKJWspsTznvnHxYfvZxyehdsswyDr16s.js"></script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"be757ebc50","applicationID":"1737010280","transactionName":"NFAGMEtRCBYFWxJaCw0aJQdNWQkLS0gHVAE8VgUHUVU=","queueTime":3,"applicationTime":34,"atts":"GBcFRgNLGxg=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>