A Python for Future Generations. Ronacher

Size: px
Start display at page:

Download "A Python for Future Generations. Ronacher"

Transcription

1 A Python for Future Generations Ronacher

2 Hi, I'm Armin... and I do Open Source, lots of Python and SaaS Flask Sentry

3 and here is where you can find me github.com/mitsuhiko lucumr.pocoo.org/

4 raising awareness

5 the grass is always greener somewhere

6 what's Python anyway?

7 Python is whatever cpython does

8 behavior & stdlib

9 a + b =?

10 a. add (b)?

11 type(a). add (a, b)?

12 a. class. add (a, b)?

13 they are all not necessarily correct

14 1 0 LOAD_FAST 0 (a) 3 LOAD_FAST 1 (b) 6 BINARY_ADD

15 which is obj as num.add or obj as sequence.concat

16 gave us unclear behavior when subclassing builtins

17 there is no + operator

18 there is PyNumber_Add and PySequence_Concat

19 does it matter?

20 debatable but kinda?

21 because pypy, jython all copy the quirks

22 because they want high compatibility

23 because users would not use it if it was not compatible

24 prevents more innovative language changes

25 Python in 30 Years?

26 make the python we use more like the python we teach

27 it's a common story

28 python developers value compatibility

29 distutils implements original setup.py

30 setuptools monkey patches distutils to support Python eggs

31 pip monkey patches setuptools on the fly to manage python packages

32 wheel monkey patches setuptools to build wheels instead of eggs

33 cffi monkey patches setuptools and distutils to build extensions

34 snaek monkey patches cffi to build Rust extension modules

35 the GIL

36 the only reason removing the GIL is hard is backwards compatibility

37 looks like we're not good at breaking compatibility

38 our only attempt was both radical and not radical enough

39 future of scripting languages

40 they are here to stay

41 but they will look different

42 standards + ecosystem

43 if we want to be here in 30 years, we need to evolve

44 where we did well

45 interpreter code is readable

46 ease of compilation

47 extensibility

48 flat dependency chains

49 runtime introspection

50 what we should probably do

51 easier and clearer language behavior

52 looking elsewhere

53 JavaScript

54 Rust

55 both are new and modern both learned from mistakes

56 packaging and modules

57 packaging and modules package.json Cargo.toml

58 packaging and modules metadata is runtime available by default no code execution on installation (optionally) multiple versions per library public vs private / peer dependencies

59 packaging and modules where are we now? we're moving away from setup.py install pip is a separate tool wheels multi-version would require metadata access

60 packaging and modules realistic change? we can steal from others can target python 3 only if needed

61 language standard

62 language standard javascript: clarify interpreter behavior simplified language subset? generally leaner language? more oversight over language development

63 language standard realistic change? maybe micropython and other things can lead the way community can kill extension modules for CFFI

64 unicode

65 unicode utf-8 everywhere wtf-8 where needed

66 unicode very little guessing rust: operating system string type rust: free from utf-8 to os-string and bytes explicit unicode character APIs emojis mean no basic plane

67 packaging and modules realistic change? we would need to kill string slicing utf-8 everywhere is straightforward kill surrogate-escapes for a real os string?

68 extension modules

69 extension modules more cffi less libpython

70 extension modules realistic change? tricky for things like numpy generally possible for many uses

71 linters & type annotations

72 linters & type annotations babel, eslint, typescript, flow,

73 linters & type annotations rustfmt, gofmt, prettier,

74 linters & type annotations realistic change? maybe? typing in Python 3 might go this way

75 what you can do!

76 abuse the language less

77 sys._getframe(n).f_locals['_wat'] = 42

78 class X(dict):

79 stop writing non cffi extensions

80 stop being clever with sys.modules

81 awareness is the first step

82 Q A &

The State of Python. and the web. Armin Ronacher

The State of Python. and the web. Armin Ronacher The State of Python and the web Armin Ronacher // @mitsuhiko Who am I Armin Ronacher (@mitsuhiko) Founding Member of the Pocoo Team we're doing Jinja2, Werkzeug, Flask, Pygments, Sphinx and a bunch of

More information

Armin how Python was shaped by leaky internals

Armin how Python was shaped by leaky internals Armin Ronacher @mitsuhiko how Python was shaped by leaky internals Armin Ronacher @mitsuhiko Flask / Sentry / Lektor http://lucumr.pocoo.org/ The Leaky Interpreter Python is an insanely complex language

More information

MY PYTHON IS RUSTING. A PYTHON AND RUST LOVE STORY Ronacher

MY PYTHON IS RUSTING. A PYTHON AND RUST LOVE STORY Ronacher MY PYTHON IS RUSTING A PYTHON AND RUST LOVE STORY Armin @mitsuhiko Ronacher and here is where you can find me twitter.com/@mitsuhiko github.com/mitsuhiko lucumr.pocoo.org/ so I heard you are doing Rust

More information

Parallelism in Python

Parallelism in Python Multithreading or Multiprocessing? Mathematics Department Mercyhurst University May 5, 2017 Table of Contents 1 Parallel Computing 2 3 Understanding Parallelism in Programming Before we go into Python

More information

Introduction to Python. Didzis Gosko

Introduction to Python. Didzis Gosko Introduction to Python Didzis Gosko Scripting language From Wikipedia: A scripting language or script language is a programming language that supports scripts, programs written for a special run-time environment

More information

cssselect Documentation

cssselect Documentation cssselect Documentation Release 1.0.3 Simon Sapin Dec 27, 2017 Contents 1 Quickstart 3 2 User API 5 2.1 Exceptions................................................ 5 3 Supported selectors 7 4 Customizing

More information

Language alone won t pay your bills. Alan Franzoni - EP 2012 twitter: franzeur website:

Language alone won t pay your bills. Alan Franzoni - EP 2012 twitter: franzeur website: Language alone won t pay your bills Alan Franzoni - EP 2012 twitter: franzeur website: www.franzoni.eu What s this about? What s this about? Original idea: Why Python sucks What s this about? Original

More information

ThinkinG outside The box - =

ThinkinG outside The box - = ThinkinG outside The box - = Hello, I'm Armin! I do Computers - with Python. Currently at Fireteam / Splash Damage. We do Internet for Pointy Shooty Games. c w j t q t j d X the box is comfortable l the

More information

The Impact of Django. Armin Ronacher. djangocon europe 2011

The Impact of Django. Armin Ronacher. djangocon europe 2011 The Impact of Django Armin Ronacher djangocon europe 2011 http://lucumr.pocoo.org/talks/ Traveling to the Past What did the World look like in July of 2005? The Year 2005 The initial release of Django

More information

PyPy - How to not write Virtual Machines for Dynamic Languages

PyPy - How to not write Virtual Machines for Dynamic Languages PyPy - How to not write Virtual Machines for Dynamic Languages Institut für Informatik Heinrich-Heine-Universität Düsseldorf ESUG 2007 Scope This talk is about: implementing dynamic languages (with a focus

More information

filemagic Documentation

filemagic Documentation filemagic Documentation Release 1.6 Aaron Iles February 04, 2014 Contents 1 Features 3 2 Table of Contents 5 2.1 Guide to using filemagic......................................... 5 2.2 Command Line Invocation........................................

More information

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer There Should be One Obvious Way to Bring Python into Production Sebastian Neubauer sebastian.neubauer@blue-yonder.com 1 Agenda What are we talking about and why? Delivery pipeline Dependencies Packaging

More information

PTN-202: Advanced Python Programming Course Description. Course Outline

PTN-202: Advanced Python Programming Course Description. Course Outline PTN-202: Advanced Python Programming Course Description This 4-day course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.

More information

Introduction to Python: Data types. HORT Lecture 8 Instructor: Kranthi Varala

Introduction to Python: Data types. HORT Lecture 8 Instructor: Kranthi Varala Introduction to Python: Data types HORT 59000 Lecture 8 Instructor: Kranthi Varala Why Python? Readability and ease-of-maintenance Python focuses on well-structured easy to read code Easier to understand

More information

HotPy (2) Binary Compatible High Performance VM for Python. Mark Shannon

HotPy (2) Binary Compatible High Performance VM for Python. Mark Shannon HotPy (2) Binary Compatible High Performance VM for Python Mark Shannon Who am I? Mark Shannon PhD thesis on building VMs for dynamic languages During my PhD I developed: GVMT. A virtual machine tool kit

More information

Python - a Dynamic Programming Language. Guido van Rossum May 31, 2007

Python - a Dynamic Programming Language. Guido van Rossum May 31, 2007 Python - a Dynamic Programming Language Guido van Rossum May 31, 2007 Outline What is Python? Origins, history and design philosophy Python today The future: Python 3000 Links, Q&A 3 Copyright 2007 Google

More information

COMP1730/COMP6730 Programming for Scientists. Testing and Debugging.

COMP1730/COMP6730 Programming for Scientists. Testing and Debugging. COMP1730/COMP6730 Programming for Scientists Testing and Debugging. Overview * Testing * Debugging * Defensive Programming Overview of testing * There are many different types of testing - load testing,

More information

Debugging of CPython processes with gdb

Debugging of CPython processes with gdb Debugging of CPython processes with gdb KharkivPy January 28th, 2017 by Roman Podoliaka, Development Manager at Mirantis twitter: @rpodoliaka blog: http://podoliaka.org slides: http://podoliaka.org/talks/

More information

Jython Python for the Java Platform. Jim Baker, Committer twitter.com/jimbaker zyasoft.com/pythoneering

Jython Python for the Java Platform. Jim Baker, Committer twitter.com/jimbaker zyasoft.com/pythoneering Jython Python for the Java Platform Jim Baker, Committer jbaker@zyasoft.com twitter.com/jimbaker zyasoft.com/pythoneering Jython Milestones 9 years ago - Released JPython 1.1 8 years ago - Released 2.0

More information

dh-virtualenv Documentation

dh-virtualenv Documentation dh-virtualenv Documentation Release 0.7 Spotify AB July 21, 2015 Contents 1 What is dh-virtualenv 3 2 Changelog 5 2.1 0.7 (unreleased)............................................. 5 2.2 0.6....................................................

More information

Python Implementation Strategies. Jeremy Hylton Python / Google

Python Implementation Strategies. Jeremy Hylton Python / Google Python Implementation Strategies Jeremy Hylton Python / Google Python language basics High-level language Untyped but safe First-class functions, classes, objects, &c. Garbage collected Simple module system

More information

Harnessing the Power of Python in ArcGIS Using the Conda Distribution. Shaun Walbridge Mark Janikas Ting Lee

Harnessing the Power of Python in ArcGIS Using the Conda Distribution. Shaun Walbridge Mark Janikas Ting Lee Harnessing the Power of Python in ArcGIS Using the Conda Distribution Shaun Walbridge Mark Janikas Ting Lee https://github.com/scw/condadevsummit-2016-talk Handout PDF High Quality PDF (2MB) Conda Conda

More information

Ensure Documentation. Release Andrey Kislyuk

Ensure Documentation. Release Andrey Kislyuk Ensure Documentation Release 0.0.1 Andrey Kislyuk Nov 06, 2018 Contents 1 Installation 3 2 Synopsis 5 2.1 Notes................................................... 5 2.2 Raising custom exceptions........................................

More information

Teaching Python: The Hard Parts. Elana Hashman Rackspace PyCon 2016 Portland, OR

Teaching Python: The Hard Parts. Elana Hashman Rackspace PyCon 2016 Portland, OR Teaching Python: The Hard Parts Elana Hashman Rackspace PyCon 2016 Portland, OR Background Community Data Science Workshops Python Workshops for Beginners Total Beginners Platform Diversity Majority of

More information

Teaching Python: The Hard Parts. Elana Hashman Rackspace Managed Security PyCon 2016 Portland, OR

Teaching Python: The Hard Parts. Elana Hashman Rackspace Managed Security PyCon 2016 Portland, OR Teaching Python: The Hard Parts Elana Hashman Rackspace Managed Security PyCon 2016 Portland, OR Background Community Data Science Workshops Python Workshops for Beginners Total Beginners Platform Diversity

More information

FROM SCRIPT TO PACKAGES. good practices for hassle-free code reuse

FROM SCRIPT TO PACKAGES. good practices for hassle-free code reuse FROM SCRIPT TO PACKAGES good practices for hassle-free code reuse WHAT S THIS TUTORIAL IS ABOUT How to make your code usable by someone else WHO AM I? Contributor to numpy/scipy since 2007 Windows, Mac

More information

SSH Deploy Key Documentation

SSH Deploy Key Documentation SSH Deploy Key Documentation Release 0.1.1 Travis Bear February 03, 2014 Contents 1 Overview 1 2 Source Code 3 3 Contents 5 3.1 Alternatives................................................ 5 3.2 Compatibility...............................................

More information

Software Development. Integrated Software Environment

Software Development. Integrated Software Environment Software Development Integrated Software Environment Source Code vs. Machine Code What is source code? Source code and object code refer to the "before" and "after" versions of a computer program that

More information

Bazaar Architecture Overview Release 2.8.0dev1

Bazaar Architecture Overview Release 2.8.0dev1 Bazaar Architecture Overview Release 2.8.0dev1 Bazaar Developers November 30, 2018 Contents 1 IDs and keys ii 1.1 IDs..................................................... ii File ids..................................................

More information

Python Hype? Brian Ray

Python Hype? Brian Ray Python Hype? Brian Ray Hi, I m Brian Ray Directive Years 1998-2003 Engineering Years 2003-2006 Leadership Years 2009-2010 Indy Consulting Years 2010-2013 Big Four Consulting 2013-current Taken in China

More information

dh-virtualenv Documentation

dh-virtualenv Documentation dh-virtualenv Documentation Release 1.0 Spotify AB Sep 27, 2017 Contents 1 What is dh-virtualenv 3 2 Changelog 5 2.1 1.0.................................................... 5 2.2 0.11....................................................

More information

Python for Earth Scientists

Python for Earth Scientists Python for Earth Scientists Andrew Walker andrew.walker@bris.ac.uk Python is: A dynamic, interpreted programming language. Python is: A dynamic, interpreted programming language. Data Source code Object

More information

Type Inference. Prof. Clarkson Fall Today s music: Cool, Calm, and Collected by The Rolling Stones

Type Inference. Prof. Clarkson Fall Today s music: Cool, Calm, and Collected by The Rolling Stones Type Inference Prof. Clarkson Fall 2016 Today s music: Cool, Calm, and Collected by The Rolling Stones Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax Formal semantics

More information

Brief Contents. Acknowledgments... xv. Introduction Chapter 1: Starting Your Project Chapter 2: Modules, Libraries, and Frameworks...

Brief Contents. Acknowledgments... xv. Introduction Chapter 1: Starting Your Project Chapter 2: Modules, Libraries, and Frameworks... Brief Contents Acknowledgments... xv Introduction... 1 Chapter 1: Starting Your Project.... 5 Chapter 2: Modules, Libraries, and Frameworks... 15 Chapter 3: Documentation and Good API Practice... 33 Chapter

More information

Coding Getting Started with Python

Coding Getting Started with Python DEVNET-3602 Coding 1002 - Getting Started with Python Matthew DeNapoli, DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find

More information

PySoundFile Documentation Release 0.6.0

PySoundFile Documentation Release 0.6.0 PySoundFile Documentation Release 0.6.0 Bastian Bechtold, Matthias Geier January 30, 2015 Contents 1 Breaking Changes 1 2 Installation 1 3 Read/Write Functions 2 4 Block Processing 2 5 SoundFile Objects

More information

yagmail Documentation

yagmail Documentation yagmail Documentation Release 0.10.189 kootenpv Feb 08, 2018 Contents 1 API Reference 3 1.1 Authentication.............................................. 3 1.2 SMTP Client...............................................

More information

Updating gopy to support Python3 and PyPy

Updating gopy to support Python3 and PyPy Updating gopy to support Python3 and PyPy Dong-hee Na, Chungnam National University, Daejeon, Korea Mentors: Sebastien Binet, Alexandre Claude 31. August 2017 Main topics What is gopy? Why Go..? Performance

More information

Python Project Documentation

Python Project Documentation Python Project Documentation Release 1.0 Tim Diels Jan 10, 2018 Contents 1 Simple project structure 3 1.1 Code repository usage.......................................... 3 1.2 Versioning................................................

More information

CPython cannot into threads

CPython cannot into threads GIL CPython cannot into threads 1992 PyPy Jython CPython IronPython Brython PyPy Jython CPython IronPython Brython PyPy Jython CPython IronPython Brython CPython cannot into threads CPython cannot into

More information

(Refer Slide Time: 01:40)

(Refer Slide Time: 01:40) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #25 Javascript Part I Today will be talking about a language

More information

Dynamically-typed Languages. David Miller

Dynamically-typed Languages. David Miller Dynamically-typed Languages David Miller Dynamically-typed Language Everything is a value No type declarations Examples of dynamically-typed languages APL, Io, JavaScript, Lisp, Lua, Objective-C, Perl,

More information

Implementing Python in Haskell, twice. Bernie Pope Melbourne Haskell Users Group 24th April 2014

Implementing Python in Haskell, twice. Bernie Pope Melbourne Haskell Users Group 24th April 2014 Implementing Python in Haskell, twice. Bernie Pope Melbourne Haskell Users Group 24th April 2014 Overview How it all started language-python berp blip What s the point and where will it end? How it all

More information

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager HTML5 Evolution and Development Matt Spencer UI & Browser Marketing Manager 1 HTML5 Ratified. finally! After 7 years of development, the HTML5 specification was ratified on 28 th October 14 urce>

More information

PyPI to 0install Documentation

PyPI to 0install Documentation PyPI to 0install Documentation Release 0.1.0 Tim Diels Mar 14, 2017 Contents 1 User documentation 3 1.1 Installation................................................ 3 1.2 Running.................................................

More information

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG) SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2

More information

Course Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS. Computer Fundamentals. Installation of Development Tools:

Course Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS. Computer Fundamentals. Installation of Development Tools: Course Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS Computer Fundamentals o What is a Computer? o Computation vs calculation Microprocessors and Memory Concepts o Discussion on register,

More information

An introduction to scientific programming with. Session 5: Extreme Python

An introduction to scientific programming with. Session 5: Extreme Python An introduction to scientific programming with Session 5: Extreme Python PyTables For creating, storing and analysing datasets from simple, small tables to complex, huge datasets standard HDF5 file format

More information

Cython: A Guide For Python Programmers By Kurt W. Smith

Cython: A Guide For Python Programmers By Kurt W. Smith Cython: A Guide For Python Programmers By Kurt W. Smith Cython A Guide for Python Programmers. ebook Details: Paperback: 254 pages; Publisher: WOW! ebook; 1st edition (January 31, 2015) Book cover of High

More information

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1)

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 1 Professional Program: Data Administration and Management JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1) WHO

More information

Switch What s New in Switch New features. Fixes and improvements. Date: March 22, 2018 What s New In Switch 2018

Switch What s New in Switch New features. Fixes and improvements. Date: March 22, 2018 What s New In Switch 2018 Date: March 22, 2018 What s New In Switch 2018 Enfocus BVBA Kortrijksesteenweg 1095 9051 Gent Belgium +32 (0)9 216 98 01 info@enfocus.com Switch 2018 What s New in Switch 2018. This document lists all

More information

CNRS ANF PYTHON Packaging & Life Cycle

CNRS ANF PYTHON Packaging & Life Cycle CNRS ANF PYTHON Packaging & Life Cycle Marc Poinot Numerical Simulation Dept. Outline Package management with Python Concepts Software life cycle Package services Pragmatic approach Practical works Source

More information

ECE 2400 / ENGRD 2140 Computer Systems Programming Course Overview

ECE 2400 / ENGRD 2140 Computer Systems Programming Course Overview ECE 2400 / ENGRD 2140 Computer Systems Programming Course Overview Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece2400 What is

More information

Writing Secure APIs. Armin Ronacher for PyCon.ru 2014

Writing Secure APIs. Armin Ronacher for PyCon.ru 2014 Writing Secure APIs Armin Ronacher for PyCon.ru 2014 Armin Ronacher Independent Contractor for Splash Damage / Fireteam Doing Online Infrastructure for Computer Games lucumr.pocoo.org/talks but does it

More information

DOWNLOAD OR READ : VISUAL STUDIO NET TIPS AND TRICKS PDF EBOOK EPUB MOBI

DOWNLOAD OR READ : VISUAL STUDIO NET TIPS AND TRICKS PDF EBOOK EPUB MOBI DOWNLOAD OR READ : VISUAL STUDIO NET TIPS AND TRICKS PDF EBOOK EPUB MOBI Page 1 Page 2 visual studio net tips and tricks visual studio net tips pdf visual studio net tips and tricks Visual Studio.NET Code

More information

Tcl/Tk Status, July 2018

Tcl/Tk Status, July 2018 Tcl/Tk Status, July 2018 Donal Fellows orcid.org/0000-0002-9091-5938 Current Releases 8.5 - Long Term Support No further releases expected except for security fixes (if needed) Expect one further capstone

More information

Representing text on the computer: ASCII, Unicode, and UTF 8

Representing text on the computer: ASCII, Unicode, and UTF 8 Representing text on the computer: ASCII, Unicode, and UTF 8 STAT/CS 287 Jim Bagrow Question: computers can only understand numbers. In particular, only two numbers, 0 and 1 (binary digits or bits). So

More information

TypeScript. Types. CS144: Web Applications

TypeScript. Types. CS144: Web Applications TypeScript Superset of JavaScript (a.k.a. JavaScript++) to make it easier to program for largescale JavaScript projects New features: types, interfaces, decorators,... All additional TypeScript features

More information

PyBuilder Documentation

PyBuilder Documentation PyBuilder Documentation Release 0.10 PyBuilder Team Jun 21, 2018 Contents 1 Installation 1 1.1 Virtual Environment........................................... 1 1.2 Installing completions..........................................

More information

Python Packaging. Jakub Wasielak

Python Packaging. Jakub Wasielak Python Packaging Jakub Wasielak http://blog.pykonik.org/ http://koderek.edu.pl/ facebook.com/startechkrk https://pl.pycon.org/2017/ What? Why? Architecture https://packaging.python.org/current/ Installation

More information

Cross-Platform Data Models and API Using grpc

Cross-Platform Data Models and API Using grpc Cross-Platform Data Models and API Using grpc Sebastian Hagedorn, Felix Lamouroux Outline 1. Motivation & Goals 2. Choosing the Right Cross-Platform Technology 3. Introduction to Protocol Buffers and grpc

More information

nrfutil v2.2.0 User Guide v1.2 Doc. ID 4399_007 v

nrfutil v2.2.0 User Guide v1.2 Doc. ID 4399_007 v nrfutil v2.2.0 User Guide v1.2 Doc. ID 4399_007 v1.2 2017-03-10 Contents Contents Revision history... 3 Chapter 1: nrfutil...4 Chapter 2: Installing nrfutil... 5 2.1 Installing from PyPI... 5 2.2 Installing

More information

OWASP Top 10 The Ten Most Critical Web Application Security Risks

OWASP Top 10 The Ten Most Critical Web Application Security Risks OWASP Top 10 The Ten Most Critical Web Application Security Risks The Open Web Application Security Project (OWASP) is an open community dedicated to enabling organizations to develop, purchase, and maintain

More information

Different Species of Python

Different Species of Python Different Species of Python Presented by David Malcolm FUDcon 2011 Tempe Licensed under the Creative Commons Attribution-ShareAlike license: http://creativecommons.org/licenses/by-sa/3.0/

More information

CS 31: Intro to Systems Pointers and Memory. Kevin Webb Swarthmore College October 2, 2018

CS 31: Intro to Systems Pointers and Memory. Kevin Webb Swarthmore College October 2, 2018 CS 31: Intro to Systems Pointers and Memory Kevin Webb Swarthmore College October 2, 2018 Overview How to reference the location of a variable in memory Where variables are placed in memory How to make

More information

Optimizations which made Python 3.6 faster than Python 3.5

Optimizations which made Python 3.6 faster than Python 3.5 Optimizations which made Python 3.6 faster than Python 3.5 Pycon US 2017, Portland, OR Victor Stinner vstinner@redhat.com Agenda (1) Benchmarks (2) Benchmarks results (3) Python 3.5 optimizations (4) Python

More information

Python 3000 and You. Guido van Rossum PyCon March 14, 2008

Python 3000 and You. Guido van Rossum PyCon March 14, 2008 Python 3000 and You Guido van Rossum PyCon March 14, 2008 Why Py3k Open source needs to move or die Matz (creator of Ruby) To fix early, sticky design mistakes e.g. classic classes, int division, print

More information

CS 31: Intro to Systems Pointers and Memory. Martin Gagne Swarthmore College February 16, 2016

CS 31: Intro to Systems Pointers and Memory. Martin Gagne Swarthmore College February 16, 2016 CS 31: Intro to Systems Pointers and Memory Martin Gagne Swarthmore College February 16, 2016 So we declared a pointer How do we make it point to something? 1. Assign it the address of an existing variable

More information

Automatic Generation of Memory Analysis Plugins. Brendan Dolan-Gavitt OMFW 2011

Automatic Generation of Memory Analysis Plugins. Brendan Dolan-Gavitt OMFW 2011 Automatic Generation of Memory Analysis Plugins Brendan Dolan-Gavitt OMFW 2011 Memory Analysis Challenges Creating new plugins can take a lot of work Generally needs access to symbols or source code Reverse

More information

Builder. Improving GNOME's Developer Story. Christian Hergert builder.pdf

Builder. Improving GNOME's Developer Story. Christian Hergert  builder.pdf Builder Improving GNOME's Developer Story Christian Hergert http://hergert.me/talks/scale13x builder.pdf Scale 13x February 2015 What's GNOME? A Free Software Desktop Focused on

More information

Computing and compilers

Computing and compilers Computing and compilers Comp Sci 1570 to Outline 1 2 3 4 5 Evaluate the difference between hardware and software Find out about the various types of software Get a high level understanding of how program

More information

Exploring Performance Tradeoffs in a Sudoku SAT Solver CS242 Project Report

Exploring Performance Tradeoffs in a Sudoku SAT Solver CS242 Project Report Exploring Performance Tradeoffs in a Sudoku SAT Solver CS242 Project Report Hana Lee (leehana@stanford.edu) December 15, 2017 1 Summary I implemented a SAT solver capable of solving Sudoku puzzles using

More information

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren McLab tools on the web Deepanjan Roy Supervisor: Prof. Laurie Hendren Brief overview of the McLab project LANGUAGES, COMPILERS, AND VIRTUAL MACHINES Dynamic Scientific Programming Languages (Especially

More information

Big forms with JSON schemas and Transcrypt. November 15th, 2018 Philippe Entzmann

Big forms with JSON schemas and Transcrypt. November 15th, 2018 Philippe Entzmann Big forms with JSON schemas and Transcrypt November 15th, 2018 Philippe Entzmann Reinsurance of car insurers pyparis 2018 big forms with json-schema and transcrypt 2 Victim s injuries follow-up Yearly

More information

Trace-based JIT Compilation

Trace-based JIT Compilation Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,

More information

Python Class-Lesson1 Instructor: Yao

Python Class-Lesson1 Instructor: Yao Python Class-Lesson1 Instructor: Yao What is Python? Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined

More information

TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out

TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out Announcements TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out Get you setup for project/lab work. We ll check it with the first lab. Stars

More information

Revenge of the Pragmatists

Revenge of the Pragmatists Revenge of the Pragmatists or, lessons learnt from running a Clojure startup (info :BG) => {:name "BG", :govt-id "Baishampayan Ghose", :twitter "@ghoseb"} 1 Clojure/SYNC 2018 whoami Background in Lisp,

More information

CS1110 Lab 1 (Jan 27-28, 2015)

CS1110 Lab 1 (Jan 27-28, 2015) CS1110 Lab 1 (Jan 27-28, 2015) First Name: Last Name: NetID: Completing this lab assignment is very important and you must have a CS 1110 course consultant tell CMS that you did the work. (Correctness

More information

wheel Documentation Release Daniel Holth

wheel Documentation Release Daniel Holth wheel Documentation Release 0.32.2 Daniel Holth Oct 20, 2018 Contents 1 Quickstart 3 2 Installation 5 2.1 Python and OS Compatibility...................................... 5 3 User Guide 7 3.1 Building

More information

Think like an Elm developer

Think like an Elm developer Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services

More information

Fluent Python. Luciano Ramalho. Tokyo O'REILLY. Beijing. Sebastopol. Farnham. Boston

Fluent Python. Luciano Ramalho. Tokyo O'REILLY. Beijing. Sebastopol. Farnham. Boston Fluent Python Luciano Ramalho Beijing Boston Farnham Sebastopol Tokyo O'REILLY Table of Contents Preface xv Part I. Prologue 1. The Python Data Model 3 A Pythonic Card Deck 4 How Special Methods Are Used

More information

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013 CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective

More information

Distil Documentation. Release Vinay Sajip

Distil Documentation. Release Vinay Sajip Distil Documentation Release 0.1.2 Vinay Sajip September 18, 2014 Contents 1 Overview 3 1.1 Why distil?.............................................. 3 1.2 Features..................................................

More information

Our legacy archival system resides in an Access Database lovingly named The Beast. Having the data in a database provides the opportunity and ability

Our legacy archival system resides in an Access Database lovingly named The Beast. Having the data in a database provides the opportunity and ability Our legacy archival system resides in an Access Database lovingly named The Beast. Having the data in a database provides the opportunity and ability to maintain a semblance of structure in the data However,

More information

Embracing the Global Interpreter Lock (GIL)

Embracing the Global Interpreter Lock (GIL) Embracing the Global Interpreter Lock (GIL) David Beazley http://www.dabeaz.com October 6, 2011 PyCodeConf 2011, Miami 1 Let's Love the GIL! After blowing up the GIL at PyCon'2010, I thought it needed

More information

PrettyPandas Documentation

PrettyPandas Documentation PrettyPandas Documentation Release 0.0.4 Henry Hammond Mar 26, 2018 Contents 1 Features 3 2 Installation 5 3 Contributing 7 4 Contents 9 4.1 Quick Start................................................

More information

PySoundFile Documentation Release g8f1fecc

PySoundFile Documentation Release g8f1fecc PySoundFile Documentation Release 0.9.0-24-g8f1fecc Bastian Bechtold, Matthias Geier Aug 23, 2017 Contents 1 Breaking Changes 1 2 Installation 1 3 Read/Write Functions 2 4 Block Processing 2 5 SoundFile

More information

Choosing the web s future. Peter-Paul Koch Van Lanschot, 9 February 2017

Choosing the web s future. Peter-Paul Koch   Van Lanschot, 9 February 2017 Choosing the web s future Peter-Paul Koch http://quirksmode.org http://twitter.com/ppk Van Lanschot, 9 February 2017 Four problems 1. Web developers want to emulate native apps, which I think is not possible

More information

DISQUS. Continuous Deployment Everything. David

DISQUS. Continuous Deployment Everything. David DISQUS Continuous Deployment Everything David Cramer @zeeg Continuous Deployment Shipping new code as soon as it s ready (It s really just super awesome buildbots) Workflow Commit (master) Integration

More information

SOFA 2 RUNTIME SUPPORT FOR DYNAMIC LANGUAGES Jaroslav Keznikl

SOFA 2 RUNTIME SUPPORT FOR DYNAMIC LANGUAGES Jaroslav Keznikl SOFA 2 RUNTIME SUPPORT FOR DYNAMIC LANGUAGES Jaroslav Keznikl 1. Why should you be interested? Overview of the current SOFA 2 controllers Cool features for easy component development 2. What I m expecting

More information

Python 3 10 years later

Python 3 10 years later Python 3 10 years later FOSDEM 2018, Brussels Victor Stinner vstinner@redhat.com Victor Stinner CPython core developer since 2010 Work on CPython and OpenStack for Red Hat Very happy user of Fedora and

More information

tinycss Documentation

tinycss Documentation tinycss Documentation Release 0.4 Simon Sapin Mar 25, 2017 Contents 1 Requirements 3 2 Installation 5 3 Documentation 7 3.1 Parsing with tinycss........................................... 7 3.2 CSS 3

More information

CSCI-580 Advanced High Performance Computing

CSCI-580 Advanced High Performance Computing CSCI-580 Advanced High Performance Computing Performance Hacking: Matrix Multiplication Bo Wu Colorado School of Mines Most content of the slides is from: Saman Amarasinghe (MIT) Square-Matrix Multiplication!2

More information

Firefox for Android. Reviewer s Guide. Contact us:

Firefox for Android. Reviewer s Guide. Contact us: Reviewer s Guide Contact us: press@mozilla.com Table of Contents About Mozilla 1 Move at the Speed of the Web 2 Get Started 3 Mobile Browsing Upgrade 4 Get Up and Go 6 Customize On the Go 7 Privacy and

More information

Working with Strings. Husni. "The Practice of Computing Using Python", Punch & Enbody, Copyright 2013 Pearson Education, Inc.

Working with Strings. Husni. The Practice of Computing Using Python, Punch & Enbody, Copyright 2013 Pearson Education, Inc. Working with Strings Husni "The Practice of Computing Using Python", Punch & Enbody, Copyright 2013 Pearson Education, Inc. Sequence of characters We've talked about strings being a sequence of characters.

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

XStatic Documentation

XStatic Documentation XStatic Documentation Release 1.0.1 Thomas Waldmann Sep 18, 2018 Contents 1 What is XStatic 1 1.1 The Idea................................................. 1 1.2 Pros....................................................

More information

SIGGRAPH Briefing August 2014

SIGGRAPH Briefing August 2014 Copyright Khronos Group 2014 - Page 1 SIGGRAPH Briefing August 2014 Neil Trevett VP Mobile Ecosystem, NVIDIA President, Khronos Copyright Khronos Group 2014 - Page 2 Significant Khronos API Ecosystem Advances

More information

Computer Components. Software{ User Programs. Operating System. Hardware

Computer Components. Software{ User Programs. Operating System. Hardware Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point

More information