5 ms·
This is the kind of stuff where I tell people that coding can be a real practical skill (that gives you an unfair advantage these days). I did something simila
by atonse 7y ago
This is the kind of stuff where I tell people that coding can be a real practical skill (that gives you an unfair advantage these days).
I did something similar (read-only) for Home Depot Truck Rentals. To check if the truck was available at my local store, each time, you had to put in your zip code, and click a couple of times. Once I found that was an API, I rebuilt the call in Postman and kept hitting that endpoint until a truck was available.
That way I could check really fast.
The twist: None of it mattered because their data itself didn't update accurately (I saw one in the parking lot and they had one available and never updated their site). :)
- inson 7y agoThat is so true. Even if your algorithm works it's a human factor that breaks it.
- deleted 7y ago[deleted]
- shadowgovt 7y agoNever underestimate the error introduced by a lack of incentive for humans to comply with the API (or the API itself being human-hostile). My favorite example is the Domino's "Your pizza is ready" signal. Since the data feeding the signal also feeds the store's performance analysis (i.e. they track how fast employees are getting pizzas ready), there's significant incentive for employees to lie to the algorithm and hit "It's ready" before it's physically ready, on the assumption that customers will take nonzero time to wander over and show up for pickup.
- crooked-v 7y ago> there's significant incentive for employees to lie to the algorithm and hit "It's ready" before it's physically ready It's the same with fast food in general. One of my first jobs was at a McDonald's where the standard practice was to hit the 'finished' button for any order that was taking 'too long', at which point the people doing food prep would have to keep track of a sequence of three or four orders in their head. As you can imagine, errors were constant, but customer satisfaction was less important to management than satisfying this imaginary metric.
- cosmie 7y agoI managed at Domino's back about a decade ago when they forced the transition to the updated in-store POS that was required for this. To add a bit of color to what's happening: - You don't actually hit an "It's ready" button. When you knock the pizza off of the makeline screen, it transitions from "so and so is making your food" to "it's cooking". - The "It's cooking" phase is just a simple timer. It's supposed to be adjusted to the time of the conveyor oven (which can vary from ~3-9 minutes depending on the particular oven they use). Most stores never customize that setting in the system, and it stays at the default. And other stores may have ovens running at two different speeds. - Average make time is one of the metrics monitored by corporate audits, so you do have gaming of the system by knocking pizzas off the make screen early. But you can also have a backup at the oven during rushes, where food sit at the end of the makeline ready to go in the oven when capacity opens. At the same time, some items such as wings have to go through the oven twice (depending on the oven configuration). In both of these cases, even without gaming the system there will be dissonance between actual cook time and the cook time shown in the pizza tracker. - For those that did try to game the performance metrics, it came with an equal headache internally beyond just that "It's cooking" timer. The scheduling system used that average make time as an input into calculating labor needs. The more you knocked stuff off the makeline early, the more optimistic the scheduler became and the more you'd have to override the suggested schedule and the more "Labor Waste" you'd create by having more people working than the system thought you needed. It was really quite fascinating to see that system transition before I started my career. I witnessed it at two stores under two different franchises - one did the bare minimum to comply and the other one embraced the new system and it's capabilities. There were a lot of incredibly capabilities and forecasting optimizations that were made possible by the update. But they all presumed accurate data in the system at all times. But in many cases, managers were either disincentivized to do what was required to maintain that level of accuracy or transparency, or a component of the system would be designed in such an idealistic fashion that it didn't allow for the amount of pragmatic flexibility it needed. Both of which have been really valuable lessons I've taken forward with me.
- rainyMammoth 7y agoExactly this. I did the same thing to find available camping spots in Hawaii because they are super difficult to get. Wrote a script that would query their "API" every 5 minutes and alert me if a spot became available anywhere.
- nyquist 7y agoHave you considered whether doing this might be...wrong? Presumably those campsites are permitted by some government agency (NPS, BLM, the state of Hawaii, etc.), and presumably that agency designed permitting system with the assumption that people with limited time and attention would be vying for the permits by having to visit the site themselves to get one. This encodes a particular definition of fairness: that those who register early, or are very motivated, or simply those with a lot of free time to refresh the site, will get permits. I can also whip up a quick script to replace refreshing an unprotected HTTP API with a notification email. Does that make me more deserving of the camping spot?
- sokoloff 7y agoIt would fit one definition of "are very motivated".
- xattt 7y agoThis is a cat-and-mouse game. The assumption that people are time-limited and that UI design could be designed to ensure fairness on that assumption is along the same lines of security through obscurity.
- SkyBelow 7y ago>This encodes a particular definition of fairness: that those who register early, or are very motivated, or simply those with a lot of free time to refresh the site, will get permits. Why is this definition changing with knowledge something that should be considered wrong? The ability to do this work isn't gated to certain people except by knowledge, and the knowledge itself isn't gated. For the longest time this has been considered a fair way of doing things to get an item in limited supply.
- 7y ago
- darknoon 7y agoFuture of this: computer vision detector on top of frequently-updated satellite data?
- dewey 7y agoBonus points if you implement it with your own remote controlled drone.
- bduerst 7y agoI was going to say just mechanical turk parking lot pictures.
- GhettoMaestro 7y agoRetail was doing this back in the 1990s. "Parking lot counting"
- davinic 7y agoThere are companies[0] that provide realtime (I think) satellite imagery apis. One use case I saw was stock traders tracking parking lots of large retailers to gain early insights into sales metrics. [0]: http://www.digitalglobe.com/products/satellite-imagery http://www.digitalglobe.com/products/satellite-imagery
- jmull3n 7y agoI did something similar to check if tickets are available on Resident Advisor. https://github.com/jmcmullen/ra-resell-check/blob/master/src/index.js https://github.com/jmcmullen/ra-resell-check/blob/master/src...
- stirner 7y agoWhen working in a kitchen in California, I had to take the ServSafe Food Handler course online, which consisted of long, patronizing, unskippable videos explaining basic food safety concepts (which I already knew from previous experience) and little "check your knowledge" multiple-choice questions peppered throughout. The only thing that actually affected whether you got the certification was a quiz at the end. I just poked at the main JS file for a couple of minutes until I found the statement I needed: mainController.loadNextScreen() This turned what would have been a 3+-hour slog into 5 minutes, and I passed the quiz just fine.