384 karma · joined September 14, 2014
class AbstractChoice:
# defines all common operations on choices
# plus potentially some useful stuff on top of those
pass
class Good(AbstractChoice):
# conatins the code specific to good things
pass
class Bad(AbstractChoice):
pass
class Ugly(AbstractChoice):
pass
This isn't a straight-on replacement though. It's especially bad when you want to separate your concerns not along the good-bad-ugly-axis but something different (which is when you'd e.g. go on to use mixins, or that ugly visitor pattern we've seen in the OP).1: https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_...
There is no mapping back from IPv6 to IPv4 (so IPv6 is backwards compatible, but not forwards compatible), but it can't be because the whole point is to have a larger address space.
But even if all miners decide to do as you say and always pick a date slightly in the future but inside the wiggle room, all that they achieve is a one-time very slight difficulty decrease, but by the next difficulty adjustment that's already lost because by then both the start date and end date of the period are offset by the same amount into the future.
My reasoning was roughly as follows:
Miners are incentivized to pick very large timestamps, because the longer it takes to mine X blocks, the easier becomes the proof of work they need to solve, giving them more block rewards and transaction fees in the long run. But if they want the network to accept their blocks, they can't pick timestamps in the future, so the best they can do is pick the current time as their timestamp.
I first parsed this differently, too, but I think they just bought some software for PKI services, not the software company.
(I'm aware of Caddy, but my understanding is that it's aiming for ease of use over performance.)
[1] https://en.wikipedia.org/wiki/Smoking_in_Germany [2] http://edoc.rki.de/oa/articles/reEi8wDOV3B1g/PDF/25UH9cUwefu... page 4