Corel have made WordPerfect available on Linux because they were selling approximately 0 copies of the Windows version, due to it's general shiteness. Since Corel are currently heading for bankruptcy fairly quickly, they're desperately trying to make money wherever they can in an attempt to stave off the inevitable.
The posited MicrosoftApps company, on the other hand, can sell hundreds of millions of copies of Office on whatever platform comes out of MicrosoftOS, and shift a few millions onto the world's Macs along the way. A few thousand *nix copies are neither here nor there. Why? Because while supporting software for Macs is comparatively easy (standard hardware, standard OS, simple users <g>) and supporting software for Windows is what they've been doing for a long time now, imagine having to support a bunch of Linux users:
"... what version of Linux are you using?"
"Oh, kernel 2.7.012225pre74b with gbnts@aol.com's FireWire drivers"
[cue sound of support droid falling off stool in horror]
Sorry, but all the Linux zealots out there are going to have to survive with StarOffice, KOffice or AbiWord, GNUmeric and the GIMP: my guess is that MSApps'll port Office to the S/390 before Linux. -- Cheers
for the preprocessor macros, run CL -P from the command line or from VC++: this stops it after the preprocessor step.
for the typedef'd stuff, steal the type definitions found in winnt.h (i.e. #include "cutdownwinnt.h" somewhere in your source)
for the Win32 stuff (and yes, calls like::MultiByteToWideChar() are API functions: this particular one converts ASCII and DBCS strings into Unicode ones), you're going to have to decide whether the functionality's necessary and if so whether any of the GCC libs or add on libs have that functionality or if you're going to have to roll your own. To find out all about those closed secret APIs, look here.
True, but Windows offers rather more functionality than sendmail. A better comparison would be to count and compare the number of security-related bugs in sendmail, Exchange, Groupwise, Notes, SNADS and PROFS (and even these five offer far more functionality than sendmail). Without having done the sums myself, I suspect that the OSS posterchild might not look quite so glossy (especially when compared to host-based groupware systems -- Cheers
For those who don't know, the Barmy Army is a (unofficial and fairly random) group of Englishmen who go on tour with the England cricket team (meaning that in the middle of winter, they get to go to Australia, the West Indies, South Africa and other such warm places) Once there, they drink immense amounts of beer and attempt (generally successfully) to sing louder than the supporters of the home side.
Musical nightmare? Yes. International terrorist organisation? Probably not (unless they're working deep under cover under the guise of a couple of hundred lagered-up sunburnt cricket fans - but I doubt it) -- Cheers
Didn't COM evolve (indirectly) from OLE? Or am I on the/.Moderator Brand $3.00 Crack(tm)?
Well, it'd be fairer to say it sort-of fell out of OLE: OLE was invented to solve a specific problem (how do I embed an Excel spreadsheet in my Word document), but the original OLE team generalised the architecture sufficently that it could be widely used. The result is that OLE is built on top of COM: but so is lots of other stuff too: for instance, DCOM is COM over RPC and DirectX is simply a bunch of COM interfaces over a direct-to-hardware API. -- Cheers
Well, if you don't index your FK columns (or for that matter generally index your database properly) then you deserve what you get
More seriously, if you've got a cascade delete FK relationship then the database engine does need to check the child tables for each parent row because it can't be certain that no other user has inserted data into those tables during the course of the transaction. I'd be very wary of any multiuser database engine that didn't perform this kind of checking. -- Cheers
I'd agree totally: one of my biggest moans about the Standard C library, and just about every other C library and C-based API ever written is their (IMHO) abhorrent habit of overloading return values to handle both semantically significant data and error cases.
While I've got a few problems with the implementation of SEH in C++, such as the fact that it's a pig to handle exceptions in constructors, it's very embarassing throwing exceptions in destructors, it's easy to nause the whole thing up (see here for an in-depth discussion) and the fact that there's a runtime hit just like with RTTI (and I don't know Java well enough to comment on how it handles it), the general concept is one of the best things C++ stole from (wherever BS stole it from: I haven't got my copy of D&E to hand) and the combination of exceptions and smart pointers rocks.
And yes, tail recursion is waay cool: in a similar vein, do 6502 assembly programmers remember replacing JSR <address>; RTS with JMP <address> to save the extra operation. Those were the days... -- Cheers
Certainly S/390 and equivalents with Parallel Sysplex will allow this too (and don't you just love a computer you can shoot vast chunks off and it keeps on running...)
More generally, I'd be suprised if most serious active-active cluster solutions didn't support this in some way: planned outages are still outages after all, and they can get seriously in the way of a 24/7 service.
And loosely coupled clusters (Web farms etc) can of course do this sort of thing without problems. -- Cheers
Without wishing to rain on your parade, you weren't the only person who couldn't do a single-point logon with a TCP/IP network library: the SQL Server team couldn't either...
Which you'd know if you knew the product rather than just spouting off...
If you try and log on in the fashion you described (i.e. get DC to pass authentication token and then use that against other domain resources - what MS SQL Server calls "integrated security") you'll find that this option is only available if you're using the named pipes or multiprotocol (i.e. RPC) network libraries: it's explicitly stated that you can only do standard (i.e. supply uname/pwd at SQL Server logon time) logon off a TCP/IP, IPX/SPX, Vines, AppleTalk, DECNet or whatever connection.
HTH clear up your feelings of inadequacy. -- Cheers
I recommend an evening in bed with "In Search Of Clusters", Pfister, Prentice-Hall ISBN 0138997098 (available much cheaper here)
It's not Linux specific, but it is a superb overview of the problems and solutions in low-end parallel computing. It also discusses the three favourite solutions (SMP, NUMA and clusters) in depth and goes over their strengths and weaknesses. -- Cheers
Easy..: No pointers, no inheritance and no polymorphy.
No pointers? Go away and learn the language, with particular reference to VarPtr, StrPtr, ObjPtr and AddressOf and then come back and say that.
No inheritance? Well, it does interface aggregation rather than implementation inheritance - whether this is a good or a bad thing can be debated until the cows come home but suffice it to say that interface aggregation has no impedance mismatch with COM. Oh, and VB7 does have inheritance (it's claimed) although whether this is a good or a bad thing is as yet undetermined.
No polymorphism? Not entirely true. If you're referring to the type of polymorphism shown in C++ and related languages where pointer-to-any-one-of-several-derived-types can be treated as pointer-to-base-type with vtable binding picking up the slack then no it doesn't: it does, however, allow run-time binding (like Smalltalk et al).
And the idea of a "type-free" language should make most coders vomit in fear...
Again, I say to you "Smalltalk". And wait for 'Option Strict' if you want true B&D.
How about subclassing from VB..? A lot of very weird errors and breakdowns can be the result of a single forgotten line.
Translation: if I get the code wrong I get bugs. Well, no shit!
In what way do you feel VB limits you? Sure, there are several things it won't do (high-performance services, free-threaded COM components), but that's not the contract. It is very good at what it does: if you can't develop big systems in it then look at your processes and methodologies. -- Cheers
Well, some things (price) are IMHO less important than others (the likelihood of the registrar dumping on you from a great height) - there's no weightings listed, after all. -- Cheers
Interesting: sounds like he's just reinvented a form of NUMA (or at least that's how I read it...) with all the up- and down-sides that entails.
The (really interesting) problem with this is cache coherency and consistency: if you've got (say) 256 independent nodes all accessing the same dataset for CRUD operations (as against straight shared reads with non-interdependent writes), how do you ensure that the data's kept in sync without spending vast amounts of time waiting on locked data. The semantics of transaction processing mandate that your transactions be atomic, consistent, isolated and durable: it's difficult to do this (particularly the consistent and isolated requirements) when you've got lots of nodes each with their own private caches unless you enforce frequent cache flushes and reloads. Even doing this you start seeing a lot of waiting: fundamentally your access to data is serialised, at which point a lot of the benefits of massive parallelisation disappear (this is better known as Amdahl's Law, which states that the potential speed-up offered by massive parallelisation is limited by the fraction of serial work in the problem) - see her e for further discussion.
This is less of a problem with highly read oriented systems (such as DSS) and jobs such as crypto-cracking, but with OLTP this is a fundamental bottleneck. -- Cheers
So, you've read all the source for all the open source software you're running? And you're able to guarantee that there are no potential exploits in those systems?
Would you even recognise a security hole if one got up and bit you? Don't kid yourself... -- Cheers
Brave words: the commercial damage may well have been done already or, failing that, be done in the interlude between the news becoming available and sysadmins fixing their RH installations. The damage to RH and, by extension, open source is inestimable: even when closed-source companies have embedded backdoor passwords in their executables, they haven't concurrently published the source with the passwords embedded. This isn't going to play well with the PHBs for whom Open Source == Linux == Red Hat.
-- Cheers
So - RH6.2 has been out for a couple of months now and it's only now that the whitehats have spotted that there's a username/password combination which hands out some pretty serious permissions hard-coded in the (open-sourced) toolkit? Is anyone else slightly amused by the gaping lacuna between the "everyone's a peer-reviewer" rhetoric and the reality?
And Microsoft thought Netscape engineers were weenies... coming next, the Red Hat Shoot Yourself In The Foot awards -- Cheers
Obviously without ever having learnt to read. How does:
"NVIDIA(TM) Corporation (Nasdaq: NVDA) today announced that it has received $200 million from Microsoft® Corporation, which is a contractual advance payment against NVIDIA's future supply of its graphics processing units (GPUs) that will be included in Microsoft's X-Box. The X-Box is a new videogame console that is currently under development by Microsoft. In early March, NVIDIA agreed to develop and sell custom-designed GPUs for the X-Box and to license certain technology to Microsoft and its licensees for use in X-Box."
translate as:
"a big gorilla (Microsoft) pays the company to NOT help the opensource community by releasing register level specs or a binary only high performance driver"
True up to point, but if you have a half-way decent optimising compiler, removing #ifdef'ed code from a project can introduce all manner of new and exciting bugs: over-aggressive use of registers, interesting aliasing problems and so on can all crawl out of the woodwork. Unless you're prepared to put up with -O0 (that's capital o, zero for those reading in monochrome...) there's always going to be changes in the code emitted between the debug builds and the release builds if the code-base changes.
But yes, everyone should read WSC at least once: it's (IMHO) part of the canon. -- Cheers
In which case we're largely agreed on principle (if not on scope...): there are, however, certain of the more wild-eyed neo-liberals who one finds running about brandishing their copy of the Wealth of Nations who seem to believe that since by increasing the wealth of the nation you are increasing the wealth of its citiziens anything which hinders that wealth increase is a Bad Thing and should be done away with. Concepts such as uneven distribution bounce off them - when questioned they reply by chanting the discredited mantra "trickledown, trickledown"
Oh, and since our dibble don't (for the most part) carry anything stronger than a stout stick I've never felt the urge to carry a PPK... -- Cheers
Corel have made WordPerfect available on Linux because they were selling approximately 0 copies of the Windows version, due to it's general shiteness. Since Corel are currently heading for bankruptcy fairly quickly, they're desperately trying to make money wherever they can in an attempt to stave off the inevitable.
The posited MicrosoftApps company, on the other hand, can sell hundreds of millions of copies of Office on whatever platform comes out of MicrosoftOS, and shift a few millions onto the world's Macs along the way. A few thousand *nix copies are neither here nor there. Why? Because while supporting software for Macs is comparatively easy (standard hardware, standard OS, simple users <g>) and supporting software for Windows is what they've been doing for a long time now, imagine having to support a bunch of Linux users:
"... what version of Linux are you using?"
"Oh, kernel 2.7.012225pre74b with gbnts@aol.com's FireWire drivers"
[cue sound of support droid falling off stool in horror]
Sorry, but all the Linux zealots out there are going to have to survive with StarOffice, KOffice or AbiWord, GNUmeric and the GIMP: my guess is that MSApps'll port Office to the S/390 before Linux.
--
Cheers
for the preprocessor macros, run CL -P from the command line or from VC++: this stops it after the preprocessor step.
for the typedef'd stuff, steal the type definitions found in winnt.h (i.e. #include "cutdownwinnt.h" somewhere in your source)
for the Win32 stuff (and yes, calls like ::MultiByteToWideChar() are API functions: this particular one converts ASCII and DBCS strings into Unicode ones), you're going to have to decide whether the functionality's necessary and if so whether any of the GCC libs or add on libs have that functionality or if you're going to have to roll your own. To find out all about those closed secret APIs, look here.
HTH
--
Cheers
Erm ... yeah, right. Do you want to buy a bridge?
--
Cheers
True, but Windows offers rather more functionality than sendmail. A better comparison would be to count and compare the number of security-related bugs in sendmail, Exchange, Groupwise, Notes, SNADS and PROFS (and even these five offer far more functionality than sendmail). Without having done the sums myself, I suspect that the OSS posterchild might not look quite so glossy (especially when compared to host-based groupware systems
--
Cheers
...except rendering Web pages...
--
Cheers
For those who don't know, the Barmy Army is a (unofficial and fairly random) group of Englishmen who go on tour with the England cricket team (meaning that in the middle of winter, they get to go to Australia, the West Indies, South Africa and other such warm places) Once there, they drink immense amounts of beer and attempt (generally successfully) to sing louder than the supporters of the home side.
Musical nightmare? Yes. International terrorist organisation? Probably not (unless they're working deep under cover under the guise of a couple of hundred lagered-up sunburnt cricket fans - but I doubt it)
--
Cheers
Well, it'd be fairer to say it sort-of fell out of OLE: OLE was invented to solve a specific problem (how do I embed an Excel spreadsheet in my Word document), but the original OLE team generalised the architecture sufficently that it could be widely used. The result is that OLE is built on top of COM: but so is lots of other stuff too: for instance, DCOM is COM over RPC and DirectX is simply a bunch of COM interfaces over a direct-to-hardware API.
--
Cheers
More seriously, if you've got a cascade delete FK relationship then the database engine does need to check the child tables for each parent row because it can't be certain that no other user has inserted data into those tables during the course of the transaction. I'd be very wary of any multiuser database engine that didn't perform this kind of checking.
--
Cheers
While I've got a few problems with the implementation of SEH in C++, such as the fact that it's a pig to handle exceptions in constructors, it's very embarassing throwing exceptions in destructors, it's easy to nause the whole thing up (see here for an in-depth discussion) and the fact that there's a runtime hit just like with RTTI (and I don't know Java well enough to comment on how it handles it), the general concept is one of the best things C++ stole from (wherever BS stole it from: I haven't got my copy of D&E to hand) and the combination of exceptions and smart pointers rocks.
And yes, tail recursion is waay cool: in a similar vein, do 6502 assembly programmers remember replacing JSR <address>; RTS with JMP <address> to save the extra operation. Those were the days...
--
Cheers
Such as? I'm intrigued - I've not managed to get it to barf on ISO-compliant SQL since 6.5
--
Cheers
More generally, I'd be suprised if most serious active-active cluster solutions didn't support this in some way: planned outages are still outages after all, and they can get seriously in the way of a 24/7 service.
And loosely coupled clusters (Web farms etc) can of course do this sort of thing without problems.
--
Cheers
Fair point: I misunderstood your original comment. My apologies.
--
Cheers
Which you'd know if you knew the product rather than just spouting off...
If you try and log on in the fashion you described (i.e. get DC to pass authentication token and then use that against other domain resources - what MS SQL Server calls "integrated security") you'll find that this option is only available if you're using the named pipes or multiprotocol (i.e. RPC) network libraries: it's explicitly stated that you can only do standard (i.e. supply uname/pwd at SQL Server logon time) logon off a TCP/IP, IPX/SPX, Vines, AppleTalk, DECNet or whatever connection.
HTH clear up your feelings of inadequacy.
--
Cheers
It's not Linux specific, but it is a superb overview of the problems and solutions in low-end parallel computing. It also discusses the three favourite solutions (SMP, NUMA and clusters) in depth and goes over their strengths and weaknesses.
--
Cheers
s/MS/Larry Wall/g
<g>
--
Cheers
No pointers? Go away and learn the language, with particular reference to VarPtr, StrPtr, ObjPtr and AddressOf and then come back and say that.
No inheritance? Well, it does interface aggregation rather than implementation inheritance - whether this is a good or a bad thing can be debated until the cows come home but suffice it to say that interface aggregation has no impedance mismatch with COM. Oh, and VB7 does have inheritance (it's claimed) although whether this is a good or a bad thing is as yet undetermined.
No polymorphism? Not entirely true. If you're referring to the type of polymorphism shown in C++ and related languages where pointer-to-any-one-of-several-derived-types can be treated as pointer-to-base-type with vtable binding picking up the slack then no it doesn't: it does, however, allow run-time binding (like Smalltalk et al).
And the idea of a "type-free" language should make most coders vomit in fear...
Again, I say to you "Smalltalk". And wait for 'Option Strict' if you want true B&D.
How about subclassing from VB..? A lot of very weird errors and breakdowns can be the result of a single forgotten line.
Translation: if I get the code wrong I get bugs. Well, no shit!
In what way do you feel VB limits you? Sure, there are several things it won't do (high-performance services, free-threaded COM components), but that's not the contract. It is very good at what it does: if you can't develop big systems in it then look at your processes and methodologies.
--
Cheers
Well, some things (price) are IMHO less important than others (the likelihood of the registrar dumping on you from a great height) - there's no weightings listed, after all.
--
Cheers
The (really interesting) problem with this is cache coherency and consistency: if you've got (say) 256 independent nodes all accessing the same dataset for CRUD operations (as against straight shared reads with non-interdependent writes), how do you ensure that the data's kept in sync without spending vast amounts of time waiting on locked data. The semantics of transaction processing mandate that your transactions be atomic, consistent, isolated and durable: it's difficult to do this (particularly the consistent and isolated requirements) when you've got lots of nodes each with their own private caches unless you enforce frequent cache flushes and reloads. Even doing this you start seeing a lot of waiting: fundamentally your access to data is serialised, at which point a lot of the benefits of massive parallelisation disappear (this is better known as Amdahl's Law, which states that the potential speed-up offered by massive parallelisation is limited by the fraction of serial work in the problem) - see her e for further discussion.
This is less of a problem with highly read oriented systems (such as DSS) and jobs such as crypto-cracking, but with OLTP this is a fundamental bottleneck.
--
Cheers
Would you even recognise a security hole if one got up and bit you? Don't kid yourself...
--
Cheers
Brave words: the commercial damage may well have been done already or, failing that, be done in the interlude between the news becoming available and sysadmins fixing their RH installations. The damage to RH and, by extension, open source is inestimable: even when closed-source companies have embedded backdoor passwords in their executables, they haven't concurrently published the source with the passwords embedded. This isn't going to play well with the PHBs for whom Open Source == Linux == Red Hat.
--
Cheers
And Microsoft thought Netscape engineers were weenies... coming next, the Red Hat Shoot Yourself In The Foot awards
--
Cheers
Obviously without ever having learnt to read. How does:
"NVIDIA(TM) Corporation (Nasdaq: NVDA) today announced that it has received $200 million from Microsoft® Corporation, which is a contractual advance payment against NVIDIA's future supply of its graphics processing units (GPUs) that will be included in Microsoft's X-Box. The X-Box is a new videogame console that is currently under development by Microsoft. In early March, NVIDIA agreed to develop and sell custom-designed GPUs for the X-Box and to license certain technology to Microsoft and its licensees for use in X-Box."
translate as:
"a big gorilla (Microsoft) pays the company to NOT help the opensource community by releasing register level specs or a binary only high performance driver"
except in the mind of a paranoid delusional?
Have a nice day...
--
Cheers
But yes, everyone should read WSC at least once: it's (IMHO) part of the canon.
--
Cheers
Erm - try about 40 - 50% of the worlds mobile phones? Is that consumer enough for you?
--
Cheers
Oh, and since our dibble don't (for the most part) carry anything stronger than a stout stick I've never felt the urge to carry a PPK...
--
Cheers