I was just looking into this the other day. Nice to see someone do it. I wonder if making it more hackable by replacing the electronic guts with something like a ESP8266 would be worthwhile. I'd much rather be able to have a simple little server on this device that I can talk to over the network rather than having to go through some random company's servers. I imagine connecting it to the motor that turns the feeding mechanism wouldn't be too hard and the screen and buttons could simply be removed to prevent any, ahem, manual tampering. Adding some way to lock the food bin would also help with impulse control for those who need it.
Another upgrade would be to randomly reward the desired behavior instead of always rewarding it. This helps to both prevent gaming the system as well as keeping those dopamine spikes high when you unexpectedly get some candy. Using chocolate as a reward is perfect since it provides tryamine to help replenish your dopamine levels.
Might be possible to use DNS to point api.petkt.com to a local webserver and rewrite the API?
I can't imagine it has that many endpoints or that much logic. I would think the main issue would be potential encryption/authentication but if they're using plaintext HTTP for the phone app then maybe the feeders are using plaintext HTTP too...
If the device is using HTTPS, you'd need a valid certificate for that hostname - that's exactly the attack HTTPS is designed to defend against.
And if they're using certificate pinning, it can't even be any certificate from a trusted authority, it has to be one particular authority or even that specific certificate that they use (they could very well be using an internal CA for this, as they control the other end of the connection).
That’s what I ended up doing. ESP8266 wired to a motor driver and flashed with ESPHome. It worked really well, though I lost out on the screen on the feeder itself it was a worthy compromise since it was all kept local.
Yet another reason to have a quick test suite and build pipeline?
I feel like having to wait for more than a few seconds to get the reward would remove the instant gratification our brains crave.
That's an interesting setup. I could certainly use something like that: I'm writing my PhD manuscript, and depriving myself of rewards (hobbies) until I'm done, but it seems like my brain can't really understand long-term rewards instinctively.
I already have a few hooks that compute the number of lines when I push a commit; I could see myself wiring this up to boil water for a tea, or something similar. Want to take a coffee break? Work a bit first! Avoids procrastinating to some extent, while adding some kind of gamification to the self-discipline (having only myself standing between me and the reward is sometimes not enough).
Well, I guess I'll just pretend I have such an elaborate setup; and only build it once I'm done writing ;)
I was actually just thinking about a Tamagotchi-like program that required regular productive activities in order to keep a virtual pet alive, healthy and happy. A computer program would not need to deal with all that messy real world hardware; it would all be virtual.
You could also add a function that makes your virtual pet unhappy if you spent too much time reading Hacker News. Instant productivity boost.
There's this app for Android that's similar to the idea you mentioned. When you want to focus, you plant a tree in the app, and if you leave the app (eg. to browse the internet or check social media), the tree dies. If you focus for long enough, the tree grows to be a full one, and you can plant a forest.
When I have a bunch of friends over for coffee, we like to play "Moroccan Roulette" by tossing a chunk of hash into the automatic coffee machine's bean grinder hopper.
Probably a good thing I work at home and not in an office.
If you're grinding beans for coffee, it'd end up in the filter basket or whatever and get hot-water extracted, right? I don't see how it necessarily qualifies as "roulette", but I bet everybody has a real good time.
My guess is that its one of those kind where most of your coffee is stored in the hopper, and they are only making singleton cups (pour over or cappuccino).
As a person who eats all the candy in the house, I am very good at following rules also. E.g. “don’t buy candy” or “don’t eat someone else’s candy”.
Maybe “only eat dispensed candy” isn’t a good rule to follow in itself, but I do wonder if the dopamine release associated with triggering the release of candy counts for more than the candy itself. :-)
Haha this is a great reply and reminds me of how much I love Rube Goldberg machines! Simple outcome, complex process. The first thing that came to mind was Doc Brown’s automatic dog feeder for Einstein in the original Back to the Future.
To answer your question: I think milk chocolate is about just as popular in Germany and the Nordic countries, so perhaps you don’t have to be very American.
Chocolate and almonds are both quite healthy in the right doses. I mean the chocolate that’s isn’t mixed with methamphetamines, just to be absolutely clear. ;-)
Another upgrade would be to randomly reward the desired behavior instead of always rewarding it. This helps to both prevent gaming the system as well as keeping those dopamine spikes high when you unexpectedly get some candy. Using chocolate as a reward is perfect since it provides tryamine to help replenish your dopamine levels.