SlideShare a Scribd company logo
1 of 85
Download to read offline
PYTHON@INSTAGRAM
Hui Ding & Lisa Guo
May 20, 2017
@TechCrunch
STORIES DIRECT LIVE EXPLORE
“INSTAGRAM, WHAT THE HECK
ARE YOU DOING AT PYCON?”
CIRCA PYCON 2015 (MONTREAL)
“HOW DO YOU RUN DJANGO+PYTHON
AT THAT SCALE?”
“HOW DO YOU RUN DJANGO+PYTHON
AT THAT SCALE?”
"WHY HAVEN’T YOU RE-WRITTEN
EVERYTHING IN NODE.JS YET?"
WHY DID INSTAGRAM

CHOOSE PYTHON?
AND HERE’S WHAT THEY FOUND OUT:
“Friends don’t let friends use RoR”
THINGS INSTAGRAM LOVES ABOUT PYTHON
Easy to become productive
Practicality
Easy to grow

engineering team
Popular language
THINGS INSTAGRAM LOVES ABOUT DJANGO
Maturity of the
language and
Django framework
Use Django user
model for
supporting 3B+
registered users
WE HAVE TAKEN OUR PYTHON+DJANGO STACK QUITE FAR
1 Sharded database support
2
Run our stack across multiple geographically distributed data centers3
Disable garbage-collection to improve memory utilization
WE HAVE TAKEN OUR PYTHON+DJANGO STACK QUITE FAR
WE HAVE TAKEN OUR PYTHON+DJANGO STACK QUITE FAR
PYTHON IS SIMPLE AND CLEAN, AND FAVORS PRAGMATISM.
1 Scope the problem, AKA, do simple things first
2 Use proven technology
3 User first: focus on adding value to user facing features
Subtitle
AT INSTAGRAM, OUR BOTTLENECK IS

DEVELOPMENT VELOCITY, 

NOT PURE CODE EXECUTION
BUT PYTHON IS STILL SLOW, RIGHT?
SCALING PYTHON TO SUPPORT USER AND FEATURE GROWTH
20
40
60
80
00
0 2 4 6 8 10 12 14 16 18 20 22 24Server growthUser growth
PYTHON EFFICIENCY STRATEGY
1 Build extensive tools to profile and understand perf bottleneck
2 Moving stable, critical components to C/C++, e.g., memcached access
3
Async? New python runtime?4
Cythonization
ROAD TO PYTHON 3
1 Motivation
2 Strategy
3 Challenges
4 Resolution
MOTIVATION
def compose_from_max_id(max_id):
‘’’ @param str max_id ’’’
MOTIVATION: DEV VELOCITY
MOTIVATION: PERFORMANCE
uWSGI/web async tier/celery
media storage
user/media
metadata
search/ranking
Python
MOTIVATION: PERFORMANCE
N processes
M CPU cores
N >> M
Request
MOTIVATION: PERFORMANCE
N processes
M CPU cores
N == M
Request
MOTIVATION: COMMUNITY
STRATEGIES
SERVICE DOWNTIME
SERVICE DOWNTIME
PRODUCT SLOWDOWN
MASTER
LIVE
DEVELOP/TEST/DOGFOOD
Create separate branch?
MIGRATION OPTIONS
• Branch sync overhead, error prone
• Merging back will be a risk
• Lose the opportunity to educate
MIGRATION OPTIONS
One endpoint at a time?Create separate branch?
• Common modules across end points
• Context switch for developers
• Overhead of managing separate pools
MIGRATION OPTIONS
One endpoint at a time?Create separate branch? Micro services?
• Massive code restructuring
• Higher latency
• Deployment complexity
MIGRATION OPTIONS
One endpoint at a time?Create separate branch? Micro services?
MAKE MASTER COMPATIBLE
MASTER
PYTHON3
PYTHON2
Third-party packages

3-4 months
Codemod

2-3 months
Unit tests

2 months
Production rollout

4 months
THIRD-PARTY PACKAGES
Rule: No Python3, no new package
Rule: No Python3, no new package
Delete unused, incompatible packages
twisted
django-paging
django-sentry
django-templatetag-sugar
dnspython
enum34
hiredis
httplib2
ipaddr
jsonfig
pyapns
phpserialize
python-memcached
thrift
THIRD-PARTY PACKAGES
Upgraded packages
Rule: No Python3, no new package
Delete unused, incompatible packages
THIRD-PARTY PACKAGES
CODEMOD
modernize -f libmodernize.fixes.fix_filter <dir> -w -n
raise, metaclass, methodattr, next, funcattr, library renaming, range,
maxint/maxsize, filter->list comprehension, long integer, itertools,
tuple unpacking in method, cython, urllib parse, StringiO, context
mgr/decorator, ipaddr, cmp, except, nested, dict iter fixes, mock
Failed
include_list: passed tests
Passed
UNIT TESTS
FailedPassed
UNIT TESTS
exclude_list: failed tests
FailedPassed
UNIT TESTS
• Not 100% code coverage
• Many external services have mocks
• Data compatibility issues typically do not show up in unit tests
UNIT TESTS: LIMITS
100%
20%
0.1%
EMPLOYEES
DEVELOPERS
ROLLOUT
100%
20%
0.1%
EMPLOYEES
DEVELOPERS
ROLLOUT
CHALLENGES
CHALLENGES
1 Unicode
2 Data format incompatible
3
4 Dictionary ordering
Iterator
from __future__ import absolute_import
from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals
CHALLENGE: UNICODE/STR/BYTES
from __future__ import absolute_import
from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals
CHALLENGE: UNICODE/STR/BYTES
from __future__ import absolute_import
from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals
CHALLENGE: UNICODE/STR/BYTES
mymac = hmac.new(‘abc’)
TypeError: key: expected bytes or bytearray, but got 'str'
value = ‘abc’
if isinstance(value, six.text_type):
value = value.encode(encoding=‘utf-8’)
mymac = hmac.new(value)
Error
Fix
CHALLENGE: UNICODE/STR/BYTES
ensure_binary()
ensure_str()
ensure_text()
mymac = hmac.new(ensure_binary(‘abc’))
Helper functions
Fix
CHALLENGE: PICKLE
memcache_data = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
data = pickle.load(memcache_data)
Write
Read
Memcache
Me
Python3
Others
Python2
CHALLENGE: PICKLE
Memcache
Me
Python3
Others
Python2
memcache_data = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
data = pickle.load(memcache_data)
Write
Read
4
ValueError: unsupported pickle protocol: 4
2
CHALLENGE: PICKLE
pickle.dumps({'a': '爱'}, 2) UnicodeDecodeError: 'ascii' codec
can’t decode byte 0xe9 in position
0: ordinal not in range(128)
memcache_data = pickle.dumps(data, 2)
Write
Python2 writes Python3 reads
pickle.dumps({'a': '爱'}, 2){u'a': u'u7231'} != {'a': '爱'}
Python2 reads Python3 writes
memcache_data = pickle.dumps(data, 2)
Write
CHALLENGE: PICKLE
CHALLENGE: PICKLE
Memcache
Python3
Python2
4
Memcache
2
map()
filter()
dict.items()
1 CYTHON_SOURCES = [a.pyx, b.pyx, c.pyx]
2 builds = map(BuildProcess, CYTHON_SOURCES)
3 while any(not build.done() for build in builds):
4 pending = [build for build in builds if not build.started()]
<do some work>
CHALLENGE: ITERATOR
1 CYTHON_SOURCES = [a.pyx, b.pyx, c.pyx]
2 builds = map(BuildProcess, CYTHON_SOURCES)
3 while any(not build.done() for build in builds):
4 pending = [build for build in builds if not build.started()]
<do some work>
CHALLENGE: ITERATOR
1 CYTHON_SOURCES = [a.pyx, b.pyx, c.pyx]
2 builds = map(BuildProcess, CYTHON_SOURCES)
3 while any(not build.done() for build in builds):
4 pending = [build for build in builds if not build.started()]
<do some work>
CHALLENGE: ITERATOR
1 CYTHON_SOURCES = [a.pyx, b.pyx, c.pyx]
2 builds = list(map(BuildProcess, CYTHON_SOURCES))
3 while any(not build.done() for build in builds):
4 pending = [build for build in builds if not build.started()]
<do some work>
CHALLENGE: ITERATOR
'{"a": 1, "c": 3, "b": 2}'
CHALLENGE: DICTIONARY ORDER
Python2
Python3.5.1
>>> testdict = {'a': 1, 'b': 2, 'c': 3}
>>> json.dumps(testdict)
Python3.6
Cross version
'{"c": 3, "b": 2, "a": 1}'
'{"c": 3, "a": 1, "b": 2}'
'{"a": 1, "b": 2, "c": 3}'
>>> json.dumps(testdict, sort_keys=True)
'{"a": 1, "b": 2, "c": 3}'
ALMOST THERE...
CPU instructions per request
max Requests Per Second
-12%
0%
Memory configuration difference?
12%
if uwsgi.opt.get('optimize_mem', None) == 'True':
optimize_mem()
b
RESOLUTION
FEB 2017
PYTHON3
PYTHON2
Saving of 30%

(on celery)
INSTAGRAM ON PYTHON3
Saving of 12%

(on uwsgi/django)
CPU MEMORY
June 2016
Python3 migration
Sept 2015 Dec 2016 Apr 2017
400M
500M 600M
Video View Notification
Save Draft
Comment Filtering
Story Viewer Ranking
First Story Notification
Self-harm Prevention
Live
MOTIVATION: TYPE HINTS
Type hints - 2% done
def compose_from_max_id(max_id: Optional[str]) -> Optional[str]:
MyPy and typeshed contribution
Tooling - collect data and suggest type hints
MOTIVATION: ASYNC IO
Asynchronize web framework
Parallel network access within a request
MOTIVATION: COMMUNITY
Benchmark web workload
Run time, memory profiling, etc
Pycon2017 instagram keynote
Pycon2017 instagram keynote

More Related Content

What's hot

產品設計的0到1,與1到1億
產品設計的0到1,與1到1億產品設計的0到1,與1到1億
產品設計的0到1,與1到1億Ivan Wei
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作UnityTechnologiesJapan002
 
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみたHoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみたFranz Weitl
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編Unity Technologies Japan K.K.
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?Kengo Nakajima
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane findingTakahiro Miyaura
 
ゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYO
ゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYOゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYO
ゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYOGame Tools & Middleware Forum
 
Prius Hack 「カーハッカーズハンドブック」をラズパイで試してみた
Prius Hack 「カーハッカーズハンドブック」をラズパイで試してみたPrius Hack 「カーハッカーズハンドブック」をラズパイで試してみた
Prius Hack 「カーハッカーズハンドブック」をラズパイで試してみたNoboruTakahashi3
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法historia_Inc
 
最近のUIデザインプロセス
最近のUIデザインプロセス最近のUIデザインプロセス
最近のUIデザインプロセスShingo Katsushima
 
ゲームAIの中の数学(上)
ゲームAIの中の数学(上)ゲームAIの中の数学(上)
ゲームAIの中の数学(上)Youichiro Miyake
 
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Piro Shiki
 
コンセプト概論~出張ヒストリア編~
コンセプト概論~出張ヒストリア編~コンセプト概論~出張ヒストリア編~
コンセプト概論~出張ヒストリア編~pugmaniac
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフローadd20
 
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜Mikito Yoshiya
 
ゲームAIの基礎と事例
ゲームAIの基礎と事例ゲームAIの基礎と事例
ゲームAIの基礎と事例Tomoaki TSUCHIE
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介Drecom Co., Ltd.
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門Tomohiko Himura
 

What's hot (20)

產品設計的0到1,與1到1億
產品設計的0到1,與1到1億產品設計的0到1,與1到1億
產品設計的0到1,與1到1億
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
 
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみたHoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane finding
 
ゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYO
ゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYOゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYO
ゲーム業界で導入が進むSHOTGUNの魅力について - オートデスク株式会社 - GTMF 2018 TOKYO
 
Prius Hack 「カーハッカーズハンドブック」をラズパイで試してみた
Prius Hack 「カーハッカーズハンドブック」をラズパイで試してみたPrius Hack 「カーハッカーズハンドブック」をラズパイで試してみた
Prius Hack 「カーハッカーズハンドブック」をラズパイで試してみた
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
 
最近のUIデザインプロセス
最近のUIデザインプロセス最近のUIデザインプロセス
最近のUIデザインプロセス
 
ゲームAIの中の数学(上)
ゲームAIの中の数学(上)ゲームAIの中の数学(上)
ゲームAIの中の数学(上)
 
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
 
コンセプト概論~出張ヒストリア編~
コンセプト概論~出張ヒストリア編~コンセプト概論~出張ヒストリア編~
コンセプト概論~出張ヒストリア編~
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフロー
 
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
 
ゲームAIの基礎と事例
ゲームAIの基礎と事例ゲームAIの基礎と事例
ゲームAIの基礎と事例
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 

Similar to Pycon2017 instagram keynote

Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with pythonroskakori
 
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Takayuki Shimizukawa
 
Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...
Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...
Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...Databricks
 
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...JSFestUA
 
Practicing Python 3
Practicing Python 3Practicing Python 3
Practicing Python 3Mosky Liu
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - BasicMosky Liu
 
PyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialPyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialJustin Lin
 
Python. Why to learn?
Python. Why to learn?Python. Why to learn?
Python. Why to learn?Oleh Korkh
 
DevOps Practice in Nonprofit - Abdurrachman Mappuji
DevOps Practice in Nonprofit - Abdurrachman MappujiDevOps Practice in Nonprofit - Abdurrachman Mappuji
DevOps Practice in Nonprofit - Abdurrachman MappujiDevOpsDaysJKT
 
Fast data mining flow prototyping using IPython Notebook
Fast data mining flow prototyping using IPython NotebookFast data mining flow prototyping using IPython Notebook
Fast data mining flow prototyping using IPython NotebookJimmy Lai
 
Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...
Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...
Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...Viach Kakovskyi
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Codemotion
 
Building Data Pipelines in Python
Building Data Pipelines in PythonBuilding Data Pipelines in Python
Building Data Pipelines in PythonC4Media
 
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat Pôle Systematic Paris-Region
 
The Onward Journey: Porting Twisted to Python 3
The Onward Journey: Porting Twisted to Python 3The Onward Journey: Porting Twisted to Python 3
The Onward Journey: Porting Twisted to Python 3Craig Rodrigues
 
جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲Mohammad Reza Kamalifard
 
CrashCourse: Python with DataCamp and Jupyter for Beginners
CrashCourse: Python with DataCamp and Jupyter for BeginnersCrashCourse: Python with DataCamp and Jupyter for Beginners
CrashCourse: Python with DataCamp and Jupyter for BeginnersOlga Scrivner
 

Similar to Pycon2017 instagram keynote (20)

Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
 
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
 
Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...
Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...
Streaming Trend Discovery: Real-Time Discovery in a Sea of Events with Scott ...
 
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
JS Fest 2018. Никита Галкин. Микросервисная архитектура с переиспользуемыми к...
 
Practicing Python 3
Practicing Python 3Practicing Python 3
Practicing Python 3
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - Basic
 
PyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialPyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 Tutorial
 
Python. Why to learn?
Python. Why to learn?Python. Why to learn?
Python. Why to learn?
 
DevOps Practice in Nonprofit - Abdurrachman Mappuji
DevOps Practice in Nonprofit - Abdurrachman MappujiDevOps Practice in Nonprofit - Abdurrachman Mappuji
DevOps Practice in Nonprofit - Abdurrachman Mappuji
 
Fast data mining flow prototyping using IPython Notebook
Fast data mining flow prototyping using IPython NotebookFast data mining flow prototyping using IPython Notebook
Fast data mining flow prototyping using IPython Notebook
 
Ladypy 01
Ladypy 01Ladypy 01
Ladypy 01
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...
Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...
Austin Python Meetup 2017: How to Stop Worrying and Start a Project with Pyth...
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
 
Building Data Pipelines in Python
Building Data Pipelines in PythonBuilding Data Pipelines in Python
Building Data Pipelines in Python
 
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
 
The Onward Journey: Porting Twisted to Python 3
The Onward Journey: Porting Twisted to Python 3The Onward Journey: Porting Twisted to Python 3
The Onward Journey: Porting Twisted to Python 3
 
Take a Stroll in the Bazaar
Take a Stroll in the BazaarTake a Stroll in the Bazaar
Take a Stroll in the Bazaar
 
جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
جلسه اول پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲
 
CrashCourse: Python with DataCamp and Jupyter for Beginners
CrashCourse: Python with DataCamp and Jupyter for BeginnersCrashCourse: Python with DataCamp and Jupyter for Beginners
CrashCourse: Python with DataCamp and Jupyter for Beginners
 

Recently uploaded

👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...manju garg
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesChandrakantDivate1
 
Post office management system project ..pdf
Post office management system project ..pdfPost office management system project ..pdf
Post office management system project ..pdfKamal Acharya
 
Ground Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth ReinforcementGround Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth ReinforcementDr. Deepak Mudgal
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...HenryBriggs2
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxMustafa Ahmed
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdfKamal Acharya
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Ramkumar k
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxMustafa Ahmed
 
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...ssuserdfc773
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwaitjaanualu31
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsmeharikiros2
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxNANDHAKUMARA10
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesRashidFaridChishti
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxSCMS School of Architecture
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)ChandrakantDivate1
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 

Recently uploaded (20)

👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Post office management system project ..pdf
Post office management system project ..pdfPost office management system project ..pdf
Post office management system project ..pdf
 
Ground Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth ReinforcementGround Improvement Technique: Earth Reinforcement
Ground Improvement Technique: Earth Reinforcement
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptx
 
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptx
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 

Pycon2017 instagram keynote