Ivan Krstić at Open Source Summit
Posted in Ivan Krstić
At the Open Source Summit of the Mass Technology Leadership Council, Ivan Krstić, Chief Security Architect, One Laptop Per Child, and Eben Eliason presented a One Laptop Per Child Update.
.Douglas Naplioni: Hello my name is Douglas Naplioni. I am here representing Nuance Communications, Inc., a local Burlington company and the Python Software Foundation. I have the privilege and honor of introducing Ivan Krstic from the One Laptop Per Child Project along with Eben Eliason, I mispronounced that. I apologize. If you are not familiar with One Laptop Per Child, it is a revolutionary project trying to bring education to the children of the world. Without further waiting, here's Ivan.
[applause]
Ivan Krstic: Hi! Thanks. You will need to give me about 30 seconds to get set up. OK Alright. So very glad to be here. I am going to, so I decided to do something different with the format of this talk from what I normally do. I will certainly explain to you what's OLPC, what I do for OLPC and what we are trying to do, but I am going to try to keep the actual talk and the slide deck relatively short. When I am done, I am happy to take questions. I am going to talk about some of the core technologies and some of the core ideas behind the project and then I brought a colleague that Doug also introduced Eben Eliason, who is in the back who is going to come up and show you what we are actually doing on the user interface side and demo an actual laptop for you. So alright then. This is our sort of very brief agenda of things to run through.
This is the URL that if you're interested you should write down. Because I am cutting sort of the actual slide part of this talk very short, there is a very detailed technical talk that I gave at Google just a few months ago. It is pretty much completely up-to-date. It is about an hour long and goes really into complete detail about all the technology stuff that we are doing and I am gong to be leaving a lot of that out today, as I try to instead to get through things quickly and then open up the floor to you for questions. I do like being interactive in talks, so please feel free to interrupt and ask questions at really any time.
So who am I? Why am I talking to you? I run security for OLPC. I do a lot of other system related things. What I don't do is almost anything that the user sees which is why I actually brought Eben with me. OLPC came to me sometime in the middle of last year. It was sort of an interesting conversation. They asked me a couple of questions when I first talked to an OPC person. The questions were: Can you secure 100 million machines? Can you rewrite the file system and by the way, can you make this usable by six year olds? As far as interesting job interviews go, this was quite a trip.
The thing was that I had seen OLPC in the news. I had read about it in the papers. I didn't know that much about what is that they were actually trying to do. And I set out and tried to figure this out on my own. I found something interesting which is that the goal of the organization, the goal of One Laptop Per Child doesn't involve the word laptop anywhere, right? So the goal is very simple. It is four words. Change how kids learn. Laptops are really not in the picture. How does this work, right? How does that function?
Well, if someone tells you we are trying to set out to change learning worldwide. We want to change it all. I hope that the first question that comes to your mind is why? We all did learning probably in this classroom in this room probably the normal way, sort of the whole normal ascension through middle school and high school and college, maybe graduate school, etc. and we all turned out OK. So what is so broken with learning that we have to fix it?
I am skirting over a lot of the depth of an answer to this question but I will tell you one interesting thing that I found when I was thinking about this which was that by the time you are three or four, you learn what I call the fundamental principles which are the extremely non obvious things about how the world functions that you pretty much learn as a kid. You memorize them. You never stop to think about them twice for the rest of your life. They really are completely non obvious. These are things like: the sun comes up every morning and goes back down every night. Water is wet. Fire is hot. Sharp objects hurt. If I jump up, I will fall back down every time, etc. These are kind of arbitrary. I mean you learn them as a kid. They are second nature. You really don't think about them.
So this is by the time you are three or four. I contend that these are some of the deepest and most profound type of things that you learn ever in your life and just a year or two later at 5 or 6, you go into school and things just take a 180 degree turn. What do I mean by this? Well, look at how you learned all those things by the time you were three or four. I don't know very many three year olds that say, "Today I am going to go and do some learning." Right? Maybe that would be pretty cool but I don't think three year olds really do that. Instead, what happens pretty much without fail is they get constantly curious, right? These are kids at the age where there are more questions then there are seconds in the day and because they get answers from parents and peers and friends and because they sort of keep integrating those answers into their vision of how the world works constantly everyday, everywhere, that's how they learn. That's how they come to actually understand these sort of fundamental principles that I talk about.
But here's what happens when you go into school. There is essentially a flag day, right? You go into school and literally at that instant, you are being told that the way you have been learning up to now that's taught you everything you know including these unbelievably deep and profound truths about how the world works, well we are going to throw that out the window and do something totally different. Why? Because we said so and what's a different way? Well, you are suddenly not really learning because of curiosity, you are learning because of authority. There is a teacher telling you to learn things. It happens for particular hours in a day, in a particular place and instead of being this sort of rapid exchange of question, answer, question, answer, question, answer that has been critical up to this point, instead it is very unidirectional. There is a guy. There's a person sitting in front of the room sort of imparting knowledge on you and you are supposed to soak it up as a sponge.
Here's the thing about this. If you grew up in most places of the Western world, you probably have at least once, the experience of going through that process with a great teacher. If you have a great teacher, this is phenomenal. Right? It's one of those rare, fantastic experiences where it just works. Now, thing about it is, if you have a lousy teacher, it is a pretty lousy experience. If you have no teacher at all, the system breaks down. It just doesn't work. If the way you teach kids, if the way kids are supposed to learn is by having that authority figure who is doing the unidirectional thing and he isn't there, well then learning stops and as it happens, outside of the Western world, it is incredibly frequent that there are no teachers whatsoever. In fact, schools in many places are a particular set of trees where kids will come and sit down. There are no classrooms. There are no school buildings and very often, there are no teachers.
So why is this a problem? Well, because about 1/5th, this is actually, around, the estimates right now are about 1.2 billion kids in the developing world. That's 1/5th of the total population of the planet. So, if most of that 1/5th of the global population of the planet doesn't have proper access to learning, we should be worried. Estimates go up to 75% of these kids having insufficient access to education or no access to education.
So I think we can agree what these kids actually lack is not ability, right? It is not a matter of not being able to learn. It is really a matter of not having the opportunity to learn. I'm sorry not having the opportunity to learn, not being put in a place where they can somehow learn despite the failings of the system. What do you do to fix this kind of situation? It is huge. I keep thinking myself about this number, I mean, 1.2 billion people. That's a lot of people.
So how can you even attempt to address a problem of this scale? One solution is you could try and engage yourself in this massive talk down rethinking of everything that is cool is supposed to be. Rethink all of education. Rethink, come up with a global curriculum that everyone can agree on. Train incredible amounts of new teachers. Build incredible amounts of new schools. Get all the schools and all the teachers trained in the new curriculum. Get everyone doing this.
You know, if you are an unbelievable optimist, I think you can say this could take 50-100 years. I am a complete cynic and think this will never happen. But if you are really optimistic, say it's a hundred years. Now remember where we were in 1907 and you will probably realize that the 100 years is a really long time even if somehow magically at the end of those 100 years things will really just get better all of a sudden. Think it's a pretty hard argument to make that they would.
So here was a group of people that came to then found OPC that said there has got to be something we can do about this now? It can't be that we have to wait 100 years before we start seeing some kind of change. What can we do about it? And the next set of questions that were asked was OK well what would constitute the sort of perfect solution to this? What would be the characteristics of such a solution regardless of what the solution is? And there was an agreement on a set of characteristics such as this pure learning thing was awesome when you were a kid. Can we leverage that again to bypass the problem of teachers not being there and schools not being there and get more learning again to be peer-to-peer between the kids themselves?
The other huge thing that's important is you would want to get the element of curiosity back in this picture. Curiosity is pretty universally what drove you to learn everything you know by the time you were three or four. Let's get that back into the picture too. Kids should be able to get curious and get the answers that are behind the questions that he or she has and what's probably more important is that kids should actually grow up knowing that when they get curious, they can get answers to the things they are curious about.
So it was really only at this point in the whole thinking process that we said laptops. We can do this with laptops and we can attack the problem of education and learning with laptops and then we can let sort of schooling which is really a different concept than education fix itself over time. So that's the educational segment. I usually do have quite a lot more to say about this. We can talk about it afterwards so you can ask me questions afterwards if you want me to elaborate on any of that.
How do you build a laptop for kids? Well I will tell you immediately one way that you absolutely don't build a laptop for kids, which is to take any of the laptops in this room and make it cheaper, cheaper, cheaper, cheaper until it costs $100.because what you will have done if you do that, is produced an inferior, outdated piece of technology that gulps an incredible amount of electricity, is underpowered, can't be used for most of the things that you guys can use your laptops. Any teenager in the West would be offended if you gave them such a laptop. It would break if you dropped it on the ground. It wouldn't work in many of the places in the world that we are interested in that are either too hot or too rainy or too humid for normal laptops to operate. Really you wouldn't have done much at all if that's all you did.
So what do you actually do? How do you build a laptop for kids? Here is the X0-1 laptop and Eben, my colleague, will do a short demo for you afterwards. This is what the laptop looks like and I will open it up for you. So this is the machine. This is our pride and joy. I will pass it around in a bit. What's in here? Ultra low power, little AMD Geode processor running at about 433 MHz. To put this into perspective, 433 MHz is about one of the more powerful machines, more to most powerful machines you would have owned in 2000 if you are at sort of the front of the curve in the West. So at the height of the dotcom boom, certainly people didn't think that their computers were useless and not powerful enough. This is what they were using. So this is not nearly as antiquated as it sounds.
So we actually did an upgrade. This is a more recent processor than we originally announced. It has a lot more cache on there so things like Python can run a lot faster, I can talk about that a little bit later. There is 256 megs of RAM. There is a gigabyte of solid state storage. There is no hard drive in here. It is all flash. There are no moving parts and the solid state storage has a limited number of write to raise[sp] cycles but they are wear leveled so the entirety of the flash gets utilized equally.
When we say ultra-low power, we really mean ultra-low power. In many of the places where we are going there just isn't electricity period. At best, you can get electricity for certain hours of the day in the school and maybe in one or two other places in the village. But in many villages, there just isn't electricity period. So we realize that with modern laptops drawing around 40 watts, there is just no way that you are going to be able to keep these powered and batteries recharged.
It is not enough to go from 40 to 20 watts. You really need to be going from 40 to a watt. So that's what we did. Our peak power consumption this means if you pegging our CPU and using all the peripherals that we have hooked up, the peak consumption is about 4 watts so still an order of magnitude improvement over normal. If you are using the machine for standard activities, you are really looking at about 2 watts. If you are using it in the ebook mode, you are using it as a book reader, you are looking at 1 watt or sub 1 watt power consumption.
We are, to be able to do this we are doing the sort of the most ridiculously progressive power management that I think has ever been done on a consumer device period outside Linux and outside everything else. Another thing I am going to skirt over but I am open to you asking me about it is essentially what we are doing is every few seconds that you are not actively utilizing your computer or the screen is not actively being changed, the computer will go into full suspend mode, except the screen, the image will still stay on the screen and if you move the mouse or press a button will wake up the entire laptop in about 100, 120 milliseconds, so much faster than you can notice that the laptop was ever suspended.
The way we did this for those of you that are curious is we basically ditched ACIP which is the standard way of doing power management and just rerolled a completely different approach. The screen we have in here is quite a bit of a little marvel of engineering. It is something that we invented in house. It's a screen that is what we call dual mode, meaning you can use it in a very high resolution monochrome mode, so resolution wise that's 1200 x 900, 200 dots per inch which means it looks pretty much like a printed book if you are looking at the screen and you can then normally use it as a medium resolution color screen like you would be used to on a normal laptop. 692 x 520 in the medium color mode is roughly equal to 800 x 600 in terms of what you get.
The neat thing about the screen is that it is sunlight readable with the back light off. So here are two laptops. One is from a leading worldwide laptop manufacturer. [laughter] One is our cute one and they are showing the same image on their screens. We are doing 802.11s ESS mesh networking which means we don't depend on there being access points in order to connect multiple laptops together. The user model what you want for these kids is if three of them have a laptop and they go and sit under a tree somewhere, they should be able to open their laptops and not even care about what networking or wifi or access points there are. It should just work. They should create a network and be able to do things together. To enable this we are basically the first project anywhere to take a 802.11s ESS draft which is scheduled to be release as an official standard hopefully in the reasonably short-term future and we are implementing it on our machines in such as way that laptops can forward packets between each other and create networks without almost any user interaction. So that means that in addition to just not requiring an access point, laptops can actually forward packets along several hops[sp] meaning if you have Internet access at the school and you have a bunch of kids in the village that are not in range of there but you have enough people every 100, 200, 300 yards that they can daisy chain packets all the way through, this will just work with again no configuration..
We have a volunteer in the Australian outback who does network testing for us. He's not affiliated with us. We don't pay him. It's just something that he does to help. He does constant range testing for us with a couple of laptops with his wife. When the last numbers came in, in terms of how far the two laptops were while still maintaining a workable network connection, does someone have a guess as to how far apart they were? No guesses? You guys are either shy or? 2 kilometers. Now if that number came from me you should be very skeptical but no, it's about 2 kilometers and we are actually upgrading to, antennae that should give us even better reception. One neat thing that I like as a hacker and an engineer is that we do diversity of reception on the antennae meaning that if you look at these two little bunny ears which are actually antennae, antennae that mind you because they are raised away from the rest of the electronics give you more antennae gain than any of out antennae in your other laptops. They do diversity of reception meaning we have one hooked up to one network and the other antenna and we can actually be bridging packets between them if we want to.
So here is what the mesh stuff looks like and how it works for those of you that are not familiar with the concept. Here is the school server. Here is the laptop that can't hear the school server but here is the laptop that hears the school service. If I am here and I want to go to Google, I can basically say I am trying to go to Google and find the route that ultimately reaches the school server through multiple hops[sp] and then sends data back to me that same way.
In terms of standard goodies you can expect, we have a bunch of USB ports. We have a pretty fast VGA, SD card slot where you can throw in extra storage. We have a microphone. We have stereo speakers. We will take power from anything that produces DC. 10-25 is an outdated spec. I think it is closer to a to 8-20 volts that means human power, outboard pedal, pull cord, solar, card battery, you name it , we can take power from it.
[audience member question – inaudible]
Ivan: I don't know if the pricing has been announced yet but solar panels are definitely being worked on. The really neat human power thing that we started up is something that we call the pull cord or the yoyo charger. The idea is that you have a charger that really looks like an oversized yoyo that you grab and you can pull on it to generate power. You can take a charger and hang it off a tree somewhere or just off a wall. It has, this is my favorite touch on the whole thing. It has a tiny little trip in there that will regulate the amount of resistance that the yoyo gives based on how strongly you are pulling. So if you are a little kid, you can pull and it is not very hard to pull and you are generating some amount of power. If you are a big strappy lad and you grab it and you start really pulling it's going to be putting out quite a bit more resistance. You still are not going to be tiring more quickly but it will be putting out some more power. Our goal for that by the way is 10 to 1 meaning you pull for a minute .and get 10 minutes of laptop usage.
We are toying with brand new battery chemistry that is not even on the market. It looks reasonably likely we will be able to get this into the Generation 1 finished laptops. The nice thing about the lithium ferrous phosphate (LiFePO) battery chemistry is that it is less toxic, burns colder, is safer and substantially lighter than the next best technology out there if you are looking for safety which is nickel metal hydrite. All the laptops you have in the room are using variants of lithium ion or lithium polymer. The problem with that is I'm sure you have seen the stories in the news. They are not quite renowned for being particularly safe or port hole. So this is actually quite a big leap if we can pull it off in terms of how we are actually powering our machines.
Normal audio stuff all that you expect except we hacked the microphone port so you can actually read the direct voltage from anything that you plug in there meaning that for about $1, or 50 cents to a dollar you can build little sensors for things like temperature or humidity or brightness and hook them up directly into the microphone port of your laptop and have a little portable science lab as you go. This is all running on top of a Linux distribution that is based on Fedora very loosely. It's very struck down, very slimed down. The binary bits are coming from Fedora.
So one thing that became, we knew from the beginning we wanted to use Open Source Software. It grew over the life of what we have seen to eventually become one of our five what we call five core values of the project meaning that we originally said we want to do Open Source but we are not zealous about Open Source. We are zealous about getting people freedom of choice meaning if you want to run non Open Source on it you should. We are still sticking with that freedom of choice but in our segment we are producing we have decided to only use Open Source and free software and we get a lot of questions as to why. Why try to commit to something like that? The answer truly is because of the kids. Because if you are giving them this laptop and telling them that they should use it as sort of a window to the world, as kind of a surrogate brain where every time you have a question and you don't have an answer you should be able to pull out your laptop and go and look it up. If you are trying to champion a way to change learning that's critically based on the idea that you get curious about stuff and you go find out about it, then it doesn't really make sense to ship a box where if a kid gets curious about how the box works, they can't figure it out. It is sort of a slap to our own face if we shipped essentially a black box that kids can't look into or change how it works.
And so, you build this as sort of a box of glass legos, right?. It's to fun to play with and start and you can always be looking in the inside and figuring out what's in there. Then it gets real interesting because you let them take it apart if they want to and put it back together in a different way and use what they came up with. This is tremendously powerful. Without this idea, Open Source, we wouldn't be here. We wouldn't be talking about this. This idea that you can take something, change it, put it back together and make it better, I think what has to be the core thing that underlies all the talks that have been here today ranging from those about how to do you make money with Open Source to off switches, how do you try and fix something that is broken with the world with Open Source.
So we took this to a logical extreme where we said well right now, if you are just an end user right, if all you want to do is do your word processing and listen to your music and watch your videos as many users even of Open Source do, there is sort of this lie to Open Source, it's open which means anyone can go in and change stuff and make it better. The thing is, the steps for getting the software and changing it and compiling it again, it's a mess. I don't know who just so I have some idea. Who here is technical enough that they on some frequent basis will grab stuff off the Web and change half of the code and recompile the code and so forth?
OK so that's relative minority in the room. Of the guys, of the people who didn't raise their hands, if I said Firefox which probably everyone has heard of, would you feel comfortable if I asked you right now without instructions, will you feel comfortable finding the source for Firefox, downloading it, changing something trivial like adding your name to the about box and recompiling and using that Firefox? OK so we have one person. Congratulations. You are a far braver man than I am.
It's hard. It's hard. There's a lot of sort of making sausage that goes into Open Source software. You have to have the right built chain, the right tool chain, the right compilers, the right headers. It's complicated. If you are trying to espouse this whole thing about openness and transparency and the ease of which kids should get into this, it is not really enough to just say well if you get sufficiently curious to figure out compilers and fuel chains and builds and all of this mess then you can get to the source. How do you make this really cool? How do you make this so that even the kids who are not the geeks will get curious enough to look at what's there.
What if you could put a button on the keyboard that if you press, it could show you the source code of whatever you are running and let you change it right there and if you hit save it would reload your application on the spot for you without asking any questions and show you the thing that you just changed.
So that's what we did and right there is a little yellow gear key that you can see on our keyboard that is our view source key. If you press our view source key on a web page you will see the HTML. If you press it while running a program, you will see the code for the program. Opened up in an editor, it will let you make changes and save it.
[audience member – inaudible]
So to start with it certainly will be limited to mostly Python programs. Now let me explain that in two seconds. There is nothing about this that makes it so you can't support almost anything. Just because where our focus lies and the deadlines we are on, we are going to do this primarily to start with, with Python programs but certainly it's Open Source We will take a batch from you if you want to support something else.
Here's the next problem. There isn't that much drive space on this machine. There is a GB of flash. If you are really talking about massive recompiles and shipping, the source for everything which is large. The source for the recent version of Open Source is 130 MB megabytes. You are not going to ship that on every machine. So how do you try to strike a happy balance? So you ask yourself, well wow, I wish there was a program language where the source code was executable. Where you can run something and it would be the same thing as compiling it and I can open it up and have an interactive thing where I can add on things.
It happens to be the case there is just such a language. It's called Python and it's the best thing since sliced bread in my quite biased opinion. We decided that almost everything that we can reasonably implement as Python would actually be implemented in Python on this machine. That really means almost everything. Our Gui, our Window manager all of our presence communication stuff even [xx] that actually boots the system security platform, the crypto service, the file system search most of the users code. We are not going to be rewriting huge chunks of working code in Python like [xx], x.org or system bus. That would be sort of an exercise of pain.
There are already sort of bumps in there like file systems. You don't think of file systems as being written in Python and running in user space and let users change how they work. That's actually what we are doing. The reason we are doing this is because our user documents, things like your music and pictures, things you wrote and sent to people, messages live in a kind of centralized data store on the machine that is going to let you do all sorts of crazy things that previously was limited only to geeks who were getting it from version control software or people running very expensive packages for team collaboration and so forth. So we can do everything from n-way synchronization between people to delta compression to tracking all sorts of metadata for, everything that you put on there. We can do persuasive search meaning the moment something lands on your machine it is searchable. We can sort it. We can filter it. We can show you the timeline of how it works and what you've done at certain points.
The GUI and this is a different kind of Sugar than the Sugar you've heard about before me. Our GUI is called Just Sugar, not Sugar serum and it's something you can play with right now. I think Eben will be doing a little demo after me. It's a different approach on user interfaces. The reason we felt this was necessary is we wanted to add more contacts and make collaboration something that is built in.
Does someone have a cogent theory on why it is that in 2007 Openoffice.org and all of the commercial packages it is competing with still don't have a simple two click way to do real time collaboration on a document? Does someone have a good idea of why that is? There is actually an answer. So it is not rhetorical. [audience member inaudible]Well the format is no so much. You can do it between two instances of the same application. Yeah.
[audience member inaudible]
Well, I have a technical answer. What's that? I think so. So here is what I think has been holding this up. There has been no present standard that has actually found a massive option. Meaning if I want to collaborate with Eben I need to tell my computer who Eban is. Who Eben is could be EbenEliason on AOL Instant Messenger. It could be Eban105 on MSN messenger and eben on Yahoo! And Eben on IRC and I can keep listing off. these presence networks that are all different doesn't really cooperate. Software aren't crazy they aren't going to support collaboration across 20 different presence services. We said fine. We will build in presence directly into our operating system which means that if you are a developer you can write things that are collaborative. In fact you don't have to care about presence because the operating system will take care of presence for you. We are building this directly into the operating system meaning that if you want to collaborate I can find Eban on my buddy list.. I can just say launch Write which is our word processor with Eben and instantly we are doing real time collaboration.
I am doing something that pains my heart which is. I am not going to be talking about the security stuff at all because it gets very technical very quickly. Although I will answer questions if you have any about this. But the short version is we built something very new and very different called bifrost that tries to deliver much more security than is currently present in the normal consumer world. No anti virus needed, no firewall needed and no pop ups constantly being presented to the user asking them to permit or organize certain actions.
We are doing updates. This is something that is still open to discussion how it actually is going to be done. We are just beginning to figure out the core updates. Updating individual apps is still up in the air. Before I finish, I want to tell you where we actually are on all of the sort of good things that you heard.. Sugar which is the GUI works. . There is still quite a work remaining to be done before we implement our interface guidelines fully. It works now. It is useable. It has been in pilots in Brazil, Nigeria and Uruguay. Kids actually are using it day to day. It's not vaporware.
Our shared spaces which are one step up from the ability to collaborate in real time, the ability to have a team space with a bunch of your friends and put things in there, beginning work on this. It is not in there yet.. On the security side, we just actually a few days ago merged this huge kernel patch which lets us do what we need to. We started other user space work. In terms of the power management which is incredibly difficult. Think about it. Your laptop usually will take 10-15 seconds to suspend or resume, we want to be doing it at 100 milliseconds which is quite literally on the edge of perception. We have it right now down to 233 milliseconds and we want to go to less than half of that.
Firmware stuff. Still quite a work to be done. The crypto integration that we are doing is scheduled for the next few weeks. There is a lot of general profiling and optimization to make all of this as fast as possible on a processor while not dog slow is certainly not what many of us expect from our processors today. We keep starting up on profiling optimization and we get distracted by other things that pop up that require more immediate attention.
In terms of what is happening with servers so you can do backups and Internet gateways and so forth, just starting now, still have some missing pieces of this picture. Luckily most of it doesn't block our first release but still certainly quite a bit work done there.
My point here, the reason to tell you this is that I don't think that anyone can argue we are not dealing with some absolutely fantastic technology on almost every front. There is really quite a lot of work left to be done. And so, to give you some idea of just how much Open Source has come into this picture, here is a simple one slide overview of the majority of the OLPC software stack on the machine.
So Linux file is doing super low hardware utilization passing the baton off to OpenFirmware which acts as the real bios and Boot loader which then boots Linux which is the kernel which then runs Hal which is the [xx]' which then starts up [xx] which is the windows system which runs D-Bus which starts up [xx] which is the [xx] toolkit and Hippocanvas which is the campus that sits on that which lets applications draw on the screen. NetworkManager which [xx] connectivity and actually connect you, Telepathy which is a set of services which will let you do presence and make connections through nats [sp] and so forth Java and XMPP which are the basis for all these communication protocols so completely open standards.. MozillaULRunner as the web browser. Python as the mother glue on this machine. AbiWord, the word processor that we adopted. SQuite for a lot of storage. This is a lot of software. The fact that it is thousands of man years of work that were given to us so that we can basically pick and choose and put them together anyway we wanted and contribute a lot to it and then wind up with something we can give to those kids.
After I showed you that slide, I really think it should be clear that if you are trying to essentially reinvent the laptop, which is what we have been forced to do, trying to do this without Open Source, I personally can't fathom what it should look like. Even whatever resources you have available I can't imagine the kind and scale of development effort it would take to actually build something like this.
Here's what this boils down to. We at OLPC think that if we succeed there will be something unprecedented in the course of human history happening which is there will be a generation of kids globally where many or most of them will for the first time have access to knowledge and to learning and to education. This is an incredibly dangerous and an incredibly powerful and an incredibly compelling idea.
So I get asked a lot what it is liked to actually work at OLPC. People actually often ask me how many hundreds of programmers we have and then I tell them that the core team is about 12 people and then they don't believe me and ask how many programmers we have locked up in the basement. The one thing I've started telling people. I love this quote from Emerson who said "Hell, there are no rules. We are just trying to accomplish something." It's a perfect summary of how OLPC is doing and how it is actually operating. The reason I am telling you any of this is I am hoping that it struck a note somewhere in all of you and you will walk up to me and ask how you can help. If you are a programmer we have a livecd available that has Sugar in all the tools. Doug has a lot of livecds with him. They are in the back of the room. There is an OLPC label right there. You can pick one of those up. We have actual real laptops available which we will give you free of charge if you are interested in doing one of those low level work that requires a laptop or any of the higher level work which requires seeing what's on the screen which is different from what you have.
There are hereabouts there are 250,000 of these laptops in the hands [xx] over the world. All of the code that we write and we use is completely Open Source and free software It is available on our sites along with our bug tracker. We do something interesting. We don't have a private or secret bug tracker. Every bug that we know of is meticulously kept track of in our completely public bug tracker and it's another world first I think that you can see if you go through our bug tracker historically and basically look at the timeline of bugs flowing in and bugs getting closed and you can see what it actually looks like to develop a laptop from scratch. Literally from the moment that we have no laptops. We have motherboards coming in and had a bunch of bugs both in hardware and software and to every iteration of the laptops that we are getting scheduled to come out soon. It is quite a fascinating thing to watch. That's all I have prepared for you. Eben has a very short slide deck on the GUI stuff. So I will call him up in a second. I will take any questions for me before Eben does that and you are certainly welcome to wait until he does that and then ask me questions again. So thank you.
[Applause]
Ivan: Yes
Audience member: inaudible
Ivan: OK sure. Let's do that.
Audience member: What about technology? What about the users? What are the kids saying about this? How are you measuring the user experience and making sure what you want to achieve is what you are planning to?. I see that's a very sophisticated machine that you are creating there. Are you thinking that maybe it is over the top on technology for kids that maybe want to access just a few features? Just like having these very sophisticated mobile phones where you only use it for[xx]. What are your views on that?
Ivan: Can someone grab the sheet with the user and password? I want to show you something. Doug can you grab the sheet that has a user and password? While Doug grabs this. Here's the thing. It takes a whole lot of complexity for the user experience to be simple. In fact, if we weren't trying to have a user experience that is beautifully simple I think a lot of the stuff that we were doing we wouldn't have to be doing. Sugar which is the UI that we are building is built with the idea of simplicity and a fantastic user experience. As soon as someone logs me in I want to show you a page that is about I think three or four days old that has more than just what I can tell you. Yes in the back
Audience member: OK There is a kind of standing view you have to make it simple so kids and everyone can use it when this is really a great opportunity. [xx]So I think it has to basically give as much openness in learning. It is not a solution to a problem. It is the start of a learning process so there has to be as much a potential as possible.
Ivan: One thing that we talk about in the OPC headquarters is the idea of the Onion metaphor, layers that peel off. There is away to make it start simple and then as the user matures and as the children want more out of their machines and want to figure out more stuff that the machine does, they can basically start progressing as the user and revealing the complexity in more details. I very firmly believe that's actually the way every system should be designed including all of those that we are using that just completely aren't designed that way.
But if you go to wiki.laptop.org which is our wiki which is kept up to date, reasonably up-to-date and has a very active community. If you look at the What's New section on the front page there is a report from a school in Galadema, Nigeria that just came in a few days ago and here are some of the kids. If you are just looking at the pictures really if you go and look up one thing after my presentation please go check out this report. I can talk at you all day and in the end, you go and you read a report that was actually written down form the field and you look at what these kids are doing with these machines and I have no reason to lie, my jaw dropped. When I read this report, I really had a wow this is real moment.
Ivan: Yeah. Let's do that.
Audience member: inaudible
Ivan: So Eben Eliason is one of our core UI user experience designers at OLPC.
Eben Eliason: In fact the only. I work with a pair of designers in Pentagram [sp] design firm NY as well. I have been helping out with a small project. As you mentioned it is a small core group and we are trying to do a lot. So there is a lot to be said about our user interface. It is not like anything you have really seen before. That comes from two core principles that he talked about which are collaboration and exploration in my mind these are the two things you want to highlight of the interface itself. [xx] To figure out how to do that. How do you make seem less collaboration with collaborative apps as he was talking about earlier at work. We came up with this idea we want to make a Zoom interface.
Let me back up one step. We have in the network this little XO character and he is going to be the representation of these kids. Each kid gets to choose a set of colors. Since kids love customization. And that set of colors will in a way carry on their identity again throughout the network and stepping back one level from the home screen where it is just about you, we see there's friends and beyond that there is the neighborhood and all these levels that I am talking about as he mentioned are just in the mesh. This isn't requiring any kind of Internet connection at all. It is completely exposed by the GUI itself and finally there is a fourth level called the activity level and let me show you how joining an activity might work in the mesh. Here's the home screen. If we step back here are my friends You can see underneath what each of them are doing.
Back one level further, we see the mesh. So here you can see there are a bunch of these little XOs. They are clustered around the activities that they are currently participating in. There are some printers, some wireless access points. Everything that is around in the network can be seen right here. By exploring a little bit, I can find out what is going on and I can easily join that activity.
Actually this slide is kind of important. We have some new jargon I guess around the office and you can say it's just all semantics but really we think there is something a little bit bigger going on here. We are really trying to emphasize the idea that you interact with the software and with all of the other people who are using the software with you. It is all about activities and about exploring not so much just about this thing that is running on this machine that I have in front of me. That's the technology standpoint. This is all about doing.
So I apologize a couple of these slides are blurry I pulled them up off the wiki this morning. They are up on the wiki actually if you go to wiki.laptop.org/go/activities. That's the starting point for all of the things I am going to show you.
So this is the browser. It doesn't look like this on the XO yet. I want to show you where we are heading with everything in the interface. You can see it is fairly straight forward. There is forward, back, refresh. All the things that you expect. Down at the bottom though there is something a little bit different. There is this tray, there we go and inside that tray you see these little icons and also up at the upper right you see there are matching icons there. The idea here is that we want to emphasize collaboration even in a browsing setting which no one has really thought of doing before. The closest thing that we come really is through things like Del*i*cious, social networking types of sites where you can post links for your friends but it is all time shifted for the most part and so here we want to embody the idea that a whole bunch of people can come together, browse the Internet together and share things with each other live. So as you make bookmarks and you make shared links, these little icons show up at the bottom of the screen and that is shared among everybody else who is currently participating in the activity. So I can see this little orange one might be Ivan right here. I can take a look at what he thought was interesting at the moment.
Another quick comment about the way these activities are working on the laptop is that everything is session based at the core. They are all full window and we have got a journal which is the file system that he mentioned that is going to keep track of all the things that you do, the activities, not so much the objects but the things that you are working on. If I come into this web browser I can make a couple of tabs. I can browse around. I can make some shared links and when I go home at the end of the day, I can open that session back up with all of the tabs and all of the links still within it and if I jump ahead here, I will bypass that one. I will jump to this one. This one is actually pretty important. These kids are going to be in places where there isn't always Internet access In fact many of them will only have Internet access at the school and when they are at home, obviously in a optimal environment they will have a couple of hops to the school server anyway and still be able to get out. When they can't, they could have loaded up a few pages when they are at school that their teacher wanted them to look at, come home open up the browser again and then use fully cached pages without fear of accidentally hitting refresh like I do all the time on my laptop and lose the directions or something to where I was going. So, and of course it will tell then this isn't a live version of the page but it will let them continue to read and explore at home as well as at school.
So I am going too run through a couple of activities here. This is the Write activity. It is a simple word processor. You can also see at the top of the screen we have what we are calling the tool box., which consists of several trays of tools and in almost all cases there is usually like a primary core set of tools in the first tray. So that is the text editing tools. If that's all a kid wants to do is type a little bit they can but if they wan to explore some more open up the image tray or the table tray and start importing images, making tables, changing formats, doing all these kinds of things and all these of course are interactive which is why these colors are showing up on the screen. That represents the text that each kid is writing and the other important thing I guess to note about the toolbox is that it is completely contact sensitive. So if I click in a text region the text tool, the text tray will automatically select itself. If I click on an image, the image tray will select itself. So we are really trying to expose things as necessary but not overload the interface with a whole bunch of tools at once, .especially because it is also such a small screen, despite the high resolution.
Here is an example of the toolbar. Here is the drawing activity. Again your basic drawing tools but there are a lot more available if you explore a little bit. Here is a little example of how there is even more exploration to be had with each tool individually. This is the shapes toolbar. There some basic shapes. You can drag and draw whatever you want. If you bury down a little more you will find more information about the tool and parameters for the tool which adjusts how it functions and that idea this rollover is going to be a standard throughout every single interface that is built for the laptops.
Here is a quick example of a fundamental app. This is the video chat app. It is pretty simple. I don't have to say much about it. You can draw on it and around it You can teach each other math or have some fun and play a game on the side. You can take a photo and store in your journal so you can have a record of what you have done. Here is the read activity, again simple. We have got the idea of bookmarks and hopefully down the road we will add some pretty extensive annotation features, as well so kids can talk about things, they can share things and pass them around. This is the prototype idea down here at the right you see these little dots. This is a proposal for an idea that each kid who is currently in the activity can be represented over there. They can follow the teacher's dot around.the document that they are exploring.
Here is the record/capture/photograph activity. It's going to have a few different features. It's going to have time lapse, photography/audio, video and still image. You can tag images and down here this is basically a role of film and photograph there each identified by its color who made that photo. Yes. Taking too long, sorry. OK. So here is a calculator, memorize, [xx]. There is a whole bunch of activities being worked on. I will breeze through the journal pretty quickly. This isn't the label design for it. Basically it lets you use search filter, sort, gives you some basic hierarchy at its core a linear list of all the things you've done and I guess that's it. We can open it back up for any more questions.
[Applause]
Eben: Sure
Man 1 in background: I am going to set up here so you can see it in operation.
Eben: In the meantime I will take some questions. Repeat the question.
Man 2: How many kids are in the UI team?
Eban: Not many full time.
Man 3: Repeat the question.
Ivan: Yeah one of the activities that we are building is called the develop activity. Very simple to use IDE when you press the resource button basically loads up the source code. . It will have collaboration features we are trying to build in the rest of the machine. Python is our core platform language. In terms of the language that we ship on the machine there is Python, [xx], squeek small talk Ebon did I miss any? Python, jaw talk squeek. .Evan did I miss any?
Ivan: We are looking at a variant of logo as well
Eben: Sure
Man 1: I will turn this, this way like that. Can you explain what you are doing?
Eben: I just want to give you a really quick overview of what I just showed you running live on the laptop. This is the home screen. OK and around the edge of the screen is what we call the frame. The frame is carried with you across all the various zoom levels and there is not much in it at the moment. There is no one else around otherwise I would see some people over here. I haven't done any copying or pasting otherwise I would see objects stored on the clipboard over on the left. Up here, I can use the buttons to navigate around. So this is the groups view. Of course, there is no one else around at the moment and zooming all the way out, I can see the mesh. Here is me and here is some of the wireless access points around. I assure you this is a much more interesting experience when there is another twenty or thirty xos nearby. And so I will dive into web browser here for a second. Let's pull up Google maps as a demo.
Man 1 in background: Are you connected still?
Eben: I was connecting. Perhaps not. Yeah. I know. I will use the password again.
Man 1 in background: Inaudible That's a problem every time you power down.
Eben: Sorry.
Man in background: This is the same problem we are having with [xx].
Eben: As I test my typing skills on this tiny little keyboard. Oh common.You will have to take our word for it that it actually works.
Man 1: inaudible
Eben: OK. Here we go. Use the camera. You can see here is a little photo I took of myself earlier at the bottom. There's a new one. As you can see again this interface is not quite what I showed you in the markups but everything is in flux and builds are changing from day to day.
Man 1: inaudible: See how fast the video is responding. This thing can actually run full time video.
Eben: Hang on
Ivan: We actually did a transatlantic Cambridge UK Cambridge US video conference call that ran at 15 frames per second on our hardware with full sound. We should be able to get about 30 frames per second full rate with new hardware
Eben: Pretty fast and also pretty clear. This is from an old build for which we couldn't actually scale the video that was coming in. At full screen it is pretty high quality.
Man 1: inaudible Play some sound now, music
Eben; Sure.
Man 1: See why kids would be interested.
Eben: This is [xx] I guess I will show you the mini version. This is the version kids will jump into and it also is going to be the first to have extensive collaboration abilities. Once again the interface will look a bit more sophisticated. Let's start at here's a piano..
Man: inaudible.
[noise]
Eben: I will tell you what. Why don't we actually wind up, wrap up Look at it on the screen. If you want to see the laptop you can come up and see it actually play some music. [bird sounds] OK there you go. Birds. [music]
Man 1: Oh you can hear that.
Eben: So anyway, thank you for having us. If you want to see the laptop come on up.
Thanks everybody for coming. We really appreciate it. Don't forget your blue sheets please. And then a big applause for Dan Brethman [sp] for all the video and audio running around. [applause] Thanks Dan, appreciate it.








Comments
"There are hereabouts there are 250,000 of these laptops in the hands [xx] over the world"
That looks like a transcription error.
Posted by: Eduardo Montez on June 28, 2007