Thanks, I know `||` in general--I meant I hadn't seen the specific construction GP had used. The error handling to delete the output file in case the command failed is really elegant.
>Fun fact: ASCII actually reserved control characters for this stuff. 1F is the "unit separator" and 1E is the "record separator". There is even a "group separator" (1D) and a "file separator" (1C).
Which means you can't safely use it for arbitrary data (since your records themselves could contain these separators). Most of the time that doesn't matter; sometimes it does.
Why not have Apple require apps to run usefully with just basic permissions? Anything beyond access to own files is optional. This could certainly be gamed, but scrupulous app authors could gain a ton of trust from playing ball.
In about a year of using Campfire, I never saw a single bug fix or new feature. We've since moved to HipChat, and while it's not perfect, it's so refreshing to pay for a service that gets regular updates (not to mention has decent mobile clients).
Rollback is essentially like a fork to the past. It creates a new database, but only replays transactions up to a specific instant. It's based on the Postgres Point-in-Time Recovery feature: http://www.postgresql.org/docs/current/static/continuous-arc...
Oof, you're right--sorry about that. The addons page [1] has the right pricing, but our own pricing page is incorrect. I'll make sure we get this updated. Thanks for pointing it out!
While I agree this is not a huge engineering endeavor and Yahoo could do the Internet a solid by making this work, our free dev databases are limited to 10k rows (and, as the name suggests, intended for development). Please don't put a billion in them.
General usability is important in pretty much all interfaces, but discoverability isn't. There's a big difference between designing an interface a user will be instantly familiar with, and one that's optimally suited to the task at hand.
That's absurd. The law of diminishing returns comes into play, and for most cases, assembly is just not worth it (whereas C or C++ is). Rust seems like another interesting take at that sweet spot, but it seems like in Go this was an afterthought (though to be fair, the performance benefits of C / C++ are often cargo-culted even when that kind of performance is completely irrelevant, so Pike still has some valid points).
Your mechanism is clearly safer, but the user is required to clean up `foo.tmp` themselves in case of failure, so it's not really comparable.