Skip to content
View debarchito's full-sized avatar

Highlights

  • Pro

Organizations

@gdg-on-campus-adtu @beyond-the-equation

Block or report debarchito

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
debarchito/README.md
  • A computer science bachelor's student who likes a good type system.
  • I maintain Mapv as an embeddable and hackable tool to learn and experiment with register machines in OCaml. To make tinkering even more fun, it comes equipped with built-in tracers and a visualizer built using raylib. It implements a rather complex generational heap and garbage collection strategy with a NIF (native implemented functions; thanks Erlang) interface to expose native OCaml functions and values to the VM.
  • I am currently researching and building Miru. It is a statically typed Lisp+ML hybrid that uses algebraic effect handlers for all non-local control flow (even errors are just a subset of effects that discard their continuations). The primary objective is to combine the type safety of OCaml with the ergonomics of Clojure with differences drawn where it makes sense. It was and still is heavily inspired by Shen and Koka.
  • I also like reproducible systems and almost all[0] of my projects can be scaffolded using Nix.
    • Check my bespoke bootstrapping framework .bootstrap if you want to get started with NixOS and NixOps in general.
    • It implements the Dendritic pattern, packages a lot of software not in nixpkgs such as Helium, CLAP plugins like NeuralRack and Ratatouille that can load NeuralAmpModeler files and other WaveNET based formats, CUDA-enabled Blender and OBS-Studio among other things.
    • I also maintain my artifacts cache registry @ debarchito.cachix.org which makes it easy to distribute packages built on GitHub Actions and/or SourceHut Builds.
    • The repository also implements a simple templating engine creatively named generate since nixpkgs's default templating system leaves a lot to be desired (parameter substitution is one of them). It can scaffold idiomatic projects for OCaml (using opam-nix), Rust (using crane for better cache utilization), and Python (using uv2nix). For example, get started with a Rust project using:
      nix run sourcehut:~debarchito/.bootstrap#generate \
          rust ./hello-world \
          name="hello-world" description="Say hello to the world!"
      
      # You can build and/or run the demo application directly using Nix:
      nix build ./hello-world
      ./result/bin/hello-world
      # or:
      nix run ./hello-world
      
      # The development shells come pre-configured with direnv:
      cd hello-world && direnv allow
  • If you own an Arturia MiniFuse 1 or MiniFuse 2, you can try mfctl to control these interfaces from your terminal. It's a partial replacement for the Windows/macOS-only MiniFuse Control Center on Linux. It also includes a kernel module for non-sudo use-cases.
  • If you play Minecraft, you might be interested in minework to help you manage your mods, modpacks, etc. I didn't find a satisfying tool to manage it all from the terminal, so I did it myself. I'm still adding QoL things like interactive fields with special fallback support for headless/non-interactive environments like servers.
  • Some of my old experiments include reinforced-shrine-adventure, which was an original story-based game turned training ground for an custom PPO agent to find the best ending.
  • I also write prose and poetry, a collection of which can be found in my digital garden.

[0] Some old projects are yet to be Nix-ified.

Feel free to email me at debarchiton@proton.me if you want to talk about type systems, compilers, functional programming, free software, game emulation, FPGAs, digital sovereignty, space, archaeology, progressive music, or just about anything.

Of note, this GitHub profile is largely a discoverability asset. I also use it when I want to fork repositories on GitHub or contribute to projects. Other than that, I do most of my development on git.sr.ht/~debarchito. I do enjoy the mailing-list aspect of decentralized VCS :D.

Pinned Loading

  1. .bootstrap .bootstrap Public

    All my Nix/NixOS bootstrap things. Mirror of https://git.sr.ht/~debarchito/.bootstrap

    Nix 1

  2. mfctl mfctl Public

    Control your Arturia MiniFuse 1 and MiniFuse 2 from the terminal. Mirror of https://git.sr.ht/~debarchito/mfctl

    Nix

  3. miru miru Public

    My take on a specialized statically typed Lisp+ML hybrid. Mirror of https://git.sr.ht/~debarchito/miru

    OCaml

  4. Audio-Solutions/pulse-visualizer Audio-Solutions/pulse-visualizer Public

    Pulse is a real-time audio visualizer inspired by MiniMeters

    C++ 152 13

  5. reinforced-shrine-adventure reinforced-shrine-adventure Public

    A text-based adventure game-ish environment to train solo RL agents. Mirror of https://git.sr.ht/~debarchito/reinforced-shrine-adventure

    Python 1

  6. mapv mapv Public

    A visualizable VM in OCaml built to make teaching register machine ISA design and hacking easier! Mirror of https://git.sr.ht/~debarchito/mapv

    OCaml