@email@example.com (join our slack) | @firstname.lastname@example.org | @email@example.com | @DIYStandingDesk@okcupid.com | @firstname.lastname@example.org | 🌩Applied Evolutionary Phenomenology | 🐔 A Monster Lives Under My Bed | 🎨 "Ode of a Romantic Poem" | 📢 "A Maker Manifesto" | 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.
- 1 TOC
- 2 Projects
- 3 Nesting
- 3.1 Maintenance
- 3.2 Hackerspace
- 3.3 Roommmate Tech/Organizing Consult
- 3.4 DIY
- 3.5 Technology
- 3.6 Audio Computing
- 3.7 Miscellaneous
- 4 Writing
- 4.1 Makerspace Dashboard
- 4.1.1 Maintenance
- 4.1.2 BindSight :2020
- 4.1.3 Pishop Issues
- 4.1.4 Webhook Notifications
- 4.1.5 Server
- 4.1.6 Documentation
- 4.1.7 Cloud Log
- 4.1.8 Calendars
- 4.1.9 Cleanup
- 4.1.10 Upgrades
- 4.2 Just For Fun / Crafts Flyers
- 4.3 Utility Programming
- 4.4 Device Solutions
- 4.5 Writing as Writing
- 4.6 More Programming
- 4.7 Development
- 4.8 Aspirational
- 4.1 Makerspace Dashboard
- 5 Fabricating
- 5.1 iPod Classic Rebuild
- 5.2 3d Printing
- 5.3 Kiosk Tablets
- 5.4 Miscellaneous Crafts
- 5.5 Raspi Terminal Hub
- 5.6 Other Design Projects
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.
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.
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.
They're actually quite nice socks, but yeah, they've got holes. Quite a few of them do, darnit.
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).
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
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.
Various small and large projects have been waiting in the wings, including:
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.
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.
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.
Various writing projects: prose, copyediting and programming — together with related technical tasks.
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.)
Development tasks outstanding are as follows:
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
Standardize Web server setup and fully integrate BindSight.
Flesh out project documentation—after fixing existing problems with our Mediawiki server.
Incorporate remaining sources into rolling update log shown in lower left-hand corner.
Other Cloud Services
Retire IFFF Wiki Updates
Incorporate additional calculated and externally sourced calendar events.
Remaining features and code maintenance before calling it a major release.
Once built, streamline and rewrite as a truly beautiful application.
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.
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.
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:
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
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:
First-class EC Projects
Social Propinquity Architecture
Federated Social Propinquity
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.
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:
*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:
Planned simple models include:
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.
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.
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.
A few minor projects to be tackled:
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