Heather Havrilesky asks How can the Lost finale not suck?
[UPDATE:] Yep, pretty much every bit as bad as I was expecting it to be. God, I'm glad that's finally over. When Lapidus sends Miles out to repair a hydraulic leak on a jet airplane with duct tape I actually laughed out loud. That was pretty much the highlight of the show for me.
What a waste of talent and potential.
[UPDATE 2:] It was almost worth putting up with the last few years of Lost just so I could fully appreciate Jack Shafer's brilliant shredding of the finale. Laura Miller's deconstruction over at Salon is pretty good too. More cathartic than the actual finale.
Sunday, May 23, 2010
Tuesday, May 18, 2010
Another step towards totalitarianism
A Pennsylvania man faces eight years in prison on what are almost certainly trumped up charges of assaulting a federal agent. The alleged "assault" was almost certainly (the crucial evidence is being held by the government) nothing more than an attempt to photograph the agents on public property, which is not and never has been a crime. But it may soon become one if people continue to sit idly by.
The right to be wrong
Slate has a fascinating interview with Diane Ravitch, former member of the Bush I administration, about her changing her position on the value of public education. But education is just the MacGuffin, the piece is really about being wrong, and being able to admit it. This is my favorite part:
But it's worth reading the whole thing.
"I sometimes wonder whether you might be attracted to the things that you say are wrong—if you're kind of guarding yourself against something that secretly appeals to you. It's like people who are vehement, militant atheists; I think they could easily become religious crusaders, because they're almost religious in their atheism. You have to be careful what you choose to engage yourself with, because the thing you're fighting could be the very thing you want."
But it's worth reading the whole thing.
Tuesday, May 04, 2010
Facebook goes towards the dark side
Facebook seems to be getting more and more evil. I have an FB account. I hardly ever use it, but I'm seriously considering shutting it down regardless. Assuming I can figure out how.
Saturday, May 01, 2010
More CSS vindication
Finding examples of things that CSS can't do seems suddenly to be all the rage.
Here is my favorite example of something that is impossible in CSS but trivial with tables: a fluid layout with nested grids, such as what you need if you want to lay out a form inside a multi-column page.
Here is my favorite example of something that is impossible in CSS but trivial with tables: a fluid layout with nested grids, such as what you need if you want to lay out a form inside a multi-column page.
Friday, April 30, 2010
CSS vindication
Jeff Atwood agrees with me that CSS should not be used for layout.
Wikipedia thinks so too!. Take that, ChristianZ and Pherdnut!
...even if you have extreme HTML hygiene and Austrian levels of discipline, CSS has some serious limitations in practice.
Things in particular that bite us a lot:
* Vertical alignment is a giant, hacky PITA. (Tables work great for this though!)
Wikipedia thinks so too!. Take that, ChristianZ and Pherdnut!
The email cold-call HOWTO
(I wrote this many years ago as a web page but decided to repost it here so people can comment on it.)
The Email Cold-Call HOWTO
A "cold call" is an initial communication with someone who doesn't know you. I've gotten a lot of email cold calls over the years that have left me scratching my head wondering how to respond. This has prompted me to compile a few hints on how to compose a cold-call email. By following a few simple rules you can make it a lot easier for the person you are contacting to respond effectively.
These rules really boil down to one of the cardinal rules of communication: know your audience. This rule runs both ways, and is particularly problematic for cold calls because almost by definition you don't know your audience, and your audience certainly doesn't know you, which makes it that much harder for them to frame an appropriate response. So the object of the game is, first, to learn as much as you can about the person you are contacting *before* you contact them, and then give them as much information about yourself and what you want as you can without getting long-winded.
Specifically:
0. Know your audience. Find out as much as you can about the person you are contacting before you contact them. You don't have to become their biographer, but you should at a minimum do a quick web search. If the person has a home page, read it.
1. Introduce yourself. A sentence or two is all it takes. If you can't come up with anything better, start with "My name is..." If you are writing in connection to your work, give your title and company. If you are a student, give your status (grade level, undergraduate year, or graduate level) and the school you attend. In short, say something about yourself to help your contact anchor their first impression of you and tailor their reply appropriately.
1a. If you are not fluent in your audience's native language, give some kind of a hint what your native langauge is. If you are writing from an institution located in a country where your native language is spoken that's good enough. But if you are, say, a native Farsi speaker who is living in Canada then you should say something like, "I am a visiting scholar from Iran currently at the University of Toronto." Knowning where you are from will help your audience filter out any language stumbles. It will also give them the opportunity to respond to you in your native language if they happen to know it. You never can tell.
2. Say a few words about what you are doing that motivated you to contact this person. Were you referred by someone? If so, who? Did you find some information on the web? If so, what was it?
3. If you want the person to do something for you that you expect will take more than just a few minutes, don't ask directly. Instead, ask if the person can spare some time and give a general idea of the magnitude and character of the task. For example, "Could you spare fifteen minutes to answer some questions about Australian Aboriginees?" is much better than, "Please answer the following fifty questions ..."
4. If you are asking for information, say what efforts you have already made to get it. Where did you look, and what did you find? As a bare minimum you should do a quick Web search before asking anyone for anything nowadays. If the person you are contacting has a home page, read it.
5. Make it easy for your contact to reach you and learn more about you. Put your email address at the bottom of your message. If you have a home page, put the URL there too. Some mail systems munge return addresses so that replies don't work, and this may be the only way your contact has of reaching you.
One last minor point: if you aren't sure about how to address someone, just open with "Hello."
The Email Cold-Call HOWTO
A "cold call" is an initial communication with someone who doesn't know you. I've gotten a lot of email cold calls over the years that have left me scratching my head wondering how to respond. This has prompted me to compile a few hints on how to compose a cold-call email. By following a few simple rules you can make it a lot easier for the person you are contacting to respond effectively.
These rules really boil down to one of the cardinal rules of communication: know your audience. This rule runs both ways, and is particularly problematic for cold calls because almost by definition you don't know your audience, and your audience certainly doesn't know you, which makes it that much harder for them to frame an appropriate response. So the object of the game is, first, to learn as much as you can about the person you are contacting *before* you contact them, and then give them as much information about yourself and what you want as you can without getting long-winded.
Specifically:
0. Know your audience. Find out as much as you can about the person you are contacting before you contact them. You don't have to become their biographer, but you should at a minimum do a quick web search. If the person has a home page, read it.
1. Introduce yourself. A sentence or two is all it takes. If you can't come up with anything better, start with "My name is..." If you are writing in connection to your work, give your title and company. If you are a student, give your status (grade level, undergraduate year, or graduate level) and the school you attend. In short, say something about yourself to help your contact anchor their first impression of you and tailor their reply appropriately.
1a. If you are not fluent in your audience's native language, give some kind of a hint what your native langauge is. If you are writing from an institution located in a country where your native language is spoken that's good enough. But if you are, say, a native Farsi speaker who is living in Canada then you should say something like, "I am a visiting scholar from Iran currently at the University of Toronto." Knowning where you are from will help your audience filter out any language stumbles. It will also give them the opportunity to respond to you in your native language if they happen to know it. You never can tell.
2. Say a few words about what you are doing that motivated you to contact this person. Were you referred by someone? If so, who? Did you find some information on the web? If so, what was it?
3. If you want the person to do something for you that you expect will take more than just a few minutes, don't ask directly. Instead, ask if the person can spare some time and give a general idea of the magnitude and character of the task. For example, "Could you spare fifteen minutes to answer some questions about Australian Aboriginees?" is much better than, "Please answer the following fifty questions ..."
4. If you are asking for information, say what efforts you have already made to get it. Where did you look, and what did you find? As a bare minimum you should do a quick Web search before asking anyone for anything nowadays. If the person you are contacting has a home page, read it.
5. Make it easy for your contact to reach you and learn more about you. Put your email address at the bottom of your message. If you have a home page, put the URL there too. Some mail systems munge return addresses so that replies don't work, and this may be the only way your contact has of reaching you.
One last minor point: if you aren't sure about how to address someone, just open with "Hello."
Why I hate LinkedIn
It's because I regularly get email messages that look like this:
and I have no idea who Joe Shmoe is. So I have three choices:
1. Accept the invitation and end up with a bunch of connections who I don't actually know. (Actually this might not be so bad. I have never actually made a useful contact through LinkedIn.)
2. Reject the invitation and risk offending Joe if it turns out I actually have met him and just forgot about it (which is likely -- I have a terrible memory for names).
3. Send Joe a message saying, "Um, who the fuck are you?" though maybe not in so many words.
It's just so freakin' annoying that LinkedIn would supply this completely useless default message that everyone uses instead of encouraging people to write a personalized message that goes something like, "Hi, this is Joe Shmoe. We met the other day at the underwater basket weaving society. I'd like to add you to my network."
For the love of Pete, people, a LinkedIn invitation is no different from any other cold call email unless you are absolutely positively certain that the person you want to link to knows who you are. You should put at least a little bit of thought into the content of the message before you send it.
Joe Shmoe requested to add you as a connection on LinkedIn:
Ron,
I'd like to add you to my professional network on LinkedIn.
- Joe
and I have no idea who Joe Shmoe is. So I have three choices:
1. Accept the invitation and end up with a bunch of connections who I don't actually know. (Actually this might not be so bad. I have never actually made a useful contact through LinkedIn.)
2. Reject the invitation and risk offending Joe if it turns out I actually have met him and just forgot about it (which is likely -- I have a terrible memory for names).
3. Send Joe a message saying, "Um, who the fuck are you?" though maybe not in so many words.
It's just so freakin' annoying that LinkedIn would supply this completely useless default message that everyone uses instead of encouraging people to write a personalized message that goes something like, "Hi, this is Joe Shmoe. We met the other day at the underwater basket weaving society. I'd like to add you to my network."
For the love of Pete, people, a LinkedIn invitation is no different from any other cold call email unless you are absolutely positively certain that the person you want to link to knows who you are. You should put at least a little bit of thought into the content of the message before you send it.
Rosie Jetson, eat your heart out
Japanese researchers have built a robot that balances on a ball. It's wicked cool, like a Segway taken to the next level. It is really amazing to me the extent to (and speed with) which science fiction from the 1960's has become reality. Today we have Star Trek communicators (cell phones, blue tooth headsets), tricorders (PDA's) and now we seem to be one voice synthesis circuit and some molded plastic away from Rosie Jetson. Still waiting for my hand-held phaser though.
Saturday, April 24, 2010
Thursday, April 22, 2010
Set phasers to stun
The inventor of Tickle Me Elmo (and no, I am not making this up) has invented a new gun -- as in weapon -- that can be adjusted to fire both lethal and non-lethal shots .
Thursday, April 08, 2010
Biggest robotics breakthrough since... well maybe ever
Researchers at U.C. Berkeley have built a robot that can fold towels. Veeeeeeerrrrrryyyyyy sssslllloooowwwwllllyyyyy. But it actually works. Now it's a mere matter of optimization.
Seriously, I would have given you even odds that this problem would not have been solved at all in my lifetime. It's one bet I would have been happy to lose, and I'm even happier that I didn't actually make it. But folding laundry -- indeed manipulating any kind of non-rigid object -- is really, really hard.
Next challenge: a robot that can tie shoelaces. To get some appreciation for how hard this is, try doing it with gloves on to simulate being a robot that doesn't have touch-sensitive skin, which most robots, including the Berkeley laundry folder, don't have. I'll bet a case of wine that this will still be an unsolved problem in 2020. Any takers?
Seriously, I would have given you even odds that this problem would not have been solved at all in my lifetime. It's one bet I would have been happy to lose, and I'm even happier that I didn't actually make it. But folding laundry -- indeed manipulating any kind of non-rigid object -- is really, really hard.
Next challenge: a robot that can tie shoelaces. To get some appreciation for how hard this is, try doing it with gloves on to simulate being a robot that doesn't have touch-sensitive skin, which most robots, including the Berkeley laundry folder, don't have. I'll bet a case of wine that this will still be an unsolved problem in 2020. Any takers?
Wednesday, April 07, 2010
Oabama orders a hit
Barack Obama has apparently ordered the assassination of a U.S. citizen without a trial in the name of fighting terrorism. This is an even more blatant assault on the Constitution than anything the Bush administration ever did. Bush merely spied on, tortured, and imprisoned American citizens without a trial. He never actually had one killed.
I predict that the people who are calling on members of the Bush administration to be prosecuted for war crimes will not be calling for Barack Obama to be prosecuted for conspiracy to commit murder, even though that is clearly what this is.
I predict that the people who are calling on members of the Bush administration to be prosecuted for war crimes will not be calling for Barack Obama to be prosecuted for conspiracy to commit murder, even though that is clearly what this is.
Tuesday, April 06, 2010
My very own koan
I haven't been writing much because I've been too busy dealing with getting ready to move. Buying and selling houses is a nice problem to have, but it can still be a royal pain.
But I couldn't resist posting this. I actually invented a Zen koan as part of a usenet thread on self-replicating programs:
:-)
But I couldn't resist posting this. I actually invented a Zen koan as part of a usenet thread on self-replicating programs:
Zen master Kwine was raking pebbles in the garden when a student approached and asked, "Master, what is the shortest self-replicating Lisp program?"
The master said nothing and continued raking. The student was annoyed and asked, "Master, why will you not answer my question?"
The master looked up and said, "But I did answer your question."
At that moment the student was enlightened.
:-)
Monday, March 22, 2010
Ron prognosticates: The Supreme Court will overturn health care reform
Before the ink even had time to dry, the state of Virginia filed suit to challenge the health care reform bill as unconstitutional. And I think they'll succeed on both the merits and the politics.
To be clear: I'm a strong supporter of health care reform. The current system is badly b0rken and absolutely needs to be fixed. But forcing people to buy insurance -- or any other product made by a private company -- is pretty clearly (to my unschooled eye) not one of the federal government's enumerated powers. So the current health care reform bill should be overturned on the legal merits. Of course, the legal merits seem to have precious little to do with how the Supreme Court actually rules nowadays. But the politics also auger in favor of overturning. The current Court lists heavily to towards the right, and the cynical part of me is convinced that John Roberts in particular is eagerly awaiting the opportunity to stick it to Obama after the State of the Union flap.
I wish things were otherwise, but I gotta call 'em as I sees 'em.
[UPDATE:] It has been pointed out to me (and I actually knew this but spaced on it when I was writing this post) that the bill doesn't really force you to buy insurance, it just taxes you if you don't. This makes it part of a long tradition of the government coercing people to behave in certain ways through the tax code that have passed constitutional muster. So when I wrote "the current health care reform bill should be overturned on the legal merits" that was my own personal opinion. (Some days I'm a liberal, other days I'm a libertarian.) That is how I think things should be. It is clearly not how they are.
Notwithstanding that there are ample precedents for the government to coerce behavior through the tax code, I still predict that the Court will overturn. This prediction is based purely on my cynical belief that the Court is politicized, and if the Right can muster any reasonable arguments that the law should be overturned (and I think they can) the SC will tend to view those arguments favorably. I could be wrong. I hope I'm wrong. Time will tell.
To be clear: I'm a strong supporter of health care reform. The current system is badly b0rken and absolutely needs to be fixed. But forcing people to buy insurance -- or any other product made by a private company -- is pretty clearly (to my unschooled eye) not one of the federal government's enumerated powers. So the current health care reform bill should be overturned on the legal merits. Of course, the legal merits seem to have precious little to do with how the Supreme Court actually rules nowadays. But the politics also auger in favor of overturning. The current Court lists heavily to towards the right, and the cynical part of me is convinced that John Roberts in particular is eagerly awaiting the opportunity to stick it to Obama after the State of the Union flap.
I wish things were otherwise, but I gotta call 'em as I sees 'em.
[UPDATE:] It has been pointed out to me (and I actually knew this but spaced on it when I was writing this post) that the bill doesn't really force you to buy insurance, it just taxes you if you don't. This makes it part of a long tradition of the government coercing people to behave in certain ways through the tax code that have passed constitutional muster. So when I wrote "the current health care reform bill should be overturned on the legal merits" that was my own personal opinion. (Some days I'm a liberal, other days I'm a libertarian.) That is how I think things should be. It is clearly not how they are.
Notwithstanding that there are ample precedents for the government to coerce behavior through the tax code, I still predict that the Court will overturn. This prediction is based purely on my cynical belief that the Court is politicized, and if the Right can muster any reasonable arguments that the law should be overturned (and I think they can) the SC will tend to view those arguments favorably. I could be wrong. I hope I'm wrong. Time will tell.
Thursday, March 18, 2010
We're doomed!
An orange dwarf star is going to collide with our solar system in about a million years, more or less. That's million, with an M. That's not very long in the grand and glorious scheme of things.
Oh wait...
What a relief.
Oh wait...
The good news is that Bobylev says the chances of Gliese 710 penetrating further into the Solar System, inside the Kuiper Belt, are much smaller, just 1 in a 1000. So that's all right, then.
Keep calm and carry on.
What a relief.
Saturday, March 13, 2010
Whoever writes the history books
Winston Churchill once observed that the history books are written by the victors in a conflict, but I sometimes wonder if even he appreciated the extent to which the causality can run both ways. Conservapedia has edited the Treaty of Tripoli to make it appear that the United States was founded as a Christian theocracy.
Why bother even to note this? Surely everyone knows that Conservapedia is a biased unreliable source. The bias is proudly heralded even in its very name. It would be easier to be blase about this if not for the fact that Conservapedia is just the tip of the iceberg. It is not out of the question, if current trends continue, that factual objective history will become more and more inaccessible. After all, I have never seen the original Treaty of Tripoli. The only reason I have to believe that it even exists, let alone that it says what it says is that I have never seen the claims of its existence and its content challenged.
Until now.
I can dismiss this challenge because I can remember a world where there was historical consensus about the Treaty of Tripoli. But imagine what it might be like for someone born today. They might well grow up in a world where half -- maybe even more than half -- of the sources available to them say that the Treaty of Tripoli says what Conservapedia says it says, and that any claims to the contrary are a liberal plot to undermine the foundations of the nation. How would a person growing up in such a world be expected to sort out the truth? (For that matter, how can we be sure that we ourselves are not growing up in such a world?)
Farfetched? Consider that the Texas State Board of Education recently decided to make some changes to the curriculum, including removing Thomas Jefferson and the Enlightenment from history classes, and placing more emphasis on "The strong Judeo-Christian influences on the nation’s Founding Fathers."
This is not some random right-wing web site. This is the State of Texas.
I fear that George Orwell may have been more prescient than anyone ever imagined.
Why bother even to note this? Surely everyone knows that Conservapedia is a biased unreliable source. The bias is proudly heralded even in its very name. It would be easier to be blase about this if not for the fact that Conservapedia is just the tip of the iceberg. It is not out of the question, if current trends continue, that factual objective history will become more and more inaccessible. After all, I have never seen the original Treaty of Tripoli. The only reason I have to believe that it even exists, let alone that it says what it says is that I have never seen the claims of its existence and its content challenged.
Until now.
I can dismiss this challenge because I can remember a world where there was historical consensus about the Treaty of Tripoli. But imagine what it might be like for someone born today. They might well grow up in a world where half -- maybe even more than half -- of the sources available to them say that the Treaty of Tripoli says what Conservapedia says it says, and that any claims to the contrary are a liberal plot to undermine the foundations of the nation. How would a person growing up in such a world be expected to sort out the truth? (For that matter, how can we be sure that we ourselves are not growing up in such a world?)
Farfetched? Consider that the Texas State Board of Education recently decided to make some changes to the curriculum, including removing Thomas Jefferson and the Enlightenment from history classes, and placing more emphasis on "The strong Judeo-Christian influences on the nation’s Founding Fathers."
This is not some random right-wing web site. This is the State of Texas.
I fear that George Orwell may have been more prescient than anyone ever imagined.
Friday, March 12, 2010
Danger Will Robinson! Rackspace cloud stores your password in the clear.
I just had a very disturbing conversation with a Rackspace Cloud CSR. It went something like this:
CSR: Can I have your account user name and password?
Me: You want my password?
CSR: Yes sir.
Me: You know that's, like, security 101 that you should never reveal a password over the phone?
CSR: Yes sir, but in this case we need it to verify your account.
Me: OK, let me go change it to something I'm willing to tell you over the phone.
[Typety type type]
Me: OK, my password is now somereallylongbogusthing.
CSR (without any delay): Thank you. How can I help you?
Me: Wait, you must either be the world's fastest typist, or you can see my password on your screen.
CSR: That's right, sir, I can see your password.
Me: (The sound of my jaw hitting the floor.)
I am just stunned. I have used Rackspace for mission-critical servers in the past. They have always seemed reasonably competent, if not always 100% reliable. But this calls into question Rackspace's entire security policy. The first rule of computer security is that you do not store passwords in the clear. Never. Ever. No ifs ands or buts. You Just Don't Do That. And security is particularly critical in cloud computing, where your data ends up on hardware that can be reused by other people. If Rackspace is storing passwords in the clear, what else might they be screwing up? This really calls into question whether Rackspace can be trusted with mission-critical data.
Good grief, Rackspace, I really wanted to like you. But what were you thinking?
[UPDATE:] It really is as serious as I thought. WIth the account password you can change contact information and reset the root password on all your servers. So unless and until this is fixed you should not use RSC for anything mission critical. I hope they do fix this because other than that I really like RSC. Their UI is very well designed, and setting up a server was amazingly fast and painless.
CSR: Can I have your account user name and password?
Me: You want my password?
CSR: Yes sir.
Me: You know that's, like, security 101 that you should never reveal a password over the phone?
CSR: Yes sir, but in this case we need it to verify your account.
Me: OK, let me go change it to something I'm willing to tell you over the phone.
[Typety type type]
Me: OK, my password is now somereallylongbogusthing.
CSR (without any delay): Thank you. How can I help you?
Me: Wait, you must either be the world's fastest typist, or you can see my password on your screen.
CSR: That's right, sir, I can see your password.
Me: (The sound of my jaw hitting the floor.)
I am just stunned. I have used Rackspace for mission-critical servers in the past. They have always seemed reasonably competent, if not always 100% reliable. But this calls into question Rackspace's entire security policy. The first rule of computer security is that you do not store passwords in the clear. Never. Ever. No ifs ands or buts. You Just Don't Do That. And security is particularly critical in cloud computing, where your data ends up on hardware that can be reused by other people. If Rackspace is storing passwords in the clear, what else might they be screwing up? This really calls into question whether Rackspace can be trusted with mission-critical data.
Good grief, Rackspace, I really wanted to like you. But what were you thinking?
[UPDATE:] It really is as serious as I thought. WIth the account password you can change contact information and reset the root password on all your servers. So unless and until this is fixed you should not use RSC for anything mission critical. I hope they do fix this because other than that I really like RSC. Their UI is very well designed, and setting up a server was amazingly fast and painless.
I'm going to run out of ways to say "fishy"
Theodore H. Frank observes that Toyota vehicles apparently engage in age discrimination. Not Toyota the company mind you, the vehicles themselves. The age profile of people who have had runaway acceleration problems seems to be heavily skewed towards older drivers. Maybe this is a safety feature gone rogue? Has Toyota developed a sensor that can detect older drivers and installed the wires backwards? Hey, I'm just asking questions.
Freakishly accurate Toyota simulator
Allen Hartwig created this freakishly accurate Toyota simulator. It's even better if you have sound turned on.
Thursday, March 11, 2010
More from the Toyota files
James Sikes, the driver of the runaway Prius in San Diego the other day may have had ulterior motives. Are we about to see a repeat of balloon boy?
And since I'm on the subject: I had occasion recently to rent a Toyota Corolla, with which I did a couple of experiments to see if the brakes could overcome the engine. I don't want to get too specific about my methodology, but suffice it to say the experiments took place on a wide open stretch of freeway where there was no danger. It should come as no surprise that the brakes were easily able to slow the car down even at full throttle. It wasn't even close. And, of course, shifting into neutral slowed the car down instantly.
But there was one very peculiar incident: on one one of my test runs (I did several) when I pressed on the brake with my left foot while holding down the throttle with my right, the brake did not respond normally. It felt much stiffer than usual. The brake pedal did not depress as far as it normally does. And the brakes did not seem to engage; the car continued to accelerate. I immediately took my foot off the gas, whereupon the car slowed down and the feel and operation of the brake returned to normal right away. I was not able to reproduce this, and in fact I can't be completely sure that I'm recalling the details correctly. The entire episode lasted only a second or two. But it surprised the hell out of me at the time.
This was a brand new 2010 Corolla. It had about 500 miles on it.
And since I'm on the subject: I had occasion recently to rent a Toyota Corolla, with which I did a couple of experiments to see if the brakes could overcome the engine. I don't want to get too specific about my methodology, but suffice it to say the experiments took place on a wide open stretch of freeway where there was no danger. It should come as no surprise that the brakes were easily able to slow the car down even at full throttle. It wasn't even close. And, of course, shifting into neutral slowed the car down instantly.
But there was one very peculiar incident: on one one of my test runs (I did several) when I pressed on the brake with my left foot while holding down the throttle with my right, the brake did not respond normally. It felt much stiffer than usual. The brake pedal did not depress as far as it normally does. And the brakes did not seem to engage; the car continued to accelerate. I immediately took my foot off the gas, whereupon the car slowed down and the feel and operation of the brake returned to normal right away. I was not able to reproduce this, and in fact I can't be completely sure that I'm recalling the details correctly. The entire episode lasted only a second or two. But it surprised the hell out of me at the time.
This was a brand new 2010 Corolla. It had about 500 miles on it.
Wednesday, March 10, 2010
"Everything looks like it was designed... but of course that isn't true"
Just stumbled across this amazing video of an ant colony that was pumped full of cement and then excavated. I can hardly imagine a more striking refutation of the creationist claim that (the appearance of) design requires a designer.
Friday, March 05, 2010
Ed Wallace steps up for Toyota
He calls the uncontrolled acceleration hysteria (ambiguity intended) a witch hunt.
Wednesday, March 03, 2010
Six down, 45 to go
Washington DC has become the sixth "state" to legalize same-sex marriage, joining Connecticut, Iowa, Massachusetts, New Hampshire and Vermont. The dominoes continue to fall.
Friday, February 26, 2010
More fishy Toyota horror stories
It seems the Toyota hysteria has spread to Australia:
Wow. Scary. And this is a rally car driver. She must know what she's doing, right?
Hm, odd, why would an experienced driver turn off the car instead of shifting into neutral?
Um, no. The reason you lose your power steering when you turn the car off is not because the steering depends on computers, but because it depends on hydraulic pressure supplied by a pump that is driven by the engine. No power from the engine, no pressure, and hence no power steering. It's called power steering for a reason.
But here's the real kicker:
This car had a manual transmission! (Automatic transmissions are much less common outside the U.S. than in.) There is absolutely no way that a car with a manual transmission can accelerate out of control without either operator error or a serious mechanical failure that would show up on subsequent inspection. This car has a clutch and a manual linkage between the shift lever and the gearbox. You can physically disengage the engine from the drive train by either engaging the clutch or shifting the car into neutral. Now, it is possible for clutch linkages to fail (I've actually had it happen to me). It is even theoretically possible for a manual transmission linkage to fail, though I've never heard of such a thing happening. But it is not possible for both of these things to fail at the exact same time that you have a runaway throttle and leave absolutely no evidence behind. If a mechanical linkage breaks, it stays broken until you fix it.
[UPDATE:] The same article has this story:
Again, this begs credulity. This is not a Camry, this is a Corolla. It has a 130 horsepower engine. It take more than nine seconds to get from zero to sixty under full throttle with the brakes off. This car can barely sustain 80 kph (50MPH) going uphill, let alone with the brakes on.
---
It's important to note that I'm not saying that there are no problems with Toyota cars. There may well be, I don't know. What I am saying is that many of the stories that are coming out sound fishy, and at least a few of them are flat-out physically impossible. Even that is not so disturbing -- people make shit up all the time. What bothers me is that all of this testimony is apparently being accepted uncritically without even the most basic reality checks being applied.
(Speaking of basic reality checks, think about this: Greenhall reports traveling for "up to 400 meters" before turning the car off. Doesn't that sound a little odd? 400 meters is awfully precise. And why hedge with "up to" instead of "about"? For that matter, why a distance? It seems to me that the natural way to recount an incident like that is in terms of time: "I was out of control for a minute or so." Distances are very hard to estimate even under non-stressful circumstances. Again, I do not doubt that something out of the ordinary happened, but "up to 400 meters" has all the earmarks of a concocted embellishment.)
A former recreational rally car driver says she experienced sudden unintended acceleration on four occasions while driving her 2008 Toyota Corolla Ascent in north Queensland.
Kuranda resident Mary Von Keyserlingk, 72, has come forward as the US congress investigates Toyota over safety defects linked to as many as 30 deaths.
Ms Von Keyserlingk said her latest scare was a "horror show", with her car speeding to more than 160 kilometres per hour.
"All of a sudden the noise was nearly deafening," she said.
"The heart was pounding and I thought, 'if this goes on any longer I'm going to die [from] a heart attack if nothing else'."
Wow. Scary. And this is a rally car driver. She must know what she's doing, right?
Ms Von Keyserlingk said she decided to turn the car off but she then lost control of the steering wheel.
Hm, odd, why would an experienced driver turn off the car instead of shifting into neutral?
"[Because] power-steering operates on computers ...
Um, no. The reason you lose your power steering when you turn the car off is not because the steering depends on computers, but because it depends on hydraulic pressure supplied by a pump that is driven by the engine. No power from the engine, no pressure, and hence no power steering. It's called power steering for a reason.
But here's the real kicker:
A spritely septuagenarian, Ms Von Keyserlingk still works full time and says she has always driven a manual car.
This car had a manual transmission! (Automatic transmissions are much less common outside the U.S. than in.) There is absolutely no way that a car with a manual transmission can accelerate out of control without either operator error or a serious mechanical failure that would show up on subsequent inspection. This car has a clutch and a manual linkage between the shift lever and the gearbox. You can physically disengage the engine from the drive train by either engaging the clutch or shifting the car into neutral. Now, it is possible for clutch linkages to fail (I've actually had it happen to me). It is even theoretically possible for a manual transmission linkage to fail, though I've never heard of such a thing happening. But it is not possible for both of these things to fail at the exact same time that you have a runaway throttle and leave absolutely no evidence behind. If a mechanical linkage breaks, it stays broken until you fix it.
[UPDATE:] The same article has this story:
Mudgeeraba resident Giulia Greenall says she had a similar experience in her 2007 automatic Toyota Corolla Ascent on three occasions.
On the third and worst occasion she says she was merging with traffic when "the car just started accelerating like mad".
Ms Greenall says tapping the brake pedal or accelerator failed to bring the vehicle under control, although it had worked on previous occasions.
"You could feel underneath your foot that the accelerator could move up and down, but when it got to a certain point there was this hell of a loud vibrating noise coming out of it and you had no control over that," she said.
"It was droning out this noise and vibration, you could feel it under foot. I thought, 'oh we're in trouble' so I pumped the brakes."
Ms Greenall says she travelled for up to 400 metres under full brake and full hand brake before she turned the car off and nursed it to the side of the road.
She estimates she was doing 80 kilometres an hour under full brake.
Again, this begs credulity. This is not a Camry, this is a Corolla. It has a 130 horsepower engine. It take more than nine seconds to get from zero to sixty under full throttle with the brakes off. This car can barely sustain 80 kph (50MPH) going uphill, let alone with the brakes on.
---
It's important to note that I'm not saying that there are no problems with Toyota cars. There may well be, I don't know. What I am saying is that many of the stories that are coming out sound fishy, and at least a few of them are flat-out physically impossible. Even that is not so disturbing -- people make shit up all the time. What bothers me is that all of this testimony is apparently being accepted uncritically without even the most basic reality checks being applied.
(Speaking of basic reality checks, think about this: Greenhall reports traveling for "up to 400 meters" before turning the car off. Doesn't that sound a little odd? 400 meters is awfully precise. And why hedge with "up to" instead of "about"? For that matter, why a distance? It seems to me that the natural way to recount an incident like that is in terms of time: "I was out of control for a minute or so." Distances are very hard to estimate even under non-stressful circumstances. Again, I do not doubt that something out of the ordinary happened, but "up to 400 meters" has all the earmarks of a concocted embellishment.)
Thursday, February 25, 2010
Xoogler for rent
Ever since I was a geeky kid lusting after a 48k Apple ][+ I've dreamed of moving to the Silicon Valley and making it big there. That dream came most-of-the-way true when I spent my year at Google, but even then I was commuting from LA so even though I've experienced the Silicon Valley dream, I've never really lived there (except for two six-month co-op stints when I was in college, but that doesn't really count either).
Looks like that's about to change. A few weeks ago we found a house that we really like, and today we learned that the last major obstacle to our buying it has been removed. So while this is not yet a done deal, it appears that Nancy and I are moving to Redwood City, and I'm going to be looking for a new gig. So if anyone reading this knows of any startups in the Valley that could use an ex-Googler/rocket-scientist drop me a line. I'm available.
Looks like that's about to change. A few weeks ago we found a house that we really like, and today we learned that the last major obstacle to our buying it has been removed. So while this is not yet a done deal, it appears that Nancy and I are moving to Redwood City, and I'm going to be looking for a new gig. So if anyone reading this knows of any startups in the Valley that could use an ex-Googler/rocket-scientist drop me a line. I'm available.
I'll see your crocoduck and raise you...
... a crocodillo!
Unlike the crocoduck and the ever elusive jackalope, the crocodillo is (or at least was) a real creature. Take that, creationists!
Unlike the crocoduck and the ever elusive jackalope, the crocodillo is (or at least was) a real creature. Take that, creationists!
Wednesday, February 24, 2010
Poor dog
Sometimes I think the entire world is going completely nuts.
We're at Wag Style, a doggie day spa on the side street of a trendy Tokyo neighborhood. I've brought Ruby here to test out a canine hyperbaric oxygen chamber .... The technology is the same as that rumored to be used by athletes ranging from Lance Armstrong to Michael Vick — it sends concentrated amounts of oxygen to problem areas in higher atmospheric pressure, supposedly expediting the recovery process.
Tears trump facts
Yesterday's Congressional testimony about the Toyota runaway acceleration problems featured a tearful Rhonda Smith testifying under oath about how she "lost all control of the acceleration of" a Lexus ES350 sedan in October of 2006. (Lexus is, of course, Toyota's luxury nameplate.) Here's a transcript (made by me so there might be the odd mistake):
I'm sorry, but I don't believe her. It is certainly plausible that the cruise control kicked in uncommanded. It is even possible that the interlock that would normally have disengaged the cruise control as soon as she touched the brake failed. It is even possible that the brakes failed to slow the car below 100 MPH (although this begins to really stretch the limits of my credulity). But it is not possible that she "put the car into every available gear" including neutral and reverse, and that that failed to slow the vehicle. For that to have happened, the transmission would have had to first fail in a way that transmissions never do, and then somehow magically fix itself so that subsequent inspection of the vehicle would reveal no problem. That is simply not possible.
There are a number of other aspects to her story that I find highly questionable. We are supposed to believe that she's speeding down the interstate at over 100 miles per hour in traffic and yet she somehow still has the presence of mind to call her husband on the phone. I suppose that's possible, but it means that she wasn't focused 100% on trying to figure out a way to stop. Finally, at the end of her story, she flat-out contradicts herself when she says that first she was able to stop the car (with the engine still revving "up and down"). But then she says that the car was still going 35 miles an hour, and that at 33 miles an hour she was "able to turn the engine off." So which is it? Was she stopped, or going 33 miles an hour down the left median?
There are other troubling questions as well. She says that at 33 miles an hour she was "able to turn the engine off" but she made no mention of trying to turn it off before, only of stepping on the brake and shifting gears. And doesn't "33 miles an hour" seem suspiciously precise, particularly after making a point of saying that the car would not shut off at 35?
It doesn't add up.
I do believe that the car accelerated out of control. But the rest of her story sounds like cover to me. I don't know what happened after the incident started, but I'm pretty sure that whatever it was, it isn't what she testified to.
There are a lot of other weird things associated with this whole Toyota kerfuffle. Steve Wozniak's report of trouble with his Prius turned out to be at best overblown and at worst a publicity stunt. And it is also mighty odd that, as far as I can tell, not a single incident of unintended acceleration has been reported outside of the United States.
I'll go out on a limb and predict that when all the dust settles this will turn out to be a replay of the Audi incident.
Finally, the Wall Street Journal (which content should of course nowadays be taken with a big chunk of sodium chloride) reports that Rhonda Smith sold her Lexus after her incident, and that the new owners have driven it for 27,000 trouble-free miles.
On that thursday, October the 12th 2006, I was driving from my home in Sevierville and upon entering the interstate I accelerated with everyone else into the flow of traffic. At this time I lost all control of the acceleration of the vehicle. The car goes into passing gear and the cruise light comes on. I put the car into all available gears including neutral, but then I put it in reverse and it remains in reverse as the cars speeds to over 100 miles per hour down the interstate. I placed both feet on the brake after I firmly engaged the emergency brake and nothing slows the car. I prayed for God to help me. I called my husband on the bluetooth phone system. I knew [breaks down into tears]... I'm sorry... I knew he could not help me but I wanted to hear his voice one more time. After six miles, God intervened as the car came very slowly to a stop. I pulled it to the left median. With the car stopped and both feet still on the brake the motor still revved up and down. At 35 miles an hour it would not shut off. Finally at 33 miles per hour I was able to turn the engine off.
I'm sorry, but I don't believe her. It is certainly plausible that the cruise control kicked in uncommanded. It is even possible that the interlock that would normally have disengaged the cruise control as soon as she touched the brake failed. It is even possible that the brakes failed to slow the car below 100 MPH (although this begins to really stretch the limits of my credulity). But it is not possible that she "put the car into every available gear" including neutral and reverse, and that that failed to slow the vehicle. For that to have happened, the transmission would have had to first fail in a way that transmissions never do, and then somehow magically fix itself so that subsequent inspection of the vehicle would reveal no problem. That is simply not possible.
There are a number of other aspects to her story that I find highly questionable. We are supposed to believe that she's speeding down the interstate at over 100 miles per hour in traffic and yet she somehow still has the presence of mind to call her husband on the phone. I suppose that's possible, but it means that she wasn't focused 100% on trying to figure out a way to stop. Finally, at the end of her story, she flat-out contradicts herself when she says that first she was able to stop the car (with the engine still revving "up and down"). But then she says that the car was still going 35 miles an hour, and that at 33 miles an hour she was "able to turn the engine off." So which is it? Was she stopped, or going 33 miles an hour down the left median?
There are other troubling questions as well. She says that at 33 miles an hour she was "able to turn the engine off" but she made no mention of trying to turn it off before, only of stepping on the brake and shifting gears. And doesn't "33 miles an hour" seem suspiciously precise, particularly after making a point of saying that the car would not shut off at 35?
It doesn't add up.
I do believe that the car accelerated out of control. But the rest of her story sounds like cover to me. I don't know what happened after the incident started, but I'm pretty sure that whatever it was, it isn't what she testified to.
There are a lot of other weird things associated with this whole Toyota kerfuffle. Steve Wozniak's report of trouble with his Prius turned out to be at best overblown and at worst a publicity stunt. And it is also mighty odd that, as far as I can tell, not a single incident of unintended acceleration has been reported outside of the United States.
I'll go out on a limb and predict that when all the dust settles this will turn out to be a replay of the Audi incident.
Finally, the Wall Street Journal (which content should of course nowadays be taken with a big chunk of sodium chloride) reports that Rhonda Smith sold her Lexus after her incident, and that the new owners have driven it for 27,000 trouble-free miles.
Teach the controversy!
The idea that the earth is round is only a theory after all.
Hm, some of the flat-earth arguments actually make interesting reading. I don't think exposing kids to this stuff as an exercise in critical thinking would be an altogether bad idea.
Hm, some of the flat-earth arguments actually make interesting reading. I don't think exposing kids to this stuff as an exercise in critical thinking would be an altogether bad idea.
Tuesday, February 23, 2010
I wonder who will be taking care of whatshisname?
Bristol Palin is starting a new career as an actress.
I think it's telling that the name of Bristol's baby doesn't appear in the story. I wonder, too, if we'll be hearing much noise from the Right about Bristol not staying home to take care of her kid. I'm not holding my breath.
Bristol Palin, whose unplanned pregnancy became a national news story that engulfed her mother’s vice presidential campaign in 2008, is bringing her experience as a teen mom to bear on the small screen. ABC Family announced Tuesday that Bristol, the oldest daughter of former Alaska Gov. Sarah Palin, will play herself on an episode of “The Secret Life of the American Teenager,” a drama about a teenager who becomes pregnant.
I think it's telling that the name of Bristol's baby doesn't appear in the story. I wonder, too, if we'll be hearing much noise from the Right about Bristol not staying home to take care of her kid. I'm not holding my breath.
Monday, February 22, 2010
New and improved lexicons. Now 50% lexier!
Lexicons are a coding project I've been working on off and on for the last few years. Lexicons are lexically scoped global environments for Common Lisp. They are intended to be a replacement for (or an adjunct to) packages, which I've always found to be at best annoying and confusing to newcomers, and at worst fundamentally broken.
The main difference between this version of lexicons and previous versions is that lexicons are now seamlessly integrated with packages. Every lexicon now has a corresponding package with the same name, and lexicons store their bindings in symbols interned in those packages. So there is a straightforward mapping of lexical bindings to symbols.
The upshot of this is that you can now easily "lexify" a CL package make it accessible via a lexicon "wrapper." For example:
Note that SCAN is not yet defined. Normally, this is what would happen next:
You would now have to go through the following steps:
1. Load the library with the SCAN function
2. Unintern the SCAN symbol in the current package
3. Import the SCAN symbol from the library
4. Recompile FOO
But watch this trick:
Note that not only did you not have to futz around with uninterning any symbols, but you didn't even have to recompile FOO for it to do the Right Thing. Also, if we call FOO again:
notice that the deferred binding is only resolved once.
This version of lexicons aims to be a fully functional replacement for all applications of packages except for a few really esoteric symbolic computation applications. It provides lexical versions of function definitions, global variables, classes, class slots, methods, and macros, including fully hygienic macros using a technique invented by Pascal Costanza. (Actually, I came up with it independently, but Pascal greatly expanded on the basic idea.) It even provides dynamic bindings for lexical variables, so you don't need earmuffs any more:
This version only works on Clozure Common Lisp because it relies on some compiler hacks to intercept the compilation of undefined functions and global variables. But to make up for that, it is integrated into the CCL IDE so that arglist-on-space does the Right Thing for both lexified and standard CL functions.
I'm still working on documentation, but I thought I'd go ahead put this out there in case anyone wanted a sneak preview. Comments, bug reports, and other feedback are of course welcome. The code is here. The paper I wrote about lexicons a while back (which is now somewhat out of date) is here. You will also need this utility file.
Also on my todo list is getting all my public code into a git repository. Yes, I'm embarrassed that I haven't done this yet.
The main difference between this version of lexicons and previous versions is that lexicons are now seamlessly integrated with packages. Every lexicon now has a corresponding package with the same name, and lexicons store their bindings in symbols interned in those packages. So there is a straightforward mapping of lexical bindings to symbols.
The upshot of this is that you can now easily "lexify" a CL package make it accessible via a lexicon "wrapper." For example:
? (require :lexicons)
...
? (in-package :lexicons)
#<Package "LEXICONS">
? (defun foo () (scan "(a)*b" "xaaabd"))
Note that SCAN is not yet defined. Normally, this is what would happen next:
;Compiler warnings :
; In FOO: Undefined function SCAN
FOO
You would now have to go through the following steps:
1. Load the library with the SCAN function
2. Unintern the SCAN symbol in the current package
3. Import the SCAN symbol from the library
4. Recompile FOO
But watch this trick:
;Compiler warnings :
; In FOO: Deferring lexical binding of SCAN
FOO
? (require :cl-ppcre)
...
:CL-PPCRE
NIL
? (lexify-package :cl-ppcre)
#<Lexicon CL-PPCRE>
? (use-lexicon :cl-ppcre)
(#<Lexicon CL-PPCRE>)
? (foo)
Resolving binding of SCAN
1
5
#(3)
#(4)
Note that not only did you not have to futz around with uninterning any symbols, but you didn't even have to recompile FOO for it to do the Right Thing. Also, if we call FOO again:
? (foo)
1
5
#(3)
#(4)
notice that the deferred binding is only resolved once.
This version of lexicons aims to be a fully functional replacement for all applications of packages except for a few really esoteric symbolic computation applications. It provides lexical versions of function definitions, global variables, classes, class slots, methods, and macros, including fully hygienic macros using a technique invented by Pascal Costanza. (Actually, I came up with it independently, but Pascal greatly expanded on the basic idea.) It even provides dynamic bindings for lexical variables, so you don't need earmuffs any more:
? (ldefvar x 1)
1
? (defun dynamic-binding-demo () x)
DYNAMIC-BINDING-DEMO
? (let ((x 2)) (list x (dynamic-binding-demo)))
(2 1)
? (dlet ((x 3)) (list x (dynamic-binding-demo)))
(3 3)
?
This version only works on Clozure Common Lisp because it relies on some compiler hacks to intercept the compilation of undefined functions and global variables. But to make up for that, it is integrated into the CCL IDE so that arglist-on-space does the Right Thing for both lexified and standard CL functions.
I'm still working on documentation, but I thought I'd go ahead put this out there in case anyone wanted a sneak preview. Comments, bug reports, and other feedback are of course welcome. The code is here. The paper I wrote about lexicons a while back (which is now somewhat out of date) is here. You will also need this utility file.
Also on my todo list is getting all my public code into a git repository. Yes, I'm embarrassed that I haven't done this yet.
Friday, February 19, 2010
My love-hate relationship with Apple Computer
I finally got fed up with having to change the batteries in my wireless keyboard all the time so I broke down and bought a new wired keyboard for my Mac. This is my first experience with the new-style keyboards, and I have to say I'm in love. It's the smoothest typing experience I've ever had, and I've been hunting and pecking for a long time. (My first Apple was an Apple II Plus.) I decided to write the blog post mainly so I would have an excuse to do some more typing before I went to bed.
And I absolutely love OS X. Not just because it looks great, not just because it's unix under the hood, but because Cocoa is just a really well designed framework, and Objective C is a hell of a lot less painful to program in than C++. And of course, there's CCL.
But I absolutely hate Apple's heavy-handed approach to iPhone apps. Randomly pulling previously approved apps is more evil than anything Microsoft has ever done, and that is saying something. And not just because they can arbitrarily deprive a hard working coder of their livelihood, but because they seem to be determined to turn the app store into some kind of puritanical Disneyland.
I hate censorship. It's un-American. And I hate Apple for engaging in it.
But oh, I do love my new keyboard.
And I absolutely love OS X. Not just because it looks great, not just because it's unix under the hood, but because Cocoa is just a really well designed framework, and Objective C is a hell of a lot less painful to program in than C++. And of course, there's CCL.
But I absolutely hate Apple's heavy-handed approach to iPhone apps. Randomly pulling previously approved apps is more evil than anything Microsoft has ever done, and that is saying something. And not just because they can arbitrarily deprive a hard working coder of their livelihood, but because they seem to be determined to turn the app store into some kind of puritanical Disneyland.
I hate censorship. It's un-American. And I hate Apple for engaging in it.
But oh, I do love my new keyboard.
Thursday, February 18, 2010
So am I supposed to be afraid or not?
The NY Times (among others) reports:
However...
Eh? Why not?
Huh? I thought terrorism was a crime.
All the data seem to be consistent with the following theory: if a Muslim does it, it's terrorism. If a Tea Bagger does it, it's "merely" a crime.
[UPDATE: Apparently he wasn't a Tea Bagger, he was just crazy.]
A man crashed a small plane Thursday morning into a seven-story office building in Austin, Tex., that houses offices of the Internal Revenue Service, the authorities said. The pilot was killed. Two people were hospitalized, and one person was still unaccounted for Thursday afternoon.
However...
... federal officials emphasized that they did not consider the case to be a terrorist attack.
Eh? Why not?
Officials said the crash was being investigated as a crime.
Huh? I thought terrorism was a crime.
All the data seem to be consistent with the following theory: if a Muslim does it, it's terrorism. If a Tea Bagger does it, it's "merely" a crime.
[UPDATE: Apparently he wasn't a Tea Bagger, he was just crazy.]
Tuesday, February 16, 2010
It gets better
Or worse depending on how you look at it:
"More trouble looms for the IPCC. The body may need to revise statements made in its Fourth Assessment Report on hurricanes and global warming. A statistical analysis of the raw data shows that the claims that global hurricane activity has increased cannot be supported."
Sunday, February 14, 2010
Friday, February 12, 2010
Got git?
One of the reasons I haven't been blogging much lately is that I've been studying Git because it seems to be what all the cool kids are using nowadays. It is taking me a while to wrap my brain around it, but I think it will prove to be well worth the effort. There's a lot of material out there and I don't have a whole lot to add to it, but there are couple of key ideas that I wish someone had told me from the get-go. So here they are for the benefit of anyone who wants to follow me down this rabbit hole.
1. Figuring out revision control systems and deciding which one to use for your own work seems to be a rite of passage for all programmers. Arguably the most crucial task of any non-trivial RCS is doing a three-way merge. Three-way merge is a bit of a misnomer. When you do a three-way merge you are really still merging only two files. But you are doing it with the aid of a third file, which is the "common ancestor" of the two files that you are merging, that is, it's the common file that two divergent lines of development started with before any changes were made. Figuring out which revision to use as the common ancestor for a merge is one of the most complex tasks that an RCS has to do, particularly if the files being merged are the products of previous merges. There are lots of different approaches. This is one of the key features that distinguishes one RCS from another.
2. In order to find common ancestors, most RCS systems explicitly store metadata about the history of a file. In other words, in the RCS database/repository there will be information along the lines of, "The original version of file foo.c was... it was then changed to..." This is the reason that you generally have to use separate commands to inform the RCS when files are created, renamed, and deleted.
3. Most RCS systems store file histories as sequences of changes rather than complete snapshots in order to save space.
4. Git is unique among RCS systems in that it does store complete snapshots and not changes, and it does not store explicit metadata about file histories. Git avoids becoming horribly inefficient by using a content-based storage system so that you don't store multiple copies of the same file. Also, Git finds common ancestors for merging using a heuristic algorithm rather than explicit metadata. This has a number of important consequences.
First, Git is useful for more than just revision control. It can be used as a back-end storage system for a wide variety of applications.
Second, in a "normal" RCS, which stores file histories as a sequence of deltas, these sequences form a chain of dependencies. This makes the repository very sensitive to data corruption; if you lose a delta, all of the downstream snapshots become corrupt. It also makes it difficult or impossible to make retroactive changes to the commit history. But Git stores every commit as a complete snapshot, so there is no chain of dependencies. If part of the repository becomes corrupt, that corruption doesn't "spread downstream" the way it does in a delta-based RCS. Furthermore, the content-based storage system that makes all this efficient uses SHA-1 based hashes as keys. This means that if the SHA-1 hash of an object is correct that guarantees that the underlying data object is not corrupt. So not only is Git able to contain repository corruption when it happens, it is able to detect it when it happens as well. And, as a corollary, it can also tell when corruption has been successfully repaired.
Third, there is no distinction between a commit and a branch except for a little bit of bookkeeping. This means that creating a new branch is no more expensive than creating a new commit. In most RCS systems creating a new branch is a relatively expensive operation. But in Git it's cheap, so creating new branches can become an ordinary part of day-to-day workflow.
5. The underlying machinery of Git (which is called the "plumbing") is pretty simple and easy to understand. By way of contrast, the UI layer that is built on top of the plumbing (which is called the "porcelain") is horrifically complex. It's that complexity combined with the unorthodox nature of Git's design that makes it intimidating for many people. I would recommend learning the plumbing first and then tackle the porcelain. (Here's another handy reference.) I would leave the actual manual for last. It's a good reference once you know what you're doing, but I found it a less than optimal way of climbing the learning curve.
Finally, the Git community is very helpful and supportive. So if you've been thinking about taking the Git plunge, I recommend it. It takes a little getting used to, but once you understand it it's very powerful. Besides, it's better than anything else. :-)
1. Figuring out revision control systems and deciding which one to use for your own work seems to be a rite of passage for all programmers. Arguably the most crucial task of any non-trivial RCS is doing a three-way merge. Three-way merge is a bit of a misnomer. When you do a three-way merge you are really still merging only two files. But you are doing it with the aid of a third file, which is the "common ancestor" of the two files that you are merging, that is, it's the common file that two divergent lines of development started with before any changes were made. Figuring out which revision to use as the common ancestor for a merge is one of the most complex tasks that an RCS has to do, particularly if the files being merged are the products of previous merges. There are lots of different approaches. This is one of the key features that distinguishes one RCS from another.
2. In order to find common ancestors, most RCS systems explicitly store metadata about the history of a file. In other words, in the RCS database/repository there will be information along the lines of, "The original version of file foo.c was... it was then changed to..." This is the reason that you generally have to use separate commands to inform the RCS when files are created, renamed, and deleted.
3. Most RCS systems store file histories as sequences of changes rather than complete snapshots in order to save space.
4. Git is unique among RCS systems in that it does store complete snapshots and not changes, and it does not store explicit metadata about file histories. Git avoids becoming horribly inefficient by using a content-based storage system so that you don't store multiple copies of the same file. Also, Git finds common ancestors for merging using a heuristic algorithm rather than explicit metadata. This has a number of important consequences.
First, Git is useful for more than just revision control. It can be used as a back-end storage system for a wide variety of applications.
Second, in a "normal" RCS, which stores file histories as a sequence of deltas, these sequences form a chain of dependencies. This makes the repository very sensitive to data corruption; if you lose a delta, all of the downstream snapshots become corrupt. It also makes it difficult or impossible to make retroactive changes to the commit history. But Git stores every commit as a complete snapshot, so there is no chain of dependencies. If part of the repository becomes corrupt, that corruption doesn't "spread downstream" the way it does in a delta-based RCS. Furthermore, the content-based storage system that makes all this efficient uses SHA-1 based hashes as keys. This means that if the SHA-1 hash of an object is correct that guarantees that the underlying data object is not corrupt. So not only is Git able to contain repository corruption when it happens, it is able to detect it when it happens as well. And, as a corollary, it can also tell when corruption has been successfully repaired.
Third, there is no distinction between a commit and a branch except for a little bit of bookkeeping. This means that creating a new branch is no more expensive than creating a new commit. In most RCS systems creating a new branch is a relatively expensive operation. But in Git it's cheap, so creating new branches can become an ordinary part of day-to-day workflow.
5. The underlying machinery of Git (which is called the "plumbing") is pretty simple and easy to understand. By way of contrast, the UI layer that is built on top of the plumbing (which is called the "porcelain") is horrifically complex. It's that complexity combined with the unorthodox nature of Git's design that makes it intimidating for many people. I would recommend learning the plumbing first and then tackle the porcelain. (Here's another handy reference.) I would leave the actual manual for last. It's a good reference once you know what you're doing, but I found it a less than optimal way of climbing the learning curve.
Finally, the Git community is very helpful and supportive. So if you've been thinking about taking the Git plunge, I recommend it. It takes a little getting used to, but once you understand it it's very powerful. Besides, it's better than anything else. :-)
I need a sanity check
Last night I was engaged in an email exchange with a person whose views I generally respect. The following exchange ensued, starting me my responding to a point that he had made:
This really bothered me. (I lost sleep over it in fact.) So I need a sanity check. Is it really an insult to say to someone, "You're confusing two different things..."? Or is this person being overly sensitive?
Me: You're confusing two different things ...
Him: No, I'm not confused at all. See, this is why I say that once you start disagreeing it's a waste of time to try to communicate with you. Or at least too upsetting for me to want to engage in. You rapidly veer into putdowns and insults. "You're confused" is an insult. "I have the following different way of looking at it" is a constructive disagreement. See the difference?
Me: I didn't say you were [confused]. "Confusing two different things" and "being confused" are not the same thing.
Him: Stopped reading after this. End of discussion. Thanks for what information you did provide while it lasted. Unfortunate to be reminded of my problems with you. Oh well.
This really bothered me. (I lost sleep over it in fact.) So I need a sanity check. Is it really an insult to say to someone, "You're confusing two different things..."? Or is this person being overly sensitive?
Friday, February 05, 2010
Ron prognosticates: The Supreme Court will uphold human gene patents
It has been a while since I put on my prophet's hat, but this seemed like a good opportunity. The ACLU is suing to stop the patenting of human genes on the grounds that human genes are natural phenomena, which cannot be patented. From a legal point of view the case seems like a slam-dunk to me, and I predict that the district court will rule that way. I then predict that the Supreme Court will overturn that ruling on a 5-4 vote (possibly 6-3 if Justice Bryer retires before then and Obama is snookered into replacing him with a neocon sleeper).
Can you tell that I have gotten a tad cynical about the Supreme Court?
Can you tell that I have gotten a tad cynical about the Supreme Court?
Wednesday, February 03, 2010
Required reading
Just finished reading Karen Armstrong's A Short History of Myth. Totally awesome book. Definitely on my Required Reading list. In fact, I'd say it's a contender for the Most-Important-Book-No-One-Has-Read prize.
A few choice excerpts (and keep in mind, this is written by a woman who considers herself a Catholic):
It's only 149 short pages. Buy it. Read it.
A few choice excerpts (and keep in mind, this is written by a woman who considers herself a Catholic):
Mythical thinking ... ha[s] helped people to face the prospect of extinction and nothingness, and to come through it with a degree of acceptance. Without this [mythical] discipline it has been difficult for many to avoid despair. The twentieth century presented us with one nihilistic icon after another, and many of the extravagant hopes of modernity and the Enlightenment were shown to be false...
[Rationalism] has in many ways transformed our lives for the better, but this has not been an unmitigated triumph. Our demythologized world is very comfortable for many of us who are fortunate enough to live in first-world countries, but it is not the earthly paradise predicted by Bacon and Locke. When we contemplate the dark epiphanies of the twentieth century, we see that modern anxiety is not simply the result of self-indulgeny neurosis. We are facing something unprecedented. Other societies saw death as a transformation to other modes of being. They did not nurture simplistic and vulgar ideas of an afterlife [like having seventy-two virgins in heaven - ed] but devised rites and myths to help people face the unspeakable. In no other culture would anybody settle down to a rite of passage or an initiation with the horror unresolved. But this is what we have to do in the absence of a viable mythology [emphasis added]...
We must disabuse ourselves of the nineteenth-century fallacy that myth ... represents an inferior mode of thought. We cannot ... return to a pre-modern sensibility. But we can acquire a more educated attitude to mythology. We are myth-making creatures... we need myths that help us realize the importance of compassion, which is not always regarded as sufficiently productive or efficient in our pragmatic, rational world. We need myths that help us ... to see beyond our immediate requirements, and enable us to experience a transcendent value that challenges our solipsistic selfishness. We need myths that help us to venerate the earth as sacred ... instead of merely using it as a 'resource'. This is crucial because unless there is some kind of spiritual revolution that is able to keep abreast of our technological genius, we will not save our planet.
It's only 149 short pages. Buy it. Read it.
Thursday, January 28, 2010
Gary Trudeau is totally awesome
He pretty much nailed the iPad in this week's Doonesbury. But don't forget that these strips are drawn weeks in advance.
Wednesday, January 27, 2010
The silence of the depressed
Notwithstanding today's post on the iPad launch regular readers may have noticed Rondam Ramblings has been pretty quiet lately. Frankly, it's because I don't like to write about depressing things, and lately that seems to be all there is.
There was an earthquake in Haiti. Need I say more?
Massachusetts, to honor the memory of the fallen Edward Kennedy, elected a Republican to fill his vacant senate seat, thereby extinguishing any hope of achieving the one thing that Kennedy most hoped to accomplish in his lifetime, namely, to reform the health care system in this country so that people can no longer be rendered bankrupt by falling ill.
The Supreme Court, in a stunning but wholly unsurprising display of hypocrisy (and arguably perjury) overturned 100 years of established law (to say nothing of common sense) to rule that corporations are people and are therefore entitled to the same Constitutional rights as actual human beings. At the risk of stating the obvious, this is hypocrisy because conservatives have been railing for years about "activist judged" legislating from the bench. It's perjury because at least two of the five justices who voted for this decision insisted under oath during their confirmation hearings that they believed in stare decisis. It's unsurprising because... OK, too much time spent stating the obvious. Time to move on.
And as if the Supreme Court wasn't enough, the ninth circuit threw out the civil lawsuit against AT&T for conducting warrantless wiretaps against U.S. citizens during the Bush Administration. The grounds for the dismissal was that the litigants didn't have standing to sue because too many other people might have been wiretapped along with them. Yes, you read that correctly. No, I did not extract that from some neo-Orwellian novel. This is really the world we are living in. Corporations are entitled to the full protection of the Constitution, but actual flesh-and-blood people are not.
I wish I were making this up or being hyperbolic, but I'm not. Democracy and freedom really are crumbling before our very eyes. And what are people paying attention to? The iPad. And Conan O'Brien leaving the Tonight Show.
So that's why I haven't been writing much. Just in case you were wondering.
There was an earthquake in Haiti. Need I say more?
Massachusetts, to honor the memory of the fallen Edward Kennedy, elected a Republican to fill his vacant senate seat, thereby extinguishing any hope of achieving the one thing that Kennedy most hoped to accomplish in his lifetime, namely, to reform the health care system in this country so that people can no longer be rendered bankrupt by falling ill.
The Supreme Court, in a stunning but wholly unsurprising display of hypocrisy (and arguably perjury) overturned 100 years of established law (to say nothing of common sense) to rule that corporations are people and are therefore entitled to the same Constitutional rights as actual human beings. At the risk of stating the obvious, this is hypocrisy because conservatives have been railing for years about "activist judged" legislating from the bench. It's perjury because at least two of the five justices who voted for this decision insisted under oath during their confirmation hearings that they believed in stare decisis. It's unsurprising because... OK, too much time spent stating the obvious. Time to move on.
And as if the Supreme Court wasn't enough, the ninth circuit threw out the civil lawsuit against AT&T for conducting warrantless wiretaps against U.S. citizens during the Bush Administration. The grounds for the dismissal was that the litigants didn't have standing to sue because too many other people might have been wiretapped along with them. Yes, you read that correctly. No, I did not extract that from some neo-Orwellian novel. This is really the world we are living in. Corporations are entitled to the full protection of the Constitution, but actual flesh-and-blood people are not.
I wish I were making this up or being hyperbolic, but I'm not. Democracy and freedom really are crumbling before our very eyes. And what are people paying attention to? The iPad. And Conan O'Brien leaving the Tonight Show.
So that's why I haven't been writing much. Just in case you were wondering.
Since I have nothing better to do tonight
Everyone seems to be talking about the iPad so I guess I may as well pile on.
It seems like a spiffy gadget. It lets you read books, watch videos, check email, browse the web, and make julienne fries. But there is one very important thing that it doesn't do: it doesn't run Microsoft Office. And it never will.
But it runs iWork.
There has been a lot of speculation about why the iPad, like the iPhone before it, is closed and why Apple is exercising such draconian control over the software that can run on it. Some people think it's just a mistake. Some people think it's because Steve Jobs is a perfectionist and a control freak.
I think it's because Steve Jobs wants to crush Microsoft and grind it into oblivion. And the best way to do that is to create a world where Microsoft doesn't even exist, and then lead people into that world.
The iPad is that world.
Think about it. Why would Apple bother developing an office suite? It's a huge amount of work, and everyone knows that a frontal assault on Microsoft's position in that space is hopeless. iWork has never been front-and-center in Apple's product line. It's probably lost them a huge amount of money. Why did they do it?
I think it's all part of the Grand Plan. Apple started by leveraging its software expertise to develop a better way for people to buy music. Now they are extending that same model to make it easier for them to buy books and magazines. Amazon's Kindle tried to do that too, but the problem with the Kindle is it's a unitasker. It does a respectable job of letting you read a book, but that's all it does. The iPad does it all.
Including letting you run iWork. But not (are you starting to see a pattern here?) Office.
iWork has a good chance of displacing Office not by being better than Office, but by rendering Office superfluous. People won't buy iPads to run iWork. They'll buy them to read books, watch videos, play games, and surf the web. iWork will just sort of come along for the ride. And one day the sun will rise on a world where a critical mass of people will suddenly realize that, you know, iWork seems to get the job done on our iPads, do we really need to shell out $400 to run Office on our desktops?
And on that day Microsoft will be toast.
Ironically, despite the fact that I am a card-carrying Microsoft-hater, I will not be celebrating their demise if it comes about in this way. I am a big fan of open systems. I adore my Mac, but I have a love-hate relationship with my iPhone. It's a really neat, almost miraculous gadget. But I hate the fact that I am beholden to Apple in what I can and can't do with it.
There's one other cogent observation that seems to have gotten lost in the twilight zone between hype and grumbling: it's not just Apple's hardware that is remarkably innovative and effective, but their marketing is noteworthy as well.
Tent revivalists have known this for hundreds of years. I wonder why it's such a hard lesson for technical people (and atheists) to learn.
By the way, did anyone notice that the President gave the State of the Union speech today?
It seems like a spiffy gadget. It lets you read books, watch videos, check email, browse the web, and make julienne fries. But there is one very important thing that it doesn't do: it doesn't run Microsoft Office. And it never will.
But it runs iWork.
There has been a lot of speculation about why the iPad, like the iPhone before it, is closed and why Apple is exercising such draconian control over the software that can run on it. Some people think it's just a mistake. Some people think it's because Steve Jobs is a perfectionist and a control freak.
I think it's because Steve Jobs wants to crush Microsoft and grind it into oblivion. And the best way to do that is to create a world where Microsoft doesn't even exist, and then lead people into that world.
The iPad is that world.
Think about it. Why would Apple bother developing an office suite? It's a huge amount of work, and everyone knows that a frontal assault on Microsoft's position in that space is hopeless. iWork has never been front-and-center in Apple's product line. It's probably lost them a huge amount of money. Why did they do it?
I think it's all part of the Grand Plan. Apple started by leveraging its software expertise to develop a better way for people to buy music. Now they are extending that same model to make it easier for them to buy books and magazines. Amazon's Kindle tried to do that too, but the problem with the Kindle is it's a unitasker. It does a respectable job of letting you read a book, but that's all it does. The iPad does it all.
Including letting you run iWork. But not (are you starting to see a pattern here?) Office.
iWork has a good chance of displacing Office not by being better than Office, but by rendering Office superfluous. People won't buy iPads to run iWork. They'll buy them to read books, watch videos, play games, and surf the web. iWork will just sort of come along for the ride. And one day the sun will rise on a world where a critical mass of people will suddenly realize that, you know, iWork seems to get the job done on our iPads, do we really need to shell out $400 to run Office on our desktops?
And on that day Microsoft will be toast.
Ironically, despite the fact that I am a card-carrying Microsoft-hater, I will not be celebrating their demise if it comes about in this way. I am a big fan of open systems. I adore my Mac, but I have a love-hate relationship with my iPhone. It's a really neat, almost miraculous gadget. But I hate the fact that I am beholden to Apple in what I can and can't do with it.
There's one other cogent observation that seems to have gotten lost in the twilight zone between hype and grumbling: it's not just Apple's hardware that is remarkably innovative and effective, but their marketing is noteworthy as well.
Apple has figured out what the entire world wants and it is magic and revolution. That’s how they’re selling it. They figure the only people who won’t want an iPad are people who don’t like magic.
Tent revivalists have known this for hundreds of years. I wonder why it's such a hard lesson for technical people (and atheists) to learn.
By the way, did anyone notice that the President gave the State of the Union speech today?
Tuesday, January 19, 2010
We are well and truly fucked
Republican Scott Brown has won Ted Kennedy's Senate seat. Just when I thought there might be some hope for the future.
Sunday, January 17, 2010
What does atheism have to offer Hatians?
If ever there was proof that religion is not going to yield to reason surely it must be the sight of Haitians praying to God for relief from their suffering. That God either doesn't give a tinker's damn about Haiti, or else has has such a cruel and twisted disregard for the suffering of innocents that we would call Him a psychopath or the devil incarnate were he anything but God, cannot possibly be made any plainer. And yet the sound of prayer is heard in Port au Prince. Surely it must occur to the Richard Dawkinses of the world to wonder why? If having their lives destroyed isn't enough to convince these people that God doesn't love them, can anyone really believe that reading "The God Delusion" is going to do it?
The reason that Haitians turn to God is self-evident: it's all they have. When your entire country is in ruins and your family is dead and you can't even go down to the corner liquor store for a fifth of vodka in which to drown your sorrows, you are faced with this choice: turn to God, or try to salve your emotional wounds by contemplating the finer points of plate tectonics. Is it really all that mysterious that Haitians choose God?
Religion may be false by scientific standards. It may be a delusion. But it nonetheless has something real and powerful to offer: hope. A sense of purpose. A reason to go on even in the face of unspeakable horror. Even though I've seen a bit of the third world, I can't even begin to imagine what it must be like in Haiti right now. Richard Dawkins speaks about truth as the greatest good, but I wonder if even he would be so callous as to walk up to a Haitian mother praying to God after she has lost all her children and volunteering that, by the way, the God she is praying to doesn't exist.
That notwithstanding, I applaud Dawkins for taking a prominent and God-free lead in providing material aid to Haiti. That will win more hearts and minds than strident rhetoric can ever hope to.
The reason that Haitians turn to God is self-evident: it's all they have. When your entire country is in ruins and your family is dead and you can't even go down to the corner liquor store for a fifth of vodka in which to drown your sorrows, you are faced with this choice: turn to God, or try to salve your emotional wounds by contemplating the finer points of plate tectonics. Is it really all that mysterious that Haitians choose God?
Religion may be false by scientific standards. It may be a delusion. But it nonetheless has something real and powerful to offer: hope. A sense of purpose. A reason to go on even in the face of unspeakable horror. Even though I've seen a bit of the third world, I can't even begin to imagine what it must be like in Haiti right now. Richard Dawkins speaks about truth as the greatest good, but I wonder if even he would be so callous as to walk up to a Haitian mother praying to God after she has lost all her children and volunteering that, by the way, the God she is praying to doesn't exist.
That notwithstanding, I applaud Dawkins for taking a prominent and God-free lead in providing material aid to Haiti. That will win more hearts and minds than strident rhetoric can ever hope to.
Saturday, January 16, 2010
Breaching airport security at LAX -- by accident
Reading about the latest breach of airport security reminded me of something that happened to me a few days ago at LAX. I had arrived early to pick up a passenger, and I took a somewhat obscure but nonetheless publicly accessible route into the terminal. I ended up behind the security barriers newly erected in the aftermath of the undiebomber. I'm not sure who was more surprised, me, or the TSA security guard who asked me what I was doing there.
I debated with myself for quite a while over what to do. I had just penetrated a significant layer of security at one of the country's major airports by accident, without even trying or intending to. Should I report it? To whom? A TSA agent already knew I was there and didn't seem to care. Could I expect less apathy from someone else higher up in the chain of command? Could I even *find* someone higher up in the chain of command? Did I have any reason to believe that when I pointed out that I had gotten somewhere that I wasn't supposed to be that they wouldn't arrest me and ship me off to gitmo?
I decided I really didn't feel like being detained, so I discreetly vacated the restricted area, picked up my passenger, and went home. But I'm posting this as an experiment. This is a public blog, and I'm reporting a serious security breach as a major U.S. airport. I wonder if anyone in our country's intelligence apparatus is going to notice this and contact me for more information. I'll give long odds against it.
I debated with myself for quite a while over what to do. I had just penetrated a significant layer of security at one of the country's major airports by accident, without even trying or intending to. Should I report it? To whom? A TSA agent already knew I was there and didn't seem to care. Could I expect less apathy from someone else higher up in the chain of command? Could I even *find* someone higher up in the chain of command? Did I have any reason to believe that when I pointed out that I had gotten somewhere that I wasn't supposed to be that they wouldn't arrest me and ship me off to gitmo?
I decided I really didn't feel like being detained, so I discreetly vacated the restricted area, picked up my passenger, and went home. But I'm posting this as an experiment. This is a public blog, and I'm reporting a serious security breach as a major U.S. airport. I wonder if anyone in our country's intelligence apparatus is going to notice this and contact me for more information. I'll give long odds against it.
Saturday, January 09, 2010
Isis: the plot thickens
I just got an email from someone named Andrew Molloy regarding the Isis puzzle. I post it here with his permission and without comment, except to say that I am not terribly surprised:
I just read your blog on the Isis adventure. Interesting to see negative feedback from a customer's point of view. I have nothing to do with the Isis puzzle, but I designed their "NKryptor" puzzle (the physical part of it). You may find their business practices dubious for the customer, but they're also pretty dubious from inside as well. I was a self employed contractor and I got royally stiffed by them. As did another contractor who came on board for the electronics of that puzzle and then went on to design the Ramisis. It's essentially a one man driving force in that company called Andrew Reeves, who basically takes advantage of people and then takes all the credit. It doesn't surprise me at all that his method of squeezing out the money is by "extorting" the customer and forcing personal details from you. It may not get passed on but it doesn't stop him from sending you details of his own ridiculous pyramid schemes.
Building git 1.6.6 on Snow Leopard
Geek stuff ahead. You have been warned.
I've been agonizing over the choice of revision control systems and finally decided to take the plunge and go with git instead of mercurial because it seems to be what all the cool kids are using. So I downloaded the latest version (1.6.6) but when I tried to build it on my Mac I got this:
Several hours of Googling, hacking, and premature hair loss later I found a blog entry from Simon Engledew revealing that the problem seemed to be an out-of-date copy of Macports. Simon recommends nuking Macports with a "terrifyingly brutal" (his words) string of rm -f commands.
It was a little too terrifyingly brutal for me. A little poking around revealed that there's a less terrifying way: just add the following line to the top of the Makefile:
(There's probably a Make wizard out there who knows how to do this at the command line, but I am not he.)
One final wrinkle: don't run configure. I accidentally forgot to run configure but it worked anyway. I went back and ran it figuring that I might have built a time bomb, and then the build failed. So I went back and did a clean configure-less build and ran the test suite (which is impressively extensive) and it passed.
That's how I did it. YMMV.
I've been agonizing over the choice of revision control systems and finally decided to take the plunge and go with git instead of mercurial because it seems to be what all the cool kids are using. So I downloaded the latest version (1.6.6) but when I tried to build it on my Mac I got this:
ld: warning: in /opt/local/lib/libz.dylib, file is not of required architecture
Several hours of Googling, hacking, and premature hair loss later I found a blog entry from Simon Engledew revealing that the problem seemed to be an out-of-date copy of Macports. Simon recommends nuking Macports with a "terrifyingly brutal" (his words) string of rm -f commands.
It was a little too terrifyingly brutal for me. A little poking around revealed that there's a less terrifying way: just add the following line to the top of the Makefile:
NO_DARWIN_PORTS=1
(There's probably a Make wizard out there who knows how to do this at the command line, but I am not he.)
One final wrinkle: don't run configure. I accidentally forgot to run configure but it worked anyway. I went back and ran it figuring that I might have built a time bomb, and then the build failed. So I went back and did a clean configure-less build and ran the test suite (which is impressively extensive) and it passed.
That's how I did it. YMMV.
Thursday, January 07, 2010
A robotic floor cleaner that could actually work
Being the tech geek that I am I of course had to get a Roomba when they first came out. It was a fun little toy, but not really practical. It missed a lot of dirt, it was noisy, and it took a looooong time to get the job done. And when it was finally done, emptying the dustpan was a messy chore, almost worse than having to clean the floor yourself.
Now, Evolution Robotics has announced a next-generation robotic floor cleaner called the Mint. Unlike the Roomba, the Mint uses Swiffer pads instead of a vacuum, so it should be a lot quieter and easier to clean up afterwards. Also, it cleans systematically instead of randomly, so it should do a much better job. It remains to be seen if the beacon that the Mint uses for navigation is really robust (does the signal penetrate walls?) but otherwise it looks very promising.
The Mint will be available, I am told, in June.
Now, Evolution Robotics has announced a next-generation robotic floor cleaner called the Mint. Unlike the Roomba, the Mint uses Swiffer pads instead of a vacuum, so it should be a lot quieter and easier to clean up afterwards. Also, it cleans systematically instead of randomly, so it should do a much better job. It remains to be seen if the beacon that the Mint uses for navigation is really robust (does the signal penetrate walls?) but otherwise it looks very promising.
The Mint will be available, I am told, in June.
Subscribe to:
Posts (Atom)