Register, then eat some breakfast.
by Ian Ozsvald
Data Science was described as "The Sexiest Job of the 21st Century" by the Harvard Business Review. Behind the glitter of the Big Data marketing wave lies a raft of issues that are hard, important and decidedly unsexy - if they're solved then statisticians and engineers can apply their organisations' data to solve high value problems.
Having worked, consulted and trained in the field for 15 years I'll highlight the gritty problems and propose ways for Pythonistas to tackle and solve these issues to keep Python as the go-to language for practical data science work.
by Ben Nuttall
How the Raspberry Pi Foundation are leading the way in the computing in schools revolution by providing affordable open and connectable hardware to people of all levels of experience.
Now we have an education team, we're pushing forward with creating resources and training teachers to help deliver modern computing education around the world.
All our learning resources are Creative Commons licensed and available on GitHub. We write materials that match the UK computing curriculum.
Facebook is a company that operates at massive scale. In this talk we’ll talk about how we use Python at Facebook.
Be it building back-end services, fast prototyping, automation, scaling operations, or simply gluing together various pieces of our infrastructure, Python is at the heart of it and allows our engineers to quickly deliver working solutions.
We’ll talk about our review process, unit testing, deployment workflow and various open-source framework we use.
Get your Python in the Cloud with Red Hat's OpenShift Cloud!
In this hands-on session, we will:
Bring your laptops, mobile device of choice and be prepared to deploy!
Please install following tools on your laptop:
by Barry Hurley
Combinatorial optimization provides powerful support for decision making in a wide range of important industrial domains such as telecommunications, transportation, scheduling, energy efficiency, and many others. For example, making decisions about how daily deliveries should be made, building out your infrastructure, manufacturing a product, or even scheduling a workforce. Traditionally these powerful techniques have required expert domain knowledge putting this out of the hands of normal users. To remedy this we introduce [Numberjack][numberjack], an easy to use, intuitive, and powerful [open-source][njgithub] Python combinatorial optimization platform.
This tutorial will introduce attendees to Numberjack, equipping them with powerful tools from combinatorial optimization and giving them insight to model and solve combinatorial problems quickly and easily. We will make use of built in constraint programming, mixed integer programming, and satisfiability techniques to which Numberjack provides a natural, high-level language to model such problems quickly and easily from a native Python environment.
by James Powell
This is an expert-level talk that dives into CPython and discusses various ways to embed Python interpreters. It starts with the ""very high level"" embedding & the ""pure"" embedding, shows a fairly novel ""zero interpreter"" embedding using Cython, a few attempts at a ctypes/cffi embedding, and builds to a finish with a source-filter embedding of a Python interpreter into itself.
The purpose of this talk is to have some fun diving into CPython internals while looking practical approaches to embedding CPython interpreters into other (C/C++) processes. The final result, a Python 3 interpreter embedded into a Python 2 interpreter as an extension model, is novel but may be of fairly limited actual use. It is, however, pretty wild and a lot of fun!
by Padraig Doheny
"We have been using Python and specifically jinja2 as a templating language for more than three years at Cisco, but in the last 6 months we have expanded our existing work to develop a Reflection API for the C++ Libraries that are used by Cisco Jabber products. In a little more detail, we are using the jinja2 templating language to generate C++ Reflection classes, similar to the Reflection functionality available in .Net languages and Java. Note that while the C++ language provides runtime type information, it leaves a lot to be desired in terms of a rich Reflection capability.
The work is new and exciting and there are many benefits for us, specifically in the areas of load testing and interoperability testing. For instance, we can use the Reflection APIs (together with a remote testing library built into our products) to generate Instant Message Traffic to load test the network's back-end. Another example, we can use the Reflection API to make video calls with Cisco Jabber and generate video traffic, allowing testers to view media statistics such as adapted frame rate, and test for optimal rates for different network scenarios. The network data is realistic as it is utilizing Cisco Jabber's underlying libraries. As an aside, it is worth noting that such tests are also written in Python within our business group.
We would welcome a chance to exhibit some our work at the conference, and leverage feedback from interested attendees. Similar approaches may work well for other test engineers in attendance. "
30 years ago, an engineering student arrived nervously on her first day in her first job as a programmer, filled with questions. Could she do the job? Would it be fun? Will the food be good?
30 years on, Rachel Willmer has been a support engineer, a programmer, a project manager, a startup founder, a freelancer, a salesman, and a CEO and a jack-of-all-trades.
And the answer (so far) has been "yes, mostly" to all the questions...
Currently the Founder and 'Chief Everything Officer' of her bootstrapped startup Luzme (the world's best ebook search site), Rachel explains why she thinks being a techie in the world of business is a great place to be.
Our Sponsors would like to present a brief overview of various developer roles they have available. Each sponsor will speak briefly about the roles and will be available to chat with interested canditates afterwards.
It's also an opportunity for you to announce that you are seeking an opportunity somewhere. You will have the chance to introduce yourself and your skills to various potential employers.
by Mike McKerns
Parallel and asynchronous computing in python is crippled by pickle's poor object serialization. However, a more robust serialization package would drastically improve the situation. To leverage the cores found in modern processors we need to communicate functions between different processes -- and that means callables must be serialized without pickle barfing. Similarly, parallel and distributed computing with MPI, GPUs, sockets, and across other process boundaries all need serialized functions (or other callables). So why is pickling in python so broken? Python's ability to leverage these awesome communication technologies is limited by python's own inability to be a fully serializable language. In actuality, serialization in python is quite limited, and for really no good reason.
Many raise security concerns for full object serialization, however it can be argued that it is not pickle's responsibility to do proper authentication. In fact, one could apply rather insecure serialization of all objects the objects were all sent across RSA-encrypted ssh-tunnels, for example.
Dill is a serialization package that strives to serialize all of python. We have forked python's multiprocessing to use dill. Dill can also be leveraged by mpi4py, ipython, and other parallel or distributed python packages. Dill serves as the backbone for a distributed parallel computing framework that is being used to design the next generation of large-scale heterogeneous computing platforms, and has been leveraged in large-scale calculations of risk and uncertainty. Dill has been used to enable state persistence and recovery, global caching, and the coordination of distributed parallel calculations across a network of the world's largest computers.
Object-oriented programming (OOP) has been the leading programming paradigm for several decades now, starting from the initial attempts back in the 60s to some of the most important languages used nowadays. Being a set of programming concepts and design methodologies, OOP can never be said to be “correctly” or “fully” implemented by a language: indeed there are as many implementations as languages.
This tutorial aims to introduce beginners to the Python implementation of the OOP concepts, which is very beautiful but sometimes peculiar.
The topics covered in the tutorial are:
Previous acquaintance with the language syntax and structures (lists, dictionaries, strings) is recommended. Access to an editor and the Python shell is profitable to follow the code examples in real time.
This talk is suitable both for beginners and intermediate users. Beginners may find a good foundation for their upcoming use of the language, while intermediate users may find a clarification about concepts they already use and implement.
This is a beginner's introduction to Test-Driven Development, using the development of a simple Django web application as its example.
Learn how to write functional tests that drive a real web browser using Selenium. Learn how to write unit tests, the unittest framework, and the core components of Django: views, templates and models. At each stage we'll write tests first, and talk about what to test, what not to test, and what the point of all this testing is anyway.
This tutorial would be suitable for people who've never used Django or never done TDD, although some basic knowledge of Python is assumed. It is based on my book, which is available for free at obeythetestinggoat.com, so you will be able to consolidate and build on what you've learned after the session.
Please come with Python 3, Django 1.7 and Selenium installed on your laptops.
Python 3.4 installer for Mac
Python 3.4 installer for PC
Git installer for Mac
Git installer for PC
Firefox installer for Mac
Firefox installer for PC
by Andreas Dewes
Static code analysis is an useful tool that can help to detect and fix bugs early in the software development lifecycle. However, most Python tools for static analysis -such as pylint, pyflakes and pep8- use a predefined set of rules and heuristics, which allows to find a small number of common code problems but leaves many relevant issues undetected.
We aim to change this by developing a data-driven approach to code quality management: By analyzing vast amounts of publicly available Python code and using example-based learning algorithms on issue data provided by developers, we obtain a code quality model that is able to dynamically learn new classes of code defects and -in some cases- even refactor them automatically.
In the talk I will review the current state of Python tools for static code analysis and outline the current challenges and problems in this field. I will then present the results of a survey of code quality in open-source Python projects for which we analyzed more than 10.000 public Python projects on Github. Finally, I will present some first, preliminary results of our code analysis algorithm and show how example-based learning can be used to generate a data-driven model for code quality and refactoring. I will also briefly talk about the Python-based data processing architecture that we use to store, aggregate and analyze large amounts of source code.
by Mike McKerns
A recent mathematical proof by Owhadi et al [1,2] details how many of today's common statistical methods are inherently unreliable. For example, Bayesian inference is only guaranteed to be correct when the selected prior is exact -- otherwise, the predictions are not guaranteed to be any more likely true than a random guess. Common tools in statistical science such as Bayesian inference, Monte Carlo, and Machine Learning impose strong implicit assumptions on a problem set in order to yield a solution. These methods do not provide a means for testing the assumptions the methods themselves require. For example, with Bayesian inference one must select a prior, where selecting a prior essentially turns the past into an explicit predictor of future events. Monte Carlo can never rigorously predict bounds on risk, and falls victim to the curse of dimensionality.
We have developed a comprehensive mathematical framework (OUQ) [3,4] capable of utilizing all available information to rigorously predict the impact of high-impact rare events, where our predictors are multiply-nested global optimizations over all possible valid scenarios. Such optimizations are high-dimensional, highly-constrained, non-convex, and generally impossible to solve with current optimization technology; however, by addressing optimization constraints as quantum operators on a probability distribution, our software (called 'mystic') [5,6] converts highly-nonlinear statistical calculations to those that are nearly embarrassingly parallel. By utilizing abstractions on programming models and global distributed caching of data and results, we can scale up from desktop calculations to petascale and larger with little burden on the programmer.
Within the context of this framework, assumptions inherent to common statistical science can be tested and validated, and models can be rigorously tested and improved. Results obtained are rigorous and optimal with respect to the information provided, and should enable great strides in reproducibility in statistical science. This framework has been used in calculations of materials failure under hypervelocity impact, elasto-plastic failure in structures under seismic ground acceleration, and the design of the next generation of large-scale heterogeneous compute clusters. Tools are included for rigorously constraining design space, constructing standard and statistical constraints, leveraging discrete and symbolic math, and quantifying uncertainties and risk.
This talk will lightly cover Owhadi's proof in pictorial form, however will primarily focus on the implementation of Owhadi's new rigorous statistical framework in the mystic software, and discuss the outlook and impact on scientific reproducibility in statistical science.
Python has established itself as an important technology in the financial industry. This is remarkable since not too long ago, Python has been almost nothing more than a niche technology in this industry.
The keynote is about key features of Python and its ecosystem as well as recent developments that helped Python become a strategic technology platform for even some of the largest financial institutions in the world.
The state of Python usage in the industry is illustrated by specific financial projects using Python and by companies betting on Python as one of their core technologies.
This time is allocated to Dinner. More details to come.
With thanks to our Bar and Entertainment sponsor Mandrill. We will be having a party in The Leeson Lounge, Leeson Street Upper. Join us for music, drinks and discussion.
Ancient scientists decided not want to wait around for Python to be invented, but went ahead and built a model of the universe using more primitive means of calculation. But today we can finally bring their work up to date! By applying data analysis and in-browser visualization to the best and most accurate modern astronomical data, we will rebuild the ancient and medieval model of the universe — from the orbit of the Moon all the way up to the highest heaven. In the process we will see how vector math, statistical solvers, plotting libraries, and animation can all be brought together inside of the IPython Notebook.
In recent years Dublin started to publish a lot of data on their open data platform dublinked. In this talk I'll show how to use different open data providers from dublinked to OSM and how to interact with them in Python.
The focus in this talk will be about GIS and Python and will showcase different tools and libraries in this area and show how to combine them.
by Larry Hastings
This talk is all about random numbers--what are they? What different kinds are there? What are they useful for? And why are computers really bad at them? Come learn all about random numbers, both the good and the bad.
Django has matured and evolved over the years to become the framework of choice for many Python programmers out there. It makes web developement easy and painless by providing tons of utilities out of the box.
Redis is ubiquitous in the current industry. The joy of using a fast and reliable NoSQL database is inexplicable once you have already gone through that phase of carefully designing all your tables while using a SQL database.
The tutorial will cover writing a Django application from step 0. The idea is to allow a full hands on experience developing a Django web application. However, the experience has to be gratifying and something that can be built upon. Hence, over the process, we will cover fetching tweets from Twitter using the Twython framework (boilerplate code) and visualizing it using Chart.js (boilerplate code).
Redis will be introduced to cover 3 simple use cases. Implementing a leaderboard, implementing a counter and implementing cache. These are 2 to 5 lines of code which makes a huge difference and impact on your web application.
Twython and Chart are going to be introduced as bolier plate codes since it is so easy to tweak and learn it. The idea of this workshop is to give a solid foundation in using Django and Redis together.
In Django itself, we will cover using models, forms, implementing views, how ORM works, routing, templates, and how all these tie together during the flow of development.
Here is the list of packages required for the workshop:
Have a virtualenv (http://virtualenv.readthedocs.or...) up and running with the following packages installed.
Any Linux distro (preferable Ubuntu)
If you have Windows, plase install VirtualBox with Ubuntu!
by Paul Hallett
Embark on an epic 8-bit adventure that pits you against coding challenges that earn you loot for your character. Gain points, learn how to call and SMS people with Python, and win great prizes!
by James Powell
11th–14th October 2014