Skip to content

Instantly share code, notes, and snippets.

@mynameisfiber
Last active August 29, 2015 13:57
Show Gist options
  • Select an option

  • Save mynameisfiber/9421381 to your computer and use it in GitHub Desktop.

Select an option

Save mynameisfiber/9421381 to your computer and use it in GitHub Desktop.
Parse the pycon2014 schedule and create a json blob for great victory
[{"start_time":1397201400,"end_time":1397206800,"title":"Breakfast"},{"start_time":1397206800,"end_time":1397208600,"title":"Opening Statements: Diana Clarke"},{"start_time":1397208600,"end_time":1397211000,"title":"Keynote: John Perry Barlow"},{"start_time":1397211000,"end_time":1397213400,"title":"Break"},{"description":"Why are Python programmers crazy about lists and dictionaries, when\r\nother languages tout bitmaps, linked lists, and B+\u00c2\u00a0trees? Are we missing\r\nout? Come learn how data structures are implemented on bare metal, how\r\nto select the right data structure, how the list and dictionary cover a\r\nwide swath of use cases, and when to dip into the Standard Library or a\r\nthird-party package for an alternative.","title":"All Your Ducks In A Row: Data Structures in the Standard Library and Beyond","track":1,"start_time":1397213400,"speaker":"Brandon Rhodes","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/211\/"},{"description":"Many developers, including quite a few experienced developers, are absolutely confounded by regular expressions. However, regular expressions aren't as difficult as many believe. In this talk, I will teach regular expressions by starting with the simple and moving toward the complex, so that you too can read and write regular expressions like a hero.","title":"Introduction to Regular Expressions","track":2,"start_time":1397213400,"speaker":"Luke Sneeringer","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/180\/"},{"description":"Every developer will inevitably feel the pain of character encoding issues. We will cover the fundamentals every Python developer should know on character encoding and Unicode. We will teach you how to identify the types of problems that occur when dealing with character encoding and outline a set of best practices and useful libraries which can be used to avoid and fix character encoding issues.","title":"Character encoding and Unicode in Python: How to (\u00e2\u0095\u00af\u00c2\u00b0\u00e2\u0096\u00a1\u00c2\u00b0\u00ef\u00bc\u0089\u00e2\u0095\u00af\u00ef\u00b8\u00b5 \u00e2\u0094\u00bb\u00e2\u0094\u0081\u00e2\u0094\u00bb with dignity","track":3,"start_time":1397213400,"speaker":"Travis Fischer, Esther Nam","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/168\/"},{"description":"When people talk about Big O notation do you go cross eyed? Do you not\r\nget the point of learning about implementing linked lists or depth\r\nfirst search? Join me as I introduce the CS fundamentals that helped\r\nme ace my Google interview, even though I didn't get a formal CS\r\neducation.","title":"Computer science fundamentals for self-taught programmers","track":4,"start_time":1397213400,"speaker":"Justin Abrahms","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/145\/"},{"description":"You've deployed! But your friends can't see it - what's wrong? I'm betting DNS. Maybe you've fixed a couple of entries, point some records to hostnames, waited patiently for new domains to resolve only to notice your nameservers are incorrect. But what actually goes on with DNS? Come to this talk to find out how DNS works, and how to interact and create a DNS with Python.","title":"For Lack of a Better Name(server): DNS Explained.","track":5,"start_time":1397213400,"speaker":"Lynn Root","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/175\/"},{"description":"Memcached is a popular, blazing fast in-RAM key\/object store mainly used in web applications (although it can be used in virtually any software). You will walk out of this talk with a solid understanding of memcached and what it does under the hood, and become familiar with several patterns and best practices for making the most of it in your own Python applications.","title":"Cache me if you can: memcached, caching patterns and best practices","track":1,"start_time":1397215800,"speaker":"Guillaume Ardaud","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/173\/"},{"description":"Building importers that consume other peoples' data can sometimes feel a bit like dumpster-diving. Non-compliant formats, network errors and missing data are just some of the many ways your importer is a ticking time bomb. This talk presents ways to diffuse that bomb, so when the data's broke, you can still be the hero.","title":"Creating Bomb-Proof Data Importers","track":2,"start_time":1397215800,"speaker":"Daniel Lindsley","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/147\/"},{"description":"Decorators are an invaluable addition to anyone's arsenal of python tools and tricks. We will learn what a decorator is, how decorators are created, and then explore some of the cooler applications for decorators in our everyday projects.","title":"Decorators: A Powerful Weapon in your Python Arsenal","track":3,"start_time":1397215800,"speaker":"Colton Myers","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/185\/"},{"description":"This is a talk about building full-stack python web applications where you manage every part of the application yourself. I will walk through how to setup a production server with your web application code, a local development environment using vagrant, and how to deploy from your local environment to production. I will also walk through python and Django libraries that will make your life easier.","title":"So you want to be a full-stack developer? How to build a full-stack python web application.","track":4,"start_time":1397215800,"speaker":"Kate Heddleston","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/184\/"},{"description":"Did you know that when you resolve a hostname, you can get multiple addresses back, and pick any one to connect to? Some of these addresses will connect near instantly, while others might take a long time or time out. This talk is about a Twisted endpoint API I built that takes a hostname, and returns the connection that takes the least time to complete, from the list of resolved host addresses.","title":"Kneel And Disconnect: Getting The Fastest Connection Out Of A Hostname","track":5,"start_time":1397215800,"speaker":"Ashwini Oruganti","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/156\/"},{"description":"You may have encountered the pickle or cPickle libraries, and used them to persist some state about your program. But how do they work? This talk explores how the pickle protocol works, what its advantages are, and its disadvantages","title":"Pickles are for Delis, not Software","track":1,"start_time":1397218200,"speaker":"Alex Gaynor","end_time":1397220900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/155\/"},{"description":"Ever wondered how python web-scraping libraries compare in terms of speed and accuracy? I\u00e2\u0080\u0099ll review lxml, html5lib, BeautifulSoup and scrapy with a series of sites evaluating how quickly they can parse pages and how accurately they can find data, particularly pieces of data that render after DOM loading and other pesky bits like hidden form data, internationalized data and mobile-compliant sites.","title":"Python Scraping Showdown: A performance and accuracy review of top scraping libraries","track":2,"start_time":1397218200,"speaker":"Katharine Jarmul","end_time":1397220000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/178\/"},{"description":"This talk is an experience report \/ best practices summary, based on work porting a very large stack to Python 3.x. The stack includes the Zope3 component architecture, ZODB, WebOb, pyramid, other dependencies, totalling ~180 KLOC Python + ~25 KLOC C.","title":"By Your Bootstraps: Porting Your Application to Python3","track":3,"start_time":1397218200,"speaker":"Tres Seaver","end_time":1397220900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/157\/"},{"description":"Suppose `import` didn't exist, and we had to invent it from scratch. We'll look at the problem - code sharing and reuse across modules - and different ways we could solve it. We'll come up with `import` from parallel universes and then reinvent python's actual implementation. Finally, we'll import - using python's design - without using the `import` keyword.","title":"Import-ant Decisions","track":4,"start_time":1397218200,"speaker":"Allison Kaptur","end_time":1397220000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/229\/"},{"description":"Learn how to let other people connect straight to your computer, so your Python web apps, email services, or anything else can be seen by the world. It starts simple, then explains when and how to use SimpleHTTPServer, ssh tunnels, Pagekite, and IPv6. You can use these tools for temporary connections, like sharing an in-progress demo, or for permanent connectivity for your home server.","title":"Turn Your Computer Into a Server","track":5,"start_time":1397218200,"speaker":"Karen Rustad, Asheesh Laroia","end_time":1397220900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/176\/"},{"track":1,"start_time":1397220000,"end_time":1397223600,"title":"Lunch"},{"track":2,"start_time":1397220000,"end_time":1397223600,"title":"Lunch"},{"track":1,"start_time":1397220900,"end_time":1397224500,"title":"Lunch"},{"track":2,"start_time":1397220900,"end_time":1397224500,"title":"Lunch"},{"track":3,"start_time":1397220900,"end_time":1397224500,"title":"Lunch"},{"description":"Learn about Ansible -- a radically simple way to deploy applications, configure operating systems, and orchestrate IT operations including zero downtime rolling updates. Let's bring about SkyNet faster.","title":"Ansible - Python-Powered Radically Simple IT Automation","track":1,"start_time":1397223600,"speaker":"Michael DeHaan","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/152\/"},{"description":"Since PyCon 2013, interest in the Young Coders class has intensified. Several Python conferences have run their own, and classes outside of conferences - from one-time workshops to after school clubs - have sprung up as well. With more people than ever interested in teaching Python to kids, we're here to address how to organize a class. It takes some effort to set up, but the payoff is enormous.","title":"The Young Coder: Let's Learn Python (or, 'So, You Want to Run a Young Coders Class')","track":2,"start_time":1397223600,"speaker":"Barbara Shaurette, Katie Cunningham","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/170\/"},{"description":"Twisted is an event-driven, networking library. This talk aims to explain what that means and give an overview of some of the main Twisted concepts. It will also describe some of the functionality that Twisted offers out of the box.","title":"An Introduction to Twisted","track":1,"start_time":1397224500,"speaker":"Stacey Sern","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/189\/"},{"description":"This talk traces JavaScript's impact on software development tools over forty years, from 1995 until 2035. Although the language is mostly dead today, it drove the largest transformation of mainstream development tools since the creation of Unix 65 years ago.","title":"The Birth & Death of JavaScript","track":2,"start_time":1397224500,"speaker":"Gary Bernhardt","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/186\/"},{"description":"It's inevitable that online communities will change, and that we'll remember the community with a fondness that likely doesn't accurately reflect the former reality. We'll explore how we can take a set of articles from an online community and winnow out the stuff we feel is unworthy. We'll explore some of the machine learning tools that are just a pip install away, such as scikit-learn and nltk.","title":"Enough Machine Learning to Make Hacker News Readable Again","track":3,"start_time":1397224500,"speaker":"Ned Jackson Lovely","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/163\/"},{"description":"A talk about mixing Twisted, an asynchronous IO framework for Python, with other Python code: blocking code, other asynchronous code...","title":"Twisted Mixing","track":1,"start_time":1397226900,"speaker":"Laurens Van Houtven","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/138\/"},{"description":"Puppet modules provide reusable operations (ops) code in a manner analogous to Django apps. This talk explores the Puppet ecosystem through the eyes of a typical Python developer, and demonstrates how to use Puppet modules effectively to deploy and secure Python web applications.","title":"Puppet Modules: Apps for Ops","track":2,"start_time":1397226900,"speaker":"Justin Bronn","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/217\/"},{"description":"AngularJS is a really exciting tool for building super slick single-page apps. But if you want them to play nice with a Python backend (Django, Pyramid, Flask, etc.) you're going to have to do a little bit of wrangling. These are the design patterns that worked for us.","title":"Straightening Out AngularJS with Python","track":3,"start_time":1397226900,"speaker":"Jeff Schenck","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/171\/"},{"description":"There's a gaping hole in Python advocacy: K-12 educators. These are the front-lines of CS education, especially in countries where attending primary and secondary school is compulsory, and resources to teach CS are stretched very thin. Learn what we have to offer CS teachers and how you can help in your local area.","title":"The Python Pipeline: Why you should reach out to local teachers and how to do it","track":4,"start_time":1397226900,"speaker":"Selena Deckelmann","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/143\/"},{"description":"Provide an introduction to machine learning to clarify what it is, what it's not and how it fits into this picture of all the hot topics around data analytics and big data.","title":"How to Get Started with Machine Learning","track":5,"start_time":1397226900,"speaker":"Melanie Warrick","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/154\/"},{"description":"This talk will cover the internals of Python, such AST, Import hooks, creating a console, and a very brief overview of Python internal formats (such as pyc files), by way of looking over the implementation of a Lisp called Hy. No Lisp knowledge is required.","title":"Getting Hy on Python: How to implement a Lisp front-end to Python","track":1,"start_time":1397229300,"speaker":"Paul Tagliamonte","end_time":1397232000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/192\/"},{"description":"Salt is the new kid on the block in the configuration management space. Unlike the Ruby-based Chef and Puppet, Salt is written in Python, making it easy to debug and extend for Python developers.\r\n\r\nThis talk will introduce Salt as well as explore some of the things that make it unique.","title":"Getting Started with SaltStack","track":2,"start_time":1397229300,"speaker":"Peter Baumgartner","end_time":1397231100,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/215\/"},{"description":"gevent-socketio is the cross-framework python implementation of the Socket.IO protocol, based on gevent. Alexandre is the maintainer of the lib.\r\n\r\nThis will be a live coding session. We'll build a full-blown real-time analytics platform from scratch, with an AngularJS front-end, some Bitcoin transactions and other cool integrations.\r\n\r\nDark chocolate available for everyone to prep your neurones.","title":"Real-time web with gevent-socketio, live coding demo","track":3,"start_time":1397229300,"speaker":"Alexandre Bourget","end_time":1397232000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/230\/"},{"description":"Dgplug summer training is a free online IRC based course which aims to teach FOSS ideas and programming in general using Python to new programmers\/stduents. In this talk we share our experiences, lesson learned, hoping that people will be able to replicate this in other parts of the world.","title":"Teaching Python: To Infinity and Beyond","track":4,"start_time":1397229300,"speaker":"Kushal Das","end_time":1397231100,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/277\/"},{"description":"scikit-learn is an awesome tool allowing developers with little or no machine learning knowledge to predict the future! But once you've trained a scikit-learn algorithm, what now? In this talk, I describe how to deploy a predictive model in a production environment using scikit-learn and RabbitMQ. You'll see a realtime content classification system to demonstrate this design.","title":"Realtime predictive analytics using scikit-learn & RabbitMQ","track":5,"start_time":1397229300,"speaker":"Michael Becker","end_time":1397232000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/224\/"},{"track":1,"start_time":1397231100,"end_time":1397232900,"title":"Break"},{"track":2,"start_time":1397231100,"end_time":1397232900,"title":"Break"},{"track":1,"start_time":1397232000,"end_time":1397233800,"title":"Break"},{"track":2,"start_time":1397232000,"end_time":1397233800,"title":"Break"},{"track":3,"start_time":1397232000,"end_time":1397233800,"title":"Break"},{"description":"Distributed computing is challenging. The network can be spotty. The servers can be pushed too hard. Race conditions can show up. Tasks can seem to disappear. Deployment can be messy. Celery is an excellent tool for writing distributed applications and this talk focuses on real-world challenges faced when doing those tasks.","title":"Distributed Computing Is Hard, Lets Go Shopping","track":1,"start_time":1397232900,"speaker":"Lewis Franklin","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/140\/"},{"description":"There are a half-dozen major Python cryptography frameworks built on at least three separate C implementations, each with their own strengths and weaknesses and in various states of maintenance. This presentation will review the current state of the art and discuss the future of crypto in Python including a new library under development, PyPy support and more.","title":"The State of Crypto in Python","track":2,"start_time":1397232900,"speaker":"Jarret Raim, Paul Kehrer","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/202\/"},{"description":"Come and learn the techniques used for generating random dungeon-like levels for games. You don't have to know what Rogue is to enjoy this talk. Prepare yourself for a plethora of Monty Python references and we'll have some fun.","title":"Castle Anthrax: Dungeon Generation Techniques","track":1,"start_time":1397233800,"speaker":"James King","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/146\/"},{"description":"Deploying a moderately complex web application has become quite a challenge over the years. As best-practices have evolved, it has become progressively more time-consuming to keep up with what tools exist and how to use them effectively. This talk will provide an overview of the ecosystem and provide pointers for more information about individual components or problems.","title":"Application Deployment State of the Onion","track":2,"start_time":1397233800,"speaker":"Noah Kantrowitz","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/203\/"},{"description":"Blinking colored lights bring out the child in all of us. Color LED lighting technology is becoming more available and affordable. Layers of hardware, lighting protocols, and effects design can make doing anything more complex than blinking these lights tricky. Come learn about LEDs how to control them with Python, and about building real-time control of physical things.","title":"Blending art, technology, and light, Python for interactive and real time LED installations","track":3,"start_time":1397233800,"speaker":"Preston Holmes","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/233\/"},{"description":"Telecomix is an ad-hoc activist cluster that supports free communication around the world, most notably during the Arab Spring. This talk will tell stories of humans and machines, and reflect on lessons learned from 3 years of hands-on hacktivism. We'll explore similarities with the free software community. It follows up a 2011 Pycon lightning talk given shortly after Tahrir Square.","title":"Free Software, Free People","track":1,"start_time":1397236200,"speaker":"Pete Fein","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/214\/"},{"description":"The most important yet underappreciated parts of concurrent APIs are good constructs for fan-out (one thread spawns others) and fan-in (many threads join together). This talk will show examples of fan-in and fan-out. It will cover the successes and shortcomings of APIs that provide concurrency. Finally, we'll discuss how the async model of Tulip\/PEP3156 is the ultimate API. The future is bright!","title":"Fan-in and Fan-out: The crucial components of concurrency","track":2,"start_time":1397236200,"speaker":"Brett Slatkin","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/218\/"},{"description":"What does it take to make a Python sandbox that can run untrusted code? Learn some surprising language features and experience security challenges first-hand as we work through building a Python sandbox from scratch. You'll leave this talk with renewed appreciation for the dynamic nature of Python, some sneaky language tricks, and a solid background in classes of sandboxing security issues.","title":"Building and breaking a Python sandbox","track":3,"start_time":1397236200,"speaker":"Jessica McKellar","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/208\/"},{"description":"Python is so well-suited for processing and managing geographic data, I think they'll be best friends forever. In this talk, I'll introduce some of the best Python libraries to use with your geodata, and show you how treating GeoJSON like a Python dictionary can make cleaning and validating your data a breeze. I'll also discuss examples of using Python to add custom functionality to GIS software.","title":"Python + Geographic Data = BFFs","track":4,"start_time":1397236200,"speaker":"Mele Sax-Barnett","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/220\/"},{"description":"Live and direct from the PyCon stage learn how to connect your things to the internet! In this talk we\u00e2\u0080\u0099ll connect physical things and people to the internet. In this talk we will live code a tiny web server that interacts with the physical world via sensors, actuators, video, and audio. We will explore tools in the Python ecosystem that make this possible and show how they work together.","title":"Hello Physical World: A Crash Course on the Internet of Things","track":5,"start_time":1397236200,"speaker":"Katherine Scott","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/213\/"},{"start_time":1397238000,"end_time":1397241600,"title":"Lightning Talks"},{"start_time":1397201400,"end_time":1397205000,"title":"Breakfast"},{"start_time":1397205000,"end_time":1397206800,"title":"Lightning Talks"},{"start_time":1397206800,"end_time":1397209200,"title":"Keynote: Jessica McKellar"},{"start_time":1397209200,"end_time":1397211600,"title":"Keynote: Fernando P\u00c3\u00a9rez"},{"start_time":1397211600,"end_time":1397213400,"title":"Break"},{"description":"A simple Hello World! page, served via Django, passes though a surprising number of layers & components. For a newcomer to the language or the platform, this can be overwhelming at the start. Here I'll take you on a drive through Django's request-response cycle, focusing on using its layered model to understand what's going on and get things done.","title":"A Scenic Drive through the Django Request-Response Cycle","track":1,"start_time":1397213400,"speaker":"Dan Langer","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/166\/"},{"description":"Have you ever wanted to play video games while also contributing to science? In psychology experiments developed by myself and Peter Battaglia, participants are immersed in an interactive 3D world which is experimentally well-controlled, yet also extremely fun. This talk will explain how we created these game-like experiments in Python using the Panda3D video game engine.","title":"Games for Science: Creating interactive psychology experiments in Python with Panda3D","track":2,"start_time":1397213400,"speaker":"Jessica Hamrick, Peter Battaglia","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/183\/"},{"description":"Memory leaks in Python cannot be analyzed with traditional tools because Python uses reference counters. I will present tools specific to Python to help you to localize your memory leaks.","title":"Track memory leaks in Python","track":3,"start_time":1397213400,"speaker":"Victor Stinner","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/165\/"},{"description":"Docker is a tool for sandboxing entire application environments using Linux containers. Docker's feature set includes versioning, sharing etc. They are light-weight and fast, you can recreate a deployment environment in development or push your development containers to production. Imagine never having to worry about fragmentation of servers or syncing the versions of different libraries.","title":"Introduction to Docker","track":4,"start_time":1397213400,"speaker":"Amjith Ramanujam","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/209\/"},{"description":"You can create a web application with Flask in seven lines of code, and you can grow that app to thousands. How do you create reusable, shareable libraries? We'll use a simple but real extension I created (Flask-FeatureFlags) to look at the different ways you can make Flask awesome.","title":"Developing Flask Extensions","track":5,"start_time":1397213400,"speaker":"Rachel Sanders","end_time":1397215800,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/149\/"},{"description":"Django finally has built-in migrations, and they're a long way from the designs of South or django-evolution. Learn the key design decisions we made, ideas we discarded, and the unique treatment we have to give each of our four official database backends.","title":"Designing Django's Migrations","track":1,"start_time":1397215800,"speaker":"Andrew Godwin","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/161\/"},{"description":"One of the great features of Python is its machine learning capabilities. Scikit is a rich Python package which allows developers to create predictive apps. In this presentation, we will guess what type of music do Python programmers like to listen to, using Scikit and the k-nearest neighbor algorithm.","title":"Know Thy Neighbor: Scikit and the K-Nearest Neighbor Algorithm","track":2,"start_time":1397215800,"speaker":"Portia Burton","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/188\/"},{"description":"This talk will explore how garbage collection is implemented in CPython and PyPy. See how CPython deals reference counting's shortcomings with a special GC for cycle collection. Then dive into PyPy's sophisticated and high-performing GC implementations. The particularly thorny issue of finalizers in reference cycles will also be addressed.","title":"Garbage Collection in Python","track":3,"start_time":1397215800,"speaker":"Benjamin Peterson","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/153\/"},{"description":"Have you ever wished that you can write Python in the browser? Brython is an experimental Javascript library that enables you to leverage the elegance of Python on the client side. Novice programmers who are familiar with Javascript will learn about Brython, how Brython measures up against Javascript, and why getting client-side Python adopted as a mainstream tool is really difficult.","title":"Python in the Browser: Intro to Brython","track":4,"start_time":1397215800,"speaker":"Susan Tan","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/210\/"},{"description":"You might know what an API is. Maybe you've even implemented a handful of popular APIs out there, but you are thinking about building your own and don\u00e2\u0080\u0099t know where to start. This talk will show you how easy it is to build an API into your project using Python and Flask. We\u00e2\u0080\u0099ll also discuss best practices and design patterns for great APIs.","title":"So You Want to Build an API?","track":5,"start_time":1397215800,"speaker":"Megan Speir","end_time":1397218200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/172\/"},{"description":"Lots of talks and tutorials try to cover Django exhaustively, going over every component and feature. But not so many take a look at the bits that let Django be Django. In this talk, we'll see exactly what those bits -- some old, some new -- are, in a way that shows why it's still a solid and popular choice for web developers nearly nine years after its initial public release.","title":"Django: The good parts","track":1,"start_time":1397218200,"speaker":"James Bennett","end_time":1397220900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/231\/"},{"description":"Have you ever wondered which rapper is the most sexist? Come learn how to find out by scraping rapgenius and analyzing rap lyrics using Python and Beautiful Soup! There will be pictures of Lil' Jon.","title":"Analyzing Rap Lyrics with Python and Beautiful Soup","track":2,"start_time":1397218200,"speaker":"Julie Lavoie","end_time":1397220000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/179\/"},{"description":"Sometimes, the code you need just isn't available in Python, but someone's written some code in another language that solves your problem. What options do you have for interacting with this external code from within your program? We'll examine how to call external binaries, what happens behind the scenes at a systems level, and how these implementation details affect performance and memory usage. In the second part of the talk, we'll discuss the different options for more tightly integrating external code in the form of a C library for better performance and control.","title":"Subprocess to FFI: Memory, Performance, and Why You Shouldn't Shell Out","track":3,"start_time":1397218200,"speaker":"Christine Spang","end_time":1397220900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/190\/"},{"description":"How to make our Python web development workflow less painful and more predictable? By mixing a collection of tools and best practices for both back and front ends like Buildout, Grunt, Bower and Ansible to automate tasks.","title":"Upgrade your Web Development Toolchain","track":4,"start_time":1397218200,"speaker":"Blaise Laflamme","end_time":1397220000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/160\/"},{"description":"The language you speak determines the thoughts you can think. Thus, API designers (and that includes you, if you've ever coined a function) have a great duty, as language inventors, to expand the mental canvases of those who come after. We'll concretize that into 7 hallmarks of good APIs, pulling examples (and bloopers) from popular Python libraries.","title":"Designing Poetic APIs","track":5,"start_time":1397218200,"speaker":"Erik Rose","end_time":1397220900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/207\/"},{"track":1,"start_time":1397220000,"end_time":1397223600,"title":"Lunch"},{"track":2,"start_time":1397220000,"end_time":1397223600,"title":"Lunch"},{"track":1,"start_time":1397220900,"end_time":1397224500,"title":"Lunch"},{"track":2,"start_time":1397220900,"end_time":1397223600,"title":"Lunch"},{"track":3,"start_time":1397220900,"end_time":1397224500,"title":"Lunch"},{"description":"A few years of experiences writing RESTful APIs, especially my experiences working for Fireteam's online services. What worked, what did not work so well and about how to avoid making mistakes with REST.","title":"Modern Web Services, Lessons Learned and Why REST is not the Best","track":1,"start_time":1397223600,"speaker":"Armin Ronacher","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/221\/"},{"description":"If you've never written tests before, you probably know you *should*, but view the whole process as a bureaucratic paperwork nightmare to check off on your ready-to-ship checklist. This is the wrong way to approach testing. Tests are a solution to a problem that is important to you: does my code work? I'll show how Python tests are written, and why.","title":"Getting Started Testing","track":2,"start_time":1397223600,"speaker":"Ned Batchelder","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/150\/"},{"description":"Those web pages with shiny lock icons boasting that your data is safe because of \u00e2\u0080\u009c256 bit encryption\u00e2\u0080\u009d? They are lying. In times of mass surveillance and commercialized Internet crime you should know why that\u00e2\u0080\u0099s the case. This talk will give you an overview that will help you to assess your personal security more realistically and to make your applications as secure as possible against all odds.","title":"The Sorry State of SSL","track":3,"start_time":1397223600,"speaker":"Hynek Schlawack","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/144\/"},{"description":"This talk provides a broad-based introduction to SQLAlchemy Core library. It is focused on someone new to SQLAlchemy Core, who has experience with other database technologies such as Django or SQLAlchemy ORM. We'll cover the differences between the domain-centric models of those tools compared to the schema-centric model and how we can use that to deal with common and unusual data sources.","title":"Introduction to SQLAlchemy Core","track":1,"start_time":1397224500,"speaker":"Jason Myers","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/139\/"},{"description":"I'll walk you through Python's best tools for getting a grip on data: IPython Notebook and pandas. I'll show you how to read in data, clean it up, graph it, and draw some conclusions, using some open data about the number of cyclists on Montr\u00c3\u00a9al's bike paths as an example.","title":"Diving into Open Data with IPython Notebook & Pandas","track":2,"start_time":1397224500,"speaker":"Julia Evans","end_time":1397226900,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/148\/"},{"description":"Working with developers on schema migrations is a perennial challenge for DBAs and developers. Devs tend to like a set it and forget it tool. This talk discusses the strategies used to move from a pure SQL and shell migration system to using SQLAlchemy and alembic for maximum DBA and developer happiness.","title":"Sane schema migrations with Alembic and SQLAlchemy","track":1,"start_time":1397226900,"speaker":"Selena Deckelmann","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/142\/"},{"description":"This talk will introduce you to Push Notifications, a very powerful way for your Python service to communicate information to mobile devices. You will learn how Push Notifications work, their advantages and disadvantages and how you can implement them on your Python projects.","title":"REST is not enough: Using Push Notifications to better support your mobile clients","track":2,"start_time":1397226900,"speaker":"Juan Gomez","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/216\/"},{"description":"Unit testing is like public transit: everyone agrees it's a good thing for other people to do. It's easier to swallow when you see how unit testing improves not only the correctness of your code, but the design as well. I'll walk through a real-life case study where adding unit tests turned a pretty good module into an even better one: easier to understand, extend, and reuse.","title":"Unit Testing Makes Your Code Better","track":3,"start_time":1397226900,"speaker":"Greg Ward","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/212\/"},{"description":"Learn quick, easy, and lesser-known techniques to improve your website's security, protect against session hijacking, and defend against XSS and data injection attacks.","title":"Quick Wins for Better Website Security","track":4,"start_time":1397226900,"speaker":"Dan Callahan","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/225\/"},{"description":"Cloud computing offers some great opportunities for science, but most\r\ncloud computing platforms are I\/O and memory limited, and hence\r\nare poor matches for data-intensive computing. After 4 years of\r\nresearch software development we are now instrumenting and benchmarking\r\nour analysis pipelines; numbers, lessons learned, and future plans\r\nwill be discussed. Everything is open source.","title":"Data intensive biology in the cloud: instrumenting ALL the things","track":5,"start_time":1397226900,"speaker":"Titus Brown","end_time":1397229300,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/181\/"},{"description":"In this talk we'll illustrate a simple web application using SQLAlchemy, showing\r\noff the style of development that SQLAlchemy is most geared towards, the so-called\r\nfoundational style which provides for development and maintainance of custom \r\nconventions which then service the needs of the model declarations and use case\r\nimplementations.","title":"Building the App","track":1,"start_time":1397229300,"speaker":"mike bayer","end_time":1397232000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/187\/"},{"description":"Taba is a distributed metrics aggregator, similar in concept to statsd. Built with Python using Redis, gevent, and Cython, it currently handles over 6M events\/sec with strong consistency guarantees. This talk will present an overview of its design, and discuss the challenges and solutions encountered in the process of building a high throughput, low latency distributed service.","title":"Pushing Python: Building a High Throughput, Low Latency System","track":2,"start_time":1397229300,"speaker":"Kevin Ballard","end_time":1397231100,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/195\/"},{"description":"Python includes a powerful debugger, but using it well requires practice. Setting a break point and inspecting local variables is easy, but what else can you do? What if you need to set the breakpoint\r\nin one of your dependencies, or only fire it conditionally? How do you navigate calls, or change them? Join me for an in depth look at how you can better use PDB to debug and understand programs.","title":"In Depth PDB","track":3,"start_time":1397229300,"speaker":"Nathan Yergler","end_time":1397232000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/205\/"},{"description":"A brief overview of what multifactor authentication is, focusing particularly on possession factors, including what common options are available. One-time-passwords, an important concept many possession factor types, will also be discussed.","title":"Multi-factor Authentication - Possession Factors","track":4,"start_time":1397229300,"speaker":"Ying Li","end_time":1397231100,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/169\/"},{"description":"So, what happens when you lock a Python programmer in a secret vault containing 1.5 TBytes of C++ source code and no internet connection? Find out as I describe how I used Python as a secret weapon of discovery in an epic legal battle.","title":"Discovering Python","track":5,"start_time":1397229300,"speaker":"David Beazley","end_time":1397232000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/198\/"},{"track":1,"start_time":1397231100,"end_time":1397232900,"title":"Break"},{"track":2,"start_time":1397231100,"end_time":1397232900,"title":"Break"},{"track":1,"start_time":1397232000,"end_time":1397233800,"title":"Break"},{"track":2,"start_time":1397232000,"end_time":1397233800,"title":"Break"},{"track":3,"start_time":1397232000,"end_time":1397233800,"title":"Break"},{"description":"This talk covers the practical use of Python packaging tools. You'll see how to keep your system clean as an end user excited about installing a Python module from the web, the purpose of setup.py, how virtualenv makes life easier (and sometimes harder), what Ubuntu\/Debian tools can offer, and how to make a complex app easier for new contributors to run. It is heavy on stories and recommendations.","title":"Python packaging simplified, for end users, app developers, and open source contributors","track":1,"start_time":1397232900,"speaker":"Asheesh Laroia","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/219\/"},{"description":"This talk will explain how Software Carpentry has grown to run over a hundred training events a year, what we've learned along the way, and how you can do it too.","title":"Software Carpentry: Lessons Learned","track":2,"start_time":1397232900,"speaker":"Greg Wilson","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/174\/"},{"description":"The common wisdom is that Python is slow. And yet people run high performance\r\nsoftware on it. It's hard to make Python fast, and yet there are incredibly\r\nhigh performance Python VMs. This talk breaks down the facts and the myths\r\nof Python performance.","title":"Fast Python, Slow Python","track":1,"start_time":1397233800,"speaker":"Alex Gaynor","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/197\/"},{"description":"This talk will present multiple advanced techniques for Web functional testing. You will learn how to test a wide range of Web front-end components, such as CSS, visuals, responsive designs and user interactions \u00e2\u0080\u0094 all using Python. Various practical tips will also be presented to harness your functional tests in real project workflows.","title":"Advanced techniques for Web functional testing","track":2,"start_time":1397233800,"speaker":"Julien Phalip","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/199\/"},{"description":"Using Python and a minimal amount of hardware hacking, it's possible to build computer controlled helicopters you can fly around your living room for surprisingly small amounts of money. This talk will describe the steps you'll need to take to start the ball rolling towards Skynet using a $20 helicopter and an Arduino.","title":"Cheap Helicopters In My Living Room","track":3,"start_time":1397233800,"speaker":"Ned Jackson Lovely","end_time":1397236200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/162\/"},{"description":"In the last 18 months the Python packaging world has seen an explosion of activity. Learn what improvements are available now and what is on the horizon.","title":"What is coming in Python packaging","track":2,"start_time":1397236200,"speaker":"Noah Kantrowitz","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/204\/"},{"description":"Donald Knuth famously said that we should avoid optimization 97% of the time and focus on the critical 3%. How can we identify that 3%? How can we best focus our optimization efforts, and avoid the root of all evil that is premature optimization? This talk introduces key types of performance testing, and demonstrates how they can be paired with profiling techniques in a cycle of improvement.","title":"Performance Testing and Profiling: A Virtuous Cycle","track":3,"start_time":1397236200,"speaker":"Dan Crosta","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/228\/"},{"description":"It can be hard to focus on your love of coding when you are regularly battling invisible issues like insecurity, anxiety, and lack of confidence. This talk will identify invisible issues programmers struggle with, talk about their impact, discuss personal experiences dealing with them, and share some tools useful in fighting back.","title":"It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech","track":4,"start_time":1397236200,"speaker":"Julie Pagano","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/164\/"},{"description":"This talk documents the journey of a less than conventional robotics application in which python is used as the logical controller of an autonomous 20 foot blimp. The blimp's autopilot features, prolonged air time, large size, and smooth motion make it the ideal platform for aerial photography. Giving the blimp an onboard controller reduces the overall costs and requirements of the operation.","title":"Programming an Autonomous 20 Foot Blimp with Python","track":5,"start_time":1397236200,"speaker":"Scott Lobdell","end_time":1397238000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/194\/"},{"start_time":1397238000,"end_time":1397241600,"title":"Lightning Talks"},{"start_time":1397201400,"end_time":1397205000,"title":"Breakfast"},{"start_time":1397205000,"end_time":1397206800,"title":"Lightning Talks"},{"start_time":1397206800,"end_time":1397208000,"title":"Keynote: Van Lindberg"},{"start_time":1397208000,"end_time":1397210400,"title":"Keynote: Guido van Rossum"},{"start_time":1397210400,"end_time":1397221800,"title":"Poster Sessions (10:00\u00e2\u0080\u00931:10) \/ Lunch (12:00\u00e2\u0080\u00931:10)"},{"description":"To many developers the database is a black box. You expect to be able to put data into your database, have it to stay there, and get it out when you query it... hopefully in a performant manner. When its not performant enough the two options are usually add some indexes or throw some hardware at it. We'll walk through a bit of a clearer guide of how you can understand and manage DB performance.","title":"Postgres Performance for Humans","track":1,"start_time":1397221800,"speaker":"Craig Kerstiens","end_time":1397224200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/141\/"},{"description":"This is a talk about how to make junior and new engineers into independent and productive members of your engineering team faster and cheaper. We will focus on python specific resources and libraries that will help you create a simple but effective on boarding program, and talk about case studies of companies that have had success using these techniques.","title":"Technical on-boarding, training, and mentoring.","track":2,"start_time":1397221800,"speaker":"Kate Heddleston, Nicole Zuckerman","end_time":1397224200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/223\/"},{"description":"Guaranteed behavior makes software modules useful. Software guarantees are commonly incomplete with good reason: promises that are narrow and few are most easily kept across wide ranges of platforms and long times. We define the space of a module\u00e2\u0080\u0099s allowed behavior to be its \u00e2\u0080\u009cbehavioral envelope\u00e2\u0080\u009d and show that thinking and speaking in terms of envelopes eases maintenance and makes APIs delightful.","title":"Deliver Your Software In An Envelope","track":3,"start_time":1397221800,"speaker":"Augie Fackler, Nathaniel Manista","end_time":1397224200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/151\/"},{"description":"After half a lifetime undercover as a man I transitioned from male to female while staying involved in the Python community. This talk discusses that transition and explores how I found life in Python as a woman different from my former life as a man.","title":"Farewell and Welcome Home: Python in Two Genders","track":4,"start_time":1397221800,"speaker":"Naomi Ceder","end_time":1397224200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/182\/"},{"description":"Indie game developer Luke Miller presents a brief overview on making point-and-click adventure games using the open source pyvida gaming engine and uses his commercially released gay-themed adventure game My Ex-Boyfriend the Space Tyrant! as a tutorial on developing, packaging, releasing and selling a python game for Windows, Mac and Linux.","title":"My big gay adventure. Making, releasing and selling an indie game made in python.","track":5,"start_time":1397221800,"speaker":"Luke Miller","end_time":1397224200,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/159\/"},{"description":"This talk will outline and demonstrate usage of PostgreSQL for data storage and processing scenarios where new common wisdom would usually turn to NoSQL databases for scalability reasons. It demonstrates both NoSQL style usage and techniques using more traditional relational storage models with required adjustments for infinite scalability.","title":"PostgreSQL is Web Scale (Really :) )","track":1,"start_time":1397224200,"speaker":"Hannu Krosing","end_time":1397226600,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/222\/"},{"description":"Curious about being involved in open source, but haven't had the time to make the plunge?\r\nInvolved with open source but a bit hazy on the way it all works?\r\nOpen source legend Andrew Tridgell runs an annual week-long post-graduate primer course teaching Free and Open Source Software Development . This talk will convey as much of this course as possible in the time available.","title":"Hitchhikers Guide to Participating in Open Source","track":2,"start_time":1397224200,"speaker":"Elena Williams","end_time":1397226600,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/196\/"},{"description":"Code executes. Docs just sit there looking pretty. Now it's time to blur that boundary! Tools like the IPython Notebook, Sphinx, dexy, and old-fashioned doctests blend code with docs, making package docs, educational materials, and system-level docs more engaging, relevant, and trustworthy.","title":"See Docs Run. Run, Docs, Run!","track":3,"start_time":1397224200,"speaker":"Catherine Devlin","end_time":1397226600,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/167\/"},{"description":"Since 2010, the GNOME Foundation\u00e2\u0080\u0099s Outreach Program for Women has provided 130 women with an opportunity to participate in remote internships with 23 Free Software organizations. This talk will cover the history of the program, what makes it successful, how the same strategies can be used for engaging all new contributors, and what other initiatives help increase diversity in Free Software.","title":"Outreach Program for Women: Lessons in Collaboration","track":4,"start_time":1397224200,"speaker":"Marina Zhurakhinskaya","end_time":1397226600,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/227\/"},{"description":"Games, application with rich graphic for mobile platforms? Yes! You can do it for Android, iOS and other platforms with using Python. In this talk I speak about tools you may use for developing applications with using OpenGL ES for different platforms, the ways and concepts which are used in those tools, some tips and tricks you may use to make a cross-platform game with Python for fun and profit.","title":"2D\/3D graphics with Python on mobile platforms","track":5,"start_time":1397224200,"speaker":"Niko Skrypnik","end_time":1397226600,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/158\/"},{"description":"Is your web app ready for a global audience? Internationalizing your codebase with gettext (bit.ly\/pyconi18n) might just be the simpler part of the puzzle. It\u00e2\u0080\u0099s hard to maintain translations in a fast paced deployment environment without constant manual intervention. This talk covers tools and strategies you can adopt to automate your localization process and ensure high translation coverage.","title":"Localization Revisited","track":1,"start_time":1397226600,"speaker":"Ruchi Varshney","end_time":1397229000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/206\/"},{"description":"Got some code that you've written that would be useful to others, but actually releasing it feels like too much new stuff to figure out? Releasing software does take some work, but this talk will take you step-by-step through the process with specific recommendations and tools. We'll cover preparing your code for release, packaging it, releasing it, and maintaining it over time.","title":"Set your code free: releasing and maintaining an open-source Python project","track":2,"start_time":1397226600,"speaker":"Carl Meyer","end_time":1397229000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/232\/"},{"description":"It was once quite painful to build your Python app as a single .exe file. Support forums filled with lamentations as users struggled with primitive tools. But today, two separate tools exist for compiling your Python to real machine language! Come learn about how one of the biggest problems in commercial and enterprise software has now been solved and how you can benefit from this achievement.","title":"The Day of the EXE Is Upon Us","track":3,"start_time":1397226600,"speaker":"Brandon Rhodes","end_time":1397229000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/201\/"},{"description":"Software engineering researchers and hackers don't talk to each other as much as they ought to. This talk aims to bridge that gap, teach practitioners about what research is out there, and spark a citizen science movement in software engineering. I'll explain how to study your own projects and get academics to pay attention. Together, we can learn how to develop better software.","title":"Software Engineering Research for Hackers: Bridging the Two Solitudes","track":4,"start_time":1397226600,"speaker":"Tavish Armstrong","end_time":1397229000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/226\/"},{"description":"As U. of California campuses must reach Zero-Waste by 2020, a Smart Dumpster was designed to increase efficiency, study waste patterns, and improve refuse reduction. Using Python, a prototype has been installed into operations with tentative success since July 2013. Demonstrating real-time data reporting, the talk will focus on the success, roadblocks and campus plans for the Smart Dumpster.","title":"Smart Dumpster: Employing Python to Report Real-Time Resource Fill to Operation Managers","track":5,"start_time":1397226600,"speaker":"Bradley Angell","end_time":1397229000,"link":"https:\/\/us.pycon.org\/\/2014\/schedule\/presentation\/177\/"},{"start_time":1397229000,"end_time":1397232000,"title":"Closing Address"},{"start_time":1397232000,"end_time":1397235600,"title":"Lightning Talks"}]
from lxml import html
import urllib
import ujson
from dateutil.parser import parse as date_parse
def parse_talk_node(item):
if item.text.strip() == '' and len(item.getchildren()) == 0:
return None
meta = {}
day = item.xpath('./ancestor::table/preceding-sibling::h3')[0].text
row = item.getparent()
meta["start_time"] = date_parse("%s %s" % (day, row.getchildren()[0].text))
row_span = int(item.attrib.get('rowspan', 1))
end_row = row.xpath('./following-sibling::tr[%d]' % row_span)[0]
meta["end_time"] = date_parse("%s %s" % (day, end_row.getchildren()[0].text))
classes = item.attrib.get('class')
if 'slot-talk' in classes:
link = item.xpath("./span[1]/a")[0]
meta['title'] = link.text.strip()
meta['description'] = link.attrib.get('title', '').strip()
meta['link'] = "https://us.pycon.org/" + link.attrib.get('href', '')
meta['speaker'] = item.xpath('./span[2]')[0].text.strip()
else:
meta['title'] = item.text.strip()
col_span = int(item.attrib.get('colspan', 1))
if col_span == 1:
index = item.getparent().index(item)
meta['track'] = index
return meta
if __name__ == "__main__":
html_raw = urllib.urlopen("https://us.pycon.org/2014/schedule/talks/").read()
html_dom = html.fromstring(html_raw)
talks = html_dom.xpath('.//tr/td[contains(@class,"slot")]')
data = filter(None, map(parse_talk_node, talks))
with open("schedule.json", "w+") as fd:
ujson.dump(data, fd)
@Jasiri-w

Copy link
Copy Markdown

Hmm?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment