Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Legal and ethical issues #33

Open
spyoungtech opened this issue Apr 9, 2020 · 39 comments
Open

Legal and ethical issues #33

spyoungtech opened this issue Apr 9, 2020 · 39 comments

Comments

@spyoungtech
Copy link

First, I want to thank you for using your skills in a way to help other in these trying times. Developing new technology to help others is a laudable endeavor. That said, I have some concerns about this tool and implications it may have for users and other customers of Amazon, despite its intention. I want to highlight my personal thoughts about these potential issues here.

Automated access of Amazon sites in this manner is prohibited by their conditions of use. Specifically prohibited:

any use of data mining, robots, or similar data gathering and extraction tools

Following this, the use of this automation is likely to be a violation of these terms and possibly US law, such as the CFAA, for exceeding authorized access to Amazon's computer systems (as described in conditions of use) especially given the information exported is not publically available (you need to login and checkout to see delivery availability) and arguably causes damage to Amazon and their other customers. Some additional food for thought here.

Lastly, no matter how well-intentioned, this automation has enabled bad actors to hoard resources and unduly deprives other Amazon customers of fair use of the service. This is particularly concerning amid the global COVID-19 crisis where resources, including these delivery slots, are scarce. While the power for abuse lies in the user's hands, it is my personal opinion that this software should not be publically available for the reasons stated above.

@chriswburke
Copy link

💯 This was my first thought, totally agree. Thanks for posting @spyoungtech !

Lastly, no matter how well-intentioned, this automation has enabled bad actors to hoard resources and unduly deprives other Amazon customers of fair use of the service.

@mannix515
Copy link

mannix515 commented Apr 9, 2020

I appreciate the sentiment here but how would you guys suggest the work is undone now the "cat is out of the bag" so to speak?

Another point - I think this really highlights failures in how Amazon is releasing time slots with the randomised nature being inherently unfair to anyone who is unable to either a) spend hours and hours refreshing the same page or b) have the ingenuity to build or seek out automation like this. I put it forward the problem is at source and should, therefore, be fixed at source - Amazon and all grocery markets that will deliver should implement a queuing system whereby each person that wants a delivery gets a ticket on a first come first served basis and when it's their turn is sent an email with a few hours grace to reserve their slot. One customer is allowed one delivery per week maximum or whatever threshold makes it fair for everyone. Logistics and specifics aside, there is clearly a fairer way for the big retailers to dish out slots than the "random release" they're doing currently.

@spyoungtech
Copy link
Author

spyoungtech commented Apr 9, 2020

@mannix515 I would suggest the author unpublish the code by deleting the repository. Sure, the work is already 'out there' but damage to others can be minimized by removing it from public sources like GitHub. Further, GitHub should probably delete all forks, too. It's quite possible this violates GitHub's content standards. In my view, it does; analogs could be drawn to other software that GitHub does not allow on and has removed from this site.

Amazon and all grocery markets that will deliver should implement [...] there is clearly a fairer way for the big retailers to dish out slots [...]

💯 I agree that retailers like Amazon can and should implement systems to make resources more available to those who need it in a fairer manner within the platform.

However, the points to why this software should be removed still stand, without respect to whether or not retailers change their service model. Currently, this software abuses the current system and deprives others of the opportunity to use it fairly. Put plainly, it does harm to Amazon and its customers.

@kringheim
Copy link

kringheim commented Apr 9, 2020 via email

@kringheim
Copy link

Has anyone been able to contact Amazon directly with these suggestions? When I called yesterday, they were not accepting phone calls.

@rworne
Copy link

rworne commented Apr 10, 2020

💯 This was my first thought, totally agree. Thanks for posting @spyoungtech !

Lastly, no matter how well-intentioned, this automation has enabled bad actors to hoard resources and unduly deprives other Amazon customers of fair use of the service.

You could say that, but if someone were to try to hoard up all the slots - Amazon would catch on to that pretty quickly, wouldn't they?

They've already gone through several steps to make the process more "fair" - that is, more "random". Slots used to open 3 or so times a day, usually at 1AM, 7 AM, and somewhere in the afternoon, always exactly on the hour. Now (as of at least 3-4 days ago) they randomize the time slots that become available, and they could appear literally at any time.

The program - at least from my single use of it, does not automate the buying process, it simply notifies you of a slot being available. The purchase still requires someone to be available to complete it - so it's not like an eBay sniping program.

So what's more ethical? Having a program simply notify you of a slot being available, or forcing all your customers to hit refresh for hours on end hoping to win the slot lottery?

In other words - is it OK if I were to sit in front of the computer all day hitting F5 every 40 seconds waiting for the order page to change? The end result is the same.

Here's how you keep it as ethical as possible:
Currently the script refreshes every 40 seconds? Keep it that way. Amazon can detect such behavior and block or notify users that such activities are not permitted. Simply do not obfuscate how the script works to Amazon.

To be unethical? Randomize the refresh times, to make it look like a human is doing it. Do things to avoid detection by Amazon.

@rworne
Copy link

rworne commented Apr 10, 2020

The problem with issuing tickets for a queueing system is someone will find a way to exploit it and a market for the reselling of tickets or your place in the queue will suddenly open up. If I have a confirmed order slot on 4/11/20 @ 5:15PM, I can sell that slot to someone. Also, slots will simply fill up, pushing the next available order window further and further out. Think iPhone sales on release day. Get in the order queue quickly, you get it in a day or two. Wait a few hours, and you'll get one a month later.

So now you have a queue that's 2-3 months long. How many times can you wait in the queue? Only once, to avoid abuse and squatting on slots? Now you need to order groceries for 2-3 months at a time? What happens to slots that are not used? How do you redistribute them?

The current "first come first served" system doesn't quite work that way, as you have no time to sell the available opening - as it will close in a matter of seconds, and your "buyer" may also have the same slot open. So it's worthless for resale.

The current system sucks, but it's the most fair one possible - especially now that it's random.

@jspiro
Copy link

jspiro commented Apr 10, 2020

Users here are not "hoarding" slots–we are getting slots.

While a script doing the refresh might violate TOS, there's not much of a difference between that and the luck of the draw–manually refreshing every day all day (like we've been doing)–and getting one slot every two weeks.

The real issue is that the system is unfair to anyone who cannot refresh an app every minute for days at a time. This tool violates TOS, but with some randomness in the timing, is indistinguishable from WHAT I HAVE ALREADY BEEN DOING, literally.

Amazon could pre-allocate a guaranteed slot every week, or every other week, for a certain store and give them enough time to get it. Or they could let me place my order and just tell me when I can get it... and let them do the scheduling.

If this was a real problem for them, there'd be a CAPTCHA challenge eventually. But I suspect it doesn't matter given they're not ready for a fairer alternative, and it would be bad PR to further prevent people from getting food.

@rworne
Copy link

rworne commented Apr 10, 2020

Hoarding slots makes no sense. Why make 10 $35 orders when you can do one $350 order? They don't limit the total amount you can purchase, so it's a waste of resources.

The only reason is to skirt around limited purchase items, and that can be fixed at the seller's end easily.

TP, bread, flour, eggs, and most cleaning supplies are easy enough to get on AF now that it isn't a problem to worry about. As when there are no slots available, they cannot sell out of them.

What I want to know is whether AF opens a bunch of slots at once like they did a week or more ago, or they pop one out every 10-20 minutes now?

@tatianajiselle
Copy link

tatianajiselle commented Apr 10, 2020

Wanted to hop in the thread here because i think it's an interesting thought. This system is only alerting people to new slots, it's not really finishing the checkout flow for them. Would this be considered an automated checkout system? or a notification system?

If it was a checkout system, i think it would be a much much higher risk scenario, where these "bad actors" are hoarding time slots.

Since this script is only alerting, i think it's a bit different. essentially what @jspiro and @mannix515 said

@spyoungtech
Copy link
Author

spyoungtech commented Apr 10, 2020

This system is only alerting people to new slots [...]

@tatianajiselle The issue nevertheless remains that the automation is prohibited, whether it actually checks out or not. It is also a significant change from how the system is intended to work; by circumventing the natural barrier of needing to be present when a slot it open affects the availability for other customers. It makes resources harder to get for others who do not use automation.

[...] there's not much of a difference between [...] is indistinguishable from WHAT I HAVE ALREADY BEEN DOING, literally.

@jspiro It is still a violation of TOS. Just because you see it as a minor convenience, more fair than the current system, or indistinguishable from your manual actions doesn't make it any less of a violation of the TOS or US law. Same as remarked above, using automation to get around what would otherwise act as natural barriers to shrinking supply available to other customers who do not use automation. Just because some barrier like a CAPTCHA doesn't stop you from using the automation also doesn't change those facts, either.

In short, you're still unbalancing the system to your advantage by using automation that is prohibited, which ultimately means others who do not use automation have less of a chance of getting a slot. Whether you are 'hoarding' slots or not doesn't really matter and would be a separate issue.

Hoarding slots makes no sense. Why make 10 $35 orders when you can do one $350 order?

@rworne Describing exactly how the slot system could be abused here would probably not be a good idea, but I'll just say that the orders wouldn't have to ultimately be fulfilled to abuse the system or cause harm to others. And whether or not someone chooses to get multiple slots or not, they would still be harming others.

@spyoungtech
Copy link
Author

spyoungtech commented Apr 10, 2020

Here's a scenario to demonstrate how using this automation harms others, even if you just use it to get one slot:

My neighbor is immunocompromised and is diabetic. They rely on Amazon Fresh deliveries of foods to keep their blood sugar regulated. Because getting food delivered to them is critical to their health, they spend many hours a day checking for available delivery slots. They forego many other activities they'd rather be doing to attend to the availability of deliveries.

Meanwhile, perhaps dozens of people or more in the same delivery area use this automation to snag slots that they maybe don't need as badly, but they get the slot before my neighbor because they get a notification and could snag it up within seconds. So even though my neighbor is refreshing fairly often for hours on end, the great disparity in effort created by this automation harms my neighbor, compared to a world where the automation is not used.

If the same level of effort was required by all participants in the system, those who don't need it as much would forego manually refreshing the page to do other activities. The bottom line is that use of the automation creates greater scarcity for those who do not use it.

@rworne
Copy link

rworne commented Apr 10, 2020

@spyoungtech
While your neighbor definitely needs this delivery service, pretty much everyone else does too. I may not be as vulnerable as they are, but I also take a severe personal risk going out and shopping that I would love to minimize if at all possible.

There are plenty of similar minded people just looking to avoid sitting at their keyboard all day. I don't consider any of them bad actors.

There are jerks out there too. It's unavoidable. I'm actually surprised it took this long for a script like this to show up.

We have a "fair system" that imposes a harsh burden on those who need delivery service. One where the time spent refreshing a screen all day just to get a slot is a test of endurance or sheer luck - and to waste all that time because slots happened to open up while off on a pee break.

There's nothing that can make the system more fair, except making more capacity on Amazon's end.

Anyhow, your concerns are perfectly valid. Abuse of this tool isn't good for anyone in the long run. It's just going to start an arms race of people looking for advantages until Amazon puts the ban hammer down and/or makes ordering a more onerous process.

@jspiro
Copy link

jspiro commented Apr 11, 2020

I agree with @rworne.

Total aside/personal anecdote below–skip it if you want to stick to facts.

Use != abuse. I'm speaking ethically not legally. IFF the tool doesn't change the likelihood of using a service, nor the frequency of use when used, then all it does is increase luck of finding a slot sooner, and freeing up your time to be a human being in the interim.

As someone that directly drives hundreds of thousands of dollars of business a month to Amazon, I'll happily accept a TOS violation. I could not care less. I hate how the company treats its workers and its sellers, and I look for every opportunity to give someone else my business, especially locally.

I am only using them begrudgingly since there are few other options for food in my area, and as it is my partner spent literal hours per day for 1-2 weeks at a time to get one slot–we've been doing this for a month. Now that we finally got a huge order in, we're out and not reloading the system for another two weeks, like would have happened eventually once we got a manual slot.

I don't feel a moral issue here–everyone that needs it deserves a large order 1-2x a month–just not a bunch of small ones. And my partner's time can now better be used on trying to find work than hitting reload or going out to shop and risk spreading infection.

That said, I'd be more than happy to get suspended and be free of them... after this situation passes. I appreciate this tool, it's given my family time and life back.

@spyoungtech
Copy link
Author

Thanks, @jspiro, I appreciate your perspective. I hope what you gain back from using this is more than what others lose, FWIW.

@rworne
Copy link

rworne commented Apr 11, 2020

@jspiro
I'm not advocating its use to "get back" at Amazon. I just find the ethical arguments fascinating.

So here's the benefits of a script:
Reduce "churn" in the shopping cart. If I miss a window opening, a half-dozen or more items can disappear from my cart, and now I have to go and see if I can find them again - because these items are what typically make the order worthwhile. In fact, this is what I was using in the past to figure out when they were opening windows in my area: 1AM, 7AM, and some time in the afternoon I didn't quite nail down. It was getting so bad as people caught on to this, that Amazon was slowing down considerably over the first 10 or so seconds after the start of an hour from hundreds of thousands of fingers simultaneously clicking a mouse... So what was I doing? Setting an alarm for 2 minutes before the hour. I'd go to the cart, see if anything was missing, add anything interesting that appeared while I was away and go to the checkout page and hit refresh at 1/2 second after the hour hit.

Every time I did this at the times I estimated slots opening, I got a slot. So how exactly is this different? Am I cheating?

So now they open them up a few at a time at random times throughout the day. If I sit down for an hour or two hitting refresh every 40 seconds and get a slot, am I cheating? I'm rolling the dice a lot more than most people are.

Should everyone get an equal chance or only the most determined? I actually think the former is best rather than the latter - regardless of my arguments in this topic.

As for fairness:
The current system is equal, but flawed. It's like we are all rats endlessly hitting a lever waiting for a sugar treat to come out of the machine.

What will fix it? I have an idea:

  1. An order "cool down" period - you get an order out, and if their system is slammed, you need to wait 7 to 10 days before it will let you order again. This makes for larger orders, and hence fewer slots being consumed by people making small orders. It also makes the system more fair as you cannot game it as easily.
  2. A page refresh cool down. You hit F5, you get a refresh, hit it again and it will make you wait a random number of minutes before letting you do it again. For this, they don't even need to tell you it's happening, just display the same info if you refresh more than x times every 5 minutes.
  3. Shadowbanning bots. If they detect bot-like behavior, just never display an open slot and optionally warn the user. Lift the ban in 24 hours or until bot behavior is detected again.

All that without them asking me to click on fire hydrants, bicycles, or crosswalks.

The script is a result of the flawed ordering process. It's really up to Amazon to fix it.

@pleasehelp001
Copy link

I’m a general citizen computer user in an older aged household with both immune and asthma disorders in our home. I signed up for this account service to specifically post a comment here regarding my concerns. First off I admire the care and creativity to make software that helped someone you loved. However, those of us with the same access problems and health issues don’t have the computer experience or resources to install this esoteric software. I went from being able to consistently get a delivery slot at 4am when I wake up early to having no ability to get a delivery at all. I couldn’t understand what this change was because our community shopping dynamics hadn't changed. Then I looked up how to get an Amazon time and found this.

This software discriminates against a variety of age/socioeconomic/ethnic groups already struggling during this time, that do not have access to the knowledge base or computer resource required to use the software. The software designer’s grandma may have flourished with the help of tech savvy folks like you, but now my elderly mother is at a loss and none of us have the skills and she doesn’t have the right computer to use this software. She orders Amazon on her phone and has an old PC. I’ve been waking up in tears trying to get groceries and Amazon was modestly reliable at 4am, now I’m at a loss.

Looks like Amazon has to solve this now for people like me but I wanted to share my experience because the gravity of this is truly profound. That’s quite a design legacy to create software that puts already overwhelmed and endangered people like us in a hunger games/war games dynamic competing with a computer to get real life food delivery time slots. At least I was only competing with other humans before. I’m truly heartbroken that I lost this option.

@tatianajiselle
Copy link

tatianajiselle commented Apr 11, 2020

@spyoungtech honestly, i have had better luck on my own refreshing the page and waking up at crazy hours than using this script.

Your example about a diabetic (etc..) requiring groceries being delivered as a higher priority is valid but also arbitrary. Who needs the slot as badly as someone else isn't a pre-requisite to getting a time slot (just the reality of the situation). There isn't a weighted/priority queue system here. Plus, I have asthma and am at risk as well, just because I'm young doesn't mean I myself am not at risk?

Alerting people to a time slot doesn't guarantee someone is going to get the slot, and more times than not, it doesnt.

I'd argue that there is a different root cause to this problem (the system itself set up via Amazon) rather than the fact that this script is the root problem.

@rworne
Copy link

rworne commented Apr 11, 2020

Looks like there's a non-Mac solution for Chrome out there too:

https://medium.com/better-programming/build-amazonfresh-delivery-slot-alerts-c9e12a429e23

This article predates the Mac script by three days.

And this (may be the same one or a derivative):
https://github.com/pcomputo/Whole-Foods-Delivery-Slot

Truly cross platform. Also has auto-buy.

So the playing field is level again.

@jspiro
Copy link

jspiro commented Apr 11, 2020

@pleasehelp001 I appreciate you coming here to tell your story. How did you discover this tool if you were not seeking it?

While I empathize with the difficulty in getting slots, as explained in depth already, your story implies a few hundred people across the nation somehow are stealing slots from you, that somehow your 4am slot was always there for you alone, and it's absence was criminal or unethical. Not the case.

First, as SIP continues, all of us are using up reserves and need deliveries again, making it worse right now. This is also hopefully the worst two weeks, which means more deliveries and less going out to hunt.

Second, you imply this is a zero sum game. That I stole your slot by getting one at 1:30pm in California that you normally get at 4am in Denver. That's not at all how this works. Maybe that'd be the case with national deliveries for a limited product or eBay, but not local delivery slots from a local store brought by a temporary worker. I was going to eventually get my slot as much as you were, determined and in need.

A gig worker wants to make money and said they'd deliver for Prime Now, at 6-8pm. A slot became available at 1:30 when they made that decision. I got it. That's how this works and why it feels so unfair and random. In your area, there aren't enough accepting work before the hour you check.

Amazon could do better by at least it queueing orders and saying they'd send them when they can. But they don't let us place it till they have capacity. Easy software fixable problem.

You want to complain, complain to the bald man running it that he could do better for his employees, sellers, gig workers, and customers, and nation.

@jazaval
Copy link

jazaval commented Apr 12, 2020

@pleasehelp001 thanks for your valuable perspective, and in particular creating a new account just to share it with us. While I agree that this sort of script is relatively esoteric, I think @ahertel has gone to great lengths to make this more accessible to those less familiar with AppleScript. Since it's creation, the README has been updated with step-by-step instructions, as well as screenshots and walkthrough videos details the configuration needed to get this tool working. This is in addition to the new user experience walkthrough that happens when you first launch the software.

That being said, it is unfortunate that this tool is only available to Mac users - it would certainly be more inclusive if people were able to benefit from this automation across multiple computing platforms. And while I agree that this inherently makes the software discriminatory against non-Mac users, there are other cross-platform tools @rworne has linked that make the same automation available to a PC user.

Ultimately, Internet-based grocery services already discriminate "against a variety of age/socioeconomic/ethnic groups already struggling during this time"; for example, those without reliable Internet service, a working computer, or even the means to afford the yearly Amazon Prime membership fees. I believe the privilege gap created by those disparities is far larger than the gap created by a previous knowledge of scripting and automation, or in this specific case, ownership of a Mac over a PC.

@ghost
Copy link

ghost commented Apr 12, 2020

Amazon forced Shadi Petosky, creator of the Danger & Eggs animated series, to curb her use of liberal talking points but refused to take NRA TV off the air.

An investigation from the Wall Street Journal revealed that online retail giant Amazon has been selling thousands of products that have failed federal safety tests, including children's toys containing four to 411 times the safe limit of lead.

Amazon retaliated against a worker who was protesting against the lack of precautions at JFK8, the largest Amazon facility in the most severe COVID-19 hotspot in the US.

You would be ethically better off never doing business with Amazon ever again rather than trying to obey their TOS.

@spyoungtech
Copy link
Author

spyoungtech commented Apr 12, 2020

Allow me to reiterate the main points:

  1. The software is harmful to others (Amazon and its other customers)
  2. It is unethical to write, publish, or use software that is harmful to others
  3. Automated access of this nature is against the conditions of use laid out by Amazon
  4. It is unlawful to access a computer system in a way you have not been authorized (I.E. by automation)

It does not matter:

  • if you think Amazon is an ethical company or if you like or dislike them
  • how fair or unfair the current system is
  • how available or accessible the automation is
  • how inaccessible internet-based grocery delivery is normally
  • how inconvenient it is to not use the automation
  • if Amazon could have designed or implemented their service better
  • if the automation is detectable or even perceivably different from permitted (e.g. manual) forms access

@jazaval
Copy link

jazaval commented Apr 12, 2020

What if I wrote an app that allowed me to hire a person to manually refresh the slot order page on their computer using their account credentials, and then text me when one was open?

Would that still be unethical enough to open an issue on GitHub? It certainly couldn’t be construed as against Amazon’s ToS. What if I just paid someone on Fiverr to write the app instead? Are they doing something unethical? We could probably skip a few of those extra hoops and just directly pay that someone to refresh the slot page for us. Is this really an inherently harmful or unethical practice?

I think @spyoungtech illustrated it best by saying “the power for abuse lies in the user's hands”. If someone is immunocompromised and uses this to find a slot because it’s their only safe option, I think most people would place that user on a separate portion of an ethical spectrum than someone who places multiple orders a day because they’re searching for the best flavor of sparkling water, but doesn’t want to buy them all at once.

@spyoungtech
Copy link
Author

spyoungtech commented Apr 12, 2020

You make a good point, @jazaval -- no, I wouldn't say hiring someone to refresh the page for you would be inherently harmful or unethical. It also probably wouldn't be a violation of the conditions of use or a violation of law. However, the economics of those situations aren't equal.

Price ceilings, effort & costs during a shortage

One key difference to consider is the cost. Think of time/effort required to get a delivery slot as a surrogate for increased cost in dollars. In absence of Amazon raising costs (price ceiling) and not enough supply to meet demand, a shortage is created. Another effect is happening at the same time: the additional effort required to get a delivery slot counters the effects of the price ceiling; increased effort needed (cost) means reduced demand and reduced shortage.

The problem that the automation creates is that it lowers the effective costs for those who use the automation, thereby increasing demand among automation users and causing a greater shortage. The burdens of that increased shortage are borne entirely by non-automation users.

Inequity of burden

The reason why there is an inequity of who bears the burden is because of inequality of opportunity that automation creates where automation users have increased opportunity to consume the available supply. The supply available to non-automation users is roughly whatever automation users do not consume; if automation users demanded the full quantity supplied by Amazon, there would be virtually no supply for non-automation users. The closer we approach that point, the more effort (cost) is required to get whatever delivery slots remain unconsumed by automation users. Non-automation users are invariably 'priced out' of the market.

Thus, given the inequality of opportunity presented by automation, amid a shortage, one group (automation users) will always be doing direct harm to another group (non-automation users).

Ill-gotten gains

Not only is the economic advantage that automation users gain not only invariably achieved at the economic detriment of others, but those gains are also ill-gotten because the automation itself is used in violation of established rules and laws.

It's not just a matter of being faster/smarter; ethics definitely come into play here, too. A thief cannot shrug off moral responsibility for breaking the law because anybody can go buy burglary tools and be a thief, too.

How it could be different

Equity of opportunity without automation

If nobody used automation, there is no longer inequity of opportunity, allowing free market principles to work. One such principle is elasticity of demand which would result in people who need the service the most getting it, because they'll be willing to spend more time trying to get a slot (willing to pay more, essentially). Inequity of opportunity disrupts what is arguably a fairer distribution; those who pay more get goods in a shortage. However, people are still having to spend time getting delivery slots, which seems like a real shame.

Equity of opportunity with automation (or some equivalent)

If distribution of slots were determined entirely by the service (or say, if everybody used automation and all had exactly equal opportunity to get a slot), you would lose ability of market to give goods to those who demand them the most, but there would be an interesting net gain in a utilitarian sense, since nobody would be 'wasting' time trying to get a slot. Some of that value is also seen when people use automation today because less time (money) is wasted in total. Though, I don't see how those values could reasonably be calculated.

To answer your question...

All that said, to answer your question @jazaval : I do think it's worth opening a GitHub issue and that these ideas are at least worth discussion. I have a stated way of viewing this issue I think is worth sharing, but my mind could be changed. @jspiro brings up an interesting thought:

I appreciate this tool, it's given my family time and life back.

A utilitarian argument could be made that the time reclaimed by users of automation produces a good that outweighs the detriment is causes to non-automation users and any moral costs, if considered.

My stance, however, is not governed by strict utility. I place a lot of weight on the idea that software should not harm others and that we should obey rules and laws. Every harm caused by the carelessness of software engineers brings the profession one step closer to being regulated like medicine or law. In times like this, I begin to think I might welcome licensing as a requirement to publish code.

@spyoungtech
Copy link
Author

spyoungtech commented Apr 12, 2020

I think @spyoungtech illustrated it best by saying “the power for abuse lies in the user's hands”. If someone is immunocompromised and uses this to find a slot because it’s their only safe option, I think most people would place that user on a separate portion of an ethical spectrum than someone who places multiple orders a day because they’re searching for the best flavor of sparkling water, but doesn’t want to buy them all at once.

I guess this is also just the shorter version of the above.

If your demand for delivery is perfectly inelastic, e.g. you're immunocompromised and really really need it and would have spent every waking moment trying to get a slot, you're probably not contributing to the inequity of opportunity described above by using this tool. Moreover, you don't waste time trying to get a slot you'd have been absolutely determined to get otherwise; maybe that reclaimed time is even well-spent helping society.

The more elastic your demand is, e.g. you're more like the person searching for the best flavor of sparkling water, the more you are contributing to inequity by using this tool.

Although using the tool in any circumstance is still a violation of established rules and law, that alone may not be a compelling moral argument, depending how you view those particular rules/laws.

@ghost
Copy link

ghost commented Apr 12, 2020

In 2011 Amazon employees were forced to work in a 114F degrees at a warehouse in Lehigh Valley, PA. Amazon kept paramedics in the parking lot of the warehouse to treat employees who were fainting, suffering from dehydration, or exhaustion. Please stop using the terms "ethical", "ethics", "moral", etc. in this thread as doing any business with Amazon is unethical and immoral with or without a script.

@spyoungtech
Copy link
Author

@mettacrawler that is a straw man argument and irrelevant to the context of writing, publishing, or using this tool. The ethics of Amazon's business practices at large are not part of the issue at hand.

@ghost
Copy link

ghost commented Apr 12, 2020

If someone was jaywalking when they committed murder would it matter? Doing business with Amazon is unethical and immoral regardless if the business is conducted with a script that lets you virtually cut in line. Please reduce your scope to only legal issues not ethical ones.

@rworne
Copy link

rworne commented Apr 12, 2020

Using the script is not "cutting in line". You do not bump anyone from a queue while using it - as there is no queue.

It's a virtual room full of machines with everyone pulling a lever trying to get a prize. Everyone has an equal chance at each pull, just the script users pull the lever more consistently and for a longer time than others do.

@spyoungtech
Copy link
Author

@rworne I don't think that's really the case.

There is a fixed supply of delivery slots and demand for deliveries is higher than Amazon can supply. By using the script, you reduce the supply for people who do not. If enough people used the script, only people who use the script would be able to get a delivery slot; it creates a huge disparity in equality of opportunity.

Not only are you 'bumping someone from the queue' -- you are effectively pricing them out of the market for delivery entirely, as I explained in my previous comment.

@drewpi
Copy link

drewpi commented Apr 12, 2020

Only ethical thing to do in practice is to tell as many people about the script as possible. Either everyone ends up using it or more likely volume of usage gets high enough that Amazon takes steps to neutralize it.

This is an obvious script to create so trying to memory hole it just puts it beyond casual people’s reach, making it way less likely that amazon ever develops an engineering fix to stop the use of these scripts.

@rworne
Copy link

rworne commented Apr 12, 2020

@spyoungtech

It is just as I described.

The script (at least when I tried it) pulled the lever every 40 seconds. During that 40 second gap, any number of other people - or script users - could pull the lever too.

In fact, if one were to refresh the screen every 10 seconds - which is around what a typical person would do trying to get a slot manually - they would have 4x the number of chances the script would have. Slots could also pop up 10 seconds after the script checks and close 20 seconds later and the script user would never know it was available.

A person hitting refresh manually and grabbing a slot would consume it as well, in fact there's a higher chance that a random refresh would consume a found slot than the script would. Because the script just stops and tries to alert the user. Having a slot on your screen does not mean it's committed to you, everyone refreshing at that moment will see it as well. If you do not act quickly enough (mere seconds) it will close based upon who can finish the checkout process the fastest. Hearing the chime and getting of the phone, sofa, toilet, etc. going to the computer, unlocking the screen, then completing the checkout process would take 10-15 seconds? That's usually too long to get one. You pretty much have to be sitting at your computer anyway watching Netflix or something when the chime comes.

To use the script to create your disparity - one would have to shorten the time it wait for the refresh - to really short - 1 second or so, and hammer Amazon's server. That way they would be notified of every slot as they come up, when they come up, immediately. Complete an order, fill the cart again, then start spamming the server for another slot. Behavior like that would be noticed by Amazon. It's far easier to just make a single order and quit - unless someone was using this script as a side-business: selling access (or giving access to those in need) for orders.

In regards to your previous comment: there is a fixed rate of slots being made available. While there are people who definitely have more of a need for Amazon's services than others, there is no way Amazon can divine the needs of each individual, even if Amazon has a desire to help those in greater need first.

So anyone who walks in the virtual door when it is open gets an opportunity to order.

That's it. End of argument on who deserves to get a slot.

For the TOS and legal issues:
"This license does not include any resale or commercial use of any Amazon Service, or its contents; any collection and use of any product listings, descriptions, or prices; any derivative use of any Amazon Service or its contents; any downloading, copying, or other use of account information for the benefit of any third party; or any use of data mining, robots, or similar data gathering and extraction tools. "

Amazon's TOS is geared towards 3rd party scraping of their site to harvest data (inventory, pricing, etc) and to prevent people from inserting themselves as middlemen. It mentions bots, but what exactly is a bot? It says afterwards "similar data mining or extraction tools" - so they actually mean web-crawlers not obeying the robots.txt file on their website.

And I just checked the robots.txt, the checkout page with the slots is not currently disallowed.

As to the legality, we have this:
https://www.eff.org/deeplinks/2020/04/federal-judge-rules-it-not-crime-violate-websites-terms-service

So legally, I guess it's just fine to violate the TOS, until Amazon shuts you down. Then you try to circumvent it, and now you are in a legal quagmire.

None of what I said above excuses asshattery by people abusing the system..

@jazaval
Copy link

jazaval commented Apr 12, 2020

@spyoungtech I do appreciate you opening this issue. This is a remarkably healthy and civil exchange for internet strangers in a public forum. My question was framed mostly to get a sense of the harms threshold necessary to trigger such a submission, because I believe no system can reduce harm everywhere equally.

I agree with @rworne that it's not "cutting in line", but I also agree with you that it is "bumping someone". The best real-world analogy I can think of is to pay someone to get in line (fairly) and then stay in line on your behalf, until it's your turn to purchase some item in high demand. The reason I extrapolated the act automation into an extra dollar cost (hiring a worker to refresh the page) is to demonstrate that some users are indeed simply being "priced out" of the delivery market, which is similar to a conclusion you reached. Unfortunately, this is effectively normal for our economic system of "rugged individualism", especially in times of high market demand. Whether they're being "priced out" by dollars, scripting knowledge, or free time available to hit the button themselves is ethically irrelevant. There are essentially three winners when demand is high:

  1. People with a bigger supply of money than time or knowledge, for whom hiring someone to find them a slot isn't an issue
  2. People with a bigger supply of time than knowledge or money, for whom refreshing the page continuously for many hours isn't an issue
  3. People with a bigger supply of knowledge than money or time, for whom writing esoteric automation isn't an issue

While disenfranchising those with no excess supply of any of these things is never something to aim for, it is pretty unavoidable in a truly free market. Many free markets, like the Seattle housing market for example, are even more ruthless; people in the first category are far better suited to purchase a home in a high-demand neighborhood. You can do all of the extra scouting and market analysis you want, but if someone is paying a realtor enough money to do the same, they'll just make a bigger offer than yours on the house you're trying to buy. This is the same harm model as depriving others of a food delivery slot; pricing people out of an essential human need. Should we ask Zillow and Redfin to delete their code because it's contributing to housing market harms? Or should we support their democratization of a "market edge" by giving people access to regularly refreshed feeds of new homes without paying a realtor?

Personally, I think "rugged individualism" as a philosophy to obtain essential human needs such as food, housing, medical care, etc., is pretty terrible. I think we'd all be much better off if every household registered with a centralized distribution service (run on tax revenue) that assigned everyone semi-monthly delivery slots. We might end up with fewer varieties of sparkling water, though, and that could put a real damper on shareholder margins.

@bportman
Copy link

Someone said Amazon needs to create a queuing system. That will not help the shortage. All they need to do is float the delivery fee so that the quantity of supply and demand can reconcile. There would be no need for this script then and instead everyone would be equally inconvenienced by the increased market price of delivery. For the most part I think people spending hours hitting refresh would willingly pay $20-40 extra for a delivery fee to get that time back. I suspect Amazon is afraid that letting the market work its magic here will bring a PR firestorm upon them.

@rworne
Copy link

rworne commented Apr 13, 2020

Not a queuing system, a cool down.

Floating the delivery price eliminates the most affected groups disproportionately, and makes this a rich man's game.

A cool down "punishes" people who order, and can punish those who order frequently even more. so whoever orders, gets eliminated from the competition for a set period of time. That time can be adjusted based upon the congestion in the system. As time goes on, the aggressive people eliminate themselves, making competition less fierce for the disadvantaged.

Now your method could work if the excess fees were used to purchase goods for local food banks. Now that's an idea...

@bportman
Copy link

I must have skimmed over the cool down idea, long thread to catch up on. Not bad. For my idea I think the excess fees should help to increase the supply of delivery workers thereby making the system return to a lower equilibrium price over time.

@rworne
Copy link

rworne commented Apr 13, 2020

@bportman

From what I've read, there's a limit on how many deliveries can be processed due to social distancing at their facilities. It's not due to a shortage of drivers. With unemployment the way it is right now, there should be a lot of people wanting to be drivers.

Taking the fees and using them to donate food to food banks in bulk (say, by the truckload) will then have community volunteers take the food to people who are shut in/high risk - a more efficient flow, and they should know who is in need. Foodbanks will likely get higher quality items too, as they can get a percentage of what stock Amazon sells for delivery instead of leftovers.

@rworne
Copy link

rworne commented Apr 13, 2020

Looks like Amazon is addressing the issue (dearth of slots, not the script):

"The company said it is hiring more workers to expand capacity and that it plans to launch a new feature that will help customers secure a virtual “place in line” to distribute the delivery windows on a first come, first served basis. It also offered higher pay to encourage its warehouse workers to work for its grocery delivery service."

https://www.reuters.com/article/us-health-coronavirus-amazon-com-grocery/amazon-stops-accepting-new-online-grocery-customers-amid-surging-demand-idUSKCN21V0CO

If they are going to schedule appointment windows to anyone that comes, then the script will be more or less useless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests