This took me a while to figure out, but it’s incredibly powerful once you get it. As others have suggested, I was working on a Redux-based interpreter.
REST allows for clients and servers to evolve independently. If you can constrain that you can probably design something significantly simpler. That’s not a shortcoming of REST, though. The channel between your mobile client and your backend would probably be better served with something more like RPC than academic REST.
HATEOAS is designed so clients and servers can evolve independently, like on the open web. If you control both ends, HATEOAS is probably overkill. (And that’s ok.)
The problem isn’t the schema, it’s that you must have exactly one at all times. Sometimes you need zero, sometimes you need many. Having a fixed schema in production reduces unpredictability and provides optimization opportunities. The journey to get to that fixed schema, however, generally benefits from more flexibility.
Or your data is…you know…mark-up. Imagine a biology textbook, or legal contract, with inline citations and entities. There’s lots of marked-up human text around, even if that’s not what you’re sending to a JavaScript front-end. (Ironically, all of our JavaScript front-end frameworks are ultimately building mark-up as documents for human consumption.)
If you control both the client and the server, there are lots of shortcuts you can take. As you say, that’s not the problem that REST was trying to solve, though.
This was nothing but a ring-kissing ceremony only to boost Trump’s own ego. The entire Trump campaign has been a sophomoric revenge fantasy exacted against the (actual) elites who have excluded him his entire life. Trump is not interested in solving problems—that’s hard work without clear benefit to himself. This meeting was a public airing of the fact that he “won” and now those with real economic or social power need to kowtow to him. Having his children there only reinforces this. It would have been refreshing for someone—anyone—to object to Don, Eric, and Ivanka being present.
Argh! They didn’t charge for the component of their offering that was most valuable. Period. Good software doesn’t pay for itself. Consulting and training are difficult to scale, mostly because they require adding people. As such, the margins are minuscule compared to software. “Free” gets you downloads and publicity, but it doesn’t pay the bills. I really liked Rethink’s story and how well they executed things like branding and developer outreach, but without being able to capture the value of what they were producing it’s hard to see how that’s sustainable.
This is a cultural problem not a technical one. The social contract in a dev team should strictly enforce no cowboy commits to master…ever. If Bob thinks that’s OK, there are more issues than a UI warning is going to solve.
This looks really cool, but I still don’t understand how Rethink plans to cash out their VCs, though—~$12M, according to Angel List. Cloud hosting is trending toward zero and support/consulting only scales with people. I’m not to trying to be (intentionally) critical; I’m genuinely curious and hoping there is some business model innovation going on here too.
ACID transactions in a highly available distributed system are hard and often fail in subtle ways when done wrong at the edges. Any implementation will take years to mature in the lab and in actual production usage. This isn’t a knock on the Rethink guys; their product looks pretty awesome and is moving quickly.
For a solution today, MarkLogic is a transactional distributed document database. Cross-document and cross-partition transactions have been a key tenet of the architecture from the beginning (like, 2002 beginning). Take a look at https://developer.marklogic.com/blog/how-marklogic-supports-... for details.
Full disclosure: I’m a Product Manager at MarkLogic.
Maybe "efficient" would have been a better word than "good". I have no doubt that Uber is pricing to benefit their shareholders, not the public good. That's why the taxi fare regulations are there in the first place.
"Couldn't afford" is a loaded term. I can afford a helicopter ride home, but I don't value its utility enough to pay what's being asked. Isn't that how prices are supposed to work?
Great read and thorough approach. However, it's worth noting that Uber provided the data for this study. I'd imagine they had an idea as to its conclusions before they provided it.
The findings are intuitive and validate that surge pricing is an overall good thing for the market.(Yea, microeconomics!) However, the cynic in me isn't sure we'd have seen a study that didn't come to that (positive) conclusion.
How does an agreement between an academic and a data provider work to prevent this sort of bias? (In the general case. I have no evidence of that in play here.)