homeowmorphismWebpage of a math cat.
http://localhost:4000/
Tue, 10 Dec 2019 17:30:20 -0500Tue, 10 Dec 2019 17:30:20 -0500Jekyll v3.8.5Conference Notes Posted <p><span class="newthought">It’s been a while.</span> Lots has happened since I started graduate school<label for="" class="margin-toggle sidenote-number"></label><input type="checkbox" class="margin-toggle" /><span class="sidenote">which I may or may not elaborate on at some point </span>. Anyhow, lately I’ve been thinking about how to be useful to others via this blog again, while not overloading myself with the pressure to produce new content specifically for this blog. As a step into this direction, I’ve created a new section for this website where I post my notes from various courses/conference I’ve attended, and included some links to extra content. I hope this will be useful to some!</p>
Sun, 08 Dec 2019 14:36:00 -0500
http://localhost:4000/update/2019/12/08/Conference-Notes-Posted.html
http://localhost:4000/update/2019/12/08/Conference-Notes-Posted.htmlUpdateIntro to Mapping Class Groups, Teichmuller Spaces and Hyperbolic Surfaces. <p>I asked <a href="http://www.math.toronto.edu/~rafi/">Kasra Rafi</a> about the link between hyperbolic surfaces, Teichmüller spaces and Mapping Class Groups with the goal of getting an intuitive overview of these concepts. During the span of several office hours, he generously replied with a beautiful torus story linking the three, which I adapt and fill in below.</p>
<!--more-->
<ul id="markdown-toc">
<li><a href="#quick-recap-of-definitions" id="markdown-toc-quick-recap-of-definitions">Quick recap of definitions</a></li>
<li><a href="#a-humble-beginning-with-lattices" id="markdown-toc-a-humble-beginning-with-lattices">A humble beginning with lattices</a></li>
<li><a href="#torus-time" id="markdown-toc-torus-time">Torus time!</a></li>
<li><a href="#scale-equivalence-and-textsl_2mathbbr-action" id="markdown-toc-scale-equivalence-and-textsl_2mathbbr-action">Scale equivalence and $\text{SL}_2(\mathbb{R})$ action</a></li>
<li><a href="#rotation-and-identification-of-torus-with-point-in-upper-half-plane" id="markdown-toc-rotation-and-identification-of-torus-with-point-in-upper-half-plane">Rotation and identification of torus with point in upper half-plane</a></li>
<li><a href="#the-teichmüller-space-of-the-torus" id="markdown-toc-the-teichmüller-space-of-the-torus">The Teichmüller space of the torus</a></li>
<li><a href="#markings-on-a-torus" id="markdown-toc-markings-on-a-torus">Markings on a torus</a> <ul>
<li><a href="#topological-definition" id="markdown-toc-topological-definition">Topological definition</a></li>
<li><a href="#group-theoretic-connection" id="markdown-toc-group-theoretic-connection">Group theoretic connection</a></li>
<li><a href="#interesting-combinational-fact" id="markdown-toc-interesting-combinational-fact">Interesting combinational fact</a></li>
</ul>
</li>
<li><a href="#mapping-class-group-of-the-torus" id="markdown-toc-mapping-class-group-of-the-torus">Mapping Class Group of the Torus</a> <ul>
<li><a href="#group-theoretic" id="markdown-toc-group-theoretic">Group Theoretic</a></li>
<li><a href="#topological" id="markdown-toc-topological">Topological</a></li>
<li><a href="#combinatorial" id="markdown-toc-combinatorial">Combinatorial</a></li>
<li><a href="#note-on-moduli-spaces" id="markdown-toc-note-on-moduli-spaces">Note on Moduli Spaces</a></li>
</ul>
</li>
<li><a href="#putting-it-all-together" id="markdown-toc-putting-it-all-together">Putting it all together</a></li>
<li><a href="#sources-and-resources" id="markdown-toc-sources-and-resources">Sources and Resources</a></li>
<li><a href="#acknowledgements" id="markdown-toc-acknowledgements">Acknowledgements</a></li>
<li><a href="#get-in-touch" id="markdown-toc-get-in-touch">Get in touch</a></li>
</ul>
<h2 id="quick-recap-of-definitions">Quick recap of definitions</h2>
<blockquote>
<p><strong>Hyperbolic surface:</strong> A topological surface endowed with a hyperbolic metric such that the space has constant negative curvature. Recall from differential geometry that for Riemann surface with metric <script type="math/tex">ds</script> where <script type="math/tex">ds^2 = g_1 dx_1^2 + g_2 dx_2^2</script>, the curvature is given by <script type="math/tex">K = -\frac{1}{\sqrt{g_1 g_2}}\left(\frac{\partial}{\partial x_1}\left(\frac{1}{\sqrt{g_1}} \frac{\partial \sqrt{g_2}}{\partial x_1}\right) + \frac{\partial}{\partial x_2}\left(\frac{1}{\sqrt{g_2}} \frac{\partial \sqrt{g_1}}{\partial x_2}\right) \right).</script><label for="source hyp" class="margin-toggle sidenote-number"></label><input type="checkbox" id="source hyp" class="margin-toggle" /><span class="sidenote">Adapted from <em>Hyperbolic Geometry</em> by Caroline Series and Wikipedia. </span></p>
</blockquote>
<blockquote>
<p><strong>Teichmüller space:</strong> Let S be a compact surface. The Teichmüller space <script type="math/tex">\tau(S)</script> is the set of isotopy classes of complex structures on <script type="math/tex">S</script>. By a complex structure on <script type="math/tex">S</script>, we mean a fixed homeomorphism <script type="math/tex">f: S \to X</script>, where <script type="math/tex">X</script> is a metrized surface with distinguished curves. Equivalently, <script type="math/tex">\tau(S)</script> is a space that parametrizes complex structures on <script type="math/tex">S</script> up to the action of homeomorphisms that are isotopic to the identity. We may record the complex structure <script type="math/tex">f: S \to X</script> by the triple <script type="math/tex">(S,X,f)</script>. The homeomorphism is referred to as a <em>marking</em> which has named curves, and either <script type="math/tex">X</script> or <script type="math/tex">(X,f)</script> can be referred to as a <em>marked surface</em>.<label for="source tech" class="margin-toggle sidenote-number"></label><input type="checkbox" id="source tech" class="margin-toggle" /><span class="sidenote">Adapted from <em>A Primer on Mapping Class Groups</em> by Farb and Margalit and Wikipedia. </span></p>
</blockquote>
<blockquote>
<p><strong>Mapping class group:</strong> The group of orientation-preserving homeomorphisms of a surface up to isotopy, where the group structure is inherited from functional composition of homeomorphisms. In other words, <script type="math/tex">\text{MCG}(S) = \text{Homeo}^+(S)/\text{Homeo}_0(S)</script>.<label for="iso" class="margin-toggle sidenote-number"></label><input type="checkbox" id="iso" class="margin-toggle" /><span class="sidenote">where <script type="math/tex">\text{Homeo}_0(S)</script> are homeomorphisms isotopic to the identity. </span> The group multiplication of the mapping class group of <script type="math/tex">S</script> gives it a natural action on the Teichmüller space of <script type="math/tex">S</script> by composition of homeomorphisms.<label for="source tech" class="margin-toggle sidenote-number"></label><input type="checkbox" id="source tech" class="margin-toggle" /><span class="sidenote">Adapted from <em>A Primer on Mapping Class Groups</em> by Farb and Margalit and Wikipedia. </span></p>
</blockquote>
<p>At first glance, these seem tricky and confusing – let’s see what they mean in the context of <em>one</em> example.</p>
<h2 id="a-humble-beginning-with-lattices">A humble beginning with lattices</h2>
<p>Our story starts with a simple problem. We can define a <em>lattice</em> in <script type="math/tex">\mathbb{R}^2</script> to be an injective homomorphism from <script type="math/tex">\mathbb{Z}^2 \to \mathbb{R}^2</script>.</p>
<figure><figcaption>We will be calling the two vectors defining a lattice the *basis* of the lattice. In the picture above, the left (green) represents the linear map $$\{(1,0), (0,1)\} \mapsto \{(1,0), (0,1)\}$$ and the right represents the linear map $$ \{(1,0), (0,1)\} \mapsto \{(1,0), (1,1)\}.$$</figcaption><img src="/assets/img/2017/hyperbolic/lattice-map.jpeg" /></figure>
<p><strong>Key idea</strong>: <em>Up to what should these maps be equivalent? What is a good notion of equivalence to use?</em></p>
<p>One way to interpret this question is to define up to equivalence maps which have the same images. For example, the linear map <script type="math/tex">\{(1,0), (0,1)\} \mapsto \{(1,0), (0,1)\}</script> and the linear map <script type="math/tex">\{(1,0), (0,1)\} \to \{(1,0), (1,1)\}</script> have the same image, which is <script type="math/tex">\mathbb{Z}^2 \subset \mathbb{R}^2.</script></p>
<figure><figcaption>Picture illustrating how the two maps have the same image as they span the same lattice points.</figcaption><img src="/assets/img/2017/hyperbolic/lattice-map2.jpg" /></figure>
<p>On the other hand, the linear map <script type="math/tex">\{(1,0),(0,1)\} \mapsto \{(2,0), (1,2)\}</script> (in blue) does not have the same image as the other two (in brown). For example, the point <script type="math/tex">(1,1)</script> (in pink) is not in the image of the linear map.</p>
<figure><figcaption>In blue: the parallelogram formed by vectors $$\{(2,0), (1,2)\}.$$ In brown: the tesselation formed by the previous lattice. In pink: points not covered by the blue tesselation that are covered in the brown tesselation.</figcaption><img src="/assets/img/2017/hyperbolic/lattice-othermap.jpg" /></figure>
<p>Already, we have a new notion of equivalence. Since we can choose to care about only the span of the image of the chosen basis elements for <script type="math/tex">\mathbb{Z}^2</script>, two maps could be equivalent under change of basis which preserves the span of the image. Thus, an equivalence of maps from <script type="math/tex">\mathbb{Z}^2 \to \mathbb{Z}^2 \subset \mathbb{R}^2</script> must necessarily be area preserving (so that both base and height are <script type="math/tex">1</script> in the domain as fractions are not allowed). IF we choose to preserve orientation,<label for="orientation" class="margin-toggle sidenote-number"></label><input type="checkbox" id="orientation" class="margin-toggle" /><span class="sidenote">which we will (spoiler alert!) because we will want to associate each lattice with a marked torus, and a torus is an oriented surface. </span> the group acting on these maps must be <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> the special linear group of two-dimensional integer matrices with determinant <script type="math/tex">1</script>.</p>
<figure><figcaption>Picture illustrating how $$\text{SL}_2(\mathbb{Z})$$ works on bases of $$\mathbb{Z}^2$$ the domain of the lattice maps. The map pictured here is the natural embedding (in blue) of $$\mathbb{Z}^2$$ into $$\mathbb{R}^2,$$ but it could be anything that is an injective linear map.</figcaption><img src="/assets/img/2017/hyperbolic/change-of-basis.jpeg" /></figure>
<p><script type="math/tex">\text{SL}_2(\mathbb{Z})</script> is also known as the <em>mapping class group of the torus</em>. What torus? How do we get there?</p>
<h2 id="torus-time">Torus time!</h2>
<p>Since each parallelogram is exactly the same in a given lattice, it doesn’t matter which one we pick as a representative!</p>
<figure><figcaption>Map each lattice to a single parallelogram representative. </figcaption><img src="/assets/img/2017/hyperbolic/rep-lattice.jpeg" /></figure>
<p>Under the assumption that all parallelograms in a given lattice is the same, we may identify the sides of the parallelograms accordingly. The resulting surface is a torus identified with a particular lattice <script type="math/tex">\mathbb{Z}^2 \to \mathbb{R}^2</script>.</p>
<p><strong>Key idea:</strong> <em>How do we transfer the equivalence relation between parallelograms onto its torus representative?</em></p>
<p>Unfortunately, genus 1 tori are all the same as topological spaces, which we write as <script type="math/tex">\mathbb{R}^2/\mathbb{Z}^2</script>. Since there is only one equivalence class for genus 1 tori under homeomorphisms, we will need finer notion of equivalence to get “interesting” equivalence classes”.</p>
<h2 id="scale-equivalence-and-textsl_2mathbbr-action">Scale equivalence and $\text{SL}_2(\mathbb{R})$ action</h2>
<p>Notice we have only talked about equivalence in the domain space <script type="math/tex">\mathbb{Z}^2</script>. In the image space, the completeness of <script type="math/tex">\mathbb{R}^2</script> allows for richer equivalences.</p>
<p>Indeed, maybe instead of the image of maps being the distinguishing factor, we only care about the <em>shape</em> of the parallelograms in the lattice. That translates to equivalences up to <em>scaling and rotation</em>. Notice that both are features that we think of as invariant in a torus. These equivalences will lead us to the Teichmüller space of the torus. Notice</p>
<p>Let’s start with scaling and see what natural group action arises from it. If we decide to mod the lattices by a scaling factor, we may consider only the set of lattices whose parallelograms have area <script type="math/tex">1</script>.<label for="stretch" class="margin-toggle sidenote-number"></label><input type="checkbox" id="stretch" class="margin-toggle" /><span class="sidenote">Imagine stretching your parallelogram freely until you get area <script type="math/tex">1</script>. </span></p>
<figure><figcaption>Scaling our parallelogram to have area $$1$$. </figcaption><img src="/assets/img/2017/hyperbolic/para-scale.jpg" /></figure>
<p>Then, the group acting on parallelograms with area <script type="math/tex">1</script> is <script type="math/tex">\text{SL}_2(\mathbb{R})</script>, the special linear group of two-dimensional real matrices with determinant <script type="math/tex">1</script>.</p>
<figure><figcaption>Diagram showing where $$\text{SL}_2(\mathbb{R})$$ acts. </figcaption><img src="/assets/img/2017/hyperbolic/SL2R.jpg" /></figure>
<h2 id="rotation-and-identification-of-torus-with-point-in-upper-half-plane">Rotation and identification of torus with point in upper half-plane</h2>
<p>For a given set of two vectors in <script type="math/tex">\mathbb{R}^2</script>, we may rotate a parallelograms such that the second basis vector is always in the upper half-plane. This does not change the torus we are looking at and neither does the scaling.</p>
<figure><figcaption>We may represent our two-dimensional space as the complex plane. Then, then since the vector $$v$$ can always be rotated to be on the upper half-plane, we may uniquely identify our torus with the rotated coordinates of our vector $$v = \tau = a + bi,$$ assuming the torus has area $$1.$$</figcaption><img src="/assets/img/2017/hyperbolic/para-rotate.jpg" /></figure>
<p>The group action of <script type="math/tex">\text{SL}_2(\mathbb{R})</script> on the image of the lattice becomes <script type="math/tex">\text{SL}_2(\mathbb{R})/O(2)</script> where <script type="math/tex">O(2)</script> is the group of two-dimensional rotation.</p>
<p>Due to our equivalence of parallelograms being up to rotation and scale, we can fix our first basis vector to be of length <script type="math/tex">1</script> lying on the real-axis. We may then uniquely identify each representative of our equivalence class by the coordinates of the second basis vector, which we will refer to as the parameter <script type="math/tex">\tau = a + bi</script> in the complex upper half-plane.</p>
<blockquote>
<p><strong>Possible point of confusion:</strong> <em>Are irrational coordinates allowed?</em></p>
</blockquote>
<blockquote>
<p>Irrational coordinates are allowed by definition. The domain of the <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> action should not be confused with that of <script type="math/tex">\text{SL}_2(\mathbb{R})</script>.</p>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/irrational-coords.jpeg" /></figure>
</blockquote>
<h2 id="the-teichmüller-space-of-the-torus">The Teichmüller space of the torus</h2>
<p><strong>The space of possible coordinates of <script type="math/tex">\tau</script> which uniquely identifies a torus under our new equivalence is exactly the Teichmüller space of the torus. Thus <script type="math/tex">\tau(T^2) = \mathbb{H}</script>, the complex upper half-plane.</strong></p>
<blockquote>
<p><strong>Note:</strong> From the identification of the complex upper half-plane to this (Teichmüller) space of tori, we inherit the hyperbolic metric <script type="math/tex">ds = \lvert{dz}\rvert/\Im z</script>, which gives a useful notion of distance between tori in the Teichmüller space (for reasons not explored here).</p>
</blockquote>
<p>But how do we make sense of that? In the definition of the Teichmüller space, there was mention of distinguished curves and markings, and of mapping class group action…</p>
<p><em>This concludes the first part of this post (yay! We did it!). In the second part, we will explore markings of the torus, the mapping class group and tie all the previous concepts we explored together. If you were new to the material, this is a good break point.</em></p>
<h2 id="markings-on-a-torus">Markings on a torus</h2>
<p>Let’s start with an example.</p>
<p>As seen previously, the maps which embed the bases <script type="math/tex">\{(1,0), (0,1)\}</script> (in green) and <script type="math/tex">\{(1,0), (1,1)\}</script> (in pink) have the same image, so one could consider them the same as maps. However, if we ‘mark’ the resulting torus by the curves they embed, they become different as marked tori.</p>
<figure><figcaption>Shortest curves in blue on the green torus, which both correspond with the generators of the fundamental group (the edges of the square).</figcaption><img src="/assets/img/2017/hyperbolic/marking1.jpg" /></figure>
<figure><figcaption>Shortest curves in blue on the pink torus, where only one correspond with the generators of the fundamental group (the edges of the pink parallelogram).</figcaption><img src="/assets/img/2017/hyperbolic/shortest-curves2.jpeg" /></figure>
<p>Indeed, the green basis maps to the shortest curves on the torus, whereas the pink basis maps the second vector to a curve that is not the shortest.</p>
<blockquote>
<p>A torus is fundamentally a product of two circles <script type="math/tex">S^1 \times S^1</script>. If you have a parallelogram with identified edges, you have infinitely many circles to choose from. The standard two circles (in blue) are supposed to represent the shortest two loops on any torus. As the blue curves illustrate, the shortest curves are not necessarily always the curves you pick to generate your torus (ex: pink torus).</p>
</blockquote>
<p>Here are different interpretations of markings.</p>
<h3 id="topological-definition">Topological definition</h3>
<p>Let <script type="math/tex">\gamma_1, \gamma_2</script> be two circles, and let <script type="math/tex">S</script> be the genus <script type="math/tex">1</script> surfaces generated by <script type="math/tex">S = S^1 \times S^1 = \gamma_1 \times \gamma_2</script>.</p>
<blockquote>
<p>In our examples, such an <script type="math/tex">S</script> would be a fixed parallelogram <script type="math/tex">P</script> in <script type="math/tex">\mathbb{Z}^2</script> with the sides identified - let’s take <script type="math/tex">P</script> to be a square with sides <script type="math/tex">1</script> for simplicity. The horizontal sides of <script type="math/tex">P</script> would correspond to <script type="math/tex">\gamma_1</script> and the vertical sides to <script type="math/tex">\gamma_2</script>.</p>
</blockquote>
<p>A <em>marking</em> of the torus is a orientation-preserving homeomorphism <script type="math/tex">f</script> from <script type="math/tex">S</script> to a <a href="https://en.wikipedia.org/wiki/Riemann_surface">Riemann surface</a> <script type="math/tex">X</script> where <script type="math/tex">f</script> is <em>fixed</em> by once-intersecting simple closed curve <script type="math/tex">(\lambda_1, \lambda_2)</script> on <script type="math/tex">X = \lambda_1 \times \lambda_2</script> such that <script type="math/tex">f(\gamma_1) = \lambda_1, f(\gamma_2) = \lambda_2</script>.</p>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/markings.jpeg" /></figure>
<blockquote>
<p>In the pink torus example, <script type="math/tex">X</script> is the pink torus and <script type="math/tex">(\lambda_1, \lambda_2)</script> are the pink curves, and they are the (non-standard) generators the fundamental group <script type="math/tex">\pi_1(X)</script>. The blue curves represent the <em>standard</em> generators of <script type="math/tex">\pi_1(X)</script>. The map sending the parallelogram <script type="math/tex">P</script> to the pink torus is the homeomorphism map <script type="math/tex">f</script> from <script type="math/tex">S</script> to <script type="math/tex">X</script>. The green torus example is similar, except that the green curves coincide with the blue curves because they are the standard generators of the fundamental group.</p>
</blockquote>
<p>We say that <script type="math/tex">X</script> and <script type="math/tex">Y</script> are <em>equivalent as markings</em> if there is an isometry <script type="math/tex">\varphi</script> between the homeomorphisms <script type="math/tex">f : S \to X</script>, <script type="math/tex">g : S \to Y</script> such that <script type="math/tex">\varphi</script> is isotopic (or homotopic) to the identity.</p>
<blockquote>
<p>An example of such a homeomorphism isotopic to the identity is “introducing a wiggle” to a curve. Indeed, two curves as isotopic if they bound a disk. The proof relies on the “Alexander trick” on a disk, which can be generalized to prove isotopies of hyperbolic surfaces. (More in <em>A Primer of Mapping Class Groups</em> section 2.2.)</p>
</blockquote>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/iso.jpeg" /></figure>
<blockquote>
<p>A non-example of a homeomorphism homotopic to the identity is a <a href="https://en.wikipedia.org/wiki/Dehn_twist">Dehn twist</a>, which consists of cutting, rotating and gluing back.</p>
</blockquote>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/non-iso.jpeg" /></figure>
<blockquote>
<p>The markings of green and pink tori differ because the pink marking has a Dehn twist. (Scroll up!)</p>
</blockquote>
<p>Schwartz’s <a href="https://www.math.brown.edu/~res/Papers/surfacebook.pdf">Mostly Surfaces</a> Chapter 20 offers good coverage of this point of view.</p>
<h3 id="group-theoretic-connection">Group theoretic connection</h3>
<p>We may consider different <em>choices</em> of <em>curves</em> representing the generators of the fundamental group as different markings of the torus.<label for="note" class="margin-toggle sidenote-number"></label><input type="checkbox" id="note" class="margin-toggle" /><span class="sidenote"><strong>Note:</strong> emphasis on choice of curves, not the generators themselves. </span></p>
<blockquote>
<p>Let <script type="math/tex">(X_1, \lambda_1, \lambda_2)</script> be the green torus with green distinguished curves and <script type="math/tex">(X_2, \Lambda_1, \Lambda_2)</script> the pink one with pink curves. Then <script type="math/tex">\pi_1(X_1) = \pi_1(X_2) = \langle a, b \mid ab = ba \rangle</script>. For the green torus, we have picked <script type="math/tex">\lambda_1 = a, \lambda_2 = b</script> (the distinguished curves are the standard elements of the fundamental group as we expect). For the pink torus, we pick the pink curves to represent<script type="math/tex">\Lambda_1 = ba = a + b</script>, <script type="math/tex">\Lambda_2 = b</script>.</p>
</blockquote>
<p>If we go back to thinking of the marked tori as parallelograms in <script type="math/tex">\mathbb{R}^2</script> and then are markings as different choices of bases of <script type="math/tex">\mathbb{R}^2</script> which we identify with arrows.</p>
<h3 id="interesting-combinational-fact">Interesting combinational fact</h3>
<p>Let <script type="math/tex">X</script> be the torus identified with the distinguished curves <script type="math/tex">\alpha, \beta</script> of rational slope <script type="math/tex">p/q, r/s</script>. In general, slopes need not be rational as the Teichmüller space admits irrational coordinates. But let’s stick to rational slopes for the sake of the interesting result that will follow.</p>
<p>We may re-shape the torus such that the distinguished curves lie at the center of the square-looking torus.</p>
<figure><figcaption>In this example, $$\text{slope}(\alpha) = 2/1, \text{slope}(\beta) = 2/1$$.</figcaption><img src="/assets/img/2017/hyperbolic/combinatorial-1.jpeg" /></figure>
<p>Then, we may lift torus to its universal cover <script type="math/tex">\mathbb{R}^2</script> along with the distinguished curves, such that a unit square is a copy of the square torus, and the distinguished curves become segments from <script type="math/tex">(0,0)</script> to <script type="math/tex">(q,p)</script> and <script type="math/tex">(r,s)</script> respectively.</p>
<figure><figcaption>In this example, $$(q,p) = (1,2), (r,s) = (2, 1).$$</figcaption><img src="/assets/img/2017/hyperbolic/combinatorial-2.jpeg" /></figure>
<p>We are interested in knowing how many lattice points there are on the on the curves <script type="math/tex">\alpha, \beta</script>, as these correspond to the number of intersection points <script type="math/tex">i(\alpha, \beta)</script>. The interior lattice points biject to the intersection points via redrawing the distinguished slopes (see below)</p>
<blockquote>
<p>In our example, the number of intersection point is clearly <script type="math/tex">3</script> by inspection.</p>
</blockquote>
<figure><figcaption>Added green dots illustrate the bijection. Note: The bijection took me a while to get. </figcaption><img src="/assets/img/2017/hyperbolic/combinatorial-3.jpeg" /></figure>
<p>Using <a href="https://en.wikipedia.org/wiki/Pick%27s_theorem">Pick’s theorem</a>, the area of a parellogram is given by <script type="math/tex">A = j + \frac{b}{2} - 1</script> where <script type="math/tex">j</script> is the number of interior points and <script type="math/tex">b</script> is the number of points on the boundary. Some interior points, will biject (from our previous correspondance) to points on the boundary. Since we don’t want to double count for degenerate cases, we say that there are <script type="math/tex">4</script> points on the boundary which are the <script type="math/tex">4</script> corners of the parallelogram – the rest will be counted by <script type="math/tex">j</script>.</p>
<figure><figcaption>Example of double counting of points on the boundary. The lift of $$\beta$$ has a lattice point on its at (1,0), which is already counted by the green interior point.</figcaption><img src="/assets/img/2017/hyperbolic/combinatorial-4.jpeg" /></figure>
<p>Thus, the number of intersection points in the interior of the lattice is given by</p>
<div class="mathblock"><script type="math/tex; mode=display">
\begin{align*}
& j = A - \frac{b}{2} + 1 \\
& j = \det(P) - \frac{4}{2} + 1 \\
& j = \left|rq - ps\right| - 1
\end{align*}
</script></div>
<p>Now, <script type="math/tex">j + 1 = i(\alpha, \beta)</script>, since the number of intersections is one plus the number of interior points by the argument above. Thus</p>
<div class="mathblock"><script type="math/tex; mode=display">
i(\alpha, \beta) = \left| rq-ps \right|
</script></div>
<p>This number is also known as the <em>algebraic intersection</em> of the torus.<label for="algebraic" class="margin-toggle sidenote-number"></label><input type="checkbox" id="algebraic" class="margin-toggle" /><span class="sidenote">algebraic as opposed to geometric. Algebraic intersection numbers are oriented whereas geometric intersection numbers are not. </span></p>
<p><strong>Punchline</strong> A torus has intersection number <script type="math/tex">1</script> if and only if it’s determinant is <script type="math/tex">1</script>!</p>
<h2 id="mapping-class-group-of-the-torus">Mapping Class Group of the Torus</h2>
<p>The Mapping class group of the torus is <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> . It is well-known that <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> are generated by the elements<label for="well-known" class="margin-toggle sidenote-number"></label><input type="checkbox" id="well-known" class="margin-toggle" /><span class="sidenote">Not that <em>I</em> knew lol. Prof. Rafi subsequently remarked that the operations which do not change the determinant are adding one row with one another, and switching two rows, which is exactly what these two matrices represent. <em>Now we know :)!</em> </span></p>
<div class="mathblock"><script type="math/tex; mode=display">
A =
\begin{pmatrix}
1 & 1 \\ 0 & 1
\end{pmatrix},
\quad
B =
\begin{pmatrix}
0 & 1 \\ -1 & 0
\end{pmatrix}.
</script></div>
<p>This is the change of basis group for <script type="math/tex">\mathbb{Z}^2</script> that we have hinted at at the beginning. It has a natural action on the Teichmüller space, as we will see in the next section.</p>
<p>For now, we are going to offer a few interpretations of the action of the mapping class group as relating to the torus itself.</p>
<blockquote>
<p><strong>Note: Computing the mapping class group.</strong> Roughly speaking, the mapping class group can be computed using a variant of the Alexander method on the annulus. We are not going to do this here. Farb and Margalit do this in <em>Primer to Mapping Class Groups</em> section 2.2. There will be more references on this at the end.</p>
</blockquote>
<h3 id="group-theoretic">Group Theoretic</h3>
<p>Each element of the mapping class group takes the standard basis to a to unique basis of <script type="math/tex">\mathbb{Z}^2</script>. Equivalently, the mapping class group acts faithfully on the isomorphism maps between <script type="math/tex">\pi_1(S) \to \pi_1(X)</script>.</p>
<h3 id="topological">Topological</h3>
<p>The action of the map is given by natural the composition of the homeomorphism <script type="math/tex">h</script> on the homeomorphisms given by the markings.</p>
<p><script type="math/tex">A</script> corresponds to making a Dehn twist on the second generator,</p>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/topogen1.jpeg" /></figure>
<p>whereas the <script type="math/tex">B</script> interchanges the markings and reverses the direction of one of them.</p>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/topogen2.jpeg" /></figure>
<p>At first, these maps can seem odd and difficult to picture as homeomorphisms compared to our vanilla interpretations of homeomorphism (at least in the homotop sense which we are used to when we picture a cup changing into a donut), and made me doubt they were actual homeomorphisms<label for="homeomorphisms" class="margin-toggle sidenote-number"></label><input type="checkbox" id="homeomorphisms" class="margin-toggle" /><span class="sidenote">so continuous and bijective </span> but then we realize that’s because the mapping class group is <em>exactly</em> the homeomorphisms which are <em>not</em> isotopic to the identity!</p>
<p>Then, I remembered the <a href="/mathematics/2016/07/03/Torus-vs-Its-Embedding-in-Three-Space.html">torus vs its embedding in three-space</a>. Viewing the tori as what they actually are, which is the cross-section of two circles, the continuity and bijectivity of the maps are clearer.</p>
<figure><figcaption>This map is continuous since every small variation in its image is induced by a small variation in its domain. It is bijective since it has an inverse, which is marking an arc in the opposite direction on the second coordinate. Note that this picture is misleading since the domain is over integers, not continuous circles. Thus, there are no arcs that don't form a loop such as the purple one (that is drawn for intuition).</figcaption><img src="/assets/img/2017/hyperbolic/topogen12.jpeg" /></figure>
<figure><figcaption></figcaption><img src="/assets/img/2017/hyperbolic/topogen22.jpeg" /></figure>
<h3 id="combinatorial">Combinatorial</h3>
<p>(<em>Nice connection with Farey graph</em>)</p>
<p>Perhaps the most beautiful connection,</p>
<p><script type="math/tex">\mid rq - ps \mid = 1 \iff \frac{p}{q}, \frac{r}{s}</script> form an edge on the Farey graph. <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> acts on the graph in the following way.</p>
<div class="mathblock"><script type="math/tex; mode=display">
\begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} \begin{pmatrix} p & q \\ r & s \end{pmatrix} = \begin{pmatrix} p + r & q + s \\ r & s \end{pmatrix} \\
\begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} \begin{pmatrix} p & q \\ r & s \end{pmatrix}= \begin{pmatrix} r & s \\ -p & -q \end{pmatrix}
</script></div>
<p>which we interpret as</p>
<div class="mathblock"><script type="math/tex; mode=display">
\left(\frac{p}{q}, \frac{r}{s}\right) \to \left(\frac{p+r}{q+s}, \frac{r}{s}\right) \text{ and } \left(\frac{p}{q}, \frac{r}{s}\right) \to \left(\frac{r}{s}, \frac{-p}{-q}\right)
</script></div>
<p>respectively.</p>
<p>The first generators sends the edge <script type="math/tex">(1/0, 0/1) \mapsto (1/1, 0/1) \mapsto (1/2, 0/1) \mapsto (1/3, 0/1)</script> and so on. The second generator inverts the direction of the edge.</p>
<figure><figcaption>Picture illustrating the action of the MCG on the Farey graph. The orientation of the arrow indicates which vertex stays fixed at each step.</figcaption><img src="/assets/img/2017/hyperbolic/farey-gen1.png" /></figure>
<p>If we applied the second generator we would start with <script type="math/tex">(0/1, -1/0) \mapsto (-1/1, -1/0) \mapsto (-2/1, -1/0) \mapsto (-3/1, -1/0)</script> and so on.</p>
<figure><figcaption>Picture illustrating the action of the MCG on the Farey graph. The orientation of the arrow indicates which vertex stays fixed at each step.</figcaption><img src="/assets/img/2017/hyperbolic/farey-gen2.png" /></figure>
<p>This is beautifully illustrated on the Farey graph, where <script type="math/tex">1/0 = -1/0 = \infty</script>.</p>
<p><script type="math/tex">% <![CDATA[
\begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}^{-1} %]]></script> sends <script type="math/tex">(1/0, 0/1) \mapsto (-1/1, 0/1)</script> <script type="math/tex">\mapsto (-1/2, 0/1) \mapsto (-1/3, 0/1).</script></p>
<figure><figcaption>Picture illustrating the action of the MCG on the Farey graph. The orientation of the arrow indicates which vertex stays fixed at each step.</figcaption><img src="/assets/img/2017/hyperbolic/farey-gen3.png" /></figure>
<p>With these pictures, it is easy to see that the action of the mapping class group is transitive on the Farey graph.</p>
<blockquote>
<p><strong>Possible point of confusion:</strong> <em>Are irrational slopes not markings since they are elements of the Teichmuller space? Shouldn’t the mapping class group act transitively on those too?</em></p>
<p>I was confused about this for a while. Yes, the irrational slopes are also markings since they have representative in <script type="math/tex">\mathbb{H}</script>, which is the space of markings. They do not correspond to an element of the mapping class group in the sense there is no bijection between an element of the MCG and an irrational basis in the edges of the Farey graph like there is for rational bases (by sending <script type="math/tex">p/q</script> to the element mapping <script type="math/tex">0 \mapsto p/q</script>.)</p>
<p>Indeed, the mapping class group has a natural <em>action</em> on the Teichmüller space (say by adding a Dehn twist to a marking or inverting the markings), but its definition is first and foremost a topological definition relating to classes of orientation-preserving homeomorphisms. <em>It’s very easy to confuse the mapping class group with the group permuting the markings, but it is not.</em> The group acting transitively the markings for the torus is <script type="math/tex">\text{PSL}_2(\mathbb{R})</script>,while the mapping class group is <script type="math/tex">\text{SL}_2(\mathbb{Z})</script>, which does have a natural <script type="math/tex">\text{PSL}_2(\mathbb{Z})</script> action on the Teichmüller space, as we will see in the last section.</p>
</blockquote>
<h3 id="note-on-moduli-spaces">Note on Moduli Spaces</h3>
<p>You may be wondering what’s left of <script type="math/tex">\mathbb{H}</script>** once we mod by the action of <script type="math/tex">\text{SL}_2(\mathbb{R})</script>. That is precisely what the moduli space of the torus is.<strong>The moduli space of the torus is given by the Teichmüller space modulo the action of the mapping class group</strong>.</p>
<blockquote>
<p>The tori with basis <script type="math/tex">\{(1,0), (0,1\}</script> and <script type="math/tex">\{(1,0),(1,1)\}</script> we saw at the beginning have different <script type="math/tex">\tau</script> parameters (<script type="math/tex">i</script> and <script type="math/tex">i+1</script> respectively) and thus are distinct as points in the Teichmüller space.
However, they represent the same point in the <em>moduli space</em> of the torus because they differ by a Dehn twist.</p>
</blockquote>
<p>To come back to the previous possible point of confusion, if the MCG acted transitively on the Teichmüller, then the moduli space would be trivial. Instead, it is represented by the fundamental domain of <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> over the <script type="math/tex">\mathbb{H}</script>.</p>
<figure><figcaption>In grey: the fundamental domain representing the moduli space of the torus. In blue: planar version of the Farey graph bouding free regular sets. Read more in source: [wikipedia](https://en.wikipedia.org/wiki/Fundamental_domain).</figcaption><img src="/assets/img/2017/hyperbolic/modspacetor.png" /></figure>
<h2 id="putting-it-all-together">Putting it all together</h2>
<p>Here comes the last punchline. Recall from complex analysis that <script type="math/tex">\text{PSL}_2(\mathbb{R})</script> acts isometrically transitively on the upper-half plane <script type="math/tex">\mathbb{H}</script><label for="recall" class="margin-toggle sidenote-number"></label><input type="checkbox" id="recall" class="margin-toggle" /><span class="sidenote">If you can’t recall this, that’s totally fine - it’s a fact of complex analysis that should be available in any textbook :) </span>, which can be thought of as the Teichmüller space of the torus. An element of <script type="math/tex">\text{PSL}_2(\mathbb{R})</script> is of the form</p>
<div class="mathblock"><script type="math/tex; mode=display">
\begin{pmatrix} a & b \\ c & d \end{pmatrix}, a, b, c, d \in \mathbb{R} \qquad ac - bd = 1.
</script></div>
<p>and acts by Mobius transformation on an element <script type="math/tex">\tau \in \mathbb{H}</script></p>
<div class="mathblock"><script type="math/tex; mode=display">
\begin{pmatrix} a & b \\ c & d \end{pmatrix} \tau = \frac{a\tau + b}{c\tau + d}.
</script></div>
<p>The elements of <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> are of the same form as those of <script type="math/tex">\text{PSL}_2(\mathbb{Z})</script>, but we picked its action to be linear over the bases of <script type="math/tex">\mathbb{Z}^2</script> (change of basis action).</p>
<p><strong>Thus, there is a map from the mapping class group <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> of the torus to the Mobius transformation <script type="math/tex">\text{PSL}_2(\mathbb{R})</script> of the upper-half plane, and this group turns out to be the group of isometries in the hyperbolic plane <script type="math/tex">\mathbb{H}</script>.</strong></p>
<p>Recall the generators for <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> and <script type="math/tex">\text{PSL}_2(\mathbb{Z}) = \text{SL}_2(\mathbb{Z})/\langle \pm 1 \rangle</script><label for="pslsl" class="margin-toggle sidenote-number"></label><input type="checkbox" id="pslsl" class="margin-toggle" /><span class="sidenote">Meaning <script type="math/tex">A, -A \in \text{SL}_2(\mathbb{Z})</script> represent the same element in <script type="math/tex">\text{PSL}_2(\mathbb{Z})</script>. This is because the minus sign cancel on the top and bottom of the fraction (write it out if you do not see it)! </span>:</p>
<div class="mathblock"><script type="math/tex; mode=display">
A =
\begin{pmatrix}
1 & 1 \\ 0 & 1
\end{pmatrix},
\quad
B =
\begin{pmatrix}
0 & 1 \\ -1 & 0
\end{pmatrix}.
</script></div>
<p><script type="math/tex">A</script> sends by linear fractional transformation the point <script type="math/tex">\tau</script> on the upper half-plane to <script type="math/tex">\frac{1 \cdot \tau + 1}{0 \cdot \tau + 1} = \tau + 1</script>. <script type="math/tex">B</script> sends <script type="math/tex">\tau \mapsto \frac{0 \cdot \tau + 1}{-1\cdot \tau + 0} = - \frac{1}{\tau}</script>.</p>
<p>Take your standard basis torus generated by <script type="math/tex">\{(1,0),(0,1)\}.</script> This is identified with the point <script type="math/tex">i \in \mathbb{H}</script>.</p>
<p>Under the <script type="math/tex">\text{PSL}_2(\mathbb{Z})</script> action of <script type="math/tex">A</script>, <script type="math/tex">i</script> gets sent to <script type="math/tex">i + 1</script>, which corresponds to the torus generated by <script type="math/tex">\{(1,0),(1,1)\}</script>. But this is also exactly where the linear <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> action of <script type="math/tex">A</script> sends our standard basis!</p>
<figure><figcaption>Shortest curves in blue on the pink torus, where only one correspond with the generators of the fundamental group (the edges of the pink parallelogram)</figcaption><img src="/assets/img/2017/hyperbolic/compatible1.jpeg" /></figure>
<p>Under the <script type="math/tex">\text{PSL}_2(\mathbb{Z})</script> action of <script type="math/tex">B</script>, <script type="math/tex">i</script> gets sent to <script type="math/tex">-\frac{1}{i} = - (-i) = i</script>. This is also exactly where the linear <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> action of <script type="math/tex">A</script> sends our standard basis once we’ve rotated the image back to the upper half-plane.</p>
<figure><figcaption>Shortest curves in blue on the pink torus, where only one correspond with the generators of the fundamental group (the edges of the pink parallelogram)</figcaption><img src="/assets/img/2017/hyperbolic/compatible2.jpeg" /></figure>
<p><strong>The action of the Mobius transformation on the complex plane is compatible with the action of <script type="math/tex">\text{SL}_2(\mathbb{Z})</script> on the the lattice!</strong></p>
<p>To Prof. Rafi, there is more to this than pure coincidence. This is one of the reason why we study mapping class groups, Teichmüller spaces and hyperbolic surfaces as as a trifecta of some sort!</p>
<p><em>Ouf! We are done. Give yourself a big tap on the back :).</em></p>
<p>Hope you enjoyed this, and that everything makes much more sense when you reread the definitions!</p>
<h2 id="sources-and-resources">Sources and Resources</h2>
<blockquote>
<p><a href="http://www.math.toronto.edu/~rafi/">Kasra Rafi</a> as recalled by me. Errors are mine. Please let me know of them!</p>
</blockquote>
<blockquote>
<p><a href="https://www.math.brown.edu/~res/Papers/surfacebook.pdf">Notes by Evan Schwarz</a> Chapter 20.</p>
</blockquote>
<blockquote>
<p><a href="http://www.maths.ed.ac.uk/~aar/papers/farbmarg.pdf">A Primer on Mapping Class Groups</a> by Farb and Margalit, sections 10.2 and 10.3; 2.2 for the Alexander method and the computation of the mapping class group of the torus. Here are <a href="https://www.dropbox.com/s/8etcwhwblqi1fwn/Alexander%20trick.pdf?dl=0">illustrated textbook pages</a> on that section (illustrations mine).</p>
</blockquote>
<h2 id="acknowledgements">Acknowledgements</h2>
<blockquote>
<p>Thanks to <a href="http://www.math.toronto.edu/~rafi/">Kasra Rafi</a> for his time and patience teaching this and for agreeing to proofread this!</p>
</blockquote>
<blockquote>
<p>Thanks to Felix Bauckholt (currently an undergrad at Waterloo), for his great questions and feedback which allowed me to significantly clarify this blog post. Always a pleasure to discuss math with you!</p>
</blockquote>
<h2 id="get-in-touch">Get in touch</h2>
<blockquote>
<p>I’m looking for people to read drafts of my blog posts and have 1-1 discussions with. If you’re a motivated, supportive<label for="supp" class="margin-toggle sidenote-number"></label><input type="checkbox" id="supp" class="margin-toggle" /><span class="sidenote">Very important to me. I don’t know everything, and sometimes don’t know anything. </span> undergrad, grad student, or other qualified person who wants to read drafts of my blog posts, ask clarifying questions and give me feedback in return for some 1-1 discussion of hyperbolic geometry, <a href="mailto: homeowmorphism@gmail.com">get in touch with me</a>!</p>
</blockquote>
Sun, 08 Oct 2017 10:29:00 -0400
http://localhost:4000/mathematics/*favourites/2017/10/08/Link-Hyperbolic-Teichmuller-MCG.html
http://localhost:4000/mathematics/*favourites/2017/10/08/Link-Hyperbolic-Teichmuller-MCG.htmlMathematics*FavouritesCheck-In Day 46: Never Graduate Day<p>On this day of Never Graduate, I am literally <em>not</em> graduating from RC. As I said in a previous post, I’ll be staying for another half-batch because I like it so much here.</p>
<!--more-->
<p>I’m going to miss everyone who was here. This place is really carved by the people who are here with the expert guidance of the RC faculty. This place has taught me to value myself and others more that I could imagine. It’s taught me there’s so much fun in asking and giving help with the simple expectation it’s helping build a better community. I feel like I’ve been part of something special and unique. I’m looking forward to keeping in touch with my fellow RCers over the years, all over the world.</p>
<p><em>Unto the check-in.</em></p>
<p>These past few, I’ve been mostly hanging out with people. Specifically,</p>
<p><strong>Yesterday</strong></p>
<p><em>(What ended up happening)</em></p>
<ul>
<li>Did something professionally hard.</li>
<li>Met with Nancy for jobs.</li>
<li>Plotted about presentations.</li>
<li><a href="https://github.com/creviera">Allie Crevier</a> and I had a super fun double-pairing situation where we switched in-between her teaching me how to webscrap and us collaborating on her stars animation.</li>
<li>Got into unit test writing mode, realized that I wasn’t thinking about the tests meaningfully, started refactoring my code and took a mental note of the situation.</li>
</ul>
<p><strong>Today</strong></p>
<ul>
<li>ALMOST NOT MISSED A SINGLE DAY OF CHECK-INS MONDAY-THURSDAY!!! WHOO.</li>
<li>Gone to Feelings Check-In.</li>
<li>Had a good discussion with <a href="http://joshuahudelson.com/">Joshua Hudelson</a> about our projects. I was thinking about refactoring my code to reflect usage pattern, and sort of got unstuck on how to do that for my specific case! Feel like I’ve leveled-up into starting to think about that stuff!</li>
<li>Went to presentations.</li>
<li>Went to the picnic.</li>
<li>HUGGED EVERYONE WHO WAS LEAVING I HAD A QUALITY INTERACTION WITH. I’LL MISS YOU ALL :’)</li>
</ul>
<p>Keeping track of days so tightly has given me the power to see every day as separate, a new opportunity. I got to see my incremental progress. It’s been really nice, and occasionally feels like a super power.</p>
<p>I <em>think</em> I want to continue doing these check-ins (RC alum edition – reset the counter to zero), and see how I feel about it :).</p>
<p><strong>Update</strong> I ended up checking-in with the same frequency as last batch, but as my check-ins became more personal, I decided to restrict them to RC’s internal chat system. The alumni check-in end at Day 6.</p>
Wed, 09 Aug 2017 20:00:01 -0400
http://localhost:4000/update/rc/2017/08/09/Checkin-Day-46.html
http://localhost:4000/update/rc/2017/08/09/Checkin-Day-46.htmlUpdateRCCheck-In Day 45<p>AAAH! This is almost my last day here! Or is it?</p>
<p>I’m happy to announce I’ve extended my batch until Sept 15! RC has been a place where I’ve felt truly safe, valued, stimulated and super productive to boot. I’m really looking forward for 5 more weeks of this :).</p>
<p>Ok, onto the check-in.
<!--more--></p>
<p><strong>Today</strong></p>
<p><em>So far</em></p>
<ul>
<li>Did something for my professional life that hard this morning unrelated to coding I’ve been procrastinating on for weeks.</li>
<li>Meet with Nancy for questions about jobs.</li>
<li>Plotted about presentations.</li>
</ul>
<p><em>Next</em></p>
<ul>
<li>Learn to webscrap with Allie Crevier.</li>
<li>Finish the unit tests on Goofycoin.</li>
</ul>
<p><strong>Yesterday</strong></p>
<p><em>Came in really late, but this is what I did.</em></p>
<ul>
<li>Went to rock climbing.</li>
<li>Came back and finished refactoring my code for the raytracer project!!! Next I’d like to remove the numpy and scipy dependencies because it’s slowing down an already slow language, but I’m not giving myself too much pressure.</li>
</ul>
Tue, 08 Aug 2017 20:00:01 -0400
http://localhost:4000/rc/2017/08/08/Checkin-Day-45.html
http://localhost:4000/rc/2017/08/08/Checkin-Day-45.htmlRCCheck-In Day 44<!--more-->
<p><strong>Yesterday</strong></p>
<ul>
<li>Learned hypothesis testing for Python on my own! It’s the first time I think I’ve been effectively self-teaching (reading the documentation carefully, making sure I understand roughly how things are implemented) and I’m glad I’ve acquired enough understanding, patience, and interest in programming to do that.</li>
<li>Refactored my raytracing code – I hope for this particular Github repo to be nice and easy to understand.</li>
<li>Plotted presentations organization with Sabelo.</li>
<li>Hung out with people who are leaving soon.</li>
<li>Did an overview of linear algebra concepts with King David.</li>
</ul>
<p>I ended up stayed really, really late hanging out with people who I’ll miss a lot when this batch is over, and now I’m all tired today and haven’t started working much yet.</p>
<p>I’ll either call it an exceptional quits and go climbing, go climbing and get back, or power through the rest of this evening doing webscraping and refactoring my code. We shall see.</p>
Mon, 07 Aug 2017 20:00:01 -0400
http://localhost:4000/rc/2017/08/07/Checkin-Day-44.html
http://localhost:4000/rc/2017/08/07/Checkin-Day-44.htmlRCCheck-In Day 43<!--more-->
<p><strong>Friday</strong></p>
<ul>
<li>Got stuck on how mocking works for class methods, paired with Rudi Chen who explained to me why I need to mock the whole class before changing a method.</li>
<li>After reading documentation carefully and testing different things <em>I got the thing I wanted to happen to work!!!</em> (mocking an elliptic curve class mehod into a seeded elliptic curve class method).</li>
<li>Refactored my raytracing code with the help of Veit Heller.</li>
<li>Had a very educational conversation with Indra Gupta about how to structure packages.</li>
</ul>
<p><strong>Monday</strong></p>
<p><em>So far</em></p>
<ul>
<li>Reviewed Veit’s <a href="https://github.com/hellerve/blog/blob/master/wip/Fixed_Point_Division.md">blog post</a></li>
</ul>
<p><em>Next</em></p>
<ul>
<li>Pair with James Routley on webscraping.</li>
<li>Experiment with hypothesis testing. Dan Luu’s blog post on <a href="https://danluu.com/everything-is-broken/">why software is so buggy</a> convinced me this is very worth my time. I felt uneasy with unit testing anyway…I don’t trust myself (or humans in general) to not accidentally cherry-pick examples.</li>
</ul>
Fri, 04 Aug 2017 00:00:00 -0400
http://localhost:4000/rc/2017/08/04/Checkin-Day-43.html
http://localhost:4000/rc/2017/08/04/Checkin-Day-43.htmlRCCheck-In Day 42<!--more-->
<p>I’m so sad this batch is almost coming to an end :’(.</p>
<p><strong>Today</strong></p>
<ul>
<li>Figured out how mock testing works a bit. Special thanks to Indra Gupta for showing me the way :).</li>
<li>Audited the Raytracing workshop.a</li>
<li>Worked more on my unit testing but got stuck mocking.</li>
<li>Went to Presentations.</li>
<li>Went to Job Fair! Had a much better time at it than the last time.</li>
</ul>
Wed, 02 Aug 2017 20:00:01 -0400
http://localhost:4000/rc/2017/08/02/Checkin-Day-42.html
http://localhost:4000/rc/2017/08/02/Checkin-Day-42.htmlRCWhat A Great Way To Ask A Technical Question!<p>Browsing around to get an answer about a technical question, I stumbled unto an unusually well-structured <a href="https://web.archive.org/web/20170802213837/https://stackoverflow.com/questions/12179271/meaning-of-classmethod-and-staticmethod-for-beginner">StackOverflow question</a> by <a href="https://stackoverflow.com/users/355230/martineau">Martineau</a> which had a corresponding unusually helpful and thorough answer. This made me go <em>if only my questions were this well-posed, I would’ve gotten better quality help</em>, so allow me to share it.</p>
<!--more-->
<blockquote>
<p><strong>Meaning of @classmethod and @staticmethod for beginner?</strong></p>
</blockquote>
<blockquote>
<p>Could someone explain to me the meaning of @classmethod and @staticmethod in python? I need to know the difference and the meaning.</p>
</blockquote>
<blockquote>
<p>As far as I understand, @classmethod tells a class that it’s a method which should be inherited into subclasses, or… something. However, what’s the point of that? Why not just define the class method without adding @classmethod or @staticmethod or any @ definitions?</p>
</blockquote>
<blockquote>
<p>tl;dr: when should I use them, why should I use them, and how should I use them?</p>
</blockquote>
<blockquote>
<p>I’m pretty advanced with C++, so using more advanced programming concepts shouldn’t be a problem. Feel free giving me a corresponding C++ example if possible.</p>
</blockquote>
<p>I feel like the question is really good because it’s structure goes like this:</p>
<p><em>Ask the question directly, following by what you want to get out of the answer.</em></p>
<blockquote>
<p>Could someone explain to me the meaning of @classmethod and @staticmethod in python? I need to know the difference and the meaning.</p>
</blockquote>
<p><em>Let the help know what you understand and what is your point of confusion.</em></p>
<blockquote>
<p>As far as I understand, @classmethod tells a class that it’s a method which should be inherited into subclasses, or… something. However, what’s the point of that? Why not just define the class method without adding @classmethod or @staticmethod or any @ definitions?</p>
</blockquote>
<p><em>Summarize.</em></p>
<blockquote>
<p>tl;dr: when should I use them, why should I use them, and how should I use them?</p>
</blockquote>
<p><em>Tell people your background and your preferred analogies</em> (while subtly legitimizing yourself so that strangers on the web take your question seriously).</p>
<blockquote>
<p>I’m pretty advanced with C++, so using more advanced programming concepts shouldn’t be a problem. Feel free giving me a corresponding C++ example if possible.</p>
</blockquote>
<hr />
<p><em>when should I use them, why should I use them, and how should I use them?</em> Man that was good.</p>
Tue, 01 Aug 2017 20:00:01 -0400
http://localhost:4000/meta/rc/2017/08/01/Great-Way-To-Ask-Question.html
http://localhost:4000/meta/rc/2017/08/01/Great-Way-To-Ask-Question.htmlMetaRCCheck-In Day 40<!--more-->
<p><strong>Today</strong></p>
<p>(Yesterday I stayed up late finishing the administrative stuff, so I slept in a bit and it felt good.)</p>
<p>Today I mostly worked on completing the unit tests for my goofycoin project. (I find this somewhat tedious but I’m almost done!!) In the passing I:</p>
<ul>
<li>Paired with <a href="https://github.com/creviera">Allie Crevier</a> and learned the difference between calling str() and print() in Python! (str prints the literal string while print will display stuff like \n by skipping a line)</li>
<li>Got used to the idea of reading documentation properly and being precise with my code. Thanks <a href="https://jaseemabid.github.io/">Jaseem Abid</a> for nudging me in the right direction last Friday :).</li>
</ul>
<p><strong>(Yesterday)</strong></p>
<p>Worked on administrative stuff, whined about it, went climbing, did come back and finished administrative stuff!!!</p>
Mon, 31 Jul 2017 20:00:01 -0400
http://localhost:4000/rc/2017/07/31/Checkin-Day-40.html
http://localhost:4000/rc/2017/07/31/Checkin-Day-40.htmlRCCheck-In Day 39<!--more-->
<p><strong>Weekend</strong></p>
<p><em>It was very relaxed</em></p>
<ul>
<li>Worked on my blockchain code.</li>
<li>Did and procrastinated on administrative stuff.</li>
<li>Went to <em>Commentated Movie Night</em> and had a blast discussing The Matrix with fellow RC’ers :P.</li>
<li>Watched another movie.</li>
<li>Watched Game of Thrones (cue music).</li>
</ul>
<p><strong>Today</strong></p>
<ul>
<li>Worked exclusively on administrative stuff, which could not wait anymore to get done :(.</li>
<li>Will go to rockclimbing at 6.</li>
<li>Come back so I can either finish administrative stuff or get some programming done (!!!)</li>
</ul>
Sun, 30 Jul 2017 20:00:01 -0400
http://localhost:4000/rc/2017/07/30/Checkin-Day-39.html
http://localhost:4000/rc/2017/07/30/Checkin-Day-39.htmlRC