text: (window.webpackJsonp=window.webpackJsonp||[]).push([[11],{"533F":function(e,t,n){"use strict";n.r(t),n.d(t,"query",(function(){return v}));var r=n("q1tI"),a=n.n(r),i=n("Wbzz"),o=n("mwIZ"),s=n.n(o),l=n("qhky"),u=n("lhkX"),d=n("7oih"),c=n("XZ+r"),f=n.n(c),p=n("5MWN"),m=n.n(p),g=n("J1+8"),h=n.n(g),y=[{title:"Learn Something",website:"https://learnsomething.app",description:"Learn Something is the game of algebra---a rigorous and addictive data-driven tool for students to\nbuild and strengthen the skills of algebra",image:f.a},{title:"Yakkity",website:"https://play.google.com/store/apps/details?id=com.technopomp.yakkity&hl=en_US",description:'Yakkity is a generative word puzzle game build around a type special word sequences called \n_mondegreens_. Mondegreens are word sequences which, when pronounced, sound very similar to a more recognizeable word \nor phrase. For example, "chores washing done" sounds a lot like "George Washington". The game is to see who can guess \nthe underlying phrases more quickly.\n\nYakkity is a native Android app and runs the puzzle generation algorithm on-device. This was done in order to minimize \ninfrastructure costs and to maximize privacy by avoiding transmission of user data to the backend. The puzzle \ngeneration code is implemented in Java; the UI is done in Kotlin.\n\nAt present, puzzle generation is done using a deterministic search algorithm. It\'s necessary for the source and target \nphrases have pronunciations similar enough that human players could recognize the target from the source. This imposes \na tight constraint on acceptable output sequences to represent a particular input. This is done using a "branch and \nbound" decoder with the top N candidate sequences being retained at each step. Puzzle quality is assessed using a \nheuristic that trades off pronunciation differences against the recognizability of the terms output.\n\nFuture work includes treating puzzle quality as a supervised learning problem and training a model of puzzle quality \nrather than using a hand-coded heuristic; and, more ambitiously, generating puzzles using a generative neural network \napproach or reinforcement learning algorithm.',image:h.a},{title:"Umpire",website:"https://github.com/joshhansen/Umpire",description:"A military strategy game used for experiments in reinforcement learning",image:m.a}];var b=function(e){var t,n;function r(){return e.apply(this,arguments)||this}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r.prototype.render=function(){var e=s()(this,"props.data.site.siteMetadata.title"),t=s()(this,"props.data.site.siteMetadata.description");return a.a.createElement(d.a,null,a.a.createElement(l.a,{htmlAttributes:{lang:"en"},meta:[{name:"description",content:t}],title:"Portfolio | "+e}),a.a.createElement("h2",null,"Portfolio"),a.a.createElement("br",null),a.a.createElement("div",{style:{textAlign:"center"}},a.a.createElement(u.Grid,{fluid:!0},a.a.createElement(u.Row,null,y.map((function(e){return a.a.createElement(u.Col,{xs:12,sm:12,md:6,lg:6,key:e.title},a.a.createElement(i.Link,{to:"/portfolio/view",state:e,key:e.title},a.a.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center"}},a.a.createElement("div",{style:{width:250,height:200,margin:10,background:"url("+e.image+")",backgroundSize:"cover",backgroundPosition:"center center"}}),a.a.createElement("p",null,e.title))))}))))))},r}(a.a.Component),v=(t.default=b,"3998338720")},"5MWN":function(e,t,n){e.exports=n.p+"static/Umpire-0.4-map-6bc21b9864b7e760925f686f7dbd1b23.png"},"68Vo":function(e,t,n){"use strict";n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return i.default&&i.default[e]?i.default[e]:e};var r,a=n("fRFl"),i=(r=a)&&r.__esModule?r:{default:r}},"J1+8":function(e,t,n){e.exports=n.p+"static/Yakkity-255b183aaa1ca8c53224e49f9ced8165.png"},"XZ+r":function(e,t,n){e.exports=n.p+"static/learnSomethingLogoOrangeGrey-d6275209ac8ebc1d79225c29fd533749.png"},dKp5:function(e,t,n){"use strict";n("rGqo"),n("yt8O"),n("Btvt"),n("RW0V"),n("0l/t"),n("bWfx"),n("V+eJ"),n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.getColumnProps=f,t.default=p;var r=l(n("q1tI")),a=l(n("17x9")),i=l(n("izpJ")),o=l(n("68Vo")),s=n("hDLu");function l(e){return e&&e.__esModule?e:{default:e}}var u={xs:s.ColumnSizeType,sm:s.ColumnSizeType,md:s.ColumnSizeType,lg:s.ColumnSizeType,xl:s.ColumnSizeType,xsOffset:a.default.number,smOffset:a.default.number,mdOffset:a.default.number,lgOffset:a.default.number,xlOffset:a.default.number,first:s.ViewportSizeType,last:s.ViewportSizeType,className:a.default.string,tagName:a.default.string,children:a.default.node},d={xs:"col-xs",sm:"col-sm",md:"col-md",lg:"col-lg",xl:"col-xl",xsOffset:"col-xs-offset",smOffset:"col-sm-offset",mdOffset:"col-md-offset",lgOffset:"col-lg-offset",xlOffset:"col-xl-offset"};function c(e){var t=[];return e.className&&t.push(e.className),e.first&&t.push((0,o.default)("first-"+e.first)),e.last&&t.push((0,o.default)("last-"+e.last)),Object.keys(e).filter((function(e){return d[e]})).map((function(t){return(0,o.default)("number"==typeof(n=e[t])&&isFinite(n)&&Math.floor(n)===n?d[t]+"-"+e[t]:d[t]);var n})).concat(t)}function f(e){return(0,i.default)(u,e,c(e))}function p(e){var t=e.tagName,n=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["tagName"]);return r.default.createElement(t||"div",f(n))}p.propTypes=u},fRFl:function(e,t,n){},hDLu:function(e,t,n){"use strict";n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.ViewportSizeType=t.ColumnSizeType=void 0;var r,a=n("17x9"),i=(r=a)&&r.__esModule?r:{default:r};t.ColumnSizeType=i.default.oneOfType([i.default.number,i.default.bool]),t.ViewportSizeType=i.default.oneOf(["xs","sm","md","lg","xl"])},hwMs:function(e,t,n){"use strict";n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var r=s(n("q1tI")),a=s(n("17x9")),i=s(n("izpJ")),o=s(n("68Vo"));function s(e){return e&&e.__esModule?e:{default:e}}var l={fluid:a.default.bool,className:a.default.string,tagName:a.default.string,children:a.default.node};function u(e){var t=(0,o.default)(e.fluid?"container-fluid":"container"),n=[e.className,t];return r.default.createElement(e.tagName||"div",(0,i.default)(l,e,n))}u.propTypes=l},izpJ:function(e,t,n){"use strict";n("91GP"),n("rGqo"),n("yt8O"),n("Btvt"),n("RW0V"),n("0l/t"),n("8+KV"),n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r={};Object.keys(t).filter((function(t){return"children"===t||!e[t]})).forEach((function(e){return r[e]=t[e]}));var a=n.filter((function(e){return e})).join(" ");return Object.assign({},r,{className:a})}},lhkX:function(e,t,n){"use strict";n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.getColumnProps=t.Col=t.getRowProps=t.Row=t.Grid=void 0;var r=n("v98U");Object.defineProperty(t,"getRowProps",{enumerable:!0,get:function(){return r.getRowProps}});var a=n("dKp5");Object.defineProperty(t,"getColumnProps",{enumerable:!0,get:function(){return a.getColumnProps}});var i=l(n("hwMs")),o=l(r),s=l(a);function l(e){return e&&e.__esModule?e:{default:e}}t.Grid=i.default,t.Row=o.default,t.Col=s.default},v98U:function(e,t,n){"use strict";n("HAE/"),Object.defineProperty(t,"__esModule",{value:!0}),t.getRowProps=c,t.default=f;var r=l(n("68Vo")),a=l(n("q1tI")),i=l(n("17x9")),o=l(n("izpJ")),s=n("hDLu");function l(e){return e&&e.__esModule?e:{default:e}}var u=["start","center","end","top","middle","bottom","around","between"],d={reverse:i.default.bool,start:s.ViewportSizeType,center:s.ViewportSizeType,end:s.ViewportSizeType,top:s.ViewportSizeType,middle:s.ViewportSizeType,bottom:s.ViewportSizeType,around:s.ViewportSizeType,between:s.ViewportSizeType,className:i.default.string,tagName:i.default.string,children:i.default.node};function c(e){return(0,o.default)(d,e,function(e){for(var t=[e.className,(0,r.default)("row")],n=0;n<u.length;++n){var a=u[n],i=e[a];i&&t.push((0,r.default)(a+"-"+i))}return e.reverse&&t.push((0,r.default)("reverse")),t}(e))}function f(e){return a.default.createElement(e.tagName||"div",c(e))}f.propTypes=d}}]);
  //# sourceMappingURL=component---src-pages-portfolio-index-js-f3adf98351c11ea719a4.js.map