<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>YY Ahn</title>
  <subtitle>YY Ahn - Recent updates</subtitle>
  <link href="https://yyahn.com/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://yyahn.com/" rel="alternate" type="text/html"/>
  <id>https://yyahn.com/</id>
  <updated>2026-06-07T00:00:00Z</updated>
  
  <author>
    <name>Yong-Yeol (YY) Ahn</name>
  </author>
  
  <generator uri="https://github.com/yyahn/foliate" version="0.7.6">foliate</generator>

  
  <entry>
    <title>Muralidharan et al., &#34;Federating Governance: How Community Rules Scale with Mastodon Instances&#34; (2026)</title>
    <link href="https://yyahn.com/wiki/Paper/Muralidharan2026federating/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Paper/Muralidharan2026federating/</id>
    <published>2026-06-07T00:00:00Z</published>
    <updated>2026-06-07T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><a class="wikilink" href="/wiki/Person/Rasika-Muralidharan/" rel="nofollow">Rasika Muralidharan</a>, <a class="wikilink" href="/wiki/Person/Yong-Yeol-Ahn/" rel="nofollow">Yong-Yeol Ahn</a>, and <a class="wikilink" href="/wiki/Person/Bao-Tran-Truong/" rel="nofollow">Bao Tran Truong</a>, <em>Proceedings of the ACM on Human-Computer Interaction</em> (CSCW), accepted (2026)<br>
<a href="https://arxiv.org/abs/2606.05069" rel="nofollow">arXiv</a></p>
<div class="highlight"><pre><span></span><code>@article{muralidharan2026federating,
    author  = {Muralidharan, Rasika and Ahn, Yong-Yeol and Truong, Bao Tran},
    title   = {Federating Governance: How Community Rules Scale with Mastodon Instances},
    journal = {Proceedings of the ACM on Human-Computer Interaction},
    note    = {Accepted, CSCW 2026},
    year    = {2026},
}
</code></pre></div>

<hr>
<p><a class="wikilink" href="/wiki/Mastodon/" rel="nofollow">Mastodon</a>, <a class="wikilink" href="/wiki/Governance/" rel="nofollow">Governance</a>, <a class="wikilink" href="/wiki/Content-moderation/" rel="nofollow">Content moderation</a>, <a class="wikilink" href="/wiki/Self-governance/" rel="nofollow">Self governance</a>, <a class="wikilink" href="/wiki/Fediverse/" rel="nofollow">Fediverse</a></p>
<p>How do community rules change as a decentralized server grows? This paper categorizes the formal rules across <a class="wikilink" href="/wiki/Mastodon/" rel="nofollow">Mastodon</a> instances of varying sizes and asks what drives their evolution. Governance priorities turn out to be strikingly stable across scale—rules against harassment, hate speech, and illegal content dominate everywhere—but community size strongly predicts rule formalization: larger instances accumulate more extensive, topically diverse rules that are also less readable and less linguistically varied. <a class="wikilink" href="/wiki/Federation/" rel="nofollow">Federation</a> interactions, by contrast, play a limited role, suggesting that local scaling pressures outweigh network-level dynamics. The pattern echoes scaling effects found on centralized platforms like <a class="wikilink" href="/wiki/Moderation-in-Reddit/" rel="nofollow">Reddit</a>, hinting that community size constrains <a class="wikilink" href="/wiki/Self-governance/" rel="nofollow">Self governance</a> independently of platform architecture. It extends the rule-categorization work of <a class="wikilink" href="/wiki/Paper/Nicholson2023Mastodon/" rel="nofollow">Nicholson et al. (2023)</a> by tying rule structure to instance size and federation.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Superwhisper</title>
    <link href="https://yyahn.com/wiki/Superwhisper/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Superwhisper/</id>
    <published>2026-05-31T00:00:00Z</published>
    <updated>2026-06-01T00:49:20Z</updated>
    
    <content type="html"><![CDATA[<ul>
<li><a href="https://superwhisper.com/" rel="nofollow">https://superwhisper.com/</a></li>
</ul>
<p>Voice-to-text dictation app for macOS that can run a local, on-device <a class="wikilink" href="/wiki/Whisper/" rel="nofollow">Whisper</a> model—no audio leaves the machine. Transcribes speech directly into any text field. I use it with <a class="wikilink" href="/wiki/Claude-Code/" rel="nofollow">Claude Code</a> for voice input (see <a class="wikilink" href="/wiki/Claude-Code/How-I-Use-It/" rel="nofollow">How I Use It</a>); it replaced <a class="wikilink" href="/wiki/Wispr-Flow/" rel="nofollow">Wispr Flow</a> in my setup. The local model is incredibly fast, and on-device transcription avoids two Wispr Flow annoyances: audio being sent to a server (privacy) and slow initial activation behind a firewall. See <a class="wikilink" href="/wiki/Dictation-apps/" rel="nofollow">Dictation apps</a> for the broader comparison.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>(Kinda) Leaving Overleaf</title>
    <link href="https://yyahn.com/wiki/Leaving-Overleaf/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Leaving-Overleaf/</id>
    <published>2026-05-24T00:00:00Z</published>
    <updated>2026-05-25T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p>I plan to make a plain <a class="wikilink" href="/wiki/Git/" rel="nofollow">Git</a> project repository (e.g., from <a href="https://github.com/yy/project-template" rel="nofollow">this template</a>) the default for all new papers from my group, instead of <a class="wikilink" href="/wiki/Overleaf/" rel="nofollow">Overleaf</a>. I won&rsquo;t leave Overleaf entirely; collaborators who live in it will keep me there for some papers. But I have always reached for a git repo when I could, and now I want to make it the norm. This is less about Overleaf getting worse than about the alternative becoming far more viable.</p>
<h2 id="i-already-preferred-git">I already preferred git<a class="header-anchor" href="#i-already-preferred-git" title="Link to this section" rel="nofollow">#</a></h2>
<p>This isn&rsquo;t a conversion. I preferred a simple git repo even before Overleaf existed, mainly for the control, the explicitness, and the workflow it gives me. Overleaf was a <em>concession</em>: easy onboarding for collaborators who don&rsquo;t know git, a link I could send to anyone, nothing to install. I do see the appeal of real-time co-editing, so my position has been &ldquo;I don&rsquo;t mind using it&rdquo; when a project calls for it. But the reasons for that concession are evaporating.</p>
<h2 id="what-a-git-repo-gives-you">What a git repo gives you<a class="header-anchor" href="#what-a-git-repo-gives-you" title="Link to this section" rel="nofollow">#</a></h2>
<p>Three things, all of which predate any AI agent.</p>
<h3 id="control-cost-and-no-lock-in">Control, cost, and no lock-in<a class="header-anchor" href="#control-cost-and-no-lock-in" title="Link to this section" rel="nofollow">#</a></h3>
<p>On Overleaf your work is tethered to a service and a live connection: no Overleaf, no internet, no writing. And it does go down; when it does, an approaching deadline turns into a disaster you can do nothing about. A temporary outage is the mild version, though; the real risk is a sudden shutdown or permanent data loss on their side, and there is no easy way to bulk-export everything you keep on Overleaf. A git repo has no such single point of failure: the files live on my disk and on a remote I choose, fully usable offline, every clone is already a complete backup of the full history, and the plain text and <code>.bib</code> will still open in thirty years with or without any particular company.</p>
<p>It&rsquo;s also cheaper. The Overleaf features that matter for serious work—git sync, more collaborators, longer compiles, full version history—sit behind a per-seat subscription that adds up, and you&rsquo;re paying to be more locked in. With a repo I use any package and any tool I want.</p>
<h3 id="explicit-more-observable-history">Explicit, more observable history<a class="header-anchor" href="#explicit-more-observable-history" title="Link to this section" rel="nofollow">#</a></h3>
<p>Git&rsquo;s history is what I value most here. Every change is a readable diff, and a whole ecosystem of tooling lets you navigate and examine that history to pinpoint exactly what happened and when. Branches let you try a big reorganization without endangering the paper, and rewinding to any earlier state is trivial.</p>
<p>When everyone edits one live document at once, a change can slip by unnoticed; a git workflow makes each change explicit instead. You commit each unit of edits, or open a pull request to turn a set of them into a proposal others can review and discuss. Either way the change lands as a concrete, attributed commit you can examine with any tool. Overleaf&rsquo;s track-changes and version history are a pale imitation of git&rsquo;s <a class="wikilink" href="/wiki/Version-control/" rel="nofollow">Version control</a> ecosystem—diffing, bisecting, blame, signed history, and everything built on top of it.</p>
<h3 id="one-repo-one-workflow">One repo, one workflow<a class="header-anchor" href="#one-repo-one-workflow" title="Link to this section" rel="nofollow">#</a></h3>
<p>Using git repos, the paper and the whole research codebase behind it can live together—analysis code, data (or pointers to it), figure-generation scripts, and the manuscript in a single history. Furthermore, you can wire the whole chain into a workflow tool like <a class="wikilink" href="/wiki/Snakemake/" rel="nofollow">Snakemake</a> so figures, tables, and the PDF rebuild from source with one command. Take the most ordinary task: you spot a problem in a figure. With Overleaf the figure and the code that made it live in different places, so you fix and run the script somewhere else, regenerate the image, and then <em>re-upload it into Overleaf by hand</em>. In a project repo the figure is already an output of the build, so you just fix the code and rebuild—no upload step, and no way for the PDF to drift from the script that produced it.</p>
<p>From that one source you also produce every version you need—the arXiv build, the journal template, the response to reviewers, a beamer/MARP deck—either as branches or tags, or as explicit folders (which I prefer), with macros and <code>.bib</code> reused across papers. Overleaf nominally supports this by letting you pin a main source file, but juggling multiple <code>.tex</code> files is a hassle, and the pin glitches often enough that you frequently end up editing an outdated copy of the manuscript. A single project regularly spawns several Overleaf projects (main manuscript, extended abstract, a submission to a different journal), and they get lost in the depths of the project list. In a repo, building several documents at once is trivial, and it nudges you toward explicit, named versions instead of pinning whichever main file you happen to be working on.</p>
<p>None of that needed an AI agent; it was always the reason git beat a browser editor for me. To be honest, I can&rsquo;t always realize the full pipeline in practice; the figures still rot into stale PNGs more often than I&rsquo;d like. But even a half-wired pipeline gives me a lot of <a class="wikilink" href="/wiki/Reproducible-research/" rel="nofollow">Reproducible research</a> for free, since the code, data, and manuscript already share one versioned history. Full automation is always within reach. Edit in <a class="wikilink" href="/wiki/Neovim/" rel="nofollow">Neovim</a> with my own keybindings, snippets, and linters, compile locally with <a class="wikilink" href="/wiki/Latexmk/" rel="nofollow">Latexmk</a>, and let CI compile the PDF and run automated checks (e.g., see <a class="wikilink" href="/wiki/Claude-Scholar/" rel="nofollow">Claude Scholar</a>). More than that, the whole text-processing toolchain is available to the manuscript: <code>latexdiff</code> to show a reviewer exactly what changed, spell and grammar linters, <code>ripgrep</code> and <code>sed</code> across the entire paper, word-count and style scripts, pre-commit hooks—none of which a browser editor can provide.</p>
<h2 id="the-barriers-that-made-overleaf-worth-it">The barriers that made Overleaf worth it<a class="header-anchor" href="#the-barriers-that-made-overleaf-worth-it" title="Link to this section" rel="nofollow">#</a></h2>
<p>Overleaf does two things very well: lowering friction and facilitating collaboration. It delivers both at once—a browser, a project, live co-editing, nothing to install. Against that, local <a class="wikilink" href="/wiki/LaTeX/" rel="nofollow">LaTeX</a> plus <a class="wikilink" href="/wiki/Git/" rel="nofollow">Git</a> always carried a tax: a working TeX distribution, a remote (e.g., <a class="wikilink" href="/wiki/GitHub/" rel="nofollow">GitHub</a>), knowing how to resolve a merge, and so on. Not everyone is comfortable with git and a command-line toolchain, and for many people that tax was severe enough to justify the walled garden.</p>
<h2 id="ai-agents-drastically-lower-the-barrier">AI agents drastically lower the barrier<a class="header-anchor" href="#ai-agents-drastically-lower-the-barrier" title="Link to this section" rel="nofollow">#</a></h2>
<p>Coding agents are removing that tax. The setup, the build wiring, the occasional merge conflict—an agent fluent in git and the command line handles all of it. So I no longer think a browser-based, locked-in editor has enough of an edge to justify the cost and the drawbacks.</p>
<p>Once the paper lives in a repo, the agent can handle the unglamorous work that used to make local setup annoying: it can scaffold the project, wire up the build system (the <code>Makefile</code>, the <code>latexmk -pvc</code> monitor and compilation scripts), run all the supporting tools and presubmit checks, handle the git complexities including the occasional merge conflict, and make helpful suggestions along the way. And since an agent works on files in a repo, not inside a sealed browser tab, staying on Overleaf means forgoing that help entirely—to save the very setup the agent would have handled for you.</p>
<h2 id="some-practical-tips-for-migration">Some practical tips for migration<a class="header-anchor" href="#some-practical-tips-for-migration" title="Link to this section" rel="nofollow">#</a></h2>
<p>Suppose you&rsquo;re convinced. Git still can&rsquo;t match the thing Overleaf does best: real-time, Google-Docs-style co-editing with nothing to install for anyone. And the biggest hurdle is social rather than technical. Some collaborators won&rsquo;t adopt a command-line, AI-driven workflow, and others are simply more productive in a browser; it isn&rsquo;t reasonable to make them learn a toolchain they don&rsquo;t want just to write with you.</p>
<p>A few small tips. The most important one isn&rsquo;t about git or AI at all: <em>communicate</em>. Conflicts and stale-version problems are mostly coordination failures, not tooling failures—they happen just as easily on Overleaf. Agree on who is editing what and when, and most of the trouble never appears.</p>
<p>For git specifically, settle on a workflow (<a class="wikilink" href="/wiki/GitHub/Workflow/" rel="nofollow">here&rsquo;s mine</a>): commit and push often, keep branches short-lived, and stay aware of what others are touching. Co-authors usually take turns rather than typing over each other, and a pull request fits that rhythm; each work session is a branch, with review as line-anchored comments on the PR instead of <code>% TODO</code> notes buried in the source. One tiny habit helps too: write one sentence per line (semantic line breaks), so git&rsquo;s line-by-line diffs and merges stay clean and two people can edit the same paragraph without colliding. You can also split the manuscript into per-section files pulled in with <code>\input</code>, so collaborators working on different sections rarely touch the same file at all.</p>
<p>For the collaborator who just wants a browser, Overleaf can stay in the loop without trapping the work there. Every Overleaf project exposes a git remote (a premium feature), so at minimum you can clone the paper as a standalone, paper-only repo and sync it with ordinary pull and push. Better, keep the paper as its own GitHub repo linked to Overleaf via GitHub sync and pull it into the main research repo as a submodule: the co-author edits in the browser, you get their commits in git, and the rest of your pipeline stays put. The one catch is that Overleaf compiles only its own project, so any code-generated figure has to be committed as a built file. None of this brings back simultaneous typing, but for how papers actually get written, I think the tradeoff is worth it.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>Overleaf</title>
    <link href="https://yyahn.com/wiki/Overleaf/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/Overleaf/</id>
    <published>2026-05-24T00:00:00Z</published>
    <updated>2026-05-24T00:00:00Z</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.overleaf.com" rel="nofollow">Overleaf</a> is a web-based, collaborative <a class="wikilink" href="/wiki/LaTeX/" rel="nofollow">LaTeX</a> editor that runs entirely in the browser. It compiles on Overleaf&rsquo;s servers, so there is nothing to install, and multiple authors can edit the same document in real time. It was formed from the 2017 merger of Overleaf and ShareLaTeX and is owned by <a class="wikilink" href="/wiki/Company/Digital-Science/" rel="nofollow">Digital Science</a>. </p>
<h2 id="why-people-use-it">Why people use it<a class="header-anchor" href="#why-people-use-it" title="Link to this section" rel="nofollow">#</a></h2>
<ul>
<li>Real-time, Google-Docs-style co-editing.</li>
<li>Zero setup; a browser and a link are enough, which makes onboarding easy for collaborators who don&rsquo;t use <a class="wikilink" href="/wiki/LaTeX/" rel="nofollow">LaTeX</a> locally.</li>
<li>A large template gallery, and a rich-text mode for those who prefer not to edit source.</li>
</ul>
<h2 id="git-integration">Git integration<a class="header-anchor" href="#git-integration" title="Link to this section" rel="nofollow">#</a></h2>
<p>Overleaf can act as a <a class="wikilink" href="/wiki/Git/" rel="nofollow">Git</a> remote: every project exposes a git URL you can clone, pull, and push, and a project can be linked to a <a class="wikilink" href="/wiki/GitHub/" rel="nofollow">GitHub</a> repository via GitHub sync. Both are premium features. You cannot link an existing Overleaf project to an existing GitHub repository; you create one from the other.</p>
<h2 id="limitations">Limitations<a class="header-anchor" href="#limitations" title="Link to this section" rel="nofollow">#</a></h2>
<ul>
<li>Most features beyond basic editing—git sync, more collaborators, etc.—sit behind a per-seat subscription.</li>
<li>The files live on Overleaf&rsquo;s servers; an outage blocks all work, and there is no easy way to bulk-export everything.</li>
<li>It compiles only its own project with its own toolchain, so an external build (e.g., <a class="wikilink" href="/wiki/Snakemake/" rel="nofollow">Snakemake</a> or a <code>Makefile</code>) won&rsquo;t run there.</li>
</ul>
<p>See <a class="wikilink" href="/wiki/Leaving-Overleaf/" rel="nofollow">Leaving Overleaf</a> for why I default to a plain <a class="wikilink" href="/wiki/Git/" rel="nofollow">Git</a> repository for new papers instead.</p>]]></content>
    
  </entry>
  
  <entry>
    <title>GitHub</title>
    <link href="https://yyahn.com/wiki/GitHub/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/wiki/GitHub/</id>
    <published>2026-05-11T23:39:15Z</published>
    <updated>2026-05-11T23:39:15Z</updated>
    
    <content type="html"><![CDATA[<ul>
<li><a href="https://github.com" rel="nofollow">https://github.com</a></li>
<li><a class="wikilink" href="/wiki/Git/" rel="nofollow">Git</a></li>
<li><a class="wikilink" href="/wiki/Open-source/" rel="nofollow">Open source</a></li>
</ul>
<h2 id="workflow">Workflow<a class="header-anchor" href="#workflow" title="Link to this section" rel="nofollow">#</a></h2>
<ul>
<li><a class="wikilink" href="/wiki/GitHub/Workflow/" rel="nofollow">Workflow</a></li>
</ul>
<h2 id="tools">Tools<a class="header-anchor" href="#tools" title="Link to this section" rel="nofollow">#</a></h2>
<ul>
<li><a class="wikilink" href="/wiki/GitHub/Copilot/" rel="nofollow">Copilot</a></li>
</ul>
<h2 id="github-pages">GitHub Pages<a class="header-anchor" href="#github-pages" title="Link to this section" rel="nofollow">#</a></h2>
<ul>
<li><a href="http://jmcglone.com/guides/github-pages/" rel="nofollow">Creating and Hosting a Personal Site on GitHub</a></li>
<li><a href="https://jekyllrb.com/docs/github-pages/" rel="nofollow">jekyll: github pages</a></li>
</ul>
<h2 id="github-data">GitHub data<a class="header-anchor" href="#github-data" title="Link to this section" rel="nofollow">#</a></h2>
<ul>
<li><a href="https://worldofcode.org" rel="nofollow">https://worldofcode.org</a></li>
<li><a href="https://dl.acm.org/doi/10.1145/2597073.2597074" rel="nofollow">The Promises and Perils of Mining GitHub</a></li>
<li><a href="https://ieeexplore.ieee.org/document/6498480" rel="nofollow">Network Structure of Social Coding in GitHub</a></li>
<li><a href="https://royalsocietypublishing.org/doi/10.1098/rsos.160007" rel="nofollow">Understanding the group dynamics and success of teams</a></li>
</ul>]]></content>
    
  </entry>
  

  
  <entry>
    <title>Recently Updated Pages</title>
    <link href="https://yyahn.com/wiki/" rel="alternate" type="text/html"/>
    <id>https://yyahn.com/feed/updates/2026-06-07</id>
    <published>2026-06-07T00:00:00Z</published>
    <updated>2026-06-07T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>The following pages were recently updated:</p>
<ul>
  <li><a href="https://yyahn.com/wiki/Claude-Code/Skills/">Claude Code: Skills</a> - 2026-06-07</li>
  <li><a href="https://yyahn.com/wiki/Paper/Kim2026uncovering/">Kim et al., &quot;Uncovering simultaneous breakthroughs with a robust measure of disruptiveness&quot; (2026)</a> - 2026-06-07</li>
  <li><a href="https://yyahn.com/wiki/Wispr-Flow/">Wispr Flow</a> - 2026-06-01</li>
  <li><a href="https://yyahn.com/wiki/Claude-Code/How-I-Use-It/">Claude Code: How I Use It</a> - 2026-05-31</li>
  <li><a href="https://yyahn.com/wiki/Git/">Git</a> - 2026-05-25</li>
  <li><a href="https://yyahn.com/wiki/Bike/Winter-cycling/">Winter cycling</a> - 2026-05-23</li>
  <li><a href="https://yyahn.com/wiki/Claude-Code/Tips/">Claude Code: Tips</a> - 2026-05-23</li>
  <li><a href="https://yyahn.com/wiki/Convergent-Representations/">Convergent Representations (The Platonic Representation hypothesis)</a> - 2026-05-13</li>
  <li><a href="https://yyahn.com/wiki/Dynamite-plot/">Dynamite plot</a> - 2026-05-10</li>
  <li><a href="https://yyahn.com/wiki/Bike-parking-at-urban-grocery-stores/">Why urban grocery stores should prioritize bike parking over car parking</a> - 2026-05-10</li>
  <li><a href="https://yyahn.com/wiki/Coding-agents-with-UVA-RC-GenAI/">Coding agents with UVA RC GenAI</a> - 2026-05-10</li>
</ul>]]></content>
  </entry>
  
</feed>