|
wolog.net
(without loss of generality...) |
|
If you have ever loved or cared for me, i would like to say thank you. I realized i wanted to say this a little while ago, when i was cleaning up my room and came across some of the letters and notes i've received from people who were close to me. They reminded me how incredibly lucky i've been.
This is one of the funniest and most awesome things i have read in a long time. Definitely worth checking out, especially if you ever wonder about the nature of consciousness. GENERAL FRED: Are you sure?1 comment | post a comment
When i arrived at the Intercontinental Hotel i was pleasantly surprised to run into
I found out that Attorney General Michael Mukasey is speaking at the Commonwealth Club tomorrow. I decided to buy a ticket and attend, figuring i might not get a chance like this again. I hope to ask him: Title 2, Section 192 of the U. S. Code says that refusing to testify or produce documents in response to being summoned by Congress is a misdemeanor punishable by fine and imprisonment. It does not equivocate. It doesn't say it's a misdemeanor unless the President prefers someone not to testify. Section 194 says that when someone violates Section 192, a U. S. attorney has the duty to bring the matter before a grand jury. It doesn't say that this duty only exists unless the President prefers the law not to be enforced.If you know anything about how these sessions are run, or how one gets to ask questions, please do tell. 2 comments | post a comment
I'm starting a new open source project. It's something i've been thinking about for quite a while now, and have mentioned to people here and there. Let me tell you a bit about it. Exhibit A: a book on gender differencesA little while ago, i wrote about a newspaper article in the SF Chronicle. The subject of the article was a new book by Louann Brizendine called The Female Brain. On the cover of the book is a brain-shaped mass of white plastic telephone cord, the old kind that comes in a long springy coil — a visual wisecrack depicting the book's central claim that women are born communicators ("excess testosterone shrinks the communications center").The book jacket lists several gender stereotypes as bullet points. One of them is a specific numerical claim: A woman uses about 20,000 words per day while a man uses about 7,000. Other sources give a wide range of numbers, from "7,000 vs. 2,000" to "50,000 vs. 25,000". Perhaps a lot of people believe women are inherently more talkative. But there doesn't seem to be much evidence to back this up. Actually, a recent study suggests that men and women talk about equally much. Nonetheless, Brizendine's claim was quoted all over the media. It made a huge impact (the book was a bestseller), and a considerable amount of time went by before it was debunked. To a casual observer, the claim probably doesn't even appear to be debunked at all: a reputable scientist says one thing, a little while later another scientist says the opposite — who's to say which is right? Another virtual throwing up of the hands, another shaking of heads, another anecdote about those silly academics who can never agree on anything. Catching and recovering from misconceptionsOf course, this sort of thing goes on all the time. Brizendine, as i said, is a reputable scientist — she is a medical doctor and has been on the faculty at Harvard and UCSF. Plenty of facts and figures quoted in the media are presented by people who don't even claim to be scientists or to have evidence. Public misconceptions are pervasive, stubborn, and can be enormously costly.When you come across a fact — or something that's claimed to be a fact — how do you know whether it's true? Maybe you Google for it; after all, the Web is somewhat more democratic than the TV and print media. But the Internet is also notoriously good at spreading rumours. Maybe you check Wikipedia, trusting its community editing process to do a good job of weeding out errors. Or perhaps you visit Snopes, hoping that the rumour you heard is common enough that someone there will have written an article about it, and you think the people who run that site are pretty decent at what they do. On the other hand, Wikipedia and Google are a little too general: they may give you an article that's generally related to your topic, and then you need to examine it to see if it mentions the particular claim you want to check. And in both cases, the filtering process is hard to examine: Google's ranking algorithm is secret, and although at Wikipedia everything is public, you could spend weeks reading through the discussion pages trying to find out how a particular claim got inserted into the article. Snopes offers an excellent overview of each rumour, but there's only so much that two people can write. And of course you have to trust those two people. An idea for a new serviceSo i think there's a useful service that could be provided by a new website: something with the openness and democratic participation of Wikipedia, but more focused on specific claims and the evidence for them. Thus Factville: a community-edited database of facts and supporting evidence. The site i have in mind would not be an alternative to Wikipedia, but rather a tool to help Wikipedians. A large part of the debating on Wikipedia consists of people gathering sources to support statements they want to put in the article; Factville could help them organize these sources and settle these debates. Factville would also be a tool for bloggers and journalists. When a controversial claim appears in the media, articles spring up all over, taking sides on the claim, quoting and citing sources to support their position. Why not have a place to gather the complete list of sources? Why not discuss them and rate them, the way the Web has taught us to discuss and rate photos, discuss and rate URLs, discuss and rate movies?That's what Factville is about. It's going to be a Frankensteinian cross between Wiki-style websites (community-edited, completely freeform text, with a recorded history of changes to establish accountability) and Flickr-style websites (community-maintained, structured information, with tags, comments, and ratings). The big challenge will be to make this simple and easy to use. Here is the basic design:
A source can be any kind of published work — a newspaper article, a conference paper, a video clip, a blog entry, etc. Some sources stand on their own (like Brizendine's book); others belong to a publication venue and rest partly on the venue's reputation (the credibility of an article in the New York Times is related to your opinion of its editing standards). Citations and sources are separate things because the same source could be used for several claims, or even cited as evidence on both sides of the same claim (perhaps quotations excerpted from different parts of the same source). Information on sources could also be automatically drawn from the syndication feeds of popular publications. When a contributor wants to put together several sources or other claims on Factville, and combine them into a reasoned case for or against a claim, they can write an argument. Other visitors can rate the arguments up or down so that the most convincing arguments get the most attention. The ratings of claims, citations, and arguments are not supposed to tell you what is true. They can only tell you about other people's opinions. But the goal is to give you as complete as possible a view of all the evidence, and to let the collaborative power of a large crowd help you find the most relevant factors to consider, as you make your own decision whether to believe each claim. A modest startI don't have a running website yet. I have a lot of ideas, some in my head and some written down, many in this journal entry. And i have a start at some code that implements the database structure i just described. Today i registered a new project a Launchpad, an open source project hosting service. You can monitor my progress on the Factville page there. The code I've written so far is available from that page. It's written in Python and runs on Django, which i'm still learning. 18 comments | post a comment
Last week i went to the Python Conference in Chicago. It was good to be among that crowd of familiar faces again. I've been feeling somewhat anxious and lonely lately in anticipation of the shift from school to Real Work and my imminent move out of the co-ops (yes, that's still months away but it makes me sad), so it's nice to be reminded of a community i can continue to be a part of. Quite a few Python hackers are at Google (including Guido himself), so i may be seeing more of them soon.
I did finally make a decision about what to do next with my life. I'm going to be joining Google.org in San Francisco. The work they're doing is very exciting — they're taking on some of the really big problems in our world, and i'm thrilled to be joining them. I think two of the biggest factors for me are (a) the huge learning opportunity of working with experts in international health and development, and (b) the openness of the "dot-org" side of the company. Google's culture of intense secrecy was one of the main concerns i had about working for them, and this seems to be much less of an issue at Google.org.
Here's my picture now:
Forces for good:
I realize that everyone probably has different ideas about what should go on this picture, and what arrows should connect them. I think that's interesting — what you choose to put on the diagram says something about your worldview. So: take a few minutes to draw your own diagram. Then take a picture of it and post it in a comment here, or post it on your blog/journal and leave a comment here. I'm curious to see what will show up in everyone else's drawings. 18 comments | post a comment
I've been doing a little brainstorming. Here's what i have so far. If there were no externalities, the free market would solve everything. But that's not real life. So this is a picture of influences that occur outside the free market.
The completely connected triangle — education, health, and poverty — is interesting. There are people, organizations, and movements sitting on each of these arrows trying to influence them. These are some of the "good guys":
Where do you fit on this picture? 50 comments | post a comment
This is the entry in which i confess to one of my compulsive behaviours. My sleep cycle is not the most regular thing in the world (but then again, i hear this is not so unusual for hacker types). Once upon a time i got interested in my sleep patterns,1 and decided to start recording them. So i hacked up a little utility to help me keep a log of when i sleep and wake up, with fairly minimal effort.
So... i'm trying to organize my thoughts on what to do with my life. I've been out of school for a month, interviewing for jobs and coming up with project ideas. I decided that writing might help me sort this out, so i'm going to do some of my thinking here, in the open. I invite your reactions and opinions — some of you know me very well, and your feedback could help me out. DesiderataFirst, a little bit about what i'm looking for.I am convinced that a capable computer programmer can build things of great benefit to the world. I'm not trying to be arrogant; i just think it's true because software and networking enable inventions to spread at incredible speed, and a single person can launch one with nothing more than a laptop and an Internet connection. The software industry is unique in this respect. It only took one person to invent HTML and two people to start Google or Wikipedia. Individual programmers have created things as powerful as Napster (at age 19), Facebook (at age 20?), and BitTorrent (at age 26). So, from a certain perspective, i'm already way behind the game in terms of fulfilling potential. That's my primary goal: for my existence to have yielded things of benefit to the world — hopefully, of significant benefit to many people. That means my decisions hinge on a calculus of benefit, which is of course a complicated and subjective thing. I often find myself feeling like the stonecutter in the fable as i chase down chains of logic trying to figure out how to achieve maximum benefit. In any case, my current line of thinking is that there are five factors in choosing the most beneficial option:
The last factor implies that there has to be something about my skills that fits the project — if the job i do is something that would have been done by someone else anyway, then my choice to join the project has little effect. And the ultimate choice, in terms of the last factor, would be to start and launch something of my own, provided it doesn't duplicate something that already exists. I think of these five factors as combining in a roughly multiplicative way — a × b × c × d × e is the approximate expected utility of making a particular career choice. (Let me know if you notice factors i've forgotten.) Notwithstanding all that, i am biased toward projects that benefit a large number of people and/or people who are less fortunate. I don't know to what extent this is because they are truly more useful, or because i want to be famous or seen as noble. But whatever the reason, it matters to me to do work whose benefit most people can understand. What is the most important problem?There's a saying about how to win a game of Go: simply always make the biggest move. Each stone you play will affect the final score somehow; if you choose moves that are worth more than your opponent's moves, you're bound to win. The hard part is evaluating what each move is worth.I don't expect to save the world by myself, but i'll get further if i have the conviction to focus on something rather than dabbling in a lot of different projects. So, i feel it's time for me to pick a big problem to attack, and after i've chosen it, to go as far down that road as possible. The question is what problem to choose. Below are some possible answers, presented as arguments by imaginary people (members of the committee in my head, you might say). I've also broken these out into top-level comments by me below so you can comment on them individually. ( See the options. ) Your opinions here...Which answer sounds the most compelling to you? Are there other good options i've failed to identify? I'm interested in your thoughts.Update: I've already received several suggestions of the form, "Do what you enjoy." It's good advice, yes, but i should probably explain why i've intentionally left that out of this particular analysis:
Larry Lessig explains the significance of tomorrow's primary.
There are so many more thoughtful and significant things i've been wanting to post about for a few weeks now. I hope i get to them. But today i couldn't resist posting a link for you: I'm still laughing. 12 comments | post a comment
So by now everyone knows that Obama and Huckabee won the Iowa caucuses. But perhaps less well known is the dramatic difference in voter turnout — between Democratic and Republican, and in 2008 compared to previous years.
Some of the numbers above are approximate, but the trend is clear: a huge increase in Democratic caucus participants (78% more than in 2004, and 90% more Democrats than Republicans this year). My understanding is that the Democratic caucuses also require more time and involvement than the Republican ones. All of this adds up to a lot of enthusiastic Democrats — at least in Iowa. Here's what that looks like if you break down each bar according to the proportion of support that each candidate received.
What do you think this means for the election as a whole? Is this phenomenon local to Iowa, or is it a sign of things to come? Sources: MSNBC, AP, CNN, Eric Appleman. 13 comments | post a comment
The Wikipedia article on Canada now has a spoken audio version. post a comment
If you're interested, my dissertation is available on my website and also in the Berkeley EECS Technical Reports archive. I examine the question of how to design election-related software, with particular attention to the threat of insider attacks, and propose the goal of simplifying the software in electronic voting machines. I apply a technique called prerendering to reduce the security-critical, voting-specific software by a factor of 10 to 100 while supporting similar or better usability and accessibility, compared to today's voting machines. Smaller and simpler software generally contributes to easier verification and higher confidence.It turned out bigger than i expected — 324 pages — but don't let that scare you. That includes 14 pages of front matter, 10 chapter cover pages, 11 pages of bibliography, 102 pages of appendices (31 of which are source code), and 5 pages of the GNU FDL. In short, 182 pages of content and 142 pages of fluff. The content is broken up into little sections in an attempt to make it easier to read. Many people contributed to the work. The more i learned about things that other graduate students have had to deal with, the more i realized how lucky i was to have Dave Wagner and Marti Hearst as advisors — they got back to me quickly, read drafts carefully, and had lots of well-thought-out and constructive comments to offer. Candy Lopez showed me around the election office in Contra Costa County and patiently explained to me how everything was done in real life. Noel Runyan and Scott Luebking taught me about accessibility, and i appreciate their advice very much even though the dissertation doesn't address accessibility as much as it could; the research didn't include user testing with disabled voters. Matt Bishop, Ian Goldberg, Yoshi Kohno, Mark Miller, Dan Sandler, and Dan Wallach volunteered a huge amount of time to review my source code. Joe Hall has been a great help on questions about election law and policy. The type is Lucida; i chose it because it has a harmonized family of serif, sans-serif, and fixed-width typefaces. Alas, the original Lucida fonts are unkerned (and the word "Voting" shows up a lot, which makes the lack of kerning more obvious), so i added some kerning pairs by hand. The page design is inspired by Scott Kim's thesis on Viewpoint — he also used Lucida and a wide left margin for small figures and illustrations. It looks like his left margin was chosen to match the first of three equal columns, which would occasionally be used for three equal-sized figures. I moved the left margin so that the vertical edge divides the page in the golden ratio. Just because. If you're curious about the topic of electronic voting, please check it out. I hope you find it interesting. Update: Pvote has a website where you can get the source code and documentation, as well as a sample ballot definition file. Also on that site is the assurance document, which is the specification that was used for the Pvote security review, and a report on the results of the security review. 15 comments | post a comment
Have you seen this? Congressman Wexler is pushing for impeachment hearings for Cheney to investigate his involvement in manipulating intelligence, authorizing torture, ordering illegal wiretapping, obstructing justice, and abusing executive power. To indicate your support, go to wexlerwantshearings.com and join the over 100 000 others who have signed up in just five days. Pass it on! post a comment
I handed in my dissertation today at one minute before closing -- the day before the last day to file. Now i'm really done. What next? How about some sleepzzz.... 21 comments | post a comment
This has to be the most ridiculous conference website i've ever seen. 6 comments | post a comment
This is a follow-up to Why PHP should never be taught. Aaaarghhh!!! It's so arbitrary. 103 comments | post a comment% cat comparison.php <?php $a = -1; $b = 0; $c = 1; $d = True; print "d > $a: "; print ($d > $a) ? "yes\n" : "no\n"; print "d > $b: "; print ($d > $b) ? "yes\n" : "no\n"; print "d > $c: "; print ($d > $c) ? "yes\n" : "no\n"; print "\n"; print "d < $a: "; print ($d < $a) ? "yes\n" : "no\n"; print "d < $b: "; print ($d < $b) ? "yes\n" : "no\n"; print "d < $c: "; print ($d < $c) ? "yes\n" : "no\n"; print "\n"; print "e > $a: "; print ($e > $a) ? "yes\n" : "no\n"; print "e > $b: "; print ($e > $b) ? "yes\n" : "no\n"; print "e > $c: "; print ($e > $c) ? "yes\n" : "no\n"; print "\n"; print "e < $a: "; print ($e < $a) ? "yes\n" : "no\n"; print "e < $b: "; print ($e < $b) ? "yes\n" : "no\n"; print "e < $c: "; print ($e < $c) ? "yes\n" : "no\n"; ?> % php comparison.php d > -1: no d > 0: yes d > 1: no d < -1: no d < 0: no d < 1: no e > -1: no e > 0: no e > 1: no e < -1: yes e < 0: no e < 1: yes % back 20 entries |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||