Canned Platypus

Making the world better, one byte at a time.

Archive for the ‘society’ Category

The first rule of self-help scam artists is to tell people what they want to hear, without being too obvious about it. Tell them that there’s an easy way for them to get whatever they want, or that everything bad is somebody else’s fault, but wrap it up in convincing language that makes it seem somehow logical. One example of this that has really been driving me nuts lately is Seth Godin’s “linchpin” idea. Apparently the idea is that everyone should aspire to be a post-industrial “artist” instead of just a cog in a machine, everyone has the potential to do “emotional work” at a “high level” and thus become indispensable, etc. It’s a very positive message, but I’m just not buying it.

First, while I believe it’s not possible to predict who will rise to the challenge of becoming a linchpin, and thus that we should give everyone the chance, that doesn’t mean absolutely everyone can. Many people really are cogs in the corporate machine, are not particularly capable of being anything else, and are even happy that way – saving their creative energy for other pursuits such as family, hobbies, sports, and so on. Ninety percent of the people who proudly portray themselves as linchpins quite notably do not meet the criteria, and I’d even say that they’re less likely than average to be true linchpins because the significant time they spend on self-affirmation and self-promotion is time not spent actually doing anything that would make them real linchpins. My second objection to Godin’s idea is that just because some people can be linchpins doesn’t mean all can. It’s like every child being above average. Show me an organization where every single contributor is indispensable, and I’ll show you an organization that is guaranteed to fail as the normal course of events makes any one of them unavailable. Like it or not, only a few people in any group can be linchpins and if you want to be one then you’ll be in competition with others to find that niche.

We really need to get over the idea that every worker should be a unique and pretty snowflake to deserve a place in a high-functioning organization. Somebody has to do the things that anybody can do, and as long as that’s the case there’s a need for discipline as well as self-expression. If everybody thinks they’re leading, nobody really is. Most people are unique and special in some way, but usually not in a way that any employer/client can or should care about. Ordinary people, or people who are special in non-work-related ways, can still play a valuable and even essential role in even the most creative and innovative environments. Uniqueness is not a requirement. A beautiful snowstorm would still be beautiful even if every single snowflake looked exactly alike. Real self-help would mean teaching people how to find and function in and enjoy being in a creative environment, not just telling them that they can be among its leaders. For many of them, it’s simply not true.

Apr
15
Yeah, right

This is (just barely) too long to fit in a tweet. Tim O’Reilly says:

The biotorrent project demonstrates that piracy is not the point (or best use) of bitTorrrent.

If I take a sword and use it as a can opener, then killing people is not the point of a sword? That’s utterly absurd. One unique use of a thing, never imagined by the thing’s inventor, does not outweigh the multitude of other uses. Either the inventor’s intent or the common usage might determine the point of a thing, but a single unique use sheds no light on either and thus proves nothing.

Today I got drawn into a discussion on Sutter’s Mill about standards. The topic at hand was the ISO C++ standard and whether it qualifies as open, but it gave me a chance to read and think a bit more about other issues as well. Let’s start with a little background on how ISO works. Here are some of the more significant details.

ISO standards are developed by technical committees, (subcommittees or project committees) comprising experts from the industrial, technical and business sectors which have asked for the standards, and which subsequently put them to use. These experts may be joined by representatives of government agencies, testing laboratories, consumer associations, non-governmental organizations and academic circles.

Proposals to establish new technical committees are submitted to all ISO national member bodies

Experts participate as national delegations, chosen by the ISO national member body for the country concerned

In other words, there is no true individual involvement in the ISO standards process. A standard is initiated by a national standards body – such as ANSI in the US – which also decides who can be a delegate. Oh yeah, and they pay for it too. According to ISO in figures, member bodies pay 140 million Swiss francs per year to run the committees that do the hands-on work of developing standards, vs. 35M CHF for the Central Secretariat itself. 55% of that 35M – not of the entire 175M – also comes from the member organizations. The other 45%, or a mere 9% of the total, comes from publications and other services. This is why I said, in Herb’s thread, that the claim of ISO needing to charge $30 for a copy of the C++ standard is utter crap. They don’t need that fee to support their operations any more than IETF – which publishes their standards completely for free – does. They charge that fee for completely other reasons. This brings us back to the process.

ISO refers to theirs as an open process, and ANSI follows suit, but in fact it’s a very political process. You can’t walk in as an individual, even the most knowledgeable invididual in the world regarding a particular subject, and participate. You have to know or work for someone, who knows someone, and so on. Corporations feed people and proposals to industry or trade associations, which feed them into the national standards bodies, which feed them into ISO. There’s also politics at a higher level, as proposed ISO standards are often national standards somewhere already. Sometimes there are multiple competing national standards involved. Sometimes there are multiple technical bodies within ISO, or other bodies outside ISO (such ITU) wrangling over who controls a standard. In short, it’s a mess. In many cases, users’ needs would be just as well satisfied by allowing standards to remain within their originating national body (as with ANSI C) or industry/trade association (as with Java). Often the only people driving demand for an ISO standard are the very people who get paid to develop the ISO standard, or who hope to profit from it. What a racket.

This brings us back to the question of whether ISO standards are open. Participation is political, because of the strategic value standards have to the various parties at all levels, and thus in effect limited even though it’s nominally open. The output is only available for a fee that is totally unjustified by the cost structure that’s involved, and then subject to copyright. “Open” is the wrong word for that. On the other hand, the fact that the standards are published at all is an improvement over proprietary “de facto standards” and the freedom from licensing fees is an improvement over that. “Available” and “unencumbered” cover those properties, but “open” to me still means something more like the IETF model. A standard is only open if participation does not require sponsorship, and if its text is available for only nominal cost.

A short break from the purely technical stuff…

The voters of Massachusetts sent a message yesterday. That message was, “Waaaahhhh!” The people who created the United States Senate as a place where statesmen could soberly reflect on issues of lasting importance, somewhat insulated from the fleeting passions whipped up by demagogues, are all turning over in their graves.

After I suggested that I might use AGPL for my Cassandra filesystem, somebody asked why I would choose that particular license. I answered briefly in a comment, but I think the subject deserves a fuller explanation.

First, I’ll try to explain what AGPL means from my perspective. The basic intent of GPL generally is to ensure a healthy “commons” of software anyone can use free of charge. It does this by requiring that people who use distribute software based on GPL code make that code, including their own modifications, available to others. Unfortunately, the way GPLv2 was worded, this did not cover the case of the GPL software being used to provide a service. The code itself never gets onto users’ machines (this makes me wonder in the case of Java bytecodes and such) and thus the requirement to publish never gets triggered. Many companies have taken advantage of this loophole, but I feel it violates the spirit of the license under which they received the code. Even though I have historically considered GPL-style licenses to be anti-profit and have preferred BSD-style alternatives, I appreciate the efforts Affero made to preserve the intent of GPL more than GPL (v2) itself was doing.

My preference for BSD-style license was also predicated on a belief that most people would try to do the right thing even if they weren’t required to. Unfortunately, that belief has been weakened over time. The final nail in the coffin was a recent case when someone I follow on Twitter claimed that a particular piece of software had the “worst possible licensing” which precluded using it. He said that AGPL would force him to publish all of his own code – a lie explicitly contradicted by the AGPL text itself – and that dual licensing was a “bait and switch” tactic. I wonder if he yells at the free-sample folks in the grocery store too. What’s sadder still was the limited reaction he got. One author of the software in question correctly referred to his attitude as “captruism” – capitalism for what I want to sell, altruism for what I want to use. Kudos to him. Others who should know better – people who have historically taken a more aggressive stance than I have on software freedom, and who have pressured me to release my code before it’s even usable – not only remained silent but continue to aid this individual in his effort to promote himself and profit from the work of others. You know who you are. Shame on you. Saddest of all, this is not an isolated case. This combination of “aggressive freeloading” by some, aided and abetted by others’ apathy or bought silence, is quite common.

Here’s the thing: I actively want to prevent such people from using my work, even if that means I forego some chance to profit along with them. Consider it an example of the Ultimatum Game; even ignoring other considerations, I might use AGPL as a deliberate goad to those who have expressed antipathy toward it. To answer the facile but inevitable counterattack, this is not because I despise wealth creation but because I value it. Monetizing others’ code is not stealing – I’m not that kind of extremist – but it’s not wealth creation either. It’s conversion of raw resources into refined ones, and an abundant pool of freely available software representing all kinds of innovation is an essential resource for software-related wealth creation. If those who profit from it fail to replenish the resource pool, that’s in the same category as overfishing or strip mining and I don’t condone that sort of thing. There is nothing in AGPL to preclude somebody else taking my code, combining or aggregating it with their own innovative code licensed however they want, and profiting from the result. More power to them, but if they modify my code then yes, I darn well want those changes contributed to the commons even if they’re hidden behind an online service. Don’t strip-mine other people’s property.

First, a lot of people have probably heard that Microsoft lost an appeal in a $290M case against Canadian firm i4i.

A federal appeals court on Tuesday affirmed a $290 million patent infringement judgment against Microsoft Corp. (MSFT) and reinstated an injunction that bars the company from selling current versions of its flagship Word software.

The U.S. Court of Appeals for the Federal Circuit said the injunction will go into effect Jan. 11.

After the jury verdict, U.S. District Court Judge Leonard Davis issued a permanent injunction that barred Microsoft from selling Word 2003 and Word 2007, which use a technology called “Custom XML” that is used to classify documents for retrieval by computers. Davis also ordered Microsoft to pay more than $290 million in penalties.

Barred from selling one of their flagship products? Wow. I managed to glean some idea about custom XML is, but I still can’t quite figure out what it does in the sense of providing any kind of useful or significant functionality to end users. It seems like one of those things that gets argued about in standards meetings, mostly by people who are more confident of their ability to keep up with developments in such intellectually inbred communities than in the wider world of real-life computing, and nobody cares until it hits the patent system. An interesting sidelight is that the original judgement seems due in part the result of a conflict between one of Microsoft’s lawyers and the East Texas judge. That’s a fight where it’s really hard to root for either side, but the practical consequence is that it might give Microsoft grounds for further appeal. By the way, how does a company from Toronto get to sue one from Redmond in a Texas court? That’s not only the wrong state but the wrong country.

So the news about Microsoft and i4i might be a mixed bag, but the other piece of news is quite a bit better. The US Board of Patent Appeals and Interferences (the what?) issued a ruling about the patentability of machines using mathematical algorithms. The ruling is from August, but it just became “precedential” this past Monday. I have no idea what that means, except maybe that those who find XML standards too accessible should consider a career in patent law. Anyway, here’s the good part.

The BPAI’s test for a claimed machine (or article of manufacture) involving a mathematical algorithm asks two questions. If the a claim fails either part of the two-prong inquiry, then the claim is unpatentable as not directed to patent eligible subject matter.

(1) Is the claim limited to a tangible practical application, in which the mathematical algorithm is applied, that results in a real-world use (e.g., “not a mere field-of-use label having no significance”)?

(2) Is the claim limited so as to not encompass substantially all practical applications of the mathematical algorithm either “in all fields” of use of the algorithm or even in “only one field”

In a nutshell, this reaffirms the principle that only the application of an algorithm – not the algorithm itself – can be patentable. This has supposedly been true all along, but many patents on applications have effectively become patents on algorithms because the applications have been defined so vaguely or broadly that no other application can escape claims of infringement. This ruling says that failure to limit the scope of such a patent properly might not only cause a specific infringement case to be dismissed but might also cause the patent in its entirety to be invalidated. This could fundamentally change the way people pursue such patents. Until now the incentive has been to make claims as broad and vague as possible, because there was no risk in doing so. Now, though, there’s a risk that over-reaching might destroy the patent’s value entirely, so there’s an incentive to be more specific. Only time will tell whether it actually works out that way, but it’s a good sign.

Now I’m kind of curious about which of my own (five) patents would survive this test. I doubt that they’ll ever be tested, and I won’t provoke my former employers’ legal departments by speculating, but it’s an interesting question.

By Doghouse Riley, in a comment on a post by Roy Edroso.

take it up with the … Committee. I don’t remember them clearing Milton’s Friedman’s award with me first.

I also think that the award was more about Bush than about Obama. I have said publicly that I believe it was petty, and insulting to other candidates, and I stand by those beliefs. Nonetheless, I believe the people on the right who are going all apoplectic about this, using it as another excuse to drag out the tired old “worst president ever” aping of a true observation about their own Chosen One from 2000-2008, are just being boors. They would have said the same thing if the award had been deserved, and we all know that.

Cargo cults are an extreme form of the belief that replicating someone’s behavior will lead to replicating their results. In moderation, this belief seems quite reasonable. After all, imitating the actions of those who do something better than we do is a key part of how we learn. It’s often more efficient or less painful than trial and error. The name, though, comes from technologically unsophisticated Pacific islanders observing US troops in World War 2. The islanders got the idea that by imitating the troops’ behavior they would reap the same rewards in the form of “cargo” – air-dropped supplies which were highly valuable to them. The problem, of course, is that the islanders lacked knowledge not only of the technology that was involved but also of the military context behind much of the behavior they were observing. Thus, and constrained also by their own resources, they ended up imitating only the most superficial aspects of that behavior, with often comical and occasionally tragic results.

Cargo cultism isn’t limited to “primitive” people, though. In fact, it’s very common among programmers. Many people think that if they use the same operating system or programming language or text editor as Joe Rockstar, then they will achieve rock-star results themselves. If I do this thing that I don’t really understand, my code will be as secure as Joe’s. If I repeat that mantra in my code, it will be as scalable as Joe’s. There’s a heated discussion on the cloud-computing list at Google Groups, about “NoSQL” (more correctly “non-transactional”) data stores vs. traditional ACID-compliant RDBMSes, and the term “cargo cult” has been applied to both sides – correctly, I think. Many NoSQL advocates do indeed seem like cargo cultists. Their code will never see a scale where a free, well understood and well supported traditional database wouldn’t suffice, but they think that imitating the approaches of the highest-scale sites will bring them great success . . . somehow. There are legitimate problems with this magical belief. Unfortunately, the most strident dissent often comes from the cargo cultists of Web 1.0 and earlier, who subscribe to an equally magical belief that putting all of your data into a transactional RDBMS will solve all of your problems. It’s a battle for supremacy between two cargo cults, not a repudiation of cargo cultism itself. This pattern is actually quite common, unfortunately, usually because the participants on both sides have failed to ask two crucial questions:

  • Were the people I’m imitating actually successful in some relevant way? If somebody’s claim to fame rests on being at six dot-coms (plus a blog and hyper-active participation on mailing lists) then I’d suggest not imitating them. Even if they succeeded in selling a dot-com for big money, that might only indicate business – not technical – ability. Don’t copy code that sank into oblivion after its authors became millionaires; it probably sank for a reason.
  • Is the behavior I’m imitating essential to success, or merely incidental? Distinguishing the essential from the superficial requires drawing the lines from particular behaviors to particular results, which in turn requires understanding the technical context. Imitation can provide shortcuts in implementation, not in understanding; you still need to do the hard work of understanding the technology involved.

It’s easy to fall into the trap of imitating the unsuccessful all too well or imitating the successful quite poorly. Even smart people often end up waiting their whole lives for that cargo to arrive. Distinguishing success from notoriety and substance from style is often harder than mastering the specific skills needed to solve a problem. However, those who learn to ask these questions and imitate only the essential behaviors of the truly successful stand a good chance of succeeding themselves.

One of the phrases I’m really tired of hearing is “a public option to compete with private ensurers” – with “…to compete…” thrown in thoughtlessly even by public-option supporters. No, the purpose of the public option is not to compete with anyone. It’s to provide coverage for those the insurers demonstrably do not want as customers anyway. The only danger of a public option will not be reduced competition. Rather, the danger is that it might actually encourage the cartels to act even more abusively, free from the worry that horror stories about people who were refused coverage and then died will drive further reform.

That said, I like the idea of exchanges as a primary way of reducing costs and expanding coverage. I’ve heard from multiple sources that small companies routinely pay three times as much per person as larger ones for the exact same coverage, and individuals pay even more. By allowing small companies and individuals to pool risk the way larger companies do, and also to capture the same economies of scale, one source of gross inefficiency is driven out of the system with little adverse effect on anyone except insurers who are levying a “monopoly premium” on smaller companies who have little recourse. That should address the concerns of those who think that they’ll have to fire someone so they can afford to do the right thing for the rest, though I’m sure they’ll still find some way to be dissatisfied with anything Obama proposes. Speaking of Obama, I particularly liked this part of his speech.

There may still be companies that refuse to do right by their workers by giving them coverage.

The problem is, such irresponsible behavior costs all the rest of us money. If there are affordable options and people still don’t sign up for health insurance, it means we pay for these people’s expensive emergency room visits.

If some businesses don’t provide workers health care, it forces the rest of us to pick up the tab when their workers get sick, and gives those businesses an unfair advantage over their competitors.

And unless everybody does their part, many of the insurance reforms we seek, especially requiring insurance companies to cover pre-existing conditions, just can’t be achieved.

The emergency-room and unfair-advantage points are similar to what I’ve said before. Failing to provide insurance doesn’t make health-care costs go away. In fact, it increases them when problems which are easily and inexpensively treated if caught early go untreated then, becoming much more expensive to treat later. It just shifts cost onto other premium-payers if treatment occurs after the person gets insurance elsewhere, or – even more money, more often – onto the tax-payer if they end up “indigent” in the ER. The indirect economic effects of people being forced into bankruptcy because of medical expenses, preventing other creditors from getting paid, shouldn’t be ignored either. It’s tempting to say that those who decide not to provide insurance should be held liable – both as corporations and as individuals – for employees’ unpaid medical costs, but that still wouldn’t be sufficient as long as they can take the bankruptcy route themselves. Maybe we should reserve debtors’ prisons for them, and see how many believe in their oft-avowed principles strongly enough to bet their own futures instead of somebody else’s.

Aug
12
Not Dead Yet

Saying “X is dead” is the new way to put on jaded-veteran airs so you can look down at all those people who don’t know it’s dead yet. Information technology is dead. Operating systems are dead. Feh. Let’s take a look at the “IT is dead” claim, as recently made by Thomas M. Siebel in the NYT, first.

In Mr. Siebel’s view, I.T. is a mature industry that will grow no faster than the larger economy. He contends that its glory days are past — long past, having ended in 2000.

I have no doubt that IT as Siebel knows it is starting to decline, but that only reflects how much IT has continued to evolve while he has apparently stood still. Siebel is a typewriter manufacturer. Back in the day, typing was something that typists and secretaries did. When computers came along, everyone started typing. I’m sure a typewriter of that time might have looked at the declining number of typists and thought “typing is dead” but that would have been a mistake. Don’t confuse the decline of a market with the decline of an underlying technology or activity. In fact, more people are typing now than ever. There’s even a lot of money to be made selling keyboards, though they’re computer keyboards instead of typewriters.

So it is with IT. People are still doing IT, but more people are doing it in more places. You no longer need dedicated equipment or personnel to handle even the simplest computing tasks. Users themselves are installing software, updating web pages, etc. Then there’s that person in every office who does slightly less routine kinds of IT tasks like troubleshooting network problems. Routers and even low-end storage are now sold as office supplies, not as specialized computing equipment. Your DVD player has processors running software, but I’ll bet it doesn’t show up on “IT equipment” sales. My iPod Touch has more computing power than things that used to be called supercomputers, but it’s not “IT equipment” either. A lot of this spending doesn’t show up as IT spending, so people like Siebel don’t figure it into their calculations, but that’s just because they’re counting the wrong thing.

There’s a similar dynamic at work with the “operating systems are dead” meme, which has actually been going around for a while. I’m going to pick an example from Paul Maritz, as quoted by Storagezilla.

Paul Maritz pointed out that today no one really writes to an OS anymore, they write to 3rd generation Frameworks. And he’s right, if we look around we see lots of 3rd generation Frameworks and some of them are more cross platform than others. We all know about Java and .Net but Cocoa for MacOS X (Found on your Mac and your iPhone) Adobe Air, Microsoft Silverlight and so on are all examples of Third Generation Frameworks.

Yes, there are a lot of people working on such frameworks, and even more using them. That’s nothing like “nobody writes to an OS any more” though. Who wants to run any of the following on Air or Silverlight?

  • Development tools, starting with compilers and interpreters.
  • Databases.
  • Web servers (on which many frameworks themselves depend).
  • Email servers.
  • LDAP servers, VPN gateways, etc.
  • Anything in HPC.

The answer is nobody. I don’t think the people behind gcc or Oracle or Exchange are planning to run on top of any such “third generation” frameworks (and BTW I wonder how the third generation is different). They plan to support such frameworks, but that’s different. Operating systems provide a general and stable interface, suitable for many kinds of applications beyond those for which any given framework is likely to be appropriate, and with full performance for when that matters

What might be true is that, the division between “back end” platform (i.e. OS) specialists and “front end” interface or domain-specific specialists will change. Instead of every application-development group being about evenly split between the two, there might be some people developing a few (or a few dozen) frameworks and a much larger number using those frameworks. Same as it ever was. Having been an OS developer for so long, I’m well aware that my kind have long been outnumbered by people working at a much higher level of abstraction who barely understand what I do. Maybe framework developers feel the same way, or soon will. That doesn’t mean OSes are dead, though. People still need device drivers and filesystems and network stacks and schedulers and virtual memory and all that other stuff. OS development will continue, and OSes will continue to compete to capture developers’ hearts and minds. A significant number of people will be watching, and using the results directly to improve old frameworks or create new ones. In fact, the prevalence of framework-oriented workloads is causing a near-term increase in the amount of work that OS folks must do to accommodate those workloads. That doesn’t seem very dead to me.

IT is not dead. OSes are not dead. They’ve evolving. Those who get left behind might find themselves alone and think the party’s over, but in reality they just missed it.