Skip to content

Commit cd8160b

Browse files
committed
Deploy to GitHub Pages
0 parents  commit cd8160b

File tree

115 files changed

+24982
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+24982
-0
lines changed

about.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<html><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>About me</title><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Merriweather+Sans:400,300,300italic,400italic,700,700italic,800,800italic|Merriweather:400,300,300italic,400italic,700,700italic,900,900italic|Fira+Code:300,400,500,600,700"/><link rel="stylesheet" type="text/css" href="/css/application.min.css"/><link rel="stylesheet" type="text/css" href="/css/pygments.min.css"/><link rel="alternate" type="application/atom+xml" title="Atom Feed" href="/feeds/all.atom.xml"/><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="/feeds/all.rss.xml"/><script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-65250372-1"></script><script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);};gtag('js', new Date());gtag('config', 'UA-65250372-1');</script><body><header><nav role="navigation" class="navigation-bar"><ul class="navigation-items left"><li class="blog-title-header"><a href="/">Alexis King</a></li></ul><ul class="navigation-items center"></ul><ul class="navigation-items right"><li><a href="/">Home</a></li><li><a href="/about.html">About Me</a></li></ul></nav></header><section role="main"><div class="content"><article class="main"><h1><a name="about-me"></a>About me</h1><p>My name is Alexis King, and I write <a href="https://github.com/lexi-lambda?tab=repositories">a lot of software</a>. I currently live in Chicago.</p><p>I’m interested in functional programming, static types, and programming language research, and I try to spend as much time as I can writing Haskell and Racket. I write about some of the things I do <a href="/">on this blog</a>, and I sometimes tweet about them and other things <a href="https://twitter.com/lexi_lambda">on Twitter</a>. I work on a <em>lot</em> of open-source projects <a href="https://github.com/lexi-lambda">on GitHub</a>, and you can email me at <a href="mailto:lexi.lambda@gmail.com">lexi.lambda@gmail.com</a>.</p><h2><a name="things-i-ve-worked-on"></a>Things I’ve worked on</h2><p>This list is just a smattering of the cooler things I’ve worked on over the past few years. It is neither exhaustive nor particularly scientific in its curation.</p><p class="about-me-year-events"><span class="about-me-year-label">2021</span> <span class="about-me-year-separator"></span>
2+
<span class="about-me-year-entry">Reimplemented <a href="https://github.com/lexi-lambda/lexi-lambda.github.io">this blog</a> on top of <a href="https://download.racket-lang.org/releases/8.1/doc/local-redirect/index.html?tag=%28part._%28.%27%28lib._scribblings%2Fscribble%2Fscribble..scrbl%29.%27._.%27top.%27%29%29">Scribble</a>, replacing <a href="https://github.com/greghendershott/frog">frog</a>.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Released <a href="https://github.com/lexi-lambda/megaparsack">megaparsack</a> v1.5, adding support for user-defined parser state and parser lookahead.</span></p><p class="about-me-year-events"><span class="about-me-year-label">2020</span> <span class="about-me-year-separator"></span>
3+
<span class="about-me-year-entry">Published <a href="https://dl.acm.org/doi/abs/10.1145/3428297">“Macros for DSLs”</a> with Michael Ballantyne and Matthias Felleisen at OOPSLA.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Presented <a href="https://www.youtube.com/watch?v=0jI-AlWEwYI">“Effects for Less”</a> at ZuriHac 2020 on the design of <a href="https://github.com/hasura/eff">eff</a> and its accompanying <a href="https://github.com/ghc-proposals/ghc-proposals/pull/313">GHC proposal</a> to add delimited continuations to the RTS.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Led a large-scale refactoring effort to statically rule out several classes of bugs in <a href="https://github.com/hasura/graphql-engine">graphql-engine</a>.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Opened <a href="https://github.com/ghc-proposals/ghc-proposals/pull/303">a GHC proposal</a> for improving arrow notation.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Started contributing to GHC, including some <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3041">performance fixes</a> and <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3115">improvements to arrow notation</a>.</span></p><p class="about-me-year-events"><span class="about-me-year-label">2019</span> <span class="about-me-year-separator"></span>
4+
<span class="about-me-year-entry">Published <a href="https://dl.acm.org/doi/abs/10.1145/3371133">“Does blame shifting work?”</a> with Lukas Lazarek, Samanvitha Sundar, Robby Findler, and Christos Dimoulas at POPL.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Released <a href="https://hackage.haskell.org/package/monad-validate">monad-validate</a> based on work done for Hasura.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Started working at <a href="https://hasura.io/">Hasura</a>.</span></p><p class="about-me-year-events"><span class="about-me-year-label">2018</span> <span class="about-me-year-separator"></span>
5+
<span class="about-me-year-entry">Presented <a href="https://www.youtube.com/watch?v=g6UCeHiKodo">“Hackett: a metaprogrammable Haskell”</a> at Curry On, and again a few months later <a href="https://www.youtube.com/watch?v=5QQdI3P7MdY">at Strange Loop</a>.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Started working on contract systems with Christos Dimoulas at Northwestern University.</span></p><p class="about-me-year-events"><span class="about-me-year-label">2017</span> <span class="about-me-year-separator"></span>
6+
<span class="about-me-year-entry">Released the <a href="https://hackage.haskell.org/package/freer-simple">freer-simple</a> package.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Presented <a href="https://www.youtube.com/watch?v=bOUgXd9XlJ4">“Hackett, a Haskell for Racketeers”</a> at RacketCon.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Started working on <a href="https://github.com/lexi-lambda/hackett">Hackett</a>, a Haskell-like language embedded in Racket.</span></p><p class="about-me-year-events"><span class="about-me-year-label">2016</span> <span class="about-me-year-separator"></span>
7+
<span class="about-me-year-entry">Started learning about type systems to explore ideas inspired by <a href="https://download.racket-lang.org/releases/8.1/doc/local-redirect/index.html?tag=%28part._%28.%27%28lib._turnstile%2Fscribblings%2Fturnstile..scrbl%29.%27._.%27top.%27%29%29">Turnstile</a>.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Presented <a href="https://www.youtube.com/watch?v=TfehOLha-18">“Languages in an Afternoon”</a> at RacketCon.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Released the <a href="https://github.com/lexi-lambda/megaparsack">megaparsack</a> and <a href="https://github.com/lexi-lambda/scripty">scripty</a> Racket libraries.</span> <span class="about-me-year-separator"></span> <span class="about-me-year-entry">Started writing Haskell professionally for the first time.</span></p><h2><a name="about-this-blog"></a>About this blog</h2><p>This blog is powered by <a href="https://download.racket-lang.org/releases/8.1/doc/local-redirect/index.html?tag=%28part._%28.%27%28lib._scribblings%2Fscribble%2Fscribble..scrbl%29.%27._.%27top.%27%29%29">Scribble</a>, an unusually flexible document preparation system written in <a href="https://racket-lang.org/">Racket</a>. Unlike most markup languages, every Scribble document is a <em>program</em> that evaluates to a document, which can then be rendered using one of a number of different backends. Scribble provides a TeX-like notation for writing such programs, but unlike TeX—which is essentially an overgrown macro preprocessor—Scribble is a full-fledged functional programming language. In fact, the Scribble syntax is really just an alternate notation for Racket itself, so all the libraries and abstractions available in Racket can be used more or less directly in a Scribble document.</p><p>This makes Scribble a remarkably powerful tool for writing prose documents, and indeed, it serves as the foundation for Racket’s <a href="https://docs.racket-lang.org/">best-in-class documentation system</a>, among other things. Using it to power a blog is perhaps a bit overkill, but it gives me the wonderful ability to define whatever abstractions I desire to make blogging as effortless as possible. For example, after finding myself linking to Hackage packages quite frequently, I decided to define a one-line function:</p><pre><code class="pygments"><span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="p">(</span><span class="n">hackage-package</span><span class="w"> </span><span class="n">package-name</span><span class="p">)</span>
8+
<span class="w"> </span><span class="p">(</span><span class="n">hyperlink</span><span class="w"> </span><span class="p">(</span><span class="nb">string-append</span><span class="w"> </span><span class="s2">"https://hackage.haskell.org/package/"</span><span class="w"> </span><span class="n">package-name</span><span class="p">)</span><span class="w"> </span><span class="n">package-name</span><span class="p">))</span></code></pre><p>Now all I have to do is write <code>@hackage-package{lens}</code> and I get <a href="https://hackage.haskell.org/package/lens">lens</a>. Sure, it’s not exactly mind-blowing, but it’s certainly convenient… and of course, the most significant advantages involve abstractions too elaborate to describe here.</p><p>This site is, naturally, open source, so if you’d like to see how all the pieces fit together for yourself, feel free to clone <a href="https://github.com/lexi-lambda/lexi-lambda.github.io">the GitHub repository</a>. And if you’re interested in a simple example of what Scribble looks like to use, you might as well take a peek at <a href="https://github.com/lexi-lambda/lexi-lambda.github.io/blob/source/blog/posts/about-me.scrbl">the source code for this page in particular</a>.</p></article></div></section><footer><div class="copyright-notice">© 2025, Alexis King</div><div>Built with <a href="https://docs.racket-lang.org/scribble/index.html"><strong>Scribble</strong></a>, the Racket document preparation system.</div><div>Feeds are available via <a href="/feeds/all.atom.xml">Atom</a> or <a href="/feeds/all.rss.xml">RSS</a>.</div></footer></body></head></html>

0 commit comments

Comments
 (0)