Please explain in detail, what in the world inspired you to:
1. Run Cyrus on ZFS (all it needs from afilesystem is high inode numbers and directory size). 2. Insist on using expensive servers and SAN storage for scaling Cyrus, an application that nearly perfectly scales in clusters, and can be used with extremely unreliable media due to easy incremental backups and replication.
You need 50T of storage. Multiply by four to take into account replication and two sets of backups (but no RAID). Assuming you want extra-fast SCSI drives (that you don't have to do) for primary live servers and cheaper/larger SATA for secondary and backups, you have about $100K in storage costs. Assuming that your budget is $250K (your $500K estimate minus $250K "savings"), you have $150K for the rest of everything. Again, assuming $2K per server not counting storage (that's a freaking fast server), you get 75 servers that you are supposed to stuff with 300 drives, what just happens to fit.
Obviously "TCO" is higher because this has to be installed, backup and user configuration scripts should be written, load balancing configured in Cyrus, and someone has to occasionally migrate mailboxes between servers, restore backups, and install replacement servers and drives when something fails, however this is not fundamentally different from what you are supposed to do already.
What do you think, makes Google servers so cheap, some kind of inherent scalability or the fact that they can sacrifice a tiny amount of availability and get massive savings on storage while everybody else runs their email on something more appropriate for airline reservation or stock exchange trading system?
A prompt will only decrease the percent of people that fall victim. IMO, if an inserted media has files flagged to autorun, a prompt should only appear if a user has already installed a program to handle that format. In this sense, a DVD can have a 'play DVD' prompt *IF* the user has approved that behavior and *IF* the program executed is already installed.
DVD (or anything that "has already installed a program") does not "run", it contains no executable code, only data and minimal scripts that are interpreted (or ignored) by the player.
The idea to ACTUALLY RUN EXECUTABLE CODE JUST BECAUSE IT APPEARED ON SOME MEDIA is far, far more stupid than any automated playback. When player is automatically started, it might create a security hole because player may be buggy. Running executables is a security hole all in itself. There should be no questions, no dialog boxes, no anything that will even suggest that the user might want to run those things until the user runs the executable or installs it as a handler for something.
I am sure, that was the inspiration for this whole stupidity in the first place.
It all makes sense if you make an initial assumption that people who make decisions about those programs are dumber than rocks. They can't invent anything. They can't find a problem that can be realistically addressed by developing some new technology. All they can do is to get some stupid idea of what can be "cool", and sci-fi shows are as good as anything for the source of ideas that look "cool".
Seriously, with RMS taking the hard line on privacy, etc, could we even hope to salvage what little privacy we have left?
Privacy is not an important issue here, at least not for Stallman. Users usually at least at some extent realize that company hosting the service can, and likely will, read the content, use for their purposes or disclose to someone else.
On the other hand, with remotely hosted data and software the user gives up the control over his data and his ability to operate on it. Provider can destroy, alter the data, limit functionality that user can access or demand unreasonable fees that in this situation would be not as much for service provided as a form of ransom on the data that is only accessible through the service. For Stallman and other free software advocates this is a far, far more fundamental issue than someone's ability to read the data.
When talking to ISP tech support I ALWAYS pretend to have a Mac. They tell me to use Safari to get to the DSL modem's web interface, I tell them that I did, and read them the blatantly obvious diagnostics page that I see in my Firefox browser, forwarded over my wireless router with ssh (their stupid modem has a whole separate subnet for its configuration because I am not crazy enough to use Netopia/Motorola implementations of PPPoE and NAT when I have Linux on WRT54G).
Problems are consistently unrelated to anything I have on my computers and routers.
The greatest "GTFO" message of all times is the new ionizing radiation sign -- never before I have seen a warning sign that simultaneously is designed for complete morons that you would want to see irradiated (explanation for/b/: because they are mankind's cancer), and contains so many details, people would have to approach it to see what the hell it is.
Oh, don't be ridiculous. Bugs aren't distributed evenly through a program's state space.
There is nothing that makes automated tests more likely to hit the states that happen to reveal bugs a programmer left in a program. Random tests cover very little, and usually not where the true problems are. Even evaluating the distribution of things to check is a far more complex task than writing a program that does not have those bugs.
Random tests can be useful to quickly find out if a programmer consistently writes $deity-awful code, but this only works if a programmer does not use the same tests by himself, and a far superior solution would be not to hire incompetent programmer in the first place.
Analogies are not meant to be illustrative, not comprehensive.
This is not illustrative, either. It's just a bad analogy.
Of course it isn't. The number of possible bugs for any program is always going to be finite, and even simple tests can reduce the number of possible bugs by a significant fraction. If you keep halving a mountain, it doesn't take many iterations until it's dust.
Really? If you want to apply any kind of exhaustive approach you will have to deal with the same nearly infinite number of states I have mentioned -- and some tools actually do that, though they are usable for extremely small set of software, and produce output that is not suitable for realistic evaluation of what is or isn't a bug. If you are under impression that "bug" always has a specific location in the source, or that even a single argument in a function call can not have simultaneously tens of ways what is wrong with it, you are seriously mistaken.
Very often poorly written code has to be abandoned and replaced with completely new one because it either is extremely buggy, too convoluted to be maintained and fixed, or tied to a model that no longer applies to the program's intended behavior. A single act of such replacement often does more to the improvement of software quality than years of development and testing -- this is sometimes called "refactoring" except in this case usually the interface has to be fixed as well because broken logic of one component spilled out into other, less affected parts of the program. It's a good day (or year) in a programmer's life when bad old code was kept at bay by clearly defined interface.
In other words, you can't back up your argument with a concrete example.
Now I am supposed to PROVE something by providing an example? I thought, you asked for example because you are unable to understand the concept expressed in its pure form.
What kind of example do you need, an actual application of those principles, a real-life instance where lack of them clearly didn't work, or some kind of hypothetical hand-waving like your example with "None" propagating as a special case through absolutely everything, where proposed solution actually does not work and requires massive amount of resources to be spent just to be implemented properly?
I think I'm beginning to get wise to this. In the past, I've often spend quite a few posts on various boards debating my point, but I've come to the conclusion that vague concepts that can't be explicitly nailed down and demonstrated are not worth arguing over, because there can never be any closure. You say this, I say that, and we get nowhere.
I was pretty clear about things I am talking about. You jumped in with "compiler checks" and "how to avoid exceptions by handling single possibly invalid condition thousand times in the same program". If you are unclear with what you are talking about, don't accuse others of not pointing you out what precisely you would have to say to make sense, find it out yourself before arguing about it. Do not expect others wave around the books on programming methods, styles and buzzwords you have chosen to support or attack, know what actually is b
Or more methodical. For instance, testing a distributed sorting algorithm by shoving ten billion random numbers through is a good way of checking for any flaws the human eye may have missed. The computer doesn't have to be smarter than you in order to catch something you've missed, just like a computer doesn't have to be smarter than you to beat you at chess. Sheer brute force is the advantage of a computer; it can zip through thousands, even millions of discrete tests per second.
Sometimes this (known as "crashme" approach) catches errors. Most of bugs, especially security-related ones are still missed.
Try to calculate all possible combinations of states in a program that occupies 10M of heap and stack (each bit can be one or zero), and take into account all possible relative positions of instruction pointer in its multiple threads. Multiply by all possible data passing through network buffers and files the program is processing. This is the number of all possible states in the program. It's nowhere close to the number of states it will go through when you feed it anything "random".
Automated tests aren't a mechanism for replacing human thought, any more than seatbelts replace the need for safe driving.
This is a stupid analogy. If you wear more than one seatbelt, it will make you LESS safe -- seatbelts are designed to reduce the damage in an accident by applying sufficient force at some set of locations, so you neither are thrown out of your seat nor crushed or torn by the belt itself. Add more seatbelts, and you may end up in pieces.
There is nothing test can do if the bug actually ended up in the released product. More tests may have slightly higher chance to catch it, but the area they don't cover is always larger than one they do -- it's just some programmers are so bad, they constantly hit that area.
But people make mistakes, and even the most security-conscious applications have bug trackers. Unit tests are a way of reducing human error by taking advantage of the computer's ability to singlemindedly check thousands of conditions every time the developer makes a change.
And most of those automated checks did not contribute anything at all to security fixes because conditions that trigger security bugs usually require knowledge and analysis of the system -- same things that are directly useful for writing bug-free code in the first place. Everything comes down to the same problem -- people who develop "modern" programming tools and techniques claim that their products and methods allow a person who is neither smart nor willing to dedicate a major amount of effort to his project can produce software.
This is something that is not going to happen no matter how much their users desire it -- programming, just like engineering and science, is a difficult job for smart people. Everyone who is not smart or is unwilling to do this difficult job should just leave us, programmers, alone, and kindly get the fuck out. Seriously, there are enough smart people who enjoy this kind of work, there is no reason to bring hordes of lazy dumbasses. Do we see similar hordes storming CERN to work on particle accelerators, space agencies to design rockets and spaceships, hospitals to perform heart and brain surgeries, journals in mathematics, theoretical physics and biology to publish articles, etc.? No? Then why every high school dropout has this idea that he is capable of designing and developing software that usually reaches the same or higher complexity? Sure, anyone can write a trivial program in a simplified environment, just like anyone can open a case of an old oscilloscope and watch a CRT from behind or launch a soda bottle rocket. And I agree, there is similarity between CRT and a particle accelerator, and between soda bottle rocket and something you would use to launch a spaceship. Yet the difference between amateur-written "my first program" and a piece of software that is useful, efficient, r
But then it's no longer Microsoft products, and no implicitly-promised Microsoft Office compatibility.
Windows CE devastated mini-notebooks market the last time it appeared (when they were called "clamshell PDA" and "tablets") -- people were buying them expecting a sumbini Windows computer and got Windows-branded pseudo-laptop running something that users could not recognize as Windows or compatible with Windows (or any usable desktop -- in fact, those users now often "recognize" Ubuntu as Windows), and ended up replacing it with a regular, then-bulky laptop.
For Microsoft it was a great success because it driven its two competitors -- Palm and Symbian -- out of the PDA market and into smartphones. Then Microsoft went chasing them into smartphones, and this is why there are so many Windows smartphones being pushed through cellular providers even though users to whom those models are marketed are much happier with Nokia Symbian-based line and Blackberry (and now also iPhone). Microsoft does not care about actually getting anything out of PDA, smartphones and netbook market, it has to eradicate all "breeding grounds" for competing operating systems, and if it can be done without spending any noticeable effort on design, development and support, then it is just a more efficient way to poison the market where Microsoft can lose to superior competitors. This is their strategy.
I can definitely understand how someone comfortable and familiar with Windows could want a net book with features like a solid state drive and not want Linux.
Except, of course, the user will quickly discover that "Windows", "IE" and "Office" that he gets with Windows CE are completely different, far inferior products that merely share the name and manufacturer with those he expected. And he wouln't know that Linux desktop, web browser, office packages and other software is actually closer to what he expected, because he didn't get Linux intalled or even dual-booting.
Sounds more like a scam to prevent users' exposure to Linux, with both users and netbook manufacturers (whose products will be discredited as a result of this) as victims.
Umm, you mean you try it and it fails and Linux apologists tell you you have broken or hardare or RTFM. And then you waste ages trying to find someone who actually knows what they are talking about.
And it ends up that you actually have broken hardware, have to RTFM or both.
I have Linux boxes that in some form existed for 10-14 years -- upgraded, migrated between distributions, had their hardware replaced piece by piece, etc. I can't even imagine a situation when someone actually familiar with Linux can not do that -- in the worst-case scenario it's always possible to selectively copy user's dot files, or extract a list of installed packages and feed it to the installer. Windows, on the other hand, still can't provide a usable way to safely store and copy user and system settings -- registry mixes together things that can and can't be transferred between users, hosts, sets of packages and installations. As I said before, this is a result of a massive engineering failure that Windows is.
Hmm, that's ok if someone bothers to do it. Otherwise you need to do it yourself. And my point is how many people are going to get it right for a 13 year old disti.
Usually people just upgrade the distribution. As opposed to Windows, it actually works and does not break packages because they are upgraded with the system.
E.g. Firefox 3 won't work on Fedora Core 4 which is a lot newer than 13 years.
Oh, wow, you have found something on Google.
Too bad, you didn't bother to read it. They are looking for FIREFOX 3.0 PACKAGED SPECIFICALLY FOR THE DISTRO THAT WENT OUT OF SUPPORT BEFORE FIREFOX 3 WAS WRITTEN. So they have to download Firefox from mozilla.com and ACTUALLY RUN THE INSTALLER. You know, do the same thing you do when installing it on Windows. What the person seems to be unfamiliar with because everything else installs nicely through a package manager, a thing that is light years ahead of anything ever created for Windows.
Of course, anyone who used Fedora Core 4 was supposed to run auto-upgrade a long time ago. In Windows world that would be an equivalent of installing SP2 on Windows XP -- most of recently released software would not work on XP as it originally shipped.
You say shit a lot. But it's sort of interesting that I can run Firefox 3 on Windows 2000, which is a lot older than FC4.
What means absolutely nothing, see above. Firefox 3.0 works just fine on earlier versions of Linux, even though it makes absolutely no sense not to upgrade them -- as opposed to Windows.
And that's because of all the work people like Raymond Chen do on making sure that software works after an upgrade. Because Microsoft want to sell you that upgrade.
If Microsoft wanted to sell it, no one in the world would run Windows 2000 by now, and you would never know if Firefox 3.0 runs on it or not. The problem is, Windows is such a massive piece of shit, it's not even possible to keep an old code as a deprecated library for old software, and move on to better new version. Because all interfaces are intermingled, libraries are not versioned, and there is no way to separate environment for different packages or executables. So all the effort goes into supporting old, crappy interfaces with all their bugs on newer foundation, crippling underlying OS and newly developed software alike.
In the FOSS world no one gives a shit because there's no money in it. If some developer does some refactoring that inconveniences a user, the user goes to the community which is full of people like you yelling that they are idiots and the sort of work Raymond does is shit.
Except, of course, what you have said is false. Distributions have maintained packages of things decades old, source-level compatibility goes well into 1970's (!), and binaries at very worst need a set of old libraries (conveniently available on old systems be
"Turned out badly" means "had negative consequences" -- it would make sense if, say, the ads caused a decline in Microsoft sales. "Turned out bad" means "something produced ended up being bad".
"We expected the this, though we would be happier if people loved the ads".
Or if they were honest:
"We knew that our ads turned out bad, but we ran them anyway".
(May I have my own advertising company, please? I promise, I will hide my Russian accent and horrendous pronunciation by talking through text-to-speech software).
Obviously I meant "what those embedded systems are". I happen to work on embedded systems development myself, and I can't imagine another embedded systems developer that can't press "Update" button in Ubuntu. Unless his "embedded" system is actually Windows-based computer -- I have seen those, and they often reach some truly subhuman levels of stupidity.
The problem has nothing to do with the houses. They could just as well be tulips. Or WoW gold.
For the last two decades US economy had one dirty secret -- while Federal Reserve continued producing money that are used almost everywhere in the world, nothing that happens within US borders or under jurisdiction of US government actually had value that would correspond to the amount of money produced in US. So basically a ton of steel is produced in China, and Federal Reserve in US issues a loan for the amount that can buy a ton of steel from China. After tens or maybe hundreds of transactions money are in China, ton of steel is in US, and the world as a whole has more dollars than it had before. However since the total amount of dollars in the world is so huge, the contribution of this ton of steel is diluted so much, no one is supposed to notice. Chinese can use those money to buy oil from Saudi Arabia. Saudi Arabia can pay it to build a piece of skyscraper. Skyscraper builders buy food. Farmers buy tractors, etc., and thus the newborn ton-of-steel-worth amount of dollars is dissolved somewhere in the world's economy.
What is wrong with this picture? Two things.
First and foremost, this can't last. Ton of steel is small potatoes on the scale of the world's economy, however increasingly larger and larger part of US trade follows this model. Dollars getting more and more diluted, thus losing their value. Anticipating further loss of value, foreigners use dollars as a smaller part of their trade, replacing them with local currency, euro or even barter. That frees more dollars to participate in less trade, thus making dollars even less valuable. If anyone cares, this is how dollar dropped so far compared to euro from the initial position of parity.
Second, it gives US Federal Reserve power to give someone "free" money and tell him "hey, China has this ton of steel -- it's yours now, you can pay us later (with money you will get from someone else who got them from us, too)!". While it doesn't happen exactly that way, this is the overall mechanism -- someone has to stuff Americans' pockets with money so they can pay for the import. And last time I have checked, there are no "free money" windows in Federal Reserve buildings. So how new money enter the economy? Through loans Federal Reserve does to large financial institutions. That happen to be investment banks and mortgage companies. Fannie and Freddy literally have a bunch of money and a task to distribute it to the population so those money can enter the worldwide economy -- if those money will end up in the hands of people who can afford to keep money in a bank, the Federal Reserve's mission is incomplete, they issued money and those money are not bringing foreign products into US! But equity loans accomplish this perfectly -- they are given to the money-hungry consumers, and consumers spend them on stuff, thus making all kinds of middlemen happy, and bringing products into US for the population to enjoy.
So no, there is no failure of "bad" loans, loans were given to people who can't pay them back because mortgage companies simply ran out of people who can pay them back, and money are still there, sitting on their balance, not doing what they are supposed to do -- being the sole driving force behind a paper-shuffling machine that US economy turned into. It doesn't matter what loans were supposedly for -- a poorly built box made of gypsum/cardboard composite on a wooden frame, standing on a piece of land is completely detached from the hundreds of thousands dollars it supposedly is worth. As I have mentioned before, same thing could (and actually did) happen with arbitrary objects such as tulips, and same thing may (and I expect it to happen eventually) with completely imaginary "objects" such as WoW gold and items as long as someone can convince other people that those objects have value.
It does not matter what it is, what matters is that a ritual of relinquishing control over such object for some money and a promise to pay those money
Right because upgrading Linux installations always works every time.
Not every time. You may have broken hardware, or you may erase half of distribution after installing it. Then it won't work.
Otherwise either the standard upgrade process will work, or you can use some trivial procedure to wipe the system and install the same configuration while preserving users' files.
Windows, on the other hand, ends up in an unrecoverable state after updates all the time.
Also good luck downloading a new installation over the sort of internet connection these machines will have in the third world.
Those laptops are used as a part of classroom configuration with either wireless school server or automated updates on USB drives. Update procedure is among the best parts of XO-specific version of Fedora/Sugar.
And realistically would any software support upgrading on a 13 year old machine? Over that time filesystems will have changed.
All filesystems that were used in Linux 13 years ago are supported now.
Linux is about progress, not back compatibility and no one is willing to do the work to maintain old ABIs or filesystem formats. In fact they often deride Microsoft for caring about it.
In fact, you know absolutely nothing about Linux. ABI changes very slowly, and older versions will work with modern kernel, and may require old libraries that usually are provided in "compatibility" package for this very purpose.
What Microsoft does is different -- it has SHITTY OLD INTERFACE, and it continues throwing shit into the newer and newer versions of its OS supposedly to provide compatibility with old shit, but really to avoid making any progress toward anything better. Instead of deprecating obviously bad systems such as most of Win32, everything new is either added or built on top of it. The reason for it is very simple -- it's very difficult to provide a compatibility layer on another platform that will imitate extremely bad, poorly designed, bug-ridden subsystem in a way that will support all "creative uses" and workarounds that accumulated over decades of evolution of such a massive engineering failure. If Windows wasn't that bad, Wine (or Windows interface under OS/2 before it, or Wabi,...) would be orders of magnitude more simple, and it would become "better Windows than Windows". With Windows being full of unmaintainable finicky crap every imitation of it necessarily has to be full of unmaintainable finicky crap.
Hmm, doesn't that seem a bit of an ad hominem attack to you? Even if it were true how does it affect what I'm saying.
You and other Microsoft defenders have literally flooded this discussion with your comments. Obviously you are trying to create an impression of validity by posting large number of comments with unsupported claims instead of participating in a discussion.
Hell, I spend my time working on embedded systems at work, but Linux was too much trouble to maintain at home.
If this is true, please tell me what embedded systems are. Then I will know what to avoid like plague because it's made by a person so hopelessly stupid, he is indistinguishable from a Microsoft astroturfer.
No one from OLPC project, Peru, or any organization involved in "Give One Get One" program ever contacted me about Ubuntu customization for XO in general, G1G1 donors or any deployment. Crappy adaptation of XP for XO that barely works, has no educational value, and seem to be nothing but Microsoft's own initiative, gets all the coverage. Far superior system that provides the same "general-purpose" functionality, far superior performance, reliability and security is completely ignored. Slashdot users make comments assuming Ubuntu for XO to be some kind of hypothetical possibility despite the fact that it existed since the beginning of this year, and my adaptation remains the current version since May (when it was built based on then-released Hardy).
I find troll in this discussion to be among the BETTER participants because the most prominent group -- Microsoft astroturfers -- stinks to high heavens.
No. "Certain media companies" (Sony) rootkit relies on... autorun. Without this misfeature of Windows those CDs would be absolutely harmless.
Please explain in detail, what in the world inspired you to:
1. Run Cyrus on ZFS (all it needs from afilesystem is high inode numbers and directory size).
2. Insist on using expensive servers and SAN storage for scaling Cyrus, an application that nearly perfectly scales in clusters, and can be used with extremely unreliable media due to easy incremental backups and replication.
You need 50T of storage. Multiply by four to take into account replication and two sets of backups (but no RAID). Assuming you want extra-fast SCSI drives (that you don't have to do) for primary live servers and cheaper/larger SATA for secondary and backups, you have about $100K in storage costs. Assuming that your budget is $250K (your $500K estimate minus $250K "savings"), you have $150K for the rest of everything. Again, assuming $2K per server not counting storage (that's a freaking fast server), you get 75 servers that you are supposed to stuff with 300 drives, what just happens to fit.
Obviously "TCO" is higher because this has to be installed, backup and user configuration scripts should be written, load balancing configured in Cyrus, and someone has to occasionally migrate mailboxes between servers, restore backups, and install replacement servers and drives when something fails, however this is not fundamentally different from what you are supposed to do already.
What do you think, makes Google servers so cheap, some kind of inherent scalability or the fact that they can sacrifice a tiny amount of availability and get massive savings on storage while everybody else runs their email on something more appropriate for airline reservation or stock exchange trading system?
Confirmed orders for the Linux only XO laptop stalled at around 700,000 units.
XO is neither designed as a consumer laptop, nor is available for purchase by individual users.
A prompt will only decrease the percent of people that fall victim. IMO, if an inserted media has files flagged to autorun, a prompt should only appear if a user has already installed a program to handle that format. In this sense, a DVD can have a 'play DVD' prompt *IF* the user has approved that behavior and *IF* the program executed is already installed.
DVD (or anything that "has already installed a program") does not "run", it contains no executable code, only data and minimal scripts that are interpreted (or ignored) by the player.
The idea to ACTUALLY RUN EXECUTABLE CODE JUST BECAUSE IT APPEARED ON SOME MEDIA is far, far more stupid than any automated playback. When player is automatically started, it might create a security hole because player may be buggy. Running executables is a security hole all in itself. There should be no questions, no dialog boxes, no anything that will even suggest that the user might want to run those things until the user runs the executable or installs it as a handler for something.
^^ Typical level of intellect among American Social Conservatives.
I am sure, that was the inspiration for this whole stupidity in the first place.
It all makes sense if you make an initial assumption that people who make decisions about those programs are dumber than rocks. They can't invent anything. They can't find a problem that can be realistically addressed by developing some new technology. All they can do is to get some stupid idea of what can be "cool", and sci-fi shows are as good as anything for the source of ideas that look "cool".
US no longer lynches Negros.
Seriously, with RMS taking the hard line on privacy, etc, could we even hope to salvage what little privacy we have left?
Privacy is not an important issue here, at least not for Stallman. Users usually at least at some extent realize that company hosting the service can, and likely will, read the content, use for their purposes or disclose to someone else.
On the other hand, with remotely hosted data and software the user gives up the control over his data and his ability to operate on it. Provider can destroy, alter the data, limit functionality that user can access or demand unreasonable fees that in this situation would be not as much for service provided as a form of ransom on the data that is only accessible through the service. For Stallman and other free software advocates this is a far, far more fundamental issue than someone's ability to read the data.
When talking to ISP tech support I ALWAYS pretend to have a Mac. They tell me to use Safari to get to the DSL modem's web interface, I tell them that I did, and read them the blatantly obvious diagnostics page that I see in my Firefox browser, forwarded over my wireless router with ssh (their stupid modem has a whole separate subnet for its configuration because I am not crazy enough to use Netopia/Motorola implementations of PPPoE and NAT when I have Linux on WRT54G).
Problems are consistently unrelated to anything I have on my computers and routers.
gb2/b/
The greatest "GTFO" message of all times is the new ionizing radiation sign -- never before I have seen a warning sign that simultaneously is designed for complete morons that you would want to see irradiated (explanation for /b/: because they are mankind's cancer), and contains so many details, people would have to approach it to see what the hell it is.
Just look at that shit.
Oh, don't be ridiculous. Bugs aren't distributed evenly through a program's state space.
There is nothing that makes automated tests more likely to hit the states that happen to reveal bugs a programmer left in a program. Random tests cover very little, and usually not where the true problems are. Even evaluating the distribution of things to check is a far more complex task than writing a program that does not have those bugs.
Random tests can be useful to quickly find out if a programmer consistently writes $deity-awful code, but this only works if a programmer does not use the same tests by himself, and a far superior solution would be not to hire incompetent programmer in the first place.
Analogies are not meant to be illustrative, not comprehensive.
This is not illustrative, either. It's just a bad analogy.
Of course it isn't. The number of possible bugs for any program is always going to be finite, and even simple tests can reduce the number of possible bugs by a significant fraction. If you keep halving a mountain, it doesn't take many iterations until it's dust.
Really? If you want to apply any kind of exhaustive approach you will have to deal with the same nearly infinite number of states I have mentioned -- and some tools actually do that, though they are usable for extremely small set of software, and produce output that is not suitable for realistic evaluation of what is or isn't a bug. If you are under impression that "bug" always has a specific location in the source, or that even a single argument in a function call can not have simultaneously tens of ways what is wrong with it, you are seriously mistaken.
Very often poorly written code has to be abandoned and replaced with completely new one because it either is extremely buggy, too convoluted to be maintained and fixed, or tied to a model that no longer applies to the program's intended behavior. A single act of such replacement often does more to the improvement of software quality than years of development and testing -- this is sometimes called "refactoring" except in this case usually the interface has to be fixed as well because broken logic of one component spilled out into other, less affected parts of the program. It's a good day (or year) in a programmer's life when bad old code was kept at bay by clearly defined interface.
In other words, you can't back up your argument with a concrete example.
Now I am supposed to PROVE something by providing an example? I thought, you asked for example because you are unable to understand the concept expressed in its pure form.
What kind of example do you need, an actual application of those principles, a real-life instance where lack of them clearly didn't work, or some kind of hypothetical hand-waving like your example with "None" propagating as a special case through absolutely everything, where proposed solution actually does not work and requires massive amount of resources to be spent just to be implemented properly?
I think I'm beginning to get wise to this. In the past, I've often spend quite a few posts on various boards debating my point, but I've come to the conclusion that vague concepts that can't be explicitly nailed down and demonstrated are not worth arguing over, because there can never be any closure. You say this, I say that, and we get nowhere.
I was pretty clear about things I am talking about. You jumped in with "compiler checks" and "how to avoid exceptions by handling single possibly invalid condition thousand times in the same program". If you are unclear with what you are talking about, don't accuse others of not pointing you out what precisely you would have to say to make sense, find it out yourself before arguing about it. Do not expect others wave around the books on programming methods, styles and buzzwords you have chosen to support or attack, know what actually is b
Or more methodical. For instance, testing a distributed sorting algorithm by shoving ten billion random numbers through is a good way of checking for any flaws the human eye may have missed. The computer doesn't have to be smarter than you in order to catch something you've missed, just like a computer doesn't have to be smarter than you to beat you at chess. Sheer brute force is the advantage of a computer; it can zip through thousands, even millions of discrete tests per second.
Sometimes this (known as "crashme" approach) catches errors. Most of bugs, especially security-related ones are still missed.
Try to calculate all possible combinations of states in a program that occupies 10M of heap and stack (each bit can be one or zero), and take into account all possible relative positions of instruction pointer in its multiple threads. Multiply by all possible data passing through network buffers and files the program is processing. This is the number of all possible states in the program. It's nowhere close to the number of states it will go through when you feed it anything "random".
Automated tests aren't a mechanism for replacing human thought, any more than seatbelts replace the need for safe driving.
This is a stupid analogy. If you wear more than one seatbelt, it will make you LESS safe -- seatbelts are designed to reduce the damage in an accident by applying sufficient force at some set of locations, so you neither are thrown out of your seat nor crushed or torn by the belt itself. Add more seatbelts, and you may end up in pieces.
There is nothing test can do if the bug actually ended up in the released product. More tests may have slightly higher chance to catch it, but the area they don't cover is always larger than one they do -- it's just some programmers are so bad, they constantly hit that area.
But people make mistakes, and even the most security-conscious applications have bug trackers. Unit tests are a way of reducing human error by taking advantage of the computer's ability to singlemindedly check thousands of conditions every time the developer makes a change.
And most of those automated checks did not contribute anything at all to security fixes because conditions that trigger security bugs usually require knowledge and analysis of the system -- same things that are directly useful for writing bug-free code in the first place. Everything comes down to the same problem -- people who develop "modern" programming tools and techniques claim that their products and methods allow a person who is neither smart nor willing to dedicate a major amount of effort to his project can produce software.
This is something that is not going to happen no matter how much their users desire it -- programming, just like engineering and science, is a difficult job for smart people. Everyone who is not smart or is unwilling to do this difficult job should just leave us, programmers, alone, and kindly get the fuck out. Seriously, there are enough smart people who enjoy this kind of work, there is no reason to bring hordes of lazy dumbasses. Do we see similar hordes storming CERN to work on particle accelerators, space agencies to design rockets and spaceships, hospitals to perform heart and brain surgeries, journals in mathematics, theoretical physics and biology to publish articles, etc.? No? Then why every high school dropout has this idea that he is capable of designing and developing software that usually reaches the same or higher complexity? Sure, anyone can write a trivial program in a simplified environment, just like anyone can open a case of an old oscilloscope and watch a CRT from behind or launch a soda bottle rocket. And I agree, there is similarity between CRT and a particle accelerator, and between soda bottle rocket and something you would use to launch a spaceship. Yet the difference between amateur-written "my first program" and a piece of software that is useful, efficient, r
But then it's no longer Microsoft products, and no implicitly-promised Microsoft Office compatibility.
Windows CE devastated mini-notebooks market the last time it appeared (when they were called "clamshell PDA" and "tablets") -- people were buying them expecting a sumbini Windows computer and got Windows-branded pseudo-laptop running something that users could not recognize as Windows or compatible with Windows (or any usable desktop -- in fact, those users now often "recognize" Ubuntu as Windows), and ended up replacing it with a regular, then-bulky laptop.
For Microsoft it was a great success because it driven its two competitors -- Palm and Symbian -- out of the PDA market and into smartphones. Then Microsoft went chasing them into smartphones, and this is why there are so many Windows smartphones being pushed through cellular providers even though users to whom those models are marketed are much happier with Nokia Symbian-based line and Blackberry (and now also iPhone). Microsoft does not care about actually getting anything out of PDA, smartphones and netbook market, it has to eradicate all "breeding grounds" for competing operating systems, and if it can be done without spending any noticeable effort on design, development and support, then it is just a more efficient way to poison the market where Microsoft can lose to superior competitors. This is their strategy.
I can definitely understand how someone comfortable and familiar with Windows could want a net book with features like a solid state drive and not want Linux.
Except, of course, the user will quickly discover that "Windows", "IE" and "Office" that he gets with Windows CE are completely different, far inferior products that merely share the name and manufacturer with those he expected. And he wouln't know that Linux desktop, web browser, office packages and other software is actually closer to what he expected, because he didn't get Linux intalled or even dual-booting.
Sounds more like a scam to prevent users' exposure to Linux, with both users and netbook manufacturers (whose products will be discredited as a result of this) as victims.
Umm, you mean you try it and it fails and Linux apologists tell you you have broken or hardare or RTFM. And then you waste ages trying to find someone who actually knows what they are talking about.
And it ends up that you actually have broken hardware, have to RTFM or both.
I have Linux boxes that in some form existed for 10-14 years -- upgraded, migrated between distributions, had their hardware replaced piece by piece, etc. I can't even imagine a situation when someone actually familiar with Linux can not do that -- in the worst-case scenario it's always possible to selectively copy user's dot files, or extract a list of installed packages and feed it to the installer. Windows, on the other hand, still can't provide a usable way to safely store and copy user and system settings -- registry mixes together things that can and can't be transferred between users, hosts, sets of packages and installations. As I said before, this is a result of a massive engineering failure that Windows is.
Hmm, that's ok if someone bothers to do it. Otherwise you need to do it yourself. And my point is how many people are going to get it right for a 13 year old disti.
Usually people just upgrade the distribution. As opposed to Windows, it actually works and does not break packages because they are upgraded with the system.
E.g. Firefox 3 won't work on Fedora Core 4 which is a lot newer than 13 years.
Oh, wow, you have found something on Google.
Too bad, you didn't bother to read it. They are looking for FIREFOX 3.0 PACKAGED SPECIFICALLY FOR THE DISTRO THAT WENT OUT OF SUPPORT BEFORE FIREFOX 3 WAS WRITTEN. So they have to download Firefox from mozilla.com and ACTUALLY RUN THE INSTALLER. You know, do the same thing you do when installing it on Windows. What the person seems to be unfamiliar with because everything else installs nicely through a package manager, a thing that is light years ahead of anything ever created for Windows.
Of course, anyone who used Fedora Core 4 was supposed to run auto-upgrade a long time ago. In Windows world that would be an equivalent of installing SP2 on Windows XP -- most of recently released software would not work on XP as it originally shipped.
You say shit a lot. But it's sort of interesting that I can run Firefox 3 on Windows 2000, which is a lot older than FC4.
What means absolutely nothing, see above. Firefox 3.0 works just fine on earlier versions of Linux, even though it makes absolutely no sense not to upgrade them -- as opposed to Windows.
And that's because of all the work people like Raymond Chen do on making sure that software works after an upgrade. Because Microsoft want to sell you that upgrade.
If Microsoft wanted to sell it, no one in the world would run Windows 2000 by now, and you would never know if Firefox 3.0 runs on it or not. The problem is, Windows is such a massive piece of shit, it's not even possible to keep an old code as a deprecated library for old software, and move on to better new version. Because all interfaces are intermingled, libraries are not versioned, and there is no way to separate environment for different packages or executables. So all the effort goes into supporting old, crappy interfaces with all their bugs on newer foundation, crippling underlying OS and newly developed software alike.
In the FOSS world no one gives a shit because there's no money in it. If some developer does some refactoring that inconveniences a user, the user goes to the community which is full of people like you yelling that they are idiots and the sort of work Raymond does is shit.
Except, of course, what you have said is false. Distributions have maintained packages of things decades old, source-level compatibility goes well into 1970's (!), and binaries at very worst need a set of old libraries (conveniently available on old systems be
...which is obviously derived from Jojo that I have mentioned, though it was the immediate source for Touhou/Mac-vs-PC parody.
the this
That's an obvious result of editing.
turned out bad
"Turned out badly" means "had negative consequences" -- it would make sense if, say, the ads caused a decline in Microsoft sales. "Turned out bad" means "something produced ended up being bad".
The proper way to say it is
"We expected the this, though we would be happier if people loved the ads".
Or if they were honest:
"We knew that our ads turned out bad, but we ran them anyway".
(May I have my own advertising company, please? I promise, I will hide my Russian accent and horrendous pronunciation by talking through text-to-speech software).
If someone could see the sexual tension in that, there would be fanfiction about it.
Just imagine -- yaoi-fangirl of those two. Kill it with fire. Kill it with fire!
For comparison -- http://www.youtube.com/watch?v=KLiyglcRcCA
References:
1. http://touhou.wikia.com/wiki/Sakuya_Izayoi
2. http://touhou.wikia.com/wiki/Hong_Meirin
3. http://www.youtube.com/watch?v=qbArvIqZzkI
Now the population can appreciate a massive failure from Microsoft that approaches the level of software engineering failure that is Windows.
(too bad, "five nines" of population won't be able to parse the above sentence)
(too bad, they also won't see the difference between "five nines" and "five ninths")
(in other words, if you are reading this and didn't already figure out WTF is it all about, YOU ARE STUPID, KILL YOURSELF!)
what embedded systems are.
Obviously I meant "what those embedded systems are". I happen to work on embedded systems development myself, and I can't imagine another embedded systems developer that can't press "Update" button in Ubuntu. Unless his "embedded" system is actually Windows-based computer -- I have seen those, and they often reach some truly subhuman levels of stupidity.
The problem has nothing to do with the houses. They could just as well be tulips. Or WoW gold.
For the last two decades US economy had one dirty secret -- while Federal Reserve continued producing money that are used almost everywhere in the world, nothing that happens within US borders or under jurisdiction of US government actually had value that would correspond to the amount of money produced in US. So basically a ton of steel is produced in China, and Federal Reserve in US issues a loan for the amount that can buy a ton of steel from China. After tens or maybe hundreds of transactions money are in China, ton of steel is in US, and the world as a whole has more dollars than it had before. However since the total amount of dollars in the world is so huge, the contribution of this ton of steel is diluted so much, no one is supposed to notice. Chinese can use those money to buy oil from Saudi Arabia. Saudi Arabia can pay it to build a piece of skyscraper. Skyscraper builders buy food. Farmers buy tractors, etc., and thus the newborn ton-of-steel-worth amount of dollars is dissolved somewhere in the world's economy.
What is wrong with this picture? Two things.
First and foremost, this can't last. Ton of steel is small potatoes on the scale of the world's economy, however increasingly larger and larger part of US trade follows this model. Dollars getting more and more diluted, thus losing their value. Anticipating further loss of value, foreigners use dollars as a smaller part of their trade, replacing them with local currency, euro or even barter. That frees more dollars to participate in less trade, thus making dollars even less valuable. If anyone cares, this is how dollar dropped so far compared to euro from the initial position of parity.
Second, it gives US Federal Reserve power to give someone "free" money and tell him "hey, China has this ton of steel -- it's yours now, you can pay us later (with money you will get from someone else who got them from us, too)!". While it doesn't happen exactly that way, this is the overall mechanism -- someone has to stuff Americans' pockets with money so they can pay for the import. And last time I have checked, there are no "free money" windows in Federal Reserve buildings. So how new money enter the economy? Through loans Federal Reserve does to large financial institutions. That happen to be investment banks and mortgage companies. Fannie and Freddy literally have a bunch of money and a task to distribute it to the population so those money can enter the worldwide economy -- if those money will end up in the hands of people who can afford to keep money in a bank, the Federal Reserve's mission is incomplete, they issued money and those money are not bringing foreign products into US! But equity loans accomplish this perfectly -- they are given to the money-hungry consumers, and consumers spend them on stuff, thus making all kinds of middlemen happy, and bringing products into US for the population to enjoy.
So no, there is no failure of "bad" loans, loans were given to people who can't pay them back because mortgage companies simply ran out of people who can pay them back, and money are still there, sitting on their balance, not doing what they are supposed to do -- being the sole driving force behind a paper-shuffling machine that US economy turned into. It doesn't matter what loans were supposedly for -- a poorly built box made of gypsum/cardboard composite on a wooden frame, standing on a piece of land is completely detached from the hundreds of thousands dollars it supposedly is worth. As I have mentioned before, same thing could (and actually did) happen with arbitrary objects such as tulips, and same thing may (and I expect it to happen eventually) with completely imaginary "objects" such as WoW gold and items as long as someone can convince other people that those objects have value.
It does not matter what it is, what matters is that a ritual of relinquishing control over such object for some money and a promise to pay those money
Right because upgrading Linux installations always works every time.
Not every time. You may have broken hardware, or you may erase half of distribution after installing it. Then it won't work.
Otherwise either the standard upgrade process will work, or you can use some trivial procedure to wipe the system and install the same configuration while preserving users' files.
Windows, on the other hand, ends up in an unrecoverable state after updates all the time.
Also good luck downloading a new installation over the sort of internet connection these machines will have in the third world.
Those laptops are used as a part of classroom configuration with either wireless school server or automated updates on USB drives. Update procedure is among the best parts of XO-specific version of Fedora/Sugar.
And realistically would any software support upgrading on a 13 year old machine? Over that time filesystems will have changed.
All filesystems that were used in Linux 13 years ago are supported now.
Linux is about progress, not back compatibility and no one is willing to do the work to maintain old ABIs or filesystem formats. In fact they often deride Microsoft for caring about it.
In fact, you know absolutely nothing about Linux. ABI changes very slowly, and older versions will work with modern kernel, and may require old libraries that usually are provided in "compatibility" package for this very purpose.
What Microsoft does is different -- it has SHITTY OLD INTERFACE, and it continues throwing shit into the newer and newer versions of its OS supposedly to provide compatibility with old shit, but really to avoid making any progress toward anything better. Instead of deprecating obviously bad systems such as most of Win32, everything new is either added or built on top of it. The reason for it is very simple -- it's very difficult to provide a compatibility layer on another platform that will imitate extremely bad, poorly designed, bug-ridden subsystem in a way that will support all "creative uses" and workarounds that accumulated over decades of evolution of such a massive engineering failure. If Windows wasn't that bad, Wine (or Windows interface under OS/2 before it, or Wabi,...) would be orders of magnitude more simple, and it would become "better Windows than Windows". With Windows being full of unmaintainable finicky crap every imitation of it necessarily has to be full of unmaintainable finicky crap.
Hmm, doesn't that seem a bit of an ad hominem attack to you? Even if it were true how does it affect what I'm saying.
You and other Microsoft defenders have literally flooded this discussion with your comments. Obviously you are trying to create an impression of validity by posting large number of comments with unsupported claims instead of participating in a discussion.
Hell, I spend my time working on embedded systems at work, but Linux was too much trouble to maintain at home.
If this is true, please tell me what embedded systems are. Then I will know what to avoid like plague because it's made by a person so hopelessly stupid, he is indistinguishable from a Microsoft astroturfer.
I (teapot) happen to be the maintainer of Ubuntu on XO.
At least people on OLPC News forum recognize my self-proclaimed status as such.
No one from OLPC project, Peru, or any organization involved in "Give One Get One" program ever contacted me about Ubuntu customization for XO in general, G1G1 donors or any deployment. Crappy adaptation of XP for XO that barely works, has no educational value, and seem to be nothing but Microsoft's own initiative, gets all the coverage. Far superior system that provides the same "general-purpose" functionality, far superior performance, reliability and security is completely ignored. Slashdot users make comments assuming Ubuntu for XO to be some kind of hypothetical possibility despite the fact that it existed since the beginning of this year, and my adaptation remains the current version since May (when it was built based on then-released Hardy).
It's called a troll.
I find troll in this discussion to be among the BETTER participants because the most prominent group -- Microsoft astroturfers -- stinks to high heavens.