Bad On Purpose to Make You Click


Protected: family photos

There is no excerpt because this is a protected post.

A Mathematical Theory of Communication

In Praise of Idleness General compendium of Bertrand Russell essays:

COIL Connect

A curriculum matchmaking app for teachers and professors around the world interested in collaborating.


Internet home for AntiracistAI.


A library of books and bots.

Scryer Studio

Experimenting with drawing tools

AI Plans

Coding an app for a small team to solicit approaches towards dealing with AI alignment.


Extensive customization of an NYC gallery’s Shopify


My personal google replacement.

Bayridge Sidewalker2

Bayridge Sidewalker1

Game Scry

A game discovery database and interface

Bayridge 4th of July 2021


Artist portfolio of Gail Vachon, NYC


A plugin merging threejs and WordPress, a work in progress.


A spaceship tavern gambling game, made with the DOM and http requests before I learned proper game stacks. Registrations are not verified; any email will do.

radio – live NPR – daily catalog NPR – indie NYC – Harlem – Bronx


Widget to check storage capacity for a rocket sales company

threejs gotchas

Lighting a large scene: DirectionalLight is the best simulation of daylight. But in a big world, you probably don’t want to light it all at once. You’ll need to update the light position and also it’s target position, what it uses to calculate it’s angle. The gotcha is: you have to run scene.add( ) […]

bash resources

set_cache, a workaround to bundlers. Use CLEAR_FILE to prevent accidental sed overwrites. Replace all query string numbers with $1 arg to set_cache. If you use the same file structure or framework frequently and often code with multiple windows – start all the directories or files at once with Sublime Text (subl). A rough file / […]

state handling

CSS: javascript:

running certbot with nginx on debian 10 for SSL certificates

The authoritative source: TLDR: A records in place for [url] and www.[url]basic server block in /etc/nginx/sites-available/[domain]sudo apt updatesudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interfacesudo apt install python3-certbot-nginx(https) : sudo ufw status if needed: sudo ufw allow ‘Nginx Full’sudo ufw delete allow ‘Nginx HTTP’ Lastly: sudo certbot –nginx -d your_domain -d www.your_domain […]

pm2 101

process monitor 2 list apps pm2 dashboard: start with custom name: reset app list: empty log files

Grunch of Giants

Buckminster Fuller fable


a simple mp3 player

Ford Crull

Artist portfolio of Ford Crull, NYC

Spatial audio with howlerjs quickstart

a few hurdles I had getting started with spatial audio: How do I scale “my game space” to “howler space” Remember that howler’s pos() is arbitrarily different than your position units – I found that anything beyond approx 5 “howler units” was silent. In my game, 5 units is a tiny distance, so I was […]

Claire Evans (Yacht) article on Kentucky caverns and Adventure video game

Bare Bones javascript Pub/Sub mechanism

threejs scratchpad

practice new functions in the console; copy and paste all your Scene init boilerplate

systemd 101

a pocket reference Getting to know your system daemon Create your user-created service files in: The machine-created service files will go in: more in-depth: where do i put my systemd service file what is the difference between systemd system and user services Example a sample .service file, at /etc/systemd/system/hello.service: *common mistake – make sure to […]

On Computable Numbers

Emu boards

Easily create, share and save real time plain text



On the phenomenon of bullshit jobs

David Graber

Economic Possibilities for our Grandchildren

John Maynard Keynes 1930

country codes as a javascript object and array

As an array: [ [‘Zimbabwe’, 716, ‘ZWE’], [‘Zambia’, 894, ‘ZMB’], [‘South Africa’, 710, ‘ZAF’], [‘Mayotte’, 175, ‘MYT’], [‘Yemen’, 887, ‘YEM’], [‘Samoa’, 882, ‘WSM’], [‘Wallis and Futuna’, 876, ‘WLF’], [‘Vanuatu’, 548, ‘VUT’], [‘Viet Nam’, 704, ‘VNM’], [‘Virgin Islands (U.S.)’, 850, ‘VIR’], [‘Virgin Islands (British)’, 092, ‘VGB’], [‘Venezuela (Bolivarian Republic of)’, 862, ‘VEN’], [‘Saint Vincent and the […]


embeddable clientside widget to book appointments with a firebase API

lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat […]

resizing disk partitions on Linux

A bird’s eye view – does not cover creating disk partitions. Recommended tools to view your current partitions: gparted – launches a GUI parted – begin this command line program, and type ‘print’ The partition addresses you’re looking for will most likely be in the format: /dev/sda[X] basically: First allocate the space for the partitions, […]


Some resources: MUD Discord Some favorite MUD’s: Free world / Cowboy Bebop 5678 Isengard 4040 3000 alice-MUD 5555 TCZ 8342 LOM telnet 4000

make your own Reddit browser

Reddit exposes all their subreddits (and just about everything else too), to public RSS feeds. This means you can do all sorts of fun automation with it. Here’s a quick recipe to get it up and running on standard shared LAMP hosting, such as you might have for a WordPress. [ DISCLAIMER ] – it […]


A browser MMO aimed at MUD fans.

HTTP soccer

Coded a multiplayer board game using HTTP polling, enabling it to be dropped on any server running php and work out of the box. No rules are coded; it is up to the participants to play their own game.

somewhere gallery

An art gallery for anyone to hang art.  (This project since merged into Threepress plugin)

Custom framerate for Threejs

By default, javascript’s requestAnimationFrame will run as fast as it possibly can, and if you have much logic in your animation loop, you’ll quickly hear your computer fans start to whir. To free up CPU power for other tasks and keep  your webpage snappy, request your animation frames by timestamp instead of “asap”, like this: […]

Trying to build a browser MMO on a $5 server.

All Watched Over By Machines of Loving Grace

I like to think (andthe sooner the better!)of a cybernetic meadowwhere mammals and computerslive together in mutuallyprogramming harmonylike pure watertouching clear sky. I like to think(right now, please!)of a cybernetic forestfilled with pines and electronicswhere deer stroll peacefullypast computersas if they were flowerswith spinning blossoms. I like to think(it has to be!)of a cybernetic ecologywhere […]




All the time forward


A work desk built for two; a couple hundred joined lathes of pine.


A moody fellow

Spring Summit

Promotional page for genetics conference at Harvard U.

Floating Cinema

Film portfolio of artist and filmographer Jon Rubin, NYC


overhaul of existing WordPress blog and implementation of entirely new client design. Tech-driven interior design startup, SF

Dana Shea Jackson

Artist portfolio of Dana Shea Jackson, NYC


An experimental build for an optometry practice and 3d printed eyeglass retail.


Collaborative moodboards with fabricjs

Tetris bed

Elevated bed for a river view and extra storage

Kitchen installation

Kitchen overhaul in an ancient NYC walkup building.

houseboat stairs

First we tried renovating the old spiral staircase (it was rusty and falling apart): Too cramped! Onwards, to more space:

Illuminated Parchment

This was a plugin script circa 2014 (inserted via yet another plugin, Gryphonheart Items ), that allowed players in World of Warcraft to trade drawings with each other as in-game items. The stored drawing was an array of coordinate and texture data, a hybrid raster and vector approach, because there were no methods available via […]


Just so shoes.


Hand welded, restored yellow pine cabinet.

Three’s company

A client with a sketch, and then some stools.

Perriand Records

A custom storage solution for a lifetime fan of Charlotte Perriand

Original table

The first table, alternating oak and pine