244 lines
11 KiB
Plaintext
244 lines
11 KiB
Plaintext
|
<div class="flex flex-col gap-12">
|
|||
|
<div>
|
|||
|
<h1>Hosted</h1>
|
|||
|
<p class="pt-4 pb-8">
|
|||
|
The applications listed below are served from
|
|||
|
<.link_blank href="https://nixos.org/">NixOS</.link_blank>
|
|||
|
machines hosted on
|
|||
|
<.link_blank href="https://www.digitalocean.com/">Digital Ocean</.link_blank>.
|
|||
|
Configuration files for each of my machines can be found
|
|||
|
<.link_blank href="https://git.jrpotter.com/r/nixos-configuration">here</.link_blank>.
|
|||
|
If interested in starting a similar hosting solution, consider getting a
|
|||
|
$200 credit using my
|
|||
|
<.link_blank href="https://m.do.co/c/c65b89434c1b">referral link</.link_blank>.
|
|||
|
</p>
|
|||
|
|
|||
|
<div class="pl-4 grid grid-cols-1 lg:grid-cols-2 gap-8">
|
|||
|
<.project title="Hide and Seek" href="https://hideandseek.live" date="12 Apr 2024">
|
|||
|
Realtime hide-and-seek application for the town of Fort Collins, built
|
|||
|
using
|
|||
|
<.link_blank href="https://www.phoenixframework.org/">Phoenix</.link_blank>
|
|||
|
and
|
|||
|
<.link_blank href="https://react.dev/">React</.link_blank>.
|
|||
|
Group up with friends, designate a hider, and allow the rest of the
|
|||
|
group to find the hider in a city-wide search. Use various clues to
|
|||
|
narrow down the search space at the cost of potentially giving the
|
|||
|
hider means of thwarting the search.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Notebook" href="https://notebook.jrpotter.com" date="30 Jan 2024">
|
|||
|
A static site generated with
|
|||
|
<.link_blank href="https://quartz.jzhao.xyz/">Quartz</.link_blank>.
|
|||
|
Contains a collection of my transcribed notes, primarily Markdown
|
|||
|
managed using
|
|||
|
<.link_blank href="https://obsidian.md/">Obsidian</.link_blank>.
|
|||
|
Hidden within are a collection of
|
|||
|
<.link_blank href="https://apps.ankiweb.net/">Anki</.link_blank>
|
|||
|
flashcards synced using
|
|||
|
<.link_blank href="https://github.com/ObsidianToAnki/Obsidian_to_Anki">
|
|||
|
Obsidian_to_Anki
|
|||
|
</.link_blank>.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Forgejo" href="https://git.jrpotter.com" date="23 Dec 2023">
|
|||
|
A self-hosted
|
|||
|
<.link_blank href="https://forgejo.org/">Forgejo</.link_blank>
|
|||
|
instance. For the most part, my
|
|||
|
<.link_blank href="https://github.com">GitHub</.link_blank>
|
|||
|
repositories are a mirror of those found here. There do exist a few
|
|||
|
repos though that live exclusively on either site.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="BoardWise" href="https://boardwise.gg" date="26 Nov 2023">
|
|||
|
A
|
|||
|
<.link_blank href="https://www.phoenixframework.org/">Phoenix</.link_blank>- and
|
|||
|
<.link_blank href="https://react.dev/">React</.link_blank>-based project
|
|||
|
that provides an interface for finding chess coaches. This serves as an
|
|||
|
alternative to those found on
|
|||
|
<.link_blank href="https://lichess.org/coach">Lichess</.link_blank>
|
|||
|
and
|
|||
|
<.link_blank href="https://www.chess.com/coaches">Chess.com</.link_blank>.
|
|||
|
Based on the
|
|||
|
<.link_blank href="https://tailwindui.com/templates/studio">Tailwind Studio</.link_blank>
|
|||
|
theme.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Bookshelf" href="https://bookshelf.jrpotter.com" date="05 Feb 2023">
|
|||
|
A collection of books I am actively studying. Usually mathematics or
|
|||
|
computer-science based, I aim to prove concepts as I encounter them
|
|||
|
using the
|
|||
|
<.link_blank href="https://lean-lang.org/">Lean</.link_blank>
|
|||
|
interactive theorem prover. All proofs are also available in
|
|||
|
<.link_blank href="https://www.latex-project.org/">LaTeX</.link_blank>.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Looped" href="" date="04 Apr 2021">
|
|||
|
VP of engineering at Looped, the "Ultimate Virtual Venue". Featured on
|
|||
|
<.link_blank href="https://www.forbes.com/sites/ericfuller/2021/01/06/loopedthe-app-helping-fans-mingle-and-meet-artists-personally-during-live-streamed-events">
|
|||
|
Forbes
|
|||
|
</.link_blank>
|
|||
|
and
|
|||
|
<.link_blank href="https://techcrunch.com/2021/03/02/looped-raises-7-7m-to-expand-its-interactive-live-event-platform">
|
|||
|
TechCrunch
|
|||
|
</.link_blank>.
|
|||
|
Led development on the Kotlin-based
|
|||
|
<.link_blank href="https://play.google.com/store/apps/details?id=com.vipvr.android">
|
|||
|
Android app
|
|||
|
</.link_blank>
|
|||
|
(50K+ downloads, 4.5 star review), the Swift-based iOS app (100K+
|
|||
|
downloads, 4.8 star review), the Vue-based web app, and the
|
|||
|
Django-based backend.
|
|||
|
</.project>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div>
|
|||
|
<h1>Projects</h1>
|
|||
|
<p class="pt-4 pb-8">
|
|||
|
Other notable projects I've worked on or am currently working on.
|
|||
|
</p>
|
|||
|
<div class="pl-4 grid grid-cols-1 lg:grid-cols-2 gap-8">
|
|||
|
<.project
|
|||
|
title="Bookshelf Doc Generator"
|
|||
|
href="https://git.jrpotter.com/r/bookshelf-doc"
|
|||
|
date="14 Dec 2023"
|
|||
|
>
|
|||
|
A fork of
|
|||
|
<.link_blank href="https://github.com/leanprover/doc-gen4">doc-gen4</.link_blank>
|
|||
|
tightly coupled to my
|
|||
|
<.link_blank href="https://git.jrpotter.com/r/bookshelf">bookshelf</.link_blank>
|
|||
|
project. This augments the <code>:docs</code> facet to convert LaTeX
|
|||
|
files into PDFs and then list them in the generated navbar.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project
|
|||
|
title="NixOS Configuration"
|
|||
|
href="https://git.jrpotter.com/r/nixos-configuration"
|
|||
|
date="10 Dec 2023"
|
|||
|
>
|
|||
|
The
|
|||
|
<.link_blank href="https://nixos.org">nix</.link_blank>
|
|||
|
configuration files used to declaratively describe my local and remote
|
|||
|
machines. The site you are on now is declared within this project!
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Bootstrap" href="https://git.jrpotter.com/r/bootstrap" date="17 Nov 2023">
|
|||
|
A C-based CLI for initializing projects in a flexible but deterministic
|
|||
|
way. Originally motivated to serve as a better alternative to
|
|||
|
<.link_blank href="https://github.com/NixOS/templates">Nix flake templates</.link_blank>,
|
|||
|
<code>bootstrap</code> allows you to provide different parameters to
|
|||
|
custom initialization scripts akin to <code>npm init</code>,
|
|||
|
<code>django-admin startproject</code>, etc.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project
|
|||
|
title="Anki Synonyms"
|
|||
|
href="https://git.jrpotter.com/r/anki-synonyms"
|
|||
|
date="02 Jul 2022"
|
|||
|
>
|
|||
|
An
|
|||
|
<.link_blank href="https://apps.ankiweb.net/">Anki</.link_blank>
|
|||
|
plugin for specifying synonyms within flashcard question and answer
|
|||
|
prompts.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Homesync" href="https://git.jrpotter.com/r/homesync" date="28 Dec 2021">
|
|||
|
An experimental Rust-based project for automatically syncing files
|
|||
|
across your desktop to a git repository. Allows upstream and downstream
|
|||
|
syncing with a single command, without any need to copy files manually
|
|||
|
to and from a git repository. Separately, a daemon can be spawned that
|
|||
|
watches files for changes and pushes/pulls them as they happen.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Postlude" href="https://git.jrpotter.com/r/postlude" date="29 Mar 2020">
|
|||
|
An example of a custom-rolled
|
|||
|
<.link_blank href="https://hackage.haskell.org/package/base-4.19.0.0/docs/Prelude.html">
|
|||
|
Prelude
|
|||
|
</.link_blank>.
|
|||
|
Serves as a fairly comprehensive list of imports I found relevant
|
|||
|
across the various Haskell projects I worked on as well as a
|
|||
|
demonstration on how forwarding imports with Haskell works.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Vim Join" href="https://git.jrpotter.com/r/vim-join" date="25 Jul 2017">
|
|||
|
A small Vim plugin that joins a number of lines together and then
|
|||
|
breaks them again with respect to the <code>textwidth</code> parameter.
|
|||
|
This enables re-flowing a set of lines similar in manner to
|
|||
|
<code>fold</code> or <code>fmt</code>.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project
|
|||
|
title="Vim Highlight"
|
|||
|
href="https://git.jrpotter.com/r/vim-highlight"
|
|||
|
date="25 Jul 2017"
|
|||
|
>
|
|||
|
A small Vim plugin that maintains a custom registry for manipulating
|
|||
|
highlights. This registry allows highlighting different keywords
|
|||
|
without overriding previous searches. Includes a small snippet for
|
|||
|
including the active highlight from within the statusline.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Pong" href="https://git.jrpotter.com/r/pong" date="01 Oct 2015">
|
|||
|
An implementation of the classic pong video game, written from scratch
|
|||
|
on an Artix FPGA using System Verilog. This works on a custom ALU
|
|||
|
intended to process an arbitrary MIPS program with modified memory
|
|||
|
configuration: <code>.text 0x0000</code> and <code>.data 0x2000</code>.
|
|||
|
A memory mapped IO scheme is used to draw to the monitor and interact
|
|||
|
with the keyboard.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Fifth" href="https://git.jrpotter.com/r/fifth" date="20 Jun 2015">
|
|||
|
A library for parsing various rulesets for cellular automata machines
|
|||
|
(CAMs). The parsed CAM is displayed using
|
|||
|
<.link_blank href="https://matplotlib.org">matplotlib</.link_blank>.
|
|||
|
For instance, this library parses ruleset <code>B3/S23</code> and then
|
|||
|
produces a running visualization of Conway's Game of Life.
|
|||
|
</.project>
|
|||
|
|
|||
|
<.project title="Mini Java" href="https://git.jrpotter.com/r/mini-java" date="24 Mar 2015">
|
|||
|
A Java implemention of a subset of Java. Generates code that targets
|
|||
|
mJAM, an abstract machine included in the source that supports running
|
|||
|
<code>miniJava</code>. In particular, this implementation supports
|
|||
|
various primitives, array types, and, to a certain degree, classes.
|
|||
|
</.project>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div>
|
|||
|
<h1>Blog</h1>
|
|||
|
<p class="pt-4 pb-8">
|
|||
|
Long-form writing on topics that I found interesting.
|
|||
|
</p>
|
|||
|
|
|||
|
<div class="pl-4 grid grid-cols-1 gap-8">
|
|||
|
<.blog title="Effect Systems" href={~p"/blog/effect-systems"} date="20 Mar 2022">
|
|||
|
As I’ve begun exploring the world of so-called <strong>algebraic effect systems</strong>,
|
|||
|
I’ve become increasingly frustrated in the level of documentation around
|
|||
|
them. Learning to use them (and moreso understanding how they work)
|
|||
|
requires diving into library internals, watching various videos, and
|
|||
|
hoping to grok why certain effects aren’t being interpreted the way you
|
|||
|
might have hoped. My goal in this post is to address this issue, at least
|
|||
|
to some degree, in a focused, pedagogical fashion.
|
|||
|
</.blog>
|
|||
|
|
|||
|
<.blog
|
|||
|
title="Tagless Final Parsing"
|
|||
|
href={~p"/blog/tagless-final-parsing"}
|
|||
|
date="25 Dec 2021"
|
|||
|
>
|
|||
|
In his
|
|||
|
<.link_blank href="/files/tagless-final-parsing/kiselyov-interpreters.pdf">
|
|||
|
introductory text
|
|||
|
</.link_blank>,
|
|||
|
Oleg Kiselyov discusses the tagless final strategy for implementing
|
|||
|
DSLs. The approach permits leveraging the strong typing provided by
|
|||
|
some host language in a performant way. This post combines key thoughts
|
|||
|
from a selection of papers and code written on the topic. We conclude
|
|||
|
with an implementation of an interpreter for a toy language that runs
|
|||
|
quickly, remains strongly-typed, and can be extended without
|
|||
|
modification.
|
|||
|
</.blog>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|