Some people holds to the saying "if it works for you well, dont try to fix it"...I belong to them and don't update apps just because 'update is available'. I got bitten by updating to 'newer and better' version many times.
I think, I'm two OS versions behind on my iPhone, and it says, it has 26 app updates for me. I'm one OS X version behind on my MacBook and found out the other day, my Xcode is 'old' too. So what? It works. I haven't updated my Windows and Linux 'machines' in VirtualBox for years.
I just can't waste my time on all this updating to "now even more, newer, better". It's rubbish! :)
Now go update World! ;P
I tried installing a mail program on my Linode, but the repositories for the debian I use are now gone. I'll have to perform a complicated day-long upgrade procedure to move to a newer Debian. So, you can neglect upgrading to a degree that going forward will be much more complicated than simply doing incremental upgrades.
that is an issue with old versions of linux :(
Writing the NLPP program, one of the very biggest challenges was to make a no-hassle upgrade procedure. This was one of the hardest things to do and also one of the parts that took up most time to code and test.
Something is wrong in all this.
I try to see software as tiny bits and pieces, each doing a certain task. Like very simple Lego building blocks. So each piece takes some input (like a function does) and produces an output. If that piece needs to be updated, then it's because it has some error, or that there is a faster way to do, what it already does. If new building blocks arrive, because new software needs them, then they're just added to the system.
If that is done right, then updating should be very simple and only include very little data to be transfered to my system.
In the past I've done upgrades by binary diffs but then you have to track each binary to get the right diff
Geomol, how do you handle changes in configuration structures that way?
Couldn't such structures just be small files, each taking care of a certain part of the configuration?
Following this thought, maybe all the mezzanine functions in %cortex.w (in World) should be separate files in a directory? And the shell commands should be separate files in a %libs/shell/ directory.
Reminds me, that I should pick up my database again. It has records as separate files.
well, that's black box theory
but things don't exist in isolation
Can't we make them? :)
some-func: func [input1 input2] [...] ; -> produces some output.
That's isolated, and it should work, even if other functions, it depends on, get updated. The task is to define each function/object as doing one simple thing.
And then implement a system like Erlang, where every piece can be hot-swapped.