Quoting your quote of myself, "Canadians are, on the whole, the vilest people I have encountered -- the exceptions are rare indeed."
This is not descrimination. It is observation, and opinion.
It is not racist for a white man to find black women, for example, unattractive, when considering a prospective mate. It would be racist, and discriminatory, if he overlooked her for a role where her race was irrelevant, i.e. an employee or business associate. In the same vein, I feel an intense dislike for fellow Canadians, based on the attitudes they hold dear, particularly that of a "social safety net", that I dispise. The ambivalent humour concerning prison-rape is one more notch on my dislike scale.
I am guilty of generalization, of course, and take care to acknowledge exceptions to the observations I make. But, the most rational way to consider the likely behaviour of individual members of a group is by via their leadership heirarchy (in a democracy, at lest), and mass media. Likely does not mean certain, of course, but it's a damn good first approximation.
If it is perfectly acceptable to claim, for example, that "Canadians like their social safety net", and I dispise the notion of a social safety net (where the state decides who lives or dies), it is reasonable to say, "I despise Canadians".
The hypothetical racist American radio ad, was just that, a hypothetical analogy of what was played all summer 03 on Toronto radio stations. That the analogy is offensive is good: the base prison rape drunk driving deterrent ad was just as offensive, which was my whole point.
In addition I've never seen those commercials but assuming they exist, the people who make anti-drunk driving ads are not the same who control the penal system.
Well, yes, this is true. But it is telling of a society when such advertisments are considered in acceptable enough taste to make it to air. Even though the practice of prison-rape is not legally sanctioned, acceptance of such advertising strongly suggests that it is universally accepted as part of the punishment one gets when one is incarcerated.
It would be rather like having "clean neighborhood" ads on American radio that go on about getting rid of "darkies, or jungle bunnies" (I doubt the word "nigger" would pass), because even though racial discrimination is illegal, "they're still troublemakers and need to be segregated.. hint hint, nudge, nudge.".
Of course racial discrimination continues to exist, as does prison rape, and work-pay discrimination against women. But, that does not mean that a message should be sent that this is, in any way, acceptable, and certainly not by a government agency. When the state does this, it leaves the realm of crude and crass humour (which, admitedly, appeals to some, and might be argued in the "sticks and stones" sense to even be harmless fun), and becomes abhorrent.
Actually, I am a Canadian-bashing Canadian. Having lived here and elsewhere, I have come to hate the disgusting socialism in Canada, and fully intend to leave, and disclaim any rights to Canadian citizenship as soon as possible. Canadians are, on the whole, the vilest people I have encountered -- the exceptions are rare indeed.
You haven't *seen* them, because they're Radio Ads. I'm not sure if the LCBO (government run alcohol distributer) or Ministry of Transport is putting them on, but they have been airing all summer 03 on 97.7 FM in the Toronto area, and other stations as well.
One starts off describing a shower scene, supposedly after some sporting event, where the "team" is washing off the grime, except it turns out that is a prison shower: "This is no big deal, except when the next guy is checking you out... Drink, drive, go to jail."... they run something like that. Disgusting.
And what is wrong is wrong using a bit of humour in commercials.
You've answered your own question. To make fun of an undesirable situation, particularly one involving abuse of justice, is abhorrent.
Perhaps you don't understand the difference between a joke about an anonymous woman being raped because of her misunderstanding a proposition, and a joke about a real person being raped, who's name is in the news. One is crude, though it may be funny, but the latter is just plain cruel.
Prison-rape is used as a deterrent in anti-drunk driving commercials in Ontario, Canada.
While tolerating or encouraging prison-rape would be cruel punishment in an American jail, and unconstitutional (even though obtaining justice in this case might be practically difficult), it is accepted as matter-of-fact in Canadian jails.
Americans slaughter foreigners. We slaughter our own and boast of being more civilized. Bullshit.
I don't think anyone can accuse Simonyi of being dumb, but even smart guys have poor ideas.
I don't necessarily think the idea is poor, but rather has been abused.
Hungarian notation may serve as a useful mnemonic for beginning programmers to remember how an object can be used. Of course, abstraction and encapsulation are supposed to hide the very implementation that your striving to describe! Something in my gut tells me that if you don't understand an object's type, you've got no business mucking with it. Furthermore, there's no checking to make sure that the purported type of an object actually matches it's name. This is a recipe for more problems than solutions.
That said, there are a couple of cases where such blatant type epxosure is useful:
1. You are dealing with graphical structures and pointer chains. Remembering that a variable is a pointer to a pointer rather than a pointer to some object is assisted with the "p" vs. "pp" notation.
2. You are unfamiliar with the code and have to maintain it. Some menmonic in the name that causes you to remember the type is handy. Unfortunately, while this helps for the simplest constructions (pointer, array, zero-terminated array), it is useless when discerning between "pointer to Foo" and "pointer to Bar" -- which one was I interested in again?
3. Pointer qualification. While C++ can provide different encapsulated abstractions for indirect references (perhaps smart ones) to single objects, and encapsulated pointer handles to bounded contiguous arrays, it sometimes helps to remember that q is a pointer to a *single* Foo, and *p* is a pointer to the base of a whole bunch of 'em. This is more of an issue with C than C++, precisely because of the abstraction offered by the latter language, but even there, when the code hits the metal and you're dealing with implementation as opposed to interface, the raw fact that both are implemented with bald pointers hits home.
In short, I can see uses for Hungarian notation as a mnemonic, to be used sparingly, in situations where abstractions have been peeled away. But, like all aspects of the programmers' art, it has had it's day in the limelight as the fashionable panacea of the time, to erradicate all coding errors.
Yeah, "backing store" was the first thing that I thought of when I read the article and the need to store non-forground windows.
But, why not have the server ask the appropriate client for the necessary window, if needed to do a, *gasp*, software alpha-blend and there being no backing store for it? IOW, just treat backing store as a cache which may or may not be present. Hardware supported alpha blends, of course, *require* both windows to be present.
Then again, I may be talking out of my ass: I've played with X a bit, but am not an X guru, by any means.
Well, I'm more of a computer nerd than a physics junky (though I can handle the Special and General theories of Relativity fairly well), but let me try to contemplate a possible use.
Accelerating objects experience a force against the direction of the acceleration vector. I can imagine transverse structural members in an assembly (read: "rocket ship") having limits to how fast lateral (from their reference frame) force changes can be accomodated. Thus, they'd have "jerk" limits.
Perhaps some mechanical engineering types might have a better answer. All I know is that the third derivative of motion w.r.t. time is called "jerk".
Yes, hearing the phrase "knots per hour" turns me into an ass too.
So, hearing "knots per hour squared" turns you into a jerk? (For the physics impaired: jerk is the third derivative of motion with respect to time, so units of velocity per time squared are units of jerk.)
Knots per hour sounds like a perfectly good unit of acceleration to me (and probably appropriate for vessels like supertankers).
"Did I give the impression that I was actively seeking employment with the implicit approval to pass my resume around?"
I think you should look at your sig.
Don't the words could have indicate that I am not actively looking at this point?
Sure, I like to advertise my background and experience, in case my skills are desired -- I'm always open to opportunity, even as I am currently employed. But, I think it's a bit of a stretch to presume that implies an active search.
So, if someone comes along and says, "Hey! We've been looking desperately for someone with your background, are you interested?", I'd be interested. But that's not the same as asking for my resume to be actively pushed without my knowledge by people I don't know.
Maybe I'm expecting a subtle distinction to be made where there isn't one, but then again, I've seen many people make their resume's public, on the odd chance serendepity will result in a positive employment or contract relationship happening that otherwise wouldn't. All this, without being actively involved in a job search.
In this case, while I was a bit surprised (usually I get inquiries from principles seeing my resume by chance), I guess "no harm, no foul" applies.
I don't follow. If your competition makes enhancements to the LGPLed part they still have to distribute code to those enhancements when they distribute their versions.
Those enhancements could take the form of a binary only object. Considerer LGPL code with a bug in the "Foo()" routine. Remove it, write your own, correct, version,. and distribute it as a binary only module. All you have to do is distribute the source to the modified LGPL code, without the incorrect "Foo()" routine. But, your bug fix is kept secret.
Now, one could arge whether the "Foo()" replacement is a rewrite or a derivative, but that becomes an uphill legal battle, particularly if more than one routine is involved.
That applies to the Linux kernel only. And, even I question whether Linus was too liberal here -- I don't necessarily like closed code running in kernel space.
The solution of the "tainted kernel" bit was a clever idea to try to manage this sort of thing, though. It would be nice if binaries could indicate in a fashion that could be automatically checked, what they could and could not be bound with. Of course, that doesn't cover everything, but if major license attributes could be codified, it would be useful.
To me, and I am not a full-time programmer, this sounds more like a case of bad factoring. You have designed software where information about your process is embeded within the code.
Oh, it may very well be poor code factoring. But, hindsight is 20/20, and there are a lot of systems that have evolved useful subcomponents within them over time.
But, I can also imagine situations where performance demands a tight linkage at run time.
If you accept contributions from others to the GPL'd piece, you'll want to do copyright assignment or something to ensure you continue to have the right to use that code under non-GPL licenses. OpenOffice.org is a fine example of this approach.
If you yourself are using other GPL'd code in your GPL'd stuff, then you need to abide by the GPL across the board.
Yes, of course. The idea is to pick a license that is (a) acceptable, and (b) makes such assignment/permission the default, while still being fair to the contributing community.
The initial draft of the Mozilla license was unfair because all improvements became Netscape's, IIRC. The present state of affairs with regard to the GPL, is "opt in" in that contributors have to "opt in" to our using their code in non-GPL ways. I'm looking for a fair "opt out" counterpart that basically says, "Look, we freed this bunch of code so you can use it. Since we share with you, we think your changes should be free for us to use, even in a proprietary fashion, but all others have to use them openly. We shared when we didn't have to, so we think we're entitled to that perk. Of course, we can't prevent you from disagreeing, and keeping your enhancements completely open, but, in that case, we ask that you say so."
Write your own license without the "viral" component based on linkage. The big drawback here is that given the massive misunderstanding of the GPL, a profileration of variant licenses is just going to confuse the issues more.
Yeah, what he said. Actually, he said it better than I did in my followup. And, a plethora of "kind of free" licenses is the last thing the world needs.
Still, I can envision a class of licenses that benefit the free software community with more useful code, but are more relaxed than the GPL with respect to restricted integration with non-free code. Such restricted integrations can take the form of time-limits (everything eventually gets GPLd), or use limits (only the original author can release proprietary derivatives).
Not quite. I want to give people the choice to let us use their contributions in proprietary applications. The GPL alone does not let them choose. Some, benefitting from what we have freed might see this as a fair trade, if the alternative is for us to not free anything at all.
The type of code of which I'm thinking would be something like a library, or embeddable utility, quite useful without our proprietary layers around it, so the "lock in" risk with proprietary code isn't there.
Traditionally, one would LGPL this sort of thing, but that is not always appropriate or desirable.
The GPL is a truly revolutionary license, it is *designed*, as SCO says, to reduce the financial value of proprietary software. Yes, GPL software is freer than public domain, in the sense that the source code can never be taken proprietary (other than by the original author) and redistributed
Not quite.
You can't GPL something, accept contributions and enhancements to it, and then take the current version proprietary, and redistribute further closed enhancements to that. Doing so would violate the license all those contributers gave you.
This has been a sticking point for me in the past and has acted to
prevent
distribution of some code as GPL. Consider, we'd have a body of code, some rather generic, and some quite specific to our edge in the market. The two parts are quite tightly bound together. We'd like to release the generic part and encourage it's enhancement, and incorporate those enhancements with our specific part, but keep the latter proprietary (or at least keep it from benefitting our commercial copmpetition).
We can't release the generic part under the GPL and leverage improvements made to it with our proprietary code. We don't want to releae the generic part under the LGPL (which would get around this problem), because we don't want our competition to make proprietary enhancements to that and leverage them -- we're willing to share the generic part, but only equally.
In practice, nothing gets opened up because of this dilema, and the entire package remains proprietary:-(.
Now, we might be able to come up with some creative networked binding via pipes or sockets that "gets around" the GPL, but this (a) requires effort and may impact performance to an unacceptable degree, and (b) RMS, at least, has not taken kindly to such ideas (not that this is a surprice), even if it means that nothing gets released in "somewhat free" manner. Somewhat free is not a slippery slope that RMS, nor the community at large, would like to see.
I have suggested a transitional dual license in the past: GPL and GPL with an explicit exception for us as described above. Contributers could chose if they would permit our using their code in a proprietary fashion or not. Even RMS has found this acceptable. Of course, such a release could fork immediately, with no community development on the "somewhat free" license side (and that's why RMS probably approved). This is generally an unacceptable risk to most businesses that think all software has greater value if kept secret and would only consider a free release if there was a good chance it would enhance some other aspect of their business.
What was he smoking? My employer makes graphics cards. If I were to see a shipment of hardware arrive that our cards do not support, I would assume that shipment may be of some strategic significance, and it would be a violation of my likely confidentiality agreement with my employer to disclose that arrival to the world.
Perhaps being fired without a previous reprimand is a bit harsh (and indeed, now draws more attention to the reason behind it), but it strikes me as fair play.
Hmm. Looks like standard business practice to me, perhaps leveraging economic clout, and perhaps doing so in violation of unfair competition laws.
But, that's for a court to decide.
Patents, on the other hand, are government-granted monopolies to exploit an idea, ostensibly to encourage development for the public good. But, patents being backed by state force, and my being a libertarian, I find "trivial" patents a more reprehensible practice than levering business economies of scale.
So, I'll stick with b&n and avoid amazon.
FWIW, I do use small, specialty booksellers, when necessary, and b&n does not carry the book in question.
I boycott Amazon.com (and favour Barnes & Noble) because of stupid things like one click patents.
B&N has a "Readers Advantage" card that gets you a 10% discount and only costs US$25 a year -- worth it if you buy more than US$250 of books a year. I usually buy books in bursts, and have let my Readers Advantage card lapse, but they let you buy one at the same time as you make a purchase and let you apply it to that purchase (not that a "leave the store and reenter" hack wouldn't work, but they are being friendly and saving you the hassle).
I do miss Texas. Heinlein was right: "An armed society is a polite society."
Never encountered a pushy type in a line, and people in the "N-items or less" lines always had N items or less.
If I murder someone in Texas, I fry. If I murder someone in Canada, I'd likely get 25 years, parole after 7, and the murdered person's family pays the taxes to support my room and board while I'm locked up. Almost beats working for a living. Of course, not liking the intimate company of people named "Bubba" kinda puts a damper on the "murder in exchange for free room and board idea" (While inmates in U.S. prisons are supposed to not suffer cruel and unusual punishment, such punishment is actually advertised as a deterrent in the province of Ontario, as a means of combatting drunk driving: "Drive drunk, go to jail, get sodomized.")
Uh, huh! We feed, clothe, and house our criminals here! And, if you're "Bubba's" type, you got it made! Just go and murder someone!!
This is not descrimination. It is observation, and opinion.
It is not racist for a white man to find black women, for example, unattractive, when considering a prospective mate. It would be racist, and discriminatory, if he overlooked her for a role where her race was irrelevant, i.e. an employee or business associate. In the same vein, I feel an intense dislike for fellow Canadians, based on the attitudes they hold dear, particularly that of a "social safety net", that I dispise. The ambivalent humour concerning prison-rape is one more notch on my dislike scale.
I am guilty of generalization, of course, and take care to acknowledge exceptions to the observations I make. But, the most rational way to consider the likely behaviour of individual members of a group is by via their leadership heirarchy (in a democracy, at lest), and mass media. Likely does not mean certain, of course, but it's a damn good first approximation.
If it is perfectly acceptable to claim, for example, that "Canadians like their social safety net", and I dispise the notion of a social safety net (where the state decides who lives or dies), it is reasonable to say, "I despise Canadians".
The hypothetical racist American radio ad, was just that, a hypothetical analogy of what was played all summer 03 on Toronto radio stations. That the analogy is offensive is good: the base prison rape drunk driving deterrent ad was just as offensive, which was my whole point.
Well, yes, this is true. But it is telling of a society when such advertisments are considered in acceptable enough taste to make it to air. Even though the practice of prison-rape is not legally sanctioned, acceptance of such advertising strongly suggests that it is universally accepted as part of the punishment one gets when one is incarcerated.
It would be rather like having "clean neighborhood" ads on American radio that go on about getting rid of "darkies, or jungle bunnies" (I doubt the word "nigger" would pass), because even though racial discrimination is illegal, "they're still troublemakers and need to be segregated.. hint hint, nudge, nudge.".
Of course racial discrimination continues to exist, as does prison rape, and work-pay discrimination against women. But, that does not mean that a message should be sent that this is, in any way, acceptable, and certainly not by a government agency. When the state does this, it leaves the realm of crude and crass humour (which, admitedly, appeals to some, and might be argued in the "sticks and stones" sense to even be harmless fun), and becomes abhorrent.
Actually, I am a Canadian-bashing Canadian. Having lived here and elsewhere, I have come to hate the disgusting socialism in Canada, and fully intend to leave, and disclaim any rights to Canadian citizenship as soon as possible. Canadians are, on the whole, the vilest people I have encountered -- the exceptions are rare indeed.
One starts off describing a shower scene, supposedly after some sporting event, where the "team" is washing off the grime, except it turns out that is a prison shower: "This is no big deal, except when the next guy is checking you out... Drink, drive, go to jail."... they run something like that. Disgusting.
You've answered your own question. To make fun of an undesirable situation, particularly one involving abuse of justice, is abhorrent.
Perhaps you don't understand the difference between a joke about an anonymous woman being raped because of her misunderstanding a proposition, and a joke about a real person being raped, who's name is in the news. One is crude, though it may be funny, but the latter is just plain cruel.
While tolerating or encouraging prison-rape would be cruel punishment in an American jail, and unconstitutional (even though obtaining justice in this case might be practically difficult), it is accepted as matter-of-fact in Canadian jails.
Americans slaughter foreigners. We slaughter our own and boast of being more civilized. Bullshit.
Or more politely: Pot, Kettle, Black.
I don't necessarily think the idea is poor, but rather has been abused.
Hungarian notation may serve as a useful mnemonic for beginning programmers to remember how an object can be used. Of course, abstraction and encapsulation are supposed to hide the very implementation that your striving to describe! Something in my gut tells me that if you don't understand an object's type, you've got no business mucking with it. Furthermore, there's no checking to make sure that the purported type of an object actually matches it's name. This is a recipe for more problems than solutions.
That said, there are a couple of cases where such blatant type epxosure is useful:
1. You are dealing with graphical structures and pointer chains. Remembering that a variable is a pointer to a pointer rather than a pointer to some object is assisted with the "p" vs. "pp" notation.
2. You are unfamiliar with the code and have to maintain it. Some menmonic in the name that causes you to remember the type is handy. Unfortunately, while this helps for the simplest constructions (pointer, array, zero-terminated array), it is useless when discerning between "pointer to Foo" and "pointer to Bar" -- which one was I interested in again?
3. Pointer qualification. While C++ can provide different encapsulated abstractions for indirect references (perhaps smart ones) to single objects, and encapsulated pointer handles to bounded contiguous arrays, it sometimes helps to remember that q is a pointer to a *single* Foo, and *p* is a pointer to the base of a whole bunch of 'em. This is more of an issue with C than C++, precisely because of the abstraction offered by the latter language, but even there, when the code hits the metal and you're dealing with implementation as opposed to interface, the raw fact that both are implemented with bald pointers hits home.
In short, I can see uses for Hungarian notation as a mnemonic, to be used sparingly, in situations where abstractions have been peeled away. But, like all aspects of the programmers' art, it has had it's day in the limelight as the fashionable panacea of the time, to erradicate all coding errors.
But, why not have the server ask the appropriate client for the necessary window, if needed to do a, *gasp*, software alpha-blend and there being no backing store for it? IOW, just treat backing store as a cache which may or may not be present. Hardware supported alpha blends, of course, *require* both windows to be present.
Then again, I may be talking out of my ass: I've played with X a bit, but am not an X guru, by any means.
So, my speculation about aerospace ties were correct.
Well, I'm more of a computer nerd than a physics junky (though I can handle the Special and General theories of Relativity fairly well), but let me try to contemplate a possible use.
Accelerating objects experience a force against the direction of the acceleration vector. I can imagine transverse structural members in an assembly (read: "rocket ship") having limits to how fast lateral (from their reference frame) force changes can be accomodated. Thus, they'd have "jerk" limits.
Perhaps some mechanical engineering types might have a better answer. All I know is that the third derivative of motion w.r.t. time is called "jerk".
So, hearing "knots per hour squared" turns you into a jerk? (For the physics impaired: jerk is the third derivative of motion with respect to time, so units of velocity per time squared are units of jerk.)
Knots per hour sounds like a perfectly good unit of acceleration to me (and probably appropriate for vessels like supertankers).
I think you should look at your sig.
Don't the words could have indicate that I am not actively looking at this point?
Sure, I like to advertise my background and experience, in case my skills are desired -- I'm always open to opportunity, even as I am currently employed. But, I think it's a bit of a stretch to presume that implies an active search.
So, if someone comes along and says, "Hey! We've been looking desperately for someone with your background, are you interested?", I'd be interested. But that's not the same as asking for my resume to be actively pushed without my knowledge by people I don't know.
Maybe I'm expecting a subtle distinction to be made where there isn't one, but then again, I've seen many people make their resume's public, on the odd chance serendepity will result in a positive employment or contract relationship happening that otherwise wouldn't. All this, without being actively involved in a job search.
In this case, while I was a bit surprised (usually I get inquiries from principles seeing my resume by chance), I guess "no harm, no foul" applies.
I would have preferred that you asked first. Two reasons: (a) it's polite, and (b) I have an updated resume with recent digital video experience.
Did I give the impression that I was actively seeking employment with the implicit approval to pass my resume around?
Those enhancements could take the form of a binary only object. Considerer LGPL code with a bug in the "Foo()" routine. Remove it, write your own, correct, version,. and distribute it as a binary only module. All you have to do is distribute the source to the modified LGPL code, without the incorrect "Foo()" routine. But, your bug fix is kept secret.
Now, one could arge whether the "Foo()" replacement is a rewrite or a derivative, but that becomes an uphill legal battle, particularly if more than one routine is involved.
The solution of the "tainted kernel" bit was a clever idea to try to manage this sort of thing, though. It would be nice if binaries could indicate in a fashion that could be automatically checked, what they could and could not be bound with. Of course, that doesn't cover everything, but if major license attributes could be codified, it would be useful.
An "opt-out" instead of an "opt-in" structure to defacto licensing of improvements to the original author.
Oh, it may very well be poor code factoring. But, hindsight is 20/20, and there are a lot of systems that have evolved useful subcomponents within them over time.
But, I can also imagine situations where performance demands a tight linkage at run time.
If you accept contributions from others to the GPL'd piece, you'll want to do copyright assignment or something to ensure you continue to have the right to use that code under non-GPL licenses. OpenOffice.org is a fine example of this approach.
If you yourself are using other GPL'd code in your GPL'd stuff, then you need to abide by the GPL across the board.
Yes, of course. The idea is to pick a license that is (a) acceptable, and (b) makes such assignment/permission the default, while still being fair to the contributing community.
The initial draft of the Mozilla license was unfair because all improvements became Netscape's, IIRC. The present state of affairs with regard to the GPL, is "opt in" in that contributors have to "opt in" to our using their code in non-GPL ways. I'm looking for a fair "opt out" counterpart that basically says, "Look, we freed this bunch of code so you can use it. Since we share with you, we think your changes should be free for us to use, even in a proprietary fashion, but all others have to use them openly. We shared when we didn't have to, so we think we're entitled to that perk. Of course, we can't prevent you from disagreeing, and keeping your enhancements completely open, but, in that case, we ask that you say so."
Yeah, what he said. Actually, he said it better than I did in my followup. And, a plethora of "kind of free" licenses is the last thing the world needs.
Still, I can envision a class of licenses that benefit the free software community with more useful code, but are more relaxed than the GPL with respect to restricted integration with non-free code. Such restricted integrations can take the form of time-limits (everything eventually gets GPLd), or use limits (only the original author can release proprietary derivatives).
The type of code of which I'm thinking would be something like a library, or embeddable utility, quite useful without our proprietary layers around it, so the "lock in" risk with proprietary code isn't there.
Traditionally, one would LGPL this sort of thing, but that is not always appropriate or desirable.
Not quite.
You can't GPL something, accept contributions and enhancements to it, and then take the current version proprietary, and redistribute further closed enhancements to that. Doing so would violate the license all those contributers gave you.
This has been a sticking point for me in the past and has acted to
prevent
distribution of some code as GPL. Consider, we'd have a body of code, some rather generic, and some quite specific to our edge in the market. The two parts are quite tightly bound together. We'd like to release the generic part and encourage it's enhancement, and incorporate those enhancements with our specific part, but keep the latter proprietary (or at least keep it from benefitting our commercial copmpetition).We can't release the generic part under the GPL and leverage improvements made to it with our proprietary code. We don't want to releae the generic part under the LGPL (which would get around this problem), because we don't want our competition to make proprietary enhancements to that and leverage them -- we're willing to share the generic part, but only equally.
In practice, nothing gets opened up because of this dilema, and the entire package remains proprietary :-(.
Now, we might be able to come up with some creative networked binding via pipes or sockets that "gets around" the GPL, but this (a) requires effort and may impact performance to an unacceptable degree, and (b) RMS, at least, has not taken kindly to such ideas (not that this is a surprice), even if it means that nothing gets released in "somewhat free" manner. Somewhat free is not a slippery slope that RMS, nor the community at large, would like to see.
I have suggested a transitional dual license in the past: GPL and GPL with an explicit exception for us as described above. Contributers could chose if they would permit our using their code in a proprietary fashion or not. Even RMS has found this acceptable. Of course, such a release could fork immediately, with no community development on the "somewhat free" license side (and that's why RMS probably approved). This is generally an unacceptable risk to most businesses that think all software has greater value if kept secret and would only consider a free release if there was a good chance it would enhance some other aspect of their business.
Perhaps being fired without a previous reprimand is a bit harsh (and indeed, now draws more attention to the reason behind it), but it strikes me as fair play.
But, that's for a court to decide.
Patents, on the other hand, are government-granted monopolies to exploit an idea, ostensibly to encourage development for the public good. But, patents being backed by state force, and my being a libertarian, I find "trivial" patents a more reprehensible practice than levering business economies of scale.
So, I'll stick with b&n and avoid amazon.
FWIW, I do use small, specialty booksellers, when necessary, and b&n does not carry the book in question.
B&N has a "Readers Advantage" card that gets you a 10% discount and only costs US$25 a year -- worth it if you buy more than US$250 of books a year. I usually buy books in bursts, and have let my Readers Advantage card lapse, but they let you buy one at the same time as you make a purchase and let you apply it to that purchase (not that a "leave the store and reenter" hack wouldn't work, but they are being friendly and saving you the hassle).
I do miss Texas. Heinlein was right: "An armed society is a polite society."
Never encountered a pushy type in a line, and people in the "N-items or less" lines always had N items or less.
If I murder someone in Texas, I fry. If I murder someone in Canada, I'd likely get 25 years, parole after 7, and the murdered person's family pays the taxes to support my room and board while I'm locked up. Almost beats working for a living. Of course, not liking the intimate company of people named "Bubba" kinda puts a damper on the "murder in exchange for free room and board idea" (While inmates in U.S. prisons are supposed to not suffer cruel and unusual punishment, such punishment is actually advertised as a deterrent in the province of Ontario, as a means of combatting drunk driving: "Drive drunk, go to jail, get sodomized.")
Uh, huh! We feed, clothe, and house our criminals here! And, if you're "Bubba's" type, you got it made! Just go and murder someone!!