Distributed Hash Tables (Concise and Simple) (Nicholas Tollervey)
Distributed Hash Tables are a type of distributed P2P data store and I'm writing one in Python (http://drogul.us).
In this presentation I will:
- explain how it works at an abstract level,
- describe how it is implemented and,
- explore some of the funky use-cases for such technology.
I aim to do so in a concise and simple manner so most people with some technical experience will understand the talk.
Ubiquitous Larch (Geoffrey French)
The Ubiquitous Larch is an interactive, share-able, web-based programming environment for Python. It features an IPython style notebook interface for experimental programming. It brings some exciting new features of its own to the table. First and foremost, you can create interactive output. In the place of plain text in a normal Python shell or static plots in IPython, Larch can mix a d3.js visualization with JQuery widgets to interact with the visualization's contents, all within a deck.js presentation. What about when a new JS library comes along that delivers some must have stunning visuals? No problem: you can incorporate it into Larch with minimum of fuss, within Larch itself; no need to modify the Larch code base.
So, you've created something new and cool and you want to share it with your friends. Or maybe you want to teach another developer a cool new trick. For times like this, there's nothing like a live demo. But what if your friend lives hundreds of miles away? Or on another continent? You could meet them in real life, or you live-share your Ubiquitous Larch programming environment with them. Every change is quickly shared among everyone who is watching, but not just to the code; even the interactive graphs, plots, tools and toys you create can be seen and used by everyone.
Validated documents on MongoDB with Python and Ming (Alessandro Molina)
Ming is a SQLAlchemy-inspired object-document mapper (ODM) for MongoDB developed at SourceForge which is also used by the TurboGears2 web framework to provide mongodb support
After a short introduction to the basic Ming layer we will cover the Ming Object Document Mapper layer to show how to take advantage of its Unit Of Work to avoid performing incomplete changes, achieve relations between collections and create polymorphic documents.
The last part of the talk will show how to use Ming to perform lazy migration of data when your schema changes and how to drop below the odm layer to achieve maximum speed.
All-Singing All-Dancing Python Bytecode (Larry Hastings)
We all know Python is a bytecode interpreter, but what does that mean? Come find out! You'll learn what Python bytecodes are, what they do, and even how you can tinker with them. By the end of the talk you'll be an expert. All code will be 100% Python 3--knowledge of C not required!
Twisted Names: DNS building blocks for Python clients and servers (Richard Wall)
In this talk I will report on my efforts to update the DNS components of Twisted. I'll discuss some of the things I've learned along the way and I hope that by the time of PyconUK, I will be able to demonstrate EDNS0 and DNSSEC client support in Twisted Names.
Twisted is an event-driven networking engine written in Python and licensed under the open source MIT license. It is a platform for developing internet applications.
Python for Configuration Management (with Ansible) (Aaron Brady)
For as long as the term DevOps has been popular, the primary configuration management tools have been Puppet and Chef - both large Ruby applications. Building on top of these and extending them has meant adding another language to your stack, but recently two pure-Python packages; "Salt" and "Ansible", have gained popularity.
This talk will give a flying introduction to Ansible and go through the process of writing a Python plugin for it, as well as looking at how it can be integrated into other Python applications. A small Flask web application that performs a run and reports back on it will be dissected in the talk.
Ansible is a young project that's actively incorporating contributions so hopefully this talk will inspire some people to join in on the fun.
Python Adventures in Startup Land (Rachel Willmer)
5 years ago, I started a side-project to help me find ebooks I wanted to buy.
This is now Luzme.com, and I'm turning it into a real business, writing large quantities of Python/Django along the way.
This talk will share some of my technical experiences; what I've tried, what's worked, what hasn't; and how I'm designing to meet the current challenges of making it faster and making it mobile.
Secure Communication with pyOpenSSL (Marc-Andre Lemburg)
pyOpenSSL is an open-source Python package, which provides an easy-to-use Python interface to the secure socket layer (SSL) parts of the OpenSSL library.
The talk will give an introduction to the concepts of secure SSL communication and demonstrate correct use of the pyOpenSSL library to prevent common SSL attacks and avoid typical implementation errors.
Web deployment in modern new Age (Rachid Belaid)
After going through loads of iterations I've been rethinking my deployment workflow in a cloud-based new world. I came with 4 preferred ways: wheel, distro package, LXC, Image. Luckily loads of new tools came along to help build them easily with a smooth workflow: bdist_wheel, FPM, Packer, Docker. I'll go over the benefits of each approach and some use cases.
Pyramid, not only an architectural wonder (Rachid Belaid)
Pyramid is an agnostic framework to build small and large applications. This talk is about sharing a few of the awesome features of Pyramid. After building many projects in Pyramid, I'm still amazed by how this web framework doesn't constraint me in my development and helps me build better applications and toolkits.
Detecting the right Apples and Oranges - social media text analysis with scikit-learn and NLTK (Ian Ozsvald)
Scikit-learn is a machine learning toolkit in Python, along with NLTK we can use it to classify social media messages. We discuss the problem of disambiguating a mention of a word like "apple" in a Tweet and deciding whether the reference is to Apple Inc or to apple-the-fruit. This allows us to correctly analyse a large volume of tweets with human-like precision on words.
The speaker has an open source project that solves this problem which has been shown to outperform current commercial tools: https://github.com/ianozsvald/social_media_brand_disambiguator
Turtles All The Way Down (Simon Davy)
The turtle module in Python's standard library is a great educational tool when teaching Python to beginners. However, it is limited to simple procedural tasks, and often discarded after learning the basics.
Inspired by discussions in the education track at PyConUK last year, I have been attempting to extend its capabilities to allow for more interesting and engaging exercises, and overcome some of its inherent limitations.
The first part of this talk will explore ideas and demos of how turtle can be used for more than just drawing. From simple things like maze solving and obstacle avoidance, to more complex tasks like an asteroids game or predator/prey chasing, to advanced tasks like flocking group behaviours and simulations.
The second part of the talk will cover the technical side of making these kinds of ideas possible. This includes 3 new ongoing projects;
TurtlePower, a game/simulation engine for a turtle-like world
NinjaTurtle, a standalone re-implementation of the turtle module
- TurGLES, a high performance OpenGL ES2 renderer for the turtle multitudes
Building a web based file hosting service with Python (Edward Rowley)
We built a scaleable file hosting service which supported the web and FTP and could support storage of large > 2GB files. This talk describes how we built the application, the technologies used and how we resolved conflicts within our requirements. The talk will go into greater detail of how we are able to stream files thorough our web tier to a distributed file system.
Cooking up high quality software (Daniel Pope)
If software could win Michelin stars... Chef Daniel le Mauve will share a generous helping of tasty Python recipes, explaining how he sources his ingredients, designs his menu, keeps order in a hectic kitchen, and serves up delicious features night after night to keep the customers smiling.
A smörgåsbord of testing (David Winterbottom)
The controversy over writing tests and TDD is over. The benefits to the design, development and maintenance of your code are real and well known. In 2013, it is simply unprofessional to eschew tests for production code.
Given this, developers need to move beyond the basics of testing and gain a deeper understanding of the art. This entails knowing the patterns and anti-patterns of effective test suites, understanding what to test and how to do it, and a mastery of the many fantastic testing tools in the Python ecosystem.
Bad tests are a genuine menace. A poorly considered test suite pours concrete over your codebase, hindering maintenance and development.
This talk isn't an introduction to testing and TDD. Rather, it is a mixed buffet of tips, anti-patterns, tools and techniques for effective testing.
A Restricted History Of English Censorship (David Miller)
Censorship, it's REDACTED.
cen·sor·ship /ˈsensərˌSHip/ Noun The practice of officially examining books, movies, etc., and suppressing unacceptable parts.
- What is the current state of censorship in the UK ?
- How is this changing ?
- How does that affect *you* - a Python Programmer ?
- How does that affect *you* - a Human Person ?
- REDACTED ?
- Why should you care ?
Lessons learned from serving 1/3 million in-browser Python consoles with Tornado (Hansel Dunlop)
At the core of PythonAnywhere there is a Tornado-based server, which allows people to use Python consoles running on our servers from inside their web browser. We’ve been through several iterations of the server design since we started in mid-2011, and this talk explains what they were, the scaling issues we encountered, and why we converged on the current design.
Agile Test Automation at Scale (Mark Fink)
"Agile Test Automation at Scale" is an important topic in Agile software development of enterprise business applications. More and more companies adopt Agile development methodologies which introduce much shorter release cycles. Frequent releases push requirements regarding continuous integration and test automation.
At scale, test automation will eat up a significant part of your development teams project budget and if it is not running effectively you will not even gain the desired benefits. Consequently you need to set goals and metrics so you can easily keep your quality initiative on track and / or being able to make adjustments to the life cycle of your project at any point.
This talk introduces methods on how large automated test suites are structured and maintained efficiently.
Disclaimer: Many of the Test-Automation tools like Jenkins, JMeter, Selenium, Webdriver are implemented in Java but well suited for testing Python applications.
Virtualization with "Ganeti" - Setting up a private cluster on commodity hardware (Pranjal Mittal)
The goal of my talk would be to highlight what it takes to set up a private cloud (compute cluster) using an awesome open-source tool called Ganeti, a software layer around existing hypervisors.
Ganeti is a cluster - virtual server management software written in Python / Haskell, developed at Google (Germany, Switzerland), open-sourced in 2007 & even used at Google internally to date. Ganeti is similar to OpenStack, Cloudstack but provides an incentive of reduced setup time, ability to run on cheap commodity hardware and great for use internally at any SME or Academic Institution.
Ganeti apart from Google, has worked successfully for the Oregon State University | Open Source Lab - which (interestingly) hosts the complete Python Software Foundation data (websites, wiki's, pypi, etc) on a cluster powered by Ganeti.
A nice read giving an idea of pros & cons of Ganeti- http://www.linux.com/news/featured-blogs/200-libby-clark/640691-pros-and-cons-of-building-a-private-cloud-with-open-source-ganeti/
Escapology: (Alex Willmer)
Escapology is the art of correctly using your data in HTML, JSON, CSV and other formats.Break the bonds of parser errors, injection attacks, XSS and output.replace('<', '<').replace('>', '>').
Programming often touches many formats in the same project, and it's difficult to know the idiosyncrasies of every one. This talk will show you the minimum steps needed to write and read several formats, making sure what went in is what comes out.
Python tools to slim your website (Hamish Downer)
Introducing the Physical Turtle module (Mike Sandford)
The Physical Turtle module provides a physical space for a turtle to inhabit. It was written as a direct response to the teaching sprint at PyConUk 2012 as a way to extend the use of turtle graphics into navigating obstacle courses and maze following. This talk is an introduction to the module to show what it can do. Turtles will move, lines will not be crossed, obstacles will be avoided. Some geometry may be committed.
Breaking Things for Money (Tony Simpson and Peter Russell)
This session will be an experience report, a whirlwind tour of some of the wilder applications, frameworks and libraries we’ve written at The Test People.
We’ll examine why and how we ended up writing:
- A bespoke load testing framework;
- A computer vision based automation framework;
- A Windows remote management tool;
- A simple OCR library.
We'll show how Python, and its diverse ecosystem made these seemingly big (or even crazy) projects simple, quick and profitable.
The Test People are a software testing consultancy, and as such we’re confronted with all manner of systems, from the simple and unassuming to brain-boiling nightmares-come-true. Working on diverse and unusual applications throws up lots of unusual challenges, and we’re always working under pressure of time and budget. We’ll be interested to see what you make of what we’ve done!
Should we open source this CMS? (Stephen Hawkes)
Over the last few months Blanc has developed an in-house CMS for clients to use. We know what you're thinking -another Django CMS! - you're right, the difference here is that the front-end in page editing and the structure and design has been done by designers rather than developers.
The talk is a presentation of what we've built, followed by a request to help open source it, well if people like it!
An overview of Ansible (Gautier Hayoun)
Ansible is a configuration and deployment system that has gained a lot of popularity recently.
I will give an overview of its architecture and explain step-by-step how tasks are executed and organised.
I will finish this talk by showing how Ansible relates to the other configuration or deployment systems.
Oh, Py Behave! (Colin Moore-Hill)
This is an introduction to utilising Behave (a Behaviour-Driven Design framework) to help bridge the gap between the customer and development team understanding of project requirements; using worked examples gained from front line experience and touching on concepts like Ubiquitous language, Test driven design and Cohn's Triangle of Testing.
Teaching Data Science With Really Scrapable Web App (Matthew Hughes)
In recent years, a wealth of websites have appeared purporting to teach programming in a safe and sand-boxed environment. It has never been easier to learn how to become a programmer. The same is not true of web scraping, however. Until recently, there was no CodeAcademy or Project Euler for aspiring data scientists.
Really Scrapable Web App (RSWA) is a Flask-based web application that aims to address this gap in the market and provide a safe place to learn fundamental skills behind data science and scraping.
This short talk aims to answer three questions.
- 1 What is scraping? 1 What is RSWA and why do we need it? 1 How do we scrape it?
10 new things coming in Python 3.4 (Tim Golden)
Python 3.4 is on its way, due for release later this year. This talk will cover 10 new or updated aspects of the language and its libraries. Some of them will be under-the-covers, others user-facing.
Test-Driven Madness (Rob Collins)
Imagine someone who really disliked testing. This is what they might say…
There is much talk of the need for agile development, supported by tests. Agile is great. No tasks set in advance, no Microsoft Project plans to feed with wild guesses. But “supported by tests”? Forget political correctness, let me say it now:
Tests just slow us down.
So much time and money has been wasted. Testing is one of those “sadder investments"**. In this talk, I will explain why most testing should be shunned.
First, I will reluctantly detail the supposed best practices for test-driven development, behaviour-driven development, hiding-to-nothing development, test coverage, white-box testing, pink-box testing, A-B testing, integration testing, not-my-fault injection, regression testing, smoke testing, performance testing, usability testing… Oh, I give up. There are hundreds of ways to waste good development time!
These will all be a mouth-cleansing starter in preparation for the main course: Test-Driven Madness. This new technique guarantees both rapid development, and job security.
Writing tests takes time: some developers write more test code than functional code. Clearly this doubles the work load and slows down development. Surely testing is the job of the QA department? Unit tests are particularly pointless, since they duplicate what is covered by integration tests. And the number of integration tests can commonly be reduced to just one large test per requirement. If that passes, then all the code must be working. So let’s quickly move on to implement the next feature!
Not writing tests avoids false positives. Look at the trouble that testing caused for food retailers. Do you really want to discover the unimportant small percentage of horsemeat code that might be hidden in your modules, implicitly labelled as lines of good Python? Better you don’t know.
And testing is morally wrong. For many years, people have campaigned against testing on animals. They say it’s cruel, unnecessary, and animals don’t have a choice. In software development, animal testing hasn’t so far been a big problem. But now we have a chance to stop the cruelty of testing on developers, who think they have no choice.
For the sweet trolley of the meal, I will show you hints and tips you wouldn’t want to miss. There are workarounds for many problems. For instance, we will cover the situation when you have some intermittent failures in your code, looking at undervalued techniques in Python for eliminating errors, such as
Managers need features. They can enthusiastically put a “New Feature” up on the company web site. They’re not going to get extra customers from putting “Reliable New Feature”. It’s the features that sell a product, and the company needs to make sales to stay in business. Reliability can catch up later, preferably when customers are too committed to the product features to be able to back out.
In summary, come along and find out why writing tests is such a bad idea, because testing is what customers are for!
Mining Python Software (Sarah Mount)
It's amazing how many decisions about software development are still based on the gut reaction of experienced programmers. "This project has really clean code...", "this project doesn't have anywhere near enough tests..." are really statements about good taste in software development, rather than good science. Now that we have access to millions of lines of freely hosted open source software, we should be able to do better than this!
In this talk I will discuss some early results of software mining experiments. Using this data we can start to get clear answers to questions like "how much duplicate code can you expect to see when you start working on an existing project" or "can the comments in a project tell whether the core team is more positive than average".