Continued working with EU distributor on spinning up sales from Germany
Worked on setting up a test machine so that local staff can QA TinyPilot releases
Had 1:1 with local staff member
Scheduled 1:1s with two developers
Realized I have to fix something stupid in my corporate registration to handle sales tax properly.
I’ve been accidentally overpaying sales tax on my purchases for the past year, but now MA thinks I owe them sales tax on my sales, so that’s going to be a fun thing to straighten out.
Software development
Code reviewed a new GCP cloud function for checking whether a user has a TinyPilot Pro license
It checks against the store data in Shopify.
Watched as TinyPilot’s developers code reviewed for each other and realized I should have been doing this long ago.
The issue was that I can’t just publish the image for everyone since it’s reserved for customers, but we didn’t have a good way for customers to prove they were customers in an automated way.
The process in the past has always been for users to just email me, but I finally invested dev resources into automating it so that I’m no longer in the critical path.
Clarified product instructions for finding the TinyPilot web interface
Product research
Met with EE vendor about next-gen Voyager development
Sales
Reached out to two YouTube creators about a potential partnership
One declined, the other hasn’t responded, which seems like a bad sign.
I may have exhausted YouTube as a marketing channel.
Reviewed a redesign to the landing page that makes the feature brags more compact
They’re a premium ad partner who supposedly pays several multiples more than AdSense, my current ad partner.
I withdrew from the Mediavine process after I read their partner agreement.
The Mediavine contract is extremely one-sided and hostile to publishers. Some highlights:
I’m required to run Mediavine ads for at least three months.
After the three months, I need to give Mediavine 30 days’ notice before I stop running their ads.
Mediavine, of course, is allowed to alter or terminate the agreement at any time.
If Mediavine alters the agreement, they must give me notice, but my only options are to terminate the contract (within 24 hours of the change) or accept the new changes.
I’m not allowed to speak to other ad partners about potential partnerships while my Mediavine contract is in effect.
Mediavine might give me other contracts to sign, and my contract requires me to sign those other contracts, even though I currently can’t read them.
After I sign the contract, Mediavine will send me instructions for integrating their ads into my site, and I have to obey them, even though I currently can’t read those instructions.
The -exec flag makes sure that if Litestream stops replicating my data, my app dies loudly instead of quietly writing data that will be lost on server redeploy.
Apparently, it’s a common cause of house fires, and you’re supposed to clean it out every year.
I had never cleaned it in the 3 years I’ve lived in this house…
It ended up being easier than I expected. It only took about 30 minutes. It helped that I already had a duct cleaning brush for cleaning exhaust from my pellet stove.