When it comes to content, Indian's don't think of it as something tangible.
The main reason though is downloading content through torrents is considered the way to go.
I feel with Netflix and Prime are out there to capture this market, with TVF being the local player, this change of philosophy is just starting to shift.
Does agile or any other software development process matter so much in a startup? I've worked in 2 startups so far and there has never been a formal way of developing software.
The delete flag in the DB could be null or the date the delete was requested. You could batch the commit cleanup hourly giving a delete at least X hours before it's committed.
It depends on how you interpret “delete”. Most people seem to want to make it synonymous with “erase”, but it should really mean something like “forget”. In that case, it’s easy to see how you would implement “undo”: just drop all (root) references to the record(s) in question and collect as garbage at a certain time (in, say, 30 days).
Another standard way is with the command pattern, and using one "undo" stack, with another "redo stack". When you perform a command, a command object is pushed onto the "undo" stack. When you undo a command, it's popped off the stack, its undo() method is called, and it's pushed onto the "redo" stack. When you redo a command, it's popped off the redo stack, and executed. When you execute a new command (not an undo or redo) you push it onto the undo stack and clear out the redo stack.
There actually is another way. Event-Sourcing. I've never seen this technique in my limited experience though, but theoretically this would be the optimal way to implement such a feature, and obviously has to be a engineering decision from the get-go.
Alternatively you could also have a very primitive form of version control : recycle-bin (edit: actually this is the same as point 1 =) )
"Similarly, Joseph Gentle who is an ex Google Wave engineer and an author of the Share.JS library wrote: Unfortunately, implementing OT sucks. There's a million algorithms with different tradeoffs, mostly trapped in academic papers. The algorithms are really hard and time consuming to implement correctly. ... Wave took 2 years to write and if we rewrote it today, it would take almost as long to write a second time."
A useful analogy might be how accounting ledgers work. You never really delete anything; you just keep appending records saying what you've done. The balance is just the sum of all those operations. (Ledgers are a bit special in that usually all the operations in a ledger are commutative (+/-), but other than that it seems a pretty good analogy.)
First you start treating each event/operation as a fundamental part of your problem. Each Event can then have a opposite reverting Event. So if you want to reverse an action, you can just apply the opposite event. You can also display a list of recent events that have taken place easily:
- user X modified article Z
- user Y deleted article Z (revert?)
Note that I've only studied this in passing, and have never applied this in practice, so I can't answer just how effective this could be. Also not really sure how this works when other actions have already taken place, or how you can detect if an event cannot be recovered from (if there is such a thing).
That's really the MacOS vs MSWindows disagreement, and then the "whom should we emulate?" disagreement among Linux desktop people. Oh, and the OpenWindows and CDE people before them.
I'm biased, but I think of this as another one of those "well, Microsoft got it wrong, but people are so used to it now that we have to perpetuate it or we look like we're just willfully antagonistic" situations.
User studies can be produced to prove either side, of course.
How do you play against someone who does not follow the book openings? I usually find it hard to tactically have a book opening setup and then develop on top of it.
Yes, we have this in memory. And at the highest level, extremely important.
The more important lesson is to analyze the opening position for the plans and thematic patterns at crucial junctures. Then, with critical positions memorized, you can usually work through the necessary moves at the board.
The main reason though is downloading content through torrents is considered the way to go.
I feel with Netflix and Prime are out there to capture this market, with TVF being the local player, this change of philosophy is just starting to shift.