The specialists whose brains are picked to program expert systems, are delighted to produce
machines that are cleverer than they are. They feel a pride of authorship.
But what about the rest of us who have not been consulted, how will we feel?
Computers seem set to learn at a rate that far outstrips our speed of learning. They
may even understand what they learn, but the hallmark of human intelligence is the:
"Eureka Effect." Will computers be able to come up with anything new?
My name is Karen Sandler, I am a lawyer, I am a cyborg-lawyer!
A few years ago while I was already a lawyer with the Software Freedom Law Center, I found
out that I had a heart condition. I have an enlarged and obstructed heart, it's called
Hypertrophic Cardiomyopathy (HCM). I don't have any symptoms, it's all fine,
but I'm at a very high risk of suddenly dying. If you hear about kids that are running to
second base and drop dead all of a sudden, they often have what I have.
It's all well and good, there are some preventative medications I can take, but the main thing
is that to prevent suddenly dying, I was prescribed a pacemaker-defibrillator.
It was like people following me around with paddles. If I passed out, I would get a shock,
it would be implanted, and it would be great. After dealing with the idea that I needed
to get this device which was quite, you know, stressful for anybody to hear that they need
something implanted in their bodies. I started asking more about it, and the doctor
showed me the device and he said: "This is what you need, and you should get it implanted
right away." And so I asked, because I was a lawyer at the Software Freedom Law Center,
"Well, what does it run?" And he couldn't tell me. That entire doctor's office had never
thought about the issues of software on these medical devices.
It was a little bit strange, I literally had to get proprietary software hooked up to my
heart and implanted in my body. I did it because I couldn't walk around at risk for suddenly
dying every day. My parents, everyone I loved was really angry at me for holding up on
this issue. For them it was this abstract idea: "Who cares what software is running
on your device, it's going going to save your life, you need it!"
This decision about technology and what kind of technology stack we have will define the
rules that are the new laws of how society works. And people will structure society based
on what the software allows them to do and, not based on what the laws are written, because
the software becomes this new set of laws that constrain society.
They're working towards constructing their own immortality, and their own infinite pleasure,
and not just for themselves, but for their whole community, and they perceive even for
all of humanity itself. They dystopian consequences of their work
is not what is most present in their mind. Software is so important to so many things,
and if you can control the software, it's like controlling the flow of oil. You can
turn off access to certain features to other companies. I don't think it's a surprise or a
coincidence that there's a lot of talk about monopolies in software.
The freedom that the Internet brings to people, if you look at all the revolutions and things
that have been happening in the Middle East, it's amazing, and those things couldn't
have happened in that way before the Internet existed. It really makes a difference to people's
life and to democracy. No one contributes to a community that only
benefits one person, that's just not how it works. The core element of community is, when
you make a contribution, the community benefits from it. The altruistic moral perspective
is what drives all of this technology forward.
Quiet Please, I am analyzing.
Shiny hardware gets the attention, but it's the software code behind the screen that's
making the magic happen. A computer is willing to divide by zero all
day long. In reality, the possibilities of technology are limited only by the imagination
of the users, and the license agreements. With the Internet, people can learn and create
in their pajamas. The current copyright system was created by
people who didn't imagine millions of digital projects built remotely.
Or, that it would cost basically nothing to make more copies.
The Baby Boomer generation of programmers made a mistake: they forgot the scientific
tradition of sharing results.
Starting in the late 1980's, a new kind of
license agreement was created, which increased freedom and the pace of scientific progress.
Not everyone will exercise their right to change their software. In the past, not many
people owned a printing press, but it was widely understood that a free press was important
to the civil society. Those who don't write software can still help protect this freedom
for others.
The first computers in the 1960s that people
bought were giant mainframes. They were incredibly expensive to deliver, to cool, to maintain,
and companies like IBM developed these computers, and in end just sort of gave software away
as an afterthought. They realized that no one was going to buy
one of these giant computers that needed a special air conditioner and had to be installed
in a special way, in some special room, unless they could do something with it. So the software
was added as an afterthought and the cost of doing software was nominal compared to
the cost of making the computer. And over time, computers obviously got smaller,
and they still are getting smaller today, and the idea of having a computer that individuals
could buy became initially a hobbyist activity. There were many individuals in the 1970's who
got very excited about buying and sharing computers. And I remember as young child,
the first computers that my father brought home were these kinds of hobbyist machines
that you could look at and modify. And in fact, they were very similar to the
software freedom communities we see today, because they swapped the software once they
got their machine. And of course, there was also the hardware component of putting it
together and assembling it. But then you started adding some software to it, and writing software
yourselves, sharing it with your friends as these things called Computer Clubs.
Well, at the same time that all that was happening, there were various different software companies
there were focusing on making lots of money as opposed to necessarily joining a community
and sharing software. How much do you think this advanced operating
environment is worth? Wait just one minute before you answer. Watch as Windows integrates
Lotus 1-2-3 with Miami Vice. Wait until you see Windows Write, and Windows
Paint, and to listen to what else you get at no extra charge: the MS-DOS executive,
an appointment calendar, a cardfile, a notepad, a clock, a control panel, a terminal, print
spooler, RAM driver, and can you believe it, Reversi. That's right, all these features
and Reversi, all for just, how much did you guess? $500, $1000, even more? No, it's
just $99, that's right, it's $99.
There's a very famous letter to hobbyists
that Bill Gates wrote in the 1970's saying that the idea of sharing software is stealing.
And that's where the division really begins. Ironically, right around the 1980's, as Microsoft
was getting started, is exactly when my colleague Richard Stallman decided to start the software
freedom movement, and wrote a document called "The GNU Manifesto" that in some ways I tend
to think as an answer to the "Letter to Hobbyists." Now RMS didn't write it as an answer, he wrote
it because it was what he believed it was the right thing to do for software users,
but when you put these two documents up next to each other, you sort of see two philosophies
of how software ought to be done. Paid-for software with restrictive licenses
are still the more common type today. Linux runs on about 1% of desktops and laptops.
Many companies depend on free software, but prefer to keep their innovation secret. Google
is working on a lot of artificial intelligence code in private, and many other companies
are also. Google released a neural network system called
Tensorflow in 2015, but most of their software and data to make it intelligent, remain hidden.
If you use Google Photos, and you upload a photo, it knows how to categorize what's
in your photo. Now how does it possibly know that's a picture of a giraffe or a car or
what have you? Well the answer is it's been trained, right, we've showed it picture
after picture. And in the 1970's people tried this and
it didn't work, and then there was what is called the "AI Winter" which is sort of
about 20 years when nothing happened. And then a set of mathematicians figured out
a way to build what are called deep neural networks, and they are layers of these computer
models that are very complicated. And the first layer says: "Ha, this is a picture,
it has boundaries, here are pixels." The second layer says: "Here are where the shapes are."
And the third says: "Ah, here's a shape here, and here's a relationship." And there
are typically 9 or 10 levels, and the 10th level says: "It's a giraffe, it's a car,
it's a person." When I was heading up Google X a few years
back, and one little project we had in there, which is now called Google Brain, which was
this AI effort. But, I didn't pay attention to it at all, to be perfectly honest.
And, myself having been trained as a computer scientist in the 1990s, everyone knew AI didn't
work, people tried it, they tried neural nets, none of them worked out. And this fellow,
who is one of our top computer scientists, Jeff Dean, would periodically come up to me:
"Look, the computer made a picture of a cat." I'd say, "Okay, that's very nice Jeff,
go, do your thing, whatever." And fast forward a few years and now, Brain probably touches
every single one of our main projects. If you look at something like Google Translate,
it's amazing. It's pretty hard to learn 8 languages, let alone 65 languages, that's
really remarkable. The field of artificial intelligence use to
be called AI/MT, Artificial Intelligence / Machine Translation. This machine translation was
basically to tap into funding streams from the National Security Agency, because they
had to translate all their intercepts. But the machine translation part is basically
done. How did that happen? Was it 10s of thousands of programmers making lots of grammar rules
for all sorts of different languages? No, the breakthrough is, it's looking at translations
of UN speeches and EU regulations. And there's many, many language pairs of the same document.
And with millions of Rosetta stones, you are able to construct a computer which can learn
the principles of language and therefore translate. When you get a program from say, a proprietary
software company like Microsoft, you are left effectively helpless. You don't have the right
to study the software and even learn how it works. You just get the compiled version of
the program that's in binary form that only the computer can understand.
I've been to one meeting with Steve Jobs, that's like almost 10 years ago. He was
trying to convince to start working on OS X instead of Linux, and I said: "Sure if you
switch it to Linux." But it wasn't going to happen.
Now I'd like to go through the architecture of Mac OS 10 with you. To start off with,
we need a kernel. And that kernel we call Darwin.
Darwin's amazing, it's a super
modern kernel, and it's got protected memory, preemptive multi-tasking, modern networking,
all the things you'd expect, done in a very elegant way. And it's very Linux-like,
very much so. It's got free BSD Unix which is the same as Linux.
Apple picked the BSD software on purpose. They knew about copyleft, by the time they
picked it, they avoided picking copylefted programs because they specifically want to
lock up users and not let them share and improve their software, devices that they themselves
own. They can't do anything with them other than, well if it breaks, call Apple.
Copyleft uses copyright, but to keep it free. It's like a completely spinning around of
the copyright system, and instead using it to control, it uses it to share. It has a
kind of a snowball effect, if you improve it, those changes, if you're publishing them,
also have to stay under the same license. So the body of free software just grows and
grows and grows. People call it "forever free" and I think it's such an amazing concept.
In some cases, the free software equivalents to proprietary applications are not as well
known, or quite good enough yet, so people continue to pay billions for closed software,
and give little to the free software movement.
Change is very emotional. People don't like change.
No one likes to move house, no one likes to buy a new car, and no one wants to
change software. The relationship that a lot of people have,
like regular people, not geeks, the relationship they have with their computers, is one of
is basically hanging by a thread, and "I am terrified it's all going to go down at some
point." So the idea of changing to this whole new world is terrifying!
You think about most people in front of a computer, they don't actually like their computer!
They're using a computer because it's part of their job. They like using it in the sense
that it does a lot for them but usually they just curse when things go wrong, they don't
want to tweak things, they want to do stuff the way they are used to doing things.
Compuware was formed in 1973 and is one of the largest proprietary software companies,
specializing in the mainframe business.
So why the use of a proprietary software license?
It really comes down to, that's our business model, and that's where we're going to make
our money and our profit, and pay for our employees. So, it really comes down to that
we have something that is novel, patentable, that we can actually turn a profit on that's
in the industry. We are a commercial software company, and
our customers expect a certain level of innovation from us that provides them some competitive
advantage as well. Compuware has always been in the business
of selling software. And we make our money out of the innovation that we put in our software,
and the creativity that we put in our software, as well as the maintenance and support that
we provide behind that software.
In much of the developing world there is very
strict enforcement of companies using proprietary software. And so you can get fined, and you
can have your office raided and the computers seized.
The Software Publishers' Associations were able to push through much more draconian laws
in the developing world. NGOs that were opposing the government in
Russia, were also having their whole NGOs shut down, and their computers seized on the
premise that they were using un-licensed software. It's a rule that you know you're breaking
so they can come in and arrest you for it.
The reason software monopolies happen so easily,
without open source, is that software is fundamentally something you build on top of. So if you own
the thing that you built on the top of, nobody else can really even begin to compete because
they have to build the whole base, and it can take them five years to build what you
have today. In the mean time during those five years, you built on top of yours and
improved it, so it's very hard to really catch up.
When your mail client is hosted at Google, Google could decide that they're going to
suspend your account and then you disappear, and all of your information disappears. If
we can't have free software to run all these services and if we are relying on sharecropping
other people's software, and other people's technology, then they could always remove us
and they could always make us disappear. Your digital life could be destroyed in a
minute, and it could be a mistake.
Free or open source software means that the code, documentation and discussions are available
to the public. This allows anyone to better understand or help improve it. Wikipedia was
created in 2001 and is a great example of free content, and a powerful software system
to maintain it. Many people spend free time in online communities,
whether to play games or improve public resources like Wikipedia.
For a while, at least in the U.S., there was an encyclopedia that was printed, called
the Britannica. I'm not sure why, it was an American encyclopedia, it wasn't called
Americana, it was called Britannica, but anyway, Britannica was the biggest encyclopedia around.
Then we created a little DVD / CD with something called Encarta, and we became the biggest
encyclopedia company in the world! Now there's Wikipedia.
Having lots of eyes, and lots and lots of minds being applied to something really allows
it to evolve and become greater than the sum of its parts. I think this model and this
idea can really be applied to just about anything. The Wikimedia Foundation is all about providing
free content, and keeping the lights on for a whole host of different wiki projects including
Wikipedia, Wikiquotes, Wikispecies, Wiktionary, and a bunch of other ones.
The whole thing behind a wiki is just that it's a way that anyone can create content
and share content. And it's a little bit different than say, just slapping up a web page, because
anybody can come and edit it. And so there's this constant evolution of content that is
going on. There have definitely been a number of studies
done that have actually shown that Wikipedia is as accurate, if not more accurate in some
cases, than encyclopedias like the Encyclopedia Britannica.
Wikipedia itself is in fact an extremely important resource for mathematicians. A lot of the
articles in Wikipedia about serious mathematical research topics, such as the Riemann Hypothesis,
are in fact extremely good articles. It's really, really surprising how good the quality
of Wikipedia articles has evolved. If you flip open a traditional encyclopedia and try
to look for research mathematics you just kind of chuckle at how incomplete it is, but
Wikipedia is really much, much better. Well, Wikipedia and all of these other wiki
projects that the Wikimedia Foundation helps run, are all built on free software. It's
a piece of free software called Mediawiki, which is the most popular and widely-used
wiki platform that's out there. And even beyond just the software that powers
all of this, there's this free and open source ethic that pervades the sort of culture
behind Wikipedia. And that's this idea that we can collaborate together to build something better.
And in Wikipedia's case that's building a body of knowledge, collecting the sum of all
human knowledge.
Wikis are powerful tools of collaboration,
that require an operating system to run on. Wikipedia, along with billions of other servers
and devices, depend on Linux.
Another bold of lightning is that Apple + Microsoft equals 100% of the desktop computer
market.
The Linux kernel controls access to the processor,
memory, and all the other devices. Surrounding the kernel is a lot of user mode software,
to build a complete operating system which is also known as Linux, or sometimes GNU/Linux.
It's kind of hard to explain a kernel, because the whole point of a kernel is to the hide
the hardware details to the programs you actually use. So you never use a kernel. If a kernel
is visible, there is something wrong. The kernel is handling the disk layout for you,
the kernel is handling memory allocations, the kernel is handling CPU and networking,
but it's not doing something that you actually interact with.
I mean, it actually does everything you interact with, in the sense that it, for example, reads
the keys you type in on the keyboard. But at the same time, it's not the thing that
reacts to what you are actually typing. It's kind of this hidden infrastructure, the
thing that you're supposed to ignore. If I'm on a bus or a subway, I wouldn't try
to explain it, it's just too hard. The things I do every day are about looking up filenames
and translating the filenames that normal applications use into the blocks on disk.
Most normal people say: "What blocks on disk?"
I've been a programmer since I was a kid,
doing programming on different machines over the years. In college, my girlfriend came
back from a class and said, "I heard this guy named Richard Stallman gave a talk, have
you ever heard of him?" I was like: "No, what's that?" So I looked it up, and I learned all
about the free software movement. After school, I went off and did embedded
programming, and then one time at one job we were using a Unix called SCO Unix, and
it wasn't really working as well, we had some problems with it, and someone said: "Hey,
let's try something called Linux, it should work on there." And it did, so we used it
in one of our products we made. And then I kind of just used it for a while,
another job I was at, and I was like: "Hey, I can change this stuff." And I did, and Linus
took my patches and I was like: "Hey, this is fun."
And I started writing code and I realized that more people were using the code I wrote
for free as a hobby, than anything I had ever been paid for. I wasn't working for very profitable
companies. So then, over time, I started doing more and more, and then I got offered a job
doing it, and I've doing it, getting paid for it ever since.
Linux as an operating system works on so many platforms and has so many fewer bugs than
other stuff because it has 10 million people who can view it. It has all these people who
can see the problems, report bugs, and fix bugs.
Making hardware work well is hard. Other operating systems like Apple has control over their
hardware. So they can make their operating system work really, really well with their
hardware. And that's great. Windows runs on every hardware, so they have the same problem
we do with Linux in that it has to run everywhere. All the drivers for Linux are in the kernel.
This is unlike other operating systems where all the drivers are outside, they come with
the device. Because of that, we get to see the patterns that are met. When one device
does the same things as another device, we can look at that and say: "Hey, wouldn't it
be great if we did this in the core, in a common way, so that everybody gets it, and
it works." So you don't make the same mistakes over and over and over. And then we say: "Oh
look, these 4 drivers from these different companies can be merged into one."
Microsoft and their way they did their OS is they have to keep the old backward compatibility
to the driver interface. Because our drivers are in the kernel, we can change that interface
and modify it based on what happens. They have to keep multiple versions of their
USB stack in the kernel and maintain them over time. And that's their business decision,
that's great, I understand their niche. Ours is re-write it, we make it smaller. So Linux
driver are at least 1/3 smaller than other drivers for other operating systems. So just
by pure size of the code, you have enhanced reliability.
Free software ends up being able to much more quickly adapt to environments and fix bugs,
because you don't have to wait for a single authority or a single person to get around
to fixing those bugs. Overall Linux allows you to create an operating
systems to build a product on. So like build cellphones, the Android guys did it. Palm,
all those people did phones for a long time with Linux in it before people realized it.
Supercomputer guys built giant supercomputers in ways they wanted to and they took Linux
and modified it to make it work. Google built a giant cluster out there.
Amazon's cloud computing initiative, what they've done with Linux is just amazing, things
that they couldn't do with any other operating system because they didn't have access to the source.
I remember when I was 17 or 18 and, you know,
long hair, Iron Maiden t-shirt, living with my parents, full of acne and insecurity, and
my brother came to stay with me for two weeks. And, of course we hated each other. I was
using Windows one day, and was getting frustrated with it and he basically said: "Why are using
that thing? It's Mickey Mouse." And he was a sys-admin, and he said you want
to use this thing called Linux. I had never heard of it.
I said: "What's that?" "It's Unix." Which I had heard of is this big complicated thing
that people with beards tended to use.
I worked in a bookshop at the time and he said you
can get it on the back of a book and it's all free.
And so we went and got it, and he installed it for me, and it literally took two weeks,
and he actually used the soldering iron because there was something wrong with my hard drive.
He had it all open, sprawled all over the thing.
And when it was finally on there, it's all text, and he just left me the username and
the password to login with, and then he left the following day. And I was stuck there with
this huge book, and this post-it note, and I logged in and I had no idea what was going on.
So I opened up the book and I started reading.
And a lot of the technical mumbo-jumbo I didn't understand, it was too technical for me, but
I remember reading the introductory section about community and how the software was put
together by the volunteers all over the world who share their contributions into one pool,
and I just thought that was fascinating. At the time the Internet was fascinating,
but the Internet was very much something you consume content from, you went to websites,
but with this you were interacting with people and you are creating something together and
I thought that was really interesting. The mechanics of how this thing was created
could pave the way for something even better to be created to solve the problems that were
present in the system. The opportunity for people to work together
around a common mission, a common goal, is what's made all of this possible.
You can't easily go into a computer store, buy a computer and Linux is just there. You
can do it in some places, Dell will sell you Linux pre-installed on their machines, but
the common case is not that. So even to get into Linux, normally you'd
have to decide to install your own operating system. And at that point, most people say:
"What, install my own operating system? No thank you."
Linux has got this potential, this great ability to grow very quickly, with everybody working
on it. And Linux is a great example of open source, and it's probably one of the best
originating ones, but that's spreading to a large number of things.
The web is built mostly on Linux. Free and powerful software creates a market for people
who can customize it for others.
I started off as a print designer, and the
web thing kind of came about, I knew absolutely nothing about programming, and really never
wanted to. I decided to kind of jump in the game, decided
to jump in with PHP, kind of learn that. These open source platforms kind of came about,
WordPress being one. And you jump in there, sure there's a little
bit of a learning curve, but if you have a question about anything, and I never claimed
to be the greatest programmer whatsoever, but if you have a question about anything,
or how to do something, the answer is out there.
Their Codex, their manual, is super searchable, all the information is there, that allows
a person like myself, who knew nothing about coding, to sort of jump right into that arena,
and actually now just build some pretty robust, amazing sites.
A kernel, graphical interface, and web browser, are the basic software for a desktop computer.
But for everyone from secretaries to CEOs, the office productivity applications are the
most important. There are billions of documents out there
in a file format so arcane that only Microsoft Office can fully understand them. LibreOffice,
which is based on OpenOffice, is the best free application suite, but it's still unknown
to the average person.
Microsoft has some assets like Office that
have stayed strong, and there's so much room for innovation in those. So, you know,
that's probably the most amazing asset that Microsoft has is that, globally the way people
get productivity with Outlook, Word. You know, they've maintained that position, and there's
so much more that they are doing, and you know I get to push a little bit and share
ideas in my part-time work.
Microsoft Office is critical to the Windows ecosystem.
Without Office, Windows is pretty useless. You can play solitaire on it, of
course nowadays you can browse the web, but Office brings so much more, particularly for
a business, for analytics. You can not just write letters to your family,
you can fill in government forms, you can model the world. You can take reality and
crunch it, in number form in your spreadsheet and see, what we should do? Lots of spreadsheets
are used to make business decisions. "Should we make more black cars or green cars? Which
is selling, what should we do? Should we do a marketing campaign?"
We can get very excited about the wobbly windows, and the funny effects, and the glass stuff,
but at the end of the day, Office is where the value is.
So from a code perspective, LibreOffice is around half the size of the Linux kernel.
I would argue from a complexity perspective we are significantly more complicated.
If you go to universities, they'll teach you courses on how to implement a kernel, or how
to implement a compiler, and that's well understood. It's less well understood how to implement
an office suite, and it's significantly more complicated, and the code is much more coupled.
Linus Torvalds would say that the Linux kernel is kind of a done problem. "Go and hack somewhere
else." LibreOffice is an extremely challenging codebase,
but it's an extremely good one for students and people wanting to get involved with professional
development. Vendor lock-in is a big problem because what
happens is, you start a business, you install a ton of Windows machines, you put Microsoft
Office on those machines, you save your documents in Microsoft Word format, and you are always
going to need Microsoft Word format to open them again. Which means you are always going
to have to pay for it. The problem with a proprietary format is really
one of vendor control. That vendor gets to choose exactly what goes into the standard,
and what goes into the standard is really some kind of silhouette of their office software.
So what ends up in there is all of this detail around the edges of what is perhaps 20 years
of accumulated baggage. It looks like this vast mound of un-navigable stuff that just
ends in there if you're not careful. OpenDocument is a better format because it
reuses existing standards and was created by a diverse community.
If you look at the genesis of ODF and DOCX, I think they're both rather different.
So ODF is really the OpenDocument format. It was produced by multiple vendors, working
on producing a real standard that can be used for multiple implementations, so I think there's
a degree of compromise in there, there's a degree of working together with other people
actually producing suites, and actually changing the standard.
That's critically important, that we open the market for office software so other people
can provide suites, and they can compete against each other in the common good.
LibreOffice grew out of some frustrations with the OpenOffice project. There were many
problems with that. I think, it's well described as a problem for every solution.
When Oracle acquired Sun, we were very hopeful that things would improve. Sadly, that didn't
occur, and so we created LibreOffice to really actually start doing those things that we
knew we needed to do to make LibreOffice more relevant, improve quality, to make it more
viable, and better inter-operability too.
Free software is a real enabler of local business because,
not only are you going to need help migrating to LibreOffice, some help, and Collabora
provides those services and has partners that do that, that brings money into the local economy.
Local companies can exploit niches and provide services that are just not possible
for a large company to provide. We have some amazing volunteers that have
contributed, just fantastic features that people see in the millions and appreciate.
From a community perspective, that's relatively easy, that's the easy part. Branding is
a different problem. We have a significant brand problem getting the word out about LibreOffice.
Donations to the foundation responsible for LibreOffice are much smaller than the amount
of money Microsoft receives for Office. What LibreOffice needs is more money and programmers.
Neil Armstrong may have been the first one to step on the moon, but Margaret Hamilton
was the lead engineer for the software that got him there.
Back then, programming was considered secretarial work, mostly done by the organized women,
while piloting of the dangerous aircraft was done by the more expendable men.
Today, there are special events to teach programming, but it isn't part of the daily classroom.
Math is taught with pencil and paper, as it has been for hundreds of years.
Computers can be excellent teachers because they allow children to explore and work at
their own pace. Python is a programming language that 8 year olds can start writing, and then
spend a lifetime mastering.
Few schools teach Python today. Instead, many
kids are taught visual languages they will quickly outgrow and aren't used in the real world.
Using Python and the Sage Math Library, we
can create a new form of math and science education.
It's weird because every single thing you do as an educator involving mathematics at
least is opened except possibly the software that you use to illustrate something.
If you are in a class and you're showing something or describing some theorem or some bit of
mathematics and a student asks you: "Why this?", "Why that?" "What's going on?", "Who did this?",
every single question you can answer but if they ask you how does that program draw that
picture, compute that integral, or whatever, then if you are using a proprietary system,
you are kind of shut off from finding out what the answer is, which seems really strange.
Some people like me are extremely annoyed by this and don't want mathematics to be like
this for the kids of the future. And other people are perfectly happy with it. And so
there is this sort of conflict. It's really sad when the field for doing
mathematics is not very level, where there are very smart people all over the world,
kind of equally distributed, but the access to resources for kind of stupid reasons aren't
equally distributed. In mathematics, it's all about trying to
understand something more deeply. You have some basic thing like some fact, and you want
to understand it. The more you understand it, you get really excited, your pulse quickens,
and you just feel like you're accomplishing something if you understand that fact more and more,
and by having access to the source code that lets you compute with some mathematical object,
you can dramatically deepen your understanding of that object.
You can add little bits of extra code in there and see what happens, it's really, really
fun. Maybe they really want to look under the hood
and see what's really going on with the code. There's some very easy way, when you
are using Sage, to see the underlying source code that's being run when you ask for a calculation.
"Freedom to tinker" is an expression that you'll hear a lot. You know, I want to be
able to open up a device and see how it works and play with it, and make it better.
Kids were getting consoles, you know, it's a black box, you sit down and play games:
"You should be a consumer of media rather than be a producer of media, rather than someone
that makes things." And there's this great movement about, sort
of in the free software movement about making things and tinkering. That's really what makes
the engineers and scientists of tomorrow.
We can hack into this mainframe.
I love that video games have finally folded in on themselves. We've gone from the action used to be:
"Slay the dragon", now it's: "Let's go into a basement and play with computers and servers!"
We often see in schools, that people teach
programming or IT, but it's actually just typing into a word processor or spreadsheet,
you're not actually learning the key skills you need to program, and so you don't learn
to understand computers, which are so vital in the modern world. Everything's driven by
software, if our children don't understand it, we're doomed!
I've always been an entrepreneur. When I was younger, I was selling candy door to door
and all that type of stuff. And really, figuring out programming and learning web development
from the very start was: "Woah, I can build businesses by myself you know, just sitting
in front of a computer." The idea that the Internet gives us the ability to connect to
anybody now. You can build on top of that platform,
you can create your own business, and the way you do that is through programming. It is
very easy to do. And that's why a lot of these Hackathons and these startup weekends and
all these events that are now. These kids get together and they'll just spend,
you know, a few hours working on something, and something can come out of it.
In the digital age, communities can create things together without being in the same
location, but where's the fun in that? Conferences, hackathons, and other events
are taking place all over the world, and they are a great way to meet people and exchange
ideas. We're at MHacks, this is the 3rd event that
we've held. We call it the most epic college Hackathon.
Programming in the classroom doesn't necessarily teach you all the stuff that you need to know
to actually go out and either get a job or contribute to a project. What you learn in
the classroom is: "This algorithm is faster than that one," and stuff like that, and that's
definitely useful, but to actually be able to go out and make things, is totally different.
Hacking for me is, has nothing to do with cyber-hacking or hacking someone's Facebook
or information, hacking for a hacker, like those who come to MHacks, is all about being
able to learn very quickly, being able to produce a solution to a problem really, really,
quickly, and basically hacking together a solution to a problem.
The most fun thing about programming for me is just the amount of power that I feel that
I have control over: everything on the Internet. You know, I see a bunch of data, and I can
scrape it, and I can use it, I can analyze it. I can put it on a website, and put that
out to display to people. I can write whatever I want to and it costs me nothing.
With programming, I can literally just open up my computer and start learning whatever
I need to learn, and create whatever I want to create. It's really hard for me to find
a limit to the things you can do just with your own, curiosity and drive.
Programming is kind of seen as an elite thing, and it shouldn't be, because programming
is going to be akin to driving in the future. Everything has a computer now, and that's
not going to go away. So you need to know how to use your stuff, how to use your tools.
A couple of years ago I tried learning C++ on my own, and it was actually really difficult,
I didn't know what I was doing. But then I started trying Python, and it's super simplistic
which I was actually really surprised with. So, I feel like, now that I'm learning Python,
I might actually be able to get into programming.
I like Python a lot because it's free as in libre,
free as in speech, so there aren't restrictive licenses attached to it. It's
not platform specific, so you can, write it on Linux, and then run it on Windows.
And, you know, all my friends use different operating systems, so it's super easy to collaborate
regardless. And it's an interpreted language, so it's
easy to debug, because you can run a few lines in a terminal, and call methods individually
without having like to compile, and make sure all of your stuff is in order for the entire
thing. You can just run what you need to.
Python is a very general, mainstream language,
certainly one of the top 5 or 10 most popular interpreted programming languages, and you
can do a wide range of things in it. You can write a web server, you can write
a game, you can write code for doing mathematics. You can do a very wide range of things, and
it's not really aimed at any one particular domain, it's very, very general, which is
great because it attracts a huge range of users, and it attracts a wide range of different
people and companies that like to contribute to it, making it better.
So I did program when I was 8, 9, 10 years old. I spent a lot of time, you know in Fred
Meyer, in their computer section, which they don't have anymore, programming in BASIC
and learning to program in fact from other kids.
The language we used then is very similar and immediate like Python is now so I can
easily imagine 8 year-olds today using Python in a similar capacity especially via their
cellphones or over the web or whatever, and they really have a full, very powerful, very
general purpose programming language at their disposal.
Python is a programming language where you tell a computer to do something.
Computers are dumb, and you have to tell them what to do, you have to make sure everything
is in order, and you always have to double-check your work.
We've learned how to write little pieces of code and make them one big thing.
Programming can be hard because there can be a lot of lines of code, and it takes time
to type all of them. You can make all sorts of shapes, or you can
even draw cars and a bunch of different things, you can do anything basically that your mind
can think of. We do programming because it's the most interesting
thing you can do. It's cerebral, and you actually build something practical. So, it's not like
playing chess, there's an end result, and you build something big and interesting.
I would do this even if I wasn't paid, but the fact that it's important enough to other people
that they want to pay me to make sure that I can do it full-time, I'll take it.
Many people are frustrated with current technology. The fight for freedom continues to the next
generation of people and devices. The trends are not positive.
Digital Rights Management or DRM controls the use of content. DRM restricts DVDs and
Blu-Ray, e-books, cable TV, web video, and even coffee machines and tractors. DRM is
fundamentally insecure while adding costs and difficulties for both sides - consumers
and creators. There's nothing free about Android, as we
certainly have asserted in a number of cases, there's an intellectual property royalty
due on that, whether they happen to charge for their software or not is their business decision.
The Android ecosystem took off because of
all the free software already available. Even so, everyone including Google builds a lot
of proprietary code on top. Therefore, Android customers complain about
the unwanted add-on bloatware, bugs, and discontinued support for older devices.
The Central Intelligence Agency has lost control of highly classified documents and computer
code that describe top secret techniques for intercepting phone calls, reading encrypted
text messages, and turning televisions into eavesdropping devices.
The Wikileaks Vault 7 release showed that governments and hackers can take control of
nearly every device on the planet. If a cyber-weapon is stolen, it can be exploited by anyone until
it's fixed, which can be years later.
Since the creation of the automobile, people
have dreamt of cars that can drive themselves. Any camera can record pictures of the road,
but it takes artificial intelligence to interpret and safely navigate it.
Creating autonomous vehicles that can handle bad weather and unexpected pedestrians, is
a difficult challenge. Most corporations and public universities are working in secret,
re-inventing the proverbial wheel. We tried to interview Ford and GM engineers
to ask basic questions, but many details are confidential. This secretive culture impedes
progress, and leads to less reliability. The good news is that it requires extremely
simple software to let us take a nap on highways in good driving conditions. Companies like
Delphi Automotive demonstrated this years ago.
As robotic cars become reality, flying taxis and other fun toys will appear.
Vision and control software are the biggest challenge in building a robotic butler or
maid that can cook and iron clothes. With a few thousand dollars for hardware,
you could build a plastic robot as well-trained as Alfred from Batman, and even able to learn
personal preferences. Software and technology are rapidly changing
many aspects of life, but it has personal implications for healthcare.
Everybody here goes to a radiologist, and they take an X-ray, and so forth, and they say:
"Oh, you are fine." I would much rather have the computer analyze
the radiology picture and then advise the doctor, and I would pay a premium for that,
because that doctor is going to get a better result.
The reason I mention radiology is that the computer vision stuff is better now than human vision
In an of itself, that's a pretty big deal.
What do you do with vision, aside from exist, right? Dermatology, radiology, things which
involve vision skills, these are relatively automatable, and that doesn't mean the dermatologist
goes away, but it means that he or she becomes efficient, does a better job, and is more
accurate. So you should expect that in the next decade,
you'll use tools with humans that make them more efficient, make you safer, and more productive.
I think it's speculation what happens after that.
I did all this research about the ways that software is reviewed on these devices, and
what the process is at the FDA. I found that in fact that the software is not really being reviewed
that much. Now, anyone who is a software developer knows that all software has bugs.
Things that I found about the FDA that were quite, I say shocking but it's a terrible
pun, were that the FDA doesn't actually review the software on most of it's implantable devices
that it reviews, it only reviews the software if there's a problem.
They don't also request the software because they're not reviewing it, so they don't maintain
a repository of it. So in like a disaster scenario, the FDA or the government
doesn't even have a copy of it. In a catastrophic situation, if you're relying on one company
to fix your heart device if there's a problem, if it's vulnerable, then you are really out
of luck. If it's free and open source software then anyone can see the source code, and anyone
can make a patch. What we have in medical device industry, or
at least with my pacemaker, is the worst of both worlds. We have devices that have closed
software, it's proprietary software so people can't review it broadly, but we also have
no encryption. So most of these devices are broadcasting
signals all the time and there is no encryption protecting us from having other people hack
into them. This was a think tank that actually were able
to hack into the device using just regular, over the counter equipment. They were be able
to deliver unwanted shocks, they were be able to put the device in test mode to run down
battery, and these devices are only good as their batteries are.
It's pretty terrifying how vulnerable these devices are and it's this really kind of this
perverse result, because you think that it's more vulnerable if you release the code for
people to review. It's a little counter-intuitive, but it's actually the reverse. We should publish
the code so everyone can see it, and make sure that it's safe and good, but we should
put real encryption on it, real protections, real passwords, so that we know that these
devices are not vulnerable to attacks. I want to be able to review the source code
on my device. If I'm not a programmer, I want my friends to be able to do it. I want
the think-tank to do it. I want the university to it. I want the world to be able to look
at this software and make sure that it is safe.
But that same logic not only goes for implanted medical devices, it goes for our cars, it goes
for our voting machines and our stock markets, anything we are relying in our lives and for
society should be reviewable by everyone. Life is very complex. It has evolved over
millions of years, developing all kinds of systems to keep us alive. There are many different
analysis techniques in order to investigate a living being, and they all generate a huge
amount of data to be analyzed.
Biology has become as much of a computational
science as a traditional lab science that it used to be.
Once upon a time, people used to spend their entire PhDs studying one gene. Nowadays we
have these high throughput methods that allow us to investigate, a whole genome, 10s of
thousands of genes, in one experiment. On the other hand, various labs, people generally,
tend to focus on one particular angle, one particular technology, for instance they can
do proteomics, or genomics, or metabolomics, whereas in order to really understand a complex
problem, you need to look at it from many, many angles.
Imagine you are waging let's say a war against a disease, you need different types of weapons.
So it's absolutely crucial to have resources that gather data of various types in one place.
The National Center for Biotechnology Information, or NCBI, is the largest resource for information
about health sciences. Inside the NCBI are archives with lots of data about many species
of life. The NCBI, being a government agency, that
is able to provide a variety of great access to scientists in a variety of different, pieces
of publications, they have access to genomic and proteomic data, and the best part about
all of this is that it gives this, idea a sense of community, so that anything that
gets discovered can be publicly available for other scientists to look at, to examine
and to further their own research. It's hard to believe that just two months
ago this virus was unknown to us. We have already learned so much about it. We know
it's DNA, we know it can be transmitted from one person to another, we know that those
most at risk are older people and those with underlying health conditions.
But there is still a lot we don't know. We don't know the source of the outbreak. We
don't know what it's natural reservoir is, and we don't properly understand it's transmissibility,
or severity. To defeat this outbreak, we need answers to
all those questions. And there are tools we don't have. We have no vaccine to prevent
infection, and no therapeutics to treat them. To put it bluntly, we're shadowboxing.
We need to bring this virus out into the light, so we can attack it properly.
That's why on February 11 and 12, we're convening a global research and innovation forum.
The World Health Organization, they've just asked for 500 million dollars for research
into the virus, which of course is wonderful, I hope they get it. We really need to get
on top of viral infections. We're just in the Middle Ages in a lot of ways as far as
viral infections is concerned. Anti-viral drugs are very limited.
How can we possibly make things better, how can we improve the research speed and the
accuracy of the results? The first issue that one needs to deal with
is that of standards. If several thousand people generate data in different formats,
nobody will be able to use that. So it is very important for the community to have some
standards that specify how the data should look like.
Another important step that community could take, is for major journals to require people
to make their data available when a paper is submitted for publication. This is very
important because, again this is human nature, the tendency of most PIs
is to hang very close to their data. So it's is very important so results can be verified,
and most importantly, could be re-analyzed, in conjunction with other data sets.
I think researchers could gain a lot of insight if some of the clinical trial data
were available for additional mining or interpretation and so forth.
There is an ongoing debate about FDA approval process. On the one hand, you have to be very
careful, you cannot, give a certain drug to millions of people potentially without testing
it thoroughly. However, the current process can be extremely painful and extremely long,
especially in those cases where there is compelling evidence that a particular drug candidate
works. In some situations, the treatment can be found relatively rapidly,
and it's a shame that treatment not to be made available to people who need it
just because the drug has not been approved yet. Patients with terminal conditions, terminal
illness, should access to experimental treatment immediately that could potentially save their lives.
People who are terminally ill should not have to go from country to country to
seek a cure. I want to give them a chance right here at home. It's time for Congress
to give these wonderful, incredible Americans the Right To Try.
Right To Try applies only to patients with terminal conditions. The FDA needs a modern
approval process, that also lets anyone with a debilitating disease try experimental cures.
We should reform patent laws, prohibiting them for math, software, or biological genes.
Technology doesn't exist in a vacuum. Bad laws can stifle progress, and encourage monopolies
and corruption.
The power of community applies far beyond the Internet. Every year new movements are
created that change the world. They can also help travel to the final frontier. Because
of the high cost of rockets, the community surrounding space exploration is small today.
All systems are go. We're about 90 seconds from the launch of Space Shuttle Discovery.
Go to go for launch: Guidance, FIDO, Bravo, GNC, Effects, Eagle, ECON, Payloads. For the customer,
BPS, Ginko, Booster, Surgeon, PDRS. Okay, lets see, we'll wait on GNC.
Discovery's onboard computers have primary control of all the vehicle's critical functions.
20 seconds. T-17 seconds and counting, 15, 12, 11, 10, 9, 8, 7, 6, main engine start,
2, 1, booster ignition, and liftoff of the Space Shuttle Discovery returning to the Space Station,
paving the way for future missions beyond.
57% of rated performance reducing the stress
on the Shuttle as it breaks through the sound barrier.
Discovery is already 1.5 miles in altitude, 1.5 miles downrange.
You want software wars? I can tell you about
software wars. You think software is important to NASA? When I went in there, it was at the
end of the Mercury program, which didn't do much, into the Gemini program which was, among
other things its primary purpose was to develop rendezvous.
So you can imagine you're trying to shoot something up and have it find something else
in space, hook up with it, so people can get out, and go back and forth or connect, which
was the heart of the Apollo design. Well that was all about software.
With the Shuttle, it got worse. On Gemini it was a small little computer, it got quite
a bit bigger on Apollo, but the computer was still nothing like you have in your pocket
right now, which is kind of staggering when you think we went to the moon and back, and did all
the navigation, all of the deliberations, control of the burns, was all done with a
computer was no better than your iPhone. In fact, it was way inferior to your iPhone.
You had to have boosters which you could light the fuse on, and they would take off, but
software was where it was at. Some of the biggest knock-down, drag-out meetings
that I was at, and contentious issues, involved software: how to configure systems, how to
respond to emergencies, how to decide if there was an emergency, and it was paramount to
what we did and what we accomplished. But then I got into simulation. "What's that
about?" Computers, everything about it was computers. The hardware involved was almost
incidental. It was just to take a cockpit, put it on some actuators so you could jiggle
it around, pipe some sound in, and put some instruments in so that the guy thinks he in
spacecraft, but outside of that is where it's all happening with software.
It was pretty far-fetched to go to the moon, when you think about it. In my day, I experienced
what I thought was almost a crazy mandate. We did it, we put a man on the moon, we got
him there, got him back alive, and had some narrow misses, and we were proud of what we
had done. When I was doing space missions, we were always
limited by how much we can send up. You've got little tiny instruments, on a big satellite,
that goes on a gigantic rocket, so it all comes down to what you can launch. We were
always looking for more. Most of my interaction with NASA was on
the space elevator, a concept that's been around since 1960. You have a string, a cable, with
one end attached to the earth and the other end up in space. Because the earth is rotating,
the upper end is basically thrown out away from the earth. If you spin a ball on a string
around your head, it sticks out away, and then you can climb the rope to space.
The modern version of that is, it's a cable, made of high-strength materials, and it's
got cars or climbers that are attached to the cable that go up, and can go to orbit,
and deploy satellites. This is very different from the rockets, the
rockets carry all their fuel, it's very heavy, very expensive. To go from rockets to the
space elevator, you'll reduce cost of getting into space by hundreds to thousands of times.
So instead of ten thousand dollars a pound, it would cost you a hundred dollars a pound
to get into space, and you can have massive quantities. It's like a large railway going
from earth to space. It changes the entire aspect of space. Space
is no longer this inaccessible location, you can go there, you can do what you want, you
can make it into something that you want for the future.
I wanna go into space, I want other people to be able to. We just can't do that on the rockets.
I saw in Arthur Clarke's book about the Space Elevator, and then I heard comments like,
"It simply can't be done." That's a statement, that gets some people interested in doing
it, and that's where I started looking into the space elevator and found we could do it.
When I was 5 years old I watched Neil Armstrong step onto the surface of the moon, I don't
know, it just instilled a huge passion in me for engineering and science, and exploration,
I've been kind of crazy about rockets since I was a little boy.
Single entities have tried, and they haven't made it: NASA, Virgin Galactic, we had SpaceShip
One, they were great, but they're also very limited. So you need to broaden it, you need
to get lots of people, you need to get interest, there needs to be returns.
It's sort of an open source for space, to get people in, doing the modeling, doing hardware
development, doing the research, getting the funding. And it all needs to be in open source,
it needs to come in from a lot of different places.
From a technical standpoint you could easily build a space elevator in about ten years.
You know, if you really get down and said: "We wanna build this thing," you did sort
of a Manhattan Project kind of thing where everybody's focused on it, you bring in who
you need to, and you just do it. You can probably have a space elevator up in about ten years,
from there it would grow fairly dramatically. I think the space elevator can be accomplished.
I think it will be momentous, I think it will be beyond anything we'd ever imagined that
we would try to do. There's no show-stoppers per-se, it's just technology, taking it a
step at a time, and figuring out what needs to be fixed, what needs to be designed.
The Space Elevator is estimated to cost 10 billion dollars to create. NASA could take
it on with their existing funding, if they cancelled projects made obsolete by the elevator.
Many space elevator enthusiasts think strong nanotubes are impossible to manufacture, even
though they carry around a supercomputer that runs on batteries in their pocket. Unfortunately,
NASA hasn't asked commercial industry for help producing nanotube threads.
For fastest results, we should create the elevator designs in public. Harnessing the
intellectual power of universities can accelerate the process. Once the first elevator is completed,
we could build a tremendous base on the moon within a year. You could arrange a trip from
your phone.
This open source model isn't necessarily making a better world, it's making a better product.
This a way, a really good way, to create software. Now what you make that software do is something
totally on up to you. You can make software do bad things, you can make software do good
things, and we're putting it out there without any restrictions on its use. So hopefully
Linux will create a better world, but again we are just creating software.
I know from our sources deep inside those Silicon Valley institutions, they genuinely
believe that they are going to produce artificial intelligences that are so powerful, relatively
soon, that people will have their brains digitized, uploaded to these artificial intelligences,
and live forever in a simulation, therefore will have eternal life. It's like a religion
for atheists. I suck at that, honestly, because I feel like
there's so much more I probably can do with my phone and computer like combined together,
but I don't take the time out to learn those type of things.
A lot of what's going to determine the "software
wars" between open source, free software and proprietary, is basically going to be economics.
It's been widely publicized that the Navy has been asked to cut 25% of IT spending.
You are going to see there come a point in time where the balance is going to have to
be much more on the free and open side, as supposed to what we have now which is all
proprietary, where things are re-invented each time, and charged-for each time.
As taxpayers and citizens, that's what we really should be pushing our government to
think about is, what are the economic benefits of using, and not only using but contributing
back to free and open source projects, so that they can become more self-sustaining
even more than they are today. But I think in the open source or free software,
it's changed because it's quality. I don't think people realize that companies and individuals
are starting to work together in open source and it's becoming very reliable, very secure,
and very capable set of functionality. Because it's free, it's really empowering.
The ability to download some free software, open up the source code for it, be able to
learn from it, and build upon it yourself with no restrictions. It just unlocks infinite
creative potential. One of the problems that people face in this
area is that they think they want to create something new. You know, "I want to become
Linus Torvalds." My advice to you is to join other people,
because the real goodness in free software comes not from doing things by yourself, but
by doing things together. I don't think you can stop that. I think the
Microsoft's out there, and the other proprietary companies out there would like to see it stopped,
because it threatens their profit model, it threatens their control, not only of money,
but of information. There's nothing more valuable than being able to control information,
not just the flow of information, but information itself!
I think the Wikipedia's out there, and the other projects out there, that are not just
liberating the information, but gathering the information, and disseminating it, and
keeping it free, are ultimately just going to eclipse the proprietary model.
Source code is so complicated, any interesting project, even a small project, is so complicated
that I claim that no developer can really understand the problem anymore. It really
boils down to that. Yes, science spread through the world, because
it works. You can't do complex things in a hidden environment where you try to control
it because the control will basically limit your technology.
But whoever says that Linux is a cancer, or Linux is Communist, is just uneducated and
stupid. It's that simple. It's like saying science is Communist, or science is a cancer.
That's completely idiotic, it's beyond stupid. If you don't spread your ideas in the open,
if you don't allow other people to look at how your ideas work, and verify that they
work, you're not doing science. One of my favorite quotes from history is
Isaac Newton, who was apparently not a very nice person but he was certainly smart,
he said: "If I had seen further, it has been by standing on the shoulders of the giants",
where the whole point, is in order to reach greatness, you have to be able to build on
what has gone before you. And so we will decide who wins based on what
people use, and what the general population of users use.
It's about people having the ability to control their own destiny when it comes to technology,
and that's the most important thing. And that's what open source has given us, and that's
what's challenged the industry as well. I mean, Microsoft are a different company because
of open source. 100 years after the transistor was invented,
proprietary technology continues to dominate many aspects of society. Billions of dollars
are wasted, while freedom and cooperation are hindered. The more we share scientific
information, the faster we can solve the challenges of the future.