Update for the week ending on Friday, Mar 25, 2022
TinyPilot
Management
- Lunch with local staff
- Two 1:1s
Software development
- Cut releases of TinyPilot Pro 2.4.0 and TinyPilot Community 1.7.0
- Published security advisories for issues fixed in 2.4.0.
- Changed logic on website for add-on products.
- Previously, add-ons were first-class products that you could buy on their own.
- Once you added a product and add-on to the cart, there was no relationship between them any longer.
- The new site design calls for add-ons to be associated with a parent product in the UI, so I refactored the code to make that easier, but I’m leaving the design polish to the design agency.
- Screenshots
- Upgraded a bunch of npm packages on the TinyPilot sales site
- I was seeing random runtime failures that seemed to be based on undefined behavior in the build, so I blindly started upgrading a lot of old packages in desperate hopes that they’d magically fix it.
- My fixes didn’t work, but a dev on the design agency spotted the root cause and submitted a 5-line fix.
- Reviewed two small PRs for TinyPilot website.
- Submitted a minor patch to an upstream Ansible role repo
- Just a feeler to see if it’s worth bothering to upstream more of our work
- Fixed whitespace issues in our ansible-role-janus-gateway fork.
Customer support
- Reviewed a tutorial for setting up Tailscale with TinyPilot.
- Simplified the FAQ answer to How do I disable virtual media on my TinyPilot?
- This article used to explain a workaround for a bug, but the bug is now gone.
Sales
- Call with large customer
mtlynch.io
- Started my long-paused blog post about building my budget NAS server.
- Updated away from deprecated CircleCI convenience images.
PicoShare
PicoShare is a minimalist web-based file sharing tool I’m working on. I’m often frustrated that I can’t just send someone a link directly to a file because every file-sharing service tries to re-encode images/video or wrap their own viewer around other files, so I’m making a simple self-hostable tool that lets you upload files and share them with other people.
- Published the v1 release of PicoShare and posted it on /r/selfhosted
- David Burgess made a YouTube video about it, which was neat.
- Created a live demo site for people who want to play with it before spinning up their own server.
- Finished my multi-week effort to store file data in chunks in SQLite
- I was initially storing all file data in a single SQLite database row as a
BLOB
, but that meant that the server always had to read the entire file’s contents into memory. - Splitting the file into chunks allows the server to read the data incrementally without loading everything into memory at once.
- I was initially storing all file data in a single SQLite database row as a
- Added a contributor licensing agreement (CLA) and configured the cla-assistant app.
- This was a few hours of work, which surprised me because it seems like it should be such a simple process.
- But it works: two users have signed so far.
- Created a demo GIF to show PicoShare’s basic functionality.
- Reviewed four third-party PRs:
- Added CI checks to enforce frontend style conventions and lint rules
- Added a
CONTRIBUTING.md
file - Changed link URLs to include the file’s filename
- Switched to a constant-time string comparison for password verification
- After publishing it, I started to remember a lot of little security shortcuts I took when I was thinking of it as just a simple pet project…
- Fixed integration with Litestream under Docker
- Improved usage documentation
- Recorded
Content-Type
for uploaded files so that they stay the same content type on download - Refactored code to generate expiration time options on the backend instead of the frontend
- Created library functions for generating file links.
Lenny
Lenny is a tool I’m working on that will respond to templated emails I get from spammy marketers and recruiters with a sequence of templated responses to ask the spammers an endless series of dumb questions.
- Improved CI checks for frontend code based on what I learned from PicoShare.
- Migrated away from deprecated CircleCI convenience images.
What Got Done
- Added some new Github activity badges to the README
Misc
- Scheduled the Western Mass Indie Hacker April meetup
- Repaired a broken wheel on my WalkingPad R2 treadmill with a 3D printed wheel.
- I bought a foldable treadmill a few months ago, and it arrived with one of the wheels shattered.
- The company sent a replacement wheel, but the treadmill’s design makes it impossible to replace the wheel without disassembling the entire treadmill and disconnecting all the electronics (a 90-minute process that risks breaking the machine)
- I reached out to a 3D printing designer I’d worked with in the past, and he designed a wheel that screws together so I could attach it without dismantling everything.
- It works!
- Ordered another set of free COVID rapid tests
- They arrived within days this time.
- Got a haircut.