There a class of tasks that drive me to distraction, and that’s when I am obliged to execute them myself, in the full knowledge that a computer could do them better and faster. These tasks are manual, require little mental or physical effort on my part, are dull and monotonous, and achingly time-consuming. Most frustrating is when I have to do them using a computer. I can feel it laughing at me, as it watches the great big jelly brain stooping to repetitively click on buttons with those big dumb meat fingers. It *knows* how to programmatically activate those buttons. It just refuses to let itself be automated.
I’m being too harsh. It’s not my poor computers’ fault. Personal computers are always and everywhere the ally of the free human; that is, when they are not held in chains by proprietary software, unproductive market forces or unnecessary complexity.
This weekend’s low-level servitude example: filing my expenses. Because February had me flitting around like a social butterfly in Denver, my expenses this month weremprimarily Uber rides.
The corporate expense system — a third-party website we pay to simplify matters, marginally — requires me to go through each charge to Uber, click buttons repetitively to tell it that these fees are “transport”, type a sole period into a “description” text box because that’s a required field, and then upload the correct receipt for each credit card entry.
Uber’s interface requires multiple clicks per ride to obtain a PDF. The PDFs’ default filenames are a UUID. In most cases, you can match the receipt to the credit purchase by price; but the price is buried within the PDF or webpage. Sometimes it doesn’t match, because Uber adds the tip to the receipt, but charges the credit card separately, so you have to go searching for the right receipt to fit with a $1.00 charge.
The third-party expense system doesn’t have an API. Uber only offers an API for corporate accounts and fancy-schmancy developers. It would probably be hell to manually tie them together anyway. They’re all wired into the same Web, but browsers, web front-ends, and databases are now in a state of fallen ignorance about each other, trapped behind their baroque corporate strongholds on our new, world walled web. Users have learned to be helpless between these bastions, as overpaid guards watch from the ramparts, as we mehums stoically carry their bits across a blasted landscape of unautomatable browsers, from one ziggurat to another, in obeyance to a default bureaucracy that has no need to exist.
Well, anyway, I knew I had a choice between an hour of torment in which I knew I would screw up multiple receipt->credit correlations, fat-finger abortive drag-and-drops, and repetitively save files called “eeec2f4d-0e7b-47b0-9084-54254b227902 (3).pdf” over each other. Or I could spend three hours vibe-coding with Claude, and simplify (though not eliminate) this problem once and for all.
Voila, the Uber Receipt Downloader. It goes to Uber’s website at the behest of some command-line options, clicks all the right links, downloads the file, and then saves it with the price and date prominent in the file-name. It probably isn’t for you (your particular brand of servitude is almost certainly different, and besides there are dozens of others like it on github).
I’m not really presenting this as a general open source utility, but as indicative of what I hope is a trend. Some notes:
- I much prefer a few hours of intellectual exploration with an AI, than even a few minutes of needless drudgery. Your cost-benefit analysis may vary.
- The tool (and the MCP server I used with Claude to hack on it) doesn’t scrape — it co-controls my web browser using the Chrome DevTool Protocol. This means that I don’t have to authenticate, or simulate a normal user session. It just uses my existing user session in my browser. I watch my computer clicking the buttons for me. AS IT SHOULD.
- I needed domain knowledge to pull this off, but I’m pretty sure I would never have even considered this without an LLM by my side. With these code-writing tools, we are moving incrementally closer to everyone having this capability. We’re not all the way to a moldable computing utopia, but we’re closer.
Now I’m happy rather than sad — as are my co-workers who really needed me to do my expenses two weeks ago. And I just feel (as perhaps I have done at the most optimistic high-points of computing possibility in the past — when I got my first modem, when I saw the Web, when RSS and REST APIs ruled the world) as though we’re edging ever closer to having computers tear down the walls between us instead of building them. When we work together as peers, we can optimize away these unneccesary chores, turn away from this distracting trivia, and turn our precious attention, fleshy brains and neural nets, together to the Great Work.
March 12th, 2025 at 3:33 am
[…] 详情参考 […]