« February 2008 | Main | April 2008 »
March 29, 2008
Dan Solove on Reputation
Clifford Thomson sent me a link to a talk Dan Solove gave at Google on his new book The Future of Reputation. I interviewed Dan on Technometria a while back about his earlier book The Digital Person.
Dan's a very interesting speaker and raises important issues in his books and in this video. This is well worth watching if you're interested in the intersection of privacy and reputation in the Internet age.
9:51 AM | Comments () | Recommend This | Print This
Update Your RSS Feed URL for IT Conversations!
One of the consequences of IT Conversations leaving Gigavox Media and returning to the Conversations Network fold is that eventually we needed to remove 'gigavox' from the feed name. Unfortunately, Feedburner will only forward a feed for 30 days and many RSS readers don't seem process permanent redirects well (change the URL permanently, not just follow it).
As a result, you might not be seeing updated IT Conversations shows in your favorite podcatcher. So, take a few minutes and make sure you're using this URL in your feeds:
http://feeds.conversationsnetwork.org/channel/itc
I checked the feed URL on my copy of iTunes and it seems to have dealt with the permanent redirect just fine (click on the "i" icon at the far right of the podcast name in iTunes to see info related to that podcast).
9:06 AM | Comments () | Recommend This | Print This
March 27, 2008
Slideshows on IT Conversations!
Yesterday I posted Jane McGonigal's talk from ETech 2007 on creating alternate realities. This is the first show on IT Conversations that features our new slideshow tool for playing audio sync'd with the slides. For some talks this can make a real difference in the quality since they rely on the visuals so much. In the past we've sometimes not published good content because it relied too much on the slides. No more! Check it out and let us know what you think.
7:26 AM | Comments () | Recommend This | Print This
March 25, 2008
True Grassroots Politics
I just got back from my precinct caucus meeting (Republican) where I was elected by my friends and neighbors as precinct Vice Chair for the coming two years. I was conducting the meeting as Chair.
I love caucus meetings. This is true grassroots politics. Everyone asking question, voting for delegates to the state and county conventions, paper ballots. There's some good discussion and great participation.
I'm always shocked at how few people, relatively speaking, attend. We had a better turn out than I ever remember, but there were still only around 50 people there out of around 2000 in our precinct. Just showing up gives you a huge voice.
As for me, I ran on a platform of making my vote for congressional representative in Utah's Third district contingent on the degree to which the candidate was willing to take the Change Congress pledge. I explained the four points of the pledge, why I thought they were important, and how while I don't believe that there's general corruption problem in Congress, that I do believe money changes things and we need to find ways to reduce its influence. I felt like there was overwhelming support for that stance.
10:51 PM | Comments () | Recommend This | Print This
CTO Breakfast Thursday
The CTO Breakfast will be held this Thursday, March 27 at 8am in the Novell Cafeteria (Building G). Anyone interested in high-tech and product development is welcome. The discussion is free-form, so feel free to bring some topics to discuss.
Here is a list of upcoming meetings:
- Apr 17 (Thursday)
- May 30 (Friday)
- June 27 (Friday)
Please get them on your calendar!
11:02 AM | Comments () | Recommend This | Print This
Utah Holds Caucuses Tonight: Change Congress
Utah will hold caucus meetings tonight for the purpose of selecting delegates to the county and state conventions. Your voice is amplified many times over by being part of the process that decides who's on the ballot rather than just selecting from a few candidates in November.
The caucus meeting with be with people in your neighborhood--probably people you know. You can find out what precinct you live in by clicking here. Then you can visit the Republican or Democratic Web sites to determine where you should go. (If you're a member of a party other than these two, find your party Web site for caucus locations.)
Once you know where to go, just show up. Both the Republicans and Democrats are meetings at 7pm. You'll find it's a pretty friendly atmosphere. If you want to run as a delegate, it helps to take some friends with you who will vote for you. Being a delegate does take time and involve some meetings (not to mention the conventions themselves) but is a great way to further amplify your voice.
Personally, I'm planning to talk about Lessig's Change Congress movement (I wrote about it while I was at ETech) and my commitment to preferentially vote for candidates willing to take at least part of the Change Congress pledge. If enough delegates did this, we could at least change the part of Congress we're responsible for in Utah.
7:15 AM | Comments () | Recommend This | Print This
March 24, 2008
Parallels and OS X Instability
Lately, I've had a very rocky relationship with my Mac Book Pro. One of the things that attracted me to OS X was its stability. Over the past several months (before and after Leopard) my MBP has had trouble with sleeping, waking, and weird, inexplicable freezing. Often when the machine woke up, it would the screen would be black and never come back. The machine would freeze at odd times and nothing would unstick it. I couldn't even log in remotely using SSH, so it was pretty stuck.
The final straw was erratic mouse behavior. The mouse seemed sluggish and wouldn't follow the track. Only a reboot would cure it and the it would deteriorate over the next 5-10 hours.
I considered an OS reload, but didn't really expect that would solve the problem since these issues had persisted through reloads before. I suspected, but didn't have much evidence that it has something to do with a kernel extension because the locking up was occurring at a deep level.
The good news is that OS X some new tools for exploring what kernel extensions are loaded. I used the following command to see what (besides Apple extensions) were loaded:
kextfind -loaded -not -bundle-id -substring 'com.apple' -print
Doing so revealed about five extensions. I started Google each one and discovered that vmmain.kext was suspected in at least one other case of causing erratic mouse behavior. I didn't want to uninstall Parallels to test this, so I just renamed the plist file in StartupItems so it wouldn't load.
mv /Library/StartupItems/Parallels/StartupParameters.plist foo.plist
Now, after a reboot, Parallels doesn't load and looking at the loaded kernel extensions shows that in particular vmmain.kext hasn't loaded.
I did this five days ago and my machine has been remarkably stable. It feels like my old Mac again. I don't know that it's a Parallels problem--at least not exclusively. I suspect that its an interaction with other things. In particular, I run Parallels and Fusion both and there may be some weird interaction going on there.
I like Parallels. I like Coherence better than Unity. I like the snapshot feature in Parallels because it allows multiple snapshots of the same image. But I need Fusion for running Fedora (Parallels didn't work so well for me there). Fusion also wins on the performance front--particularly with multiple cores.
There are ways to load and unload kernel extensions and that may be a better solution, but for now, I'm just using Fusion to see what happens. I'll let you know if my experiment turns up anything else.
1:10 PM | Comments () | Recommend This | Print This
March 20, 2008
Visualizing Workflow and Transparent Systems
I thoroughly enjoyed Jon Udell's interview with Ward Cunningham on IT Conversations. They talk a lot about Ward's efforts at the Eclipse Foundation to build transparent workflow systems. That is, as Jon puts it:
But what if you could find out, before pressing the Save button, what's going on in that black box? And what if your way of finding out wasn't by reading bogus documentation, but instead by probing the system itself using its own test framework?From Ward Cunningham's Visible Workings « Jon Udell
Referenced Thu Mar 20 2008 08:42:43 GMT-0600 (MDT)
You'll want to read Jon's description of Ward's visible workings along with the podcast to get the most out of it. Better yet, I'd love to have a screencast of the system at work.
At one point Jon and Ward talk about how this might apply to eGovernment. Think about a button you could push at any point that would tell you how your current interaction with a government Web site was likely to proceed. I'd love to see it.
8:49 AM | Comments () | Recommend This | Print This
March 18, 2008
Why Electronic Employment Verification Is a Bad Idea
When Americans (led by Lou Dobbs) scream "do something about illegal immigration" at the top of their lungs, you know we're going to get saddled with a bunch of awful ideas. One of those is Electronic Employment Verification, or EEV. EEV is a plan to create a big federal database of everyone eligible to work. Before a potential employer could give you a job, you'd have to be "cleared to work" by the Feds. Even worse, it will just be an API call to a big database in the sky.
In theory, this seems like a great solution. After all, if we just had a nice API call to make to determine whether or not to give jobs to people we could remove the magnet of lucrative jobs, right? In theory. The problem is the world's a messy place.
in the pilot program that DHS has been running, the error rate is 4.1%. If you do that math (55 million new hires each year in the US), that works out to 11,000 people mistakenly classified as ineligible to work every day! Of course, that won't be you, right? Of course, the error rate is bound to get better, right? Of course, there will be a swift and fair adjudication process, right? If you believe that you don't understand IT or the government very well.
What's worse, it won't even solve the immigration program. It will simply make the value of your identity data all the greater. If you make something worth more, it's more likely to be stolen. Rather than solving the illegal immigration problem EEV will more likely simply increase the incidence of identity theft. Your government at work. Rather than making you safer from identity theft, they're going to make you more susceptible.
Even if you're not one to go in for Orwellian scares about Big Brother growing out of a national ID system, this one has to make you wonder what people in Washington are thinking.
What can you do? Call you congressperson tomorrow and tell them EEV is a bad idea. Give your credentials. Make sure they understand people in their district will have a harder time getting employment. Increasing a tiny bit of friction in the job process is likely to cause big costs for business and government.
For more information and details on EEV, read Jim Harper's excellent policy analysis on it. Disclosure: he quotes me.
7:50 PM | Comments () | Recommend This | Print This
Dreams from My Father: My Attempts to Know Obama
I just finished reading Dreams from My Father: A Story of Race and Inheritance over the weekend. Like many I'm intrigued with Barack Obama and would like to understand him better. I feel like reading the book certainly helped in that quest, but I can't say that it made more--or less--inclined to vote for him.
First, ignoring politics, this is a great book. I enjoyed it thoroughly, sometimes forgetting that what I was reading was autobiography because the story was so good it felt like a novel. Here's a sample from the book (pg 327), one of many I flagged:
What is a family? Is it just a genetic chain, parents and offspring, people like me? Or is it a social construct, an economic unit, optimal for child rearing and divisions of labor? Or is it something else entirely: a store of shared memories, say? An ambit of love? A reach across the void?
I could list various possibilities. But I'd never arrive at a definite answer, aware early on that, given my circumstances, such an effort was bound to fail. Instead, I drew a series of circles around myself, with borders that shifted as time passed and faces changed but that nevertheless offered the illusion of control. An inner circle, where love was constant and claims unquestioned. Then a second circle, a realm of negotiate love, commitments freely chosen. An then a circle for colleagues, acquaintances; the cheerful gray-haired lady who rag up my groceries back in Chicago. Until the circle finally widened to embrace a nation or race, or a particular moral course, and the commitments were no longer tied to face or a name but were actually commitments I'd made to myself.
This is the story of a man of mixed parentage finding himself and where he belongs. The book ends recounting experiences that Obama had visiting his family in Africa--a large extended group that seem, for the most part, to have welcomed him and given him a sense of who he was for maybe the first time.
Now to the political. Obama speaks frequently of an America that transcends race. I think that is much of his appeal--for voters of all races. And yet, if you read the book looking for evidence that he's transcended race himself, you'll find very little. The book is very much about race and his search for his own identity in America in the 70's and 80's.
That's not bad--it's who he was. I'm simply saying that Obama's story is not one of a child of a white woman and black man bringing the divided races together. Sometimes it feels like the opposite as he recounts his experiences.
There's a certain element of redemption in the book. If you look at Obama's trajectory when he was in high school, you wouldn't have picked him to go to Harvard Law and edit the Law Review there--let alone be President of the United States. And yet his story is familiar to anyone who has seen good kids lose their way and then return to the values they learned as children later in life.
And that, I think, is a nice allegory for the hold Barack Obama has over America: he promises redemption for America's past. The ambiguous "hope" and "change" promised by Obama is interpreted by many that we can get past the discomfort of race in American discourse and move on to a different, better place.
And yet, redemption isn't the entirety of Obama's appeal. I find myself drawn to his message not because of his race, but because of his age. I think a McCain-Obama race could shape up to be as much about generational differences as party differences. Many younger voters are going to resonate with Obama's world view and references because he's closer to their age. McCain just isn't that hip.
In the end, I decided that while I enjoyed the book immensely nd would certainly recommend it, it didn't tell me all I wanted to know about Barack Obama. I've picked up Audacity of Hope and will read it as soon as I finish No Country for Old Men (I can't put that one down).
P.S. Small world: I went to Google to find a picture of Obama for this post and found this entry from Eve Maler who went to high school with Barack--or Barry as he was known then in Hawaii. Complete with high school year book page. Check it out!
9:08 AM | Comments () | Recommend This | Print This
John McCain Wants to Be My Friend!
I got an invitation from John McCain to be his friend on LinkedIn:
So far 103 people are John McCain's friends on LinkedIn. I accepted, naturally, based on our close association in the US Navy--not withstanding the fact that he started at the US Naval Academy the year I was born and was just finishing his service when I was an E-5 attached to a recruiting command in Seattle attending school in the Nuclear Propulsion Program.
I've pondered this invitation for the last few days wondering first if it was associated with the campaign at all and then what staffer took it in their head that LinkedIn was a good way to reach potential voters. Many of McCain's links on LinkedIn have the Navy in their backgrounds, but not all.
I'm looking forward to being able to tap into McCain's ties in the Senate to link to others and reach out to his network. :-) Not sure I see the strategy here.
8:21 AM | Comments () | Recommend This | Print This
March 17, 2008
Steve Gillmor on Twitter
I love Steve Gillmor's writing and how he puts things together. Witness this on Twitter.
12:01 PM | Comments () | Recommend This | Print This
v|100 List: I'm On It
I was chosen, for the fifth year in a row, as a member of vSpring Capital's v|100 list. Actually, the reason I started Kynetx was so that I wouldn't get kicked off the v|100. :-) The list is supposed to be of people most likely to start a high-tech business in the next five years, I figured this was my last year before people would start getting suspicious.
From the announcement:
The v|100 was created in 2004 by vSpring Capital as a tool to recognize outstanding entrepreneurs who have ties to the state of Utah. Members of the v|100 become part of a community of entrepreneurs that fosters collaboration and support among its members as they build and grow some of the most exciting companies. Each year, vSpring asks members of the Utah business community to nominate individuals who are most likely to lead a successful startup technology venture in the next five to seven years in a c-level executive role. Those nominees who garner the most votes from their peers in a nominee-only second step of the annual voting process are then elected into the v|100.
"The number of nominations submitted this year exceeds all previous years and we are pleased with the results that the v|100 voting process produces," said Paul Ahlstrom, managing director of vSpring Capital. "New venture creation is critical to the growth of our economy, and the v|100 program consistently identifies individuals who are likely to generate successful ventures in the coming years. The quality of the v|100 recipients is an indication of the vibrancy of Utah's entrepreneurial ecosystem and talent pool," Ahlstrom said.
From 2008 Top 100 Venture Entrepreneurs @ SYS-CON Media
Referenced Mon Mar 17 2008 10:18:55 GMT-0600 (MDT)
I'm honored to be part of the list. It's a good group of people to be associated with and vSpring does things with the v|100 that ensures its more than just a list.
10:33 AM | Comments () | Recommend This | Print This
Starting a High Tech Business: What's Your Story
I'm starting a new business called Kynetx. As I go through some of the things I do, I'm planning to blog them. The whole series will be here. This is the eleventh installment. You may find my efforts instructive. Or you may know a better way--if so, please let me know!
When you talk to someone who's starting a business, ask them what they do--you can tell how far along they are by the answer you get. Every business has a story and it takes time to get that story straight. If they stumble around, say "it's hard to explain," or something like that, you're talking to someone with a brand new idea. This doesn't mean it's not a great idea--it just means that the story hasn't developed yet. I imagine that if you'd talked to Tim Berners--Lee in the first few weeks after he initially thought up the Web, you'd have walked away totally confused.
You may be at that stage. You might feel like you can't explain your idea easily. This isn't just because you can't explain it. It's also a sign that your idea is still developing. There are a few things you can do to get your ideas down and get your story straight.
The most important thing you can do is to keep talking. Talk about what you're doing with everyone you can. The more you explain your idea, the better chance you have of discovering good ways to describe it to others. You'll find a lot of people just nod and say "Wow! That sounds great." Valuable because you got some practice, but the most important conversations you'll have will be with people who challenge your idea and ask questions.
If someone challenges your idea and you feel completely discouraged and ready to give up, question your ability to pull this off. Being successful at a startup requires a good blend of passion combined with enough humility to take advice and good suggestions. You have to be able to take the hits, learn from them, change where necessary and prudent and yet keep the excitement about what you're doing. The most important and valuable conversations I've had are those where someone told me something I didn't want to hear.
I've been working on the idea behind Kynetx for almost a year. In that time, I've had meetings with dozens of people from VC's to friends who I trust. While the core of what Kynetx is hasn't changed, the way we talk about it, the ideas we have for where it can be used, and the way we have thought about funding it have changed dramatically. It's amazing to me how much our thinking has changed over that time. Just last week we had an epiphany on how we explain Kynetx to others that has us all very excited.
You might find it a little discouraging to think that you're going to be a year into something and still discovering new ways to think about it. Actually, I find that to be a lot of fun. The best part, for me, is the discovery.
Let me emphasize again, that the core idea is still largely the same. We've got over 10,000 lines of code at this point--I'd be pretty bummed if we were going to have to throw out our code every time we had a new idea. Once you start cutting code, you're committing yourself in important ways. On the other hand, putting that stake in the ground is also a great way to generate new ideas as well. Since I started writing code in October our progress has accelerated in amazing ways--and the way we thinking about what that code does has changed and become clearer.
I'm lucky in knowing a lot of people in the high-tech industry who graciously agree to talk to me and give me their advice. The secret is that many people like hearing about ideas and giving advice. Don't ask any of these folks to sign an NDA. It's a waste of time and paper and just puts people off. Be respectful of their time and don't be a pest.
Knowing your story will help a lot as you design products, raise money, and explain to your friends and neighbors what you're so passionate about.
7:00 AM | Comments () | Recommend This | Print This
March 12, 2008
Bigger Monitors Boost Productivity
An article in the Wall Street Journal's Business Technology blog reports on research that James Anderson conducted for NEC. The research found:
someone using a larger monitor could save 2.5 hours a day. But James Anderson, the professor in charge of the study, tells the Business Technology Blog to take that result with a grain of salt: It assumes that someone will work non-stop for eight hours, which no one will, and that the tasks they perform will all benefit from a larger screen, which isn't always the case. But things like moving data between files are ideally suited to bigger or multiple screens. Anderson, who uses a computer with two 20-inch screens and one 24-inch one, recommends that businesses take the time to match employees with the proper size screen based on job requirements.From Business Technology : Bigger Computer Monitors = More Productivity
Referenced Wed Mar 12 2008 18:48:39 GMT-0600 (MDT)
I interested that they found no benefit from monitors larger than 24 inches. Task related I'd suppose. I've gotta say, I love 30 inch monitors. Love them.
I'd love to see a similar study on programmers. I'd bet the results are the same.
6:53 PM | Comments () | Recommend This | Print This
March 11, 2008
iPhones On Campus
Abilene Christian University has a program to give all students an iPhone. They've also got a video that shows how the iPhone might be used on campus (the video is conceptual, not factual). I found some of the ideas to be pretty interesting, but wonder how much IT support would be needed to pull them off. For example, in one sequence the students type things into an application running on the iPhone and a tag cloud is built on the projected screen in real time. Slick.
The current standard in teaching IT support is Blackboard and anyone who watches this video and then thinks about what Blackboard can do will be sorely disappointed that our capabilities are so thoroughly limited by this dinosaur from the 90's. Schools pay a lot of money for Blackboard and its one of the worst Web applications you can imagine. If I worked there, I'd be embarrassed to admit it.
All this just goes to show that there's still plenty of blue ocean in the educational and instructional software market if someone were willing to crack that nut.
9:10 PM | Comments () | Recommend This | Print This
Lacy's Woven World Moment
Reading Scoble's Audience of Twittering Assholes on the Sarah Lacy botch of the Zuckerman interview adds a data point--and an interesting one--to something I talked about a few weeks ago in a post entitled Organizing Ourselves. The point of that post was that tools that allow crowds to connect shift the balance and power and that can be a good thing.
The Lacy thing shows the other side--empowered crowds can turn into mobs (I'm using that word loosely here). The technology in use at SXSW allowed the audience to self-organize and take control of the situation. Previously, you might have mentioned to your neighbor that you were bored or you thought a question was stupid. With Twitter, IRC, and other tools a large group of audience members were capable of knowing that others felt the same way they did. They became, in Scoble's words, a audience of assholes.
I think it's important that we ask ourselves how we're using tools. I'm not speaking about some kind of regulation. I'm talking about awareness. Venues like conferences be aware of adjust to this new reality. For one thing, if the audience is going to be twittering and chatting about the speaker in real time, the organizer or session chair better be keyed into their mood. I think it's too much to ask most speakers to be doing that while they're speaking.
Ultimately, this will likely change conferences. Open space style conferences are, I think, better suited to this new power sharing arrangement than traditional conferences because they've turned so much of the conference over to the audience already.
Bonus: Dave Winer has an interview with Scoble on the "trainwreck" at SXSW. Michael Arrington calls the reaction to Lacy's interview a witch burning.
11:27 AM | Comments () | Recommend This | Print This
March 7, 2008
Can Your Programming Language Do MapReduce?
Joel Spolsky has a great, understandable description of what MapReduce is and why you might care. He also speaks to the benefit of learning functional programming, even if your first job interviewer isn't going to ask you "Have you even programmed in {Lisp, Scheme, Haskell}?" We're all going to care a lot more about things like MapReduce as the number of cores on a chip goes up exponentially.
3:50 PM | Comments () | Recommend This | Print This
March 6, 2008
Complete Solution for Unmounting Time Machine Drives
A few weeks ago, I wrote about forcing Time Machine drives to unmount. From a comment to that post by bil_kleb, I learned about Bernhard Baehr's SleepWatcher program that provided a way to create a complete solution. Here's what I did.
Download and install SleepWatcher. There are two installs that have to be done in the right order (StartupItem last). Now whenever you restart SleepWatcher will start as well.
Modifiy your sudoers list. This allows umount to run as the superuser without a password (otherwise you have to type the superuser password everytime you put your Mac to sleep). Use the command sudo visudo to edit the sudoers file. If you don't know vi, get someone to help with this step. You want to add the following line to the end of the sudoers file:
%admin ALL= NOPASSWD: /sbin/umount
This tells the sudo program to allow everyone in the %admin group to execute the umount command as the superuser without a password.
Create a .sleep file. This is where you actually unmount the drive. Put the following in a .sleep account in your home directory (you'll have to create this file)
#/bin/bash # always unmount the drive before sleep sudo /sbin/umount -f /Volumes/Phil\ Backup
You'll want to change /Volumes/Phil\ Backup to whatever the name of your backup drive is (look in /Volumes to find it). Make sure you make the .sleep file executable:
chmod u+x $HOME/.sleep
You can test it by executing the .sleep file from the command line. Your disk should unmount without asking for a password if you've done these steps correctly.
That's it. Now when you sleep your machine the Time Machine drive will unmount automatically. You can add other things to the .sleep file if you like to accomplish anything else you'd like done before the machine sleeps. SleepWatcher will also execute a .wakeup file for things you want done when the machine wakes up.
I've been using this for a few weeks now and it seems to work fine. Every time I sleep my machine, the drive unmounts cleanly as part of the sleeping process.
Anyone have good ideas for other things to do automatically on sleeping and waking? Now that I've got a new hammer, I've looking for new nails!
12:28 PM | Comments () | Recommend This | Print This
CouchDB from 10,000 Feet
Jan Lehnardt and Damien
Katz (click to enlarge) |
Damien Katz and Jan Lehnardt are talking about CouchDB. My students have mentioned it several times and we've had brief discussions about it, but I've never spent much time on it. This seemed like my chance. CouchDB's goal is a simple, non-relational database.
Damien started the CouchDB project after working for a number of years on the Lotus Notes project. He loved the document model of the data store (as did a lot of other people). He wanted an open source version of that model and CouchDB was born.
In real life, most data is document centric--not relational. A business card has all the data on it. The downside is that of your job title changes, a self-contained document model doesn't update that (it's not a separate table). On the other hand, more and more documents are starting to contain references to other data (URLs) which makes up for this in some cases.
CouchDB documents are in a JSON format. If you're not familiar with JSON, it's an XML-like format for storing data, but without the angle brackets. It's easier for people to read and write. It's not a substitute for XML, but it's great when just just need simple structured data. JSON is widely supported.
CouchDB uses an HTTP API. This allows CouchDB to make use of existing caches, load balancers, and analyzers. You can use curl to drive CouchDB from the command line or HTTP libraries for various languages to use it.
CouchDB views allow you to filter, collate, and aggregate data. Views are powered by Map/Reduce. The map stage processes key/value pairs to produce intermediate values and reduce then combines intermediate values for particular key. Map/Reduce is inherently parallelizable making it useful on clusters of machines.
CouchDB is designed to be easily replicated and supports synchronizing machines.
Disks are getting cheaper and machines are being built with more and more cores. That makes a model like CouchDB uses very appealing. CouchDB is written in Erlang and provides a non-locking MVCC and ACID compliant data store.
There are some bonus features: Lucene is integrated for fulltext search and CouchDB also provide JSON searching using JSearch, a wrapper on Lucene for JSON structures.
CouchDB has been accepted for incubation as an Apache project and uses the Apache license.
11:23 AM | Comments () | Recommend This | Print This
March 5, 2008
Larry Lessig on Changing Congress
Larry Lessig on Changing Congress (click to enlarge) |
Lessig's keynotes are hard to blog, but the message isn't. Lessig's basic message is that government makes poor policy--even when the choice ought to be easy. The problem isn't overt bribery. In fact, we may have the best situation we've ever had in that sense. But even good people are affected by indirect dependence on money. Money in politics causes problems in three ways
- Divert access - congressmen pay attention to donors over others.
- Change reasoning -
- Sets up an perverse incentive where regulation creates money raising opportunities
This has created a fundamental loss of confidence where people believe there's corruption even when there's not.
The error, the wrong decisions, are the direct result of the improper dependence of politics on raising money.
There are numerous proposals on what to do to lessen the dependence on money.
Congress is an incumbency machine. The whole set up is designed to make sure the congressman gets reelected. Earmarks are a perfect example. This gives an extraordinary advantage to the incumbent. Congressmen abuse earmarks for the purpose of increasing their personal wealth.
The insiders are the enemy. The outsiders are the only ones who will change this. Technology is not a Utopian solution, but it's the most powerful tool we have to change the system.
Lessig is launching a project, in the spirit of Creative Commons, called Change Congress that would allow candidates to commit to three things (below) and if they did, they'd get a badge for their Web site showing their commitment.
- Stop taking PAC money
- Support banning earmarks
- Support public financing of elections
We can get candidates to consider this by running against them to increase the cost. We can also ask candidates to support it. Delegates are in a powerful position to influence candidates.
8:49 PM | Comments () | Recommend This | Print This
Kicking Ass
Kathy Sierra talks about kicking ass (click to enlarge) |
Kathy Sierra takes the stage again at ETech to talk about kicking ass. She says that people aren't passionate about things they suck at. Finding passion is a way to kick ass.
She talks about neurogenesis, the idea that the brain can change positively. It's more plastic than we ever thought. She recommends an article by Jonah Lehrer in Seed Magazine on the work of Professor Elizabeth Gould. Stimulating environments matter--cages (or cubes) aren't stimulating environments.
The common thread of people who perform at a world class level is that they focus, concentrate, and practice. They put in the time. Putting in the effort is a key factor in more than 90% of the cases. So much for the slacker attitude, huh?
Do experts actually know more? Kathy shows two diagrams of chess positions and asks which is easier to recall. The question is "what do chess masters know" that everyone else doesn't. Chess masters recall "real" boards much better than "non-sense" boards much better than beginners but for non-sense boards, masters have no advantage. But with real expertise, it's not what you know--it's what you do.
Kathy gives some hints on how to kick ass.
- Exploit your telephony superpowers--use mirror neurons to exercise your brain without doing the thing itself. Primates respond to things other primates do by simply watching them. Mirror neurons allow us to run simulations of another persons brain. Video and pictures is better than text. Simulation resolution depends on you--you have to have expertise in the thing you're watching. Don't watch people who suck.
- Reduce interference--stop the mental chatter that's always going on when you try to do something. Tell the dumber part of your brain to shut up.
- Manage your flight or fight response-- Kathy recommends the Stress Eraser.
- Get to know your brain--Your brain is constantly telling you thing are or aren't important that your mind wants to learn. Read A Mind of its Own: How Your Brain Distorts and Deceives and Understanding how good people turn evil (here's a Wired article if you'd like the digest). Exercise (not mental, physical) is important.
Two big problems are motivation and practice. Get unplugged. We're addicted by intermittent variable reward. It's what makes slot machines addictive. It's what makes checking your email addictive. We can't lose the ability or intense concentration. You have to put in the hours.
12:52 PM | Comments () | Recommend This | Print This
John McCarthy on the Elephant Programming Language
John McCarthy (click to enlarge) |
He wasn't on the program, but this morning's keynote was given by Professor John McCarthy--the inventor of LISP and coiner of the term "artificial intelligence."
This morning, he's talking about Elephant 2000, a programming language designed for writing programs that interact with people. One of the things he points out that I find interesting is the idea that the compiler should generate required data structures without the user having to specify them. I'm not sure how that works from his explanation, but I'm certain that if we want languages that admit more parallelism, this is a feature that would help.
He describes the idea of ascribing believe to a thermostat. He uses a simple system like a thermostat not because it's necessary to understand the operation of thermostats, but rather because it's useful for understanding the nature of belief.
ELephant programs have input and output specifications since their goal is human interaction. They also need accomplishment specifications.
He gives some examples of Elephant programs. This, for example sets is a program saying that if the flight isn't full the make a commitment to the passenger and then communicate that act.
if !full(flt) then accept.request(make commitment(admit(psgr,flt))) answer.query exists commitment admit(psgr, flt).
There are more examples online. Obviously, the notation itself is clean. The question is whether you can do something with the semantics associated with the notation. Unfortunately, Professor McCarthy ran out of time and we didn't really get to the punch line, I think.
10:28 AM | Comments () | Recommend This | Print This
March 4, 2008
DIY Drones: Building Cheap UAVs
Chris Anderson (click to enlarge) |
One of the reasons I love ETech is talks like this one from Chris Anderson (of Wired) on building homebrew drones, or unmanned aerial vehicles (UAVs). He has a Web site that shows how to build the various kinds of drones he talked about. He's used Lego Mindstorms, cell phones, and microcontrollers on planes. The results are pretty astounding.
Jordi with the blimp (click to enlarge) |
He wanted something you could do indoors, and hit on the idea of using blimps--which are inherently autonomous since they float. The blimp uses ultrasonic sensors to maintain altitude. When it's powered up it looks determines it's altitude and then holds that. He has infrared beacons that serve as way points. The blimps don't have an absolute frame of reference, but know where they are in the room. Chris describes it as having "sub-Rumba-level intelligence."
Chris has a "blimp board" that he is using for the next generation blimp with motor controllers, compass, ultrasonics, and a even a way to know room temperature (which makes a huge difference with a blimp).
5:51 PM | Comments () | Recommend This | Print This
Amazon's SimpleDB
Jay Ridgeway from Nextumi (click to enlarge) |
This afternoon, I was torn between the session on botnets and one on Amazon's SimpleDB by Mike Culver and Jay Ridgeway. I chose the latter.
The goal is a durable, flexible datastore at a cheap price: $0.14 per machine house, $0.10/Gb into the cloud and $0.18/Gb out.
The API call list is short. Domains are used to partition data. You can think of them as tables, that helps. To add something to a domain you use this syntax:
PUT (item, 123), (description, Sweater), (color, Red), (color, Blue)
The first name-value tuple is the name of the row and needs to be unique. The remaining tuples are attributes and names can be repeated to represent a attribute with multiple values. There are no datatypes. Everything is a string.
A query looks like:
Domain = MyStore ['description' = 'Sweater']
Note that this isn't SQL. :-)
There's a Javascript application called SimpleDB Scratchpad that can be used to play with SimpleDB. All you need is your AWS key.
Jay Ridgeway from Nextumi took the mic to talk about their experience using SimpleDB to implement ShareThis. They've made heavy use of SimpleDB. He concluded with the following list of downsides and upsides. On the downside:
- Limited features
- minimal toolset and documentation
- no experience in house
- high switching cost
On the upside:
- zero software cost
- minimal staff costs
- low barrier to development
- responsive and reliable
- simple, pragmatic solution for a complex problem.
Nextumi does maintain a copy of the raw data in case Amazon ceased to exist for some reason, but using it would obviously require some redesign of their site. I wonder if anyone has created the SimpleDB API on top of BerkeleyDB or MySQL? That would be handy.
SimpleDB doesn't handle binary data well. The best thing is to put binary data in S3 and put a reference to it in SimpleDB.
4:47 PM | Comments () | Recommend This | Print This
Sectored Wi-Fi Architecture
Xirrus Wi-Fi array controller (click to enlarge) |
O'Reilly is using one of these Xirrus Wi-Fi arrays and so far, I've got to say I'm impressed. The bandwidth has been great with none of the traditional conference wi-fi problems we all have learned to live with The picture is of the operational array on the light truss in front of the stage. Looks much cooler in real life since all the lights are blinking! According to the Web site, the XS16, which is what we've got here, can deliver up to 864Mbps of bandwidth. Very cool.
11:35 AM | Comments () | Recommend This | Print This
Your Carbon Footprint
Saul Griffith (click to enlarge) |
This morning's opening keynote at ETech was Saul Griffith who ran down the steps he used to calculate his own carbon footprint and then what he had to do to put himself on a "carbon diet." It's not pretty. Doing the calculation is relatively straightforward in terms of the math, but gathering the data isn't easy. I'm hoping that we can get his slides when we put the audio up on IT Conversations because there's some great data there.
Speaking of IT Conversations, a recent IEEE show has a section on home co-generation. You can buy a furnace for your home right now that generates electricity to create the heat. You get power and heat from the same plant, making it much more efficient than buying power separately. You're still burning a hydrocarbon, but you're essentially getting the electricity for (close to) free. Retrofitting an existing home isn't a problem.
On a similar topic, today I put up the latest Technometria show on green computing. The guest is Jeremy Faludi, an expert in green computing. We talk about the carbon footprint of various parts of the computing industry and also mention where computers can help by reducing carbon use.
11:18 AM | Comments () | Recommend This | Print This
More Macbook Sleep Problems?
I have a suspicion that the most recent OS X (10.5.2) update caused a spate of problems with MacBook Pro's refusing to wake up after sleeping. I base this on two pieces of evidence:
- I've experienced this after months of not having any problem at all.
- An earlier article I wrote on Fixing MacBook pro sleep problems is the number one hit on Google for that search right now and I'm seeing that page referenced at 3 to 4 times the rate is was a few weeks ago.
Anyone else experiencing this?
11:03 AM | Comments () | Recommend This | Print This
March 3, 2008
Top Ten IT Conversations Show for February 2008
Here are the top ten shows on IT Conversations (ordered by number of downloads) for February 2008:
- Muhammad Yunus - Tech Nation (No rating yet)
Dr. Moira Gunn speaks with Dr. Muhammad Yunus, the winner of the Nobel Peace Prize and author of "Creating a World Without Poverty."
- Jerry Thompson - The Future of Voice (Rating: 2.60)
At British Telecom, VoIP technology and the Internet are seen to provide some exciting opportunities to grow new business models. Jerry Thompson, Chief of Applications at British Telecom, talks about BT's transition from being a traditional voice-based telecommunications enterprise to a VoIP-based service provider.
- Steven Pinker - Tech Nation (Rating: 4.57)
Dr. Moira Gunn speaks with Harvard professor Steven Pinker, who talks about how words relate to thinking, and how they also don't.
- Will Glass-Husain - Developing a Successful Open Source Consulting Business (Rating: 4.14)
Technical skill is just one piece of the open source consulting puzzle. Business skills are also crucial. Will Glass-Husain puts it all together in this popular tutorial on running a successful software consultancy. Combining business philosophy with practical tips and case studies, he highlights principles of customer service, time management, sales and pricing to help guide aspiring consultants manage their own business.
- Dr. Joel Selanikio - Jon Udell's Interviews with Innovators (Rating: 4.67)
Dr. Joel Selanikio is the co-founder of DataDyne, a non-profit consultancy dedicated to improving the quantity and quality of public health data. He works mainly in developing countries where the dominant computer is the cellphone, and the dominant network protocol is SMS, a phenomenon that he calls "the invisible computer revolution."
- Phil Windley - Jon Udell's Interviews with Innovators (Rating: 4.67)
ITConversations executive producer Phil Windley, who teaches computer science at Brigham Young University, has worked with students to develop a general framework for online reputation. In this conversation with Jon Udell he discusses the goals and status of the project, and explores ways in which online and offline reputations are both similar and different.
- Jesse Stay - Technometria: Facebook (Rating: 3.25)
Facebook is a social utility that connects people with friends and others who work, study and live around them. It is also one of the hottest websites in today's world, and is having a major impact on career and business. Jesse Stay, co-author of the upcoming book "I'm on Facebook--Now What???" joins Phil and Scott to discuss the book and the current status and future of Facebook, both as a social networking site and a place for business.
- Bill Buxton - Jon Udell's Interviews with Innovators (Rating: 4.00)
Bill Buxton, a principal researcher with Microsoft Research, is the author of Sketching User Experience. In this conversation he talks about design thinking -- a way of producing, illustrating, and winnowing ideas about how products could work.
- Wendell Wallach - The Road to Singularity (Rating: 4.25)
How close are we to the era where intelligent machines will make decisions for us? As systems become ever more autonomous, machine decisions may outstrip our ability to predict them, creating the need for an artificial morality. Yale bioethicist Wendell Wallach takes the role of friendly skeptic in this deeply thoughtful and balanced look at the promises and perils of artificial intelligence, computational ethics and the singularity.
- Sir Edmund Hillary - Tech Nation (No rating yet)
From the Tech Nation archives: the 1993 interview with Sir Edmund Hillary, who together with Tenzing Norgay in 1953 was first to reach the summit of Mount Everest.
It looks like Interview with Innovators and TechNation take the prize this month with three shows in the top ten each. Good work!
9:12 PM | Comments () | Recommend This | Print This
Marc Hedlund: Debugging Hacks, What They Never Taught You About Solving Hard Bugs
Marc Hedlund talks about debugging (click to enlarge) |
There's no doubt that debugging is a critical skill for anyone who codes. Marc Hedlund is talking about how to tackle the really difficult ones. I enjoyed Marc's tutorial from last year, and picked this one on that basis.
Most bugs aren't hard. 95% of the time, you can find a fix easily and move on. Marc's tutorial is about what to do when the simple methods don't work anymore. He gives an example of a login that would fail once every 10,000 times or so. Turns out the problem was a filter that would through out URLs with swear words in them. Finding bugs like that can be hard.
Marc recommmends Why Programs Fail: A Guide to Systematic Debugging . This is a great guide to systematic debugging. Some people are great debuggers. Others can use help.
He uses this example: Segmentation fault using libtidy (symptoms, diagnosis, and bush medicine cure. Here's what he did right:
- Eliminated possible causes and narrowed in
- Wrote a test case that exercise the bug and discovered Rails was factor
- Used source code and a debugger to gather data.
- Noticed a coincidence
- Reproduced failure in his test case.
Here are some common mistakes:
"That doesn't look right, but it's probably fine." If you think there's a bug, there's a bug. Pay attention to small hints. If you can't find anything file a bug report.
"It seems to have gone away." If you didn't fix the bug, it's still there. If you don't understand what the problem is, it will bite you later.
"I bet I know what this is." Wait o form theories until you have data. Let the data lead you. He quotes Sherlock Holmes: "It is a capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts."
"That's impossible." Impossible conditions are often the source of bugs. Set up logging, exceptions,a nd assertions. Make sure you get the report. Make sure you see failure when it occurs. Ignoring the obvious is a good tool. When your Web site produces and exception, send it to the whole engineering team.
"Beats me...probably a race condition." Not all hard problems are race conditions. Usually this means "I don't know." This is forming a theory without data.
"I'm just going to fix this other bug quickly." Don't make any changes until you understand the bug. File and log and bugs you find along the way--but don't fix them. You end up suppressing the first error and missing it.
"That's probably the [server/client] code." Don't guess. Prove it. Be humble--don't assume you're better. If you keep getting wrong reports proof will help.
"I think I found a bug in the OS." In all likelihood, the problem won't be in the libraries of in the operating system. That can happen, but you'd better have pretty good evidence.
"That not usually the problem." Beware of representativeness errors. Sometimes 40-year olds have heart attacks. If the data leads that way, then follow it.
"Oh, I saw this just last week." This is known as an availability error. Third in a week could be an epidemic--or not.
"This guys too smart to make that mistake." Beware of sympathy errors. Even engineers put CDs in upside down. Check the data no matter the source. The opposite is also true: assuming someone's stupid.
"I found a bug and fixed it-done." Finding a bug is different than finding the bug.
"I haven't made any progress--it's still broken." Think of the bug report is a collection of information. Adding data, eliminating theories, and recording changes leads to understanding. Clearing bugs is the end goal, but progress can be represented by other things.
"I've got to get this out now--not time for..." Rushed fixes tend to introduce more bugs. Stick to a good process even if the situation is urgent. Break down suppression and closure.
Here's Marc's general approach to fixing bugs.
- Revert any changes you made looking for a quick fix - Bring the system to its initial state. People usually try something quick. Getting back to the original condition as quickly as possible is important.
- Collect data from each of the components involved - Maintain a page with the most concise problem descriptions. State everything you know for a fact. List the questions for which you need answers. Don't delete data; instead move it to a "probably unrelated" section.
- Reproduce the bug and automate it - You must have access to the reporters environment. Use virtualization and the browser version archives where needed.
- Simplify the bug conditions as much as possible - Con you reproduce the bug in other circumstances. Can you remove a condition and still see it? Are there any contradictions in the conditions? "We only see this on OSX with IE." Can you separate the problem? Could be an error in the data?
- Look for connections and coincidences in the data - Build a set of "that looks weird" observations. Describe all the actors and their roles. Parallel timelines can help. Look at data from client and server viewpoints.
- Brainstorm theories and test them - State each theory separately. Does the theory cover all of the data in the report? Does it explain why the conditions are necessary? Does it cover all the related reports?
- When you find a fix, verify it against the report - Go back and re-read the whole bug report. Run all of your reproduction test cases.
- Check that you haven't created new bugs - Very common for one fix to create new bugs. Automated test quites help enormously at this point. If X was failing under condition Y but not Z and it now passes under Y, does it still pass under Z? Often the answer is "no."
These steps almost always work. You might have to go through it several times. You might need several people to make it work. You might decide its too costly. Even so, if you go all the way through this process, you will get a fix.
I missed 45 minutes after the break because of a conference call I had to join. So, there's a gap here in what Marc said and what I heard.
The best predictor of new bugs is change rate. Code that is changing a lot will have a lot of bugs. Direct QA efforts by counting changes per file. Spend time testing the stuff that changed.
The best estimator of code quality is the rate you find bugs. When the find rate goes down, you're ready to ship. You should ignore every other QA measure.
You can four things with each bug
- Fix it
- Suppress it
- Record it and wait for more info
- Ignore it
You probably can't always afford (1). Of the rest, (3) is the best option.
There's a culture surrounding bugs. Don't scold people for bugs. Everyone creates bugs. If bugs cause punishment, reports will be killed and there will be severe tension with QA. If there's a chronic problem with bugs from one person, deal with it in person.
Reopen rates measure how development deals with bugs. Lots of reopens is a red flag for process--especially within one release. Reopens indicate that bugs are being hidden rather than closed.
Marc has some book recommendations for people who want to understand debugging better:
- Why Programs Fail: A Guide to Systematic Debugging
- Pragmatic Programmer
- How Doctors Think
- Emotions Revealed
- The Complete Sherlock Holmes
3:42 PM | Comments () | Recommend This | Print This
Kathy Sierra: Storyboarding for Non-Fiction
Kathy Sierra talks about storyboarding (click to enlarge) |
How do you create riveting technical presentations and user manuals? Tell a story. Kathy Sierra is teaching the tutorial and using her own experience creating the "Head First" books on Java and Design Patterns as examples.
Define your "post-click" behavior. After someone has gotten your message, what would happen in the reader? Does you message change the readers behavior? Do you know how you want it to change them? You can't create the right material without understanding what you want to achieve. In the case of
What creates a page turner? Suspense, for one. The feeling that you can't wait to see what comes next. Or even just



