SlideShare uma empresa Scribd logo
1 de 53
Power
of the
Paradig
Quotations from smarter people.
Even when the experts all
agree,
they may well be mistaken.
Bertrand Russell
Paradigm
A model of thought
Paradigm
Con rmation Bias
In science it often happens that scientists say
You know that’s a really good argument;
my position is mistaken,
and then they would actually change their minds
and you never hear that old view from them again.
They really do it. It doesn’t happen as often as it
should, because scientists are human and change is
sometimes painful. But it happens every day. I
cannot recall the last time something like that
happened in politics or religion.
Carl Sagan
In science it often happens that scientists say
You know that’s a really good argument;
my position is mistaken,
and then they would actually change their minds
and you never hear that old view from them again.
They really do it. It doesn’t happen as often as it
should, because scientists are human and change is
sometimes painful. But it happens every day. I
cannot recall the last time something like that
happened in politics or religion.
Carl Sagan
Change is sometimes painful
•Confusion
•Fear
•Embarrassment
•Loss
•Fight or flight
Faced with the choice between
changing one’s mind and proving
that there is no need to do so,
almost everyone gets busy on the proof.
John Kenneth Galbraith
Paradigms in Programming
• Stored program concept
• Subroutines
• Structured programming
• Methods
• Higher order functions
• Pure functions
The problem with purity:
The universe is not pure.
A new scientific truth does not triumph
by convincing its opponents and making
them see the light, but rather because
its opponents eventually die,
and a new generation grows up
that is familiar with it.
Max Planck
Science advances one funeral at a time.
Max Planck
Progress waits not on discovery,
but on consensus.
Paradigm Confusion
• Shoot the messenger.
• I do not understand how x can be true.
• Violent disagreement with irrelevant details.
• Intensify imperfection.
• Distortion.
• Partial adoption.
• Obsess about performance.
More computing sins are committed
in the name of efficiency
(without necessarily achieving it)
than for any other single reason
—including blind stupidity.
William A. Wulf
The new shiny object is
part of the old paradigm.
It is difficult to distinguish a new
paradigm from a really bad idea.
• The Old Paradigm •
Sequential Programming
• The Next Paradigm •
Asynchronous Message Passing
• The Old Paradigm •
Sequential Programming
• The Next Paradigm •
Asynchronous Message Passing
• The Old Paradigm •
Sequential Programming
• The Next Paradigm •
Asynchronous Message Passing
Asynchronous Message Passing
• Sending a message to another process or
system.
• The sender does not wait for a response. The
sender is free to do more work, including
sending more messages.
• Every receiver has a queue, or mailbox, that
holds incoming messages.
• Messages will be handled one by one.
• Shared nothing.
Actors
1973
postMessage
NodeJS
Clinging to the Old Paradigm
•RPC, HTTP, SOAP, REST
•Sync functions
•Generators
•Promises
•async await
A single mechanism provides
Concurrency
Communication
Security
The Seif Project
Rhymes with “safe”
Seif: A secure, efficient, asynchronous
JSON & blob messaging system
Seif does not require
DNS
HTTP
Certificates
Passwords
Seif provides a module adding
cryptographic services to Node JS
•ECC 521
•AES 256
•SHA3-256
•Random generation and entropy harvesting
Zooko’s Triangle
Human
Meaningful
Securely
Unique
Decentralized
ECC521 public keys as unique
identifiers
Seif Protocol
Secure JSON Over TCP
Efficient sessions
Symmetric
S(plaintext) => ciphertext
S(ciphertext) => plaintext
Asymmetric
P(plaintext) => ciphertext
R(ciphertext) => plaintext
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA )}
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA )}
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA)}
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA)}
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA)}
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA)}
← H({PA (S)})
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA)}
← H({PA(S)})
Seif Handshake
Alice
•PA Alice’s public key
•RA Alice’s private key
•PB Bob’s public key
•H Handshake key
•S Session key
Bob
•PB Bob’s Public Key
•RB Bob’s Private Key
•PA Alice’s public key
•H Handshake key
•S Session key
→ {"seif": 1, PB(H), H(PA)}
← H({PA(S)})
Seif Message Send
• Normal send
• Automatic persistent retry
• Status send
• For telemetry and gaming
• Messages may be discarded
seif: publickey @ ipaddress /
referral
Difficulty of software security
•Does what it should
•Doesn’t do what it shouldn’t
•No software is initially secure
•Only a minimal approach can produce
software that is eventually secure
There is nothing new here.
The goal of the Seif Project is to
provide safe and effective relationship
management on the web.
Still to do
• Port the Seif Protocol to other platforms,
including
• Java
• Unix
• IOS
• Windows
• Development of frameworks that use Seif.
• Browser support.
The Seif Project
http://www.seif.place/
• The Next Paradigm •
Asynchronous Message Passing
It ought to be remembered that there is nothing more
difficult to take in hand, more perilous to conduct, or
more uncertain in its success, than to take the lead in
the introduction of a new order of things. Because the
innovator has for enemies all those who have done
well under the old conditions, and lukewarm
defenders in those who may do well under the new.
This coolness arises partly from fear of the
opponents, who have the laws on their side, and
partly from the incredulity of men, who do not readily
believe in new things until they have had a long
experience of them.
Niccolò Machiavelli

Mais conteúdo relacionado

Mais de JSFestUA

JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...JSFestUA
 
JS Fest 2019/Autumn. Александр Товмач. JAMstack
JS Fest 2019/Autumn. Александр Товмач. JAMstackJS Fest 2019/Autumn. Александр Товмач. JAMstack
JS Fest 2019/Autumn. Александр Товмач. JAMstackJSFestUA
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...JSFestUA
 
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JSFestUA
 
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developersJS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developersJSFestUA
 
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...JSFestUA
 
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?JSFestUA
 
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the ScaleJS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the ScaleJSFestUA
 
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratchJS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratchJSFestUA
 
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотятJS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотятJSFestUA
 
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for RustJS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for RustJSFestUA
 
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...JSFestUA
 
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проектіJS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проектіJSFestUA
 
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядроJS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядроJSFestUA
 
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...JSFestUA
 
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложениеJS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложениеJSFestUA
 
JS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automation
JS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automationJS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automation
JS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automationJSFestUA
 
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JSFestUA
 
JS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутри
JS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутриJS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутри
JS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутриJSFestUA
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJSFestUA
 

Mais de JSFestUA (20)

JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
 
JS Fest 2019/Autumn. Александр Товмач. JAMstack
JS Fest 2019/Autumn. Александр Товмач. JAMstackJS Fest 2019/Autumn. Александр Товмач. JAMstack
JS Fest 2019/Autumn. Александр Товмач. JAMstack
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
 
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
 
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developersJS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
 
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
 
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
 
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the ScaleJS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
 
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratchJS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
 
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотятJS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
 
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for RustJS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
 
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
 
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проектіJS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
 
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядроJS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
 
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
 
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложениеJS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
 
JS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automation
JS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automationJS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automation
JS Fest 2019. Mauricio Palma. You can’t read this sentence - A11y automation
 
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
 
JS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутри
JS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутриJS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутри
JS Fest 2019. Артур Торосян. V8 - взгляд на асинхронность и работу с ОС изнутри
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless Bebop
 

Último

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxleah joy valeriano
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 

Último (20)

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 

JS Fest 2018. Douglas Crockford. The Power of the Paradigm

  • 3. Even when the experts all agree, they may well be mistaken. Bertrand Russell
  • 6. In science it often happens that scientists say You know that’s a really good argument; my position is mistaken, and then they would actually change their minds and you never hear that old view from them again. They really do it. It doesn’t happen as often as it should, because scientists are human and change is sometimes painful. But it happens every day. I cannot recall the last time something like that happened in politics or religion. Carl Sagan
  • 7. In science it often happens that scientists say You know that’s a really good argument; my position is mistaken, and then they would actually change their minds and you never hear that old view from them again. They really do it. It doesn’t happen as often as it should, because scientists are human and change is sometimes painful. But it happens every day. I cannot recall the last time something like that happened in politics or religion. Carl Sagan
  • 8. Change is sometimes painful •Confusion •Fear •Embarrassment •Loss •Fight or flight
  • 9. Faced with the choice between changing one’s mind and proving that there is no need to do so, almost everyone gets busy on the proof. John Kenneth Galbraith
  • 10. Paradigms in Programming • Stored program concept • Subroutines • Structured programming • Methods • Higher order functions • Pure functions
  • 11. The problem with purity: The universe is not pure.
  • 12. A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it. Max Planck
  • 13. Science advances one funeral at a time. Max Planck
  • 14. Progress waits not on discovery, but on consensus.
  • 15. Paradigm Confusion • Shoot the messenger. • I do not understand how x can be true. • Violent disagreement with irrelevant details. • Intensify imperfection. • Distortion. • Partial adoption. • Obsess about performance.
  • 16. More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason —including blind stupidity. William A. Wulf
  • 17. The new shiny object is part of the old paradigm.
  • 18. It is difficult to distinguish a new paradigm from a really bad idea.
  • 19.
  • 20. • The Old Paradigm • Sequential Programming • The Next Paradigm • Asynchronous Message Passing
  • 21. • The Old Paradigm • Sequential Programming • The Next Paradigm • Asynchronous Message Passing
  • 22. • The Old Paradigm • Sequential Programming • The Next Paradigm • Asynchronous Message Passing
  • 23. Asynchronous Message Passing • Sending a message to another process or system. • The sender does not wait for a response. The sender is free to do more work, including sending more messages. • Every receiver has a queue, or mailbox, that holds incoming messages. • Messages will be handled one by one. • Shared nothing.
  • 27. Clinging to the Old Paradigm •RPC, HTTP, SOAP, REST •Sync functions •Generators •Promises •async await
  • 28. A single mechanism provides Concurrency Communication Security
  • 29. The Seif Project Rhymes with “safe”
  • 30. Seif: A secure, efficient, asynchronous JSON & blob messaging system
  • 31. Seif does not require DNS HTTP Certificates Passwords
  • 32. Seif provides a module adding cryptographic services to Node JS •ECC 521 •AES 256 •SHA3-256 •Random generation and entropy harvesting
  • 34. ECC521 public keys as unique identifiers
  • 35. Seif Protocol Secure JSON Over TCP Efficient sessions
  • 36. Symmetric S(plaintext) => ciphertext S(ciphertext) => plaintext Asymmetric P(plaintext) => ciphertext R(ciphertext) => plaintext
  • 37. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA )}
  • 38. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA )}
  • 39. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)}
  • 40. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)}
  • 41. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)}
  • 42. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)} ← H({PA (S)})
  • 43. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)} ← H({PA(S)})
  • 44. Seif Handshake Alice •PA Alice’s public key •RA Alice’s private key •PB Bob’s public key •H Handshake key •S Session key Bob •PB Bob’s Public Key •RB Bob’s Private Key •PA Alice’s public key •H Handshake key •S Session key → {"seif": 1, PB(H), H(PA)} ← H({PA(S)})
  • 45. Seif Message Send • Normal send • Automatic persistent retry • Status send • For telemetry and gaming • Messages may be discarded
  • 46. seif: publickey @ ipaddress / referral
  • 47. Difficulty of software security •Does what it should •Doesn’t do what it shouldn’t •No software is initially secure •Only a minimal approach can produce software that is eventually secure
  • 48. There is nothing new here.
  • 49. The goal of the Seif Project is to provide safe and effective relationship management on the web.
  • 50. Still to do • Port the Seif Protocol to other platforms, including • Java • Unix • IOS • Windows • Development of frameworks that use Seif. • Browser support.
  • 52. • The Next Paradigm • Asynchronous Message Passing
  • 53. It ought to be remembered that there is nothing more difficult to take in hand, more perilous to conduct, or more uncertain in its success, than to take the lead in the introduction of a new order of things. Because the innovator has for enemies all those who have done well under the old conditions, and lukewarm defenders in those who may do well under the new. This coolness arises partly from fear of the opponents, who have the laws on their side, and partly from the incredulity of men, who do not readily believe in new things until they have had a long experience of them. Niccolò Machiavelli

Notas do Editor

  1. Intended to be a document delivery system. It performs poorly as an application delivery system.
  2. Intended to be a document delivery system. It performs poorly as an application delivery system.
  3. Intended to be a document delivery system. It performs poorly as an application delivery system.
  4. Intended to be a document delivery system. It performs poorly as an application delivery system.
  5. Intended to be a document delivery system. It performs poorly as an application delivery system.
  6. Intended to be a document delivery system. It performs poorly as an application delivery system.
  7. In a naming system, you can get at most 2 of these attributes. The Web chose Human Meaningful. I am going with the other two because security demands it.
  8. You prove your identity by decrypting messages with your private key. No passwords.
  9. URLs will be extremely ugly. In base 32 encoding, public key is 105 characters long. URLs can be delivered in email, in web pages, as QR codes.
  10. There is a risk in making security claims about new software because new software is never secure. The goal of the Seif Project is to produce programs that will eventually become secure. This is in contrast to things like SLL: It has been 20 years and we are still finding significant weaknesses in it.
  11. There is no new science here. Seif is a minimal utilization of research and design patterns that have been around for several decades.
  12. Integration should be easy: give us a rectangle of pixels, UI events, and an interactive JSON communication channel. We’ll do the rest.
  13. Please come to the next talk.