| <!-- | |
| Sugarcane 1.2 is based on: | |
| TiddlyWiki 1.2.39 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) | |
| Published under a BSD open source license | |
| Copyright (c) Osmosoft Limited 2005 | |
| Redistribution and use in source and binary forms, with or without modification, | |
| are permitted provided that the following conditions are met: | |
| Redistributions of source code must retain the above copyright notice, this | |
| list of conditions and the following disclaimer. | |
| Redistributions in binary form must reproduce the above copyright notice, this | |
| list of conditions and the following disclaimer in the documentation and/or other | |
| materials provided with the distribution. | |
| Neither the name of the Osmosoft Limited nor the names of its contributors may be | |
| used to endorse or promote products derived from this software without specific | |
| prior written permission. | |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY | |
| EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |
| OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT | |
| SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | |
| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | |
| TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
| BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | |
| ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | |
| DAMAGE. | |
| --> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8"> | |
| <title>Sugarcane</title> | |
| <script type="text/javascript"> | |
| function $(a){if(typeof a=="string"){return document.getElementById(a)}else{return a}}function clone(a){var b={};for(property in a){b[property]=a[property]}return b}function insertElement(a,d,f,c,e){var b=document.createElement(d);if(f){b.id=f}if(c){b.className=c}if(e){insertText(b,e)}if(a){a.appendChild(b)}return b}function insertText(a,b){return a.appendChild(document.createTextNode(b))}function removeChildren(a){while(a.hasChildNodes()){a.removeChild(a.firstChild)}}function setPageElement(c,b,a){if(place=$(c)){removeChildren(place);if(tale.has(b)){new Wikifier(place,tale.get(b).text)}else{new Wikifier(place,a)}}}function addStyle(b){if(document.createStyleSheet){document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd"," <style>"+b+"</style>")}else{var a=document.createElement("style");a.type="text/css";a.appendChild(document.createTextNode(b));document.getElementsByTagName("head")[0].appendChild(a)}}function throwError(a,b){new Wikifier(a,"'' @@ "+b+" @@ ''")}Math.easeInOut=function(a){return(1-((Math.cos(a*Math.PI)+1)/2))};String.prototype.readMacroParams=function(){var c=new RegExp("(?:\\s*)(?:(?:\"([^\"]*)\")|(?:'([^']*)')|(?:\\[\\[([^\\]]*)\\]\\])|([^\"'\\s]\\S*))","mg");var b=[];do{var a=c.exec(this);if(a){if(a[1]){b.push(a[1])}else{if(a[2]){b.push(a[2])}else{if(a[3]){b.push(a[3])}else{if(a[4]){b.push(a[4])}}}}}}while(a);return b};String.prototype.readBracketedList=function(){var b="\\[\\[([^\\]]+)\\]\\]";var a="[^\\s$]+";var e="(?:"+b+")|("+a+")";var d=new RegExp(e,"mg");var f=[];do{var c=d.exec(this);if(c){if(c[1]){f.push(c[1])}else{if(c[2]){f.push(c[2])}}}}while(c);return(f)};String.prototype.trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"")};Array.prototype.indexOf||(Array.prototype.indexOf=function(b,d){d=(d==null)?0:d;var a=this.length;for(var c=d;c<a;c++){if(this[c]==b){return c}}return -1});function fade(f,c){var h;var e=f.cloneNode(true);var g=(c.fade=="in")?1:-1;f.parentNode.replaceChild(e,f);if(c.fade=="in"){h=0;e.style.visibility="visible"}else{h=1}b(e,h);var a=window.setInterval(d,25);function d(){h+=0.05*g;b(e,Math.easeInOut(h));if(((g==1)&&(h>=1))||((g==-1)&&(h<=0))){f.style.visibility=(c.fade=="in")?"visible":"hidden";e.parentNode.replaceChild(f,e);delete e;window.clearInterval(a);if(c.onComplete){c.onComplete()}}}function b(k,j){var l=Math.floor(j*100);k.style.zoom=1;k.style.filter="alpha(opacity="+l+")";k.style.opacity=j}}function scrollWindowTo(e){var d=window.scrollY?window.scrollY:document.body.scrollTop;var g=k(e);var c=Math.abs(d-g);var b=0;var j=(d>g)?-1:1;var f=window.setInterval(h,25);function h(){b+=0.1;window.scrollTo(0,d+j*(c*Math.easeInOut(b)));if(b>=1){window.clearInterval(f)}}function k(o){var p=a(o);var q=p+o.offsetHeight;var l=window.scrollY?window.scrollY:document.body.scrollTop;var m=window.innerHeight?window.innerHeight:document.body.clientHeight;var n=l+m;if(p<l){return p}else{if(q>n){if(o.offsetHeight<m){return(p-(m-o.offsetHeight)+20)}else{return p}}else{return p}}}function a(l){var m=0;while(l.offsetParent){m+=l.offsetTop;l=l.offsetParent}return m}}function History(){this.history=[{passage:null,variables:{},hash:null}]}History.prototype.init=function(){var a=this;if(!this.restore()){this.display("Start",null)}this.hash=window.location.hash;this.interval=window.setInterval(function(){a.watchHash.apply(a)},250)};History.prototype.display=function(d,b,a){var c=tale.get(d);this.history.unshift({passage:c,variables:clone(this.history[0].variables)});this.history[0].hash=this.save();var e=c.render();if(a!="offscreen"){removeChildren($("passages"));$("passages").appendChild(e);if(a!="quietly"){fade(e,{fade:"in"})}}if((a=="quietly")||(a=="offscreen")){e.style.visibility="visible"}if(a!="offscreen"){document.title=tale.title;this.hash=this.save();if(c.title!="Start"){document.title+=": "+c.title;window.location.hash=this.hash}window.scroll(0,0)}return e};History.prototype.restart=function(){window.location.hash=""};History.prototype.save=function(c){var a="";for(var b=this.history.length-1;b>=0;b--){if((this.history[b].passage)&&(this.history[b].passage.id)){a+=this.history[b].passage.id.toString(36)+"."}}return"#"+a.substr(0,a.length-1)};History.prototype.restore=function(){try{if((window.location.hash=="")||(window.location.hash=="#")){return false}var a=window.location.hash.replace("#","").split(".");var c=[];for(var b=0;b<a.length;b++){var g=parseInt(a[b],36);if(!tale.has(g)){return false}var f=(b==a.length-1)?"":"offscreen";c.unshift(this.display(g,null,f))}return true}catch(d){return false}};History.prototype.watchHash=function(){if(window.location.hash!=this.hash){if((window.location.hash!="")&&(window.location.hash!="#")){this.history=[{passage:null,variables:{}}];removeChildren($("passages"));$("passages").style.visibility="hidden";if(!this.restore()){alert("The passage you had previously visited could not be found.")}$("passages").style.visibility="visible"}else{window.location.reload()}this.hash=window.location.hash}};var version={major:2,minor:0,revision:0,date:new Date("July 30, 2007"),extensions:{}};var tale,state;var macros={};function main(){tale=new Tale();document.title=tale.title;setPageElement("storyTitle","StoryTitle","Untitled Story");if(tale.has("StoryAuthor")){$("titleSeparator").innerHTML="<br />";setPageElement("storyAuthor","StoryAuthor","")}if(tale.has("StoryMenu")){$("storyMenu").style.display="block";setPageElement("storyMenu","StoryMenu","")}for(macro in macros){if(typeof macro.init=="function"){macro.init()}}var styles=tale.lookup("tags","stylesheet");for(var i=0;i<styles.length;i++){addStyle(styles[i].text)}var scripts=tale.lookup("tags","script");for(var i=0;i<scripts.length;i++){try{eval(scripts[i].text)}catch(e){alert("There is a technical problem with this story ("+scripts[i].title+": "+e.message+"). You may be able to continue reading, but all parts of the story may not work properly.")}}state=new History();state.init()}Interface={init:function(){main();$("snapback").onclick=Interface.showSnapback;$("restart").onclick=Interface.restart;$("share").onclick=Interface.showShare},restart:function(){if(confirm("Are you sure you want to restart this story?")){state.restart()}},showShare:function(a){Interface.hideAllMenus();Interface.showMenu(a,$("shareMenu"))},showSnapback:function(a){Interface.hideAllMenus();Interface.buildSnapback();Interface.showMenu(a,$("snapbackMenu"))},buildSnapback:function(){var c=false;removeChildren($("snapbackMenu"));for(var a=state.history.length-1;a>=0;a--){if(state.history[a].passage&&state.history[a].passage.tags.indexOf("bookmark")!=-1){var b=document.createElement("div");b.hash=state.history[a].hash;b.onclick=function(){window.location.hash=this.hash};b.innerHTML=state.history[a].passage.excerpt();$("snapbackMenu").appendChild(b);c=true}}if(!c){var b=document.createElement("div");b.innerHTML="<i>No passages available</i>";$("snapbackMenu").appendChild(b)}},hideAllMenus:function(){$("shareMenu").style.display="none";$("snapbackMenu").style.display="none"},showMenu:function(b,a){if(!b){b=window.event}var c={x:0,y:0};if(b.pageX||b.pageY){c.x=b.pageX;c.y=b.pageY}else{if(b.clientX||b.clientY){c.x=b.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;c.y=b.clientY+document.body.scrollTop+document.documentElement.scrollTop}}a.style.top=c.y+"px";a.style.left=c.x+"px";a.style.display="block";document.onclick=Interface.hideAllMenus;b.cancelBubble=true;if(b.stopPropagation){b.stopPropagation()}}};window.onload=Interface.init;version.extensions.backMacro={major:1,minor:0,revision:0};macros.back={handler:function(a,b,e){var d="";if(e[0]){for(var c=0;c<state.history.length;c++){if(state.history[c].passage.title==e[0]){d=state.history[c].hash;break}else{if(state.history[1]){d=state.history[1].hash}else{throwError(a,"can't go back from the first passage read");return}}}}if(d==""){throwError(a,"can't find passage \""+e[0]+'" in history');return}el=document.createElement("a");el.className="back";el.href=d;el.innerHTML="<b>«</b> Back";a.appendChild(el)}};version.extensions.displayMacro={major:1,minor:0,revision:0};macros.display={handler:function(a,b,c){new Wikifier(a,tale.get(c[0]).text)}};version.extensions.actionsMacro={major:1,minor:2,revision:0};macros.actions={handler:function(a,f,g){var e=insertElement(a,"ul");if(!state.history[0].variables["actions clicked"]){state.history[0].variables["actions clicked"]={}}for(var b=0;b<g.length;b++){if(state.history[0].variables["actions clicked"][g[b]]){continue}var d=insertElement(e,"li");var c=Wikifier.createInternalLink(d,g[b]);insertText(c,g[b]);c.onclick=function(){state.history[0].variables["actions clicked"][this.id]=true;state.display(this.id,c)}}}};version.extensions.printMacro={major:1,minor:1,revision:0};macros.print={handler:function(place,macroName,params,parser){try{var output=eval(parser.fullArgs());if(output){new Wikifier(place,output.toString())}}catch(e){throwError(place,"bad expression: "+e.message)}}};version.extensions.setMacro={major:1,minor:1,revision:0};macros.set={handler:function(a,b,c,d){macros.set.run(d.fullArgs())},run:function(expression){try{return eval(Wikifier.parse(expression))}catch(e){throwError(place,"bad expression: "+e.message)}}};version.extensions.ifMacros={major:1,minor:0,revision:0};macros["if"]={handler:function(place,macroName,params,parser){var condition=parser.fullArgs();var srcOffset=parser.source.indexOf(">>",parser.matchStart)+2;var src=parser.source.slice(srcOffset);var endPos=-1;var trueClause="";var falseClause="";for(var i=0,nesting=1,currentClause=true;i<src.length;i++){if(src.substr(i,9)=="<<endif>>"){nesting--;if(nesting==0){endPos=srcOffset+i+9;break}}if((src.substr(i,8)=="<<else>>")&&(nesting==1)){currentClause="false";i+=8}if(src.substr(i,5)=="<<if "){nesting++}if(currentClause==true){trueClause+=src.charAt(i)}else{falseClause+=src.charAt(i)}}try{if(eval(condition)){new Wikifier(place,trueClause.trim())}else{new Wikifier(place,falseClause.trim())}if(endPos!=-1){parser.nextMatch=endPos}else{throwError(place,"can't find matching endif")}}catch(e){throwError(place,"bad condition: "+e.message)}}};macros["else"]=macros.endif={handler:function(){}};version.extensions.rememberMacro={major:1,minor:1,revision:0};macros.remember={handler:function(place,macroName,params,parser){var statement=parser.fullArgs();var expire=new Date();var variable,value;macros.set.run(statement);var variableSigil=Wikifier.parse("$");variableSigil=variableSigil.replace("[","\\[");variableSigil=variableSigil.replace("]","\\]");variable=statement.match(new RegExp(variableSigil+"(\\w+)","i"))[1];value=eval(Wikifier.parse("$"+variable));switch(typeof value){case"string":value='"'+value.replace(/"/g,'\\"')+'"';break;case"number":case"boolean":break;default:throwError(place,"can't remember $"+variable+" ("+(typeof value)+")");return}expire.setYear(expire.getFullYear()+1);document.cookie=macros.remember.prefix+variable+"="+value+"; expires="+expire.toGMTString()},init:function(){if(tale.has("StoryTitle")){macros.remember.prefix=tale.get("StoryTitle").text+"_"}else{macros.remember.prefix="__jonah_"}var cookies=document.cookie.split(";");for(var i=0;i<cookies.length;i++){var bits=cookies[i].split("=");if(bits[0].trim().indexOf(this.prefix)==0){var statement=cookies[i].replace(this.prefix,"$");eval(Wikifier.parse(statement))}}}};version.extensions.SilentlyMacro={major:1,minor:0,revision:0};macros.silently={handler:function(g,e,f,b){var h=insertElement(null,"div");var k=b.source.indexOf(">>",b.matchStart)+2;var a=b.source.slice(k);var d=-1;var c="";for(var j=0;j<a.length;j++){if(a.substr(j,15)=="<<endsilently>>"){d=k+j+15}else{c+=a.charAt(j)}}if(d!=-1){new Wikifier(h,c);b.nextMatch=d}else{throwError(g,"can't find matching endsilently")}delete h}};macros.endsilently={handler:function(){}};version.extensions.choiceMacro={major:1,minor:0,revision:0};macros.choice={handler:function(a,b,c){Wikifier.createInternalLink(a,c[0])}};function Passage(c,b,a){this.title=c;if(b){this.id=a;this.initialText=this.text=Passage.unescapeLineBreaks(b.firstChild?b.firstChild.nodeValue:"");this.tags=b.getAttribute("tags");if(typeof this.tags=="string"){this.tags=this.tags.readBracketedList()}else{this.tags=[]}}else{this.initialText=this.text="@@This passage does not exist.@@";this.tags=[]}}Passage.prototype.render=function(){var b=insertElement(null,"div","passage"+this.title,"passage");b.style.visibility="hidden";insertElement(b,"div","","header");var a=insertElement(b,"div","","content");new Wikifier(a,this.text);insertElement(b,"div","","footer");return b};Passage.prototype.reset=function(){this.text=this.initialText};Passage.prototype.excerpt=function(){var b=this.text.replace(/<<.*?>>/g,"");b=b.replace(/!.*?\n/g,"");b=b.replace(/[\[\]\/]/g,"");var a=b.match(/(.*?\s.*?\s.*?\s.*?\s.*?\s.*?\s.*?)\s/);return a[1]+"..."};Passage.unescapeLineBreaks=function(a){if(a&&a!=""){return a.replace(/\\n/mg,"\n").replace(/\\/mg,"\\").replace(/\r/mg,"")}else{return""}};function Tale(){this.passages={};if(document.normalize){document.normalize()}var a=$("storeArea").childNodes;for(var b=0;b<a.length;b++){var c=a[b];if(c.getAttribute&&(tiddlerTitle=c.getAttribute("tiddler"))){this.passages[tiddlerTitle]=new Passage(tiddlerTitle,c,b)}}this.title="Sugarcane";if(this.passages.StoryTitle){this.title=this.passages.StoryTitle.text}}Tale.prototype.has=function(a){if(typeof a=="string"){return(this.passages[a]!=null)}else{for(i in this.passages){if(this.passages[i].id==a){return true}}return false}};Tale.prototype.get=function(a){if(typeof a=="string"){return this.passages[a]||new Passage(a)}else{for(i in this.passages){if(this.passages[i].id==a){return this.passages[i]}}}};Tale.prototype.lookup=function(h,g,a){var d=[];for(var c in this.passages){var f=this.passages[c];var e=false;for(var b=0;b<f[h].length;b++){if(f[h][b]==g){d.push(f)}}}if(!a){a="title"}d.sort(function(k,j){if(k[a]==j[a]){return(0)}else{return(k[a]<j[a])?-1:+1}});return d};Tale.prototype.reset=function(){for(i in this.passages){this.passages[i].reset()}};function Wikifier(a,b){this.source=b;this.output=a;this.nextMatch=0;this.assembleFormatterMatches(Wikifier.formatters);this.subWikify(this.output)}Wikifier.prototype.assembleFormatterMatches=function(a){this.formatters=[];var b=[];for(var c=0;c<a.length;c++){b.push("("+a[c].match+")");this.formatters.push(a[c])}this.formatterRegExp=new RegExp(b.join("|"),"mg")};Wikifier.prototype.subWikify=function(c,b){var a=this.output;this.output=c;var f=b?new RegExp("("+b+")","mg"):null;do{this.formatterRegExp.lastIndex=this.nextMatch;if(f){f.lastIndex=this.nextMatch}var g=this.formatterRegExp.exec(this.source);var e=f?f.exec(this.source):null;if(e&&(!g||e.index<=g.index)){if(e.index>this.nextMatch){this.outputText(this.output,this.nextMatch,e.index)}this.matchStart=e.index;this.matchLength=e[1].length;this.matchText=e[1];this.nextMatch=e.index+e[1].length;this.output=a;return}else{if(g){if(g.index>this.nextMatch){this.outputText(this.output,this.nextMatch,g.index)}this.matchStart=g.index;this.matchLength=g[0].length;this.matchText=g[0];this.nextMatch=this.formatterRegExp.lastIndex;var h=-1;for(var d=1;d<g.length;d++){if(g[d]){matchingFormatter=d-1}}if(matchingFormatter!=-1){this.formatters[matchingFormatter].handler(this)}}}}while(e||g);if(this.nextMatch<this.source.length){this.outputText(this.output,this.nextMatch,this.source.length);this.nextMatch=this.source.length}this.output=a};Wikifier.prototype.outputText=function(a,c,b){insertText(a,this.source.substring(c,b))};Wikifier.prototype.fullArgs=function(){var b=this.source.indexOf(" ",this.matchStart);var a=this.source.indexOf(">>",this.matchStart);return Wikifier.parse(this.source.slice(b,a))};Wikifier.parse=function(b){var a=b.replace(/\$/g,"state.history[0].variables.");a=a.replace(/\beq\b/gi," == ");a=a.replace(/\bneq\b/gi," != ");a=a.replace(/\bgt\b/gi," > ");a=a.replace(/\beq\b/gi," == ");a=a.replace(/\bneq\b/gi," != ");a=a.replace(/\bgt\b/gi," > ");a=a.replace(/\bgte\b/gi," >= ");a=a.replace(/\blt\b/gi," < ");a=a.replace(/\blte\b/gi," <= ");a=a.replace(/\band\b/gi," && ");a=a.replace(/\bor\b/gi," || ");a=a.replace(/\bnot\b/gi," ! ");return a};Wikifier.formatHelpers={charFormatHelper:function(a){var b=insertElement(a.output,this.element);a.subWikify(b,this.terminator)},inlineCssHelper:function(f){var h=[];var a="(?:("+Wikifier.textPrimitives.anyLetter+"+)\\(([^\\)\\|\\n]+)(?:\\):))|(?:("+Wikifier.textPrimitives.anyLetter+"+):([^;\\|\\n]+);)";var b=new RegExp(a,"mg");var c=false;do{b.lastIndex=f.nextMatch;var d=b.exec(f.source);var e=d&&d.index==f.nextMatch;if(e){var j,g;c=true;if(d[1]){j=d[1].unDash();g=d[2]}else{j=d[3].unDash();g=d[4]}switch(j){case"bgcolor":j="backgroundColor";break}h.push({style:j,value:g});f.nextMatch=d.index+d[0].length}}while(e);return h},monospacedByLineHelper:function(a){var b=new RegExp(this.lookahead,"mg");b.lastIndex=a.matchStart;var c=b.exec(a.source);if(c&&c.index==a.matchStart){var f=c[1];if(navigator.userAgent.indexOf("msie")!=-1&&navigator.userAgent.indexOf("opera")==-1){f=f.replace(/\n/g,"\r")}var d=insertElement(a.output,"pre",null,null,f);a.nextMatch=c.index+c[0].length}}};Wikifier.formatters=[{name:"table",match:"^\\|(?:[^\\n]*)\\|(?:[fhc]?)$",lookahead:"^\\|([^\\n]*)\\|([fhc]?)$",rowTerminator:"\\|(?:[fhc]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[fhc]?$\\n?)",cellTerminator:"(?:\\x20*)\\|",rowTypes:{c:"caption",h:"thead","":"tbody",f:"tfoot"},handler:function(h){var k=insertElement(h.output,"table");h.nextMatch=h.matchStart;var c=new RegExp(this.lookahead,"mg");var d=null,a;var l,e;var j=[];var g=0;do{c.lastIndex=h.nextMatch;var f=c.exec(h.source);var b=f&&f.index==h.nextMatch;if(b){a=f[2];if(a!=d){l=insertElement(k,this.rowTypes[a])}d=a;if(d=="c"){if(g==0){l.setAttribute("align","top")}else{l.setAttribute("align","bottom")}h.nextMatch=h.nextMatch+1;h.subWikify(l,this.rowTerminator)}else{e=insertElement(l,"tr");this.rowHandler(h,e,j)}g++}}while(b)},rowHandler:function(h,d,m){var a=0;var k=1;var c=new RegExp(this.cellPattern,"mg");do{c.lastIndex=h.nextMatch;var f=c.exec(h.source);matched=f&&f.index==h.nextMatch;if(matched){if(f[1]=="~"){var l=m[a];if(l){l.rowCount++;l.element.setAttribute("rowSpan",l.rowCount);l.element.setAttribute("rowspan",l.rowCount);l.element.valign="center"}h.nextMatch=f.index+f[0].length-1}else{if(f[1]==">"){k++;h.nextMatch=f.index+f[0].length-1}else{if(f[2]){h.nextMatch=f.index+f[0].length;break}else{var b=false,g=false;h.nextMatch++;var o=Wikifier.formatHelpers.inlineCssHelper(h);while(h.source.substr(h.nextMatch,1)==" "){b=true;h.nextMatch++}var j;if(h.source.substr(h.nextMatch,1)=="!"){j=insertElement(d,"th");h.nextMatch++}else{j=insertElement(d,"td")}m[a]={rowCount:1,element:j};lastColCount=1;lastColElement=j;if(k>1){j.setAttribute("colSpan",k);j.setAttribute("colspan",k);k=1}for(var n=0;n<o.length;n++){j.style[o[n].style]=o[n].value}h.subWikify(j,this.cellTerminator);if(h.matchText.substr(h.matchText.length-2,1)==" "){g=true}if(b&&g){j.align="center"}else{if(b){j.align="right"}else{if(g){j.align="left"}}}h.nextMatch=h.nextMatch-1}}}a++}}while(matched)}},{name:"rule",match:"^----$\\n?",handler:function(a){insertElement(a.output,"hr")}},{name:"emdash",match:"--",handler:function(a){var b=insertElement(a.output,"span");b.innerHTML="—"}},{name:"heading",match:"^!{1,5}",terminator:"\\n",handler:function(a){var b=insertElement(a.output,"h"+a.matchLength);a.subWikify(b,this.terminator)}},{name:"monospacedByLine",match:"^\\{\\{\\{\\n",lookahead:"^\\{\\{\\{\\n((?:^[^\\n]*\\n)+?)(^\\}\\}\\}$\\n?)",handler:Wikifier.formatHelpers.monospacedByLineHelper},{name:"monospacedByLineForPlugin",match:"^//\\{\\{\\{\\n",lookahead:"^//\\{\\{\\{\\n\\n*((?:^[^\\n]*\\n)+?)(\\n*^//\\}\\}\\}$\\n?)",handler:Wikifier.formatHelpers.monospacedByLineHelper},{name:"wikifyCommentForPlugin",match:"^/\\*\\*\\*\\n",terminator:"^\\*\\*\\*/\\n",handler:function(a){a.subWikify(a.output,this.terminator)}},{name:"quoteByBlock",match:"^<<<\\n",terminator:"^<<<\\n",handler:function(a){var b=insertElement(a.output,"blockquote");a.subWikify(b,this.terminator)}},{name:"quoteByLine",match:"^>+",terminator:"\\n",element:"blockquote",handler:function(c){var e=new RegExp(this.match,"mg");var d=[c.output];var h=0;var b=c.matchLength;var g;do{if(b>h){for(g=h;g<b;g++){d.push(insertElement(d[d.length-1],this.element))}}else{if(b<h){for(g=h;g>b;g--){d.pop()}}}h=b;c.subWikify(d[d.length-1],this.terminator);insertElement(d[d.length-1],"br");e.lastIndex=c.nextMatch;var f=e.exec(c.source);var a=f&&f.index==c.nextMatch;if(a){b=f[0].length;c.nextMatch+=f[0].length}}while(a)}},{name:"list",match:"^(?:(?:\\*+)|(?:#+))",lookahead:"^(?:(\\*+)|(#+))",terminator:"\\n",outerElement:"ul",itemElement:"li",handler:function(k){var b=new RegExp(this.lookahead,"mg");k.nextMatch=k.matchStart;var f=[k.output];var l=null,c;var h=0,d;var m;do{b.lastIndex=k.nextMatch;var g=b.exec(k.source);var a=g&&g.index==k.nextMatch;if(a){if(g[1]){c="ul"}if(g[2]){c="ol"}d=g[0].length;k.nextMatch+=g[0].length;if(d>h){for(m=h;m<d;m++){f.push(insertElement(f[f.length-1],c))}}else{if(d<h){for(m=h;m>d;m--){f.pop()}}else{if(d==h&&c!=l){f.pop();f.push(insertElement(f[f.length-1],c))}}}h=d;l=c;var j=insertElement(f[f.length-1],"li");k.subWikify(j,this.terminator)}}while(a)}},{name:"prettyLink",match:"\\[\\[",lookahead:"\\[\\[([^\\|\\]]*?)(?:(\\]\\])|(\\|(.*?)\\]\\]))",terminator:"\\|",handler:function(a){var b=new RegExp(this.lookahead,"mg");b.lastIndex=a.matchStart;var c=b.exec(a.source);if(c&&c.index==a.matchStart&&c[2]){var d=Wikifier.createInternalLink(a.output,c[1]);a.outputText(d,a.nextMatch,a.nextMatch+c[1].length);a.nextMatch+=c[1].length+2}else{if(c&&c.index==a.matchStart&&c[3]){var f;if(tale.has(c[4])){f=Wikifier.createInternalLink(a.output,c[4])}else{f=Wikifier.createExternalLink(a.output,c[4])}a.outputText(f,a.nextMatch,a.nextMatch+c[1].length);a.nextMatch=c.index+c[0].length}}}},{name:"urlLink",match:"(?:http|https|mailto|ftp):[^\\s'\"]+(?:/|\\b)",handler:function(a){var b=Wikifier.createExternalLink(a.output,a.matchText);a.outputText(b,a.matchStart,a.nextMatch)}},{name:"image",match:"\\[(?:[<]{0,1})(?:[>]{0,1})[Ii][Mm][Gg]\\[",lookahead:"\\[([<]{0,1})([>]{0,1})[Ii][Mm][Gg]\\[(?:([^\\|\\]]+)\\|)?([^\\[\\]\\|]+)\\](?:\\[([^\\]]*)\\]?)?(\\])",handler:function(a){var c=new RegExp(this.lookahead,"mg");c.lastIndex=a.matchStart;var d=c.exec(a.source);if(d&&d.index==a.matchStart){var f=a.output;if(d[5]){if(tale.has(d[5])){f=Wikifier.createInternalLink(a.output,d[5])}else{f=Wikifier.createExternalLink(a.output,d[5])}}var b=insertElement(f,"img");if(d[1]){b.align="left"}else{if(d[2]){b.align="right"}}if(d[3]){b.title=d[3]}b.src=d[4];a.nextMatch=d.index+d[0].length}}},{name:"macro",match:"<<",lookahead:"<<([^>\\s]+)(?:\\s*)([^>]*)>>",handler:function(a){var b=new RegExp(this.lookahead,"mg");b.lastIndex=a.matchStart;var c=b.exec(a.source);if(c&&c.index==a.matchStart&&c[1]){var g=c[2].readMacroParams();a.nextMatch=c.index+c[0].length;try{var d=macros[c[1]];if(d&&d.handler){d.handler(a.output,c[1],g,a)}else{insertElement(a.output,"span",null,"marked","macro not found: "+c[1])}}catch(f){throwError(a.output,"Error executing macro "+c[1]+": "+f.toString())}}}},{name:"html",match:"<[Hh][Tt][Mm][Ll]>",lookahead:"<[Hh][Tt][Mm][Ll]>((?:.|\\n)*?)</[Hh][Tt][Mm][Ll]>",handler:function(a){var b=new RegExp(this.lookahead,"mg");b.lastIndex=a.matchStart;var c=b.exec(a.source);if(c&&c.index==a.matchStart){var d=insertElement(a.output,"span");d.innerHTML=c[1];a.nextMatch=c.index+c[0].length}}},{name:"commentByBlock",match:"/%",lookahead:"/%((?:.|\\n)*?)%/",handler:function(a){var b=new RegExp(this.lookahead,"mg");b.lastIndex=a.matchStart;var c=b.exec(a.source);if(c&&c.index==a.matchStart){a.nextMatch=c.index+c[0].length}}},{name:"boldByChar",match:"''",terminator:"''",element:"strong",handler:Wikifier.formatHelpers.charFormatHelper},{name:"strikeByChar",match:"==",terminator:"==",element:"strike",handler:Wikifier.formatHelpers.charFormatHelper},{name:"underlineByChar",match:"__",terminator:"__",element:"u",handler:Wikifier.formatHelpers.charFormatHelper},{name:"italicByChar",match:"//",terminator:"//",element:"em",handler:Wikifier.formatHelpers.charFormatHelper},{name:"subscriptByChar",match:"~~",terminator:"~~",element:"sub",handler:Wikifier.formatHelpers.charFormatHelper},{name:"superscriptByChar",match:"\\^\\^",terminator:"\\^\\^",element:"sup",handler:Wikifier.formatHelpers.charFormatHelper},{name:"monospacedByChar",match:"\\{\\{\\{",lookahead:"\\{\\{\\{((?:.|\\n)*?)\\}\\}\\}",handler:function(a){var b=new RegExp(this.lookahead,"mg");b.lastIndex=a.matchStart;var c=b.exec(a.source);if(c&&c.index==a.matchStart){var d=insertElement(a.output,"code",null,null,c[1]);a.nextMatch=c.index+c[0].length}}},{name:"styleByChar",match:"@@",terminator:"@@",lookahead:"(?:([^\\(@]+)\\(([^\\)]+)(?:\\):))|(?:([^:@]+):([^;]+);)",handler:function(a){var d=insertElement(a.output,"span",null,null,null);var c=Wikifier.formatHelpers.inlineCssHelper(a);if(c.length==0){d.className="marked"}else{for(var b=0;b<c.length;b++){d.style[c[b].style]=c[b].value}}a.subWikify(d,this.terminator)}},{name:"lineBreak",match:"\\n",handler:function(a){insertElement(a.output,"br")}}];Wikifier.textPrimitives={anyDigit:"[0-9]",anyNumberChar:"[0-9\\.E]",urlPattern:"(?:http|https|mailto|ftp):[^\\s'\"]+(?:/|\\b)"};Wikifier.createInternalLink=function(a,c){var b=insertElement(a,"a",c);b.href="javascript:void(0)";if(tale.has(c)){b.className="internalLink"}else{b.className="brokenLink"}b.onclick=function(){state.display(c,b)};if(a){a.appendChild(b)}return b};Wikifier.createExternalLink=function(a,b){var c=insertElement(a,"a");c.href=b;c.className="externalLink";c.target="_blank";if(a){a.appendChild(c)}return c};if(!((new RegExp("[\u0150\u0170]","g")).test("\u0150"))){Wikifier.textPrimitives.upperLetter="[A-Z\u00c0-\u00de]";Wikifier.textPrimitives.lowerLetter="[a-z\u00df-\u00ff_0-9\\-]";Wikifier.textPrimitives.anyLetter="[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-]"}else{Wikifier.textPrimitives.upperLetter="[A-Z\u00c0-\u00de\u0150\u0170]";Wikifier.textPrimitives.lowerLetter="[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]";Wikifier.textPrimitives.anyLetter="[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"}; | |
| </script> | |
| <style type="text/css"> | |
| body{background-color:#000;color:#fff;font-family:Verdana,sans-serif;font-size:62.5%;margin:4em 15% 5% 5em;}#sidebar{position:fixed;top:4.2em;left:7.5em;width:12em;list-style:none;margin:0;padding:0 1em 0 0;font:bold 1.1em Verdana,sans-serif;}#sidebar li{color:#333;text-align:right;background-repeat:no-repeat;margin-bottom:1em;}#sidebar li:hover{color:#fff;cursor:pointer;}#sidebar li a{color:#333;}#sidebar li a:hover{color:#fff;text-decoration:none;}#sidebar #title{color:#999;font-size:150%;cursor:auto;}#sidebar #title a{color:#999;}#sidebar #title a:hover{color:#fff;}#sidebar #storyAuthor{font-size:50%;}#sidebar #storyMenu{display:none;line-height:2.5em;margin-bottom:.5em;}#sidebar #title:hover{color:#999;}#sidebar #credits{padding-top:2em;font-weight:normal;font-size:80%;cursor:auto;}#sidebar #credits:hover{color:#333;}#sidebar #credits a{text-decoration:none;}.menu{position:absolute;display:none;background-color:#343434;color:#fff;opacity:.9;border:1px solid #fff;text-align:left;font:1.1em Verdana;line-height:2em;}.menu div{padding:0 .4em;}.menu div:hover{cursor:pointer;background-color:#fff;color:#343434;}#passages{margin-left:18.2em;border-left:1px solid #333;padding-left:1.5em;}.passage{font-size:1.2em;line-height:175%;margin-bottom:2em;text-align:left;}.passage ul{padding-top:1.3em;text-align:center;}.passage li{display:inline;margin-right:6em;}a.internalLink,a.externalLink,a.back{color:#4d6ad8;font-weight:bold;text-decoration:none;}a.internalLink:hover,a.externalLink:hover,a.back:hover{color:#8ea6ff;text-decoration:underline;}a.brokenLink{background-color:red;text-decoration:none;color:#000;}.marked{background-color:red;color:#000;margin-right:12px;padding:3px;}.passage ul{margin-left:.5em;padding-left:1.5em;}.passage ol{margin-left:.5em;padding-left:1.5em;}.passage table{border-collapse:collapse;font-size:100%;margin:.8em 1.0em;}.passage th,.passage td,.passage tr,.passage caption{padding:3px;}.passage hr{height:1px;}#storeArea{display:none;} | |
| </style> | |
| </head> | |
| <body> | |
| <ul id="sidebar"> | |
| <li id="title"><span id="storyTitle"></span><span id="titleSeparator"></span><span id="storyAuthor"></span></li> | |
| <li id="storyMenu"></li> | |
| <li id="snapback">Rewind</li> | |
| <li id="restart">Restart</li> | |
| <li id="share">Share</li> | |
| <li id="credits"> | |
| This story was created with <a href="http://gimcrackd.com/etc/sr/">Twee</a> and is powered by <a href="http://tiddlywiki.com/">TiddlyWiki</a> | |
| </li> | |
| </ul> | |
| <div id="snapbackMenu" class="menu"></div> | |
| <div id="shareMenu" class="menu"> | |
| <div onclick="javascript:location.href='http://del.icio.us/post?title='+tale.get('StoryTitle').text+'&url='+location.href">Delicious</div> | |
| <div onclick="javascript:location.href='http://facebook.com/share.php?t='+tale.get('StoryTitle').text+'&u='+location.href">Facebook</div> | |
| <div onclick="javascript:location.href='http://stumbleupon.com/submit?title='+tale.get('StoryTitle').text+'&url='+location.href">StumbleUpon</div> | |
| <div onclick="javascript:location.href='http://twitter.com/home?status=Reading%20'+location.href">Twitter</div> | |
| </div> | |
| <div id="passages"></div> | |
| <div id="storeArea"><div tiddler="everyone" tags="" modified="201307151548" created="201307151548" modifier="twee">Everyone's eyes are on you now.\n\nIt's funny, isn't it? You've spent the entirety of your career being virtually [[invisible]], and now? Now, you're more visible than ever. Look, Georgiana, it's what you've always wanted! Are you happy now? [[Are you?|you]]</div><div tiddler="followed" tags="" modified="201304051833" created="201304051833" modifier="twee">Or at least, tried to follow. The actual development of the project was a such a haphazard mess that if it were a physical product, it would be held together by nothing more than bubble gum and duct tape. Of course, nobody ever talks about failure at these sorts of conferences, otherwise who would go to them? So, inevitably, you have to make sense out of all the randomness and somehow make it look intentional. [[Even though you doubt they're buying it.|slide 3]]</div><div tiddler="Georgiana" tags="" modified="201303201544" created="201303201544" modifier="twee">This is what it says on your speaker bio:\n\n"Georgiana Bourbonnais is a veteran programmer and user experience designer with a passion for making the world a more connected place. She cofounded [[Braingarten|not now]], worked as a senior engineer at [[Goggle|not now]], and is currently an independent consultant."\n\nTo people who don't know any better, it actually kind of sounds like you've accomplished some things in life. [[But all you can see are your many failures.|intro]]</div><div tiddler="Start" tags="" modified="201303311857" created="201303311857" modifier="twee"><<display intro>></div><div tiddler="intro" tags="" modified="201303201507" created="201303201507" modifier="twee">You don't belong up here.\n\nWhat were you thinking, [[Georgiana]]? Volunteering to go up on stage and speak to all those people, as if you actually know anything about programming augmented reality apps in [[PITBULL]]. There are exactly 268 people down there... 268 people, all of whom are way smarter and more talented than you are. Which, you have to admit, isn't saying a lot.\n\nIn all fairness, you never thought your [[speaker proposal]] would even get selected. But it did. And here you are.\n\nOkay, Georgiana. Breathe. They're all waiting for you. [[Might as well get it over with.|slide 1]]</div><div tiddler="slide 1" tags="" modified="201303312225" created="201303312225" modifier="twee">Your first [[slide]] goes up. It has your name and the title of your talk on it. Well, at least this part's easy.\n\nYou hear someone cough from somewhere near the back row. You wonder whether they're doing it on purpose, just to mess you up. You're probably just being paranoid. Geez, Georgiana, what's wrong with you?\n\n[[Next slide.|slide 2]]</div><div tiddler="after all that happened" tags="" modified="201304020924" created="201304020924" modifier="twee">"...we're going to have to let you go."\n"But we haven't even hit beta and I've still got 76 tasks in the bug tracker--"\n"We'll pass them on to the more experienced programmers. They'll get the work done faster than you can, anyway..."\n\nThat was then, Georgiana. This is now. [[Focus.|slide 2]]</div><div tiddler="a threat" tags="" modified="201306191648" created="201306191648" modifier="twee">Threat? Hah. [[You don't feel particularly threatening.|slide 4]]</div><div tiddler="Styles" tags="stylesheet" modified="201303311624" created="201303311624" modifier="twee">* {\n font-family: Helvetica, sans-serif;\n}\n\nbody {\n color: #000;\n background-color: #fff;\n font-size: 100%;\n}\n\na.internalLink:hover {\n text-decoration: none;\n}\n\n#sidebar li:hover {\n color: #999;\n}\n\n#snapback, #share, #credits {\n display: none;\n}</div><div tiddler="try" tags="" modified="201307181822" created="201307181822" modifier="twee">But you're here. You have the floor. You have everyone's attention. [[Maybe you can try?|speak]]</div><div tiddler="end" tags="" modified="201307191439" created="201307191439" modifier="twee">''IMPOSTOR SYNDROME''\n//some things never change//\n\n(author and credits to be revealed after the competition)</div><div tiddler="TrollChan" tags="" modified="201307181648" created="201307181648" modifier="twee">When proponents of AR eyewear were attacked for denying people their privacy, they always used sites like TrollChan as examples for why anonymity was actually a bad thing. It is, after all, the armpit of the internet. The place where people can say or do whatever they want without fearing any consequences towards their "real name".\n\nOf course, people still say and do plenty of horrific things under said "real names". And TrollChan still exists. [[It never went away.|look]]</div><div tiddler="interesting" tags="" modified="201304031540" created="201304031540" modifier="twee">"Interesting." It sounds like a compliment, but the more you think about it, the more you realise it's the kiss of death. Calling something "interesting" doesn't really say much of anything at all. It's an excuse to not have to engage with a piece of work because it's too weird, too different, too uncomfortable. [[It's a polite rejection.|last project]]</div><div tiddler="nah" tags="" modified="201307181817" created="201307181817" modifier="twee">You'd better just [[get the rest of this talk over with|finish your talk]].</div><div tiddler="she understands" tags="" modified="201304051834" created="201304051834" modifier="twee">Most people know Catherine as the woman who very vocally named and shamed [[Jerry Gabriel]] for mistaking her for the entertainment at one of Pomelo's renowned parties. He invited her back to his place for "coffee" *wink wink nudge nudge* while leeringly admiring her orchestra, mezzazine, and balcony. Catherine, of course, got the short end of the ordeal, having to deal with the loss of her job and the hordes of Pomelo fanboys calling her all manner of transphobic slurs and threatening her with rape. Meanwhile, Jerry G got to keep his cushy job and be constantly reassured that he's really a great guy, honest! He even runs a generous scholarship for women in tech and everything! Clearly, that harlot was making up the story for attention.\n\nStill, Catherine doesn't regret a thing. As she always says, while the fallout from speaking out nearly destroyed her, staying silent any longer would've outright killed her.\n\nShe's so strong, and you... you don't even deserve to compare yourself to her. What happened to you was nothing compared to this. [[Pull yourself together.|slide 3]]</div><div tiddler="AR glasses" tags="" modified="201304022147" created="201304022147" modifier="twee">You remember when those augmented reality glasses first appeared as mass-market consumer products, when they weren't just for researchers at universities anymore. You remember when they were trumpeted as changing the way we interact with computers forever. Never again will we be forced into the [[terrible slavery]] of disconnectedly staring at screens all day, they said.\n\nOf course, there were problems. Privacy issues inherent in wearing a video-recording device at all times. Publicised incidents with peeping toms and other unsavoury predators. Not to mention the dangerous ramifications of allowing internet trolls to immediately know everything about their targets at first sight. You remember that there were a handful of vocal [[detractors]] who tried to opt out of the system, with varying degrees of success.\n\nEventually, though, society adapted to the new technology, like it always does. You, of course, were young and naïve enough to embrace it without reservation, not understanding how anyone could possibly reject this invention that made life so much more convenient. [[How could you have been so ignorant?|slide 2]]</div><div tiddler="say something" tags="" modified="201307181801" created="201307181801" modifier="twee">Say... [[what|nah]]? [[What|nah]] [[could|nah]] [[you|nah]] [[possibly|nah]] [[say|nah]] [[to|nah]] [[make|nah]] [[it|nah]] [[any|nah]] [[better|try]]? [[It's|nah]] [[not|nah]] [[like|nah]] [[you|nah]] [[have|nah]] [[any|nah]] [[real|nah]] [[power|try]] [[to|nah]] [[make|nah]] [[change|try]] [[or|nah]] [[anything|nah]]. [[There|nah]] [[will|nah]] [[always|nah]] [[be|nah]] [[trolls|nah]]. [[There|nah]] [[will|nah]] [[always|nah]] [[be|nah]] [[sexism|nah]]. [[That's|nah]] [[just|nah]] [[the|nah]] [[way|nah]] [[this|nah]] [[industry|nah]] [[is|nah]]. [[It's|nah]] [[the|nah]] [[way|nah]] [[it|nah]] [[always|nah]] [[has|nah]] [[been|nah]].</div><div tiddler="kludgey solution" tags="" modified="201305031600" created="201305031600" modifier="twee">Griff always used to criticise your code. It was too messy, he said. Not spaced and punctuated in the right places. Not commented enough. Not optimised enough. Mind you, he criticised almost everything you did. The way you ride your bike. The way you do the laundry. The way you splay out when you sleep.\n\nYou know that constant condescension is just his way of making him feel better about himself; he does that to everyone he perceives as [[a threat]] of some kind. [[That said, you sometimes think he was right.|slide 4]]</div><div tiddler="don't even like people" tags="" modified="201306251823" created="201306251823" modifier="twee">Being an introvert isn't the same as being a misanthrope. You don't leave pub nights and networking mixers early out of disdain for humankind; you leave because your senses get overloaded and need recharging. You don't hate talking to people; you hate having to shout at them. You feel like the world would be a much more pleasant place if important business meetings were conducted quietly, over tea and baked goods. That doesn't make you a sociopath. [[It shouldn't.|slide 5]]</div><div tiddler="talking too fast" tags="" modified="201306251814" created="201306251814" modifier="twee">Yet another thing that Griff used to condescend at you for doing, and why he insisted on handling all the speaking and publicity gigs for Braingarten, even though you were ostensibly equals as cofounders. He claimed he had a more personable stage presence, and that he had more experience doing all this marketing stuff.\n\n"Besides," he argued, "you [[don't even like people]] all that much." He thought he was doing you a favour. [[You thought so to.|slide 5]]</div><div tiddler="StoryTitle" tags="" modified="201303311756" created="201303311756" modifier="twee">Impostor Syndrome</div><div tiddler="you" tags="" modified="201307181745" created="201307181745" modifier="twee">Oh, look at yourself. You're shaking. You're almost about to cry. Seriously, Georgiana? Crying over a childish TrollChan shop? Don't you know that most women deal with much worse in life? [[You overprivileged, oversensitive, pathetic excuse for a human being.|what now?]]</div><div tiddler="Jerry Gabriel" tags="" modified="201304231845" created="201304231845" modifier="twee">CEO of Pomelo Inc. and highly revered design visionary. Also an accomplished contra dancer, artisanal coffee roaster, and family man. [[You actually looked up to him once.|she understands]]</div><div tiddler="..." tags="" modified="201307161603" created="201307161603" modifier="twee">...oh, who are you kidding? Of course you're going to look. [[You idiot.|look]]</div><div tiddler="terrible slavery" tags="" modified="201304231829" created="201304231829" modifier="twee">There was that famous guy, way back when, who said that old-style smartphones were "emasculating". People found his wording confusing and unintentionally hilarious -- there was, after all, nothing particularly un-manly about smartphones of the time -- but it then emerged that what he really meant was that they were "dehumanising". To be human meant to be a man. [[Go figure.|AR glasses]]</div><div tiddler="Catherine Stinson" tags="" modified="201303312045" created="201303312045" modifier="twee">You met Catherine online a couple of years ago, after she shared some blog post of yours that was apparently useful and/or interesting to people. You're actually staying with her and her partner Desirée this week for the conference. It was nice of them to offer. They're good people.\n\nPart of you wishes you lived closer to Catherine, so you could maybe get to know one another better, but it's more likely that she'd be too busy to hang out with the likes of you. Her online life suggests she's constantly involved in all sorts of awesome social justice-related events and organisations. What use would she have in spending otherwise quality time with a boring, nerdy introvert?\n\nShe's here, though, sitting in the third row, near the aisle, her tall, broad frame and neon green hair making it easy to pick her out of any crowd. And she's watching you expectantly. [[Better not disappoint her.|intro]]</div><div tiddler="detractors" tags="" modified="201304030043" created="201304030043" modifier="twee">You laughed at them then for overreacting. Luddites, you thought to yourself. Afraid of new technology, afraid of evolution... no different from those old geezers who railed against rap music and videogames back in the dinosaur ages. Now, though? [[You're not quite sure you'd be quick to make such a judgement.|AR glasses]]</div><div tiddler="speak" tags="" modified="201307181831" created="201307181831" modifier="twee">"That... that wasn't funny."\n\nAnd then you let loose, ranting -- almost shouting -- about how they all should be ashamed of themselves, how porn has no place at a professional conference, how fucking hostile this industry is to women -- no, to every kind of minority in existence. None of it's coherent, and [[you probably look ridiculous]], but right now, //you don't care//.\n\n[[And before you know it, it's over.|aftermath]]</div><div tiddler="live feed" tags="" modified="201307111406" created="201307111406" modifier="twee">It seems like every conference has one, these days. A way for people in the audience -- and also people playing along at home -- to "add their voice" to the discussion. Because in this day and age, everything's a discussion. Everything's participatory. No one ever sits back and listens anymore.\n\nThey'd all rather talk about themselves, anyway. [[Right?|slide 5]]</div><div tiddler="PITBULL" tags="" modified="201303311827" created="201303311827" modifier="twee">Programming languages are constantly getting replaced with newer, shinier ones. You barely have a handle on PITBULL, but its similarity to PuppyScript keeps it from being completely unfamiliar to you. Generally speaking, you'd much rather work in PuppyScript, as it handles the things you do often in fewer lines of code, but PITBULL is what the AR app dev community is into right now -- the aggressively powerful language that <html><em>real</em></html> coders prefer, complete with an obscure acronym you can never quite remember... something like "Programmatic Instruction Technobabble somethingorother" -- so of course, that's what you're giving a talk about.\n\nYeah, they say all the time that the tech industry is always changing. [[Some things never change, though.|intro]]</div><div tiddler="invisible" tags="" modified="201307181727" created="201307181727" modifier="twee">The acquisition by Goggle that happened regardless of your protests against it. Griff's cushy new position as Director of Shared Experiences, and your relegation to working on what they termed "special projects". Informal meetings -- lunches, after-work beers, even a burlesque show -- none of which you were invited to, until one day, you realised that the big thing you'd co-created, your proudest career achievement, had nothing to do with you anymore.\n\nAnd then you were culled in the next round of layoffs. [[Go figure.|everyone]]</div><div tiddler="aftermath" tags="" modified="201307191442" created="201307191442" modifier="twee">Afterwards, people -- mostly other women -- come up to you and thank you for speaking up. You particularly remember one young woman shyly handing you a note hastily scrawled on a piece of scrap paper (a method of communication you'd always thought died out after elementary school) saying that what you said was the best thing to happen at this conference and, in her words, "sparked what is perhaps the most important conversation to ever happen in our industry".\n\nYou're not sure how you feel about that.\n\nOn the way out, you run into Griff, and for once, he's at a loss for words. He just looks at you in awe, seemingly amazed that you even had it in you to fight back.\n\nYou're not sure how you feel about that, either.\n\nWhat they're saying about you online... well, to say it's a mixed bag would be the understatement of the century. There's hate mail -- the awful, awful kind you'd previously only heard about in other, braver women's narratives, the kind that makes you fear for your personal safety -- and there's enough of it that you have to disengage from the internet for a good long time. No small feat for such a constantly connected society, but there are ways...\n\nYou have allies, though. Catherine and Desirée. Other women and other minorities who've been through this before. They've got your back.\n\n[[You're not alone.|end]]</div><div tiddler="finish your talk" tags="" modified="201307181800" created="201307181800" modifier="twee">The rest of the talk -- the rest of the afternoon, at that -- goes by in a blur. You don't really so much as talk to anyone until you're back at Catherine and Desirée's place.\n\nThen, when Catherine asks if you're okay, you completely break down. She listens. You rant. Desirée makes tea and brings you some. The three of you exchange war stories until you all collapse from exhaustion.\n\nAt one point, you even have a good laugh over how those TrollChan dipshits didn't even bother to come anywhere close to matching your skin tone.\n\nThere's another day left in the conference; you consider not going and booking an early trip home, but ultimately decide to stay. You won't let them win.\n\nPeople are terrible, but at least there are some people who aren't. People who've got your back.\n\n[[You're not alone.|end]]</div><div tiddler="slide 3" tags="" modified="201304031552" created="201304031552" modifier="twee">As you start to detail the PITBULL best practices you [[followed]] in the development of your app, your glasses inform you that a 269th person has just entered the auditorium. You notice an unruly mop of curly hair that looks an awful lot like...\n\n...oh. Oh, no. It's him. [[Griff]]. Of course he's at RealiCon this year. In a way, nonchalantly showing up late to your talk feels like even more of a slap in the face than being too busy to show up at all.\n\nCatherine sees him too; she looks over at you and makes what looks to be a sympathetic scowl. She knows all about what happened, and [[she understands]]. She's one of the few who would, really.\n\nAck. Come on, Georgiana. [[Next slide.|slide 4]]</div><div tiddler="look" tags="" modified="201307151439" created="201307151439" modifier="twee">Quickly, and surreptitiously, you bring up the live feed. There's virtually no lag time, so it's like you're looking in a mirror, except...\n\n...you're naked. Except, that's not even how you look naked; it's like they decided to superimpose some cartoonishly proportioned porn star's body below your head. The usual sort of uncreative [[TrollChan]] hack job that's existed ever since Photoshop became a thing.\n\nIt still makes your stomach lurch, though. Even despite the fact that this particular kind of hack is actually pretty tame for TrollChan standards.\n\nNo, what's worse are the comments... the disgusting, skeevy comments. How many of them are from people you've met? Worked with? Talked to at conferences like these?\n\nAnd then, just as suddenly, you're back to normal again. The mods reverted the hack as fast as they could, but it was several seconds too late. [[Everyone's already seen it.|everyone]]</div><div tiddler="a couple of guys" tags="" modified="201306191703" created="201306191703" modifier="twee">You sort of vaguely recognise one of them, the one with reddish hair and a scruffy beard, wearing a t-shirt from that web series about philosophical dinosaurs. You wound up sitting together at dinner during some meetup last year; at the time, he worked for Knig Media. His name was Dan or Dave or Doug or something. Insert joke about how white bearded dudes are so hard to tell apart. Ha ha ha. Georgiana, you're a regular comedian.\n\nThe other guy has blonde dreads in a ponytail. You've never seen him before; you'd definitely recognise him if you had.\n\nAt any rate, they're not being THAT disruptive. [[You should just let it go.|slide 4]]</div><div tiddler="you probably look ridiculous" tags="" modified="201307191137" created="201307191137" modifier="twee">You know damn well that you're fulfilling the tired old "angry woman of colour" stereotype. You know damn well that no one's going to take you seriously because of it.\n\nFuck it. [[Let them think what they want.|speak]]</div><div tiddler="keep on going" tags="" modified="201307151439" created="201307151439" modifier="twee">"Don't look at the comments." The most commonly passed-on maxim to any reasonable person wanting to read anything on the internet ever, yourself included. Pulling up the live feed will do nothing but derail your talk. Don't do it, Georgiana. You'll regret it forever.\n\n[[...]]</div><div tiddler="what now?" tags="" modified="201307181756" created="201307181756" modifier="twee">Okay, Georgiana. Calm down. Try to relax. Breathe.\n\nJust [[finish your talk]]. You're almost done. Just rush through the rest of it and then you can go away and be alone.\n\nBut maybe... maybe you should [[say something]]?</div><div tiddler="slide" tags="" modified="201304011604" created="201304011604" modifier="twee">Crisp, black, bullet-pointed text on a white background. No clever pictures or videos or holographic 3D animations or anything fancy. Only clean, legible text. [[Just the way you like it.|slide 1]]</div><div tiddler="Griff" tags="" modified="201304051834" created="201304051834" modifier="twee">Griffin Holmes. Your ex-partner, in both the business and personal sense. [[You've learned since then to never mix the two again.|slide 3]]</div><div tiddler="speaker proposal" tags="" modified="201303201545" created="201303201545" modifier="twee">It was [[Catherine Stinson]] who urged you to submit something. She's part of RealiCon's speaker selection committee this year, and worked very hard to get more female presenters up on stage than the usual single-digit percentage one winds up seeing at these sorts of conferences.\n\nWhile you do believe that diversity in the tech industry is a thing that's very much needed, there's a part of you that feels like you were only selected to present because you're a woman. And a woman of colour too, at that. That's already two ticky boxes on the fabled affirmative action checklist for the price of one. [[Hooray.|intro]]</div><div tiddler="not now" tags="" modified="201303311949" created="201303311949" modifier="twee">Don't think about that right now, Georgiana. [[You're supposed to be giving a talk.|intro]]</div><div tiddler="StoryAuthor" tags="" modified="201303311756" created="201303311756" modifier="twee">by Georgiana Bourbonnais</div><div tiddler="slide 2" tags="" modified="201303312248" created="201303312248" modifier="twee">You start to talk about the [[last project]] you worked on. You're barely even conscious of the words that are coming out of your mouth; it's like there's a robot version of you on stage running on autopilot and your consciousness is elsewhere, not really occupying a physical space.\n\nNevertheless, you see the audience's eyes start to glaze over. Some take out their phones and start typing, others get the strange cross-eyed looks one gets when wearing [[AR glasses]] or contacts -- when you're not really looking at what's right there in front of you so much as what your news ticker is flashing in your peripheral vision. Wonderful, Georgiana. You've lost them already.\n\n[[Next slide.|slide 3]]</div><div tiddler="last project" tags="" modified="201304020917" created="201304020917" modifier="twee">A storygame in which you explore a physical space to find clues about a murder. Some people found it [[interesting]]. A few dismissed it, finding it too derivative of all those "hidden object" non-augmented games of the past. That said, for the most part, the community couldn't really see the point. What do silly little games have to do with using technology to make the world a better place?\n\nStill, you wrote it because it was all you had in you to write, [[after all that happened]].\n\nIt must have been worth something to some people, though, because here you are, giving a talk. [[And you still have 45 minutes left.|slide 2]]</div><div tiddler="slide 4" tags="" modified="201304051837" created="201304051837" modifier="twee">You do your best to collect yourself as you start talking about how you had to hack PITBULL's built-in audio features to get the dynamic sound cues you wanted. You observe people in the crowd nodding and smiling, but for all you know, they're really just smugly judging you for coming up with such a [[kludgey solution]] to the problem.\n\nYou notice [[a couple of guys]] sitting up front, nudging and whispering to each other.\n\nOkay... [[next slide|slide 5]].</div><div tiddler="slide 5" tags="" modified="201306251756" created="201306251756" modifier="twee">You keep talking. Your next slides come up, one by one and you say the right words, just as you did when rehearsing. You catch yourself [[talking too fast]], and you pause for a minute to slow down.\n\nThat's when you notice the anonymous notification in the corner of your eye.\n\n"umm... you might want to have a look at the [[live feed]]..."\n\nAnd then you look around and notice groups of people smirking. Not all of them, though. Some of them look kind of uncomfortable, their laughter being of the nervous sort. Catherine appears more visibly vexed than her usual cool, collected demeanour. Griff has a blank stare on his face.\n\nThis can't be good.\n\nSo, what now, Georgiana? Do you dare [[look]]? Or do you just [[keep on going]]?</div></div></body></html> |
Xet Storage Details
- Size:
- 57.8 kB
- Xet hash:
- fa8e02e935bf5d3e243aa6b8868ffc8f1eb2cdba521c9c1ac3d39752104831a9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.