Does unsubscribe link need to be idempotent? [closed] - http

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
So we have an unsubscribe link - this is by it's nature an HTTP GET.
The appropriate RFC says this should be idempotent but to my mind the user expectation will be that they are clicking a link to take an action.
I've implemented this so that the link takes you to a page that has a big confirm button which then updates your subscription, confirms that and displays the final state of your account (we have more than one type of subscription)
But I wonder if it would not be a better UX if the person simply skipped the confirm button stage...
The answer to the question "Am I overthinking this?" is definitely yes but I wondered what people's views were on balancing the best practice of an idempotent GET with the best practice of not confounding user's expectations...

I'd say it doesn't matter what RFC2616 section 9.1.2 says, because you're already violating the much more important definition in seciton 9.1.1:
In particular, the convention has been established that the GET and
HEAD methods SHOULD NOT have the significance of taking an action
other than retrieval.
Imagine the effect of a web-crawler (e.g., Google) following all the links from one of your pages that contains this link. Do you really want that to cause an unsubscribe operation? That would certainly be a bad user experience!

Idempotent means, in this context, that no matter how many times you click on the link it will do the same thing, i.e. unsubscribe you. There have been some solutions that will resubscribe you if you return, a kind of flip-flop approach, i.e. non-idempotent. Whether you implement this as an immediate unsubscribe (my preferred approach as a user who's motivated enough to click the link is sure that's what they want to do) or a page with a confirm is up to you. Just make sure that no matter how many times a user clicks your link and completes the process that they are, at the end of it, still unsubscribed from your list.

The interesting question is not whether it's idempotent, but whether it's safe. It is not, thus a simple GET (which, for instance, might be prefetched), is wrong.

Related

What does "E2E use case" mean? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 5 years ago.
Improve this question
I know what is "use case", but I haven't any idea about "E2E" in this context.
What does "E2E use case" mean?
It should be "End to End" Use Case.
As Emil said it means End to End.
As with most terminology it can mean different things from company to company. So always ask your group to explain what they mean with this word.
For me an "End to end use-case" means a list of steps that follow the full process from beginning to end. For example buying some from a web-shop:
Open website
Put stuff in basket
Register a new account
Pay
Receive the order confirmation
Receive the shipping confirmation
Get the actual stuff
In the world of software development I would also add that it uses the full-stack (e.g. from UserInterface till database and back) as it would be in a production environment.
Other reads:
UML E2E use-case example: http://www.modernanalyst.com/Resources/Articles/tabid/115/ID/2017/End-to-End-UML-Use-Case-Diagram.aspx
In my practice 'e2e' means 'End to end test scenarios' and defines business-relates scenarios.
Not checking button is checked only or control contains expected value, but describes real business processes, the value user gets moving through this process.
So this processes should be automated or checked with higher priority than others.

When is a web page or project considered complete? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I have been asked to design a website for a client as a "side job". I am trying to write up a statement of work for the project. In the past, I have done similar work, and often run into a situation where I believe the work is "done", but the client wants endless tweaks and changes. (As you know, websites are perpetually "under construction").
When you have requirements such as "Design a Home page, design a Contact Us page" how you define a page as "done"?
Don't put anything live, until they accept your work is complete. This should be enough of an incentive for them not to string you along, and allows them to have the quality website they require.
Ask the client to set up a requirements specification for version 1. When you met the requirements contained in this document is your job completed. Everything else belongs to the next version.
In the same situations, I tell my client "you want A, B, C and D. OK, sign here, and we are agreed that the end of application is A-D. Now if you wanted something more in future, it is not a part of our contract, so we'll deal with that in future and of course it has it's own price." This way you make them think before signing and lot's of things become clearer, and lots of needs show up suddenly, but in future they'll either pay more for more needs or won't talk any more :)

Modeling discussion topics in Inform 7 [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I'm trying to make it so that a player can ASK [PERSON] ABOUT [TOPIC], TELL [PERSON] ABOUT [TOPIC], or THINK ABOUT [TOPIC] in Inform 7. I started like this for modeling THINK ABOUT [TOPIC]:
A topic is a kind of thing. A topic is either known or unknown. A topic is usually unknown.
Pondering is an action applying to one thing. Understand "ponder [something]" as pondering. Understand "think about [something]" as pondering.
Carry out pondering:
If the noun is a topic, say "[description of noun]" instead.
But then I realized that I'd probably want the same mechanism to be used for thinking about both abstract topics and concrete things. I've also got the problem that unless the topic is a concrete thing that is present in the room, Inform considers it out of scope. I don't know how to solve that. At the same time, I do want most topic to start out as out of scope, but come into scope as they are suggested by previous topics.
In thinking about what I'm trying to accomplish, it seems rather similar to the system used by Emily Short et. al. in Alabaster. The source imports an extension called Threaded Conversation, but I don't see where that comes from.
In short, I need a conversation system which:
allows discussion of both objects and abstract concepts,
allows discussion of things not present,
restricts discussion to things the player is aware of, and
allows new topics to be brought into scope by other topics.
Your best bet at this point probably is to adapt Eric Eve's Conversation Package to your needs; it's found here: http://inform7.com/extensions/Eric%20Eve/Conversation%20Package/index.html.
The system Alabaster uses isn't yet released.
(also, it's pretty awesome to see I7 questions here, but if you have pressing technical questions you're probably better off at the Intfiction forums).

How to handle flagged content in a community? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
On a multi-lingual community with almost only user-generated content, is there a commonly used way to treat flagged content (profanity, racism, general illegal stuff etc)?
As there will be a lot non-english content, the only way to handle the flagging itself is crowdsourcing by the community itself and somehow automaticly hide/delete the flagged stuff at a threshold. But what method could be used to stop abuse? e.g. "I don't like him, lets all report this and get it deleted"
FIrst of all, it depends on your content.
But in general, I would start by hide/delete the flagged stuff at a threshold.
When the community grows I would add crowdsourcing and create a balance from both.
I would also do a general scan on all posts to search for keywords which might lead or contain bad content.
Also, you will need to create some tolerance as some posts might contain a reference to illegal stuff but intended for god reasons.
ex: dont take drugs
If the community builds well, I would mostly rely on it.
Another option you might consider is to allow your users to "hide" other users, i.e. not see the content of hidden users.
This allows people to "remove" other users that they don't feel contribute to the community.
You could also allow users to report bad posts, and allow a human to decide whether or not to hide or delete the post. You would have to have community rules for this to be effective.

What is the best way to monitor community-driven websites like stackoverflow, digg, etc? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I've tried RSS feeds, but these always-updating sites that have tons of entries per day just fill up my poor reader. I do keep my Google Reader, I monitor quite a few feeds, but they are all (with the exception of Lifehacker and icanhascheezburger) feeds that have at most one or two entries per day.
Right now, I keep a bookmark in my toolbar for Stack Overflow and click it at random times, whenever I'm not doing anything, but I always feel like I'm missing the important posts by taking random samples.
How do you monitor stackoverflow? What's the best way to get the best information out of it while not having to deal with the questions that I neither care about nor have time for?
How did you find this question in the sea of questions here on stackoverflow?
I use Google Reader with 3 different folders. "Personal" is for sites which only update 1 - 2 times a day and which I will read through carefully. "News" is for sites like the NYT which have ~10 updates a day and I would like to at least skim through to find interesting content. "Browse" is for sites which are a flood of content and I go through it when I have the time.
This way, you can make sure you keep track of all your important content and also see stuff like SO.
did you try the "interesting tags" feature here at SOF ?
Have you heard of Yahoo Pipes? IMO this is an incredible tool - you take an RSS feed and pipe it through some filters. For example, you could filter all SO questions that contain the keywords you're interested in.
How did you find this question in the sea of questions here on stackoverflow?
I just check the front page regularly, but I'm lame like that.
I try to spend 30 mins browsing through all the new questions in SOF. I visit other forums I follow and read "New posts"!
I also subscribe[email] to important posts!
I use Google Reader - it updates regularly, and I rarely miss on any feed item which interests me. Yep, there's quite a few of questions on stack', but you put your viewer in "list view", and it works ok. It's also better than having to scroll down the main page on stack'.

Resources