It's practical significance is for those in the trade - and even there it can be more symbolic than real.
Agreed - with the first part anyway. But even then it's hopefully still a win for end-users in the long run: the availability of the OSS code base should reduce the barriers to entry into the various markets that can use it, which should mean competition. Nobody expects Joe User to be touching the source to the programs he runs, but if the company he buys his mobile / netbook / home router / tech support contract from can, they can customize their offering to better suit his needs, and hopefully make him happier.
I think the advantages are now becoming obviously real. Small example: My eee 701 runs Asus's hacked-up Xandros, which in a way sucks because they're not doing stuff like pushing security updates, but, because it has Debian not far away in its geneology, it makes it easier for people to get Ubuntu derivatives on it. Larger example: Dell kit running Ubuntu. I don't know how their installs differ from the vanilla distro, but the option is clearly open for them to modify the interface if they think it would help their customers, or to maintain a fork if they want to protect them from the occasional daft upstream decision.
It's arguably a bit messy if, say, every netbook vendor ships their own distro, but at the end of the day each fork is going to be fairly closely related, making switching from one the other easier, and anyway market forces will encourage merging changes upstream and / or lateral transfer.
IT is very odd. We expect a choice of food products in the supermarket, we expect a choice of car retailers on our local industrial estate, but most people have quite happily accepted zero choice in operating systems for at least a decade. Sure, we'll need interoperability to make the market work, but that's proven to be do-able in other domains (the third-party wiper blades, light bulbs, tyres, exhaust and audio equipment in my car all work just fine.)
I expect change to continue gradually creeping up from traditional embedded markets (home routers, mobiles) to netbooks and then beyond. When people twig that the OS on their netbook would also quite happily run their PC or laptop, they might start to think twice about paying the MS tax..
I seem to recall Sun used to charge customers for reporting bugs that it later decided weren't. My memory is not what it once was, however:)
The meandering nature of discussions on bugs.launchpad.net has been bothering me too, recently. Maybe a simple Slashdot-style moderation system is a solution? I think LP already has a "me too"-type button / link, maybe there should also be a way for admins to convert users' otherwise content-free "me too" comments into simple votes for fixing the bug, which would unclutter the discussion without the losing genuinely valuable info (how many people are affected) and, hopefully, without people feeling they couldn't engage with the developers (maybe list the users who have voted)..
I don't think the submitter was knocking OSS, or advocating commercial software as an alternative. I think s/he was genuinely interesting in figuring out what went wrong here, what to do about it, and how to handle the increasingly forum-y threads that turn up on bug trackers these days (particularly on launchpad.)
But at least you can do that, even if it's not the most desirable option. With commercial software, you'd only get the backported fixes that the vendor decided were important enough (unless you were big enough client to scream and shout very loudly, or buy a $$$ support contract.)
It's always seemed to me that the basic philosophy underlying OSS was one of "the world is imperfect, but if we work together we can push it slowly in the right direction", as opposed to pretending that everything's perfect and then discovering one day that not only is it not, but that you're SOL because you don't have the freedom to do anything about it.
Having said that, expressing a certain amount of exasperation when stupid things are done is also part of engaging authentically in the process:)
OTOH, if you never exert any pressure on application developers (to add support for the new shiny thing) and end users (to upgrade the applications), you end up supporting horrific APIs for years (*cough* Windows *cough*)
Open source can afford to be a bit more proactive on this front for various reasons. More of the code that runs on open source platforms tend to be open itself, so if necessary it be fixed by a third party. Linked to this is the concept of distributions, which means someone takes responsibility for evaluating the shiny new APIs and integrating patches for the apps if necessary. Last but not least one would hope that the users are slightly more engaged in the technology they are using, and therefore be prepared to put up with small-ish inconveniences in order to see progress made.
Of course, the particular decision we're talking about here does seem to have been a bad one. But it's a failure of judgement, IMO, rather than a failure of the development culture (i.e. the one that allows developers to make technical-aesthetic decisions sometimes, rather than trying to keep the users happy at absolutely any cost, which is of course impossible anyway.)
I used to be like that. My hearing seems to have corrected itself these days, though actually I reckon it's a cognitive issue: I think most people spend most of the time in a state of low-grade depression, and prefer stimuli that cut through the depression: high frequencies, bright light / colours (possibly explaining why blondes are supposed to have more fun!), sweet tastes, etc.
Another way to get that high frequency "kick" is to listen to a cassette recorded with Dolby noise reduction on a desk which doesn't support it (or has it switched off);-)
I'm very slightly aware of the difference. Every now and then, particularly when listening to something that's more "orchestral", I can hear (or think I can) the "missing" frequencies sometimes: a note gets overlaid by another note, and at that point the compressor sometimes drops the first, presumably assuming that most people won't notice.
There are other things like this that I sometimes notice: the input lag on my LCD monitor when playing DVDs, and the missing information in MPEG-2 video when scenes are being panned quickly..
This might be one of those situations where you're "asking the wrong question" because of cultural assumptions that differ between the Windows and *NIX worlds.
Can you give an example of the sorts of settings you need to enforce / behaviour you need to restrict? Coming it at it from that slightly different angle might get you some more helpful responses;-)
Well, disk is incredibly cheap. And it (hopefully) has the advantage of uncluttering the UI. Every time I have to use a Windows box, I'm amazed at the number of options there seem to be for opening image files with, none of which usually does what I want..
Full-blown apps are relatively easy to remove, but some of the "desktop environment" stuff - applets, the various managers (volumes, power), libraries - sit at the centre of a web of dependencies and aren't easy to get rid of. Even things that are only "Recommends:"-ed seem to pop back sometimes when I'm not looking:/
Having said that, disk is insanely cheap these days, so that even I, who's pretty obsessive about avoiding 'bloat', have learnt to live with leaving the packages around. Memory's pretty cheap too, and anyway actually stopping unnecessary components from running is a bit easier.
And, of course, no one distro / desktop environment "fits all." Xubuntu is lighter and more "loosely coupled", and there are other Ubuntu variants that are even more hardcore (I keep meaning to give #! a spin..) That's really where free software trumps commercial: each subculture that feels the need can roll its own.
I'll concede that it looked like a nice UI. What I really objected to is their use of the term "darknet." I understand terminology is fluid, and that my own use of it is probably quirky, but to me a net(work) implies the ability to reach beyond explicitly configured directly connected peers (e.g. even a single ethernet broadcast domain is a network because you don't have to explicitly list the nodes on it to communicate them, but a machine with multiple dial-up connections to other machines is not really part of a network unless it relays data for them..) A darknet therefore implies to me something more like a web of trust, where you can discover and decide to trust friends of friends.
Heh, it's true. It must be a sign that I'm getting soft in my old age, but I've more or less accepted all these lunacies... not that I actually use them, mind you.
So basically it allows encrypted file transfers between people who are communicating on a chat / IM network? Is it me or is that not exactly a huge innovation?
I'm currently trying to shoe-horn it onto my 2Gb Surf.. not entirely straightforward, as the only version that fits is Base, and that doesn't include any apps, but I can understand why the 2Gb versions might be a bit of a nuisance to support out of the box. It certainly looks like the best starting platform out of the many alternatives I've looked at.
I did the mandatory stint at a "founded in a garage"-type operation during the dot-com bubble. Once we got to the point where we had more data than I could feasibly backup to my laptop, take home, and copy to my personal PC, we went out and bought a tape drive. It wasn't that expensive, and bit of scripting automated the database dumps, along with emailed reminders to the relevant people to insert and remove tapes from the drives.
I can't imagine not being paranoid enough to do this. At 30 I'm not that old, and I've seen a fair few catastrophic hardware failures in my time, and have learnt that "anything you can kick" is, ultimately, out to get you and ruin your day. Have I just been singularly unlucky, or are people not learning from their (and other people's) mistakes any more?
I still reckon it's worth dumping stuff to good old fashioned magtape and stowing it in a cupboard somewhere. Sure, it's a PITA to restore, so you also want to engineer your setup so that it's very unlikely you'll ever need to, but there's something comforting about knowing that the data is in a place where buggy software and crashing HDD heads can't get at it.
Of course, magtape suffers from bitrot like anything else. Test your backups!
In the very old days, it seems like people were quite disciplined with shared objects: if a change didn't break backward compatibility, bump the minor version or revision number; if it did, bump the major number (the one that's treated as part of the library name, e.g. libncurses4 v. libncurses5)
Then somehow not long after glibc 2.0, things seemed to get a lot more complicated (or maybe I just got very confused). Anyone who wants to explain what goes on now would be very welcome; in the meantime I'm sticking with Debian & Ubuntu and apt-get..
The trick with adding abstractions is to document the model and the architecture. Great gobs of reference documentation are not necessarily required, but a short summary of the way the system (or rather, its creators) "sees the world", and what the major objects / classes are, can be disproportionately useful relative to its size. (In complex systems - like a kernel - some idea of how the execution flow works is also useful: which stuff is called in interrupt context, which from process context, etc.)
Yeah. There was a stage (starting in the 2.3 days, I think) where the kernel gradually grew a very complete "framework" which the filesystems just plugged into, basically filling in the gaps. Straightforward, unixy filesystems became ridiculously simple to implement, and even the more complex ones got a lot of non-essential complexity combed out. Of course, there were a fair few specialized callbacks and utility functions made available to the fs code as part of this, and that may have pushed the unique call count up.
- This is measuring, I believe, calls to different functions; a call to one function from multiple places is only counted once. So it's really a measure of the diversity of external calls.
- Size and complexity aren't necessarily the same thing. It's actually possible that as common functionality is abstracted out of filesystems, they get smaller but make more external calls. There was a point a few years ago when this was happening at quite a rapid pace in the fs code, I don't know if it is still true.
- Journalled filesystems and networked filesystems are pretty complex creatures by their nature, the quoted numbers don't seem unreasonable. NFS in particular implements (IIRC) protocol versions 2, 3 and 4, and 4 had a lot of new stuff.
The alternate argument is that trying to maintain a single codebase that does reasonably sophisticated things (like the security/separation stuff) on multiple platforms can be a nightmare, and however diligent you are you end up with more #ifdefs and other special cases than one might like.
Sometimes it's better to abstract as much of the common, OS-independent stuff into libraries, and have the main applications be separate chunks of code that interact with the OS & GUI in the ways that are considered "normal" on those platforms, and call into portable libraries for all the "abstract" stuff.
Which route works really depends on the complexity of the app and the level of similarity between the target platforms. Given that, in this case, one of the platforms is Windows, and that Windows does process management quite differently from *NIX-derived systems, the Chrome guys may have made the right decision, either intentionally or out of laziness:)
Redundancy (both of media and of types of media), checksums, regular inspections and regular transfer of data.
Nothing's going to last for ever, and even if it does, as other people have pointed out, the file formats may not be easily readable. Spread your stuff out over, say, a few hard drives, flash drives, archival quality DVDs. Store some stuff off-site, in case of house fires. Make sure you have redundancy. Go back every year or so and check everything is still readable, both the media and the actual file formats. Burn new DVDs, check the SMART data on the hard drives, etc., etc.
As time goes on, increasing storage densities should allow you to condense things, assuming you're not adding data at a faster rate than the technology is progressing. As file formats become out of date, convert stuff. You may even find that as time progresses, you realise you don't need to keep all that stuff after all:-)
Many shredders will take optical media, the very cheap one I have at home won't, though.
I wrap them up in a few sheets of newspaper and "fold" them in half with my foot. Most will shatter, some just bend, but either way, no casual dumpster diver is going to bother with them. Particularly if they go in a trashbag full of rotting food, and nobody has any reason to suspect me of holding particularly interesting data, anyway.
It's practical significance is for those in the trade - and even there it can be more symbolic than real.
Agreed - with the first part anyway. But even then it's hopefully still a win for end-users in the long run: the availability of the OSS code base should reduce the barriers to entry into the various markets that can use it, which should mean competition. Nobody expects Joe User to be touching the source to the programs he runs, but if the company he buys his mobile / netbook / home router / tech support contract from can, they can customize their offering to better suit his needs, and hopefully make him happier.
I think the advantages are now becoming obviously real. Small example: My eee 701 runs Asus's hacked-up Xandros, which in a way sucks because they're not doing stuff like pushing security updates, but, because it has Debian not far away in its geneology, it makes it easier for people to get Ubuntu derivatives on it. Larger example: Dell kit running Ubuntu. I don't know how their installs differ from the vanilla distro, but the option is clearly open for them to modify the interface if they think it would help their customers, or to maintain a fork if they want to protect them from the occasional daft upstream decision.
It's arguably a bit messy if, say, every netbook vendor ships their own distro, but at the end of the day each fork is going to be fairly closely related, making switching from one the other easier, and anyway market forces will encourage merging changes upstream and / or lateral transfer.
IT is very odd. We expect a choice of food products in the supermarket, we expect a choice of car retailers on our local industrial estate, but most people have quite happily accepted zero choice in operating systems for at least a decade. Sure, we'll need interoperability to make the market work, but that's proven to be do-able in other domains (the third-party wiper blades, light bulbs, tyres, exhaust and audio equipment in my car all work just fine.)
I expect change to continue gradually creeping up from traditional embedded markets (home routers, mobiles) to netbooks and then beyond. When people twig that the OS on their netbook would also quite happily run their PC or laptop, they might start to think twice about paying the MS tax..
I seem to recall Sun used to charge customers for reporting bugs that it later decided weren't. My memory is not what it once was, however :)
The meandering nature of discussions on bugs.launchpad.net has been bothering me too, recently. Maybe a simple Slashdot-style moderation system is a solution? I think LP already has a "me too"-type button / link, maybe there should also be a way for admins to convert users' otherwise content-free "me too" comments into simple votes for fixing the bug, which would unclutter the discussion without the losing genuinely valuable info (how many people are affected) and, hopefully, without people feeling they couldn't engage with the developers (maybe list the users who have voted)..
OK, I'll bite.
I don't think the submitter was knocking OSS, or advocating commercial software as an alternative. I think s/he was genuinely interesting in figuring out what went wrong here, what to do about it, and how to handle the increasingly forum-y threads that turn up on bug trackers these days (particularly on launchpad.)
But at least you can do that, even if it's not the most desirable option. With commercial software, you'd only get the backported fixes that the vendor decided were important enough (unless you were big enough client to scream and shout very loudly, or buy a $$$ support contract.)
It's always seemed to me that the basic philosophy underlying OSS was one of "the world is imperfect, but if we work together we can push it slowly in the right direction", as opposed to pretending that everything's perfect and then discovering one day that not only is it not, but that you're SOL because you don't have the freedom to do anything about it.
Having said that, expressing a certain amount of exasperation when stupid things are done is also part of engaging authentically in the process :)
OTOH, if you never exert any pressure on application developers (to add support for the new shiny thing) and end users (to upgrade the applications), you end up supporting horrific APIs for years (*cough* Windows *cough*)
Open source can afford to be a bit more proactive on this front for various reasons. More of the code that runs on open source platforms tend to be open itself, so if necessary it be fixed by a third party. Linked to this is the concept of distributions, which means someone takes responsibility for evaluating the shiny new APIs and integrating patches for the apps if necessary. Last but not least one would hope that the users are slightly more engaged in the technology they are using, and therefore be prepared to put up with small-ish inconveniences in order to see progress made.
Of course, the particular decision we're talking about here does seem to have been a bad one. But it's a failure of judgement, IMO, rather than a failure of the development culture (i.e. the one that allows developers to make technical-aesthetic decisions sometimes, rather than trying to keep the users happy at absolutely any cost, which is of course impossible anyway.)
*nods*
I used to be like that. My hearing seems to have corrected itself these days, though actually I reckon it's a cognitive issue: I think most people spend most of the time in a state of low-grade depression, and prefer stimuli that cut through the depression: high frequencies, bright light / colours (possibly explaining why blondes are supposed to have more fun!), sweet tastes, etc.
Another way to get that high frequency "kick" is to listen to a cassette recorded with Dolby noise reduction on a desk which doesn't support it (or has it switched off) ;-)
I'm very slightly aware of the difference. Every now and then, particularly when listening to something that's more "orchestral", I can hear (or think I can) the "missing" frequencies sometimes: a note gets overlaid by another note, and at that point the compressor sometimes drops the first, presumably assuming that most people won't notice.
There are other things like this that I sometimes notice: the input lag on my LCD monitor when playing DVDs, and the missing information in MPEG-2 video when scenes are being panned quickly..
This might be one of those situations where you're "asking the wrong question" because of cultural assumptions that differ between the Windows and *NIX worlds.
Can you give an example of the sorts of settings you need to enforce / behaviour you need to restrict? Coming it at it from that slightly different angle might get you some more helpful responses ;-)
Well, disk is incredibly cheap. And it (hopefully) has the advantage of uncluttering the UI. Every time I have to use a Windows box, I'm amazed at the number of options there seem to be for opening image files with, none of which usually does what I want ..
Full-blown apps are relatively easy to remove, but some of the "desktop environment" stuff - applets, the various managers (volumes, power), libraries - sit at the centre of a web of dependencies and aren't easy to get rid of. Even things that are only "Recommends:"-ed seem to pop back sometimes when I'm not looking :/
Having said that, disk is insanely cheap these days, so that even I, who's pretty obsessive about avoiding 'bloat', have learnt to live with leaving the packages around. Memory's pretty cheap too, and anyway actually stopping unnecessary components from running is a bit easier.
And, of course, no one distro / desktop environment "fits all." Xubuntu is lighter and more "loosely coupled", and there are other Ubuntu variants that are even more hardcore (I keep meaning to give #! a spin ..) That's really where free software trumps commercial: each subculture that feels the need can roll its own.
I'll concede that it looked like a nice UI. What I really objected to is their use of the term "darknet." I understand terminology is fluid, and that my own use of it is probably quirky, but to me a net(work) implies the ability to reach beyond explicitly configured directly connected peers (e.g. even a single ethernet broadcast domain is a network because you don't have to explicitly list the nodes on it to communicate them, but a machine with multiple dial-up connections to other machines is not really part of a network unless it relays data for them..) A darknet therefore implies to me something more like a web of trust, where you can discover and decide to trust friends of friends.
Heh, it's true. It must be a sign that I'm getting soft in my old age, but I've more or less accepted all these lunacies... not that I actually use them, mind you.
So basically it allows encrypted file transfers between people who are communicating on a chat / IM network? Is it me or is that not exactly a huge innovation?
I'm currently trying to shoe-horn it onto my 2Gb Surf.. not entirely straightforward, as the only version that fits is Base, and that doesn't include any apps, but I can understand why the 2Gb versions might be a bit of a nuisance to support out of the box. It certainly looks like the best starting platform out of the many alternatives I've looked at.
ITYM, "I can read much faster than other people can talk." At least, that's what I find ..
I did the mandatory stint at a "founded in a garage"-type operation during the dot-com bubble. Once we got to the point where we had more data than I could feasibly backup to my laptop, take home, and copy to my personal PC, we went out and bought a tape drive. It wasn't that expensive, and bit of scripting automated the database dumps, along with emailed reminders to the relevant people to insert and remove tapes from the drives.
I can't imagine not being paranoid enough to do this. At 30 I'm not that old, and I've seen a fair few catastrophic hardware failures in my time, and have learnt that "anything you can kick" is, ultimately, out to get you and ruin your day. Have I just been singularly unlucky, or are people not learning from their (and other people's) mistakes any more?
I still reckon it's worth dumping stuff to good old fashioned magtape and stowing it in a cupboard somewhere. Sure, it's a PITA to restore, so you also want to engineer your setup so that it's very unlikely you'll ever need to, but there's something comforting about knowing that the data is in a place where buggy software and crashing HDD heads can't get at it.
Of course, magtape suffers from bitrot like anything else. Test your backups!
In the very old days, it seems like people were quite disciplined with shared objects: if a change didn't break backward compatibility, bump the minor version or revision number; if it did, bump the major number (the one that's treated as part of the library name, e.g. libncurses4 v. libncurses5)
Then somehow not long after glibc 2.0, things seemed to get a lot more complicated (or maybe I just got very confused). Anyone who wants to explain what goes on now would be very welcome; in the meantime I'm sticking with Debian & Ubuntu and apt-get ..
The trick with adding abstractions is to document the model and the architecture. Great gobs of reference documentation are not necessarily required, but a short summary of the way the system (or rather, its creators) "sees the world", and what the major objects / classes are, can be disproportionately useful relative to its size. (In complex systems - like a kernel - some idea of how the execution flow works is also useful: which stuff is called in interrupt context, which from process context, etc.)
Yeah. There was a stage (starting in the 2.3 days, I think) where the kernel gradually grew a very complete "framework" which the filesystems just plugged into, basically filling in the gaps. Straightforward, unixy filesystems became ridiculously simple to implement, and even the more complex ones got a lot of non-essential complexity combed out. Of course, there were a fair few specialized callbacks and utility functions made available to the fs code as part of this, and that may have pushed the unique call count up.
Thoughts:
- This is measuring, I believe, calls to different functions; a call to one function from multiple places is only counted once. So it's really a measure of the diversity of external calls.
- Size and complexity aren't necessarily the same thing. It's actually possible that as common functionality is abstracted out of filesystems, they get smaller but make more external calls. There was a point a few years ago when this was happening at quite a rapid pace in the fs code, I don't know if it is still true.
- Journalled filesystems and networked filesystems are pretty complex creatures by their nature, the quoted numbers don't seem unreasonable. NFS in particular implements (IIRC) protocol versions 2, 3 and 4, and 4 had a lot of new stuff.
The alternate argument is that trying to maintain a single codebase that does reasonably sophisticated things (like the security/separation stuff) on multiple platforms can be a nightmare, and however diligent you are you end up with more #ifdefs and other special cases than one might like.
Sometimes it's better to abstract as much of the common, OS-independent stuff into libraries, and have the main applications be separate chunks of code that interact with the OS & GUI in the ways that are considered "normal" on those platforms, and call into portable libraries for all the "abstract" stuff.
Which route works really depends on the complexity of the app and the level of similarity between the target platforms. Given that, in this case, one of the platforms is Windows, and that Windows does process management quite differently from *NIX-derived systems, the Chrome guys may have made the right decision, either intentionally or out of laziness :)
Is anybody else suddenly reminded of Talkie Toaster?
Redundancy (both of media and of types of media), checksums, regular inspections and regular transfer of data.
Nothing's going to last for ever, and even if it does, as other people have pointed out, the file formats may not be easily readable. Spread your stuff out over, say, a few hard drives, flash drives, archival quality DVDs. Store some stuff off-site, in case of house fires. Make sure you have redundancy. Go back every year or so and check everything is still readable, both the media and the actual file formats. Burn new DVDs, check the SMART data on the hard drives, etc., etc.
As time goes on, increasing storage densities should allow you to condense things, assuming you're not adding data at a faster rate than the technology is progressing. As file formats become out of date, convert stuff. You may even find that as time progresses, you realise you don't need to keep all that stuff after all :-)
Many shredders will take optical media, the very cheap one I have at home won't, though.
I wrap them up in a few sheets of newspaper and "fold" them in half with my foot. Most will shatter, some just bend, but either way, no casual dumpster diver is going to bother with them. Particularly if they go in a trashbag full of rotting food, and nobody has any reason to suspect me of holding particularly interesting data, anyway.