SlideShare a Scribd company logo
Submit Search
Upload
PyParis2017 / Incremental computation in python, by Philip Schanely
Report
Pôle Systematic Paris-Region
Pôle Systematic Paris-Region
Follow
•
0 likes
•
443 views
1
of
54
PyParis2017 / Incremental computation in python, by Philip Schanely
•
0 likes
•
443 views
Download Now
Download to read offline
Report
Technology
PyParis 2017 http://pyparis.org
Read more
Pôle Systematic Paris-Region
Pôle Systematic Paris-Region
Follow
Recommended
Stack push pop
A. S. M. Shafi
240 views
•
7 slides
Torchbearersnotebook.blogspot.com program to create a list in python and valu...
SAKSHISINGH486
78 views
•
8 slides
C programs pbq final
Azad public school
536 views
•
31 slides
Data Structure and Algorithms Stacks
ManishPrajapati78
182 views
•
26 slides
Scalaエンジニアのためのモナド入門
Takashi Imahiro
3.7K views
•
39 slides
presentation-225new
Najmul Hoq
114 views
•
37 slides
More Related Content
What's hot
Project of data structure
Umme habiba
4.5K views
•
24 slides
Taylor series part 1
aydensmom
425 views
•
3 slides
Hexadecimal to binary and binary to hexadecimal
SRM Institute of Science & Technology, Tiruchirappalli
88 views
•
3 slides
Luhn sh
Ben Pope
84 views
•
2 slides
Write a program that removes line numbers in a program listing. Here is a sam...
hwbloom150
9 views
•
1 slide
Stack1
Iqrazb
199 views
•
23 slides
What's hot
(9)
Project of data structure
Umme habiba
•
4.5K views
Taylor series part 1
aydensmom
•
425 views
Hexadecimal to binary and binary to hexadecimal
SRM Institute of Science & Technology, Tiruchirappalli
•
88 views
Luhn sh
Ben Pope
•
84 views
Write a program that removes line numbers in a program listing. Here is a sam...
hwbloom150
•
9 views
Stack1
Iqrazb
•
199 views
Kotlin - Null safety
ss90311
•
114 views
Hexa to binary
myrajendra
•
3K views
STACK ( LIFO STRUCTURE) - Data Structure
Yaksh Jethva
•
1K views
Similar to PyParis2017 / Incremental computation in python, by Philip Schanely
Types Working for You, Not Against You
C4Media
277 views
•
124 slides
Monads in python
eldariof
7.8K views
•
47 slides
Shap
Giovanni Bruner
1.7K views
•
29 slides
Pycon9 - Deep Learning from zero to hero
Gianluca Carucci
273 views
•
37 slides
Data Handling.pdf
MILANOP1
8 views
•
31 slides
Porque aprender haskell me fez um programador python melhor?
UFPA
4.7K views
•
103 slides
Similar to PyParis2017 / Incremental computation in python, by Philip Schanely
(20)
Types Working for You, Not Against You
C4Media
•
277 views
Monads in python
eldariof
•
7.8K views
Shap
Giovanni Bruner
•
1.7K views
Pycon9 - Deep Learning from zero to hero
Gianluca Carucci
•
273 views
Data Handling.pdf
MILANOP1
•
8 views
Porque aprender haskell me fez um programador python melhor?
UFPA
•
4.7K views
Introduction to Monads in Scala (1)
stasimus
•
10.2K views
V8 by example: A journey through the compilation pipeline by Ujjwas Sharma at...
DevClub_lv
•
746 views
Programming Languages and their influence in Thinking
Hernan Wilkinson
•
1.7K views
Introduction to R Short course Fall 2016
Spencer Fox
•
400 views
AI&ML Conference 2019 - Deep Learning from zero to hero
Gianluca Carucci
•
130 views
Functional Programming Patterns (BuildStuff '14)
Scott Wlaschin
•
175.3K views
Python slide
Kiattisak Anoochitarom
•
778 views
Functional Design Patterns (DevTernity 2018)
Scott Wlaschin
•
5.5K views
CSE357 fa21 (6) Linear Machine Learning11-11.pdf
NermeenKamel7
•
3 views
Avoiding to Reinvent the flat tire
Hernan Wilkinson
•
1.7K views
A Map of the PyData Stack
Peadar Coyle
•
3.6K views
Empathic Programming - How to write comprehensible code
Mario Gleichmann
•
4.6K views
PyData Paris 2015 - Track 1.2 Gilles Louppe
Pôle Systematic Paris-Region
•
560 views
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co
Mail.ru Group
•
10K views
More from Pôle Systematic Paris-Region
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
Pôle Systematic Paris-Region
686 views
•
39 slides
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
Pôle Systematic Paris-Region
293 views
•
24 slides
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
Pôle Systematic Paris-Region
349 views
•
38 slides
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
Pôle Systematic Paris-Region
288 views
•
27 slides
OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du ...
Pôle Systematic Paris-Region
271 views
•
30 slides
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
Pôle Systematic Paris-Region
229 views
•
9 slides
More from Pôle Systematic Paris-Region
(20)
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
Pôle Systematic Paris-Region
•
686 views
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
Pôle Systematic Paris-Region
•
293 views
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
Pôle Systematic Paris-Region
•
349 views
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
Pôle Systematic Paris-Region
•
288 views
OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du ...
Pôle Systematic Paris-Region
•
271 views
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
Pôle Systematic Paris-Region
•
229 views
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
Pôle Systematic Paris-Region
•
349 views
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
Pôle Systematic Paris-Region
•
204 views
Osis18_Cloud : Pas de commun sans communauté ?
Pôle Systematic Paris-Region
•
659 views
Osis18_Cloud : Projet Wolphin
Pôle Systematic Paris-Region
•
231 views
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Pôle Systematic Paris-Region
•
202 views
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Pôle Systematic Paris-Region
•
233 views
Osis18_Cloud : Software-heritage
Pôle Systematic Paris-Region
•
133 views
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
Pôle Systematic Paris-Region
•
264 views
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
Pôle Systematic Paris-Region
•
488 views
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
Pôle Systematic Paris-Region
•
169 views
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
Pôle Systematic Paris-Region
•
93 views
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
Pôle Systematic Paris-Region
•
248 views
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
Pôle Systematic Paris-Region
•
248 views
PyParis 2017 / Un mooc python, by thierry parmentelat
Pôle Systematic Paris-Region
•
2.5K views
Recently uploaded
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS
31 views
•
54 slides
Future of Learning - Khoong Chan Meng
NUS-ISS
31 views
•
7 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi
102 views
•
17 slides
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays
38 views
•
30 slides
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation
24 views
•
9 slides
Five Things You SHOULD Know About Postman
Postman
22 views
•
43 slides
Recently uploaded
(20)
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS
•
31 views
Future of Learning - Khoong Chan Meng
NUS-ISS
•
31 views
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi
•
102 views
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays
•
38 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation
•
24 views
Five Things You SHOULD Know About Postman
Postman
•
22 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk
•
82 views
Tunable Laser (1).pptx
Hajira Mahmood
•
21 views
AI: mind, matter, meaning, metaphors, being, becoming, life values
Twain Liu 刘秋艳
•
32 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS
•
23 views
.conf Go 2023 - Data analysis as a routine
Splunk
•
85 views
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada
•
106 views
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada
•
103 views
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum
•
125 views
Throughput
Moisés Armani Ramírez
•
31 views
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst
•
422 views
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
The Digital Insurer
•
26 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin
•
56 views
"How we switched to Kanban and how it integrates with product planning", Vady...
Fwdays
•
60 views
The Importance of Cybersecurity for Digital Transformation
NUS-ISS
•
25 views
PyParis2017 / Incremental computation in python, by Philip Schanely
1.
Incremental Computation in Python Phillip
Schanely pschanely @medium pschanely @twitter
2.
The New Messaging
App
4.
You have no
new messages Joe IDK, let’s go to Sal’s Sarah LOLZ Mike Right? I’ve never …
5.
You have no
new messages Joe IDK, let’s go to Sal’s Sarah LOLZ Mike Right? I’ve never …
6.
You have no
new messages Joe IDK, let’s go to Sal’s Sarah LOLZ Mike Right? I’ve never …
9.
The Model-View Problem Incremental
MapReduce in Python Contents:
10.
The Model-View Problem
11.
Model, M View, V
12.
Model, M State Change Model,
M’ View, V
13.
Model, M State Change Model,
M’ View, V View, V’ Decision Time!
14.
Model, M State Change Recompute Model,
M’ View, V View, V’
15.
Model, M State Change Infer Model,
M’ View, V View, V’
16.
Model, M State Change Invalidate Model,
M’ View, V View, V’
17.
Recompute Invalidate Infer
18.
Recompute Invalidate Infer Incremental MapReduce
19.
It’s Everywhere
20.
Javascript Objects DOM Javascript Objects DOM Web Apps Infer Recompute
21.
DOM Pixels DOM Pixels Browsers Invalidate
22.
Application Pixels Display Application Pixels Display OS Display Infer
23.
Database State API Responses Database State API Responses Backend Logic Recompute
24.
Normalized Data Computed Data Normalized Data Computed Data Application Databases Infer Recompute
25.
Database Row Database Index Database Row Database Index Databases Infer
26.
RAM Processor Cache RAM Processor Cache Multiprocessor L1/L2 caches Invalidate
27.
Code Build Code Build Build Systems Recompute
28.
Code Test Results Code Test Results Test Runners Recompute
29.
Incremental MapReduce
30.
Model, M State Change Model,
M’ View, V View, V’ Incremental MapReduce
31.
4 6 10 1 5 6 16
32.
4 6 10 1 5 6 16 4
6 1 5 3 Insert “3”
33.
4 6 10 1 5 6 16 4
6 1 5 3 Insert “3” 10 9 19 4
34.
ScenicOverlook $ pip install
ScenicOverlook
35.
4 6 1
5 >>> l = viewablelist([4,6,1,5])
36.
4 6 1
5 >>> l = viewablelist([4,6,1,5]) >>> add = lambda x, y: x + y >>> l.reduce(add, initializer=0) 16
37.
4 6 1
5 4 6 1 5 3 Insert “3” >>> l = viewablelist([4,6,1,5]) >>> add = lambda x, y: x + y >>> l.reduce(add, initializer=0) 16 >>> l = l[:2] + [3] + l[2:]
38.
4 6 1
5 4 6 1 5 3 Insert “3” >>> l = viewablelist([4,6,1,5]) >>> add = lambda x, y: x + y >>> l.reduce(add, initializer=0) 16 >>> l = l[:2] + [3] + l[2:] >>> l.reduce(add, initializer=0) 19
39.
>>> import heapq >>>
def sort(l): ... l = l.map(lambda x:[x]) ... return l.reduce(heapq.merge, initializer=()) >>> l = viewablelist([9, 3, 5, 7]) >>> sort(l) [3, 5, 7, 9] >>> sort(l + [ 4 ]) [3, 4, 5, 7, 9] 3 5 79 9 5 73 5 7 93
40.
Graphics Demo
41.
$ python demo_graphics.py
45.
Compiler Demo
46.
$ python demo_graphics.py
48.
Normalize
49.
Generate Call Tree Normalize
50.
Type Check Generate Call
Tree Normalize
51.
Type Check Generate Call
Tree Normalize LLVM Generation
52.
Type Check Generate Call
Tree Normalize LLVM Generation link
53.
Umut Acar (CMU):
“self-adjusting computation” Matthew A. Hammer: “Adapton” Interesting Related Work
54.
github.com/pschanely/ScenicOverlook pschanely @medium pschanely @twitter Questions?