[{"data":1,"prerenderedAt":492},["ShallowReactive",2],{"\u002Fprojects":3},{"id":4,"title":5,"body":6,"createdAt":480,"description":12,"draft":481,"extension":482,"image":16,"mastodonThread":483,"meta":484,"navigation":485,"path":486,"seo":487,"stem":5,"tags":488,"updatedAt":490,"__hash__":491},"content\u002FProjects.md","Projects",{"type":7,"value":8,"toc":472},"minimark",[9,13,17,28,33,36,96,100,103,126,130,133,442,445,449],[10,11,12],"p",{},"I present here a very incomplete list of programming-related projects, and the tools and languages I might use to create them.",[14,15],"img",{"src":16},"https:\u002F\u002Fwww.plantuml.com\u002Fplantuml\u002Fpng\u002FROqn3i8m40JxUyKgFKym4gAYInzHd3adje0xomuIKfI_KuM0v7fsPYLDXNF4X8K0DGaOQkGSdBVtbO2B1CRXYAulPYDinDdq5lBSOP1KdBSv_kxwbt-a6jlmv5d5z1ysodk7y2tkFW4B2klTLNw6Lc1pjiELrWy0",[10,18,19,20,27],{},"Also see ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fgithub.com\u002Fawwaiid",[25],"nofollow","the awwaiid github repo"," for more projects!",[29,30,32],"h2",{"id":31},"current-projects","Current Projects",[10,34,35],{},"If you were to ask me what I'm working on right now, I might say one of these.",[37,38,39,47,54,61,68,75,82,89],"ul",{},[40,41,42,46],"li",{},[21,43,45],{"href":44},"\u002Frotae-versantur","Rotae Versantur"," - Norns Monome+Arc based four track recorder",[40,48,49,53],{},[21,50,52],{"href":51},"\u002Fghostwriter","Ghostwriter"," - Use the reMarkable2 as an interface to vision-LLMs. Ghost in the machine!",[40,55,56,60],{},[21,57,59],{"href":58},"\u002Fhuman-essentials","Human Essentials"," - Part of the Ruby For Good organization; inventory control for diaper and period-supply banks",[40,62,63,67],{},[21,64,66],{"href":65},"\u002Frepl-looper","REPL Looper"," - Making music with a code console",[40,69,70,74],{},[21,71,73],{"href":72},"\u002Ffairy-lights","Fairy Lights"," - Programming decorative LED lights in my living room and Christmas tree",[40,76,77,81],{},[21,78,80],{"href":79},"\u002Fchompie","Chompie"," - Chomp a codebase down to the bone",[40,83,84,88],{},[21,85,87],{"href":86},"\u002Fmetl","METL"," - Research around extracting and using Formal Models from an existing codebase",[40,90,91,95],{},[21,92,94],{"href":93},"\u002Fmeta-tlt","Meta TLT"," - Messing around with this website or tooling",[29,97,99],{"id":98},"backburner","Backburner",[10,101,102],{},"If you had asked me what I was working on last week, or if you ask me next week, I might mention one of these.",[37,104,105,112,119],{},[40,106,107,111],{},[21,108,110],{"href":109},"\u002Fmizik","Mizik"," - A game of memory, sound, shape",[40,113,114,118],{},[21,115,117],{"href":116},"\u002Fgremllm","Gremllm"," - Put a monster into your codebase",[40,120,121,125],{},[21,122,124],{"href":123},"\u002Ftask-seeder","Task Seeder"," - Interactively rank your tasks using different tournament and sorting algorithms",[29,127,129],{"id":128},"inactive","Inactive",[10,131,132],{},"I probably won't be doing much with these. This ''could'' mean that they are in a fairly completed state. It could also mean that they are abandoned. But feel free to ask me about them anyway!",[37,134,135,141,148,155,162,169,176,183,190,197,204,211,218,225,232,239,246,253,260,267,274,281,288,295,302,309,316,323,330,337,344,351,358,365,372,379,386,393,400,407,414,421,428,435],{},[40,136,137],{},[21,138,140],{"href":139},"\u002Fan-introduction-to-programming-via-perl","An Introduction to Programming via Perl",[40,142,143,147],{},[21,144,146],{"href":145},"\u002Fcgi-inspect","CGI Inspect"," - Inspect running CGI apps",[40,149,150,154],{},[21,151,153],{"href":152},"\u002Fcaravan","Caravan"," - OCaml implementation of the sequential data mining algorithms",[40,156,157,161],{},[21,158,160],{"href":159},"\u002Fcensus-data-extraction","Census Data Extraction"," - Small project to help a researcher correlate some data",[40,163,164,168],{},[21,165,167],{"href":166},"\u002Fcontinuity","Continuity"," - Continuation-based web-application framework for Perl",[40,170,171,175],{},[21,172,174],{"href":173},"\u002Fcontize","Contize"," - Provide a perl object with a way to fake continuations (complete and abandoned)",[40,177,178,182],{},[21,179,181],{"href":180},"\u002Fcovid-can-i-do-it","Covid Can I Do It"," - An interactive harm-reduction dataset built during the COVID pandemic",[40,184,185,189],{},[21,186,188],{"href":187},"\u002Fdhtml-combo","DHTML Combo"," - A combo box made using DHTML\u002FJavascript",[40,191,192,196],{},[21,193,195],{"href":194},"\u002Fdot2html","Dot2html"," - Convert graphviz files to HTML and Javascript",[40,198,199,203],{},[21,200,202],{"href":201},"\u002Fepfarms-panel","EPFarms Panel"," - A control panel for hosting clients",[40,205,206,210],{},[21,207,209],{"href":208},"\u002Fgoe","GOE"," - Smalltalk-like environment for Perl",[40,212,213,217],{},[21,214,216],{"href":215},"\u002Fgecko-based-html2ps","Gecko-based html2ps"," - Render html -> postscript using the gecko",[40,219,220,224],{},[21,221,223],{"href":222},"\u002Fgraph-module","Graph Module"," - OddMuse plugin to make GraphViz graphs (complete)",[40,226,227,231],{},[21,228,230],{"href":229},"\u002Fjquery-autoindent","JQuery Autoindent"," - I've always wanted a textbox that auto-indents",[40,233,234,238],{},[21,235,237],{"href":236},"\u002Fllm-token-tree-visualization","LLM Token Tree Visualization"," - Visualize LLM token selection",[40,240,241,245],{},[21,242,244],{"href":243},"\u002Fmhtml","MHTML"," - An HTML (XML?) Macro language (complete? old)",[40,247,248,252],{},[21,249,251],{"href":250},"\u002Fmobilefs","MobileFS"," - Fuse filesystem to cache files for mobile reading",[40,254,255,259],{},[21,256,258],{"href":257},"\u002Fmodule-level-polyglot","Module Level Polyglot"," - Advocacy and projects, sharing libs between langs",[40,261,262,266],{},[21,263,265],{"href":264},"\u002Fnoisegen","NoiseGen"," - Playing with PortAudio and generators",[40,268,269,273],{},[21,270,272],{"href":271},"\u002Focaml-eval","OCaml Eval"," - Evaluate OCaml code dynamically (complete, old)",[40,275,276,280],{},[21,277,279],{"href":278},"\u002Focaml-grabbag","OCaml GrabBag"," - Datastructure for a random-retrieval collection (complete)",[40,282,283,287],{},[21,284,286],{"href":285},"\u002Fogpf","OGPF"," - OCaml Genetic Programming Framework",[40,289,290,294],{},[21,291,293],{"href":292},"\u002Foddmuse-pingback","OddMuse Pingback"," - A pingback server for oddmuse comment pages (abandoned)",[40,296,297,301],{},[21,298,300],{"href":299},"\u002Foddmuse-editsection","Oddmuse EditSection"," - Edit things on a per-section basis in oddmuse",[40,303,304,308],{},[21,305,307],{"href":306},"\u002Foddmuse-editfile","Oddmuse Editfile"," - Edit a file (especially perl) through oddmuse",[40,310,311,315],{},[21,312,314],{"href":313},"\u002Foddmuse-ref-links","Oddmuse Ref Links"," - Module for a sidebar list of incoming links for a page",[40,317,318,322],{},[21,319,321],{"href":320},"\u002Foddmuse-search-tags","Oddmuse Search Tags"," - Module for a simple tagging mechanism",[40,324,325,329],{},[21,326,328],{"href":327},"\u002Fopenmoko","Openmoko"," - Customizing the Open Phone",[40,331,332,336],{},[21,333,335],{"href":334},"\u002Fperl-6-use-libs-from-ruby","Perl 6 Use Libs From Ruby"," - Perl 6 to Ruby bridge",[40,338,339,343],{},[21,340,342],{"href":341},"\u002Fperl-htmlunit","Perl HtmlUnit"," - A perl interface to the java HtmlUnit library",[40,345,346,350],{},[21,347,349],{"href":348},"\u002Fpolly","Polly"," - A very simple perl wrapper around some command-line audio players",[40,352,353,357],{},[21,354,356],{"href":355},"\u002Frubiks-cube-solver","Rubiks Cube Solver"," - I finally got my very own Rubik's Cube!",[40,359,360,364],{},[21,361,363],{"href":362},"\u002Fscrutiny-debugger","Scrutiny Debugger"," - PSGI\u002FPlack Middleware providing a debugger",[40,366,367,371],{},[21,368,370],{"href":369},"\u002Fsetdb","SetDB"," - A set-theoretical database interface",[40,373,374,378],{},[21,375,377],{"href":376},"\u002Fskechiki","Skechiki"," - A Perl\u002FGTK sketchbook for small touch-screen devices",[40,380,381,385],{},[21,382,384],{"href":383},"\u002Fsport-logo-quiz-game","Sport Logo Quiz Game"," - Test your knowledge of sport team logos!",[40,387,388,392],{},[21,389,391],{"href":390},"\u002Fthe-fridge","The Fridge"," - A javascript\u002Fphp refrigerator (complete)",[40,394,395,399],{},[21,396,398],{"href":397},"\u002Funtyped-lambda-calculus-in-ocaml","Untyped Lambda Calculus in OCaml"," - Exactly what it sounds like (complete? old)",[40,401,402,406],{},[21,403,405],{"href":404},"\u002Fuse-everywhere","Use Everywhere"," - Use a perl module all over the place",[40,408,409,413],{},[21,410,412],{"href":411},"\u002Fvladimirbot","VladimirBot"," - Personal assistant bot",[40,415,416,420],{},[21,417,419],{"href":418},"\u002Fwayv","WayV"," - Building on Mike Bennett's gesture recognition app",[40,422,423,427],{},[21,424,426],{"href":425},"\u002Fweb-board-games","Web Board Games"," - Web based 2D board games",[40,429,430,434],{},[21,431,433],{"href":432},"\u002Fwhite-elephant-gift-selector","White Elephant Gift Selector"," - Web app to pick the perfect gift!",[40,436,437,441],{},[21,438,440],{"href":439},"\u002Fzend-hacking","Zend Hacking"," - Feeling my way around (abandoned)",[443,444],"hr",{},[29,446,448],{"id":447},"tools","Tools",[37,450,451,458,465],{},[40,452,453,457],{},[21,454,456],{"href":455},"\u002Fi-love-vim","I love Vim"," - my preferred IDE",[40,459,460,461],{},"See a ",[21,462,464],{"href":463},"\u002Fscreenshot-on-2003.10.17","Screenshot on 2003.10.17",[40,466,467,471],{},[21,468,470],{"href":469},"\u002Fdarcs","Darcs"," - revision\u002Fbranch management. It's fun.",{"title":473,"searchDepth":474,"depth":474,"links":475},"",2,[476,477,478,479],{"id":31,"depth":474,"text":32},{"id":98,"depth":474,"text":99},{"id":128,"depth":474,"text":129},{"id":447,"depth":474,"text":448},"2005-01-04T11:35-05:00",false,"md",null,{},true,"\u002Fprojects",{"title":5,"description":12},[489],"project","2026-01-03","oiksJ8Uf5W0e-wwxKqNYXqJ4iPA4cpxgrnhSELkQNHo",1778988312796]