From Hack Manhattan Wiki
Revision as of 03:12, 8 September 2019 by Beadsland (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision β†’ (diff)
Jump to: navigation, search
Beads Land-Trujillo

Slack (join our slack) | Mastodon | Twitter dead | OkC | Github | 🌩Applied Evolutionary Phenomenology | πŸ” A Monster Lives Under My Bed | 🎨 "Ode of a Romantic Poem" | πŸ“’ "A Maker Manifesto" | Hack Manhattan Gear Logo.png Projects: Bricodash, BindSight

Motto: "Never do things others can do and will do if there are things others cannot do or will not do." ~ Amelia Earhart

Programmer since childhood and advocate of learning an 8-bit machine language (6502 is my preference) as the phonics of higher level languages. One-time dial-up MUD wizard using ed, now equally disenchanted with both vi and emacs. Did my stint as a Web developer during the dot com bubble; now do my own things. Favorite languages: Elixir/Erlang, Lua, PostScript, LPC. Perl is my old standby, but Python is growing on me.

Academic background in psychology and anthropology. Philosophically, think Grace Hopper meets Jane Jacobs meets Annemarie Mol. Or, to crib from Ambrose Bierce: "Cogito cogito ergo cogito sum — 'I think that I think, therefore I think that I am;' as close an approach to certainty as any philosopher has yet made."

Co-host a monthly community crafts event for my housing co-op. Full of ideas, and love a good brainstorming session. Enjoy sharing a space where creative folk are doing creative things. I tend to go incommunicado to hibernate πŸ»πŸ’€ when the days are short, only to pull frequent all-nighters πŸŒ‡πŸŒ†πŸŒƒπŸ™οΈ working on projects at the space throughout the rest of the year.



Collapsed by default.



Working on projects in three different general categories, described below, with projects listed roughly in order of priority within each category. Too many balls, not enough air.


Various DIY/smarthome and other projects about (or related to) the domicile.


Crafts Event Prep

Flyers for October and November are due. Craft ideas research: mask making (for October); doll making (to find a use for many dozens of knitted dolly caps). Need to do an audit of our craft supplies and prepare orders to restock.

Paperwork Backlog

Have been sorely derelict on a heap of household and client bookkeeping and filing, while immersed in other recent making projects. This includes scheduling of long-overdue appointments and restocking our household pantry. Made some significant headway on this, might as well keep ball rolling.

Roomba Repair

Cliff sensors have been successfully disabled, and original left wheel reinstalled. Still unhappy with side brush performance—and will return to this eventually—but presently just glad to have this robot back in service.

Darn Socks

They're actually quite nice socks, but yeah, they've got holes. Quite a few of them do, darnit.


Astronomical Device

One of our members has a telescope rig powered by a Raspberry Pi, but wants to tweak the UI running on the Raspbian desktop. Have promised to help them figure out what needs reconfiguring next time we're both in the space.

Office Chair Repair

Having already repaired three other office chairs of various designs and defects, another chair presents itself for fixing. This time, it's an old brown chair that is already an heirloom hack. A some time in the past, the bottom of the seat has been replaced/augmented with a wooden construction that appears to secure the seat cushion to the caster-base column. Since that time, the bolts holding this wooden bottom to the cushion have come loose on the front corners. A user who naively reached under the front of the chair to lift and move it, can accidentally catch their hand between the cushion and the wooden bottom.

The chair currently has the word "NO" inscribed in blue tape across the top of the cushion seat, to warn users, if not that they might get bitten by the chair, then at least that they ought to exercise caution.

On best examination, it appears the repair will involve removing the wooden bottom from the cushion, and then resecuring or replacing nuts that had previously held the wooden base bolted to the cushion seat.

Steelcase Leap Chair

The cylinder button began getting depressed unintentionally again (after 4 months or so). Dug out the old spacer and replaced with one at 70% infill and .2mm deeper. Latest replacement has used PLA+ (courtesy of Tarek's printer at home.) Rising is a bit stiff and requires multiple pulls on lever, but does then stay up until released. Will monitor. (as of 4/17/18) (as of 8/24/19)

Member Storage Audit

Planning to go through our member storage shelves, identifying left-overs from former members, and moving less actively used bins to higher shelves, to better facilitate storage needs of new members in the future.

Roommmate Tech/Organizing Consult

  • electronic birthday calendaring
  • charitable giving analysis
  • pruning their electronic task list
  • research piano instruction apps for android
  • getting them up and running to learn the ins and outs of using video conferencing tools
  • organizing teaching materials filing system
  • substitute teaching go pack strategy
  • prepping unique favor packs for Halloweens


Dashboard Door Buzzer Integration

Wanting to wire a single-board device in to the building intercom system to detect the door buzzer. This will allow us to use the dashboard real-estate for other displays than the door camera, while still switching back to the camera swiftly when someone is buzzing for entry.

Household Repairs

Various small and large projects have been waiting in the wings, including:

  • Appliances
    • repair of a glitchy flat-screen monitor
    • replacing broken window blinds
    • retouching nylon on dishwasher racks
  • Space
    • repairing vinyl floor in kitchen
    • securing a set of shoe holder mounts
    • refurbishing an old hammer drill
  • Sewing
    • replace wrights on lampshade of a standing lamp
    • darning/patching bedsheets
    • hem favorite scarf

Installing Storage

Once repairs are out of the way, a number of household storage projects are on the agenda, including: a corner bar for hanging clothes and installing rack shelving in our kitchen

Completed: Bathroom storage tower has been cut to accommodate shut off valves, urethane and fresh paint applied, and installed in its new home.

Custom Craft Material Dollies

Our community crafts group has accumulated more donations than could every easily fit in our existing carts. We've resorted to lugging surplus around in oversize retail shopping bags. Moreover, the carts we do have aren't for outdoors use. They're fine for moving materials from our apartment to the community room the same building, but if we want (or need) to set up for an event in another building, the casters are not equipped for even well-maintained sidewalks, and we tend to see drawers slide open or and containers slide off shelves and topple to the ground as we trundle along on sloped grades. Finally, we've got some craft materials, namely yarn, fabrics and collage materials, that really need to be in larger containers that display their contents in an inviting way without having to unpack and repack those materials for each session.

Thus, there are three goals. First, to design a pair of dollies with custom, quick-assemble cage frameworks. The idea is that our existing craft carts could be lifted onto the dollies, providing heavy duty casters to get around outdoors, and then hemmed in by bars or slats that would keep drawers and shelf contents secure pending arrival at a destination. Providing for cover against rain or other weather would be a bonus. Second, to design a similar dolly for stacking larger containers than we currently aren't using, but would serve for bulk craft materials. Third, to design containers for bulk craft materials that quickly deploy as inviting displays of those same materials on site.


Data Processing Tower

The Tellurium project is proving very CPU-intensive. Generating a batch of 99 one-of-a-kind bespoke handbills easily takes six hours for my current computer to generate, plus another hour of post-processing, and then two hours of printer time. Further, the new toolchain (once gdp spelunking resolves current segfaults) will rely heavily on NLP processing, where parsing for word counts is already proving computation intensive.

Going to explore building out a custom box to handle chugging through these processes. In addition to building the toolchain to leverage multi-threading and multi-process techniques, as appropriate, am also considering the possibility of pushing some computations to GPU. The actual assembly of each word cloud (placing objects on a two-dimensional field) seems especially suited to GPU-based computation. This, of course, would require learning something about GPU-based solutions and figuring out what libraries exist or could be rewritten for GPU before specing out the new machine build.

Network Management

The various electronic components on the table-level of my IKEA-built standing desk have become an unmanageable tangle. The plan is to build a pair of LackRack component mounts under the standing desk and transfer various Ethernet and power connected devices thereto. As part of this process, will build out a heat ducting system to channel air from below the desk to the intake vent of the convector a few feet away β€” taking advantage of the chiller cooled pipes that feed the convector in the summer.

Also want to run Ethernet to the back of our apartment, rather than rely on spotty performance of EoP extender currently in use. This will support the development of audio notification relays planned throughout the apartment for telephony and other applications listed below. Also, gonna set up a Pi as a wifi router for our wifi-only printer, as it has become a nuisance rebooting the main router every time the printer loses connectivity with the network.

Sleep-Hygenic Lighting

Intending to replace current lighting fixtures with programmable smart bulbs and a custom driver that will adjust the level of blue light throughout the day, in accordance with my 2nd/graveyard-shift work cycle. This includes the appliance bulb in the refrigerator, so that one isn't treated to a blast of bright white light when scrounging a "midnight" snack. Also part of this project will be running motion-detector activated red LEDs along the hallways, to allow my roommate to get around early morning without disturbing my sleep by flipping on room lighting.

The first step will be to set up a dedicated console-cable managed wifi router and management hub that will allow for control of smart bulbs without exposing those devices to the Internet.

Audio Computing


  • integrated caller ID announcer
  • mode-switchable caller ID blacklist/whitelist


  • whistle-activated battery-powered nebulizer
  • whistle/tone detector/alterter network for hearing impaired
  • rice cooker setup detector
  • no-brainer portable stereo media player


  • multi-output audio stream relay
  • nighttime noise machine lashup
  • research hearing loop tech


  • mezzanine rack for a compact dishwasher
  • DIY kitchen counter LED hydroponics enclosure
  • intensive file cabinet purge
  • paint apartment
  • empty storage unit
  • guinea pig hutch with integrated hydroponic garden
  • learn to bake
  • learn to ride a bike


Various writing projects: prose, copyediting and programming β€” together with related technical tasks.

Makerspace Dashboard

The build-out of Bricodash is nearing completion. (When I wrote the preceding sentence, there were maybe half a dozen items on the pending tasks list for this project. Every time I think it's near being whittled to completion, new issues and opportunities arise, and the list enters hydra mode.)

An upgrade and expansion to the old defaultcast implementation—originally created by Michael—Bricodash will, when complete, combine data feeds from some dozen different APIs. Built on a polling architecture, the Javascript-light Web front-end pulls in various panels of regularly-updated content, while leaving heavy-lifting to a cron-triggered python back-end. This has proven essential for serving actively dynamic content to such low-powered devices as a Chromecast and a first-generation Raspberry Pi, both of which have demonstrated a tendency to freeze when asked to process too much client-side Javascript.

Development tasks outstanding are as follows:


  • explore migration of chromecast client to pi dongle to enable CEC input channel control (spearheaded by mz)

BindSight :2020

See also: BindSight project page

Concurrent, extensible, frame-scrubbing webcam gateway.

Web API service to stream doorcam and spacecam to Bricodash and public gateway, respectively, while tracking activity and performance of these and other webcams at the space. Will be more efficient and reliable than spawning PHP and Python processes on an as-they-come basis.

Written in Elixir, will be taking advantage of various new features of the language, building on the strengths of Erlang/OTP, including Mint (web client), GenStage (backpressure event pipelines) and ultimately mix release (build-time deployment packaging).

Code Cleanup

  • import common name method rather than wrapping it
  • recast all shortnames with bindsight prefix
  • investigate doing per-connection idle timeouts


  • better use of use macro in mintjulep
  • refactor side-by-side concatenation recursion to bulk joins
  • rebalance chunk load to other genstages
  • chunk: clean up handle_data pipe chain
  • digest: refactor and clean up

Error Recovery

  • deferred spigot spinup in event camera offline at startlink
  • fix EOL check to verify in case of dropped bytes
  • test logging on down camera
  • don't nag when connection down (periodic warn)
  • ensure recovery when source stream fails


  • review whether batch requires task
  • consumer-producer in spew to filter out :corrupt/:greytoss/fail messages
  • retool Validate stage to send tuple {:ok, binary} or {_status, binary}
  • retool Digest stage to sent tuple {:ok, binary} or {:fail, error}
  • retool polling functions to send tuple {:fail, error} when such occur
  • consumer-producer in slurp to introduce :corrupt/:greytoss on :test stream

Deep Validation

  • implement greytoss checking
  • replace async batching with task/agent batching, for JIT evaluation
  • watermark with source timestamp
  • provide for timeout watermarking


  • review supervision tree for batch tasks & agents
  • review memory usage to mitigate ProcBin leaks
  • integrate certificate used by Apache
  • configure to launch as daemon
  • bootstrap to obtain dependencies and compile cold


  • type guards on get_env
  • @impl on all OTP callbacks
  • type guards all public functions
  • type checks on unstructured opts
  • typespecs and dialyze throughout

Subsystem Integration

  • slurp snoop to track performance on each camera
  • slurp snoop to webhook on corruption/timeouts
  • spew snoop to swap out CGI for upt/chk touch points
  • spew snoop to track client fps performance

Sousveillance Integration

  • spew snoop to swap out PHP for sous veil touch points
  • distributed sous veil client for cross-platform data exchange
  • integration with sousveillance watch-back system


  • add robots.txt route
  • configure public ipcam as :test
  • flesh out documentation
  • investigate periodic multi-hit events: server severing connections prematurely? badly behaved client device?
  • investigate specific issue of pishop launch causing multi-hit failures on all other clients
  • stress test

Pishop Issues

  • assassin process to kill and restart chrome when load begins to climb (if not already addressed as part of CEC migration)

Webhook Notifications

Javascript client-side triggers to deliver messages to our Slack channels to provide alerts when the camera feed or client devices stall.

  • migrate sleep macro to general purpose library
  • migrate from webhooks integration to webhooks feature of bricodash app (and update notice)
  • server-side webhook on stall of any given device
  • when wonkiness addressed: downthrottle chromecast reboots to 1x per day; stream swap-in to never


Standardize Web server setup and fully integrate BindSight.

  • migrate to standard web port (now that relayd installed on router)
  • configure X-Forwarded-For logging in apache
  • enable SSL for camera feeds (requested for full conversion to new sous veil system)
  • enable SSL directly via daemon's listening port (i.e., elixir rather than apache)
  • transfer slackbot snapshots to bricolage gateway


Flesh out project documentation—after fixing existing problems with our Mediawiki server.

  • recent edits monitor to trigger cache purge on transcluded Bricodash documentation updates
  • help get mediawiki server 504 issues resolved (currently an obstacle to Bricodash documentation)
  • broach discussion of absent Copyrights page on Wiki -- do we want to adopt a license??
  • redraft lists in calendar sections as tables
  • flesh out Bricodash Future Ideas, explaining known requirements for each

Cloud Log

Incorporate remaining sources into rolling update log shown in lower left-hand corner.

User Repositories

  • refactor cloud/github to abstract away github/gitlab/etc
  • allow more than most recent pushed repository to be shown
  • add boxrs-based git repositories to Cloud Log panel

Other Cloud Services

  • Zendesk β€” count of unread/open inquiries
  • Status updates on donations: Patreon, Paypal, Amazon Smile...
  • write up requirements for Instagram Integration
  • write up requirements for Twitter Integration

Retire IFFF Wiki Updates

  • bot to post daily cloud log update to #general on our slack


Incorporate additional calculated and externally sourced calendar events.


  • move HM anniversary dates to special .cal that takes precedence on HM calendar (and also appears on NYC)
  • correctly calculate dates of International Astronomy Day (email out to Astronomical League for better calculation rules)
  • calculate dates of Manhattanhenge (email out to library of American Museum of Natural History for formula)
  • add eclipses and other significant astronomical events to holidays
  • finish fleshing out remainder of movable feasts for Community Calendar (June forward)


  • almanac alt for almanac events
  • use google search to find Offside Tavern Meetup events
  • add placeholder events for non-Meetup Offside Tavern events
  • refactor brite search by location routine to common library
  • add nyc mesh, nyc resistor, fat cat fab lab, makerbar, makerspace nyc (SI), futureworks (BK/SI) to Community Calendar
  • also add grow with google (if still in NYC), blick, michaels, local library branches, makerish meetup events


  • concise calendar response for interactive slackbot
  • auto-capture of #thehaps posted events to Bricodash/Extra:Calendar
  • automation/streamlining tools for cross-posting HM Meetup events to Spingo
  • enable toggling between Welcome header and holiday greetings ^


Remaining features and code maintenance before calling it a major release.

  • integrate citymapper API for local subway stations
  • refactor source files from initial launch
  • find owners to adopt data sourcing projects that require more than passive API calls (see sections below)
  • squish and push fork to upstream


Once built, streamline and rewrite as a truly beautiful application.

  • migrate from bricolage to less power-hungry hardware
  • combined community slack calendar to wiki page (requires privacy policy under brite license)
  • reimplement bricolage to run as embedded system under elixir/scenic/nerves

Just For Fun / Crafts Flyers

I co-host a monthly intergenerational unstructured crafts activity at my housing coop. For each event I prepare a custom designed flyer taking inspiration from holidays and notable events occurring that month. Recently, we've also started experimenting with quarter-page reminder cards providing the dates and times of the next two scheduled events. (Events alternate between Saturday mornings and Sunday afternoons to allow more participants to take advantage.) These reminder cards draw on the graphical treatments from their events flyers.

All of this is a reasonable amount of work to put together, and too often flyers have been designed and distributed last minute because I've had so many other things on my plate. Therefore, I've decided to design a full year's batch of flyers en masse, rather than do one each month.

Integrated Crafts / Space Booklets

Planning to create a quarter-pagish-folded HM wallet with inner slots for inserting a slightly smaller version of the JFF quarter-page reminder card, on one side, and a refreshable calendar of upcoming HM events, on the other, to streamline promotion of my two favorite making venues.

These promotional wallets will likely incorporate some variation of A Maker Manifesto.

Utility Programming

Mediawiki Cache Purge Triggers

My pages on our wiki are becoming increasingly dependent on nested transclusions. However, default behavior for mediawiki is to cache page hits pending an edit. Since transcluded content is not actually on the page it is transcluded to, edits don't trigger updates to transcluding pages. This has necessitated triggering cache purges manually. At some point, I want to set up some webhook triggers to automatically purge all my transcluding pages whenever I issue an edit to the wiki.

Okcupid Cluster Analysis

On a lark, I've been toying around with doing cluster analyses on the text of profiles returned by the OkCupid matching algorithm. The objective is to rank each cluster by the average of my pass and like activity for profiles assigned to each. Ideally, if there's enough differentiation between clusters, one could imagine discarding the cluster with the highest pass rate, and re-clustering around the profiles that remain. Repetition of this process would, theoretically, result in the profiles most likely not to be passed (that is, warranting an introductory message) floating to the top.

Unfortunately, differentiation between clusters seems to be rather narrow, and I'm running up against my utter cluelessness about TFIDF vectoring when trying to tweak parameters in an effort to get wider differentiation.

This project is now finished, and just needs to be written up and committed to a repository.

Service Company Routing Engine

After hearing a friend describe a project they were working on where they had to deal with assignment of tasks that have (i) time frames for completion rather than fixed due dates and (ii) numerous contingencies that subject to change, I realized that what was being described sounded very similar to the sort of problems I'm hoping to solve through design of a reactive programming language. That said, the problem domain here is narrow enough that an agent-based solution would probably suffice. I've decided to do some prototyping to see how far a working system can be modeled drawing on reactive principles but using existing tools.

Device Solutions

Media Library Consolidation

Have mostly finished migration of a 2 terabyte podcast media library to a dedicated RAID. Still need to fully restore broken file links in the iTunes database, and set up some automation to auto-provision the Windows 7 virtual machine.

An Orange Pi Zero is running as usbip host. Next steps will be to finish a usbmon script that displays an indicator of two way traffic. This is currently being printed to console, but will eventually drive an LED array. Progress continues on libgpod script to post-process the iPod database, after each sync, adding a custom playlist that collates and staggers tracks from existing playlists.

Also, want to add some podcasts to the library:

  • Elixir Outlaws (errored out previously -- check again if working)

Tellurium Toolchain

Tellurium is the name of the project for generation of the bespoke, each-one-of-a-kind, design-masked word clouds used in current Hack Manhattan handbills and tear-off-ticket flyers, and also the name given to the bramble hosting the tools for same. Currently a lash-up of perl, python and bash scripts, and involving a lot manual steps from cloud sculpting to proper alignment for paper-cutter-ready double-sided printing, the process of creating these materials had become profoundly time and resource intensive.

I've been retooling the production process to provide a screen-able console application for crawling and intelligently caching the cloud crawl process and to automate the assembly of properly-aligned PDF files for printing. However, my decision to use ncurses for the console (simply because I've never developed an ncurses application before) has hit a bit of a snag: Python is now segfaulting on refresh (or, more properly, noutrefresh) calls after a SIGWINCH. Gonna have to do some gdb spelunking to figure out why.

Writing as Writing


Various initiatives:

  • streamline/automate cross-posting HM Meetup events to Spingo
  • Design Studio Pro workshops
  • maker-themed exhibit/convention event series
  • eWaste residency at LES Ecology Center
  • workshops/lectures re history of hackerspace/makerspace/DIY movements
  • computing workshops for kids at Penn South

Marketing/Program Development

Have been promising a full marketing analysis of Hack Manhattan, including a membership recruitment strategy proposal, since late last year. Tellurium was meant to be low-hanging fruit, but it's really become a major diversion, so the more esoteric tasks of founder interviews and SWOT analyses are on indefinite hold, for now.

Mashup RPG Sourcebook

My favorite of all time tabletop RPG is a Heideggerian-thrownness of a genre-mashup called TORG. The game was recently updated and released with a new streamlined ruleset following a successful Kickstarter campaign. At some point, other projects allowing, I may even organize a group of dedicated gamers to play a camapaign or two of TORG.

However, having spent some time playing both World of Darkness systems in my younger years, I've also become fascinated with a cross-over between the two systems, and so have started drafting a sourcebook that would allow for crossover campaigns. My intention is to provide a meta-framework that will allow Storyteller-Gamemasters to mix and match the rule sets and settings of both games during the course of a campaign or even a single gaming session.

This is where my task list for this project currently stands:

  • design some 3d-printed card holder insets
  • custom Torg USB stick (also reader??)
  • machine running new version of Scriviner
  • dice probabilities for multiple success conditions (sourcebook)
  • glossary and gazetteer sections of sourcebook
  • sourcebook for a nWoD/Torg mashup (i.e., everything else)

More Programming


  • recreate printable map utility
  • multi-edit aware wiki->slack notifier
  • existing utility scripts to repository


  • project line count daemon
  • hackable PS1 framework
  • custom cross-platform vulgar incrementor widget
  • user-defined diet diary app


  • Elixir emulation in Lua
  • PL with EC data structures as first class citizens (brainstorm) — i.e., a push-pull reactive programming language

First-class EC Projects

  • percolating task dashboard (concept)
  • savvylist media manager
  • social propinquity platform
  • community event aggregation infrastructure
  • local governance policy sandbox platform
  • distributed MUD VM

Social Propinquity Architecture

  • thick-client access-mitigation for activitypub
  • mood and sensitivity oriented back-end reach-tuning
  • side-channel media and scrobbling feeds
  • folksonomic threading component

Federated Social Propinquity

  • post-activitypub integrated infrastructure
  • distributed trust protocol for messaging contracts
  • comment section management integration
  • patron-access local and special interest journalism
  • non-dyadic courtship platform


  • learn to knit (as pedagogical reference)
  • writing-oriented intro to computer programming
  • printing daemon alternative to printer drivers
  • triptypchglyph signing dictionary (for ASL)
  • applied evolutionary phenomenology research


Stuff I want to do with 3d printing and other miscellaneous hands-on making.

iPod Classic Rebuild

Am refurbishing an iPod Classic to use SD cards in place of HDD. At some point, may also print an oversize custom chassis for the Classic, incorporating a speaker as alternative to headphone listening.

First step is to crack the case on a knock-off 160 Gb iPod Classic to extract the control board. Apple released two versions of the last (thin) model board, both with the exact same model number, but only one of which supports data storage greater than 128 Gb. Will need to get at the larger capacity board in order to upgrade to larger capacity SD cards. Unfortunately, the knock-off appears to be glued shut—simply trying to spurge the case open is thus not an option.

3d Printing

Learning the ins and outs of 3d modeling in OpenSCAD, and getting familiar with the mechanical properties of PLA and the annealing process.

Documenting Projects to Date

Setting up a generic repository for design projects to date, together with basic documentation of each project. Along with this, should probably update the space's 3D Printing page, which is significantly out of date.

Recent models printed include:

  • a wallet-card size coin holder
  • anti-fatigue-mat-safe shoes for a kitchen foot stool
  • a bobbin cover plate for the HM Singer*
  • a tension rod wall sconce
  • a socket-and-trough mounted placard-holder

*Found recently that someone had cellophane-taped the bobbin cover plate into place. Still needs to be a smidgen longer.

New 3d Print Designs

Some off the shelf thingiverse designs:

  • better amazon dot amplifier (first one tried was structurally unsound)

Planned simple models include:

  • blue-LED shield for desktop tower
  • plastic covering of broken arm on eyeglasses
  • replacement drawer handles
  • snap-on rod-shelving side-caddy (nylon filament)
  • replica walker cable clips (nylon filament)
  • toe-space spoiling bumper replacement for Roomba

CR-10 Modifications

Current prototype of Tecknet USB camera mount needs some work. Using smooth surfaces to indicate proper alignment is useful, but need a way to lock in place once oriented.

Also want to do some performance tuning on the Pi currently serving OctoPrint. In particular, trying to identify and resolve the system's habit of hanging on cancelling a job, necessitating reboot of both the CR-10 and the Pi.

Classic Ipod Relay Dock

As part of consolidating my podcast media library, am designing a custom case for the Orange Pi Zero that will be acting as a usbip host and libgpod service. The case will include a dock that will fit my iPod Classic snuggly while in its case and an LED panel to indicate USB traffic.

I may also want to incorporate a speaker into the design, but I'm not sure about that yet.

Replica Hose Cock Key

A hose cock is a faucet found on the exterior of a building. Rather than a handle, the cock is keyed so that it can't readily be turned on by any passing stranger. Currently exploring replicating such a key to provide a backup. Have printed a version in PLA which I intend to anneal. (Need to calibrate the toaster oven at home first.) Plan to explore other filament materials and/or on-demand fab options once I've exhausted the possibilities of annealing.

Brochure Holder

Our current brochure holder is a Thingiverse design. The companion sticker holder and tear-off ticket holder are both scaled versions of same, and suffer from the fact that the original design wasn't meant to shrink. My plan is to develop a custom brochure holder with a two-color stencil-inset of the Hack Manhattan tower logo for its back, together with an integrated sticker holder. Beyond this, the final design will be wind-proof (so that handbills won't go walkabout when displayed at outdoor fairs/festivals) and provide some modicum of rain protection (will likely incorporate some transparent PLA), in addition to providing for an optional tripod mount.

The first step will be to develop the stencil-inset component and figure out a snap-in-place mechanism for loading a stencil-inset back into the brochure holder assembly. Planning to refine the stencil inset process by creating some custom curb-your-dogs signage for a client's sidewalk tree-pit.

Kiosk Tablets

The idea is simple: use a handful of cheap 7" tablets to present basic information about Hack Manhattan, a RatPark tenants' event calendar, demonstration of the HM camera, quick sign-up for the Slack and Blabber, and even an interests questionnaire that would serve to introduce visitors to the breadth of possibilities that Hack Manhattan has to offer, as a space and as a community.

The first task: making it easy to charge and store these tablets, such that no one has to fiddle with USB connectors every time the devices are picked up and put down. For this, planning on using inductive charging loops and creating a simple case and docking cradle arrangement to ensure proper alignment. The cradle will also allow for wall mounting tablets so that they are out of the way yet readily accessible, serving as digital picture-frame style slideshow when not in use.

Going to first get my feet wet with inductive power and custom case design fashioning a recharging dock arrangement for a pair of bluetooth earbuds.

Miscellaneous Crafts

A few minor projects to be tackled:

  • binders for organizing collage clippings
  • swatch books for donated fabrics
  • mixing up a big batch of mod podge for monthly community crafts group
  • repairing a favorite necklace that broke earlier this year
  • improving upon my roommate's bling of my felt laptop case

Raspi Terminal Hub

My dream is to have a hip-mounted Raspberry Pi with an Adafruit-design HUD and a chording keyboard for terminal and input, respectively. The goal being to do much of my writing/programming while walking Hudson River Park, rather than sitting at a table or shifting my weight from foot to foot at my standing desk at home.

The first task is to learn to use a chording keyboard. Practicing on a Twiddler model last year, was up to about 40 wpm on 6 letters (~30 wpm with seventh letter) before setting this aside for a time to dive into other projects. Am wanting also to improve on the Twiddler strap (currently a velcro strip that is serviceable but not ideal) and doing something about how noisily clicky the keyboard keys are.

Related to this, want to set up a Rasbian image distribution mirror, if only so I don't have to wait for downloads for my own projects.

Other Design Projects


  • better fruit fly trap
  • ketchup pack piercing funnel/bottle filler
  • wax-cylinder style media and player


  • AV-cart rig for home-bound video-conferencing
  • collapsible laptop standing desk
  • textured bedsheet design
  • explore soundproofing for HM if not done already
  • ergonomic walker-handle attachment for wire shopping carts (poss. mobility unlimited challenge)


  • precision autoleveling scissor-lift print bed
  • my own jacquard loom
  • keypunch stamper
  • learn puppet making


  • learn electronics
  • paneled eink display
  • nighttime text tablet
  • gyroscopic posture-retraining monitor
  • many heretofore unimagined projects
  • electronic toy machine language building blocks
  • store-and-forward powerline networking