don't expect to go in one side of London and out the other without queueing at least 3 times
Most of what you say makes sense, but this one bit is bulls**t. I recently bought a return ticket from Reading to Manningtree, which are towns on almost exaclty opposite sides of London on railway services owned by two different companies, so I queued once to go into London and out twice (once in each direction). The trains were late and overcrowded and the ticket was overpriced, but that's another story.
Ironically, SUVs are generally less safe both for the occupants and for the people they hit than normal passenger cars. Some of the safety features you get in normal cars e.g. crumple zones are a bit impractical on a 4x4 in an off road situation, so the safety laws have to be relaxed a bit for such cars.
Re:So Englishmen are ignorant?
on
Eco-Terrorism
·
· Score: 1
Disclaimer: I'm English...
That's about the size of it. In this case, there was an issue about releasing paedophiles back into society once they had completed their prison sentences. This was whipped up into hysteria by the British tabloid press leading to mobs of people (men and women) going round trying to lynch anybody who's job title began paed-. It wasn't just paediatricians that were in trouble. Anybody who was even suspected of being a paedophile was in danger.
The trouble is that the kind of person who gets involved in these mobs is usually not the sharpest tool in the box and therefore has trouble reading "paediatrician" let alone understanding what it means. Also, with mob hysteria, little details such as actual guilt or innocence tend to get trampled on in the rush to string somebody up.
I still think that the advancements mad by Linux in the time frame it has been available are more than what MS has done since its inception.
Let's see, since it's inception, M$ has developed several complete sets of delvelopment tools including the first high level language tool for any microcomputer. It has developed the World's three most popular desktop OS's (MS-DOS, Win9x, WinNT/2000) an architecture to make it easy to configure the later OSes with a remarkable variety of hardware + all the support tools that go with them. It has developed the World's most popular suite of office applications, the second most popular groupware system, and a framework that makes it relatively easy to for the average computer user to use these tools together.
The Linux community has developed in about half the time..... a kernel wow!
OK, so in some cases M$ started by buying the product (e.g. the first versions of MS-DOS and Excel), but then Linus didn't start from scratch either, but with Minix
Not 13 million Microsoft-quality lines of proprietary junk charged at $100 per hour, but 13 million lines of reasonably good code, sculpted for the joy of coding!
Explain how you justify that comment? Personnally, I have never seen any of Microsoft's source code and I doubt you have either (unless you're an M$ employee). However, I have seen a fair amount of Open Source code and guess what? It ranges (in my experience) from very good to very bad. My money is on M$'s code being similar.
I think the good reliability of Linux in relation to Windows is caused by other factors e.g. the the Windows GUI is too tightly integrated with the kernel, there is too little control over the quality of third party device drivers, the Open Source development model lends itself to fast turn around of bug fixes.
I read the M$ technical paper that appeared on their web-site. It only really talked about the front end web servers which were converted to Windows, but running a special API that emulated the BSD environment so that the Hotmail software could run without change. I may be misremembering it, but I think a fair amount of the Hotmail s/w was written in Perl, which means that they must be using some Open Source s/w unless M$ has it's own Perl interpreter.
"Berkeley sockets" is the full name of the TCP socket API that is implemented in most Unixes and does not include any code as such. You can implement Berkeley sockets without using any code from any of the flavours of BSD Unix if you want. The Windows socket API was designed to look similar to Berkeley sockets and is almost source code compatible, but there are enough underlying differences such that I would be surprised if there was any BSD code in the winsock library. The actual Windows TCP/IP stack is a different thing altogether from the Winsock library. As it has been multi-threaded for a long time, I'd be surprised if that had any BSD code in it either.
Not bad except because the linefeeds all seem to have disappeared everything after the opening brace of the for loop is commented out. Also, the addition of one itty bitty char variable would mean you could use normal assignments instead of that exclusive-or crap.
Oh yes, and the < has been munged by slashdot, use that preview button....
Because internally the architecture is quite different. This has a big impact on the way a compiler optimises code and there are probably instructions on a real P4 that don't exist in the P3.
Well clock speed is not necessarily a good indicator of performance. Intel have been able to push up clock speed in the P4 by stripping out some of the clever circuitry that allows the chip to do more than one thing at a time. This is why it has generally performed poorly in benchmarks of real world applications against P3s and AMD chips.
The reason Intel are doing this is because clock speed is a nice marketing number. It's a lot easier to explain "this processor runs at 1.4GHz" than "this processor has a dual 9 stage pipeline with a superior branch prediction algorithm etc etc etc".
Actually, it's simpler than that. If people use PGP or S/MIME encryption, you cannot scan their e-mails for all that nasty un-PC stuff, or viruses or confidential information or libellous comments and so on.
There has been at least one case (in the UK) of somebody using their company e-mail system to distribute defamatory material to his/her friends. The person who was the subject of the defamation sued the company for libel (which was deemed to be responsible for "publishing" the e-mail) and won.
The only thing I don't get is why anybody should consider it incomprehensible. The language is a bit beaurocratic, but I can understand it.
"If you want to buy or sell stuff, don't use e-mail to tell us, cos we'll probably ignore it. Also, we might want to check up that it is you if you ask us to do anything by e-mail.
"If you want us to give your stuff to other people or change your own details, write to us on real paper.
"If you ask us to do stuff, it will be assumed you asked us at the time we first looked at your instructions. Even then, we might not do it straight away (and you won't complain). If you want us to do something quickly, or you don't want anybody else to know about it, don't use e-mail. Don't use e-mail for anything illegal.
"If you do use e-mail, you realise that other people could read it or tamper with it, something could go wrong, you might get a virus, or it might just be late (if our inbound e-mail server is broken, for example)."
I'm sure there was a recipe in the original book, which I don't have to hand at the moment, but I think it involved things like Jinnan Tonnix and ice cubes made from methane or something like that.
On another note, Douglas Adams died of a heart attack while working out in a gym. I'd like to think that wherever he is now, he'd appreciate the irony of that.
Yeah, the point about the "forking codebases" is demonstrably wrong. Very few (actually none that I can think of off hand) OSS projects suffer from having a forked codebase. Moreover, interoperability of separate products is very good in the OSS world. For example, if you have a mail client that is IMAP compliant you can guarantee that it'll talk to any IMAP server. Even where the protocols are not well defined standards you can make things interoperable by looking at the source code of of the products you want to interoperate with.
There are two ways around this.
1. An operator overload for dividing distance by time:
speed operator/ (distance d, time t)
{
return (speed) ((double) d / (double) t) ;
}
After all it's only your knowledge of physical laws that lets you know it's OK to divide distance by time. Is it meaningful to add a distance to a time? It'd be great to have a compiler that gave an error when you did something like this:
mph =miles +hours ;
2. Have an alternative to typedef that ignores the strong typing e.g.
Nah. The standard rules of C++ could be amended to deal with these new types. After all the +- operator already work on:
char, short, int, long - all signed or unsigned and T* where T is a type.
Other strongly typed languagesw such as Pascal already behave in this way, so it is possible to make it work.
The great thing is, you could override the standard C++ operators to change their behaviour for your types e.g. throw an exception if your addition overflows on int16.
Assert () is bad. Well, checking for possible error conditions and reporting them is good, obviously, but the ANSI assert is bad because you can turn it off for production code. This means your production code can behave differently from your debug code, particularly if your assert tests for conditions that never happen or are hard to set up in your debug environment but happen regularly in the production environment. This is particularly problematic for multi-threaded applications.
Geez -- I haven't often seen such ignorance displayed with such force.
And no -- sloppy thinking does not result in GC, it results in Windows applications.
I haven't often seen such ignorance.... In what way does sloppy thinking result in Windows programs? I think this is just a snide dig at Windows programmers born from sloppy thinking.
Anyway I think GC hides sloppy programming and given that most programmers, even the ones who have been programming in C for 20 years are sloppy programmers, GC is probably a good thing. It means we might get some code that works properly.
BTW about 18 months ago I saw a demo of Veritas' Cluster services with an admin console written entirely in Java. Veritas were prepared to admit at the time it had a memory leak, so garbage collection is not a panacaea.
I think that's a good point (some paragraphs would have helped). M$ seems to be constantly revising the environment that programmers for Windows have to deal with. Can you remember DDE, replaced by OLE, replaced by COM (the same thing really) replaced by whatever.Net is going to use? Can you remember ODBC replaced by ADO or is it Ole DB or something? Now according to the latest MSDN journal, MAPI is obsolete. Just think of all those MAPI based applications that have got to be rewritten. They also had a go at their socket API to make it more M$ like and slightly less BSD socket like.
A cynic would say that M$ does it to keep the revenue flow of it's MCSE department healthy. Or maybe to keep it's competitors one step behind.
BTW has anybody noticed, that even in POT mode the HTML paragraph tags still get interpreted as HTML.
But a default of private is better, so you need to introduce a new keyword to stop all your existing C code from breaking completely. Of course it'll break completely anyway because of the strong type checking in C++, but you could argue that the struct keyword is unnecessary (as Java programmers do) since a classic C struct is merely a class with all public members and no methods.
I regularly write code to be compiled with GCC and VC++ and provided you stick to ANSI standard stuff, I have not found any piece of code that (if correct) would not compile with both compilers *and* lead to the same behaviour in the resulting exe.
gcc generally reports errors better e.g. if you get an unresovled function call, it'll tell you where in your source code you tried to make the function call.
don't expect to go in one side of London and out the other without queueing at least 3 times
Most of what you say makes sense, but this one bit is bulls**t. I recently bought a return ticket from Reading to Manningtree, which are towns on almost exaclty opposite sides of London on railway services owned by two different companies, so I queued once to go into London and out twice (once in each direction). The trains were late and overcrowded and the ticket was overpriced, but that's another story.
Ironically, SUVs are generally less safe both for the occupants and for the people they hit than normal passenger cars. Some of the safety features you get in normal cars e.g. crumple zones are a bit impractical on a 4x4 in an off road situation, so the safety laws have to be relaxed a bit for such cars.
Disclaimer: I'm English...
That's about the size of it. In this case, there was an issue about releasing paedophiles back into society once they had completed their prison sentences. This was whipped up into hysteria by the British tabloid press leading to mobs of people (men and women) going round trying to lynch anybody who's job title began paed-. It wasn't just paediatricians that were in trouble. Anybody who was even suspected of being a paedophile was in danger.
The trouble is that the kind of person who gets involved in these mobs is usually not the sharpest tool in the box and therefore has trouble reading "paediatrician" let alone understanding what it means. Also, with mob hysteria, little details such as actual guilt or innocence tend to get trampled on in the rush to string somebody up.
I still think that the advancements mad by Linux in the time frame it has been available are more than what MS has done since its inception.
Let's see, since it's inception, M$ has developed several complete sets of delvelopment tools including the first high level language tool for any microcomputer. It has developed the World's three most popular desktop OS's (MS-DOS, Win9x, WinNT/2000) an architecture to make it easy to configure the later OSes with a remarkable variety of hardware + all the support tools that go with them. It has developed the World's most popular suite of office applications, the second most popular groupware system, and a framework that makes it relatively easy to for the average computer user to use these tools together.
The Linux community has developed in about half the time..... a kernel wow!
OK, so in some cases M$ started by buying the product (e.g. the first versions of MS-DOS and Excel), but then Linus didn't start from scratch either, but with Minix
Not 13 million Microsoft-quality lines of proprietary junk charged at $100 per hour, but 13 million lines of reasonably good code, sculpted for the joy of coding!
Explain how you justify that comment? Personnally, I have never seen any of Microsoft's source code and I doubt you have either (unless you're an M$ employee). However, I have seen a fair amount of Open Source code and guess what? It ranges (in my experience) from very good to very bad. My money is on M$'s code being similar.
I think the good reliability of Linux in relation to Windows is caused by other factors e.g. the the Windows GUI is too tightly integrated with the kernel, there is too little control over the quality of third party device drivers, the Open Source development model lends itself to fast turn around of bug fixes.
I read the M$ technical paper that appeared on their web-site. It only really talked about the front end web servers which were converted to Windows, but running a special API that emulated the BSD environment so that the Hotmail software could run without change. I may be misremembering it, but I think a fair amount of the Hotmail s/w was written in Perl, which means that they must be using some Open Source s/w unless M$ has it's own Perl interpreter.
"Berkeley sockets" is the full name of the TCP socket API that is implemented in most Unixes and does not include any code as such. You can implement Berkeley sockets without using any code from any of the flavours of BSD Unix if you want. The Windows socket API was designed to look similar to Berkeley sockets and is almost source code compatible, but there are enough underlying differences such that I would be surprised if there was any BSD code in the winsock library. The actual Windows TCP/IP stack is a different thing altogether from the Winsock library. As it has been multi-threaded for a long time, I'd be surprised if that had any BSD code in it either.
Not bad except because the linefeeds all seem to have disappeared everything after the opening brace of the for loop is commented out. Also, the addition of one itty bitty char variable would mean you could use normal assignments instead of that exclusive-or crap.
Oh yes, and the < has been munged by slashdot, use that preview button....
Because internally the architecture is quite different. This has a big impact on the way a compiler optimises code and there are probably instructions on a real P4 that don't exist in the P3.
Well clock speed is not necessarily a good indicator of performance. Intel have been able to push up clock speed in the P4 by stripping out some of the clever circuitry that allows the chip to do more than one thing at a time. This is why it has generally performed poorly in benchmarks of real world applications against P3s and AMD chips.
The reason Intel are doing this is because clock speed is a nice marketing number. It's a lot easier to explain "this processor runs at 1.4GHz" than "this processor has a dual 9 stage pipeline with a superior branch prediction algorithm etc etc etc".
Actually, it's simpler than that. If people use PGP or S/MIME encryption, you cannot scan their e-mails for all that nasty un-PC stuff, or viruses or confidential information or libellous comments and so on.
There has been at least one case (in the UK) of somebody using their company e-mail system to distribute defamatory material to his/her friends. The person who was the subject of the defamation sued the company for libel (which was deemed to be responsible for "publishing" the e-mail) and won.
The only thing I don't get is why anybody should consider it incomprehensible. The language is a bit beaurocratic, but I can understand it.
"If you want to buy or sell stuff, don't use e-mail to tell us, cos we'll probably ignore it. Also, we might want to check up that it is you if you ask us to do anything by e-mail.
"If you want us to give your stuff to other people or change your own details, write to us on real paper.
"If you ask us to do stuff, it will be assumed you asked us at the time we first looked at your instructions. Even then, we might not do it straight away (and you won't complain). If you want us to do something quickly, or you don't want anybody else to know about it, don't use e-mail. Don't use e-mail for anything illegal.
"If you do use e-mail, you realise that other people could read it or tamper with it, something could go wrong, you might get a virus, or it might just be late (if our inbound e-mail server is broken, for example)."
Seems quite clear to me.
Or maybe just digitally sign the message.
Great Britain does have a constitution. It's just not written down anywhere, or at least not in one place.
I'm sure there was a recipe in the original book, which I don't have to hand at the moment, but I think it involved things like Jinnan Tonnix and ice cubes made from methane or something like that.
On another note, Douglas Adams died of a heart attack while working out in a gym. I'd like to think that wherever he is now, he'd appreciate the irony of that.
They both had a question in asking about what religion you are.
Yeah, the point about the "forking codebases" is demonstrably wrong. Very few (actually none that I can think of off hand) OSS projects suffer from having a forked codebase. Moreover, interoperability of separate products is very good in the OSS world. For example, if you have a mail client that is IMAP compliant you can guarantee that it'll talk to any IMAP server. Even where the protocols are not well defined standards you can make things interoperable by looking at the source code of of the products you want to interoperate with.
Is that because they don't come with hands free kits, so the driver is more likely to be distracted while answering a phone call?
There are two ways around this.
1. An operator overload for dividing distance by time:
speed operator/ (distance d, time t)
{
return (speed) ((double) d / (double) t) ;
}
After all it's only your knowledge of physical laws that lets you know it's OK to divide distance by time. Is it meaningful to add a distance to a time? It'd be great to have a compiler that gave an error when you did something like this:
mph =miles +hours ;
2. Have an alternative to typedef that ignores the strong typing e.g.
#define distance double
Nah. The standard rules of C++ could be amended to deal with these new types. After all the +- operator already work on:
char, short, int, long - all signed or unsigned and T* where T is a type.
Other strongly typed languagesw such as Pascal already behave in this way, so it is possible to make it work.
The great thing is, you could override the standard C++ operators to change their behaviour for your types e.g. throw an exception if your addition overflows on int16.
Yeah, I'd like:
typedef unsigned short int uint16 ;
uint16 i ;
unsigned short int j ;
i = j ;
should throw up a compiler error or warning.
That also means you could overload functions differently for unint16 and unsigned short int. and enums etc.
I completely agree with this. Obviously, you can use a cast if you really do want to assign one type to the other.
Assert () is bad. Well, checking for possible error conditions and reporting them is good, obviously, but the ANSI assert is bad because you can turn it off for production code. This means your production code can behave differently from your debug code, particularly if your assert tests for conditions that never happen or are hard to set up in your debug environment but happen regularly in the production environment. This is particularly problematic for multi-threaded applications.
Geez -- I haven't often seen such ignorance displayed with such force.
And no -- sloppy thinking does not result in GC, it results in Windows applications.
I haven't often seen such ignorance.... In what way does sloppy thinking result in Windows programs? I think this is just a snide dig at Windows programmers born from sloppy thinking.
Anyway I think GC hides sloppy programming and given that most programmers, even the ones who have been programming in C for 20 years are sloppy programmers, GC is probably a good thing. It means we might get some code that works properly.
BTW about 18 months ago I saw a demo of Veritas' Cluster services with an admin console written entirely in Java. Veritas were prepared to admit at the time it had a memory leak, so garbage collection is not a panacaea.
I think that's a good point (some paragraphs would have helped). M$ seems to be constantly revising the environment that programmers for Windows have to deal with. Can you remember DDE, replaced by OLE, replaced by COM (the same thing really) replaced by whatever .Net is going to use? Can you remember ODBC replaced by ADO or is it Ole DB or something? Now according to the latest MSDN journal, MAPI is obsolete. Just think of all those MAPI based applications that have got to be rewritten. They also had a go at their socket API to make it more M$ like and slightly less BSD socket like.
A cynic would say that M$ does it to keep the revenue flow of it's MCSE department healthy. Or maybe to keep it's competitors one step behind.
BTW has anybody noticed, that even in POT mode the HTML paragraph tags still get interpreted as HTML.
But a default of private is better, so you need to introduce a new keyword to stop all your existing C code from breaking completely. Of course it'll break completely anyway because of the strong type checking in C++, but you could argue that the struct keyword is unnecessary (as Java programmers do) since a classic C struct is merely a class with all public members and no methods.
I regularly write code to be compiled with GCC and VC++ and provided you stick to ANSI standard stuff, I have not found any piece of code that (if correct) would not compile with both compilers *and* lead to the same behaviour in the resulting exe.
gcc generally reports errors better e.g. if you get an unresovled function call, it'll tell you where in your source code you tried to make the function call.