Wandering Thoughts archives


Most new products are upgrades

Most new products are upgrades of old ones. I don't mean in the sense of upgrade sales (although that too), but in terms of the code they're built from; they are revisions of existing codebases, not freshly written from scratch.

This has extremely rational economic and development reasons, as articulated by Joel Spolsky among others; there is a lot of money and value in existing codebases. But ignoring all the arguments about cost and captured knowledge and so on, there's another big reason this is necessary: it's our lack of programming productivity. We just can't (re)produce the code that fast; if we want to move forward, to have new features and so on, we have to reuse the existing codebase.

And having new stuff is what drives development; if there's nothing new, there's no point in doing it. (Mind you, sometimes the 'something new' is 'works on a new machine' or 'has less bugs'.)

The only area that I think still approaches a 'build it from scratch every time' model these days is games, and my impression is that even there it's no longer really true, now that there are graphics engines and physics libraries and so on. (And using them is increasingly necessary to get a modern game out in a sane amount of time.)

(To a fair extent the smaller your product is, the more you can change it each time. I suspect that this is one factor that gets companies into rewrite trouble as they grow, because they usually start with small products.)

tech/UpgradedProducts written at 23:16:33; Add Comment

How not to set up your DNS (part 10)

This one is a close variation of HowNotToDoDNSIX, but it earns extra points for making the reverse error from a common one. Presented in semi-illustrated format:

; dig +short ns system-bank.net.

(At this point I will pause to note that dns01.system-bank.net and dns02.system-bank.net have the same IP address,, a trick that was featured back at the start of this series.)

; dig a server.system-bank.net. @
system-bank.net. IN NS dns01.
system-bank.net. IN NS dns02.

(TTLs have been omitted for clarity.)

The usual error is for people to leave out the trailing dot on things like NS records pointing to external machines, so that you get an NS record of 'ns1.other.net.yourdomain.com' or the like. These people have done the reverse by adding some dots where they shouldn't have, leaving their domain name off some things that really need it.

(The net result is the same as in HowNotToDoDNSIX. I wonder how many people accept their email anyways? If all their email bounced, I'd have expected them to notice this problem by now.)

sysadmin/HowNotToDoDNSX written at 11:22:05; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.