No, you ignored my more important points for the sake of poking holes in minor issues. Moreover, "bullshit!" is not a valid comeback. By the way, even though this thread is basically finished, I thought of another problem with procedural languages: memory management. When you deal with even medium-sized software solutions, you'll probably be using a lot of variables. When they are locked up in objects, freeing the object frees the memory. If you don't encapsulate, you might confuse the compiler and make it keep too many memory addresses open at once. That would be muy mal (very bad:) )
Anyway, don't sweat it - in another few years, some new programming abstraction will sweep procedural and OO right off the map, and we'll all bitch and moan about how much our old ways beat the newfangled Neural Network-optimized Stack Developement Abstraction Model, or something.
BTW, my comment is a fiiiiiiiiiiivvve, not a fooooouuuuuuuuuur.
Four years ago, I had an account with BayBank, which was a great student bank in Boston. When I went home for the summer, I filled out a change of address form so I would receive my account info, but the form was not processed and never got any statements. When I returned in the fall, I found that I had dipped into my "Reserve Credit", which was an excess $300 in your account as a cushion (how nice of them). Of course, at this point it was a late payment of about $150. So I went to BayBank to sort it out:
"Hi, I never got my statements at my new address, and I overdrew on my account. I'm paying it now. Will there be any reprecussions?"
"Well, it will show up as a late payment on your credit history."
"But it was your problem, not mine!"
"There's nothing I can do, but it will come off eventually."
"How long?"
"Oh, about 7 years."
I left feeling quite upset, but figured that one late payment couldn't hurt me that much. Over the next three years I was denied for every single credit check ever performed on me. I got one credit card, a $200 limit card, and only because they sent it to my parents' house. I couldn't believe that this had happened! But when I applied for an apartment lease, I learned the awful truth.
When BayBank did not receive my payment, they wrote it off as an unpaid loan. However, they never marked the loan as paid when I settled the account. So I had a defaulted loan on my credit history, which is the worst thing you can have besides bankruptcy. Moreover, BayBank had been bought by BankBoston had been bought by FleetBoston, so no one knows where this phantom loan is! After four frustrating days on the phone, I had discovered that no one would undo the damage, even if I paid off the "loan" again!
In the end, I retained a credit attorney to challenge the $150 loan and fix my credit. For over $1000.
So my theory is the following: credit in this country is purposely complex. The reason is that if you need to retain a lawyer to keep your credit history clean, then only the rich can afford to do so. The poor, on the other hand, must cope with bad credit. Because of this, they will pay higher rates on credit cards and loans, and find themselves in debt more frequently.
The credit system in the US is designed to keep the poor in a perpetual state of indentured servitude.
Remember all those lovely EULAs and such that define "the Company", "the User", and "the Software"? That's not just legal jargon, it is a strict definition of roles in a contract. Those roles are especially important in a case like this one, since the contract involved phrases like "anyone else". Therefore, we have to follow along and see what happens to the contract players. Follow along, and correct me if you think I'm missing something.
In this case, we can say that Toysmart ("the Company") owns the list of names. However, in submitting your name to the list, you ("the User") entered into a contract with the Company that personal information about the User would not be shared with any entity which was not the Company, for any purpose.
If Toysmart were bought by another firm, that firm would become the Company in a legally binding way, and therefore would have rights to the list. They would also be under the same contract that Toysmart began under.
However, the Company has dissolved, and by taking its assets, creditors in no way take on the role of the Company. As the contract stated that information about the User would not be shared with non-Company groups under ANY circumstances, the list must be destroyed upon dissolution of the Company. Simple.
How small is a small business app? We have both enterprise-scale and small-business scale versions, but neither would survive long as a procedural app. Moreover, the enterprise "niche" is the greater part of the software market. There's no reason to object-orient the shitty little linux apps that you use, since they are usually 1-2 wannabe code monkeys writing bad C++. Any multi-employee project requires the kind of abstraction that only OOP provides.
I read as much of the article as I could stomach before his baseless graphs and lack of data made me stop, but I saw enough to know an Epsilon Minus Semi-Moron trying to sound academic. It was a pathetic article, and anyone with a college degree and a smidgen of programming experience would tell you the same thing. It certainly provided a lot of laughs in my office.
It seems our skeptical OOP critic is pulling graphs from nowhere and making logical flaws left and right. Refuting his article is quite easy, but there is no doubt in my mind that he would not accept the refutation. His failure is that he refuses to accept the absolute need for abstraction.
I work in a software company, and our product takes up no less than 300 MB of code. Even in the most well-organized non-OOP code, our software would be impossible to debug or even build, because we would need to go through hundreds of lines of code. In addition, reusability would be hurt, since even though the functions would be there, minor changes in the arguments might make the entire function worthless.
The author's example using People and Taxes is particularly striking. He suggests that an object oriented approach would create a person object and a tax object, set their attributes, and run the T.CalcTax method on Person P, while a procedural approach would just feed the relevant parameters to a function. I wonder if the author has ever actually filled out the 1040 Personal Income Tax Return Form. The easy version has 70 entries, and while some are calculations, others are references to other, much bigger, forms! Keeping track of all these variables without some structure to hold them all is just stupid. Object orientation is necessary when code hits a level of complexity where several people, or several hundred, are simultaneously working on a project. The "black box" approach allows for greater flexibility and optimization, since a code change will be transparent to the objects around it.
Another thing to consider, although I know CmdrTaco would berate me for even mentioning it, is the expansion of OOP provided by Java. The Interface in Java allows you to specify several functions, abstractly, that are required for a class to implement the Interface. The implementation of these functions is class-specific: for example, all clothes implement the Wearable interface, but you would not want underwear and shoes to have the same implementation of Wear(). However, in Java, you may specify a function to take a Wearable object, and not need to specify any further. This abstraction level is why OOP does, in fact, better model the real world.
In conclusion, the rantings of a PASCAL junkie should not constitute a Slashdot article. Anyone who has coded in procedural and OO languages should see the extreme idiocy of the article within milliseconds. On the other hand, Perl powers Slashdot, so I guess this is the place for the procedural approach to have its message heard. In fact, Slashdot totally vindicates the article: its non-OOP approach is fast, effective, efficient, and easy-to-understand. Highly scalable and expandable as well. I especially like Slash.pm (aka THE BEAST) and the my_conf{shit} variable. I'm sure the non-OOP approach will really take off once everyone switches over from C++/Java to Perl.
I wonder how far the high-res tv stuff can go, considering that at some point we hit the quantum limit for wavelength resolution. Of course, long before that, we hit the (rather weak) limitations of the human eye. Now don't get me wrong; I would love to take a scanning electron microscope to my generation 42 HDTV and see the hidden messages on Intel chips during their commercials, or the microbes on Jodie Foster's hands in Contact, but aren't we focusing in the wrong direction? Maybe our A/V technology is just good enough that we can start focusing on something a little more useful, like, say, I don't know, a cure for cancer or something...
I worked in the IT dept. at a hospital in Philly, and found that they are slow to embrace new technology, for the most part. When I was there in '97, they were installing new Windows 95 (yeah, I know) boxes for use on a NetWare 3.12 system. But the 95 boxes were running a 3270 emulator to talk to the old medical mainframe! Those were expensive dumb terminals, let me assure you. And they crashed way too often.
You might think this is stupid, but there is a reason why they use old technology: it's tried and true. When your rinky-dink website crashes because of a minor bug in the software, that's annoying. When the ICU-1 server crashes, patients die - no joke. We had to operate at < 1 min. unscheduled downtime per month, or we were replaced.
So the palm thing is cool, but don't expect doctors carrying around PDAs to diagnose for quite some time - at least, not in any official policy. On the other hand, my dad is a doctor, and he now has a drug database on his palm, as well as a diagnosis kit, and he loves them both;)
Yeah, I read about the NuSphere thing on slashdot, actually. But they're still not at the full commit/rollback architecture that Oracle or Postgres will support.
It's even more fundamental than reinventing the wheel, though. Any non-transactional database will not support basic rollbacks in the event of a system failure, no matter how good your code is. And not even the almighty Linus wrote a kernel module that prevents power outages, floods, and meteors from crashing your "impervious" linux box that's been up for 3 years, 4 months, 27 days, 6 hours, 5 minutes, 2 seconds, 34 milliseconds, 765 microseconds and 420 nanoseconds (and counting).
Basic rule of thumb: when dealing with money, use a transactional db.
My bad. Previous versions of MySQL were released under a more restrictive "Free Software" license, but the later versions are GPLed. Must have been all those Slashdotters mass-emailing GPL demands that made 'em see the light:)
Yeah, but what happens if the server crashes between the update and credit? You give away service for free, and MySQL will not store the old data for you.
Running an ISP ain't like hosting a Slash site, boy. Without transactions, you could wind up with corrupt data or multipule billings, and that would end your trip real fast, wouldn't it?
I must confess that I have not dealt with many billing solutions before, open source or otherwise. However, I was in web development and e-commerce for a while, and I found that MySQL is a poor choice for any sort of billing database.
The reason for this is that, quite simply, MySQL does not support transactions. Transactions are a set of operations that are either all executed or all fail. This ensures that a customer's credit card is only billed if a service is provided, and vice versa. Without transactions, you will never be able to tell what went through and what didn't. And of course, since MySQL stores databases as directories, we're not dealing with the world's tightest encryption either.
Take my advice, and go with a transactional database. If you're so obsessed with the open source model, go with PostgreSQL - it's actually open source, not just free software like MySQL.
Remember "Radio Free Europe"? Same basic idea here... satellite uplinks provided by the Land of the Free, then they can see all of the Internet. Periodically, we also insert anti-China propoganda, of course.
However, after this year's budget is passed, they will not be able to access porn and other sensitive material, because the satellite link will have censorWare on it. Oh well, looks like the US and China deserve each other after all.
Before you all go out to WalMart to buy your cool new toy, I think you should remember the following story:
Basically, WalMart has huge market share, especially in music sales. They have so much, in fact, that they routinely force recording artists to alter lyrics or cover art in order to get the CD sold in Wal-Mart stores. While it is their right to choose what is sold and what is not, it runs counter to the entire notion of free speech when a CD is buried because its lyrics offend some Christian Wrong preachers with market power. So if you can, try to get your cool new cam somewhere else. And check around for better Wal-Mart stories; the link I included is probably far from the best, and their list of transgressions goes on and on.
Here n refers to the bitlength (128, 256, etc.) and NOT to the integer size (2^128... you get the picutre).
On the other hand, we always ignore the constants when we use big-O notation (they say it's negligible). If that c is the lifetime of the universe, it's not negligible. I would laugh my ass off if the quantum computer got assembled only to find that it is an impractical method of computation for even simple factoring (6 = 2*3).
You see, here is where the "Who cares that MySQL doesn't support feature xxx?" argument is brought to its knees. If MySQL data exports were more solid, you could dump the whole table and pull it into oracle, postgres, or even msql:)
or M$ $QL $erver;)
Unfortunately, when you choose MySQL, you're locked in. But you could still port slash to PostgreSQL with some clever scripting. But why would you want to? Slash includes workarounds for MySQL's shortcomings that real RDBMS's don't have.
Also remember that/. keeps itself running quickly by hard-coding old entries to static pages. This keeps the tables from getting unmanageably large, but definitely has its downsides:)
MySQL should go away now... hasn't PostgreSQL surpassed it in performance (by recent benchmarks)? Data consistency should not be an issue with any db, no matter how piddling the content seems to be!
Hey there, muppet, I just went to tpc.org and noticed something funny: they don't benchmark MySQL at all! In fact, they don't do PostgreSQL either. Your benchmark site looks like a pay-db only club.
Oh, of course. Why didn't I think of that? Use the 15GB dinosaur of all RDBMS's to run a multiuser threaded comment system! I'm sure that at 100,000 users, you won't run into speed issues.
I've worked with Oracle extensively; it's nearly failsafe, and handles inserts well, but it's slow as balls. Good for sensitive transactions on low-traffic sites, but if you want real RBDMS power with speed, only PostgreSQL offers it.
That is, unless you're just dying for the cool CTX stuff that Oracle offers. 'cause that just rocks.
You're right about the DMCA being law. They should be able to protect their copyrighted material.
At the same time, don't users have a right to know what policies their service implements to fix problems? Clearly, @Home is an inferior service, and the customers should be able to see that. Perhaps this incident reveals a flaw not in the DMCA, but in the extent to which copyrights are used. I don't think that @home should be able to copyright its material as it does now.
In answer to your question, it seems that a toxic substance on some maze walls would cause the slime to alter its body shape to avoid the toxin, though I'm sure tests are already being planned.
Everyone seems to discuss intelligence as though it has some binary component: you do or do not display intelligence. Haven't we seen far more evidence that intelligence is a continuously evolving trait? All life is intelligent to some extent, while greater organization can lead to higher intelligence.
Some might claim that human beings can be used as the measure of other species intelligence. However, even if that were true, human beings display such a range of intelligence levels themselves, such a measure could never be useful! Besides, if you believe that human beings represent the ultimate accomplishment in biological intelligence, you oviously haven't been to enough sports venues.
I think it's easy to lose sight of the big picture here... we're not talking about flame e-mails and harassment charges. What if a real criminal deletes evidence? Should it be admissable? At what point does it end? I believe in the weakest sort of internet regulation, but I must accept some accountability for actions, even online.
Anyway, don't sweat it - in another few years, some new programming abstraction will sweep procedural and OO right off the map, and we'll all bitch and moan about how much our old ways beat the newfangled Neural Network-optimized Stack Developement Abstraction Model, or something.
BTW, my comment is a fiiiiiiiiiiivvve, not a fooooouuuuuuuuuur.
"Hi, I never got my statements at my new address, and I overdrew on my account. I'm paying it now. Will there be any reprecussions?"
"Well, it will show up as a late payment on your credit history."
"But it was your problem, not mine!"
"There's nothing I can do, but it will come off eventually."
"How long?"
"Oh, about 7 years."
I left feeling quite upset, but figured that one late payment couldn't hurt me that much. Over the next three years I was denied for every single credit check ever performed on me. I got one credit card, a $200 limit card, and only because they sent it to my parents' house. I couldn't believe that this had happened! But when I applied for an apartment lease, I learned the awful truth.
When BayBank did not receive my payment, they wrote it off as an unpaid loan. However, they never marked the loan as paid when I settled the account. So I had a defaulted loan on my credit history, which is the worst thing you can have besides bankruptcy. Moreover, BayBank had been bought by BankBoston had been bought by FleetBoston, so no one knows where this phantom loan is! After four frustrating days on the phone, I had discovered that no one would undo the damage, even if I paid off the "loan" again!
In the end, I retained a credit attorney to challenge the $150 loan and fix my credit. For over $1000.
So my theory is the following: credit in this country is purposely complex. The reason is that if you need to retain a lawyer to keep your credit history clean, then only the rich can afford to do so. The poor, on the other hand, must cope with bad credit. Because of this, they will pay higher rates on credit cards and loans, and find themselves in debt more frequently.
The credit system in the US is designed to keep the poor in a perpetual state of indentured servitude.
In this case, we can say that Toysmart ("the Company") owns the list of names. However, in submitting your name to the list, you ("the User") entered into a contract with the Company that personal information about the User would not be shared with any entity which was not the Company, for any purpose.
If Toysmart were bought by another firm, that firm would become the Company in a legally binding way, and therefore would have rights to the list. They would also be under the same contract that Toysmart began under.
However, the Company has dissolved, and by taking its assets, creditors in no way take on the role of the Company. As the contract stated that information about the User would not be shared with non-Company groups under ANY circumstances, the list must be destroyed upon dissolution of the Company. Simple.
Welcome to the world of OOP.
I read as much of the article as I could stomach before his baseless graphs and lack of data made me stop, but I saw enough to know an Epsilon Minus Semi-Moron trying to sound academic. It was a pathetic article, and anyone with a college degree and a smidgen of programming experience would tell you the same thing. It certainly provided a lot of laughs in my office.
I work in a software company, and our product takes up no less than 300 MB of code. Even in the most well-organized non-OOP code, our software would be impossible to debug or even build, because we would need to go through hundreds of lines of code. In addition, reusability would be hurt, since even though the functions would be there, minor changes in the arguments might make the entire function worthless.
The author's example using People and Taxes is particularly striking. He suggests that an object oriented approach would create a person object and a tax object, set their attributes, and run the T.CalcTax method on Person P, while a procedural approach would just feed the relevant parameters to a function. I wonder if the author has ever actually filled out the 1040 Personal Income Tax Return Form. The easy version has 70 entries, and while some are calculations, others are references to other, much bigger, forms! Keeping track of all these variables without some structure to hold them all is just stupid. Object orientation is necessary when code hits a level of complexity where several people, or several hundred, are simultaneously working on a project. The "black box" approach allows for greater flexibility and optimization, since a code change will be transparent to the objects around it.
Another thing to consider, although I know CmdrTaco would berate me for even mentioning it, is the expansion of OOP provided by Java. The Interface in Java allows you to specify several functions, abstractly, that are required for a class to implement the Interface. The implementation of these functions is class-specific: for example, all clothes implement the Wearable interface, but you would not want underwear and shoes to have the same implementation of Wear(). However, in Java, you may specify a function to take a Wearable object, and not need to specify any further. This abstraction level is why OOP does, in fact, better model the real world.
In conclusion, the rantings of a PASCAL junkie should not constitute a Slashdot article. Anyone who has coded in procedural and OO languages should see the extreme idiocy of the article within milliseconds. On the other hand, Perl powers Slashdot, so I guess this is the place for the procedural approach to have its message heard. In fact, Slashdot totally vindicates the article: its non-OOP approach is fast, effective, efficient, and easy-to-understand. Highly scalable and expandable as well. I especially like Slash.pm (aka THE BEAST) and the my_conf{shit} variable. I'm sure the non-OOP approach will really take off once everyone switches over from C++/Java to Perl.
I wonder how far the high-res tv stuff can go, considering that at some point we hit the quantum limit for wavelength resolution. Of course, long before that, we hit the (rather weak) limitations of the human eye. Now don't get me wrong; I would love to take a scanning electron microscope to my generation 42 HDTV and see the hidden messages on Intel chips during their commercials, or the microbes on Jodie Foster's hands in Contact, but aren't we focusing in the wrong direction? Maybe our A/V technology is just good enough that we can start focusing on something a little more useful, like, say, I don't know, a cure for cancer or something...
You might think this is stupid, but there is a reason why they use old technology: it's tried and true. When your rinky-dink website crashes because of a minor bug in the software, that's annoying. When the ICU-1 server crashes, patients die - no joke. We had to operate at < 1 min. unscheduled downtime per month, or we were replaced.
So the palm thing is cool, but don't expect doctors carrying around PDAs to diagnose for quite some time - at least, not in any official policy. On the other hand, my dad is a doctor, and he now has a drug database on his palm, as well as a diagnosis kit, and he loves them both ;)
Yeah, I read about the NuSphere thing on slashdot, actually. But they're still not at the full commit/rollback architecture that Oracle or Postgres will support.
Basic rule of thumb: when dealing with money, use a transactional db.
My bad. Previous versions of MySQL were released under a more restrictive "Free Software" license, but the later versions are GPLed. Must have been all those Slashdotters mass-emailing GPL demands that made 'em see the light :)
Running an ISP ain't like hosting a Slash site, boy. Without transactions, you could wind up with corrupt data or multipule billings, and that would end your trip real fast, wouldn't it?
The reason for this is that, quite simply, MySQL does not support transactions. Transactions are a set of operations that are either all executed or all fail. This ensures that a customer's credit card is only billed if a service is provided, and vice versa. Without transactions, you will never be able to tell what went through and what didn't. And of course, since MySQL stores databases as directories, we're not dealing with the world's tightest encryption either.
Take my advice, and go with a transactional database. If you're so obsessed with the open source model, go with PostgreSQL - it's actually open source, not just free software like MySQL.
However, after this year's budget is passed, they will not be able to access porn and other sensitive material, because the satellite link will have censorWare on it. Oh well, looks like the US and China deserve each other after all.
Basically, WalMart has huge market share, especially in music sales. They have so much, in fact, that they routinely force recording artists to alter lyrics or cover art in order to get the CD sold in Wal-Mart stores. While it is their right to choose what is sold and what is not, it runs counter to the entire notion of free speech when a CD is buried because its lyrics offend some Christian Wrong preachers with market power. So if you can, try to get your cool new cam somewhere else. And check around for better Wal-Mart stories; the link I included is probably far from the best, and their list of transgressions goes on and on.
And remember, shop smart... shop S-Mart!
On the other hand, we always ignore the constants when we use big-O notation (they say it's negligible). If that c is the lifetime of the universe, it's not negligible. I would laugh my ass off if the quantum computer got assembled only to find that it is an impractical method of computation for even simple factoring (6 = 2*3).
or M$ $QL $erver
Unfortunately, when you choose MySQL, you're locked in. But you could still port slash to PostgreSQL with some clever scripting. But why would you want to? Slash includes workarounds for MySQL's shortcomings that real RDBMS's don't have.
MySQL should go away now... hasn't PostgreSQL surpassed it in performance (by recent benchmarks)? Data consistency should not be an issue with any db, no matter how piddling the content seems to be!
Hey there, muppet, I just went to tpc.org and noticed something funny: they don't benchmark MySQL at all! In fact, they don't do PostgreSQL either. Your benchmark site looks like a pay-db only club.
Watch what you say, sxpert, M$ may sue you for breach of EULA for mentioning those benchmarks. Oracle found that one out the hard way.
I've worked with Oracle extensively; it's nearly failsafe, and handles inserts well, but it's slow as balls. Good for sensitive transactions on low-traffic sites, but if you want real RBDMS power with speed, only PostgreSQL offers it.
That is, unless you're just dying for the cool CTX stuff that Oracle offers. 'cause that just rocks.
Competition is coming. RCN provides my cable modem hookup, and they provide a (somewhat) quality service.
You're right about the DMCA being law. They should be able to protect their copyrighted material.
At the same time, don't users have a right to know what policies their service implements to fix problems? Clearly, @Home is an inferior service, and the customers should be able to see that. Perhaps this incident reveals a flaw not in the DMCA, but in the extent to which copyrights are used. I don't think that @home should be able to copyright its material as it does now.
In answer to your question, it seems that a toxic substance on some maze walls would cause the slime to alter its body shape to avoid the toxin, though I'm sure tests are already being planned.
Everyone seems to discuss intelligence as though it has some binary component: you do or do not display intelligence. Haven't we seen far more evidence that intelligence is a continuously evolving trait? All life is intelligent to some extent, while greater organization can lead to higher intelligence.
Some might claim that human beings can be used as the measure of other species intelligence. However, even if that were true, human beings display such a range of intelligence levels themselves, such a measure could never be useful! Besides, if you believe that human beings represent the ultimate accomplishment in biological intelligence, you oviously haven't been to enough sports venues.
I think it's easy to lose sight of the big picture here... we're not talking about flame e-mails and harassment charges. What if a real criminal deletes evidence? Should it be admissable? At what point does it end? I believe in the weakest sort of internet regulation, but I must accept some accountability for actions, even online.