Skip to content

Instantly share code, notes, and snippets.

View alexispurslane's full-sized avatar

Alexis Purslane alexispurslane

View GitHub Profile
@alexispurslane
alexispurslane / BDD.md
Last active February 4, 2026 21:03
BDD/type-first/spec-driven development workflow idea. Let's see if the most powerful open weight model yet can actually consistently listen to it!

2. Adding Features (Type-First BDD Workflow)

When the user proposes a new feature, follow this workflow where executable tests specify behavior and types + doc comments specify technical design:

Step 1: Agree on Behavior

Write natural language Gherkin scenarios and iterate with the user:

Given a source file with a file link
{
"basics": {
"name": "Alexis Dumas",
"label": "Software Developer",
"email": "alexispurslane@pm.me",
"url": "https://www.linkedin.com/in/alexis-purslane-49874624a/",
"summary": "I'm a passionate software developer; I've been programming since seven, and I excel in systems thinking, software architecture, and versatility.",
"location": {
"city": "Pittsburgh",
"countryCode": "US",
{
"basics": {
"name": "Thomas Edison",
"label": "Inventor and Businessman",
"picture": "https://example.com/photo.jpg",
"email": "thomas.edison@example.com",
"phone": "(123) 456-7890",
"url": "https://thomasedison.com",
"summary": "Prolific inventor and businessman known for developing many devices that greatly influenced life around the world, including the phonograph, the motion picture camera, and the electric light bulb.",
"location": {
{
"basics": {
"name": "Thomas Edison",
"label": "Inventor and Businessman",
"picture": "https://example.com/photo.jpg",
"email": "thomas.edison@example.com",
"phone": "(123) 456-7890",
"url": "https://thomasedison.com",
"summary": "Prolific inventor and businessman known for developing many devices that greatly influenced life around the world, including the phonograph, the motion picture camera, and the electric light bulb.",
"location": {
make distclean
# Environment Setup
export LDFLAGS="-L$(brew --prefix libmps)/lib -L$(brew --prefix tree-sitter)/lib"
export CPPFLAGS="-I$(brew --prefix libmps)/include -I$(brew --prefix tree-sitter)/include"
export CFLAGS="-O3 -march=native -fno-finite-math-only -fno-trapping-math -fassociative-math -freciprocal-math"
./configure \
--with-ns \
--with-mps \
@alexispurslane
alexispurslane / gptel-perplexica.el
Created November 23, 2025 02:13
Perplexica integration for GPTel. Worked as of whenever I made it last, don't think GPTel has changed anything. supports citations as org-mode footnotes!
;; gptel-perplexica.el --- implements a Perplexica backend for GPTel -*- lexical-binding: t -*-
;;; Perplexica
(require 'gptel)
(require 'gptel-transient)
(require 'gptel-openai)
(cl-defstruct (gptel-perplexica (:constructor gptel--make-perplexica)
(:copier nil)
(:include gptel-openai))
;;; copy-file-async.el --- Asynchronous file copying via SCP
;; Version: 1.0
;; Author: Alexis Dumas <alexispurslane@pm.me>
;; Package-Requires: ((emacs "25.1"))
;;; Commentary:
;; Provides `copy-file-async` command to copy files to remote hosts
;; via SCP asynchronously with live progress updates.
@alexispurslane
alexispurslane / comments.html
Last active August 27, 2025 20:20
Not mine, totally vibe coded, but a useful little totally local and self-contained thing you can embed into any HTML page to make it so that users can highlight and add comments and export/import them to share.
<style>
/* --- Commenting UI Styles --- */
:root {
--comment-highlight-bg: rgba(51, 255, 153, 0.4);
--comment-ui-bg: #1a2a1a;
--comment-ui-text: #e8f8e8;
--comment-ui-accent: #33ff99;
--comment-ui-border: #6a826a;
}
@alexispurslane
alexispurslane / whisperx.bash
Last active February 15, 2025 01:42
A quick and dirty script to let you run a containerized version of WhisperX on any posix system without having to go through the hassle of setting up CUDNN and Python yourself.
#!/bin/bash
set -euo pipefail
original_location=$(pwd)
command=podman
command_args="run --gpus all -it -v ".:/app" --replace --name whisperx --pull=newer ghcr.io/jim60105/whisperx:base-en --" # might need to change for docker, hence the variable
filename=${@: -1}
basename=$(basename ${filename})
@alexispurslane
alexispurslane / sort-by-tags.el
Created February 6, 2025 20:53
sort org mode headings by tags
(defun org-sort-by-tags ()
(interactive)
(org-sort-entries nil ?f
(lambda () (org-get-tags (point)))
(lambda (a b)
(let ((a (if (listp (cdr a))
a
(buffer-substring (car a) (cdr a))))
(b (if (listp (cdr b))
b