Where I work (40 people) we do precisely that: staff select their own equipment and mostly do their own system maintenance on it. There is a support department that can be called for help, and that enforce the use of anti-virus, system updates, etc. For the rest we're free to install what we want as long as it is legal.
And it works great! But I should add that I work for a software house - you'd expect decent knowledge and strong opinions in such a situation anyway. I wouldn't advise the same strategy to places where people have far less computer knowledge, unless of course you are interested in running after your users day and night to fix their problems.
The "restrict yourself" stuff is stupid. It's like saying "tie one hand behind your back while programming". Can you think of *any* other profession where professionals are advised not to use their best tools?
The correct advice would be, "use precisely what you need and no more".
I have been programming in C++ for a very long time, and I have needed *every single tool* that some of you nay-sayers would say was unnecessary. And that's needed in the sense of "the best solution was achieved using these tools", not "I padded my CV by adding unnecesary complexity".
You know, *I* have worked with French code for over ten years; from a multitude of companies and individuals. I feel fully qualified to state that most of the time, it is REALLY BAD.
Have *you* worked with any code written by the French? Or are you just randomly bashing people because that is such a fun, safe thing to do on the internet?
I was under the impression that "large projects" started somewhere around the million lines of code mark, not at a mere 30K lines. But here is what I do, and none of this require any special insights into the source code (note that I do this primarily for C++):
1. Ruthlessly delete lines. Get rid of ***anything*** that does not contribute to correct operation or understanding. Even including things like version history (that's why you have the damn tool, use it already (1)!), inane comments (but keep the stuff that actually helps with understanding), code that is commented out (if you really need it, it will be in the aforementioned version tool), code that is not called, and code that is not doing anything at all (such as empty constructors or destructors).
2. Decrease the scope of everything to be as tight as you possibly can. Make everything that you can private, static, or whatever else your language offers to decrease scope. Declare variables in the innermost scope. Make them all const if possible.
3. Anything that belongs together should be in one file (even if that files becomes 5000 lines long). Anything that *doesn't* belong together should be split into separate files (but don't make a file for just a single function - instead create a file with "leftovers").
4. Anything that has a non-descriptive name is to be renamed to what it really represents. No more "int x;// x is the number of blarglewhoppers" - just use "int NumBlargleWhoppers" instead.
5. Keep an eye open for duplicate code. Get rid of the duplicates.
6. Any special insights gained, write them down as comments in the appropriate place. Anything you do NOT understand, also write them down as comments. Mark those with something you can grep for.
7. Any homegrown version of something that is available in STL or boost, to be replaced by its "official" alternative.
8. And that goes double for string operations! No more "char *" anywhere; it is the 21st century, use strings already! I'll make an exception for functions that allow "const char *" to be passed in, but only with the "const". If I find a "char *" without the "const", I *will* come to your office and bash your head against the wall. Repeatedly. Just so you know.
9. Any error handling through error return codes, probably to be replaced by exceptions, unless it turns the calling code into a wild mass of try/catch blocks.
10. Pointers, to be replaced by references where possible.
11. Negative logic and names, to be replaced by positive logic and names. Don't have "if (!NoPrinterAvailable()) {A();} else {B();}" - instead do "if (PrinterAvailable() {A();} else {B();}".
12. Anything that looks like it was written by drunk lemurs or the French, to be deleted on principle and replaced by something sane.
So there you have it. In my experience, doing this will remove about half of the lines of code (more if there was a significant number of lemurs on the team), at the gain of considerable clarity and usually performance.
(1) And honestly, I don't give a flying fuck which one of you messed up on the 29th of february 1823 or why you thought it was a good idea in the first place. I'm concerned with what the code will be doing in the future, not how it came to be in this sorry state. Chances are, whatever you thought at the time is long obsolete anyway. Get rid of the cruft. Get rid of anything that doesn't help - it just clutters the mind.
I have an even better idea: instead of printing the code on paper, maybe we could represent it by making corresponding holes in little cards. The cards you could hang in front of the window. As the classes get simpler, the holes can get bigger (because less total space is needed) and they get spread around more easily, so more and more light filters through. This way we can emulate the "sun rising on the project", "light at the end of the tunnel" feeling we all love so dearly.
Need a status update? Just look into the room - if you can see sunlight, the work is done!
You are absolutely spot on, and what's worse, we can also confidently predict the next step: governments and organisations will be falling over themselves to proclaim their support for OOXML, since it is "an ISO standard". Then they will happily sign their soul over to Microsoft because they have a product that implements this standard, while at the same time disallowing OpenOffice and other office packets because they are not fully compatible with MS Office.
Then we will tell them that Microsoft is actually not implementing their own damn standard correctly, and we will be laughed away - after all, Microsoft *IS* the standard, so how could it be incorrect?
And it will all be business as usual...
The whole thing makes me intensely sad. By the way, we had some articles about the Dutch government requiring open formats a while ago. I professed severe scepticism at the time. Let me give you a little update on that one, then: as it is, the new desktops are required to support a very wide range of technologies that can ONLY be fullfilled by having MS Office on MS Windows. So although the government requires open standards, it also requires Active Directory, for example. And guess what they are buying? Yes, that's right: MS Office on MS Windows. But, we are told, in the next round (in 2011 or so), there will definitely be an opportunity for Linux "because in this round we are already ensuring compatibility".
Serious question: I have been programming to the WIN32 API for about 10 years now, and I *still* don't know how I am supposed to find information on how to do certain things. For example, let's say I want to delete a file by moving it to the trashcan. At this point I don't know what the correct way to do this is, but I know the possibility exists.
So how do I search for it?
I can Google until I see blue in the face, and maybe find the correct answer. But this does not seem like a good strategy; basically I just expect far, far better from the biggest software maker on the planet.
Or I can read through MSDN - but there is so much there that I can read for years without finding what I need.
So what is the "correct" way to figure out how to do stuff on Windows? Do I need to get a certificate or something? A special developer login maybe? Do I need to read specific newsgroups?
There is a bright side, though: in meat space you can take an axe to it. I recommend it, it helps relieve stress quite a bit. Just make sure that, once the rage subsides, you carefully hide any body parts that you may find in your general vicinity.
Ah, sorry: I didn't mean to imply that it is unnecessary for the applications of tomorrow. Where I work we also do those massive simulations mentioned by another poster, and we welcome _any_ number of cores (one thing we simulated was the ATV, mentioned a few days ago on slashdot. The simulator runs on two machines with a total of ten cores between them, and when we started the work, we were afraid our state of the art 1GHz CPU's (single core, at that time) might not be fast enough. Hahaha, it seems so quaint now!;-) ).
What I did mean to imply is that something fundamental needs to change in the rest of the system as well before this becomes important, though, since right now most of the time I'm not waiting for the CPU, I'm waiting for the hard disk. That guy waiting for the address bar in IE? I'd bet a dollar that he is really waiting for his harddisk. Possibly IE is scanning some history file each time he types a character, and there might be some paging going on, and he might have some severe fragmentation issues, and some torrents open, and all those would combine to making something that should be lightning fast, unbearably slow.
My dualcore, 2.4GHz machine with a staggering 3GB of RAM, occasionally feels slower than my ancient Amiga 500 (7.14MHz, 512KB of RAM, and no hard disk - and no paging file!). As soon as your application swaps out (and that is an activity Windows does as a hobby, just to spite you), you will lose significant time when you want it to come back to life.
And as long as systems remain mostly limited by the harddisk, rather than the CPU, adding threads will not help. Even those massively parallel monster applications of tomorrow will just be spending their time waiting to be paged in.
Let's not be too harsh on ourselves. In most systems today, the bottleneck is the hard disk, not the CPU. No amount of threading will rescue you if your memory has been swapped out.
I write large and complex engineering applications. I have a few threads around, mostly for the purpose of doing calculation and dealing with slow devices. But I'm not going to add in more threads just because there are more cores for me to use. I'll add threads when performance issues requires that I add threads, and not before.
Most software today runs fine as a single thread anyway. The specialized software that requires maximum CPU performance (and is not already bottle-necked by HD or GPU access) will be harder to write, but for everything else the current model is just fine.
If anything, Intel should worry about 99% of all people simply not needing 80 cores to begin with...
That's not true. The astronauts tell ATV to come closer, hold position, or back away. They can also ask for a Collision Avoidance Maneuvre, but if it comes to that, it would be better not to be on the space station to begin with...
But apart from those four basic functions, ATV does the rest of the docking by itself.
Why blow up a compiler in the first place? I'm assuming 'FCC' is some sort of relation to 'GCC'... I tried "fcc -v" but didn't get any meaningful results though. Maybe it is just not installed on my system?
Serious question: is the light that can be collected a few hundred meters away better or even different from the light that can be collected close to each other? In other words, is a group of small mirrors with the same surface area as a single large mirror inherently better? Or is this simply a matter of launcher-logistics (i.e. maximum launchable mirror size)?
BTW, I did a lot of work on the Herschel spacecraft;-) But not on the optics, and I'm not an astronomer...
That's bullshit. There are countless reports of inventions having been made (more or less) simultaneously by multiple people. Inventing simply isn't special enough to warrant eternal protection.
Also, society wouldn't be able to function in the first place if all inventions were locked up indefinitely. There would be no refinements to anything unless the original creator thought of it (noone else would have the right to refine anything!), and noone would be able to afford any object needed for a life more complex than that of a hunter-gatherer. We wouldn't be able to buy a car, since the patent on the wheel would still be there. Hell, noone would even have invented the car since it requires the use of a patented idea.
Oh wait, you wanted those infinite protections to start with *you*?
Your argument is "but the law says you are wrong". That is irrelevant: the proposal on the table is to change that very law.
I and most others on this site disagree with the idea of ownership of ideas in the first place. This is simply an attempt to cut down on the current excesses of existing laws in this area. And quite a friendly attempt too: it gives wealthy corporations the chance to protect their vital core assets indefinitely, as long as they think they are worth paying for. Yes, it costs them some money, but isn't their argument that they want to keep those assets because they are so massively profitable? So paying a yearly upkeep should hardly be problematic.
Linus could always donate Linux to the public domain if he so desired. Assuming we go with the "ten years of free copyright before taxation starts", that would mean kernels older than 1998 would now be in the public domain. Would that really be such a big loss?
If anything, this spurs the creation of newer kernels with better features - the creation of value to protect existing value, so to speak. Isn't that what copyright is for?
Oh wow, you are really funny. Here is how I would deal with cross-national issues: the same way we do it out in the real world, through treaties and conventions. You could think of it as a peering-solution: you don't spam us, we don't spam you. And if someone in this country happens to spam you, we will prosecute him - and vice versa.
Anyway, I am intrigued by your argument that spam cannot be solved at all. It must be weird to have such a bleak outlook on life. I'll refrain from subscribing to your newsletter though...
If you listen to the presentation, he is saying he has applied for a patent on the techniques used. Not sure if that means both the touchscreen and the accelerometers or just the accelerometers though.
If you want to get a game out as well, better be quick - there are only a few sensors left that are still unencumbered by patents...
I hate this type of posting because it implies that it is fundamentally impossible to stop spam. In truth, it is only impossible to stop because of various social, legal and technical conventions, conventions that we could easily change. Yes, a single solution won't work - so we need multiple solutions that work together at tackling the problem of spam.
Technical: take away internet access from home machines that are sending large volumes of mail. Don't allow reconnect until the machine is cleaned. In fact, just put a limit of 1000 people (not emails!) mailed per day on every normal home account already!
Legal: make spam illegal, allowing spammers to be taken into court where possible.
Social: we should all get used to seeing the bloody corpses of spammers dragged through the streets, and their heads mounted on the city gates.
You are effectively arguing that if a solution is only a partial success it shouldn't be used at all. Try applying that to the rest of society and see where you end up:
- Despite speeding laws, people still get killed while speeding. So let's abolish speeding laws altogether and just allow anyone to go as fast as he pleases. After all, you cannot stop people dying in traffic, so why even try?
- Despite various checks and searches, people still manage to smuggle weapons onto planes. So let's just stop all checks and searches and let everyone walk onto a plane carrying anything they please.
Stop supporting ISBN-13 numbers, damnit! It is like the IP6 of ISBN numbers:
- We can still go years with the existing ISBN-10 system. - We can gain even more years if large publishers were to return unused parts of their ISBN-10 space. - The ISBN-13 system will require vast changes to existing libraries costing billions of dollars. - In fact, BAT ("Book Address Translation") is good enough for most users. - BAT provides an extra layer of security that ISBN-13 just doesn't have. - The extra digits are inefficient and take up needless space. - None of the problems with ISBN-10 are fixed by ISBN-13. - Noone can remember ISBN-13 numbers, they are just too long.
Did I miss any?
And while I'm here anyway, just who is misplacing all those manuals anyway and why is that newsworthy?
What's next on slashdot? "Cowboy Neal: the Missing Carkeys"?
NAT is a really, really bad solution. It creates two classes of internet user: those that may run servers, and those that may not; a second-rank type of internet citizen, so to speak.
Do you really want to live in world where you can only connect to the servers of your corporate overlords? Wasn't the internet supposed to be offering equal opportunity for everyone?
Where I work (40 people) we do precisely that: staff select their own equipment and mostly do their own system maintenance on it. There is a support department that can be called for help, and that enforce the use of anti-virus, system updates, etc. For the rest we're free to install what we want as long as it is legal.
And it works great! But I should add that I work for a software house - you'd expect decent knowledge and strong opinions in such a situation anyway. I wouldn't advise the same strategy to places where people have far less computer knowledge, unless of course you are interested in running after your users day and night to fix their problems.
The "restrict yourself" stuff is stupid. It's like saying "tie one hand behind your back while programming". Can you think of *any* other profession where professionals are advised not to use their best tools?
The correct advice would be, "use precisely what you need and no more".
I have been programming in C++ for a very long time, and I have needed *every single tool* that some of you nay-sayers would say was unnecessary. And that's needed in the sense of "the best solution was achieved using these tools", not "I padded my CV by adding unnecesary complexity".
You know, *I* have worked with French code for over ten years; from a multitude of companies and individuals. I feel fully qualified to state that most of the time, it is REALLY BAD.
Have *you* worked with any code written by the French? Or are you just randomly bashing people because that is such a fun, safe thing to do on the internet?
I was under the impression that "large projects" started somewhere around the million lines of code mark, not at a mere 30K lines. But here is what I do, and none of this require any special insights into the source code (note that I do this primarily for C++):
// x is the number of blarglewhoppers" - just use "int NumBlargleWhoppers" instead.
1. Ruthlessly delete lines. Get rid of ***anything*** that does not contribute to correct operation or understanding. Even including things like version history (that's why you have the damn tool, use it already (1)!), inane comments (but keep the stuff that actually helps with understanding), code that is commented out (if you really need it, it will be in the aforementioned version tool), code that is not called, and code that is not doing anything at all (such as empty constructors or destructors).
2. Decrease the scope of everything to be as tight as you possibly can. Make everything that you can private, static, or whatever else your language offers to decrease scope. Declare variables in the innermost scope. Make them all const if possible.
3. Anything that belongs together should be in one file (even if that files becomes 5000 lines long). Anything that *doesn't* belong together should be split into separate files (but don't make a file for just a single function - instead create a file with "leftovers").
4. Anything that has a non-descriptive name is to be renamed to what it really represents. No more "int x;
5. Keep an eye open for duplicate code. Get rid of the duplicates.
6. Any special insights gained, write them down as comments in the appropriate place. Anything you do NOT understand, also write them down as comments. Mark those with something you can grep for.
7. Any homegrown version of something that is available in STL or boost, to be replaced by its "official" alternative.
8. And that goes double for string operations! No more "char *" anywhere; it is the 21st century, use strings already! I'll make an exception for functions that allow "const char *" to be passed in, but only with the "const". If I find a "char *" without the "const", I *will* come to your office and bash your head against the wall. Repeatedly. Just so you know.
9. Any error handling through error return codes, probably to be replaced by exceptions, unless it turns the calling code into a wild mass of try/catch blocks.
10. Pointers, to be replaced by references where possible.
11. Negative logic and names, to be replaced by positive logic and names. Don't have "if (!NoPrinterAvailable()) {A();} else {B();}" - instead do "if (PrinterAvailable() {A();} else {B();}".
12. Anything that looks like it was written by drunk lemurs or the French, to be deleted on principle and replaced by something sane.
So there you have it. In my experience, doing this will remove about half of the lines of code (more if there was a significant number of lemurs on the team), at the gain of considerable clarity and usually performance.
(1) And honestly, I don't give a flying fuck which one of you messed up on the 29th of february 1823 or why you thought it was a good idea in the first place. I'm concerned with what the code will be doing in the future, not how it came to be in this sorry state. Chances are, whatever you thought at the time is long obsolete anyway. Get rid of the cruft. Get rid of anything that doesn't help - it just clutters the mind.
I have an even better idea: instead of printing the code on paper, maybe we could represent it by making corresponding holes in little cards. The cards you could hang in front of the window. As the classes get simpler, the holes can get bigger (because less total space is needed) and they get spread around more easily, so more and more light filters through. This way we can emulate the "sun rising on the project", "light at the end of the tunnel" feeling we all love so dearly.
Need a status update? Just look into the room - if you can see sunlight, the work is done!
You are absolutely spot on, and what's worse, we can also confidently predict the next step: governments and organisations will be falling over themselves to proclaim their support for OOXML, since it is "an ISO standard". Then they will happily sign their soul over to Microsoft because they have a product that implements this standard, while at the same time disallowing OpenOffice and other office packets because they are not fully compatible with MS Office.
Then we will tell them that Microsoft is actually not implementing their own damn standard correctly, and we will be laughed away - after all, Microsoft *IS* the standard, so how could it be incorrect?
And it will all be business as usual...
The whole thing makes me intensely sad. By the way, we had some articles about the Dutch government requiring open formats a while ago. I professed severe scepticism at the time. Let me give you a little update on that one, then: as it is, the new desktops are required to support a very wide range of technologies that can ONLY be fullfilled by having MS Office on MS Windows. So although the government requires open standards, it also requires Active Directory, for example. And guess what they are buying? Yes, that's right: MS Office on MS Windows. But, we are told, in the next round (in 2011 or so), there will definitely be an opportunity for Linux "because in this round we are already ensuring compatibility".
As I said, business as usual.
Serious question: I have been programming to the WIN32 API for about 10 years now, and I *still* don't know how I am supposed to find information on how to do certain things. For example, let's say I want to delete a file by moving it to the trashcan. At this point I don't know what the correct way to do this is, but I know the possibility exists.
So how do I search for it?
I can Google until I see blue in the face, and maybe find the correct answer. But this does not seem like a good strategy; basically I just expect far, far better from the biggest software maker on the planet.
Or I can read through MSDN - but there is so much there that I can read for years without finding what I need.
So what is the "correct" way to figure out how to do stuff on Windows? Do I need to get a certificate or something? A special developer login maybe? Do I need to read specific newsgroups?
You would think Google might have some sort of site where you could find these solutions. Some sort of searching system would be ideal.
There is a bright side, though: in meat space you can take an axe to it. I recommend it, it helps relieve stress quite a bit. Just make sure that, once the rage subsides, you carefully hide any body parts that you may find in your general vicinity.
Ah, sorry: I didn't mean to imply that it is unnecessary for the applications of tomorrow. Where I work we also do those massive simulations mentioned by another poster, and we welcome _any_ number of cores (one thing we simulated was the ATV, mentioned a few days ago on slashdot. The simulator runs on two machines with a total of ten cores between them, and when we started the work, we were afraid our state of the art 1GHz CPU's (single core, at that time) might not be fast enough. Hahaha, it seems so quaint now! ;-) ).
What I did mean to imply is that something fundamental needs to change in the rest of the system as well before this becomes important, though, since right now most of the time I'm not waiting for the CPU, I'm waiting for the hard disk. That guy waiting for the address bar in IE? I'd bet a dollar that he is really waiting for his harddisk. Possibly IE is scanning some history file each time he types a character, and there might be some paging going on, and he might have some severe fragmentation issues, and some torrents open, and all those would combine to making something that should be lightning fast, unbearably slow.
My dualcore, 2.4GHz machine with a staggering 3GB of RAM, occasionally feels slower than my ancient Amiga 500 (7.14MHz, 512KB of RAM, and no hard disk - and no paging file!). As soon as your application swaps out (and that is an activity Windows does as a hobby, just to spite you), you will lose significant time when you want it to come back to life.
And as long as systems remain mostly limited by the harddisk, rather than the CPU, adding threads will not help. Even those massively parallel monster applications of tomorrow will just be spending their time waiting to be paged in.
Let's not be too harsh on ourselves. In most systems today, the bottleneck is the hard disk, not the CPU. No amount of threading will rescue you if your memory has been swapped out.
I write large and complex engineering applications. I have a few threads around, mostly for the purpose of doing calculation and dealing with slow devices. But I'm not going to add in more threads just because there are more cores for me to use. I'll add threads when performance issues requires that I add threads, and not before.
Most software today runs fine as a single thread anyway. The specialized software that requires maximum CPU performance (and is not already bottle-necked by HD or GPU access) will be harder to write, but for everything else the current model is just fine.
If anything, Intel should worry about 99% of all people simply not needing 80 cores to begin with...
That's not true. The astronauts tell ATV to come closer, hold position, or back away. They can also ask for a Collision Avoidance Maneuvre, but if it comes to that, it would be better not to be on the space station to begin with...
But apart from those four basic functions, ATV does the rest of the docking by itself.
Why blow up a compiler in the first place? I'm assuming 'FCC' is some sort of relation to 'GCC'... I tried "fcc -v" but didn't get any meaningful results though. Maybe it is just not installed on my system?
That's a silly question. They control the OS, so they can kill -9 anything they please at any time they like.
Serious question: is the light that can be collected a few hundred meters away better or even different from the light that can be collected close to each other? In other words, is a group of small mirrors with the same surface area as a single large mirror inherently better? Or is this simply a matter of launcher-logistics (i.e. maximum launchable mirror size)?
;-) But not on the optics, and I'm not an astronomer...
BTW, I did a lot of work on the Herschel spacecraft
How about "if it does not involve something you can physically touch, it cannot be patented"?
That would rule out software patents at the same time. Two birds, etc...
That's bullshit. There are countless reports of inventions having been made (more or less) simultaneously by multiple people. Inventing simply isn't special enough to warrant eternal protection.
Also, society wouldn't be able to function in the first place if all inventions were locked up indefinitely. There would be no refinements to anything unless the original creator thought of it (noone else would have the right to refine anything!), and noone would be able to afford any object needed for a life more complex than that of a hunter-gatherer. We wouldn't be able to buy a car, since the patent on the wheel would still be there. Hell, noone would even have invented the car since it requires the use of a patented idea.
Oh wait, you wanted those infinite protections to start with *you*?
Your argument is "but the law says you are wrong". That is irrelevant: the proposal on the table is to change that very law.
I and most others on this site disagree with the idea of ownership of ideas in the first place. This is simply an attempt to cut down on the current excesses of existing laws in this area. And quite a friendly attempt too: it gives wealthy corporations the chance to protect their vital core assets indefinitely, as long as they think they are worth paying for. Yes, it costs them some money, but isn't their argument that they want to keep those assets because they are so massively profitable? So paying a yearly upkeep should hardly be problematic.
Linus could always donate Linux to the public domain if he so desired. Assuming we go with the "ten years of free copyright before taxation starts", that would mean kernels older than 1998 would now be in the public domain. Would that really be such a big loss?
If anything, this spurs the creation of newer kernels with better features - the creation of value to protect existing value, so to speak. Isn't that what copyright is for?
Oh wow, you are really funny. Here is how I would deal with cross-national issues: the same way we do it out in the real world, through treaties and conventions. You could think of it as a peering-solution: you don't spam us, we don't spam you. And if someone in this country happens to spam you, we will prosecute him - and vice versa.
Anyway, I am intrigued by your argument that spam cannot be solved at all. It must be weird to have such a bleak outlook on life. I'll refrain from subscribing to your newsletter though...
If you listen to the presentation, he is saying he has applied for a patent on the techniques used. Not sure if that means both the touchscreen and the accelerometers or just the accelerometers though.
If you want to get a game out as well, better be quick - there are only a few sensors left that are still unencumbered by patents...
I hate this type of posting because it implies that it is fundamentally impossible to stop spam. In truth, it is only impossible to stop because of various social, legal and technical conventions, conventions that we could easily change. Yes, a single solution won't work - so we need multiple solutions that work together at tackling the problem of spam.
Technical: take away internet access from home machines that are sending large volumes of mail. Don't allow reconnect until the machine is cleaned. In fact, just put a limit of 1000 people (not emails!) mailed per day on every normal home account already!
Legal: make spam illegal, allowing spammers to be taken into court where possible.
Social: we should all get used to seeing the bloody corpses of spammers dragged through the streets, and their heads mounted on the city gates.
You are effectively arguing that if a solution is only a partial success it shouldn't be used at all. Try applying that to the rest of society and see where you end up:
- Despite speeding laws, people still get killed while speeding. So let's abolish speeding laws altogether and just allow anyone to go as fast as he pleases. After all, you cannot stop people dying in traffic, so why even try?
- Despite various checks and searches, people still manage to smuggle weapons onto planes. So let's just stop all checks and searches and let everyone walk onto a plane carrying anything they please.
Really? What happens if you bring in your car for repairs: do you also get another one back? One that is "comparable" by some nebulous standard?
Stop supporting ISBN-13 numbers, damnit! It is like the IP6 of ISBN numbers:
- We can still go years with the existing ISBN-10 system.
- We can gain even more years if large publishers were to return unused parts of their ISBN-10 space.
- The ISBN-13 system will require vast changes to existing libraries costing billions of dollars.
- In fact, BAT ("Book Address Translation") is good enough for most users.
- BAT provides an extra layer of security that ISBN-13 just doesn't have.
- The extra digits are inefficient and take up needless space.
- None of the problems with ISBN-10 are fixed by ISBN-13.
- Noone can remember ISBN-13 numbers, they are just too long.
Did I miss any?
And while I'm here anyway, just who is misplacing all those manuals anyway and why is that newsworthy?
What's next on slashdot? "Cowboy Neal: the Missing Carkeys"?
NAT is a really, really bad solution. It creates two classes of internet user: those that may run servers, and those that may not; a second-rank type of internet citizen, so to speak.
Do you really want to live in world where you can only connect to the servers of your corporate overlords? Wasn't the internet supposed to be offering equal opportunity for everyone?