... that Micro$oft is not capable of providing a properly secure system.
Programs running in userland should not be capable of modifying ANY part of the system.
The only time that system files should be even capable of being modified is when the system's administrator / root user is logged in with root/admin permissions - and then ONLY the root user should be capable.
Why should a program running with the permissions of a user be capable of performing as if it had permissions of an administrator?
The kernel should simply prohibit that without question and without exception.
Until M$ learns that lesson it will never be capable of producing properly secure software.
Actually, now that I've thought of it, the question is more along the lines of why doesn't M$ want to produce truly secure software - because given that company's resources there is no good reason that I can see that would explain why it produces such seriously insecure software!
...to preserve a user's freedom to use software how they want and to modify it in any way they want.
Linus seems on this point to think it is acceptable to prevent a user from having the above freedoms merely because a hardware manufacturer (who has made their own modifications to GPL'd software) does not want others to be able to have the same freedoms.
I respect Linus for what he's done and contributed to Free software, but on this point I think he is wrong.
M$ obviously still thinks it can use it's dominance on the desktop to promote other software - which it certainly should NOT do by means of an automatic rollout even if it later asks after it has already been downloaded!
>> Simply continue to produce standards compliant websites, and if you get a person visiting >> who is using a broken browser simply inform them of the fact that their browser is broken >> and give them a list of properly working browsers with URLs for them to click on. > > I'm all for this idea... however, I doubt my clients would be. You know, the people with > money.
Well what does the professional in you say? Code sites that comply with published standards? or code sites that have nasty hacks to cope with broken browsers?
We've come too far with standards compliance merely to give-in to the non-compliance of a single solitary broken browser.
Nautilus works. Konquoror works. Firefix works. Opera - works. Microsoft Internet Explorer - doesn't work.
(and that's not counting the Apple browser(s) of which I don't know enough to comment.
> This means that we're now going to be headed back to the days > when we have to render separately for different browsers, > meaning XSLT is going to see a resurgence, costs are going to > double, and folks are going to have to go back and recode all > their existing apps so they render correctly in IE7.
It doesn't mean that at all.
Simply continue to produce standards compliant websites, and if you get a person visiting who is using a broken browser simply inform them of the fact that their browser is broken and give them a list of properly working browsers with URLs for them to click on.
IOW, don't accept that you have to code for a broken browser.
IMHO, coding for standards (rather than for particular broken browsers) is the ONLY acceptable option.
> I deny that in the case that someone adopts a position at X that I have to > adopt the -X postition to somehow 'balance them out.' I believe that I will > simply fix my position at what I actually believe in, say Y, and stay there.
Feel free to deny what you like.
Nobody has suggested that *you* should change *your* opinion merely because an extremist is attempting to sway public opinion.
Notice I was talking about the centre of the BODY OF OPINION - not about the opinion that all persons should hold if they don't agree with that extremist.
> If you're simply saying that as people try to shift public policy away > from my position that I must try to assert my position more often and > in more effective ways, then we agree.
I was not saying what you - or indeed what any particular person should do.
> I'm only drawing the distinction because I've heard intelligent people > contend that the best way to get what you want politically is to push > for a position far in excess of what you actually want, on the > assumption that you'll simply compromise away the excess that you don't > want and be left with everything you actually wanted.
Sounds like they've got a good grasp of the art of negotiation and compromise, and of how to get what they really want.
Think about a body of opinion as a circle of string inside a rectangle - the more of that string is pushed out to one side the shallower the strength of opinion other than that out to the one side. The more string is out to the side the further to that side is the centre of that circle of string.
For maintaining a status quo the important point is that centre of the circle. But if that circle becomes flattened, then there is a risk of that body of opinion becoming two separate antagonistic bodies.
The important questions are: where do you want that centre of opinion to remain? And how best should that be achieved?
I think you don't really understand this, despite my explaination, and so I'm not going to reply again to this unless you have a serious/genuine question.
I was simply saying that the important point in a divers body of opinion is the centre point.
It is the centre point that needs to be moved in order to move a body of opinion, and that any extreme points in that body that were not there previously will move that centre point in the direction of that extreme.
This is fundamental statistics.
If you genuinely care about something and people start strongly advocating against it (whatever the subject is), then the mere fact that the advocacy is extreme will shift the centre of opinion against what you care about.
Your choice becomes: 1/ do nothing and see what you're passionate about become marginalised, or 2/ defend strongly.
A strength of defence does not mean "crazy" - you can make a strong reasoned case.
But whatever you chose, the extremist will shift the centre point of that body of opinion unless it be countered with equal strength.
The important thing is where the mid point of opinion lies.
If the extreme right is pushed even further to the right, then what was the mid point will appear to be in the left of the body of opinion.
So, either a lot of persons must have moderate opinions that move a little further towards the left in order to counter the advent of a few extremist right opinions or a few persons must adopt extremist left opinions - in order to maintain the general status quo of the balance of opinion.
Of course it would be wonderful if all persons held moderate progressive opinions, but while we have a population made up of sheep we must also have leaders who are prepared to stand up and take a definite position to counter the extremism of those who would destroy and take away rather than build and give.
Stallman is one of those who has stood up against those who would take away our liberty.
> The idea that you have to match extremity with extremity > in politics finds no home with me.
The thing with extremists, if you do not counter that extremism to an equal degree, then the center point is skewed towards the extremist and the whole ground moves in the direction of the extremist.
Thus it is vitally important to counter to an equal degree the extremists - that is if you value what those extremists are trying to destroy.
Why would a *nix developer want to develop software on a software platform provided by a dodgy company that is suing it customers and that will most likely only be in business for a few more years?
> Ozzie is also driving Microsoft to simplify its software: 'Complexity > kills.. It sucks the life out of developers, it makes products > difficult to plan, build and test, it introduces security challenges, > and it causes end-user and administrator frustration.'
At last somebody at Micro$oft whose understanding of software approaches that of the Unix way - Keep it simple.
If he really does manage to symplify Micro$oft's software then I think that company will pull through the OSS challenge.
>> I have no idea about Dot Net - I have never used it - I don't use M$ software. > > What's the largest piece of software you know of that is free of implementation bugs? Photo$hop[1] > definitely has bugs. > >> Well who is the silly sausage in that case! If it is not specified then there are no guarantees. >> Assumption is the mutha of all stupidities. > > The point is that this isn't Microsoft's fault, but they'll get the blame for "breaking" things > between versions.
The responsibility for bugs in poorly specified win32 APIs rests entirely with Micro$oft.
>> But older versions of Photoshop can indeed open and read Photoshop files saved by newer versions > of photoshop that contain data that relate to features contained only in the newer version. > > This is why software is more complicated than a Photoshop file. What would you do in.Net? Tell > the JIT to insert no-ops for unresolved function calls?
I would not use Dot Net even if you paid me $5,000,000,000,000 ($5 billions)!
>> "End users" generally never see software source code. > > But programmers do and when you're talking about a library, they're the end users. Adding fine-grained > version numbering to function names affects the programmer; it's ugly and I prefer a breaking change > if it is enough of an improvement over the old API.
Programmers are not "end users" - they develop software that end users... err... use.
>> You miss my point - which is that the APIs of *well-designed* and then *well-written* software >> should provide output that conforms to its design specification. > > So any API with implementation bugs can't be considered well-designed and well-written?
Agreed!
> Doesn't that rule out almost everything out there? Is there a library of comparable complexity > to.Net that you believe is well-designed and well-written?
I have no idea about Dot Net - I have never used it - I don't use M$ software.
> Also, part of the problem is that developers end up relying on unspecified behavior.
Well who is the silly sausage in that case! If it is not specified then there are no guarantees. Assumption is the mutha of all stupidities.
> One example > (from The Old New Thing blog, I believe) is a querying function that returns some system information > in a list. In.Net 1.1, the list was in sorted order. The fact that it was sorted was a side-effect > of the implementation and wasn't stated in the function contract, but some developers ended up > (probably inadvertently) relying on that behavior. In.Net 2.0, the list was no longer sorted. The > output is still according to the specification, but the client application no longer works properly. > This is not Microsoft's fault, but they might end up taking the blame in a generic "I tried running > on.Net 2.0 and my app broke" kind of way.
The first problem was using M$ software. The second problem was using Dot Net. The third problem was the assumption that M$ wouldn't deliberately introduce breakages.
>> With photoshop - it's file format was designed so that all versions of Photoshop can open any >> photoshop file saved by any other version of Photoshop. It was deliberately designed to be able to >> do that. > > Older version of Photoshop can read the newer file formats?
Correct. That is indeed the case. Older versions of Photoshop can indeed open photoshop files saved by newer versions of Photoshop.
> If so, how do they add new features and make them still work? Having to degrade gracefully is severly > limiting. If it's only backwards compatibility, then I think Microsoft seems to be able to do that in > MS Word. If there are, in fact, any backwards compatibility problems in the design itself, then yes, > I consider that to be a screw up.
Adobe has clearly achieved backwards compatibility while at the same time adding new features. Of course the older versions of Photoshop cannot *use* those parts of the file that relate to the newer features, and older versions of Photoshop cannot write files that contain those newer features. But older versions of Photoshop can indeed open and read Photoshop files saved by newer versions of photoshop that contain data that relate to features contained only in the newer version.
> One difference between something like a Photoshop/Word documents and program source code is that nobody > was ever supposed to read the former. They can add ugly-looking hacks (such as version numbers on each > data structure) to make things work because end users don't have to look at the raw data.
"End users" generally never see software source code.
> With source > code, there is the occasional version numbering suffix, but doing that too frequently will make things > worse than just fixing the API in-place and temporarily inconveniencing the developers that relied on > the broken behavior.
The API should not need fixing if it was well designed in the first place.
> It was their most secure OS ever, right up to the point that WMF bug > was exploited and Vista was found to be just as vulnerable as every > other windows version.
One would expect this to be the case - given that MS Windows Vista (WinNT6.0) is built from the same code tree as WinNT4.x, WinNT5.0, AND WinNT5.1 .
Microsoft also made the same bold claim about the initial release of WinNT4.1 (XP) only for it to be proven to be utterly false less than a week after it was released.
> Have you taken a look at the list of breaking changes [microsoft.com]? They're mostly > design and bug fixes. They could have created new functions (with the suffix "_New", or > something) but I prefer fixing the functions in-place. Not allowing such changes is just > going to cause a build-up of cruft. If you just want your older app to continue working,
you can still use an older version of.Net, since multiple versions can be installed > side-by-side on the same machine.
You miss my point - which is that the APIs of *well-designed* and then *well-written* software should provide output that conforms to its design specification.
The examples that you cite are of a company that simply does not know how to produce well designed software.
If it did then, for example, it wouldn't require SEVEN s to delete something that a User should either be able to delete outright or should not be able to delete at all.
With photoshop - it's file format was designed so that all versions of Photoshop can open any photoshop file saved by any other version of Photoshop. It was deliberately designed to be able to do that.
>> Older versions of Adobe Photoshop can read any file written by any newer >> version - provided it is saved with compatiblity in mind. > > Yeah, and since raster images are as complex as program source code, the analogy is perfect.
IF software is well designed, and has followed a proper design process then its complexity is not a factor in how its APIs respond - because those APIs have been determined to provide a given response for a given input even before any coding was ever done in the first place. Any deviation from this is a flaw in the software and should be corrected before it is released.
That is if the developer is producing software that works according to its design specification.
What this all boils down to is that the ISPs want more money without appearing to be greedy.
All persons and organisations who connect to the WWW already pay for that access.
All persons and organisations who have a website already pay for all the data and bandwidth consumed - in both directions - when people connect to their server.
So ALREADY people are paying the full cost of their connectivity + a profit for the ISP.
The question is whether or not those ISPs are prepared to invest in developing their own infrastructure in order to expand their own business and thus generate increase their own profits.
Net Neutrality means each ISP should provide their own infrastructure sufficient to meet the needs of all their own clients - and access to connectivity should not be based on who their customers are or who their customers connect to.
... that Micro$oft is not capable of providing a properly secure system.
Programs running in userland should not be capable of modifying ANY part of the system.
The only time that system files should be even capable of being modified is when the system's administrator / root user is logged in with root/admin permissions - and then ONLY the root user should be capable.
Why should a program running with the permissions of a user be capable of performing as if it had permissions of an administrator?
The kernel should simply prohibit that without question and without exception.
Until M$ learns that lesson it will never be capable of producing properly secure software.
Actually, now that I've thought of it, the question is more along the lines of why doesn't M$ want to produce truly secure software - because given that company's resources there is no good reason that I can see that would explain why it produces such seriously insecure software!
...to preserve a user's freedom to use software how they want and to modify it in any way they want.
Linus seems on this point to think it is acceptable to prevent a user from having the above freedoms merely because a hardware manufacturer (who has made their own modifications to GPL'd software) does not want others to be able to have the same freedoms.
I respect Linus for what he's done and contributed to Free software, but on this point I think he is wrong.
You should be coding to published standards, not to individual browsers.
If their browser is broken - that is their problem not the problem of websites that don't display in broken browsers. End of Story.
Two words here... "anti" and "trust".
M$ obviously still thinks it can use it's dominance on the desktop to promote other software - which it certainly should NOT do by means of an automatic rollout even if it later asks after it has already been downloaded!
>> Simply continue to produce standards compliant websites, and if you get a person visiting
>> who is using a broken browser simply inform them of the fact that their browser is broken
>> and give them a list of properly working browsers with URLs for them to click on.
>
> I'm all for this idea... however, I doubt my clients would be. You know, the people with
> money.
Well what does the professional in you say? Code sites that comply with published standards? or code sites that have nasty hacks to cope with broken browsers?
We've come too far with standards compliance merely to give-in to the non-compliance of a single solitary broken browser.
Nautilus works.
Konquoror works.
Firefix works.
Opera - works.
Microsoft Internet Explorer - doesn't work.
(and that's not counting the Apple browser(s) of which I don't know enough to comment.
> This means that we're now going to be headed back to the days
> when we have to render separately for different browsers,
> meaning XSLT is going to see a resurgence, costs are going to
> double, and folks are going to have to go back and recode all
> their existing apps so they render correctly in IE7.
It doesn't mean that at all.
Simply continue to produce standards compliant websites, and if you get a person visiting who is using a broken browser simply inform them of the fact that their browser is broken and give them a list of properly working browsers with URLs for them to click on.
IOW, don't accept that you have to code for a broken browser.
IMHO, coding for standards (rather than for particular broken browsers) is the ONLY acceptable option.
As if there was any doubt that it would.
> There are the PHBs of the world (and the sheeple), who
> don't know the Internet from IE, and don't know Windows
> from Word
Most of the staff at M$ would fall into that category.
> I deny that in the case that someone adopts a position at X that I have to
> adopt the -X postition to somehow 'balance them out.' I believe that I will
> simply fix my position at what I actually believe in, say Y, and stay there.
Feel free to deny what you like.
Nobody has suggested that *you* should change *your* opinion merely because an extremist is attempting to sway public opinion.
Notice I was talking about the centre of the BODY OF OPINION - not about the opinion that all persons should hold if they don't agree with that extremist.
> If you're simply saying that as people try to shift public policy away
> from my position that I must try to assert my position more often and
> in more effective ways, then we agree.
I was not saying what you - or indeed what any particular person should do.
> I'm only drawing the distinction because I've heard intelligent people
> contend that the best way to get what you want politically is to push
> for a position far in excess of what you actually want, on the
> assumption that you'll simply compromise away the excess that you don't
> want and be left with everything you actually wanted.
Sounds like they've got a good grasp of the art of negotiation and compromise, and of how to get what they really want.
Think about a body of opinion as a circle of string inside a rectangle - the more of that string is pushed out to one side the shallower the strength of opinion other than that out to the one side. The more string is out to the side the further to that side is the centre of that circle of string.
For maintaining a status quo the important point is that centre of the circle. But if that circle becomes flattened, then there is a risk of that body of opinion becoming two separate antagonistic bodies.
The important questions are: where do you want that centre of opinion to remain? And how best should that be achieved?
I think you don't really understand this, despite my explaination, and so I'm not going to reply again to this unless you have a serious/genuine question.
Whoever said you had to become "crazy"?
I was simply saying that the important point in a divers body of opinion is the centre point.
It is the centre point that needs to be moved in order to move a body of opinion, and that any extreme points in that body that were not there previously will move that centre point in the direction of that extreme.
This is fundamental statistics.
If you genuinely care about something and people start strongly advocating against it (whatever the subject is), then the mere fact that the advocacy is extreme will shift the centre of opinion against what you care about.
Your choice becomes: 1/ do nothing and see what you're passionate about become marginalised, or 2/ defend strongly.
A strength of defence does not mean "crazy" - you can make a strong reasoned case.
But whatever you chose, the extremist will shift the centre point of that body of opinion unless it be countered with equal strength.
you don't understand what I said.
The important thing is where the mid point of opinion lies.
If the extreme right is pushed even further to the right, then what was the mid point will appear to be in the left of the body of opinion.
So, either a lot of persons must have moderate opinions that move a little further towards the left in order to counter the advent of a few extremist right opinions or a few persons must adopt extremist left opinions - in order to maintain the general status quo of the balance of opinion.
Of course it would be wonderful if all persons held moderate progressive opinions, but while we have a population made up of sheep we must also have leaders who are prepared to stand up and take a definite position to counter the extremism of those who would destroy and take away rather than build and give.
Stallman is one of those who has stood up against those who would take away our liberty.
> The idea that you have to match extremity with extremity
> in politics finds no home with me.
The thing with extremists, if you do not counter that extremism to an equal degree, then the center point is skewed towards the extremist and the whole ground moves in the direction of the extremist.
Thus it is vitally important to counter to an equal degree the extremists - that is if you value what those extremists are trying to destroy.
Why would a *nix developer want to develop software on a software platform provided by a dodgy company that is suing it customers and that will most likely only be in business for a few more years?
> Ozzie is also driving Microsoft to simplify its software: 'Complexity .. It sucks the life out of developers, it makes products
> kills
> difficult to plan, build and test, it introduces security challenges,
> and it causes end-user and administrator frustration.'
At last somebody at Micro$oft whose understanding of software approaches that of the Unix way - Keep it simple.
If he really does manage to symplify Micro$oft's software then I think that company will pull through the OSS challenge.
#2 is that this "press release" does not follow the usual form and wording of all of The SCO Group's previous press releases.
interesting that BillyG announced his retirement around the same time that M$ started to talk positively about interacting with GPL'd software.
I wonder what the real story is behind both these moves...
> It's a bet against all odds, but what have they got to lose?
1 85813203 has information about it.
SCO has nothing to lose.
It has already lost its reputation - and most of its cash reserves - and any chance of getting its user base back.
But aside from that, it is likely that this was a bogus press release - http://www.groklaw.net/article.php?story=20060617
>> I have no idea about Dot Net - I have never used it - I don't use M$ software.
.Net? Tell
>
> What's the largest piece of software you know of that is free of implementation bugs? Photo$hop[1]
> definitely has bugs.
>
>> Well who is the silly sausage in that case! If it is not specified then there are no guarantees.
>> Assumption is the mutha of all stupidities.
>
> The point is that this isn't Microsoft's fault, but they'll get the blame for "breaking" things
> between versions.
The responsibility for bugs in poorly specified win32 APIs rests entirely with Micro$oft.
>> But older versions of Photoshop can indeed open and read Photoshop files saved by newer versions
> of photoshop that contain data that relate to features contained only in the newer version.
>
> This is why software is more complicated than a Photoshop file. What would you do in
> the JIT to insert no-ops for unresolved function calls?
I would not use Dot Net even if you paid me $5,000,000,000,000 ($5 billions)!
>> "End users" generally never see software source code.
>
> But programmers do and when you're talking about a library, they're the end users. Adding fine-grained
> version numbering to function names affects the programmer; it's ugly and I prefer a breaking change
> if it is enough of an improvement over the old API.
Programmers are not "end users" - they develop software that end users... err... use.
>> You miss my point - which is that the APIs of *well-designed* and then *well-written* software
.Net that you believe is well-designed and well-written?
.Net 1.1, the list was in sorted order. The fact that it was sorted was a side-effect .Net 2.0, the list was no longer sorted. The .Net 2.0 and my app broke" kind of way.
>> should provide output that conforms to its design specification.
>
> So any API with implementation bugs can't be considered well-designed and well-written?
Agreed!
> Doesn't that rule out almost everything out there? Is there a library of comparable complexity
> to
I have no idea about Dot Net - I have never used it - I don't use M$ software.
> Also, part of the problem is that developers end up relying on unspecified behavior.
Well who is the silly sausage in that case! If it is not specified then there are no guarantees. Assumption is the mutha of all stupidities.
> One example
> (from The Old New Thing blog, I believe) is a querying function that returns some system information
> in a list. In
> of the implementation and wasn't stated in the function contract, but some developers ended up
> (probably inadvertently) relying on that behavior. In
> output is still according to the specification, but the client application no longer works properly.
> This is not Microsoft's fault, but they might end up taking the blame in a generic "I tried running
> on
The first problem was using M$ software. The second problem was using Dot Net. The third problem was the assumption that M$ wouldn't deliberately introduce breakages.
>> With photoshop - it's file format was designed so that all versions of Photoshop can open any
>> photoshop file saved by any other version of Photoshop. It was deliberately designed to be able to
>> do that.
>
> Older version of Photoshop can read the newer file formats?
Correct. That is indeed the case. Older versions of Photoshop can indeed open photoshop files saved by newer versions of Photoshop.
> If so, how do they add new features and make them still work? Having to degrade gracefully is severly
> limiting. If it's only backwards compatibility, then I think Microsoft seems to be able to do that in
> MS Word. If there are, in fact, any backwards compatibility problems in the design itself, then yes,
> I consider that to be a screw up.
Adobe has clearly achieved backwards compatibility while at the same time adding new features. Of course the older versions of Photoshop cannot *use* those parts of the file that relate to the newer features, and older versions of Photoshop cannot write files that contain those newer features. But older versions of Photoshop can indeed open and read Photoshop files saved by newer versions of photoshop that contain data that relate to features contained only in the newer version.
> One difference between something like a Photoshop/Word documents and program source code is that nobody
> was ever supposed to read the former. They can add ugly-looking hacks (such as version numbers on each
> data structure) to make things work because end users don't have to look at the raw data.
"End users" generally never see software source code.
> With source
> code, there is the occasional version numbering suffix, but doing that too frequently will make things
> worse than just fixing the API in-place and temporarily inconveniencing the developers that relied on
> the broken behavior.
The API should not need fixing if it was well designed in the first place.
- the wicked witch is dead - Hurrah! /oz
> It was their most secure OS ever, right up to the point that WMF bug
> was exploited and Vista was found to be just as vulnerable as every
> other windows version.
One would expect this to be the case - given that MS Windows Vista (WinNT6.0) is built from the same code tree as WinNT4.x, WinNT5.0, AND WinNT5.1 .
Microsoft also made the same bold claim about the initial release of WinNT4.1 (XP) only for it to be proven to be utterly false less than a week after it was released.
> Have you taken a look at the list of breaking changes [microsoft.com]? They're mostly .Net, since multiple versions can be installed
> design and bug fixes. They could have created new functions (with the suffix "_New", or
> something) but I prefer fixing the functions in-place. Not allowing such changes is just
> going to cause a build-up of cruft. If you just want your older app to continue working,
you can still use an older version of
> side-by-side on the same machine.
You miss my point - which is that the APIs of *well-designed* and then *well-written* software should provide output that conforms to its design specification.
The examples that you cite are of a company that simply does not know how to produce well designed software.
If it did then, for example, it wouldn't require SEVEN s to delete something that a User should either be able to delete outright or should not be able to delete at all.
With photoshop - it's file format was designed so that all versions of Photoshop can open any photoshop file saved by any other version of Photoshop. It was deliberately designed to be able to do that.
>> Older versions of Adobe Photoshop can read any file written by any newer
>> version - provided it is saved with compatiblity in mind.
>
> Yeah, and since raster images are as complex as program source code, the analogy is perfect.
IF software is well designed, and has followed a proper design process then its complexity is not a factor in how its APIs respond - because those APIs have been determined to provide a given response for a given input even before any coding was ever done in the first place. Any deviation from this is a flaw in the software and should be corrected before it is released.
That is if the developer is producing software that works according to its design specification.
What this all boils down to is that the ISPs want more money without appearing to be greedy.
All persons and organisations who connect to the WWW already pay for that access.
All persons and organisations who have a website already pay for all the data and bandwidth consumed - in both directions - when people connect to their server.
So ALREADY people are paying the full cost of their connectivity + a profit for the ISP.
The question is whether or not those ISPs are prepared to invest in developing their own infrastructure in order to expand their own business and thus generate increase their own profits.
Net Neutrality means each ISP should provide their own infrastructure sufficient to meet the needs of all their own clients - and access to connectivity should not be based on who their customers are or who their customers connect to.
> It's the queers. They're in it with the aliens. They're building
;o)
> landing strips for gay Martians, I swear to God
Where else do you think the martians got the anal probulator from? Of course, dahling - we gave it to them.