Solution: fork each child process directly from the shell.
The catch (which I hinted at in the original post) is that pipelines may be nested. Say you have
(a | b) | (c | d)
And say you want to avoid wasting resources by having multiple shell processes that are just waiting for other processes (ie, you only want to fork 4 times total, which is what bash would do). Then you need to fork a, b, c, and d from the main shell. Which means you need to open all the pipes in the main shell, and do lots of duping and closing in the forked children before exec. Plus, creating all these pipes in the shell uses lots of fds, so you probably want to consider scheduling things to minimize the number of pipes open at once.
This is what I mean by a mini-OS. At least, that's what it felt like when I tried implementing the above. If you have some clever way to simplify things, I'd love to hear.
Funny you should mention this, because I was going to write something about pipes. Getting pipes right with good error semantics is hard. For all the "just use set +e in bash" weenies out there, try running
#!/bin/sh -e cat nosuchfile | echo hello
Where's your error?
If you think about the unix process and pipe primitives, you will see the difficulty. To create a pipeline, you normally fork, create the pipe, fork again, and run the two ends of the pipeline in the two sub-processes. This is scalable to deeply nested pipelines, but has a cost: Only one of the sub-processes is a child of the shell, so only one exit status can be monitored. To work around this, you really need to build a mini-OS environment on top of unix.
This demonstrates that unix was fundamentally not designed with concern for error semantics (consider Erlang as a diametric example). And this, I'm sure, is why ftsh doesn't have pipes (yet).
As a federal non-profit, the FSF is required to file IRS form 990. This and other information is available at guidestar. It used to be free, but unfortunately now you have to pay for it.
It is probably worth asking the FSF to publish it themselves.
Can't prove a negative?
on
Security Warrior
·
· Score: 4, Informative
There's no way to prove a negative. There are no good mathematical tools that make it easy to prove statements like P!=NP or big numbers can't be factored quickly.
You have no idea what you're talking about. Mathematicians and computer scientists prove negatives and non-existence all the time. For example, it is proven that there exist no non-zero rationals a, b, and c, and integer n > 2, such that a^n + b^n = c^n.
Computer security is an odd pursuit because it's just not possible to have a strong, theory of everything when cracks can appear anywhere.
The reason it's not possible in practice to prove anything about computer security is that the languages and protocols we used were not designed with this ability in mind. You can't prove anything useful about unix, C, or HTTP. It's true that it would take a massive overhaul of our computer infrastructure, but it's possible to have systems that you can reason about.
Even then, it's true that you can only prove things in a model, and it's always possible that there will be a real-world attack that isn't reflected in the model. But the situation could be much, much better than it is today. If you use a safe language and design your library carefully, you can probably provably protect yourself from some vulnerabilities.
According to the SCO 10-K to which ESR linked, Anderer signed an agreement between SCO and S2 Strategic Consulting (his company) on August 4, 2003. Assuming the parent poster believes what he wrote, Anderer probably left SCO in June to continue performing the same functions as an independent contractor.
Also, it's not exactly true that functional programming lacks a big-name sponsor. Haskell research and implementation is largely driven by Microsoft Research. This is not the same as promoting (something like) Haskell to working programmers, but it suggests that Microsoft has its eye on doing so someday.
As someone who's dabbled in FreeS/WAN and IPSEC, I think this may actually help IPSEC on Linux take off. There is now another prominent IPSEC implementation available: the one in 2.6. For a long time, FreeS/WAN was the only choice, and while it was quite good, it had some baggage: Due to legal and political concerns, it was maintained by a relatively closed team, it was never well-integrated into the kernel, and it didn't offer some of the "insecure" features some users wanted. I would argue it was destined to remain a fringe project, never attaining the community acceptance needed for real success.
The 2.6 implementation is not as mature, but it has excellent success factors. It was written by an alpha kernel hacker, it's in the mainline, and it's open in the Linux tradition. An influx of former FreeS/WAN users may be just what it needs to work out the kinks. FreeS/WAN has done a great service, and is now doing another by throwing its momentum behind an implementation with better long-term prospects.
Even better for the Harvard people--they didn't have to make the dubious invitation! Seriously, I was being a litle melodramatic, but all PJ's post shows is that McBride wildly overestimates his credibility and underestimates the technical cluefulness at Harvard Law. I'm sure that in accommodating his request to speak, JOLT knew both that he was wrong, and that the audience would see through him.
BTW, I just listened to the beginning of the McBride audio (I attended Moglen's talk but not McBride's), and the subtext is hilarious. Listen to the introducers carefully disclaim an endorsement of McBride and emphasize the planned rebuttal by Chris Stone. They say he's "learn-ed on the GPL" and compare him to Janet Jackson at the Super Bowl! (McBride even plays along with this jibe.)
The introducers reveal their real purpose: to "frame" the "hard questions" of software law, by offering an extreme viewpoint in caricature.
That's a good point, but trust me, McBride's speech was nothing more than a joke on McBride, not an opportunity for the other side to voice its case. The organization that brought him, the Harvard Journal of Law and Technology, is tech savvy and knows exactly what is going on. They invited him, under pretence of balance, in order to let him make himself look silly at a prestigious institution. His speech was worth attending only as an exhibition of practical satire.
Or, to put it more bluntly, McBride doesn't have a "side". He is sheer incoherence, and you only waste your time trying to follow him.
I hope to at least see Eben Moglen and similar speakers invited to more software conferences.
I do too, and I bet it will come to pass. But (from someone who attended the speech) there's something we should realize: Moglen and RMS are championing almost exactly the same principles and agenda. The differences are in how they serve the agenda: Stallman by writing code (in the beginning) and playing the visionary, Moglen by plotting legal strategy and fighting the legal ground war; and in their particular communication styles.
So while I agree that RMS's personality may be getting worn and he is somewhat tainted by politics, it is important that we see Moglen not as a less orthodox RMS, but as a new, and perhaps more effective, conveyor of the same fundamental message. It may help to note Moglen's pointed expressions of respect and admiration for RMS during the speech.
That said, Moglen did put the free software movement in a wider legal and intellectual context better than RMS usually does. Moglen can play the visionary very well if he wishes! Perhaps if we are inspired by Moglen, we can reconsider RMS with renewed appreciation.
N00b! You shoulda read the FM, then you would have known that.:)
Actually, I thank my lucky star that ijsgimpprint has a manual page with examples. Don't ask me how I found that man page--I stumbled on it by sheer perseverence. Of course, it didn't tell me how to find the model identifier for my printer, and at first I was trying to find it in the foomatic database instead of the gimpprint database--but try enough strings and eventually one of them will work!
The "fun" comes when you have to talk to thousands of different printers, all of which use a slightly different dialect of a "standard" printer language, over any of a dozen possible connection types.
But the driver for my printer was already written! And the very nice on-line database at linuxprinting.org told me exactly which driver I needed. It's just that nothing I tried could manage to run the commands needed to use the driver.
So I admire the printer driver authors for doing the hard part; why can't anyone do the easy part well?
I think there's just something about printing that turns the minds of otherwise competent developers into applesauce. Printing on unix has been a quagmire for, what, decades? And yet what is it besides 1) converting a document from a standard format to a printer-specific format, 2) sending the document to the device, and 3) (which is really gravy) getting a bit of status back. As ESR says, it's not rocket science.
My recent experience was trying to print to an inkjet connected to a windows machine. Since it was remote, I decided I didn't need a spooler, so I didn't install cups. Instead, I found foomatic, which is supposed to cut through the many layers of drivers in one slice. Through no efforts (reading several confusing and inconsistent tutorials) could I get foomatic to produce a file in my printer's format. Nor did it give me intelligible error messages. I finally posted to the main list at linuxprinting.org (lp.general); but in the weeks I've been subscribed, I've not seen a single useful reply to anyone's question!
Oh, I finally got the printer working. I just have to run gs -DSAFER -sDEVICE=ijs -sIjsServer=ijsgimpprint -sDeviceManufacturer=EPSON -sDeviceModel='escp2-c82' -sOutputFile=out -DNOPAUSE -- file.ps
, and send the result with smbclient.
Re:now if my cable company would only do that....
on
Qwest To Offer 'Naked DSL'
·
· Score: 3, Informative
I have Comcast cable in the Boston area (Somerville). They used to give a small ($5?) bundling discount if you had cable TV in addition to internet. Now, it's $15 (internet is $43 with TV, $58 without)! And guess how much "basic" TV (just over-the-air channels) is? $14 and change. So I save money by buying TV. I pointed this out to the rep, but she didn't find any wonder in it. The competing cable company (where "competing" here means they both send me flyers every week), RCN, has nearly identical rates.
I'm encouraged that there is a bit of an ad war between DSL (Verizon) and cable. Hopefully that will lead price competition and unbundling one of these days.
There is no real demand for this kind of technology in countries that are already well-cabled with more fibre-optic cable than they can ever use.
Technically, this may be true (ignoring the issue of rural areas). But economically, this could finally break the monopoly of last-mile providers. Think of how great it will be to get a fast connection from a company without an interest in stifling change, cordoning off the free Internet, and keeping prices artificially high. I bet this development is what will finally give us cheap, ubiquitous, and unhindered high-speed Internet access.
I assume you understand how shorting works (if not, go look it up). I can
give you some specifics regarding SCOX, based on my own experience and on
reading fora like the Yahoo SCOX board.
The basic mechanics: Go to your on-line broker and enter an order to sell
SCOX. Oh, and you may have to fill out a form to "margin-enable" your
account. That said, there are several caveats in this case.
You may get a curt message indicating that the trade did not go through. On
Ameritrade, I have seen two messages: "You cannot short sell SCOX today" and
"Your order has been rejected due to a lack of SCOX shares to short sell".
If you get the first, try another day. If you get the second, keep trying,
and perhaps lower the number of shares. I could not find any more detailed
information about these messages. Either Ameritrade is not allowed or does
not wish to reveal more details. Presumably, both have to do with the
number of long shares the broker has available to lend. There is also the
"uptick rule", but I have not seen any indication that this has been
involved. Personally, I tried on-and-off for weeks before my short went
through (to my great surprise!).
I have read some speculation on the difficulty shorting. First, many of the
shares are held by insiders, so they're not available for your broker to
lend. Second, everyone else is trying to short as well. You can find the
"short interest" on stock sites. Third, some have suggested that SCO's
recent investors may be shorting SCOX as a hedge, pushing out small
investors.
If you do get in, keep in mind that this is a risky investment. Don't bet money you can't afford to lose. The value
of SCOX is affected by the unpredictable courts, the media, industry politics, and
manipulators. The latter is done by insiders making trades with
co-conspirators at artificial prices. This is illegal but apparently hard
to prove. Even if SCOX is headed for eventual doom, the stock price could
do some weird things between now and then.
It's also probably best to think of this as a medium-term investment, due to
the leisurely pace of the court system.
The biggest risk in a short is that the price will rise, increasing your
liability. No problem, you say, I'll wait it out. Not so fast, says your
broker, who doesn't want to be left holding the bag. Brokers have a ratio
you must maintain between the value of your account and your short
liability. Estimate how high SCOX could go, and make sure that you won't
exceed the ratio even if it rises that high. If you do exceed the ratio,
you have to cover part or all of your short position.
The risk is exacerbated by a phenomenon called a "short squeeze". If the
price rises, through manipulation or otherwise, some shorts will exceed
their ratio or just get cold feet. They cover (buy), which tends to push the price
higher, flushing out more shorts in a vicious spiral. This is especially likely in a thinly
traded stock with lots of short interest.
Another pitfall is that when you borrow shares to short, your broker is
allowed to ask for them back at any time, possibly at a loss for you.
Ostensibly, this would happen when long clients want to sell their SCOX
shares. You would think that if some clients are selling, others are
buying, so it shouldn't affect you, but sometimes you get unlucky. I don't
know the regulations, but I assume that large, reputable brokers will limit
the number of shares that they lend such that this is statistically
unlikely. Thus, I advise shorting with a large, reputable broker. Someone
posted that this misfortune happened to him, but it sounded like he was
using a small broker.
According to one poster, this risk may be magnified by another kind of short
squeeze. Insiders buy SCOX shares with your broker, you borrow them, then
the insider places a sell order at a completely unrealistic limit price.
The poster claimed that brokers must count limit sell orders against the
shares they can lend, so they will have to call in some
I know they're doing the research, and I know you can use F# with CLI today. And I'm sure they wouldn't be doing the research unless someone there thought it could go mainstream. But they're not promoting it to the average developer, so I don't think it counts. Expecting migration to a new, unfamiliar language (even given CLI) seems unfortunately unrealistic. That's why I was thinking they might slip bits of functional programming--without using that name--into other software.
Monads are also a branch of category theory that are adopted by languages like Haskell (the prime developer of which works for Microsoft Research).
I doubt this is a coincidence. I'd love it if this meant that MS is working functional concepts into its mainstream software. It might even be a reference to the clever article Unix Pipes as IO Monads. Unfortunately, the short review doesn't offer any hint of this, but frankly the reviewer seemed wowed by pretty uninspired features, so maybe he missed the cool parts. Or, the name might just be a throw-away in-joke.
most brokerages aren't allowing that (datek/ameritrade both aren't, perhaps cooler, full service brokerages are).
I shorted with datek/ameritrade on like the tenth try over a few weeks (on 09/25--lucky timing). I had actually given up hope by then, so I was pretty shocked. I only wish I had your money to leverage.:-)
Your analysis of course is perfectly sane. It's a shame people are so irrational about shorting.
This is all well-said, but don't worry about me.:-) I'm not going for glamour, I just see a good expectation value, so I borrowed what I consider a safe number of shares. I may yet lose--SCO could still get bought, for example. Or, momentum investors could chase this thing to 30, 40, (gulp) 50. But if things don't get too insane, and SCO indeed crashes, I have a nice return. If you consider that there is no opportunity cost in long investments (quite the opposite, I can invest the proceeds of the short sale), it seems only logical.
Has anyone considered short selling SCO shares by using options?
Why don't you sell them short by selling short? Makes a lot more sense as far as I can see. Options appear problematic, aside from their evident inavailability, because you need to pick an exercise date by which you're sure SCO will be down. You probably want to estimate conservatively, which sounds like at least a couple years. I don't know if any options last that long.
Scarcity is an issue with shorts, too. I tried many times over a period of weeks before finally succeeding, so don't give up!
How surprising that they choose to use an open-source software application that is designed to compactly represent dependencies for representing dependencies.
Surprising to most people, because they don't understand what make is. There's a well-known paper that tries to explain what make is and how to use it effectively. As it says, "Make is an expert system". Meaning, you give it a bunch of rules, and it tries to get you to your goal. Make would get a whole lot less flack if people understood this.
Not that make is all that great an expert system: it has tons of warts and limitations and misfeatures. But most of the would-be make replacements solve the wrong problem. They ask, "how can I get my software to build with less fuss?" instead of, "how can I design a better expert system?".
The catch (which I hinted at in the original post) is that pipelines may be nested. Say you have
And say you want to avoid wasting resources by having multiple shell processes that are just waiting for other processes (ie, you only want to fork 4 times total, which is what bash would do). Then you need to fork a, b, c, and d from the main shell. Which means you need to open all the pipes in the main shell, and do lots of duping and closing in the forked children before exec. Plus, creating all these pipes in the shell uses lots of fds, so you probably want to consider scheduling things to minimize the number of pipes open at once.This is what I mean by a mini-OS. At least, that's what it felt like when I tried implementing the above. If you have some clever way to simplify things, I'd love to hear.
Funny you should mention this, because I was going to write something about pipes. Getting pipes right with good error semantics is hard. For all the "just use set +e in bash" weenies out there, try running
Where's your error?If you think about the unix process and pipe primitives, you will see the difficulty. To create a pipeline, you normally fork, create the pipe, fork again, and run the two ends of the pipeline in the two sub-processes. This is scalable to deeply nested pipelines, but has a cost: Only one of the sub-processes is a child of the shell, so only one exit status can be monitored. To work around this, you really need to build a mini-OS environment on top of unix.
This demonstrates that unix was fundamentally not designed with concern for error semantics (consider Erlang as a diametric example). And this, I'm sure, is why ftsh doesn't have pipes (yet).
Arg, sorry for the misinformation: The guidestar sign-up is free.
It is probably worth asking the FSF to publish it themselves.
You have no idea what you're talking about. Mathematicians and computer scientists prove negatives and non-existence all the time. For example, it is proven that there exist no non-zero rationals a, b, and c, and integer n > 2, such that a^n + b^n = c^n.
The reason it's not possible in practice to prove anything about computer security is that the languages and protocols we used were not designed with this ability in mind. You can't prove anything useful about unix, C, or HTTP. It's true that it would take a massive overhaul of our computer infrastructure, but it's possible to have systems that you can reason about.
Even then, it's true that you can only prove things in a model, and it's always possible that there will be a real-world attack that isn't reflected in the model. But the situation could be much, much better than it is today. If you use a safe language and design your library carefully, you can probably provably protect yourself from some vulnerabilities.
According to the SCO 10-K to which ESR linked, Anderer signed an agreement between SCO and S2 Strategic Consulting (his company) on August 4, 2003. Assuming the parent poster believes what he wrote, Anderer probably left SCO in June to continue performing the same functions as an independent contractor.
Also, it's not exactly true that functional programming lacks a big-name sponsor. Haskell research and implementation is largely driven by Microsoft Research. This is not the same as promoting (something like) Haskell to working programmers, but it suggests that Microsoft has its eye on doing so someday.
The 2.6 implementation is not as mature, but it has excellent success factors. It was written by an alpha kernel hacker, it's in the mainline, and it's open in the Linux tradition. An influx of former FreeS/WAN users may be just what it needs to work out the kinks. FreeS/WAN has done a great service, and is now doing another by throwing its momentum behind an implementation with better long-term prospects.
BTW, I just listened to the beginning of the McBride audio (I attended Moglen's talk but not McBride's), and the subtext is hilarious. Listen to the introducers carefully disclaim an endorsement of McBride and emphasize the planned rebuttal by Chris Stone. They say he's "learn-ed on the GPL" and compare him to Janet Jackson at the Super Bowl! (McBride even plays along with this jibe.)
The introducers reveal their real purpose: to "frame" the "hard questions" of software law, by offering an extreme viewpoint in caricature.
Or, to put it more bluntly, McBride doesn't have a "side". He is sheer incoherence, and you only waste your time trying to follow him.
I do too, and I bet it will come to pass. But (from someone who attended the speech) there's something we should realize: Moglen and RMS are championing almost exactly the same principles and agenda. The differences are in how they serve the agenda: Stallman by writing code (in the beginning) and playing the visionary, Moglen by plotting legal strategy and fighting the legal ground war; and in their particular communication styles.
So while I agree that RMS's personality may be getting worn and he is somewhat tainted by politics, it is important that we see Moglen not as a less orthodox RMS, but as a new, and perhaps more effective, conveyor of the same fundamental message. It may help to note Moglen's pointed expressions of respect and admiration for RMS during the speech.
That said, Moglen did put the free software movement in a wider legal and intellectual context better than RMS usually does. Moglen can play the visionary very well if he wishes! Perhaps if we are inspired by Moglen, we can reconsider RMS with renewed appreciation.
The lectures were public. You should have come. (At least to Moglen's; I heard some people didn't feel well after McBride's.)
Actually, I thank my lucky star that ijsgimpprint has a manual page with examples. Don't ask me how I found that man page--I stumbled on it by sheer perseverence. Of course, it didn't tell me how to find the model identifier for my printer, and at first I was trying to find it in the foomatic database instead of the gimpprint database--but try enough strings and eventually one of them will work!
But the driver for my printer was already written! And the very nice on-line database at linuxprinting.org told me exactly which driver I needed. It's just that nothing I tried could manage to run the commands needed to use the driver.
So I admire the printer driver authors for doing the hard part; why can't anyone do the easy part well?
My recent experience was trying to print to an inkjet connected to a windows machine. Since it was remote, I decided I didn't need a spooler, so I didn't install cups. Instead, I found foomatic, which is supposed to cut through the many layers of drivers in one slice. Through no efforts (reading several confusing and inconsistent tutorials) could I get foomatic to produce a file in my printer's format. Nor did it give me intelligible error messages. I finally posted to the main list at linuxprinting.org (lp.general); but in the weeks I've been subscribed, I've not seen a single useful reply to anyone's question!
Oh, I finally got the printer working. I just have to run gs -DSAFER -sDEVICE=ijs -sIjsServer=ijsgimpprint -sDeviceManufacturer=EPSON -sDeviceModel='escp2-c82' -sOutputFile=out -DNOPAUSE -- file.ps , and send the result with smbclient.
I'm encouraged that there is a bit of an ad war between DSL (Verizon) and cable. Hopefully that will lead price competition and unbundling one of these days.
Technically, this may be true (ignoring the issue of rural areas). But economically, this could finally break the monopoly of last-mile providers. Think of how great it will be to get a fast connection from a company without an interest in stifling change, cordoning off the free Internet, and keeping prices artificially high. I bet this development is what will finally give us cheap, ubiquitous, and unhindered high-speed Internet access.
The basic mechanics: Go to your on-line broker and enter an order to sell SCOX. Oh, and you may have to fill out a form to "margin-enable" your account. That said, there are several caveats in this case.
You may get a curt message indicating that the trade did not go through. On Ameritrade, I have seen two messages: "You cannot short sell SCOX today" and "Your order has been rejected due to a lack of SCOX shares to short sell". If you get the first, try another day. If you get the second, keep trying, and perhaps lower the number of shares. I could not find any more detailed information about these messages. Either Ameritrade is not allowed or does not wish to reveal more details. Presumably, both have to do with the number of long shares the broker has available to lend. There is also the "uptick rule", but I have not seen any indication that this has been involved. Personally, I tried on-and-off for weeks before my short went through (to my great surprise!).
I have read some speculation on the difficulty shorting. First, many of the shares are held by insiders, so they're not available for your broker to lend. Second, everyone else is trying to short as well. You can find the "short interest" on stock sites. Third, some have suggested that SCO's recent investors may be shorting SCOX as a hedge, pushing out small investors.
If you do get in, keep in mind that this is a risky investment. Don't bet money you can't afford to lose. The value of SCOX is affected by the unpredictable courts, the media, industry politics, and manipulators. The latter is done by insiders making trades with co-conspirators at artificial prices. This is illegal but apparently hard to prove. Even if SCOX is headed for eventual doom, the stock price could do some weird things between now and then.
It's also probably best to think of this as a medium-term investment, due to the leisurely pace of the court system.
The biggest risk in a short is that the price will rise, increasing your liability. No problem, you say, I'll wait it out. Not so fast, says your broker, who doesn't want to be left holding the bag. Brokers have a ratio you must maintain between the value of your account and your short liability. Estimate how high SCOX could go, and make sure that you won't exceed the ratio even if it rises that high. If you do exceed the ratio, you have to cover part or all of your short position.
The risk is exacerbated by a phenomenon called a "short squeeze". If the price rises, through manipulation or otherwise, some shorts will exceed their ratio or just get cold feet. They cover (buy), which tends to push the price higher, flushing out more shorts in a vicious spiral. This is especially likely in a thinly traded stock with lots of short interest.
Another pitfall is that when you borrow shares to short, your broker is allowed to ask for them back at any time, possibly at a loss for you. Ostensibly, this would happen when long clients want to sell their SCOX shares. You would think that if some clients are selling, others are buying, so it shouldn't affect you, but sometimes you get unlucky. I don't know the regulations, but I assume that large, reputable brokers will limit the number of shares that they lend such that this is statistically unlikely. Thus, I advise shorting with a large, reputable broker. Someone posted that this misfortune happened to him, but it sounded like he was using a small broker.
According to one poster, this risk may be magnified by another kind of short squeeze. Insiders buy SCOX shares with your broker, you borrow them, then the insider places a sell order at a completely unrealistic limit price. The poster claimed that brokers must count limit sell orders against the shares they can lend, so they will have to call in some
I know they're doing the research, and I know you can use F# with CLI today. And I'm sure they wouldn't be doing the research unless someone there thought it could go mainstream. But they're not promoting it to the average developer, so I don't think it counts. Expecting migration to a new, unfamiliar language (even given CLI) seems unfortunately unrealistic. That's why I was thinking they might slip bits of functional programming--without using that name--into other software.
I doubt this is a coincidence. I'd love it if this meant that MS is working functional concepts into its mainstream software. It might even be a reference to the clever article Unix Pipes as IO Monads. Unfortunately, the short review doesn't offer any hint of this, but frankly the reviewer seemed wowed by pretty uninspired features, so maybe he missed the cool parts. Or, the name might just be a throw-away in-joke.
I shorted with datek/ameritrade on like the tenth try over a few weeks (on 09/25--lucky timing). I had actually given up hope by then, so I was pretty shocked. I only wish I had your money to leverage. :-)
Your analysis of course is perfectly sane. It's a shame people are so irrational about shorting.
This is all well-said, but don't worry about me. :-) I'm not going for glamour, I just see a good expectation value, so I borrowed what I consider a safe number of shares. I may yet lose--SCO could still get bought, for example. Or, momentum investors could chase this thing to 30, 40, (gulp) 50. But if things don't get too insane, and SCO indeed crashes, I have a nice return. If you consider that there is no opportunity cost in long investments (quite the opposite, I can invest the proceeds of the short sale), it seems only logical.
Why don't you sell them short by selling short? Makes a lot more sense as far as I can see. Options appear problematic, aside from their evident inavailability, because you need to pick an exercise date by which you're sure SCO will be down. You probably want to estimate conservatively, which sounds like at least a couple years. I don't know if any options last that long.
Scarcity is an issue with shorts, too. I tried many times over a period of weeks before finally succeeding, so don't give up!
Surprising to most people, because they don't understand what make is. There's a well-known paper that tries to explain what make is and how to use it effectively. As it says, "Make is an expert system". Meaning, you give it a bunch of rules, and it tries to get you to your goal. Make would get a whole lot less flack if people understood this.
Not that make is all that great an expert system: it has tons of warts and limitations and misfeatures. But most of the would-be make replacements solve the wrong problem. They ask, "how can I get my software to build with less fuss?" instead of, "how can I design a better expert system?".