Press "Enter" to skip to content

Hacking Humanity | Andrew Lo | TEDxCambridgeSalon


[Applause]

[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

Leave a Reply

Your email address will not be published. Required fields are marked *