@email@example.com (invite) | @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 BindSight :2020
- 4.1.2 Webhook Notifications
- 4.1.3 Server
- 4.1.4 Documentation
- 4.1.5 Cloud Log
- 4.1.6 Calendars
- 4.1.7 Cleanup
- 4.1.8 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 3d Printing
- 5.2 Kiosk Tablets
- 5.3 Miscellaneous Crafts
- 5.4 Raspi Terminal Hub
- 5.5 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.
Left wheel no longer turning. It originally seemed to be due to debris build-up, but it may require repair or replacement of the wheel assembly. More investigation pending.
They're actually quite nice socks, but yeah, they've got holes. Quite a few of them do, darnit.
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. Now that taxes are out of the way, it's just a matter of digging into the remaining papers and clearing them out of the way.
Organizing Craft Donations
Donated materials have been coming in faster than we've been able to sort and store them. Need to set aside some time to review quite a few months of gifted materials. Also, want to deal with getting a broken bin lid replaced. The annual flea market is coming up soon, so will also want to spend time pricing out donated materials that aren't going to be used for crafts.
I'm running chroot on a Chromebook, thus providing for an inexpensive Linux laptop. Recently, the Chromebook has been come-and-go about enabling sound when powered on. The recommended solution is a powerwash, which is time consuming, and requires backup and restoration of the chroot. All of this is stuff I don't have time or patience for right now, but I'm making note here just to remind myself to deal with it when I'm done catching up on paperwork and related April deadlines.
Clean Air Conditioner Vents
Did this last year and AC worked a lot better. Haven't done it yet this year. Ought to.
One of our members has a telescope rig powered by a Raspberry Pi, but wants to do 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 6 months or so). Dug out the old spacer and replaced with one at 70% infill and .2mm deeper. 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)
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 frame-scrubbing webcam broadcast gateway daemon.
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.
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.
Parallel to this, 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.
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. In the meantime, I'm continuing to refine handbills/flyers absent a finished toolchain. Also, want to develop a way to streamline cross-posting HM's Meetup events to Spingo — the backend for the community calendar used by local newspapers and other media entities.
Related to this, am wanting at some point to put together a Maker-themed museum exhibit/convention event series to draw out those on our Meetup mailing list who, while interested in the IDEA of making, haven't yet been inclined to get move involved in the Hack Manhattan community absent the sort of go-someplace-and-do-a-thing cultural activities more commonly seen on Meetup groups. Oh, and I still want to brainstorm a proposal for HM to apply to the next eWaste residency offered by the LES Ecology Center.
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.
Learning the ins and outs of 3d modeling in OpenSCAD, and getting familiar with the mechanical properties of PLA and the annealing process.
CR-10 Power Troubleshooting
Our CR-10 has been shutting down in the middle of print-jobs. Going to see about investigating logs / swapping power supplies to see if we can figure out what's going wrong.
Delta Printer Upgrade
One of our members has brought in their delta printer from home to work on upgrading the armatures. I'm hoping to get some hands on experience with the device by pitching in.
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