Eric S. Raymond's Blog, page 49
October 28, 2013
Your money or your spec
reposurgeon has been stable for several months now, since the Subversion dump analyzer got to the point where people stopped appearing in my mailbox with the Pathological Subversion Repository Fuckup Of The Week.
Still, every once in a longer while somebody will materialize telling me they have some situation in a repo conversion that they want me to help them fix. The general form of these requests is like this. “I have {detailed description of a branch/merge topology nightmare that makes Eric’s brain hurt to contemplate}. What do I do to fix it?”
I am now going to announce a policy about this. There are exactly two ways ways you can get me to solve your repository problem.
1. Pay me money to soothe away the pain. It will not be a small amount of money; my hours don’t come cheap and these jobs tend to eat a lot of them – not on the surgery itself but on the analysis leading up to it.
2. Specify a new surgical primitive that will fix your problem. To go this route, you need to (a) clearly describe the primitive, (b) send me a small test repository exhibiting its preconditions, and (c) explain what the postcondition is – that is, what you want the repository DAG to look like after the operation.
If your primitive is well-specified, and you’re willing to wait until I get it done at my own pace, I’ll write it for free. If you want a deadline date, you have to buy my time to guarantee that.
If your primitive is not well specified, and/or you can’t produce a test case, I’ll probably tell you to come back when you can fulfil both conditions. You can buy partial exemption from these conditions by paying me lots of money.
That is all.
October 19, 2013
Stratum 1 time server on a tiny SBC?
I’ve been working on GPSD a lot recently – we’re heading towards a 3.10 release with a lot of new features. As part of this release I’ve decided to ship a HOWTO on setting up a high-quality NTP time server using GPSD. In the course of working on that, I’ve had an idea.
The idea has two antecedents. One is that if you start with any one of several inexpensive GPS modules (my favorite of which is the u-blox 6), and add GPSD to read it and feed an ntpd instance, it’s possible to build an NTP server that meets the usual standard for public Stratum 1 time servers – 10mSec or better accuracy to UTC.
The other is that there is a raft of inexpensive SBCs that run Linux out there – Arduino, Raspberry Pi and the current new hotness BeagleBone. So here’s my thought: why not build a low-power Stratum 1 timeserver on a credit-card-sized SBC?
A little googling tells me that someone has already mated a GPS to a BeagleBone Black. His design uses a u-blox, but has one serious drawback – he doesn’t wire up 1PPS from the receiver. This is a must if you want sub-second precision on your time service.
Now, to be fair, the D2523T he’s using might not bring 1PPS out from the u-blox5 to the module header. On the other hand, I looked up the D2523T’s data sheet on Sparkfun and their pinout for it has a lead labeled “GPS LED”.
Bingo! Boys and girls, the LED on your GPS is driven by 1PPS – the once-per-second flash it emits is top of GPS second accurate to 50 nanoseconds. It seems likely that we could take the right small variant of this design, add ntpd to it, do a little configuration, and stand back! Instant Stratum 1 in a smaller package than your smartphone, powered off its USB cable.
Well, that is, if the RS232 headers on the BeagleBone include any handshake line. Carrier Detect, Ring Indicator, even Clear To Send – any of these would be good enough. 1PPS has to travel over something that isn’t TX.
It would be a fun project. I wish I had time to do it.
October 6, 2013
Sometimes I hear voices
I had a very curious experience recently. I discovered that I know what it’s like to be insane. No, save the obvious jokes; this is interesting.
This came about because I read a magazine article somewhere which I cannot now identify – recent, online, a relatively prestigious publication with a tradition of think pieces – about patterns in delusional schizophrenia. [UPDATE: the article was How reality caught up with paranoid delsuions.] The thesis of the article was simple: though the content of schizophrenic delusions changes wildly in different cultural contexts, there’s an underlying motivation for them that never varies and produces a fundamental sameness.
The simple, constant thing is that delusional schizophrenics lose the capability to identify all the thoughts in their head as belonging to themselves. In an effort to make sense of their experience, they invent elaborate theories which attribute their disconnected thoughts to external agencies. Gods, demons, orbital mind-control lasers – the content of such delusions varies wildly, but the function is always the same – to restore a sense of causal order to the schizophrenic’s universe, to impose a narrative on the eruptions that he or she can no longer recognize as “self”.
It’s a startling shift in perspective to realize that the construction of schizophrenic delusions arises from the same drive that yields scientific theory-building. Both are Heideggerian rearrangements of the cognitive toolkit, strategies driven by the necessity of coping with the experienced world. The schizophrenic’s tragedy is that the most important fact about his or her experiential world (how much of it is self looking at self) is inaccessible.
A few weeks later this theory conjugated with some memories and I suddenly realized that I know what this is like I’ve experienced it. Occasionally, in deep hypnagogic states, I hear voices.
For those of you in the cheap seats, a hypnagogic state is a kind of consciousness you sometimes pass through between waking and sleep. In general people aren’t very good at remembering what this experience is like – recall, like that of dreams, tends to fade quickly unless you make an effort immediately on full wakefulness to copy the impression out of whatever working storage it’s using into long-term memory. Through long practice I know how to do this – it’s a core part of the “experimental mystic” toolkit.
I looked it up. Turns out auditory hallucinations are not a particularly uncommon report from hypnagogia. Mine are, however, unusually coherent; where most people mostly get babble full of neologisms, I get snarky commentary on things I’ve been thinking about that’s not just whole sentences but whole paragraphs.
What unites my experience with the delusional schizophrenic’s is that while I’m in the hypnagogic state I have trouble retaining the fact that the voices aren’t outside my head. The “self” tag on those voices has been at least partially lost and is difficult to recover.
To be delusionally insane, I now grok, would be to be like that all the time. I reintegrate my sense of self without effort after waking; the fragmented mind of the schizophrenic can’t do that and is driven to add ever more elaborate epicycles to his or her theory of the world to paper over the lack.
This isn’t the most important thing I’ve learned this year (that’d be some of the ideas in Nassim Taleb’s book Anti-Fragile, so far), but it may be the most interesting.
September 27, 2013
coverity-submit 1.12 released
OK, this is embarrassing. I got a Mercurial command wrong in 1.11 – thanks to A&D regular Jay Maynard for pointing out the error. But I landed another minor feature. So there.
September 26, 2013
coverity-submit 1.11 is released
Yes, I know I shipped a point release of this yesterday. Then some new features landed as a direct result of that release. Mainly, smart defaults for user name and ID, and repo support for hg/bzr/svn. Also (cosmetic addition) the project now has a logo.
Code here.
September 25, 2013
coverity-submit 1.10 is released
coverity-submit automates the process of running the Coverity static checker’s front-end tools and shipping the results to their public server for analysis.
One bug fix, two minor features. The build-version (-b) and description (-t) options now have sensible defaults. When run from a repository, the default for -b is the commit ID of the head revision. The default for -t is an ISO8601 release timestamp.
Actually, the build-version default presently only works in a git repo. I’ll cheerfully take patches that support other version-control systems.
Code here.
September 24, 2013
Can micropatronage save the net?
How can we fund common Internet infrastructure without risking that it will be captured by corporations or governments? He who pays the piper tends to call the tune, which is a bad thing when you don’t actually want the content of your network to be controlled.
This is a problem I’ve been worrying about a lot for the last couple of years. I’ve been working on one organized attack on it that I’m not ready to talk about in public yet (but will be soon; some of this blog’s regulars are already briefed in). I’ve just found something else that might help which I can talk about: micropatronage.
There’s a site called gittip.com that provides a way for people to give small recurring gifts, weekly, to a person or project team. Donors give it payment system information; weekly gifts are then automatically shipped unless donors elect to stop. It’s meant to handle small amounts, with an upper limit of $100 per patron/client pair per week.
Gittip has the interesting property that, as a patronage receiver, you don’t know who your patrons are – all you know is the total amount you’re being gifted. So people can fund you, but they can’t attach any strings. There’s still a kind of market check; if you’re not doing work that your donor base as a whole finds interesting, your patronage volume will drop.
As a mechanism for funding commons development that is insulated from political and commercial pressure this seems very promising. Of course it has other uses, too; creators of all kinds might be able to use it to turn reputation into a steady cash flow.
That is, if there are enough patrons. Chad Whitacre and his team are betting that a lot of people will actually prefer making small recurring donations to single lump-sum gifts. So far there is one piece of objective evidence that suggests they’re right: gittip development is itself funded through gittip.
Watch this space. Soon, the gittip team and I will try an interesting social experiment…
September 3, 2013
The Smartphone Wars: Nokia gives it up for Microsoft
It’s been quite a while since I wrote a Smartphone Wars post; I let the series lapse when I concluded that the source I was using for U.S. market share figures had likely disconnected from reality (and more recent surveys from other sources suggest I was right). But the developments of the last couple of days demand comment. Nokia has sold its phone business to Microsoft; Stephen Elop has returned to Microsoft to head its devices group; and there is talk he might succeed Ballmer.
You couldn’t make this stuff up for a satirical novel and have it believed. The conspiracy theorists who maintained that Elop was a Microsoft mole sent in to set up a takeover look prescient now – but a takeover to what purpose? Nokia’s phone business, the world’s most successful and respected a few short years ago, is now a shattered wreck.
And as for Elop: he masterminded what was probably the biggest destruction in shareholder value ever – and this is the guy who’s being talked of as Ballmer’s successor? Astonishing. On his record, the man isn’t competent to run a Taco Bell store; that that he’s even in consideration suggests Microsoft’s board has developed some perverse desire to replace a strategic idiot with an even more wrongheaded strategic idiot.
While all this is going on, IDC now has Android up to 79.3% worldwide market share and still rising; iOS is down to 13.2% and falling; and the rest of the ecosystems are scrambling for 8% of scraps. Microsoft, at 3.7%, is just barely leading the bush leagues in the presence of Blackberry and Symbian’s continuing collapse.
There have been a rash of stories lately about how good Microsoft’s sales-growth figures look year over year, but I rather suspect the company is up to its old channel-stuffing tricks. Actual consumers don’t report any interest in Windows phones (I’m not seeing them on the street) and the company’s Surface tablet line has been a dismal flop.
The new deal means Nokia is done, finished, gone. It will retain only its digital-mapping and network-equipment businesses and a handful of lottery tickets in the form of patent lawsuits; the smartphones and dumbphones go to Microsoft, where as head of the devices group Elop will (incredibly) continue to manage them even if he doesn’t succeed Ballmer.
One thing the change means is that we can expect the dumbphone side of the business (the part that, you know, made all the actual money back when Nokia made money) to be resource-starved and wound down even more rapidly than this was happening at Nokia. Because there is no place in Microsoft’s strategy for a business that doesn’t feed consumers to its Windows/Office cash cow, and there’s no effective way dumbphones can do that.
But I don’t really see how acquiring Nokia’s smartphone business gives Microsoft any advantage it didn’t already have under its previous sweetheart deal with the company. Well, unless Ballmer somehow thinks 0.5% market share is worth paying $2.2 billion for, which would be exceptionally stupid even by his chair-throwing, monkey-grunting standards.
If Elop was a mole, what were his instructions? “Elop. Go forth. Destroy Nokia so we can buy things we already effectively control for huge amounts of money.” Sense this makes not.
I’m put in mind of the wave of mergers in the 1980s among mainframe computer manufacturers, what we called at the time “dinosaurs mating”. Those didn’t make any sense either; when you merge two huge, doomed, inefficient thunder-lizards together you don’t tend to get a mammal.
Meanwhile – and of course – Android continues to stomp its competition flat. Even the post-Jobs Apple can’t stem the tide; it’s pretty close to the 10% niche market share I predicted back in 2009 already, with no sign that trend will or can be reversed.
August 30, 2013
Fixing the fast-food strike
So, thousands of fast-food workers are out on strike against the national burger chains, demanding that their wages be doubled to $15 per hour. But the national chains don’t control employee wages; how much to pay their people is in the hands of local franchise owners,
Therefore, if you are one of the concerned, caring, and vastly indignant activists behind this strike, I’m here to tell you that your social-justice problem has a simple solution. Take out a loan (or put together the money from your like-minded activist friends), buy a franchise from one of the chains, and hire workers at $15 an hour.
There, that was simple, wasn’t it? You’ll make money hand over fist and demonstrate to all those eeevil corporations that they can too pay a “just wage”; they just don’t want to because they’re greedy.
Or…maybe not. If it were that simple, everyone would be doing it. The commercial landscape would be alive with virtuous workers’ collectives paying their members fat wages and thumbing their noses at top-hatted plutocrats. Why doesn’t this happen?
Because in order for you to pay a worker $15 per hour, that worker has to net you more than $15 an hour in revenue. Otherwise your business runs at a loss until it crashes and the job goes away.
But it’s actually worse than that. Employer Social Security “contributions” approximately double the costs per burger-flipper right away; other tax and regulatory burdens push it up further. To sustain $15 an hour in wages, your employees have to pull $35 an hour or more in revenue each.
That kind of revenue per employee is relatively easy to arrange in a profession or a skilled trade, or even at a really chi-chi restaurant. But we’re talking flipping burgers here, which raises two serious problems.
One is that flipping burgers is not neurosurgery. The job procedures are simple and mechanical; adding a lot of value with a human touch is hard. In truth the main reason burger joints have human employees at all (other than maybe one machine-tender) is that people like to have their food handed to them by a human being rather than catching it off the end of a conveyer belt.
The other problem is that price competition in the fast-food industry is brutal. The name of the game is fast and cheap; that means your franchise has to run on a razor thin margin. If you try to charge significantly more over your cost of the basic inputs (meat, potatoes, cooking oil, electricity) than your competitors do, your customers will desert you.
Which is why the workers’ collective scenario fails. Your social-justice intentions won’t change the cost of those inputs one bit; the only way you can generate enough revenue per hour to cover that $35 or more in cost per employee is to raise prices. A lot. At which point your customers will instantly bail out.
Franchise owners aren’t demons. What they can do is constrained by economics. The wages they can pay are effectively bounded above by the amount of revenue each employee can capture, which in turn is bounded by price competition. If that amount is low, the wages will be too, and no amount of political screaming can fix that.
This is why minimum wages kill jobs. In the U.S., the magic threshold is abour $14.50 an hour – if an employee can’t generate that much gain, the job either won’t exist at all or will only exist illegally off the books where taxes and regulation can’t more than double its cost.
But if you’re illiterate, unskilled, or just young, you may not be able to net $14.50 per hour for an employer. In that case you get the shaft. You might be willing to work for less, but the system will “protect” you by keeping you unemployed and desperate.
How this logic applies to other low-wage service jobs – in places like (say) big-box retail stores – is left as an easy exercise.
August 27, 2013
Hunger Games for real
“Students can only have one serving of meat or other protein. However, rich kids can buy a second portion each day on their own dime.” This is from coverage of Michelle Obama’s national school-lunch regulations.
Protein-starving the peasantry so it will remain docile and biddable is a tyrant’s maneuver thousands of years old. I was unaware until today that this has become official policy in the American public school system.
How clever of them to sell it as a healthy-eating measure! That’ll get all the gentry liberals on board; of course, their kids will be buying that second serving.
Eric S. Raymond's Blog
- Eric S. Raymond's profile
- 140 followers
