Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Creating interactive learning interfaces at Kha...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for spicyj spicyj
September 15, 2014

Creating interactive learning interfaces at Khan Academy

For @Scale 2014 on September 15, 2014.

Avatar for spicyj

spicyj

September 15, 2014

More Decks by spicyj

Other Decks in Technology

Transcript

  1. <div class="vars"> <var id="X">randRange(5, 10)</var> <var id="Y">randRange(5, 10)</var> </div> !

    <div class="problem"> <p>Bob has <var>X</var> apples...</p> </div>
  2. <label> <input checked name="dashradio" onclick="javascript: KhanUtil.currentGraph.graph.dasharray = ''; KhanUtil.currentGraph.graph.update(); "

    type="radio" value="solid"> Solid line </label> <label> <input name="dashradio" onclick="javascript: KhanUtil.currentGraph.graph.dasharray = '- '; KhanUtil.currentGraph.graph.update(); " type="radio" value="dashed"> Dashed line </label>
  3. For diagrams, we want… • Simple to create • Consistent

    look and feel • Flexibility to draw anything
  4. var MissionDashboard = React.createClass({ render: function() { return ( <div

    className="dashboard-root"> <MissionProgress mission={this.props.mission} /> <TaskArea mission={this.props.mission} /> </div> ); } });
  5. f ( x ) = Z 1 1 ˆ f

    ( ⇠ ) e 2 ⇡i⇠x d⇠
  6. • Used in production since last summer • Beautiful math

    typesetting • About 50x faster than MathJax • http://khan.github.io/KaTeX/