Postcards from the Bleeding Edge
Transport strike over, working too hard
The nationwide transport strike in Nicaragua
is over.
I was a bit worried when it started - the US state department issued
an advisory that US citizens stock up on a week's worth of food, there were
reports of violence, and
food shortages but...
The strike didn't have all that much effect on San Juan Del Sur, otherwise known as "gringolandia". The food shelves never emptied, and although the streets were quiet and devoid of smoking busses and drivers yelling "RivasRivasRivas" all of last week, it was more likely that if you looked like you needed a lift, someone would pull you into an alleyway and say:
"Psst. Wanna ride?".
People adapted. They hitchhiked (even more than usual), dragged old bikes out of garages, walked, or stayed on their front porches and visited with each other.
Today the taxi drivers seem more subdued than usual. They should be happy, they got their prices reduced for gasoline reduced to a little over $3 dollars a gallon (and to pay for it, non-public transport got their costs raised to $5.30 a gallon). A long term plus is the government promised to import & finance 3,000 kits to transform taxis from gasoline to LP-gas (propane).
Now I've got a week's worth of canned food to get through. Yum.
In solidarity the local "transport you to surf" business also shut down, and I got in a bad habit of working from sunup (which for me seemed to be from 10:30 or so) nearly to sunup (4-5 AM) - with a major nap from 3-6PM. Working, especially late at night, has always been a very productive thing for me, but the lack of sunlight and conciousness at crucial parts of the day really cut down on the fun I could have had. Waves were good (but it took effort to line up transport, so I didn't go), sun was good (but I was working), people were having a good time (but I was working), and my closest friend down here was closeted with his gf (and I was working). My distractions were minimal. I barely noticed the time flying by. Sometimes I'd be hungry for hours before I would get up to do anything about it.
I got a ton of work done, a brainful of code dumped, working, and outlined. It's all broken up in small enough pieces now that I hopefully won't have to do a 90 hr workweek for a while. The
cooltop guys are onto something, though.
I got a major module to proof of concept on friday morning, more on that in a minute. For "relaxation", I spent the next 24 hours hacking on a major problem in the jack audio connection kit involving
some hairy problems with threading and a runaway process. I'm on about my 7th crazy theory, but I think the one I'm on now has some legs.
I finally took a break on Saturday afternoon, whipped out my guitar, and started playing in front of my office. More than a few people stopped by to listen, and a few people that I only knew in passing borrowed my guitar and revealed themselves to be good players. I already knew my neighbor Pablo could play, but didn't know Marvin (who works for adelante in the back), did. He played and sang some great classic spanish songs and then surprised me with a pretty good rendition of "sounds of silence" - neither of us knew the words.
It was a beautiful day, I cheered up enormously by sundown. I need to play outside more often, & maybe put out a begging bowl!
Then I went back to work. All last week I'd been:
Digging into the internals of
Ardour. I plan to rip out the existing tranzport and alphatrack drivers and replace them with stuff that uses the OSC protocol as an intermediary. However, to do it, I wanted to push OSC harder than I had ever heard anyone push it before. I wanted to send out packets as big as the udp protocol would allow, with a complete snapshot of audio position, gain, and volume, for every track, every 10 ms. I wanted to multicast the data across the network, so a profusion of potential controllers would be able to respond to and control ardour remotely. (think big mixing desks, or little things like the tranzport and alphatrack, and anything in between)
The broadcast protocol is designed to be able to compensate for lost data (by sending all the data, all the time, at fixed intervals, which is kind of like how voip works), by sending EVERYTHING. Brute force has its uses, this is one of them.
It's a crazy idea, though. Really. 100 64KB packets per second is 6.4 megabytes - per second - over half of a 100Mbit per second network. It will only work at all on a switched 100MB lan or a direct wire to the box. But: 100 64KB packets per second is only 5% of a GigE network! GigE cards are in most computers now, and GigE switches are less than a 100 bucks. So, while this idea was utterly insane 4 years ago, it is actually quite doable with modern technology.
At least in this case I'm using multicast (courtesy of liblo from svn), so, even if I have dozens of devices attached to ardour - software controllers on other machines, etc - network usage is flat, only a function of the number of the tracks, not the number of controllers, and the logic inside of ardour is dirt simple stupid, pushing the required intelligence out to the controllers, which have to sort it all out. (and I mean *all* - even the stuff they aren't interested in).
So I got that working Thursday night, with a few faked up bits where I couldn't figure out the depths of the class hierarchy well enough to get the data I needed, but enough to get a proof of concept running.
Result: On my main box, Ardour doesn't even notice that it is pumping out this much data. the cpu barely registers the activity. The wired lan shrugs it off, too. but my wireless network becomes unusable - not even dhcp packets can get through while the OSC multicast is running.
Wireless is significantly slower than 100Mbit ethernet, and worse, most wireless routers are configured as bridges, not routers, so even though you may have no listeners for a given packet on the wireless lan, mine just saturates anyway. If this router ran openwrt I'd be able to make it route (or block) OSC multicast, but it doesn't so I'm not sure what to do about it yet. I'm a little concerned about what I'm doing to my upstream provider...
I coded up a little client in python - and IT killed the system - because it wrote so much data to the screen that Xwindows ate 80% of cpu. (formatted, I imagine it was over 100MB/sec) I turn off the screen writes, and it's fine, so the client side can work, too.
It is rather nice to be able to do protocol design iteratively and not to have to worry about the layout of the fields, etc. OSC makes that part easy.
I have high hopes that over the next couple weeks I'll finally get the tranzport and alphatrack doing what I want them to do. At the same time, this past week really exhausted me, I have had no brain cells since saturday.
When not heads down into ardour I was working on turning this little algorithm into verilog:
for (i = taps ; i >= offset1; i--)
{
exp = (ec->fir_state_bg.history[i - offset1]*factor);
ec->fir_taps16[1][i] += (int16_t) ((exp+(1<<14)) >> 15);
}
for ( ; i >= 0; i--)
{
exp = (ec->fir_state_bg.history[i + offset2]*factor);
ec->fir_taps16[1][i] += (int16_t) ((exp+(1<<14)) >> 15);
}Anyway, its Sunday night. And I'm going to go have some fun. Monday I start working on extracting the alphatrack driver from deep within ardour's guts, and the send protocol.
Labels: ardour, nicaragua
ioquake3 gets ipv6

I'd really like to see peer to peer gaming take off. Being able to play with your schoolmates in the neighborhood would ultimately lead to sub 10ms latencies and new models for high bandwidth local interaction that simply can't be matched with the "central server in timbuktu" model.
Seeing ioquake3 get ipv6 is a first step towards that day.
Looks like I have to
download openarena, too, and play with this!
Labels: ipv6
No Luz, no taxi
After my last post I was ready to hang blogging up. I still may, but not quite as voluntarily as I intended.
For most of the last couple days, I've got no power, and no lights (no luz). I'm told the electric station is just plain out of oil and there is no more forthcoming. And the
local taxis and busses are on strike, due to high gas prices, a regulated market for fares, and a variety of other reasons.
A goodly portion of the country is shut down, immobile.
My neighbors run a private (airport only) taxi service. They are getting people out of town in private vehicles instead of their regular (marked) van, as the taxi union is blocking the road in some places (That's a a rumor going around - coping with rumors in a place where you barely speak the language is tough. At least I'm not coping with people that are armed... yet)
I actually kind of like the lack of noise and tourists. I haven't heard "RivaRivaRivas!" in days or heard an overloaded bus creak by. I usually even like being without power for hours at a time, it's a pointed reminder to get away from my desk, enjoy life, conversation, swimming, and surfing....
but if this goes on another day, I'm going to start stocking up on food.
Labels: nicaragua
Blood in the water
This song came out a while back as sort of a pathologically frustrated reaction to man's ability to make war on other men.
Like most of my songs, it doesn't have a natural bridge, and adding one in changes the structure of the song and changes the lyrics around. Still, I have two conflicting ideas here, one of a vietnam-era river, full of the blood, birdsong and the sound of gunshots, and the other of the character of "cain" who is, well, everyman, and your brother, who makes for chaos no matter where he goes. He's you, he's me, he's everyone that ever made a problem for someone else.
It depresses and angers me to even try to work on this song. I'm going to stop. For now. If anyone wants to suggest lyrics, chords, riffs, or a lyrical change, let me know.
Blood in the water (C) Michael Taht 2008
Gm
Sitting on the river
Em
watching the tide
Gm
Rolling down the river
Em
knowing who lied
Gmsus4
by the water
Em
there's blood in sands
Gm
there's blood on the reeds
Em Am
where we wash our hands
Gmsus4
In the river
Em
I heard the dead man's call
Gm
I sit on the river
Em
I hear the human's call
(solo)
Sit on the river
hear the human's call
it's kind of like birdsong
kind of sweet
it's kind of like birdsong
kind of neat
There's blood in the water
and in the sand
and it covers you
It runs down your hand.
He was your brother
and his name is cain
You hope you'll never
see him again
I saw him in China
He's been in Tibet
He came to Nicaragua
He may be here yet
Am Bm
Of chaos and destruction
Cm
he's the president
Gm
So pay your taxes
Em
and cope with your rent
Gm
this just so you know
Em
where your money is spent
There's blood in the water
and in the sand
It covers you
It's clenched in your hand.
Some alternate lyrics floating around:
You've seen him on TV
And in the Golan heights
He sleeps in the day time
and comes out at nights
Labels: music
getting ready to hang it up
I'd like to take a break from blogging. I write primarily to think aloud, but the feedback I get from you, the reader, generally does clear my head, so stopping is a bad idea, too. I've engaged in writing about a lot of unpopular causes this year, and been wrong (or disappointed) every time, and I think it is better for me to stop paying attention and just work on the positive things. I look back at most of what I've published in the last few months and it seems like a sea of unending bitterness and outrage. You are what you eat, and what you eject, and I want to return to sunnier outlook.
The only way I know how to do that is stop reading the news, get to the beach, exercise, and work on fun projects - and especially - focus on and finish them, and put them aside.
My issues:
0) To access my canon coherently really needs me to move off of blogger.
1) I can't seem to clearly write anything longer than 3000 words in linear time.
2) Focus. I have been unable to focus on any one project for more than a couple days this whole year. My backlogs require weeks of dedicated work on each, with rigor.
3) Time. I've identified that I'm involved in way too many things, and yet I keep finding new things to do. In particular, I'm addicted to the
prolefeed.
4) Money. I would really like to finish something I can be proud of before I run out of money.
5) Brain buffer overflow: switching between spanish, english, c++, python, and C is killing my productivity. At least one of these has to go. Preferably 4. I'm thinking of getting rid of english as I can always get it back.
Just in my writing backlog alone are:
End of worlds: What's wrong with wireless internet
Designed to Disconnect: A 9000+ word piece about fixing what's wrong with the internet
Designed to Disintegrate: What's wrong with manufacturing and distribution
These three pieces above keep fragmenting. I've been trying to tie them together for months.
Positive space: The good things that are happening in the space business
Control Populations: Why preserving subcultures is good
World Domination 201 revisited: What happened to the 64 bit revolution?
Sad realizations about Austrian economics and libertarianism
Impressions of New Zealand & Australia
Who I intend to vote for, and why
Songwise, I have the fragments to a couple grumpy songs - unlike the humorous "gordo" I wrote last year, I'm still working on the dark "00ze", and the darker still "blood on the water". I need a happy subject to sing about, haven't come up with one.
Workwise, I published my backlog on that a while back
Personwise, I'm on diet and waiting for the jellyfish to clear out before I hit the water again...
So I think I'm going to start by dumping as much of the backlog into the blog as I can,
and then stop thinking about it for a while. My apologies in advance for the quality of the upcoming work.
Labels: blogs
Lock up the *ssholes
A favorite reader, ABD, writes in:
Those people thought their God would protect them. In fact, they believed their God spoke to them and guided them through the maze of evil that the non-believers wove around them. Instead, as their numbers grew and grew, as resources dwindled, the people were frightened their God had deserted them.
Tell me what religious freedom is. Tell me what freedom is. Forget the religious part. Freedom is "exemption or liberation from the control of some other person or some arbitrary power ; liberty; independence. Exemptions from arbitrary restrictions on a specified civil right." (Webster's New World, 4th ed.)
I still do not know what freedom is. I think it is a concept that doesn't really exist in the purest sense of the definition. It can't. The mere quality of being in a physical state, of our awareness being married to our physical self denies us freedom. And from there, from the moment of birth, the concept of freedom is really elusive. I think you are only truly free when you accept that you are not.
And what defines a persons 'right' to anything? It is all arbitrary. People are guided by selfish, self-sustaining motives. There is nothing religious about religion. It may as well be a form of government as it functions by all the same principles and can be as destructive and confining to its people. I think religious freedom is an oxymoron. It's like saying you have the freedom to not be free. But since you are already not free, it's not really a choice in which case the government shouldn't make laws protecting something that doesn't exist. And then we could just arrest people for being assholes.
Every so often someone I know bisects the world in a way that makes me say,
wow, let's extend that thought to everything. What if we reduced the moral basis for law and instead instituted penalties for various degrees of assholeness?
First, we'd see a return to civil society. People would be polite and respectful of one another, for fear of being prosecuted by their peers. Jury trials would be more effective, as determining if someone is an asshole or not is easily proven within a few days on the stand.
It doesn't matter how good a lawyer you have if the principal criterion on the stand is not the facts, but your attitude.
We'd end up with a kinder, gentler society, admittedly with a lot more people (from all walks of life) either in prison or attending charm school, or both.
So, this leads me up to two pieces of news of today:
Hans Reiser has been
convicted of first degree murder, and faces 25 years to life in prison.
I found most of the circumstantial evidence against him tenuous at best, as
I wrote when he first took the stand, but there was enough of it by the end for me to think second degree murder a likely outcome. There did not seem to be any evidence of premeditation, indeed, purchasing the books he purchased a week after his wife's disappearance suggested not only innocence, but lack of pre-mediation. He may have hated her, but he hadn't planned out killing her.
The internet thought differently, a poll of wired readers showed 62% not guilty. This reminds me
of a study done years ago (don't know the name of it) where trials were recreated for new juries by using purely recorded audio, and via using transcripts only.
In this case the transcript readers voted not guilty, those that got to see the legal theatrics and the man in person voted the maximum penalty.
If Reiser hadn't taken the stand and proved himself an asshole of the first degree, perhaps he'd have got off more lightly. I'm glad he took the stand and had a chance to defend himself in his own words, in his own internal framework. Sometimes the dialog became surreal, yet eloquent, with a hard edge of truth that rang outside the narrowness of the case itself:
Attorney: "What, if anything, might you have done that could have caused Nina to disappear?"
Reiser: "I opened the door."
Reiser: "Only the lawyers win in divorces."
Reiser: "... before the divorce, I believed very much in the legal system, and I thought ours was superior to Russia's."
Reiser: "I don't think anybody would conduct themselves in a menacing manner in front of the police."
Reiser recounted an incident in which Nina saw a "wonderful old man shaped like a bowling ball, and she walked up to him and stroked him on the tummy and said, 'There's nothing but muscle here,' and he just beamed, and he just loved it. And that was Nina."
Reiser: "Marriage is altruistic in the financial sense. It's a lot cheaper to hire a housekeeper."
Paul Hora asks about "where the file system was".
Reiser: "That's like asking where cyberspace is."
Reiser: "I don't think she really appreciated it when the cat chose to join me on the couch" .
Reiser: "Would you like me to tell you what Shelly Gordon said to me in a way that would make it hard for the prosecution to object?"
Did Reiser had any problems with Nina's new boyfriend, Anthony Zografos?
No, Reiser said, because Zografos "isn't into cannibalism."
Reiser: "She has the most beautiful voice. She has the most beautiful voice of anyone I have ever met. To this day."
Reiser: "She has more people skills than any lawyers in this county."
Reiser:"Most romances end up being a waste of time, if you look at them with excessive logical analysis. I prefer to not look at romance logically and analytically."
Reiser: "The problem here is that you think you can smile at me and I will forget. Those who anger slowly, cool slowly."
Reiser: "I don't have a great deal of desire to give the government all my possessions. Not my underwear, not my car and definitely not my children."
Hora asked if Reiser "intentionally decreased the value of the revenue" of Namesys as part of the divorce proceedings to keep money away from Nina, and Reiser said, "I would have liked to have enough revenue to be able to decrease it."
"There's no possibility that I have not touched that post in the last 30 years of living in that house."
"How smart are you?" Hora asked.
"Not very," Reiser said.
"Are you a genius?"
"No, but I can fake it."
"What's your IQ?"
"I haven't taken an IQ test."
"You claim to be world-famous, right?"
Reiser said he's had the occasion to write that on papers, yes.
Hora commented that he'd never heard of Reiser's file system before. He asked if the reason Reiser has described himself as a world-famous, internationally-renowned scientist was because he believed he was such a person. Reiser said yes.
"Still do?" Hora asked.
"I think the word 'renowned' is no longer appropriate," Reiser said.
I understand, now, in the adversarial justice system America has, why lawyers counsel not taking the stand in your own defense.
Reiser will appeal, but we won't be hearing from him much, although I imagine he'll become another Birdman of Alcatraz. Given good behavior in prison, Reiser will be able to access a computer again, although it will probably be running Windows.
Given the DoD connection, I doubt that his hard drives will ever be heard from again.
I don't think we'll ever know if he was truly guilty of anything more than being an asshole.
In other news, the first piece of hard evidence towards abuse at the FLDS settlement has been announced to the press. (I note that
the individuals involved have been banned from talking to the press). Apparently
31 of the 54 girls between the ages of 14 and 17 have been or were pregnant.
I want to make clear that I don't approve of old men sleeping with 14 year olds, OK? I do note that that that was legal under Texas law until 2006. I do note that spread of the figures immediately suspicious, and biased toward the prosecution: Why not publish numbers for 14,15 (clearly illegal under current law), 16 (maybe), 17 (not)...
As a blogger, and a person, my empathy always goes towards the underdogs. In this case my immediate view was to respect religious tolerance. Anytime I see police tanks roll up to a settlement (and I refuse to call the place a compound, the pictures show otherwise), my head fills up with scenes from
Warsaw in 1939, one place among many, where people were different enough to be enslaved and gassed.
My thinking here has evolved somewhat, based on new evidence and research, but its too much to go into in one posting.
The thing is: I believe in the law; it's all we have that keeps us even mildly civil to each other.
And I freely confess that I may have been an asshole.
Labels: FLDS, hans reiser
Big batch of OLPCs distributed in Nepal
My favorite feature in the New Yorker is "caption this cartoon". I tried this morning to put myself inside the head of kids that have never seen a computer before and wonder what they are thinking...
Wow! A square frisbee!
How do you open it?
Are all these little men trapped inside? How do I get them out?
You tell me!Labels: olpc
No right to not remain silent
If you are a minor, or a female adult, yet an involuntary ward of the state, with no charges pressing against you, your cell phones will be confiscated for talking to the media, or your family. The attorneys assigned to you by the state have secured a court order taking your cell phone away for your protection. Trust in them.
To make up for this:
You will be given a playstation and made to play with it, and you are also required to watch 5 hours of television, starting with a daily dose of Fox News, and ending with reruns of the Sopranos.
You will be allowed to attend church services at the Christian church of your choice. Singing hymns from your own church is allowed, but only at a fifty foot distance between you and the other members.
Thank you for your co-operation on the DNA tests, so we may ultimately put a few of your fathers in prison, and, by the way, we will be individually suing each and every one of you to recover the costs we incurred in your arrest and housing and eventual disbursal, so we can buy more tanks and pay for more swat teams.
We will, however, after having seized the substantial capital assets, housing and land of your group, allow your mothers to go on welfare, just as we did in 1953.
That is all.
...
Obviously, some members of FLDS
have access to the internet. Somehow I doubt that the shelters the state is keeping the rest penned in have computers, however.
Labels: FLDS
Election insanity, and other unpopular causes
I've tried all day to not hit reload on google news regarding Pennsylvania's election.
I've tried to forget that 90% of the votes cast
will be on unaccountable electronic voting machines... and the tests by Princeton showing how easy they were to compromise.
I thought about voting security for a while, and finally understood the contrarian view point -
that paper trails were the wrong framing of the question, and that it seems impossible to retain anonymity and security.
I've tried not to remember the dead unanimously voting for the Daley machine.
I spent an hour trying to figure out
what truths exist in Venezuela from an obviously biased source, and realizing, that I probably had to go there, too, to really figure it out, after I spoke the language. I might be ready in five years, after learning ten new words a day, but that would be just the dictionary meanings.
I've tried not to boggle at the prospect of hundreds of kids forced to submit to a DNA test that their parents can legally refuse, nor at a government worker calling a cotton swab inside the mouth "non-invasive".
I've tried to hope that all the forces in the world lined up against each other would cancel out, and democracy would be preserved, truths found, and justice win out.
I've tried hope, and failed at that, too. I keep hitting reload, instead.
The answer to the voting machine problem is entirely open hardware and software, and the chances of seeing that happen are slim, at least this year.
As to the
state's invasion of the FLDS church's settlement, the term
"clusterf*ck" applies. How can a dragnet haul in 500+ people with a single search warrant, an entire community, who by every independent account, are no trouble to outsiders, and live and let live, based on a single phone call, from a single informant, who may never have existed? The
further injustices in - parents separated from their children, children separated from each other, kept in gym, lawyers leaping over each other to defend and prosecute - make me despair. The raid is probably the best thing to happen to the legal industry in Texas since Enron's collapse. Not to mention: all the reporters reporting on it have no chance to investigate other, perhaps more pertinent, events there....
Perhaps admirable in an earlier age - the settlement was self-sufficient in food and manufacturing, there's no evidence of social disorder, mass drunkenness, drug abuse, or sales thereof. By every standard save one they appear to have been model citizens, worthy of emulation.
Perhaps that was their real crime - to try and live independently of the State. The state got lonely for lack of worship.
I'd found some random amusement in today's reloads. One headline, written by someone no doubt pressed for space: "DNA tests for polygamy begin". Tests for that may work in cats, but not humans.
Closing arguments were heard in the Hans Reiser case. Oh, Reiser is certainly guilty. Guilty of not attending church on sundays, guilty of brilliance, and arrogance, guilty of being a geek, guilty of being unloved, and of being unlovable - guilty of murder? I don't know. An independent prosecutor
thinks so. Reiser's verbose indictment of the system - the judge
told him he'd made a mockery of the court, and threatened to remove him from the stand, repeatedly - may well outlive him, guilty or innocent.
The one bright spot in my day:
Percy schmeiser finally beat Monsanto in his long battle regarding licensing of his crop.
Still the fundamental issues around genetic engineering and patenting lifeforms for fun and profit remain unchallenged.
I've always wondered what happened to the
termination seed patent that Monsanto tried to buy back in 1998.
I'm
afraid to find out.
On the plane ride home I almost finished re-reading John Brunner's classic book of ecological and social disaster,
The sheep look up. I couldn't finish. It was too depressing. I looked out the window, into darkness, instead, thinking about the irony of
PETA pursuing an Xprize for artificial meat.
China is selling cheap cars by the freighterload into South America,
selling crappy hardware to people glad to get anything, to a people that hasn't ever heard of "Unsafe at any speed", nor capable of reading it, without translation.
I'd put "The sheep look up" down, just after the part where a defective microwave fried Josie's baby in her womb, after most of the other good characters had died.
As much as I try to close my ears and my eyes and yell
neener neener neener neener, like a rat conditioned to get electric shocks and food pellets, I keep hitting reload on the
prolefeed, hoping for a different result.
Opening the door to the visiting doctor, all set to apologize for the flour on her hands - she had been baking - Mrs Byrne sniffed. Smoke! And if she could smell it with her heavy head cold, it must be a tremendous fire! "We ought to call the brigade!", she exclaimed. "Is it a hayrick?".
"The brigade would have a long way to go," the doctor told her curtly. "It's from America. The wind's blowing that way."
Labels: election 2008, hans reiser
Back in Nicaragua, haunted by jellyfish

Surf's up! Jellyfish are out!
I haven't felt like posting much. Jellyfish can STING. Maybe I shouldn't have featured them
in a song as foodstuff. They are striking back!
Everything is the same, only different, in Nicaragua. The power flickers off 5-6 times a day, but somehow the government is now avoiding rolling outages, even with oil at 117/barrel. I guess that relationship with Chavez is paying off. The local cable co has rolled out internet on a pay per month basis, no yearly contracts, which I may pursue. My (shared) DSL service's router is not pingable from the outside, so my ipv6 tunnel doesn't work. Ah, progress.
Over the past year, lobster has gone up in price from 200 cordoba to 255, and a slice of pizza rose from 18 to 22. People are telling me that the price of wheat is slated to double again over the course of this year. The exchange rate between the Cordoba and the dollar is still around 18.9 to 1. My rent's still the same. Haven't checked on electric. Conclusion: I can survive for a year on just the cash I have on hand.
I'm doing my best to ignore today's election in Pennsylvania. I didn't understand all the hoorah about Obama being "elitist", when I heard what he said, what I heard was a fragment of John Lennon's "Working Class Hero":
Keep you doped with Religion, Sex, and TV
Which rings true to me, far more true than the chattering of the military-media complex,
but maybe it's playing well in Pennsylvania.
The recent wave of bank bailouts have been so huge and so numerous that the media has run dry of their sex scandal reserve. Now, that's a problem! Forget oil, wheat, bank losses, and corporate fascism - There hasn't been an Spitzer-level T&A distraction in ages!
Oh, well, I'm going to focus on what's important.

I have enough projects to keep me busy for the rest of the year:
IPv6 - on platforms as diverse as the olpc and
telephony projectTranzport and Alphatrack Drivers for Ardour
Generic Query router to prove out
Songs to finish
Weight to lose
Low power "router of the future" to build
FPGA stuff to figure out
Spanish to learn
Book to write
a best practices document to write, maybe even a rfc
This isn't 9 months worth of work, it is years worth... and absolutely none of it has anything to do with America's troubles, unless my bank vanishes in a puff of smoke. It is silly and painful for me to pay the slightest bit of attention.
Labels: ipv6, open source, surfing
NASA Scam?
I think of all the people that got otherwise useless physics degrees, and of the engineers that aren't allowed to fix bridges, and all the money that pours into colleges to spit out people that have supposedly the same dreams of exploring space as I did when I was growing up... I think of all the trillions spent on war and the paltry billions spent on space... and
of all the projects people have labored for years on, only to see canceled at the last minute - and I have to wonder:
Maybe thunderbird has figured it out?

Labels: nasa, space, spam
On the internet, nobody cares if you are a cat
Mark Moreford of the SF Chronicle
writes: I want a president who not only freely discusses and shrugs off his or her loves and sexual desires and even affairs, but dares to enjoy sex and thrives because of it and makes his behavior a part of his perspective and attitude on life and love and leadership and the general sticky messy beautiful evolution of the human soul. Is that too much to ask?
This delightful bit of sanity (do read the link) reminded me of what
I'd written during the previous election cycle on the same subject, so I re-read that, thinking maybe it was time to rewrite it, focus it more, and add a few more jokes.
Yea, I should do that.
I read a bit more of Moreford's canon. Loved
Tax my rich white torturer!
That led to me to re-reading Evan Hunt's profound and wonderful piece
on ad pollution, on the utter importance of changing the oil in the omni, which led me back to re-reading
Beating the Brand and finding the first part that
I'd never managed to incorporate back into the whole.
"RubbermaidRubbermaidRubbermaidRubbermaidRubbermaid" got stuck in my head. I learned there was a name for this problem -
Earworm.
All this led me to clicking absently on what used to be the
Unbrand America web site. It's been taken over by a domain squatter!
In light of
my last couple pieces about the
mess that the internet is in -
In light of all that - and
the troubles that jwz had in resurrecting
the web as it stood in 1994, I finally cut loose with the biggest belly laugh I'd had in weeks. I roared. I fell off the bed laughing.
In the end, there's nothing better to do. Look
how far we've come! Know how
far we have to go!
If I didn't laugh at the world as much as I do I would have slipped off the deep end long ago. (Some would argue that I already have slipped off the deep end)
Problem with all that laughter was that it is 3AM, and I woke up my landlady...
Seeing how humans cope with the world, with machines, and with "progress", is like watching
a cat trying to play jazz.
Labels: ads, cats, ipv6, irony, mozilla, networking, politics
The tragedy of the wifi commons
Ahh, multicast - the holy grail of distribution networks - is like wet paint. Once you decide that "hey, multicast would be the best way to do this", you are compelled to touch it. You are led down a twisty trail of rfcs, all different, and complex protocols like IGMP...
It's no wonder that skype and bittorrent went their own way, and adopted simpler protocols (udp,tcp) to achieve their purposes. Figuring out how to use multicast properly is a black art. The amount of open source code that actually uses it is limited to a few odd corners of the internet, and is very hard to understand.
The one major client side application of multicast - multicast DNS - is so badly broken that it makes me cringe to see the packets go by. The following is a dns scan taken from a public wireless access point (the names and mac addresses have been changed to protect the innocent), using mdns-scan:
root@dancer:~# mdns-scan
+ dancer [MA:C :AD:DD:RE:SS]._workstation._tcp.local
+ Jen Christou’s Computer [MA:C :AD:DR:ES:SS]._workstation._tcp.local
+ Malcolm Jone’s Computer [MA:C :AD: D:RE:SS]._workstation._tcp.local
+ pecutmac [MA:C :AD:DR:ES:S ]._workstation._tcp.local
+ Shogunate Macbook._smb._tcp.local
+ Very Annoyed Wombat._ssh._tcp.local
+ Very Annoyed Wombat._sftp-ssh._tcp.local
+ Trophie [MA:C :AD:DD:RE:SS]._workstation._tcp.local
+ Trophie._pds._udp.local
+ Trophie._pds1._udp.local
+ Trophie._msgsys._tcp.local
+ Trophie._cba8._tcp.local
+ Trophie._ldgateway._tcp.local
+ Ryan’s Computer [MA:C :AD:DD:RE:SS]._workstation._tcp.local
+ Malcolm Jones’s Computer._sftp-ssh._tcp.local
+ Malcolm Jones’s Computer._ssh._tcp.local
+ Malcolm Jones’s Computer._ftp._tcp.local
+ Malcolm Jones’s Computer._net-assistant._udp.local
+ Malcolm Jones’s Computer._rfb._tcp.local
+ Human._ssh._tcp.local
+ Human._sftp-ssh._tcp.local
+ pecutmac._net-assistant._udp.local
+ pecutmac._rfb._tcp.local
+ pecutmac._sftp-ssh._tcp.local
+ penutmac._ssh._tcp.local
+ iTunes_Ctrl_stringofdigitsthatdontlooklikeamacaddr._dacp._tcp.local
+ Nicolas Bob’s Computer [MA:C :AD:DR:ES:SS]._workstation._tcp.local
+ mbears-mbp._smb._tcp.local
At the time, the access point in question was saturated - maybe capable of 3KB/sec out to the internet. Now, I don't think multicast was at fault for that in this case, but given how 802.11 wireless works (coherent explanation to be typed in later), multicast is bad. BAD. BAD. It does not scale.
But it's not just multicast. The uselessness of some of the dns announcements above in mapping back to conventional DNS boggle the mind.
Nicolas Bob's computer.local Great. Not only do we have spaces in this name, but punctuation! Try parsing that dns name with tools like grep - or sticking it into named - etc.. You can't even type it into a web browser or ssh. What's the point?
[MA:C :AD:DR:ES:S ] as a part of the announcement. Cooool. Now I know who you are - forever....
mbears-mbp._smb._tcp.local: Thanks for letting me know you have windows filesharing turned on. I look forward to introducing your girlfriend to your wife.
pecutmac._ssh._tcp.local: I'm willing to bet that none of the people on this network broadcasting that they have ssh available have ever used it. Why should they tell people about its availability?
5 multicast announcements from this one machine alone...
Itunes: Why the heck does itunes have to have its very own announcement with a huge unique identifier?
Programmers coding for multicast ought not to be allowed to code for it until they can recite the relevant RFCs chapter and verse, the same goes for their QA people. Would it have been so hard for Apple to enforce a DNS compatible naming scheme with a single regex? IDN, even, would have been fine. Or did they put the same people that loosed filenames with spaces and punctuation on the world on the multicast DNS project?
I'm told that the linux.conf.au network basically suffered congestion collapse. Was it due to the 70+ olpcs merrily broadcasting their services under both IPv4 and IPv6? I don't know...
I saw that the latest iphones support ssh, via a mdns-scan, the other day. That was kind of cool... but seeing the public wifi airspaces of the world clogged with devices saying "Hi! I'm ME! I do this, this, and this! My owner is clueless! I am insecure! CRACK ME! ME! ME!" really gets to me.
People can wander around naked at home all they want, but I'd really like to see computer manufacturers implement a standard policy of clothing their hardware by default on unknown access points.
Although I just used multicast dns as a talking point, it is far from being the worst offender.
As it is a relatively new protocol, the designers should have done better. Perhaps it can be fixed in the field before it becomes more pervasive.
The rest of the local networks services is much worse.
I don't want to talk about all the other announcements like SSDP, and SMB - or the bittorrent traffic, worms, insecure IM exchanges, bogus DNS servers, dhcp announcements, and TCP retransmits, etc, I saw on this poor overloaded public access point. It depressed me. All I wanted to do was get my email, (via IMAPS, thank you very much) but I couldn't.
I turned off my laptop, had a long black coffee, and moved on. I don't know how to fix public internet access points. I just don't. We could use a unique frequency band per user and people would still screw it up. Maybe the amateur radio guys and the FCC have it right, that certification should be required in order to broadcast anything on any frequency band.
I now know what it must have been like for someone that understood germ theory during the black plague era, seeing all the rats scuttle around.
I'd like to add a clause to
The world of ends.
The Internet:
a) Nobody owns it.
b) Everyone can use it.
c) Anyone can improve it.
...
d)
Everyone is messing it up!Apply
wireshark to a network that shouldn't be slow, but is, and see your awareness change.
Bonus Link:
Ongoing discussion on Ipv6 in the home.
Labels: commons, dns, ipv6, multicast, networking, olpc, wifi
ipsec over ipv6 for olpc
I got ipsec over ipv6 to work yesterday, on my laptop, server, and olpc. I couldn't get it to work using setkey or racoon, but racoon2 worked the first time.
Nowhere on the net could I find an example of a working ipv6 to ipv6 setup for linux ipsec - even though the protocol was designed for that scenario in the first place, and only painfully adapted to ipv4 scenarios over the course of years.
The setup:
OLPC -> laptop -> hurricane electric tunnel -> toutatis.
2/48 -> 1/48 -> /64 -> ipv4 tunnel -> ipv6 at he -> toutatis.taht.net

Yea! a static ipv6 address! Now that I have squid (from cvs), jabber, dns, web, ssh all running pure ipv6, No IPv4 on the client is now feasible. I'm free of IPv4! with Native encryption! Bwhahahahaha...
Naturally I started playing with ipsec. The initial key negotiation phase is painfully slow, especially over a 220ms internet RTT, but after that the ipsec vpn tunnel is completely transparent to the user (and opaque to the sniffer). It's pretty darn fast on local connections though.
All kinds of things "just worked", but I got into a world of hurt dealing with NetworkManager on the laptop providing the tunnel. NetworkMangler arbitrarily takes your interface up and down to get an ipv4 address and wipes out your pre-existing ipv6 setup when
it should just co-exist. !@#!@#!@
I still haven't figured out how to make NM do the right thing. If you add static ipv6 ips on the olpc, they also get flushed when NM does its thing. Shouldn't ipv6 on a given device just stay up and let RA (router advertisement) do its thing, most of the time? There must be some kind of RS (router solicitation) message that says - "I'm not sure if I'm still on the right net"... I'd like my ssh over ipv6 connections to stay running through a dhcpv4 change whenever possible... part of the point of ipv6 stateless autoconfiguration is that you don't neeed a sharecropper's lease anymore.
The latest firefox beta works great running on the olpc. Much more usable,
at least for an adult, and having adblock+ running on the olpc is a real win.
The olpc also works (once you turn -notcp off) X11 client/server over ipv6.
It is a great X-terminal! I can think of lots of ways X could be used in this way - keeping an executable on the school server and just displaying it on the olpc would ease on major software rollouts - and allow the use of more complex software that won't fit into the memory available on the olpc. On my wireless network you simply don't notice the fact that (firefox for example) is running on a remote server, 'cept when you want to use flash. Startup time is vastly improved and scrolling is totally fast....
In poking about ipsec I noticed that the geode processor in the olpc has a hardware encryption block. A couple ipv6 network and ipsec benchmarks are in order, and I'm going to go fight with NetworkMangler some more...
Labels: ipsec, ipv6, networking, olpc
RFC: Better future desired
I've been reading rfcs lately, working on multiple levels - 1) How does a given stateless protocol work, and 2) How is it secured, how can it be subverted? I'm doing this because 3) I'm trying to design a new stateless protocol and 4) I'd like to get it secure-able eventually - and 5) avoid any potential patent/copyright issues at the outset. I'm confident I have the latter solved now, but it took a month of review, headache, fear and worry before I felt capable of coding again.
I wish everyone was born with a "get one great lawyer free" card, that they could use up when they most needed it. I found myself missing the structure of a major corporation, badly.
I also mostly convinced myself that achieving security and statelessness were almost impossible, that security requires state - but note my equivocation "almost" and "mostly" -
darn adverbs - I'm still going to give the design as-is a go and see what happens next.
This morning, I looked up, and saw Johnathan Zittrain had written
an excellent article on the future of computing. It is not a bright one, particularly for independently minded programmers:
To be sure, amateurs who do not have houses to lose to litigation can still contribute to free software projects—they are judgment proof. Others can contribute anonymously, evading any claims of patent infringement since they simply cannot be found. But this turns coding into a gray market activity, eliminating what otherwise could be a thriving middle class of contributing firms should patent warfare ratchet into high gear.
While that rang especially true for me given when I'd done all month, it was his proposals for solving the spam/bot problems by creating for ever more limited, tethered, restricted (I'd call them "broken") computers that got to me. Instead of getting back to work, I started writing up a response... but then Richard Stallman
fired backIt is true that a general computer lets you run programs designed to spy on you, restrict you, or even let the developer attack you. Such programs include KaZaA, RealPlayer, Adobe Flash, Windows Media Player, Microsoft Windows, and MacOS. Windows Vista does all three of those things; it also lets Microsoft change the software without asking, or command it to permanently cease normal functioning.
But restricted computers are no help, because they have the same problem, for the same reason.
The iPhone is designed for remote attack by Apple. When Apple remotely destroys iPhones that users have unlocked to enable other uses, that is no better than when Microsoft remotely sabotages Vista. The TiVo is designed to enforce restrictions on access to the recordings you make, and reports what you watch. E-book readers such as the Amazon “Swindle” are designed to stop you from sharing and lending your books.
Very good debate in both articles. Both describe at a 50 thousand feet what I'm trying to get done at ground level, in an itty, bitty, obscure corner of the internet. Today I wanted to talk about how the ntp protocol achieves
a consistent and secure view of time itself.
I'm out of time now - that valuable yet non-material substance - I've got some coding to do.
Labels: ipv6, ntp, rfc, time
DHCP, IPv4, home networks, and IPv6... with DNS
IPv6 has a feature that was innovative and useful back when it was designed in the mid-90s, called stateless autoconfiguration. An IPv6 enabled machine can automatically create an IPv6 address for itself, get on a network, and figure out how to access the internet.
This solves a tough problem that occurs on just about every network I've ever run into - two devices will automatically configure themselves with the same static IPv4 address, disabling both devices (or at the very least, making access to them a flaky experience). Worse, usually that automatically configured device comes up on an ip address that is dedicated to crucial infrastructure - the main router for a home, for example, is usually on 192.168.0.1. Bring up another device intended to be a main router for that home, (say you are adding a wireless access point) and it too comes up on 192.168.0.1. Unless you have a private ethernet port handy (which requires some knowledge of networking), usually you have to temporarily disable the main router - disconnecting your kids from their second life sessions - and bring up the new one, change its default IPv4 address - find a static allocation for it - write it down - remember to use the right netmask - (all of which requires some knowledge of networking), save it, reboot both routers, and then proceed to configuring the new one.
On larger networks, someone randomly bringing up a machine on a static ip address can be catastrophic.
Now, DHCP has become the standard way to assign new "dynamic" IP addresses in a NATted IPv4 network. It's come quite a long way - from, at first, only being able to assign IP addresses, to now being able to specify dns servers, time servers, netbios servers, serve up boot files, statically assign some IP addresses, dynamically do others, etc, etc.
Early versions of the DHCP server code helped turn most of us into landless cyberserfs - there was no way to assign and route static ip addresses sanely back in the 90s - so most end users went dynamic early, as the end users could not be trusted to assign their own gear the right addresses, and statically assigning the wrong addresses could be catastrophic to the whole network. ISPs ended up authenticating via protocols like ppp, and assigning dynamic addresses, because it was easier, and safer - not because it was right - or better - using static addressing would have simplified billing and firewalling (and worm/virus control) considerably, then and now.
Dynamic addressing also made it much harder to create services at home. It moved the domain name system into the province of the ISP rather than into the home or small business. This has led to such steps backwards as not having DNS running at all on most small networks - meaning that printers can't get assigned sane names like "printer.hm.taht.net", ditto for your daughter's machine - instead, people manually remember and type in IP addresses whenever they want to talk to machines inside of their own network. (solutions to this have appeared in Netbui, Bonjour and dnsmasq, but I'm already way off where I intended to go with this piece.
Most people don't even know how to discover the IP addresses of machines in their own network - they are no longer connecting to each other, but to the internet...
I think that people dig "the Net" so much more than "their home" is because that the net is so much easier to use than their own gear!
It's not just DHCP's fault - routing was also painful in a sometimes connected via modem internet environment, and CIDR was just getting started. There were no good solutions back then to these problems.
The cyberserfdom created by this flaw is reflected by the terminology used by DHCP itself. You get a IP "Lease", which you have to "Renew" periodically. Although the documentation uses "server" and "client" terminology, I translate that into "Master" and "Sharecropper" when I'm feeling depressed.
Static IP addressing, assigned via DHCP, appeared in later versions, keying off the MAC address of an ethernet card, much like IPv6 stateless autoconf works. Back in the 90s, you used to have to manually enter your own name servers, now DHCP handles it for you. Getting on a "normal" ipv4 network today is as simple as enabling dhcp and turning on your machine, and setting up a "normal" ipv4. I rarely see a well configured small dhcp network, with static addressing for printers, etc, usually people end up manually assigning the static ips rather than getting DHCP to do it. More often than I care to remember, they assign static ips in the dynamic lease range, leading to all sorts of oddities (that newer dhcp servers generally detect).
It's not that people are stupid. This is hard stuff to get right all the time.
At the lowest level of the protocol, you have to get that IP address right... and you need to be able to access a nameserver in order to do anything on the internet. It is helpful to also run your own dns at home... (DNS translates www.example.com into 127.0.0.2 on my machine)
Running DNS at home? I almost never ever see that... DNS servers take up a lot of memory and very few routers supported it until recently. Everybody seems to think that
www.example.org is the only correct form of a computer name - most of the people with vanity names just use them for websites instead of managing their home network. People just plug in their airport and laptop and expect to be on the internet, no where else.
Setting up good DNS is hard, for a lot of reasons - security, complexity, and the warts in a major program and protocol. It is still highly desirable to run your own DNS at home - it also speeds up web access - but solutions are emerging that make it less probable you will need to do so in the future.
I wish a lot more programmer energy had gone into making home/small business DNS services easier. I've been running my own DNS servers for 20 years and I STILL don't get it completely right, and never on the first time.
ANYWAY.
IPv6 solves the "get IP address" problem well. Actually, it oversolves it. It solves it so well that it introduces new problems. While a human being can remember "my printer is on 192.168.0.50", I find it impossible to remember or even type in the fact that my olpc is on [2001:470:806f:2d7:217:c4ff:fe10:b811] which is what its full IPv6 autoconfigured address looks like. It's GREAT that it's on the net... all by itself... routing - announcing its existence -
Theoretically.
Regrettably one crucial piece of stateless autoconf, went into DHCP, but didn't make it into IPv6 - the ability to get a nameserver automatically. Thus, the friendly internet of http://ipv6.google.com becomes http://[2001:4860:0:2001::68] (if you can remember that, you are a better person than me) unless you do something about it.
There's a few solutions, DHCPv6 and RDNSS announcements in radvd (covered in
RFC 4339 rfc 5006) - which I'll get to in my next blog. (I'll fix up this one a bit later too)
Labels: dhcp, dns, ipv6, networking
An inconvenient discussion
The following was excised from a recent discussion on global warming in "The Age" newspaper,
as documented by The Australian:
"Well-meaning intellectual movements, from communism to post-structuralism, have a poor history of absorbing inconvenient fact or challenges to fundamental precepts. We should not ignore or suppress good indicators on the environment, though they have become extremely rare now. It is tempting to the layman to embrace with enthusiasm the latest bleak scenario because it fits the darkness of our soul, the prevailing cultural pessimism. The imagination, as Wallace Stevens once said, is always at the end of an era. But we should be asking, or expecting others to ask, for the provenance of the data, the assumptions fed into the computer model, the response of the peer review community, and so on. Pessimism is intellectually delicious, even thrilling, but the matter before us is too serious for mere self-pleasuring. It would be self-defeating if the environmental movement degenerated into a religion of gloomy faith. (Faith, ungrounded certainty, is no virtue.)" - Ian McEwan
The missing sentences do not appear anywhere else in The Age's version of the essay. The attribution reads: "Copyright Ian McEwan 2008" and there is no acknowledgment of editing by The Age.
Why did the paper decide to offer its readers McEwan lite? Was he, I wonder, consulted on the matter? And isn't there a nice irony that The Age chose to delete the line about ideologues not being very good at "absorbing inconvenient fact"?
Labels: global warming, religion, science
Banning the biblebot - effective filtration
I knew that the "Biblebot" idea was too obvious not to have been implemented - there are multiple versions available. I also feel comforted in knowing I'm not alone in having to filter my own words about talking about controversial stuff.
From:
a chatlog in the #christian instant messaging chatroom:
#178890 +(11588)- [X]
*** Now talking in #christian
-Word_of_God- Welcome Abstruse to #christian I am a Bible Bot. For more info type: /msg Word_of_God !info
Abstruse: !kjv numbers 22:21
Word_of_God: Numbers 22:21 -- And Balaam rose up in the morning, and saddled his ass, and went with the princes of Moab. - (KJV)
*** SageRider sets mode: +b *!*@c211-30-208-111.rivrw3.nsw.optusnet.com.au
*** Word_of_God was kicked from #christian by SageRider (Please dont Swear)
Abstruse: I know I'm never going to be able to come back in this channel again after this, but damn was it worth it to see that...
I wonder if anyone has built a koranbot, torahbot, and biblebot, and put them all in the same chat room with eliza....
Labels: bots, religion
VRM and identity
I still haven't been able to figure out why the
privacy, identity and vrm debates wander around such abstract terms and doesn't talk about two technologies of the 90s that I thought were promising if more widely deployed.
The first technology - ecash of various sorts - I am not going to go into today (as the answer is too large to fit into the margin of this blog)
The second technology - pgp - has thus far been uncracked (well, there was an issue once, long ago), is widely used (there is no good substitute for PGP/mime), fully standardized and interoperable, and works on personal data, email and various chat systems, on every platform known to man.
The infrastructure has existed for over a decade -
gpg itself,
key servers, and the graphical tools such as
engimail for thunderbird, and
seahorse are now straightforward to use, at least under Linux. Less straightforward under other OSes, but that's a solvable problem
As to why browsers don't support pgp based authentication (based on your signature and the keyserver infrastructure)... don't know. I would love to be enlightened.
(Browsers have extensive support for certificates, but the primary certificate authorities are charging 2600 dollars a pop for that string of numbers. Sounds like a great business to be in, but I think true security needs to come from the bottom up rather than the top down in
many cases, which is what pgp derived system do.)
"Identity" and "verification of identity" have been solved from the bottom up, already, using pgp. It's astonishing to me how many times the concept of a "web of trust" has been reimplemented in (linkedin, myspace, facebook, amazon, etc) - without actually implementing any real, cryptographically secure trust between the participants. Each person is placed in a silo from which the trust does not escape, and the middleman holds the keys.
Wider use of pgp might be able to solve that.
As to solving the "I'm a real guy, with real money to spend" problem, presenting a signed key (signed by for example, your "buyers club" of individuals, which has a track record) on an anonymous email address, with your "personal rfp", would reveal the depth of your interest
without revealing your actual identity.
Labels: identity, pgp, security, vrm