I think they're valuable, both because they get you to think through the actual functionality (and underlying implementation) of the software, and the make sure that you and the [person you're developing for] are roughly on the same page. Plus, every edge case or design issue you catch while writing the spec saves you a ton of time.
That said, I think a big weakness of specs is that it's just not possible to write a perfect spec that doesn't have any blind spots and covers all the edge cases and issues you'll run into when actually developing. This makes it more difficult to hold the customer accountable to the spec, since you (the designer and devs) can't really be accountable to the spec unless you want to deliver some overly literal, not-actually-helpful product.
Fun piece of trivia, Joel published one of his functional specs.[0]
As a huge fan of Joel's writing and engineering ideas, I was actually underwhelmed by his spec. It wasn't bad but it also felt like he missed a lot of opportunities to articulate design decisions to the reader more quickly or clearly.
One obvious mistake is that there's over a page (in a 20-page spec) just dedicated to coding conventions and what prefixes variable names will have. I think Joel later conceded that it was a mistake to cover naming conventions in a spec, though I can't find a link now.
I definitely agree that it's not perfect. I think he's a great starting point though, because when trying to get engineers to document stuff (something typically approached with similar enthusiasm to having their teeth removed with a hammer) it really helps if the "how to write a spec" doc is somewhat fun to read.
Unrelated - I really dig your "my [x]th year as a bootstraped founder" series.
Everyone writing off AI-related risk in this thread should think about what would need to happen for them to consider AI a serious existential risk. It can be outlandish and unlikely (close call with a bioweapon? unsupervised persistence in a data center?) but people should honestly call their shots and then stick with them.
No. The person making the improbable argument is required to provide an affirmative case for that argument.
It's not my job to make the argument for them.
For what it's worth, I have done your suggested exercise, and I find every causal link (including the ones brought up by luminaries like Amodei) to be outrageous and poorly argued. But it's not my job expend effort to make their outrageous arguments better.
But it doesn't do that. "Imagine how you'll be wrong in the future" is just as shiftable as anything else, and has the distinct rhetorical advantage of being unfalsifiable.
The substantive difference is that you're asking me to dream up ridiculously improbable scenarios, which is probably the actual point. Just like "The End is Near Accept Jesus" guy on the street corner gets what he wants as soon as I engage.
To quote a famous movie about doomy AI scenarios: "the only winning move is not to play."
I think I'm coming across as confrontational, which is genuinely not my intention - sorry about that. Not trying to score points or anything, just encourage people to introspect a bit :)
I think your viewpoint is totally valid, and I'm not trying to argue against it.
The bar is high, but there's probably some combination of events (combined with a high confidence in my own lucidity over an extended period of time) that would convince me.
It can be subjective, because it's internal to you and not something that gets litigated or whatever. A close call is anything that you personally consider to be a close call.
I'm not asking you to post it here, I'm asking you to think about it and then remember it in the future, should the event ever occur.
I'm not asking for justification, just for people to introspect about what, if anything, it would take for them to consider AI a serious threat. No justification needed, and really no need to post it here, just think about it and remember it in the future.
At this point, the most likely scenario for AI producing a serious existential risk is making us all want to bash our heads in because of "the honest options" and other claude-isms.
I was surprised at the high voltage required… but resistance loss scales with the square of amperage, so it makes sense that for long distance power transmission, you have to keep amperage low and voltage high.
The total came to roughly $150 for the cards and another $100 for shipping + import fees -- so roughly $8 each. That's more than I hoped, but the ENIG finish, 0.8mm thickness, and higher-quality silkscreen added up.
If I were to purchase, say, 150, the marginal cost would go down greatly, and $8 is low enough that I'm still happy to give them to folks at career fairs.
There is something uniquely sad and frustrating in how the victims of this story - the plant workers - were so resistant to the idea of the contamination being dangerous.
Binvis has different color modes. One of them shows entropy. Compressed or encrypted data shows as very bright in the entropy mode, and repetitive data as dark.
I think they're valuable, both because they get you to think through the actual functionality (and underlying implementation) of the software, and the make sure that you and the [person you're developing for] are roughly on the same page. Plus, every edge case or design issue you catch while writing the spec saves you a ton of time.
That said, I think a big weakness of specs is that it's just not possible to write a perfect spec that doesn't have any blind spots and covers all the edge cases and issues you'll run into when actually developing. This makes it more difficult to hold the customer accountable to the spec, since you (the designer and devs) can't really be accountable to the spec unless you want to deliver some overly literal, not-actually-helpful product.
reply