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