Foo Camp '07: June 2007 Archives
One of the absolute coolest and most inspiring things that I saw at Foo Camp this weekend (amongst a massive pile of cool things that I saw), was Colin Bulthaup demonstration of his company's portable power generator:
Colin Bulthaup demonstrating a human-powered generator
This talk came quickly, at the tail end of Martin Benjamin's talk, and offered just as much hope for Africa, if not more.
The device, being built by Colin and his team at Potenco, is an extremely smart and well-engineered human-powered generator. The device is centered around a yo-yo like shape. But instead of spinning a toy, a user pulls a cord (much like starting a lawn mower), transferring energy from the human body into the device. A pulling motion was implemented instead of a crank, because it uses far more muscles in the body, and is therefore can output more energy.
Colin started his talk by mentioning that electricity, when it is available in Africa, isn't very reliable. That is why kerosene is the most popular way to get light. Not only are there some health issues with extensive use of kerosene lamps, kerosene really isn't all that cheap. This means that a renewable energy source, would not only be more economically viable, but it could potentially be healthier as well.
One interesting thing about the power generator is that its output is USB. Colin noted that USB is quickly becoming the standard for charging devices such as mobile phones. He demonstrated a light/USB hub, which can be used for simultaneously charging multiple devices.
In the above photo, Colin also demonstrated how the generator can be taken apart, in order to replace the string in case it breaks. The entire device seemed to be quite well designed. One interesting thing is that the prototypes are built with what is essentially a 3-D printer. Once development is complete, the actual generators will be built in a more traditional manufacturing process, which should get the cost way down (still not sure how cheap it will actually be when it is finished).
I think that the potential of this device to better life in Africa is simply astounding. It was great to see the demo, and I hope that the device reaches the market soon. Just as cell phones have penetrated Africa in a capitalistic way, I hope that this generator can do the same.
For some reason, Foo Campers really like to play Werewolf, an analytic social strategy game:
Brian Fitzpatrick, ??, Chris DiBona, and Chris Smoak playing Werewolf
Chris and I both played a bunch both nights of Foo Camp - it's a pretty fun and interesting game. Chris is talking about bringing it to the South Bay, but we'll have to see if that develops. I recommend playing if you have a group of 9 people or more...
-Andy.
Constraints on products - need to be mass produced, use artifically cheap components, etc. Means that you need to have design in order to satisfy these constraints.
Internet Sensibility - folks who grew up on the intenret. They have different ideas/opinions than "normals". Assumption that we can see how things work, and adapt it. Whatever we do, we do it socially. "Generation C" - defined not by age, but by activity. Very creative. Community based. Comfortable with connectedness - device connectedness, data can move between devices.
Matt Webb, talking about design for "Generation C"
Connected products - adapt to new trends by glomming things on the side (API or physical connector).
Paper by Alex Taylor - "gift of the gab". studied teenagers in the UK, looked at the way they use SMS messages. Show-off text messages (get a viral one early, then you're cool). Resembles gift-giving.
Cigarette pacakge that understands its context of social use - it slides open (looks cool), which makes for more of a conversation starter. There is a social aspect of smoking, where people approach you to borrow a cigarette. Also has a place to write-down phone numbers.
On the web, we like to personalize, or break things apart and understand stuff.
Canon has a MFP where they have build a widget platform, so you can write custom UIs for certain tasks. UI on the MFP is complex (so many features), building a custom UI can radicaly simply for certain tasks. Smart idea, but they charge $5k for sdk and recurring cost for deployments.
We have become design literate, and discerning.
glancing - neat IM app for mac - can do in-between presence states. Group based - supports looking around. Plausibly deniable.
Small groups - immediate network, 1st tier, primary network. Re-inforce importance (would fight to defend) by conversation. Allowing network to influence your desktop.
Products that aren't extensible, social, hackable won't survive over the next 10 years. Generation C requires this.
This is what I woke up to this morning:
Left Nasa to go to Google, because that is where the data is.
ACL - computational linguistic conference. Percentage of papers that mention statistical/probabilistic concepts - rose from 0 in 1979 to 55% in 2006.
More Data vs. Better algorithms - the more data you have, the better your algorithm will perform, even if it isn't the best.
Size of repositories have been growing - Brown Corpus, 1 million words in 1961. The Internet (from authors) - about 100 trillion words, depends on how you count.
Always new words, grows at linear rate. First found by bell labs examining news ticker, they thought it would level out, never has.
Peter Norvig, talking about the amazing things you can do with lots and lots of data
Construct Google LDC N-Gram corpus - analyses Google's index. Over a trillion words, look at # of sentences (95b), then break down sentence lengths (1 word, 2 words, etc).
Data-Derived models
- Parametric model
- Semi-parametric
- Non-parametric - many inputs, keep all the data around
Google Sets is one of the first things that they did.
One source of data is web data, another is interaction with users (Google Trends).
Spelling correction - they do a corpus based correction, not based on dictionary-based. Corpus based knows what words are on the web, but also which ones go together (great for proper names).
How to extract facts?
- build scrapers for individual sites. Based on regex.
- build general pattern (regex) and look anywhere on the web. Have to do post-processing, you'll get things back that aren't as reliable.
- Learn patterns from examples
- Learn relations from examples
Learning from text (machine reading) - multiple levels, chunk text into pieces (concepts), put concepts into relations, learn patterns that represent those relations. Then you feed this lots of text, and the algorithm finds the top concepts, and the words that are most often associated with them.
Tried to do statistical machine translation - by analyzing parallel texts.
Internet has a body of writers, and a large body of readers. Using data to build some AI techniques, to connect writers to readers.
Adam D'Angelo - CTO, Facebook
Facebook platform - growth so far (all in one month):
- half of all facebook users have added an application
- 19 apps with > 1 million users
- 30m page views/day to apps
Apps can be distributed via each other's profile - look at your friends, see what they have, get it that way (viral)
If you build on top of facebook, you get to know your users, but also who all of their friends are.
Adam D'Angelo of Facebook describing the Facebook Application Platoform.
Facebook apps on platform exist as same class as 1st party facebook apps (i.e. photos, notes, etc).
Right now, same difficulty as building a normal web application. Try to make it easier going forward.
The canvas page just has facebook header and sidebar, main content is rendered by the app. Done as a proxy - user sends HTTP GET to facebook, they turn around and send a GET to your app, put it all together, and send back to user. The second GET will include information from Facebook - the user, some guarantee that it is them, etc.
Allow HTML, CSS, even flash to come through on on canvas page. Only restriction is that you don't do fishing (look like facebook). Can even run ads.
Drew Endy, Christina Smolke
http://openwetware.org/wiki/Foo - get PDF of slides
engineering of genomes on scale of baker's yeast - combining dna from two different organisms
sequence fossils in human dna, of virus that infected our ancestors 5 million years ago. elements of it in our dna, not functional. because the viruses broke in different ways, they can infer what the original viruses were like - yes, they were infectious. like jurassic park, but don't need physical sample - because the material is already inside us.
logic made out of nucleic acids - works in test tubes, not cells. there is a way to do it, tho.
greenfuel - trying to put organisms to eat carbon emissions, also nitrogen emissions from factories
can make organisms that take in a signal, and self organize into shapes/patterns. can draw images out of organisms, that have been specifically engineered.
architecture project at MIT where they want to grow houses - GM trees, like weaving vines that the do in france
Christina Smolke talking about coding biology
we have technology for cutting dna, re-combining it, and writing it out. working on doing automated construction (so you don't have to keep bashing it around). Abstraction - mapping higher order constructions down to genetic code. Can do programming of biological circuits.
productivity improvements in dna synthesis and sequencing - the curves of improvement over the last decade vastly outstrip Moore's law.
all of the circuitry that has been built has been totally asynchronous - most biological systems are broad - fanout. we're starting to go for depth (a -> b -> c -> ...). Nothing clocked yet.
http://parts.mit.edu - a collection of biological parts that have been built by students. Once you due the hard part (the engineering), it is easy to manufacture -- they replicate themselves.
Running into challenges around licensing and patents.
Balance between protecting IP and supporting innovation:
- patents
- copyright
- contracts
- public domain
- sui generis - "of its own kind" - a specific system for a specific technology; new legislation
http://openwetware.org/wiki/The_BioBricks_Foundation
paper - "DNA synthesis and biological security"
Really should have been called "Ending Rampant Spreadsheet Abuse".
There are a bunch of reasons people start off with spreadsheets. Even when they hit the limitations of a spreadsheet, they don't migrate to something like File Maker.
What can we learn from spreadsheets? Very focused on entering the data. Don't need to build a model first - instant satisfaction.
Refactoring data models - what starts as a text field needs to become a list (can we smoothly let them do that?)
Excel allows mixing data types in a column - a lot more flexible.
Databases focus on table and form views. There are other views that user might want. Richer visualizations (calendar, maps, charts, etc), inferred from types.
Typing can be explicit, or like Zimbra (& OS X Leopard), software can guess at types (phone numbers, addresses, etc.). Instead of making it totally automatic, putting a UI over it might make sense.
Dabble DB is a product that implements some of these ideas.
Avi Bryant making a point at Foo Camp
Templates? If someone uses a template for project management, they have a bad experience (worse than basecamp). Yet if they build the same thing from scratch, they get all their data where they want, they own it, etc.
Users that don't power-use Excel (don't use pivot tables), can do more with same level in Dabble.
Finding that they have good experience for person who sets up the DB, but poor for people that come in later and look at it (education/understanding). Using someone else's spreadsheet is horrible, also hard with someone else's database.
90% of the userbase can't grok abstractions. So, you either need to avoid them (by giving these users explicit, canned applications), or hide the building of abstractions (example: typing months in Excel, then dragging and having Excel fill in the rest).
Distinguish between creating a field and adding a column - make user create everything, so that they understand that when they build a view, it is just a window on their data.
Comparisons with JotSpot - they designed for 100's of items, average # of items in a Dabble DB is 2000. Make different design decisions based upon how big it will get.
The abuse -- big problems around collaboration. Multiple users editing, viewing in different ways, exposing different slices of data to different users.
Access control is a huge problem -- something they have struggled with. Tested 4 different iterations, and not released any of them due to issues. People want it to be magic. A lot of different implications when you setup a policy (thinking through is hard), UI for setting controls is hard.
People understand playlists vs. smart playlists. Smart playlists are basically a view ontop of your music library, and people can understand it. Not sure how many users actually create their own smart playlists, though...
Charles Platt - writer. Wrote an article "Heart and Cool Oxygen", which describes this technique. You can view some photos of the device that Charles built, as well.
critical care research, inc.
research director - steven harris
Bad news - 300,000 cases of cardiac arrest in the US. Without blood flowing, body goes south pretty quick. Cells lose fluid balance - don't have energy to operate, cells shutdown / swell up, blood vessels squeeze up.
Cells start to poison themselves, and then eventually destroy themselves. Can try to use drugs - but it is a cascade of bad things happening, so you need to take a combination of drugs, which is a combinatorial treatment (multi drug interactions), FDA doesn't like.
CPR doesn't get enough blood to flow.
Can jack up blood pressure, to try and force blood through constricting vessels.
Answer: Reduce temperature of person. Hard to take the heat out quickly - due to body mass, have to conduct heat through mass of tissue, out. We know that cooling works, because of fascinating cases of people found "dead" in snow drifts or ice-cold water. Even with no heartbeat / brain activity for over an hour, can be brought back. Especially children - higher surface area to mass ratio, easier to cool them. Have to cool fairly rapidly.
Hypothermic surgery - brain aneurism that can only be operated on w/o any blood pressure at all - will stop heart completely for upto an hour, by reducing temperature of body by 20 degrees beforehand.
Works even a little after the event.
Clever idea: Lungs have a large area within them, which is good for cooling. Need to use a liquid -- it is more effective than gas. Use perfluorocarbon, which is 1.8 times as heavy as air.
Warm blood goes by lungs, gets cooled, goes up to brain. Super-effective if you start even 15 minutes after cardiac arrest. Critical Care Research is doing tons of animal trials, and has proven this to be effective in dogs - 100% revival rate, no brain damage.
Artificial circulation - something called a thumper, but it has lots of limitations. Something new from Sweden - a band device. It has accelerometers that can tell how hard it is going, to self-adjust to the right rate.
Armpits and groin are best places to introduce cooling.
Totally immersed in ice water is a quarter efficient as liquid ventilation.
Flow the liquid in - takes about 7 seconds, and flow it out right away (10 seconds). Keep this running continuously. Patient is intibated during the procedure, so using a mixture of gas and liquid.
Paul Graham
Tired of talking about startup, practically forgotten about programming languages. Decided to talk about ideas.
A lot of randomness and ephiphay in ideas. But there is stuff you can do to put yourself in position to "receive" the new ideas.
Machinery for having ideas completely independent from wether or not they are good. Can get idea machine running, generating lots and lots of ideas, then point it at something useful, and get good ideas.
Paul is a big passion skeptic - notion that you need to be passionate in order to have new ideas is going around. But you can have ideas about something even if you are bored.
Paul Graham talking out in the tent at Foo Camp
List of way to have good ideas
- Work on hard problems - value is difficulty of problem multiplied by brilliance of solution. If problem is pointless, then doesn't matter how good the idea is.
- Understand the domain of stuff that you're working on really, really well. You can sort of envision the answer, and then work out how to get there.
- Delight in naughtiness - good idea that are obvious, people have already done. Sweet spot is good ideas that most people think are bad ideas. Lisp is an example - nobody else is hacking there, so Paul has all the times he needs in order to work. And there is plenty of room to innovate here, and come up with new ideas. Just because it isn't popular, doesn't mean that there isn't anything useful there.
Paul was constantly getting in trouble when young, still happening but to a different degree. Going to have to learn to lead a double life. Contrarian inclinations are what leads you into these place where other people aren't, to mine out the good ideas.
- You have to be happy to have good ideas.
- Being bored can be conducive to having good ideas - in order to fight off boredom, will come up with new ideas.
- If there is stuff you need to protect, you can't have good ideas. Because you won't have a wide open space within which to innovate. A reason why outsiders have an advantage (having power is bad).
- Public performance - no fear so great as fear of looking a fool in front of your peers.
- Good ideas in the shower, after a plane has taken off, while walking (don't need to pay attention). Think it's because you need to let your mind relax for a little bit, after a period of intense work. Idea comes on the back stroke - can't concentrate too hard.
- Think about how not to have good ideas. Take and idea, and flip it over. The opposite of the opposite is a good idea.
Why Language Matters
- Most tools are wrapped up in language - if you're trying to learn a tool that is wrapped in a different language, it will make the learning process extremely difficult.
Why African languages really matter
- Tried to teach some people how to swim - if the teachers didn't use the students native tongue, the swimming lesson would have ended really quickly.
- Language is the key to knowledge - for reading the news, doing your homework, browsing the web...
- Knowledge is the key to prosperity - for getting a job, selling a product, buying a company
- Very few Africans can access IT in languages with which they are comfortable
- Local language IT - the killer app for technology uptake
- IT master as a path to prosperity: it works in India (for those who speak english), it works for you. How do we make it work in Africa?
Martin Benjamin starting his talk
Swahili Overview:
- 100 million speakers
- About 1.5% of world's people
- Most widely spoken African language
- Started as a participatory "living" project on Gopher in 1994
- ~70,000 bilingual entries
- 10M+ lookups
- tens of thousands of users in Africa (wish it was more - making an SMS frontend could be huge)
- Anyone can edit, but edits must be approved.
- free to search, download, and print
PALDO - future of IT in Africa
- Pan-African Living Dictionary Online
- ~2000 languages in Africa
- 20 language clusters (group of languages that are similar enough that people who know one can kindof/sortof grok another) account for about 85% of the African population, roughly 850M people
- Make each language indexed to every other language - so you can go from any language to any other language
- Start with 10,000 words in each language, based on popularity in Kamusi
- Cross index by machine, later by humans as well
- modular - more languages can be added
- English as the lingua franca - basis of index and translation
- omega wiki - closest project doing a similar thing; PALDO guys are working with them.
- Yale currently holds copyright on the data, but has agreed to release it to a new home, which is yet to be decided.
PALDO and the future of IT in Africa
- Localization (L10n) terminology from OpenOffice and other F/OSS projects to be included
- PALDO will become a central repository of approaches to L10n
- Future software/IT products will be localizable for African markets quickly and effectively
- PALDO will play nicely with others - OLPC, OmegaWiki, translating software, etc.
- With modest funding, specialized vocabularies can be added for many important communication domains, such as Health Care, Law, Business, Agriculture, Environment (conservation)
Needs:
- Technology support - people to write code, admin, etc.
- Funding - likely to get grant that will cover enough to get started
The story of Newton getting hit with an apple, and having an ephiphany about gravity, is a myth - he made up the example for his biographer. We like stories about innovation around an ephiphany -- it puts all of the force of discovery around something external, that could have happened to anyone. The truth is that Newton spent about 15 years working out the math of gravity - we already knew that it existed before he started.
In the book, uses the myths as a jumping off point.
More on ephiphany - there are breakthrough moments, but they come after lots of trial and error. Lots of work. All of the focus tends to be on the sexy "eureka" part, but there is a lot more work that goes into that moment.
Exercise - if you think of yourself as an innovator, you should take an ordinary thing in your life (phone, tv, etc), and go back in time and get the real story about how that thing came into existence. It is surely more interesting and chaotic than you know. Taking risks, doing things against protocol.
If you dig into the history of space travel, it is a chronological of successive failures, punctuated by successes - going into orbit, landing on the moon, etc.
The history of software - have some good books, but don't have many software historians. So, there are a lot of myths there, that haven't been debunked. Usually the people who innovate are humble about what they did.
History of innovation is risk-taking. Most risks don't pan out. But history is focused on change, when things "happen". So, a lot of the work of innovation is lost to the history books. Explorers are another example - they picked points on the map that were unknown, and went there. But there were long periods of dead time - traveling to new turf. Situations where you will be uncomfortable, where you can't control all of the variables.
Persistence plays an incredibly large role in the history of innovation.
Innovation by definition is change - there will always be people who have a negative emotional response to your change.
Anthropologists work in the field of innovation - "Diffusion of Innovations" (book) - that argues that the culture is what brings innovation. What are people ready for, what sorts of things do they want - thus the history of innovation is strongly influenced by what people will adopt, what they are ready for, what can become a popular thing.
3M - Minnesotta Mining Manufacturing. Started as entrepreneurial concern, started in minerals (was hot in 1885). Masking tape was invented at 3M as a skunk works. A sandpapaer engineer was visiting a client, and had an idea for how to solve a problem. He had the idea, but was rejected by his boss 4 times -- had to do it on his own. The boss, who did the rejecting, realized that Masking Tape was a huge product - that he rejected 4 times. So, he didn't want to repeat that mistake, he wanted to institutionalize innovation into the company.
Quote from William McKnight, 3m chairman, 1948
So, I'm spending the weekend camping with 300 of Tim O'Reilly's closest friends in Sepastopol, CA:
Yes, I'm at Foo Camp. While I wasn't cool enough (this year) to be invited, my friend Chris was. And somehow, he managed to convince O'Reilly that I should be allowed to come along (as his personal chauffeur). And they bought it!
I'm expecting a long day of getting my mind blown, and I hope to dump out as much as I can here.
-Andy.