
[Applause]
can anybody tell me what this graph is
I’ve purposely hidden the labels in
order to build up suspense by a show of
hands how many people think this is
Moore’s law okay
how about our national debt or a trading
volume on the new york stock exchange
well it’s not in the above it’s actually
human population from 10,000 BC to the
present and you can see that over
millennia humans have been growing
completely unchecked in fact in 1900
it’s estimated that there was one and a
half billion people on this planet and a
little more than a hundred years later a
blink of an eye on an evolutionary time
scale we’re at 7 billion people that’s
extraordinary
you know I grew up in New York and
during long hot summers occasionally the
population of cockroaches looked like
this and then you call the exterminator
and boom you’re down and this is not bad
particularly for cousins of the great
apes and a species that’s just slightly
more advanced than Curious George so how
did this happen how do we do this well
the answer actually has to do with
curiosity the answer of course is
technology all kinds of technology
agricultural technology medical
technology manufacturing and industrial
technology and of course information
technology and you could see this more
clearly on a log scale where we’re
looking at growth rates on this graph
you see that there are four distinct
periods of human evolution the Stone Age
which is the flat part of the curve the
Bronze Age which is the first upward
sloping part the Industrial Age which is
the steeper sloping part and finally the
information age where it’s nearly
vertical this is an extraordinary story
and the question is how did we get here
well I want to argue that part
the role that’s been played in this
growth it has to do with the culture of
innovation specifically the role of the
hacker now I know that that term has
different connotations today than it was
first formulated but I want to go back
to the original definition of what a
hacker is which is an unconventional
technology maverick that makes the world
a better place on the basis of
creativity and sheer will
for example Grace Hopper the first
programmer of compilers who ultimately
became Rear Admiral in the US Navy or
Tim berners-lee a physicist who ended up
inventing the world wide web or Richard
Stallman the champion of free software
and the developer of a number of canoe
products that we all use this is an
extraordinary line of developers that
have basically contributed to society in
some pretty imaginative ways now the
term hacker was popularized in the 1980s
by Steven Levy in his book titled
hackers and in this book he describes
the unwritten code of ethics of hackers
and there are many different parts to it
but the three common themes among all of
the various different versions he
describes are number one this notion
that software should be free and open
and accessible to everybody to that
hacker should be judged on the basis of
what they accomplished not on the basis
of race gender degrees pedigree or
anything else
and finally computers can actually
change the world for the better and this
culture is still with us today well it’s
one of the reasons why some of the best
software is free like Linux or the
Apache web server or this search engine
that some of you may have tried once or
twice called Google and this is also why
we have hackathons where hack
work round the clock on engineering
challenges for the sheer pleasure and
challenge fueled only by their
adrenaline and will and maybe a little
bit of pizza and coca-cola that’s the
hacker culture in contrast to hackers we
also have hacks now buy hacks I mean the
exact opposite of a hacker somebody who
lacks imagination and creativity who
produces buggy inelegant clunky code
that other people have to clean up after
you know who they are and it turns out
that these kinds of buggy software can
have severe consequences for example on
September the 26 1983 the Soviet Union’s
early warning satellite system detected
the launch of five ballistic missiles
from the United States going towards
Russia it turns out that this early
warning software somehow mistakenly
identified these five clouds with
sunlight reflecting on them as ballistic
missiles
fortunately the officer on duty
stanislav petrov recognized it for what
it is and prevented the soviet
anti-missile defense system from
launching a counter-attack thank you
colonel petrov between 1985 and 1987 a
software glitch in the user interface of
a canadian medical radiation device the
therac-25 irradiated a number of cancer
patients with radiation doses between a
hundred and a thousand times what they
were prescribed killed three patients
and you’re all familiar I suspect with
y2k the problem that programmers created
when they decided to store calendar
years with two digits instead of four in
order to save some storage space the
Commerce Department has estimated that
between 1995 and 2001 we spent a hundred
billion dollars on y2k
I hope those eight bytes of storage we
save per date was worth it and on August
the 1st 2012 one of the world’s most
sophisticated electronic broker dealers
Knight Capital Group was testing out
their automated trading platform and
because of a software glitch their trade
generator generated hundreds of test
trades that actually turned out to be
live and those trades had to be
liquidated within the space of 20
minutes the software lost 400 million
dollars for its owners the company
dropped the stock price by 70% and
ultimately had to be rescued and
acquired by one of its competitors now I
have no idea how these software errors
occurred I don’t know who is involved
but I suspect that all of them felt
horrible about these outcomes and you
know what I think it’s actually unfair
to call them hacks even without knowing
who they are or the quality of their
programming because all of us encounter
unintended consequences of technological
innovation for example you may remember
from the nineteen sixties and seventies
those who are old enough that the fast
food trend created all sorts of problems
with littering people would just throw
garbage out of their car windows as they
were driving not that I ever did that
you also know that pesticides which is
part of that agricultural revolution
that created birth defects in several
very unfortunate and tragic cases we
know that industrialization has created
air pollution causing lung cancer and a
variety of other health issues and
probably the most severe unintended
consequence of all is climate change and
so you know we’re all dealing with these
unintended consequences today because
frankly we have a lot more in common
with Curious George than just 99% of our
DNA we’re always getting into all kinds
of trouble and it’s really a race
between Moore’s law and Murphy’s Law
which would be funny if the consequences
weren’t so severe and the stakes weren’t
so high now I think I think along the
same lines as most of you in that I
believe that we are on the verge of
profound innovation
are we ready have we fought through the
consequences and the impact of that
innovation the way that a really
talented hacker might driverless cars
are here are we prepared for the massive
and sudden unemployment of millions of
truck drivers taxi drivers and
delivering people gene-editing is now a
reality we can start millipede
manipulating genes in ways that we’ve
never been able to do before and in some
cases it looks like we can cure diseases
in many cases diseases that affect you
or your family but what if it’s a case
that it’s not profitable for drug
companies to cure these diseases or what
if it is profitable but you can’t afford
it who decides and how do they decide
who lives and dies artificial
intelligence has made tremendous strides
were on the verge of being able to
synthesize genuine intelligence so
imagine the incredible ideas that can be
generated with human thought at the
speed of light but imagine all the
really bad ideas that can be generated
using that same mechanism like
sterilization as a solution to
overpopulation or eugenics as a way of
developing smarter healthier humans are
we prepared to deal with all of these
issues I think we can solve all of them
but only if we start working on them now
if we start trying to hack humanity well
how do we do that
well first we start by learning from our
mistakes
in many cases failures result in loss of
life we should honor the dead by
learning from those mistakes the best
example of this is the National
Transportation Safety Board one of the
most admired parts of the federal
government the NTSB is the organization
that examines every airplane crash
collects the black box does an
investigation that sometimes takes years
and ultimately produces a report telling
us what happened how it happened why it
happened and what we can do to make sure
that it never ever happens again because
of the NTSB air travel has become safer
by several orders of magnitude over the
last few decades really an astonishing
accomplishment
we need an NTSB for financial accidents
for biomedical accidents and for
technology accidents second we need to
think two or three steps ahead
particularly about winners and losers
now when it comes to innovation there
are always winners and losers for
example horses versus the horse and
buggy the horse and buggy versus the
train the train versus the car the car
versus the airplane we’ve had winners
and losers since the beginning of
innovation why should we care about them
now well the answer is because we can
now actually do something about it we
have the technology first to monitor the
impact of our innovations thanks to Big
Data machine learning social media
mobile phone technology not only can we
monitor the impact but we can actually
mobilize the global community to address
them and with the right kind of policies
we can actually minimize the chances of
what I call innovation whiplash third
and I think most important we need to
apply our technology know-how to other
fields of human endeavor fields that may
not seem relevant at first this is going
to require unprecedented collaboration
between technologists legislators
government academia across lots of
different feel
but of course this is what hackers do
all the time and I want to give you an
example of this the example has to do
with software development something that
I suspect many of you know quite a lot
about we know that good software design
is modular meaning that different
functions are contained in separate
units and you try to minimize the
interactions as much as you can so it’s
easier to debug code when problems arise
but what exactly does modularity mean in
terms of software architecture how do we
quantify that so I’m gonna give you an
example imagine that we have a large
piece of software that’s broken down
into different components labeled
according to these letters and each of
the components is responsible for a
specific set of tasks now given how
large this piece of software is and how
complex obviously these components are
going to interact to some degree so the
interactions are going to be depicted by
these arrows and the arrows represent
situations where one piece of software
requires some action or input from
another piece so in this case components
B and D rely on a and so we draw an
arrow from A to B and a to D if you draw
all of the different arrows to describe
the interactions among these different
software components what you get is a
network diagram something that computer
scientists mathematicians and even
economists study all the time and by
looking at these network diagrams we can
begin to understand what it means to
have modular code so for example there’s
a definition of connectedness
that gets right at the heart of this
issue a connected set is a set of nodes
or components of software where there
are arrows that will take you from one
node to every other node in that set so
an example is B&E that’s a connected set
because you can go from B to E and E to
be notice that a is not part of that
connected set because you can’t get to e
you can’t get to a from E
as they say in Maine you can’t get there
from here now this notion of
connectedness is very much like friends
and family and with any piece of complex
software you’re gonna have different
sets of friends and family so if we map
all of the connected sets this is what
we get and we can now start to ask that
question of what it means to have really
modular code take a look at these
different connected sets and look for
the largest one the one with the most
number of components that’s going to be
called the core of this piece of
software and what you’d like to do as
part of good software architecture is to
make sure the core is not too big a part
of the whole because if it is it means
that one problem with one component in
that core can mean all sorts of
unintended consequences for every other
member of that core by definition since
its they’re all connected if you apply
this method to Mozilla Firefox you get a
sense of how efficient code can be so
between versions 16 through 20 there was
a study done about the size of the core
and you can see that the median size of
cores in Mozilla is about 5.7 percent of
the total codebase this is very
efficient code very well written
so how about if we apply this to the US
legal code is that well written after
all the laws are like the operating
system of our society and so we can take
the exact same tools and ask the exact
same questions of the legal system that
all of us are part of well a couple of
years ago my co-authors and I did
exactly that and published a paper using
the core and many other metrics of good
software design to try to analyze the US
legal code and let me tell you what we
found
so the Omnibus appropriations Act of
2009 which is a relatively simple budget
Appropriations Act just listing a whole
bunch of different allocations of budget
to various different activities this is
what that piece of code looks like
the blue dots are individual sections of
the code the red dots represent the core
the largest connected set and by
connection we mean references of one
part of the code to another so that if
you actually change one part of the code
it might actually affect the other parts
that reference it very well-written
very efficient very modular now let me
show you the US patent system title 35 a
little bit more complicated but actually
using software metrics still pretty well
written because look at the core the red
dots are actually a pretty small
fraction of all the other dots but of
course the patent system is considerably
more complicated than a laundry list of
expenditures so you would expect it to
be more tightly interconnected now I’m
going to show you the financial code the
financial system in United States is one
of the most sophisticated successful
financial systems in the world right so
what do you think the network diagram
looks like of the financial code well
here it is
this is title 12 regulations for banks
and banking now you understand how the
financial crisis happened but this is
not even the worst the worst code is
this title 26 the Internal Revenue Code
if there’s anything that ever looks like
spaghetti code this is it in fact it
even looks like spaghetti with a little
too much meat sauce using these metrics
we can identify how efficient the legal
system is but more importantly we can
also identify problems with the legal
system areas where the laws are not only
too complex and they need to be
rewritten or refactored but anticipating
problems that can arise especially when
you couple various aspects of
demographics with legal code now in
order to make use of these ideas we’re
going to need collaboration between
computer scientists software engineers
lawyers and legislators and that’s
exactly what hackers do
you know Steve Jobs one of the most
respected technology innovators the
creator of one of the most valuable
companies in the world at one point he
was criticized for not knowing how to
program a computer you know what he said
he said I don’t program computers I
program people we need to reprogram
society using the most talented hackers
we have to deal with the societal
challenges that not only we but our
children and grandchildren will face
we are the Curious George of the animal
kingdom the problem is there is no man
in the yellow hat we are the man in the
yellow hat and if we start working now
together on hacking humanity we just
might make it to y3k thank you
[Applause]
you
[Music]
can anybody tell me what this graph is
I’ve purposely hidden the labels in
order to build up suspense by a show of
hands how many people think this is
Moore’s law okay
how about our national debt or a trading
volume on the new york stock exchange
well it’s not in the above it’s actually
human population from 10,000 BC to the
present and you can see that over
millennia humans have been growing
completely unchecked in fact in 1900
it’s estimated that there was one and a
half billion people on this planet and a
little more than a hundred years later a
blink of an eye on an evolutionary time
scale we’re at 7 billion people that’s
extraordinary
you know I grew up in New York and
during long hot summers occasionally the
population of cockroaches looked like
this and then you call the exterminator
and boom you’re down and this is not bad
particularly for cousins of the great
apes and a species that’s just slightly
more advanced than Curious George so how
did this happen how do we do this well
the answer actually has to do with
curiosity the answer of course is
technology all kinds of technology
agricultural technology medical
technology manufacturing and industrial
technology and of course information
technology and you could see this more
clearly on a log scale where we’re
looking at growth rates on this graph
you see that there are four distinct
periods of human evolution the Stone Age
which is the flat part of the curve the
Bronze Age which is the first upward
sloping part the Industrial Age which is
the steeper sloping part and finally the
information age where it’s nearly
vertical this is an extraordinary story
and the question is how did we get here
well I want to argue that part
the role that’s been played in this
growth it has to do with the culture of
innovation specifically the role of the
hacker now I know that that term has
different connotations today than it was
first formulated but I want to go back
to the original definition of what a
hacker is which is an unconventional
technology maverick that makes the world
a better place on the basis of
creativity and sheer will
for example Grace Hopper the first
programmer of compilers who ultimately
became Rear Admiral in the US Navy or
Tim berners-lee a physicist who ended up
inventing the world wide web or Richard
Stallman the champion of free software
and the developer of a number of canoe
products that we all use this is an
extraordinary line of developers that
have basically contributed to society in
some pretty imaginative ways now the
term hacker was popularized in the 1980s
by Steven Levy in his book titled
hackers and in this book he describes
the unwritten code of ethics of hackers
and there are many different parts to it
but the three common themes among all of
the various different versions he
describes are number one this notion
that software should be free and open
and accessible to everybody to that
hacker should be judged on the basis of
what they accomplished not on the basis
of race gender degrees pedigree or
anything else
and finally computers can actually
change the world for the better and this
culture is still with us today well it’s
one of the reasons why some of the best
software is free like Linux or the
Apache web server or this search engine
that some of you may have tried once or
twice called Google and this is also why
we have hackathons where hack
work round the clock on engineering
challenges for the sheer pleasure and
challenge fueled only by their
adrenaline and will and maybe a little
bit of pizza and coca-cola that’s the
hacker culture in contrast to hackers we
also have hacks now buy hacks I mean the
exact opposite of a hacker somebody who
lacks imagination and creativity who
produces buggy inelegant clunky code
that other people have to clean up after
you know who they are and it turns out
that these kinds of buggy software can
have severe consequences for example on
September the 26 1983 the Soviet Union’s
early warning satellite system detected
the launch of five ballistic missiles
from the United States going towards
Russia it turns out that this early
warning software somehow mistakenly
identified these five clouds with
sunlight reflecting on them as ballistic
missiles
fortunately the officer on duty
stanislav petrov recognized it for what
it is and prevented the soviet
anti-missile defense system from
launching a counter-attack thank you
colonel petrov between 1985 and 1987 a
software glitch in the user interface of
a canadian medical radiation device the
therac-25 irradiated a number of cancer
patients with radiation doses between a
hundred and a thousand times what they
were prescribed killed three patients
and you’re all familiar I suspect with
y2k the problem that programmers created
when they decided to store calendar
years with two digits instead of four in
order to save some storage space the
Commerce Department has estimated that
between 1995 and 2001 we spent a hundred
billion dollars on y2k
I hope those eight bytes of storage we
save per date was worth it and on August
the 1st 2012 one of the world’s most
sophisticated electronic broker dealers
Knight Capital Group was testing out
their automated trading platform and
because of a software glitch their trade
generator generated hundreds of test
trades that actually turned out to be
live and those trades had to be
liquidated within the space of 20
minutes the software lost 400 million
dollars for its owners the company
dropped the stock price by 70% and
ultimately had to be rescued and
acquired by one of its competitors now I
have no idea how these software errors
occurred I don’t know who is involved
but I suspect that all of them felt
horrible about these outcomes and you
know what I think it’s actually unfair
to call them hacks even without knowing
who they are or the quality of their
programming because all of us encounter
unintended consequences of technological
innovation for example you may remember
from the nineteen sixties and seventies
those who are old enough that the fast
food trend created all sorts of problems
with littering people would just throw
garbage out of their car windows as they
were driving not that I ever did that
you also know that pesticides which is
part of that agricultural revolution
that created birth defects in several
very unfortunate and tragic cases we
know that industrialization has created
air pollution causing lung cancer and a
variety of other health issues and
probably the most severe unintended
consequence of all is climate change and
so you know we’re all dealing with these
unintended consequences today because
frankly we have a lot more in common
with Curious George than just 99% of our
DNA we’re always getting into all kinds
of trouble and it’s really a race
between Moore’s law and Murphy’s Law
which would be funny if the consequences
weren’t so severe and the stakes weren’t
so high now I think I think along the
same lines as most of you in that I
believe that we are on the verge of
profound innovation
are we ready have we fought through the
consequences and the impact of that
innovation the way that a really
talented hacker might driverless cars
are here are we prepared for the massive
and sudden unemployment of millions of
truck drivers taxi drivers and
delivering people gene-editing is now a
reality we can start millipede
manipulating genes in ways that we’ve
never been able to do before and in some
cases it looks like we can cure diseases
in many cases diseases that affect you
or your family but what if it’s a case
that it’s not profitable for drug
companies to cure these diseases or what
if it is profitable but you can’t afford
it who decides and how do they decide
who lives and dies artificial
intelligence has made tremendous strides
were on the verge of being able to
synthesize genuine intelligence so
imagine the incredible ideas that can be
generated with human thought at the
speed of light but imagine all the
really bad ideas that can be generated
using that same mechanism like
sterilization as a solution to
overpopulation or eugenics as a way of
developing smarter healthier humans are
we prepared to deal with all of these
issues I think we can solve all of them
but only if we start working on them now
if we start trying to hack humanity well
how do we do that
well first we start by learning from our
mistakes
in many cases failures result in loss of
life we should honor the dead by
learning from those mistakes the best
example of this is the National
Transportation Safety Board one of the
most admired parts of the federal
government the NTSB is the organization
that examines every airplane crash
collects the black box does an
investigation that sometimes takes years
and ultimately produces a report telling
us what happened how it happened why it
happened and what we can do to make sure
that it never ever happens again because
of the NTSB air travel has become safer
by several orders of magnitude over the
last few decades really an astonishing
accomplishment
we need an NTSB for financial accidents
for biomedical accidents and for
technology accidents second we need to
think two or three steps ahead
particularly about winners and losers
now when it comes to innovation there
are always winners and losers for
example horses versus the horse and
buggy the horse and buggy versus the
train the train versus the car the car
versus the airplane we’ve had winners
and losers since the beginning of
innovation why should we care about them
now well the answer is because we can
now actually do something about it we
have the technology first to monitor the
impact of our innovations thanks to Big
Data machine learning social media
mobile phone technology not only can we
monitor the impact but we can actually
mobilize the global community to address
them and with the right kind of policies
we can actually minimize the chances of
what I call innovation whiplash third
and I think most important we need to
apply our technology know-how to other
fields of human endeavor fields that may
not seem relevant at first this is going
to require unprecedented collaboration
between technologists legislators
government academia across lots of
different feel
but of course this is what hackers do
all the time and I want to give you an
example of this the example has to do
with software development something that
I suspect many of you know quite a lot
about we know that good software design
is modular meaning that different
functions are contained in separate
units and you try to minimize the
interactions as much as you can so it’s
easier to debug code when problems arise
but what exactly does modularity mean in
terms of software architecture how do we
quantify that so I’m gonna give you an
example imagine that we have a large
piece of software that’s broken down
into different components labeled
according to these letters and each of
the components is responsible for a
specific set of tasks now given how
large this piece of software is and how
complex obviously these components are
going to interact to some degree so the
interactions are going to be depicted by
these arrows and the arrows represent
situations where one piece of software
requires some action or input from
another piece so in this case components
B and D rely on a and so we draw an
arrow from A to B and a to D if you draw
all of the different arrows to describe
the interactions among these different
software components what you get is a
network diagram something that computer
scientists mathematicians and even
economists study all the time and by
looking at these network diagrams we can
begin to understand what it means to
have modular code so for example there’s
a definition of connectedness
that gets right at the heart of this
issue a connected set is a set of nodes
or components of software where there
are arrows that will take you from one
node to every other node in that set so
an example is B&E that’s a connected set
because you can go from B to E and E to
be notice that a is not part of that
connected set because you can’t get to e
you can’t get to a from E
as they say in Maine you can’t get there
from here now this notion of
connectedness is very much like friends
and family and with any piece of complex
software you’re gonna have different
sets of friends and family so if we map
all of the connected sets this is what
we get and we can now start to ask that
question of what it means to have really
modular code take a look at these
different connected sets and look for
the largest one the one with the most
number of components that’s going to be
called the core of this piece of
software and what you’d like to do as
part of good software architecture is to
make sure the core is not too big a part
of the whole because if it is it means
that one problem with one component in
that core can mean all sorts of
unintended consequences for every other
member of that core by definition since
its they’re all connected if you apply
this method to Mozilla Firefox you get a
sense of how efficient code can be so
between versions 16 through 20 there was
a study done about the size of the core
and you can see that the median size of
cores in Mozilla is about 5.7 percent of
the total codebase this is very
efficient code very well written
so how about if we apply this to the US
legal code is that well written after
all the laws are like the operating
system of our society and so we can take
the exact same tools and ask the exact
same questions of the legal system that
all of us are part of well a couple of
years ago my co-authors and I did
exactly that and published a paper using
the core and many other metrics of good
software design to try to analyze the US
legal code and let me tell you what we
found
so the Omnibus appropriations Act of
2009 which is a relatively simple budget
Appropriations Act just listing a whole
bunch of different allocations of budget
to various different activities this is
what that piece of code looks like
the blue dots are individual sections of
the code the red dots represent the core
the largest connected set and by
connection we mean references of one
part of the code to another so that if
you actually change one part of the code
it might actually affect the other parts
that reference it very well-written
very efficient very modular now let me
show you the US patent system title 35 a
little bit more complicated but actually
using software metrics still pretty well
written because look at the core the red
dots are actually a pretty small
fraction of all the other dots but of
course the patent system is considerably
more complicated than a laundry list of
expenditures so you would expect it to
be more tightly interconnected now I’m
going to show you the financial code the
financial system in United States is one
of the most sophisticated successful
financial systems in the world right so
what do you think the network diagram
looks like of the financial code well
here it is
this is title 12 regulations for banks
and banking now you understand how the
financial crisis happened but this is
not even the worst the worst code is
this title 26 the Internal Revenue Code
if there’s anything that ever looks like
spaghetti code this is it in fact it
even looks like spaghetti with a little
too much meat sauce using these metrics
we can identify how efficient the legal
system is but more importantly we can
also identify problems with the legal
system areas where the laws are not only
too complex and they need to be
rewritten or refactored but anticipating
problems that can arise especially when
you couple various aspects of
demographics with legal code now in
order to make use of these ideas we’re
going to need collaboration between
computer scientists software engineers
lawyers and legislators and that’s
exactly what hackers do
you know Steve Jobs one of the most
respected technology innovators the
creator of one of the most valuable
companies in the world at one point he
was criticized for not knowing how to
program a computer you know what he said
he said I don’t program computers I
program people we need to reprogram
society using the most talented hackers
we have to deal with the societal
challenges that not only we but our
children and grandchildren will face
we are the Curious George of the animal
kingdom the problem is there is no man
in the yellow hat we are the man in the
yellow hat and if we start working now
together on hacking humanity we just
might make it to y3k thank you
[Applause]
you
[Music]
Please follow and like us: