
\documentclass[12pt]{article}
\usepackage[T2A,OT1]{fontenc}
\usepackage[default]{cantarell}
\usepackage[a4paper, top=20mm, bottom=20mm, left=20mm, right=20mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[russian, english]{babel}
\usepackage{tabu}
\usepackage{hyperref}
\usepackage{parskip}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}
\usepackage{setspace}
\onehalfspacing
\author{Artyom Bologov}
\date{\today}
\title{Artyom Bologov's Projects}
\makeatletter
\def\endenv{\expandafter\end\expandafter{\@currenvir}}
\makeatother
\begin{document}
\maketitle

Given my restless/bipolar nature,
I'm starting lots of projects—all
just to abandon them half a week after.
Still, some of them are/were quite fun:

\section*{Brainfuck Enterprise Solutions} \label{bes}

BES is the company I'm a proud CEO of. Its products (all written in Brainfuck) include:

\begin{description}\item[\href{https://github.com/bf-enterprise-solutions/os.bf}{OS.bf}]
a minimalist OS with a shell, file system, and a script engine.
\item[\href{https://github.com/bf-enterprise-solutions/ed.bf}{ed.bf}]
somewhat opinionated UNIX ed reimplementation.
\item[\href{https://github.com/bf-enterprise-solutions/meta.bf}{meta.bf}]
Turing-complete Brainfuck meta-interpreter.
\item[\href{https://github.com/bf-enterprise-solutions/str.bf}{str.bf}]
a solid fully embeddable string manipulation library.
\item[\href{https://github.com/bf-enterprise-solutions/bf.doc}{bf.doc}]
guidelines for clear and readable Brainfuck documentation.
\item[\href{https://github.com/bf-enterprise-solutions/bf.style}{bf.style}]
style guidelines for medium-to-huge BF codebases.
\item[\href{https://github.com/aartaka/sade}{Sade}]
optimizing compiler from Brainfuck to Lisp, just for the purpose of bootstrapping BF Enterprise Solutions' products.
\item[\href{https://github.com/aartaka/reb}{Reb}]
another shot at Brainfuck implementation, this time interpreted/transpiled to C and heavily regex-based.
\end{description}

\section*{Atlas Engineer \& Nyxt Work} \label{atlas-nyxt}

Projects made as part of Nyxt browser work and abstracted from its code.

\begin{description}\item[\href{https://github.com/atlas-engineer/history-tree}{History Tree]}
 my Bachelor of Arts thesis idea of a browser-global history tree.
\item[\href{https://github.com/atlas-engineer/njson}{NJSON]}
 convenience library (not a parser!) for JSON indexing, validation, and discovery.
\item[\href{https://github.com/atlas-engineer/nsymbols}{Nsymbols]}
 symbol listing and binding inspection library.
\item[\href{https://github.com/atlas-engineer/ndebug}{Ndebug]}
 custom (GUI too) debugger toolkit for CL.
\item[\href{https://github.com/atlas-engineer/nyxt}{And Nyxt itself!]}
 Lots of things: WebKitGTK interfacing, graphical object inspection, UI framework building.
 Like, \href{https://github.com/atlas-engineer/nyxt/pulls?q=is%3Apr+author%3Aaartaka}{REALLY LOTS OF THINGS}.
\end{description}

\section*{Lisp Libraries and Projects} \label{lisp-libs}

Several Common Lisp projects and libraries around them. Projects:

\begin{description}\item[\href{https://github.com/aartaka/graven-image}{Graven Image]}
 Portability library for better CLI/text interaction with the running image.
\item[\href{https://github.com/aartaka/tripod}{Tripod]}
 My polyglot blog engine \href{/tripod}{I wrote about}.
\end{description}

Libraries. These are mainly built around the projects above, but often are chaotic:

\begin{itemize}\item \href{https://github.com/aartaka/cl-telegram-bot-auto-api}{Auto-generated Telegram Bot API bindings}.
\item \href{https://codeberg.org/aartaka/trivial-toplevel-commands}{Trivial Toplevel Commands} to define new REPL commands.
\item \href{https://codeberg.org/aartaka/trivial-toplevel-prompt}{Trivial Toplevel Prompt} for nicer prompts like \verb|aartaka>|.
\item \href{https://codeberg.org/aartaka/trivial-time}{Trivial Time} for code timing/benchmarking.
\item \href{https://codeberg.org/aartaka/trivial-inspect}{Trivial Inspect}, a portable toolkit for object inspector construction.
\item \href{https://codeberg.org/aartaka/cl-minifloats}{cl-minifloats}, Lisp implementation of (mostly 8-bit) minifloats.
\item \href{https://github.com/aartaka/cl-pure-data}{libpd (Pure Data) bindings}.
\item \href{https://github.com/aartaka/cl-translit}{Cyrillic transliteration library}.
\end{itemize}

\section*{Turing Tarpits} \label{turing-tarpits}

I'm into using the tech in ways not initially intented for this tech.
While I'm not yet at that level in hardware, I certainly am deep enough in software tarpits:

\begin{description}\item[\pageref{bes}{Brainfuck Enterprise Solution (above)}]
The primary example of me going all-in with an esoteric tech and ending up with real tools built in it.
\item[\href{https://github.com/aartaka/advent-of-code-in-cl-loop}{advent-of-code-in-cl-loop}]
Solving Advent of Code 2021 only using Common Lisp \verb|loop| macro.
\item[\href{https://github.com/aartaka/stdlambda}{stdlambda}]
A Lispy standard library for Lambda Calculus, finally making this Turing tarpit a practical software environment.
\item[\href{https://github.com/aartaka/lamber}{Lamber}]
My Lua/Wisp-like programming language based on pure Lambda Calculus and extending stdlambda with even more utilities.
\item[\href{https://rosettacode.org/wiki/Ed}{My Ed entries at RosettaCode}]
\verb|ed| was not intended to be a general-purpose programming system, but here we are.
\item[\href{https://github.com/aartaka/modal.ed}{Modal->ed compiler}]
Now that we talk about \verb|ed|...
\item[\href{scripts/wisp.ed}{And Wisp syntax preprocessor!}]
Wisp is an indentation-based syntax for Lisps, and I implemented with with a cursed set of regex.
\end{description}

\section*{ed scripts and implementations} \label{ed}

I like ed(1) for its simplicity and power.
So it's only consequential that I try to implement it with anything I get my hands on.
Like
\href{https://github.com/bf-enterprise-solutions/ed.bf}{in Brainfuck},
\href{https://github.com/aartaka/ed.bas}{BASIC},
\href{https://github.com/aartaka/ed.modal}{or Modal}.

I also have a bunch of ed wrapper scripts and others' implementations:

\begin{itemize}\item \href{https://codeberg.org/aartaka/aed}{Aed, my heavily customized ed}
\item \href{scripts/xed}{Xed, "execution"/scripting ed}
\item \href{https://github.com/ibara/oed}{oed, OpenBSD ed} for compatibility tests.
\item \href{https://github.com/slewsys/ed}{and wed/slewsys ed} as a more featureful ed fork.
\end{itemize}

\section*{My Configs} \label{configs}

Configs for everything:

\begin{itemize}\item \href{https://codeberg.org/aartaka/lisp-config}{Commmon Lisp + Readline}
with custom commands and prompt, terminal auto-completion, and
\href{https://github.com/aartaka/graven-image}{Graven Image} integration.
\item \href{https://github.com/aartaka/guix-config}{Guix System}.
\item \href{https://github.com/aartaka/stumpwm-config}{StumpWM}
with lots of apps,
\href{https://github.com/stumpwm/stumpwm-contrib/blob/master/util/binwarp/README.org}{Binwarp mode},
and Emacsy keybindings for any CUA app.
\item \href{https://github.com/aartaka/emacs-config}{Emacs}.
\item \href{https://codeberg.org/aartaka/aed}{aed, my custom wrapper around ed(1)}.
\item \href{https://github.com/aartaka/nyxt-config}{Nyxt browser}. Abandoned yet still useful and exemplary.
\item \href{https://github.com/aartaka/st}{My fork of Suckless Terminal}.
\item \href{https://github.com/aartaka/surf}{My heavily-hardened and Emacsified fork of Surf, Suckless Browser}.
\item \href{https://github.com/aartaka/emvi}{Classic Vi (not Vim!) config for Lisp programming}.
\item \href{https://github.com/aartaka/laconia-theme}{Laconia} and
\href{https://github.com/aartaka/dark-atoll-theme}{Dark Atoll}, my themes for the software above.
\end{itemize}
\par\noindent\rule{\textwidth}{0.4pt}
Copyright 2022-2025 Artyom Bologov (aartaka).
Any and all opinions listed here are my own and not representative of my employers; future, past and present.

\end{document}
