Last active
October 5, 2022 21:56
-
-
Save termie/621c842122b5f51e1a662f046f922b54 to your computer and use it in GitHub Desktop.
json to ical
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BEGIN:VCALENDAR | |
VERSION:2.0 | |
PRODID:-//Pycon 2018// | |
BEGIN:VEVENT | |
SUMMARY:Complexity Science | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:Complexity Science is an approach to modeling systems using to | |
ols from discrete mathematics and computer science\, including networks\, | |
cellular automata\, and agent-based models. It has applications in many | |
areas of natural and social science.\n\nPython is a particularly good lang | |
uage for exploring and implementing models of complex systems. In this t | |
utorial\, we present material from the draft second edition of *Think Comp | |
lexity*\, and from a class we teach at Olin College. We will work with r | |
andom networks using NetworkX\, with cellular automata using NumPy\, and w | |
e will implement simple agent-based models.\n\nAllen Downey | |
LOCATION:Room 15 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Standardized Data Science: The Team Data Science Data Process - wi | |
th a practical\, example in Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T103000 | |
DESCRIPTION:In dealing with hundreds of Data Science teams around the worl | |
d\, our team has had a consistent request: A proven\, standardized methodo | |
logy for Data Science that folds into standard IT practices (such as SDLC | |
’s and DevOps) and governance. The Team Data Science Process (TDSP) is a | |
robust\, yet flexible\, fully-documented and defined process you can use | |
for consistent\, successful Data Science projects. The TDSP takes into acc | |
ount all phases\, roles\, and skills in a solution. Buck Woody\, an Applie | |
d Data Scientist from Microsoft Research and AI\, will explain how the TDS | |
P works\, provide you resources to use in your organization\, and walk you | |
through a practical example using Python.\n\nBuck Woody | |
LOCATION:Room 25C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Managing Dependencies & Runtime Security | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T103000 | |
DESCRIPTION:In this workshop we’ll explore working with complex dependen | |
cy trees in Python\, learn about how to quickly configure virtual environm | |
ents\, as well as how you can implement zero-discipline runtime security s | |
canning for your applications.\n\nActiveState’s ActivePython distributio | |
n and the newly launched ActiveState platform provide solutions to these p | |
roblems in simple and powerful ways. During this workshop\, we’ll walk t | |
hrough:\n\n- How you can use the ActivePython distribution to have a pre-c | |
onfigured\, pre-built environment for many common development tasks and av | |
oid dealing with complex build steps for dependencies.\n- How to configure | |
a virtual environment for your project\n- How to integrate ActiveState’ | |
s runtime interpreter plugin to either ActivePython or your existing Pytho | |
n distribution to achieve zero-discipline security reporting\n- A demonstr | |
ation of how the new ActiveState platform sets you up to solve these probl | |
ems and more in a simple\, powerful manner"\n\nPete Garcin | |
LOCATION:Room 13 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Making Art with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:In this workshop\, we’ll learn how to make visual art using | |
Processing.py\, the Python mode for a powerful visual language library cal | |
led Processing.\n\nThis tutorial walks through Processing.py from the grou | |
nd up––from initial setup & foundational concepts\, to the library's c | |
ore functions\, as well as its more advanced features. Topics covered incl | |
ude the coordinate system\, shape primitives\, lines\, stroke\, fill\, col | |
or\, mapping\, events\, and transforms. At the end\, we'll break out of th | |
e tutorial format and give free reign for attendees to create\, tinker\, a | |
nd experiment freely with the framework.\n\nYou’ll walk away with an art | |
piece of your own original design\, as well as a newfound appreciation fo | |
r Python as a medium for creative expression. \n\nEmily Xie | |
LOCATION:Room 16 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:A Python-flavored Introduction to Containers And Kubernetes | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:Containers have more or less taken over the world of applicati | |
on\, web APIs\, mobile endpoints and other forms of deployment. They have | |
become the currency\, the "table stakes" and de-facto application deployme | |
nt unit. Their raise to the fore has brought about a whole host of use cas | |
es which weren't practical or accessible in the world of "classic" paradig | |
ms of infrastructure and virtualization. Containers have also brought appl | |
ication deployment closer and more accessible to developers. \n\nBut as mo | |
re use cases\, deployment styles and exponential adoption of containers wa | |
s ongoing\, a new set of problems began to surface: how do you manage the | |
ever growing number of containers in a deployment? How do you make sure co | |
ntainers have the right resources\, deployed to the right machine\, runnin | |
g with the correct parameters\, how do you scale in and out without disrup | |
tion? How do you make sure in a fleet of X containers that they’re all r | |
unning and in healthy state? Enter Kubernetes.\n\nInitially developed inte | |
rnally by Google to replace their own complex container orchestration and | |
management framework. It had to meet all the stringent standards and mind- | |
boggling scale that Google operates on\, but from the get-go an effort was | |
made to make the learning curve and developer experience as approachable | |
as possible. At certain point the creators made the case to Google to rele | |
ase kubernetes to the open source community -- a crucial decision that has | |
helped “k8s” (as it’s commonly referred to as) reach rock star leve | |
ls of fame and mind share not just in the FOSS community but also across i | |
ndustries and businesses from small operations to gigantic multinational c | |
orporations with thousands of deployments.\n\n\nRuben Orduz\, Nolan Bruba | |
ker | |
LOCATION:Room 20 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Network Analysis Made Simple: Part I | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:Have you ever wondered about how those data scientists at Face | |
book and LinkedIn make friend recommendations? Or how epidemiologists trac | |
k down patient zero in an outbreak? If so\, then this tutorial is for you. | |
In this tutorial\, which is Part I of a two-part series\, we will use a v | |
ariety of datasets to help you understand the fundamentals of network thin | |
king\, with a particular focus on constructing\, summarizing\, and visuali | |
zing complex networks. With this tutorial\, you will be well equipped to e | |
xplore advanced topics (dynamics on graphs\, evolving graphs\, and network | |
propagation methods) in Part II.\n\nEric Ma\, Mridul Seth | |
LOCATION:Room 19 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Build-a-GitHub-Bot Workshop | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:GitHub provides a great platform for collaborating. You can ta | |
ke it to the next level by creating custom GitHub bots. By delegating some | |
of the chores to a bot\, you get to spend more time developing your proje | |
ct and collaborating with others.\n\nLearn how to automate your workflow b | |
y building a personal GitHub assistant for your own project. We'll use lib | |
raries called `gidgethub` and `aiohttp` to write a GitHub bot that does th | |
e following:\n\n- Greet the person who created an issue in your project. \ | |
n\n- Say thanks when a pull request has been closed.\n\n- Apply a label to | |
issues or pull requests.\n\n- Gives a thumbs up reaction to comments **yo | |
u** made. (becoming your own personal cheer squad).\n \nThe best part is\, | |
you get to do all of the above using Python 3.6! F-strings included!\n\n\ | |
n\nMariatta Wijaya | |
LOCATION:Room 16 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Build a Search Engine with Python + Elasticsearch | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:One of the most common actions that we take when visiting any | |
website is search. A common service that powers search for many sites is E | |
lasticsearch - but what makes it so powerful? What can you do with Elasti | |
csearch that you can’t with a regular database?\n\nThis tutorial starts | |
with an introduction to Elasticsearch architecture\, including what makes | |
it great for search and not so great for other use cases. We will then bui | |
ld an application together with a search engine powered by Elasticsearch. | |
We will also discuss how to optimize search queries and scale as the volum | |
e of data increases.\n\nJulie Qiu | |
LOCATION:Room 21 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Down the rabbit hole. A 101 on reproducible workflows with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:There has been a massive interest in reproducible research / d | |
ata\nanalysis pipelines over the last few years.\nBut... how can I ensure | |
that what I produce as a Python\nuser is reproducible?\nIn this tutorial w | |
e'll be taking you on a journey down the rabbit hole\nof reproducibility.\ | |
nWe'll be taking a step by step approach to reproducible scientific develo | |
pment\nin Python.\nThis means you get a crash course on version control\, | |
execution environments\, testing\,\nand continuous integration. And a guid | |
e on how to integrate all of these in your\nsoftware projects.\nBy the end | |
of the course we hope you will have the necessary tools to make your\nPyt | |
hon workflows reproducible no matter if you're starting a brand new projec | |
t\nor if this is ready to be shared with the world.\n\nTania Sanchez Monr | |
oy | |
LOCATION:Room 09 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Code Your Heart Out: Beginning Python for Human People with Feelin | |
gs | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:This tutorial is for people who are __brand new to Python__. I | |
t's for people with curioisty to feed\, anxiety to overcome\, and worlds t | |
o change. It's for people named Edna. (And others not named Edna.)\n\nDuri | |
ng this tutorial you'll be encouraged to __bring your whole self to learni | |
ng__. We'll start with the very basics of Python\, keeping your fingers on | |
the keyboard to gain as much practice as possible. Between strings\, func | |
tions\, and other fun Python-y things\, we'll discuss learning deeply\, __ | |
nourishing our brains__\, and boosting happiness with science.\n\nNo prior | |
experience required\; come just as you are. __This is about being a whole | |
person__. It's about learning Python\, because Python is really cool. It' | |
s also about staying afloat. Being productive. Focusing. It's about findin | |
g joy in the error codes.\n\nCome play. It'll be awesome.\n\nMelanie Crutc | |
hfield | |
LOCATION:Room 10 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Lights Camera Action! Scrape\, explore\, and model to predict Osca | |
r winners & box office hits | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:Using Jupyter notebooks\, HTTP requests\, BeautifulSoup\, NumP | |
y\, Pandas\, scikit learn\, and matplotlib\, you’ll predict whether a mo | |
vie is likely to [win an Oscar](http://oscarpredictor.github.io/) or be a | |
box office hit. We’ll step through the creation of an effective dataset: | |
asking a question your data can answer\, writing a web scraper\, and answ | |
ering those questions using nothing but Python libraries and data from the | |
Internet. \n\nDeborah Hanus\, Patricia Hanus\, Sebastian Hanus\, Veronica | |
Hanus | |
LOCATION:Room 15 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Foundations of Numerical Computing in Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:Python is one of the world's most popular programming language | |
s for numerical\ncomputing. In areas of application like physical simulati | |
on\, signal processing\,\npredictive analytics\, and more\, engineers and | |
data scientists increasingly use\nPython as their primary tool for working | |
with numerical large-scale data.\n\nDespite this diversity of application | |
domains\, almost all numerical programming\nin Python builds upon a small | |
foundation of libraries. In particular\, the\n`numpy.ndarray` is the core | |
data structure for the entire PyData ecosystem\, and\nthe `numpy` library | |
provides many of the foundational algorithms used to power\nmore domain-s | |
pecific libraries.\n\nThe goal of this tutorial is to provide an introduct | |
ion to numpy -- how it\nworks\, how it's used\, and what problems it aims | |
to solve. In particular\, we\nwill focus on building up students' mental m | |
odel of how numpy works and how\n**idiomatic** usage of numpy allows us to | |
implement algorithms much more\nefficiently than is possible in pure Pyth | |
on.\n\n\nScott Sanderson | |
LOCATION:Room 20 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Intro to Spatial Analysis and Maps with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:In this tutorial\, we will introduce Python as a spatial probl | |
em solving and data visualization tool. To demonstrate the power of Python | |
for spatial analysis\, we will solve a spatial problem and make a beautif | |
ul map of our results. Along the way\, we will discuss considerations when | |
dealing with spatial data and the wide range of Python tools available fo | |
r spatial analysis.\n\nChristy Heaton | |
LOCATION:Room 21 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:API-Driven Django | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:As the web continues to evolve\, the demand for data-driven ba | |
ckends matched with rich frontend experiences grows every day. Django come | |
s with a robust templating system and rendering engine\, but more and more | |
web applications using Django are just focusing on it’s API abilities.\ | |
n\nWhat if we could have the best of both worlds? What if we could use Dja | |
ngo and django-rest-framework to write views that let us prototype quickly | |
using the Django templating system\, and have those same views return API | |
responses to rich clients?\n\nIn this tutorial\, we’ll build a sample d | |
ata collection and display web application\, taking advantage of the ways | |
Django and django-rest-framework work together. The end result will be a w | |
eb application you could adapt for many kinds of data collection needs\, a | |
nd you’ll come away knowing how to get a rich API and a frontend prototy | |
pe out of just one Django view. \n\n\nPhilip James | |
LOCATION:Room 10 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Introduction to TDD with Django | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:Over the past few years\, automated software testing has moved | |
from being a niche interest to being the default assumption. This tutori | |
al is an introduction to Test-Driven Development (TDD) for the world of we | |
b development in Python using the Django framework.\n\nThe tutorial is sui | |
table for people who are new to either testing\, or Django\, or both\, alt | |
hough some basic working knowledge of Python syntax (or programming in ano | |
ther language) is assumed.\n\nLearn about:\n- Unit testing and Functional | |
testing\n- the Selenium browser automation tool\n- Python's unittest stand | |
ard library module\n- Django models\, views and templates\n- testing front | |
-end and back-end code\n- refactoring\, using tests \n- the unit-test/code | |
cycle\, or Red-Green-Refactor\, TDD workflow\n- and the Testing Goat\, Py | |
thon's unofficial mascot for testing!\n\nCome prepared! You'll need a Pyt | |
hon 3.6 virtualenv with Django and Selenium installed. Detailed instructi | |
ons are provided [here](https://www.obeythetestinggoat.com/book/pre-requis | |
ite-installations.html).\n\n\nHarry Percival | |
LOCATION:Room 09 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Introduction to Python for Data Science | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T122000 | |
DESCRIPTION:This tutorial introduces users to Python for data science. Fro | |
m data cleaning to model building\, we will work through a series of short | |
examples together using some real-world health inspection data. Attendees | |
will have their hands on the keyboard\, using the Python standard library | |
and pandas to clean data and scikit-learn to build some models.\n\nSkippe | |
r Seabold | |
LOCATION:Room 22 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Going Serverless with OpenFaaS\, Kubernetes\, and Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:OpenFaaS (Functions as a Service) is a framework for building | |
serverless\, event-driven functions with Docker and Kubernetes. \n\nIn thi | |
s tutorial\, you'll learn how to build and deploy a full-stack application | |
that uses Flask (client-facing app) along with OpenFaaS to handle backgro | |
und processes.\n\nMichael Herman | |
LOCATION:Room 22 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Web Applications\, A to Z | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T122000 | |
DESCRIPTION:Modern web applications have gotten complicated -- backend log | |
ic\, front-end logic\, storage and deployment options abound.\n\nThis tuto | |
rial will take a tour of all the pieces that go into making a web applicat | |
ion\, and show how they all fit together -- using specific choices\, speci | |
fic examples and a lot of hands-on programming\, to give participants a ch | |
ance to actually write a web applications: all the parts. \n\nWe will use | |
some external third-party services\, but care is taken to fit into the fr | |
ee tier.\n\n\nMoshe Zadka | |
LOCATION:Room 19 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Data science and Engineering at Shopify | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T090000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T103000 | |
DESCRIPTION:Shopify’s workshop will be a series of two 45 minute tech ta | |
lks on our use of Python and its ability to make commerce better for every | |
one. Shopify is the leading cloud-based\, multi-channel commerce platform | |
where entrepreneurs can design\, set up\, and manage their stores across m | |
ultiple sales channels. With a decade worth of data\, we are able to build | |
products using Python that help our entrepreneurs run their businesses ev | |
eryday. We'll hear about how Python is particularly useful when it comes t | |
o understanding our user base by sifting through tons of data from Franço | |
ise Provencher and about how PySpark can be used to reliably process data | |
to feed reports\, dashboards\, and products from Chris Fournier.\n\nExcite | |
d about what you learned and want to continue the conversation\, visit our | |
booth in the expo hall!\n\nFrançoise Provencher\, Chris Fournier | |
LOCATION:Room 23 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:STEAM Workshops using Jupyter Notebooks\, JupyterHub\, and Binder | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T102000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T105000 | |
DESCRIPTION:Middle School and High School students can learn by doing. Jup | |
yter Notebooks and the rich Python ecosystem with libraries on a variety o | |
f topics can engage many learners of the sciences and humanities. Interact | |
ive content\, using Jupyter Widgets and visualization libraries\, put the | |
student in charge of manipulating content and extending their learning. Gi | |
ving students engaging content in familiar subjects encourages them to dev | |
elop and use computational skills to build upon their interests.\n\nOne di | |
fficulty of teaching workshops is access to computers and the ability to i | |
nstall software on those systems. This talk will demonstrate how a worksho | |
p organizer or teacher can deploy JupyterHub easily for a class using the | |
Zero to JupyterHub Guide\, Kubernetes\, and Cloud Services. Even if studen | |
ts only have access to smartphones\, tablets\, or shared computers\, a wor | |
kshop can be held using Binder which allows a notebook environment to be s | |
erved at the click of a button to any modern web browser.\n\nCarol Willing | |
LOCATION:Room 25A\, Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:How we designed an inclusivity-first conference on a shoestring bu | |
dget and short timeline | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T112000 | |
DESCRIPTION:New conferences rarely have resources to run the sort of outre | |
ach and inclusion programs that big conferences have. It’s hard to guess | |
how much money you’ll have to spend\, how many attendees you’ll have\ | |
, and what your new community will look like. With so many things to worry | |
about\, it’s no surprise that most events don’t prioritise outreach u | |
ntil they’ve got a few years under their belt\, if at all.\n\nIt doesn | |
’t have to be this way\, and it can even be easier to build a new event | |
around outreach and inclusion than it is to build it in later on!\n\nThis | |
talk shares the story of North Bay Python’s inaugural conference\, which | |
we planned in under 6 months\, ran on a $40\,000 budget\, and built a wel | |
coming community to make it real. We made inclusivity a founding principle | |
and did so without compromising our speaker lineup while still attracting | |
great sponsorship and hosted an event that almost every attendee wants to | |
return to.\n\nIn this talk\, we’re going to share with you how we built | |
a conference\, from the ground up\, to be as inclusive as we could make i | |
t. We’ll touch on early organisation\, marketing\, and on-the ground log | |
istics. Throughout the talk\, you’ll learn:\n\n* How we designed a budge | |
t that let us prioritise outreach and inclusion activities\n* How we built | |
the community that we wanted before the conference even started\n* How we | |
ran an event that proved that we meant everything we said\n\nYou too can | |
host a new conference with a great lineup on a shoestring budget and short | |
timeline\, and you can do it while being inclusive\, welcoming\, and putt | |
ing attendee safety first. Find out how you can have your cake\, eat it\, | |
and still have lots to share with your new community.\n\n\nChristopher Neu | |
gebauer\, Josh Simmons\, Sam Kitajima-Kimbrel | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Visualizing Algorithms with Python and Programmable LEDs | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T112000 | |
DESCRIPTION:Recently\, a new LED strip specification\, APA102\, has been r | |
eleased which allows these strips to be driven by a general purpose CPU in | |
stead of a dedicated microcontroller. This allows us the luxury of control | |
ling them with Python!\n\nI'll teach you about how to get the the hardware | |
\, how to think about programming for lights and how to build anything fro | |
m a psychedelic art installation to home lighting to an educational tool. | |
\n\nProgramming with lights is awesome because you can SEE bugs with your | |
eyes. I think the use of these LED's have great potential as a teaching to | |
ol because of the immediacy of the feedback.\n\nLIVE hardware demos! See | |
Quicksort in brilliant colors!\n\nChristopher Beacham / Lady Red | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Coding through Adversity | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T112000 | |
DESCRIPTION:In 2017\, I was released from prison after serving 17 years. O | |
ne of the most transformational experiences I had while incarcerated was l | |
earning to code\, through a pioneering new program called Code.7370 — th | |
e first coding curriculum in a United States prison.\nIn this talk\, I’d | |
like to share my experiences learning to code in prison and getting a sof | |
tware engineering job after my release\, with the goals of:\nInspiring new | |
programmers to stick with it and be confident in their abilities\nInspiri | |
ng educators to think about how to support new coders in a broad range of | |
learning environments (there’s no internet in prison!)\nInspiring everyo | |
ne to think about the potential for rehabilitation in prison in a new way\ | |
nMy story:\nMy first computer was the Commodore 64. I can still remember w | |
riting in Basic when you had to number the lines of code yourself and save | |
everything onto cassette drives. Once the Atari 2600 came on the scene\, | |
I traded in my keyboard for a joystick and lost myself in each successive | |
release. From Intellivision to Colecovision and from Nintendo to Playstati | |
on\, I immersed myself to test my skill and lose myself in these magical d | |
igital universes.\nAs I left my teen years behind\, I discovered new ways | |
of exciting and losing myself in a sea of alcoholism and drug addiction. A | |
s Y2K came and went\, American Online and Motorola flip phones were about | |
the hottest thing going and I began dealing drugs to support my reckless l | |
ifestyle. This decision would lead me to taking a friend’s life over a s | |
ix pound suitcase of marijuana. It was the worst decision I’ve ever made | |
in my life and would cost me the next 17 years in prison.\nWhile I was in | |
prison\, I sat on the sidelines and watched as the world of technology wa | |
s passing me by. I spent over a decade in prison with no access to compute | |
rs\, the internet\, or email. The only glimmers I saw were from commercial | |
s on TV and my subscription to Wired magazine.\nThat was until I was accep | |
ted to The Last Mile\, an entrepreneurial program at San Quentin State Pri | |
son. We read books by authors like Guy Kawasaki\, Reid Hoffman\, and Andy | |
Smith. We also learned to develop business plans for our own entrepreneuri | |
al ideas that involved 3 components\, 1) something we were passionate abou | |
t 2) something that involved technology 3) something with a social cause. | |
My idea was for an online life coaching platform called Fitness Monkey tha | |
t would empower addiction recovery through physical fitness.\nIn 2014\, th | |
e door to technology was finally opened. The Last Mile started the Code.73 | |
70 program where I was accepted and began learning front-end web developme | |
nt. With every line of HTML\, CSS\, and JavaScript I wrote\, I fell in lov | |
e with coding for its ability to solve problems and create and design solu | |
tions that could enhance people’s lives.\nI carried a coding book with m | |
e everywhere I went and my love for coding would propel me to the head of | |
the class. I begin doing breakout sessions with my classmates on coding ch | |
allenges assigned to us by Hack Reactor\, a dev bootcamp in San Francisco. | |
The first class was such a success\, they started a Track 2 that taught a | |
dvanced CSS and went into depth on data structures and algorithms. Later\, | |
we began delving into full-stack development with Angular\, Node\, and Wo | |
rdPress.\nWith so many qualified inside coders\, The Last Mile partnered w | |
ith the Prison Industry Authority to open The Last Mile Works\, a dev shop | |
inside the walls of San Quentin. We began developing projects for outside | |
companies like Airbnb and the Coalition for Public Safety. As well as\, e | |
arning a wage that would provide us with a savings account upon our releas | |
e to help transition back into society. I was building a resume and gainin | |
g real world experience while incarcerated that would enable me to find em | |
ployment with The Last Mile upon my release.\nOn May 4\, 2017\, I was rele | |
ased from prison after serving a total of 17 years. I did everything in my | |
power to make sure that this time wasn’t wasted. I was hired for a paid | |
internship with The Last Mile as a Web Developer to build a learning mana | |
gement system that would package the coding program at San Quentin into a | |
piece of software that could be distributed to other prisons throughout Ca | |
lifornia and eventually the entire country. This internship also included | |
our application to Y-Combinator where we pitched our project to Michael Se | |
ibel\, the CEO and his team of VC’s. \nWe finished the project and it | |
’s currently being tested in San Quentin and two different Women’s pri | |
sons. As my internship drew to an end\, I began to reach out and see what | |
other opportunities would be available to someone with my experience. I w | |
ent through a 4 hour interview process with the entire engineering team at | |
FANDOM. I’m not going to say it was as difficult as the parole board\, | |
but these guys put me through my paces and in the end offered my a 90 day | |
internship. Here was my chance!\nWhen my internship began\, I was given qu | |
ite a few tasks that those in the industry call pixel pushing. Design twea | |
ks and CSS fixes. All of the cards on the project management board were la | |
beled 1-5 on complexity. For the first few weeks\, all of my cards were on | |
es. However\, with each successive week\, I became more familiar with the | |
code base and started to reach for some of the more difficult assignments. | |
I believe one of my strengths was being able to admit when I had no clue | |
what I was doing and courage to ask for help. \nMy time at FANDOM was an a | |
mazing experience in learning how to collaborate on an international team | |
that spans eight different countries. I learned how to effectively communi | |
cate with different departments within the office in San Francisco. And\, | |
one of the most amazing parts was getting to tell my story to the entire c | |
ompany at the all hands meeting. Now\, I was not only the ‘old’ intern | |
\, but someone who had persevered through adversity and was willing to sha | |
re his truth of committing a horrible crime\, but also of earning a colleg | |
e degree\, running marathons\, developing business ideas\, and learning to | |
code.\nAll of the work paid off this past December\, when I was offered a | |
full-time position as a Software Engineer for FANDOM. One of my biggest f | |
ears was what would life be like for me once I was released from prison. T | |
he answer is nothing short of incredible. The Last Mile’s mantra is ‘B | |
elieve in the Process’ and there were times when I wasn’t even quite s | |
ure what the process was\, but I believed anyway. For every step I took le | |
arning and growing\, more and more opportunities opened up for me. I found | |
great freedom in defaulting to yes.\n\n\nChris Schuhmacher | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Mu - How to Make a Kids' Code Editor | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T112000 | |
DESCRIPTION:[The Raspberry Pi Foundation][1] receives feedback about the d | |
ifficulties beginner programmers encounter when learning Python from thous | |
ands of volunteer mentors at after-school CodeClubs and thousands of teach | |
ers from around the world.\n\n[Mu][3] is a Python code editor for beginner | |
programmers based upon this feedback.\n\nThis talk tells the story of Mu: | |
why it was created\, how we built it and includes a demonstration of how | |
it works.\n\n [1]: http://raspberrypi.org/\n [3]: http://codewith.mu/\n\ | |
n\nNicholas Tollervey | |
LOCATION:Room 25A\, Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Code Reviews Using Art Critique Principles | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T112000 | |
DESCRIPTION:Code reviews don't have to be a time consuming\, morale zappin | |
g\, arduous tasks. Not only can they catch bugs and errors but they can co | |
ntribute in positive ways to the individual developer\, the team\, managem | |
ent and company as a whole. \n\nArt critiques have existed in academia fo | |
r hundreds of years. The methodology of the critique has evolved to be tim | |
e sensitive and productive\, while keeping the enthusiasm of the student a | |
rtist intact. \n\nThe purpose of the art critique is to get peers and men | |
tors to look at the work and raise any problems they may see. It's also ti | |
me where people with more experience could contribute their knowledge in a | |
helpful way. This process is about producing the best work\, quickly and | |
in a productive and constructive way. \n \nThese methods can be applied to | |
code review. \n\n\n\nStacy Morse | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Build Teams as an Engineer | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T112000 | |
DESCRIPTION:We build product and software as teams. And as anyone who as w | |
orked on a team knows\, there’s often a lot more that goes into working | |
together to build that product than actually just building the product its | |
elf. A highly functional team is not as elusive it may seem. Software engi | |
neering is a skill we’ve developed\, but even more importantly software | |
engineering on teams is another skill we’ve been practicing and improvin | |
g on as an industry. Software engineering principles and best practices ma | |
y seem to have very little to do with teamwork\, but being able to thought | |
fully apply some of what we’ve learned as engineers towards teamwork\, w | |
e can help move towards creating such success with our teams.\n\nJoyce Jan | |
g | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Solve Your Problem With Sloppy Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T112000 | |
DESCRIPTION:Stop writing crappy shell scripts—write crappy Python script | |
s instead!\n\nOther talks will show you how to write clean\, performant\, | |
robust Python. But that's not always necessary. When writing personal au | |
tomation or solving one-shot problems\, it can be safe (and fun!) to quick | |
ly hack something together.\n\nThis talk will show examples of problems su | |
itable for this approach\, scenarios where it's reasonable to cut corners\ | |
, novel techniques that can help break a problem down\, and shortcuts that | |
can speed development.\n\nLarry Hastings | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Thinking Outside the GIL with AsyncIO and Multiprocessing | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T112000 | |
DESCRIPTION:Have you ever written a small\, elegant application that could | |
n't keep up with the growth of your data or user demand? Did your beautifu | |
l design end up buried in threads and locks? Did Python's very special Glo | |
bal Interpreter Lock make all of this an exercise in futility?\n\nThis tal | |
k is for you! With the combined powers of AsyncIO and multiprocessing\, we | |
'll redesign an old multithreaded application limited by the GIL into a mo | |
dern solution that scales with the demand using only the standard library. | |
No prior AsyncIO or multiprocessing experience required.\n\n\nJohn Reese | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python Data Sonification for Science and Discovery | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T112000 | |
DESCRIPTION:What do geiger counters\, black holes\, heart monitors\, and v | |
olcanoes have in common? They all can use sound to convey information! Th | |
is talk will explore using python for sonification: the process of transla | |
ting data into sound that could otherwise be represented visually. Have yo | |
u ever wondered how to use python to represent data other than making char | |
ts and graphs? Are you a musician looking for inspiration in the world ar | |
ound you? This talk will go over how to use python to translate time seri | |
es data to MIDI that can be played back in real time. We’ll sonically in | |
terpret light-curve data from the Kepler space telescope using pygame\, MI | |
DIUtil\, and astropy\, turning points on a graph into a musical masterpiec | |
e! Come learn about how data sonification is used to help people\, to expa | |
nd the reach of scientific research\, and to create music from data.\n\nEr | |
in Braswell | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Democratizing Distributed Computing with Dask and JupyterHub | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T112000 | |
DESCRIPTION:We use JupyterHub\, XArray\, Dask\, and Kubernetes to build a | |
cloud-based system to enable scientists to analyze and manage large datase | |
ts. We use this in practice to serve a broad community of atmospheric and | |
climate scientists.\n\nAtmospheric and climate scientists analyze large v | |
olumes of observational and simulated data to better understand our planet | |
. They have historically used tools like NumPy and SciPy along with Jupyt | |
er notebooks to combine efficient computation with accessibility. However | |
\, as datasets increase in size and collaboration extends to new populatio | |
ns of scientists these tools begin to feel their age. In this talk we use | |
more recent libraries to build a modern deployment for academic scientist | |
s. In particular we use the following tools:\n\n- **Dask:** to paralleliz | |
e and scale NumPy computations\n- **XArray**: as a self-discribing data mo | |
del and tool kit for labeled and index arrays\n- **JupyterLab:** to enable | |
more APIs for users beyond the classic notebook\n- **JupyterHub:** to man | |
age users and maintain environments for a new population of cloud-friendly | |
users\n- **Kubernetes:** to manage everything and deploy easily on cloud | |
hardware\n\nThis talk will focus less on how these libraries work and will | |
instead be a case study of using them together in an operational setting. | |
During the talk we will build up and deploy a running system that the au | |
dience can then use to access distributed computing resources.\n\n\nMatthe | |
w Rocklin | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Data Visualization in Mixed Reality with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T105000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T112000 | |
DESCRIPTION:Data Visualization charts are supposed to be our map to inform | |
ation. However\, when making charts\, customarily we are just re-sizing li | |
nes and circles based on metrics instead of creating data-driven version o | |
f reality. The contemporary charting techniques have a few shortcomings ( | |
especially when dealing with high-dimensional dataset): \n\n* **Context Re | |
duction**: in order to fit a high-dimensional dataset into a chart one nee | |
ds to filter/ aggregate/ flatten data which results in reduction of full c | |
ontext of information. Without context most of the charts show only a par | |
t of the story\, that can potentially lead to data misinterpretation/misun | |
derstanding. \n* **Numeric Thinking**: naturally humans have hard time per | |
ceiving big numbers. While data visualization is suppose to help us to con | |
ceptualize large volumes\, unless the dataset is carefully prepared\, 2D | |
charts rarely give us the intuitive grasp of magnitude. \n* **Perceptual d | |
e-humanization**: when examining charts it is easy to forget that we are d | |
ealing with activity in real world instead of lines/bars. \n\nAugmented/Mi | |
xed Reality can potentially solve all of the issues listed above by presen | |
ting an intuitive and interactive environment for data exploration. Three | |
dimensional space provides conditions to create complex data stories with | |
more “realistic assets” (beyond lines and bars). The talk would presen | |
t the architecture required to create MR data visualization story with Pyt | |
hon (70% of architecture)\, starting with drawing 3D assets in a data-driv | |
en way and finishing with deployment on MR devices. \n\nAnna Nicanorova | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Let's build a Slack app! | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T110000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T123000 | |
DESCRIPTION:In this workshop\, we'll guide you through the process and too | |
ls needed to build your first Slack bot. We'll go over our Python SDKs\, w | |
alk through an example app and talk about what's going on under-the-hood a | |
s your app interacts with Slack's APIs. \n\nThis workshop will be beginner | |
-friendly\, but also allow those with prior experience with Slack to learn | |
about new features\, tools and ask us questions directly.\n\n\nJason Roch | |
e | |
LOCATION:Room 13 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Deploy Your Python Apps Quickly with Heroku | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T110000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T123000 | |
DESCRIPTION:A crash course on deploying Python applications to Heroku. We' | |
ll take a pre-made Django app\, spin it up locally\, then deploy it to Her | |
oku. We'll then go over the tools that Heroku provides for managing your a | |
pplications.\n\nIan Stapleton Cordesco | |
LOCATION:Room 23 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python with Visual Studio and Visual Studio Code – tips and tric | |
ks for a more productive developer l | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T110000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T123000 | |
DESCRIPTION:Developers have many choices when it comes to writing Python c | |
ode from editors to IDEs\, from free tools to paid\, from tools designed s | |
pecifically for their platform to tools running on many\, from open source | |
to closed source tools and so on… In this demo-driven session\, we’ll | |
show you why we think the cross-platform\, free\, and open source Visual | |
Studio Code will become your favorite tool for all your Python needs. From | |
editing to linting\, to debugging and more\, you will learn how to get st | |
arted\, as well as tips and tricks to save you time in your everyday devel | |
opment lifecycle. You will also learn when to consider Visual Studio 2017\ | |
, which for certain scenarios (such as mixed C and Python development)\, c | |
an offer you more than any other Python tool on the planet.\n\nSteve Dower | |
LOCATION:Room 25C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Coding as Enrichment: How to Empower Students with Creative Coding | |
Experiences | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T112000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T115000 | |
DESCRIPTION:My goal is to share resources\, pedagogy\, best practices and | |
lessons learned in bringing hands-on coding workshops to underserved K-12 | |
students.\n\nFor fall 2017 over ten weeks\, [Code Park Houston](https://co | |
deparkhouston.org/)\, a a 501(c)(3) non-profit organization piloted a fre | |
e after-school Creative Coding program at [BakerRipley - Leonel Castillo | | |
BakerRipley](https://www.bakerripley.org/locations/leonel-castillo-commun | |
ity-center). We focused on **Coding as Enrichment** by encouraging our stu | |
dents to pursue creative endeavors such as storytelling with Minecraft and | |
making procedural art with [p5.js | get started](https://p5js.org/get-sta | |
rted/). Instead of traversing a programming language’s syntax peculiarit | |
ies\, our students drew colorful lines\, made interactive buttons\, and sh | |
ared their creations.\n\nWe also worked to provide a positive and collabor | |
ative learning environment. Our students were encouraged to learn by makin | |
g mistakes and exploring his or her own interests. In the process\, we jus | |
t happened to facilitate knowledge in coding\, problem-solving\, electroni | |
cs science and collaboration.\n\nWhen it comes to technology\, the arts ca | |
n be an unusual pathway to success. But we know and see that creativity is | |
the secret sauce that inspires the next generation of diverse and passion | |
ate students.\n\nThis program was a rewarding experience for everyone invo | |
lved. We faced and overcame many challenges. For the talk I would like to | |
share:\n\n**Tools of the Trade** — what software and hardware we us | |
ed and why.\n**Classroom Set Up** — how to provide a positive and en | |
couraging learning environment.\n**Best Practices for Tech Educators** | |
— why we are learning facilitators.\n**Open Source Creative Coding Cur | |
riculum** — open source curriculum to be used in your own classroom! | |
\n\nWanjun Zhang | |
LOCATION:Room 25A\, Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Oops! I Committed My Password To GitHub! | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T120000 | |
DESCRIPTION:What do AWS\, GitHub\, Travis CI\, DockerHub\, Google\, Stripe | |
\, New Relic\, and the rest of the myriad of services that make our develo | |
per life easier have in common?\n They all give you secret keys to authent | |
icate with. Did you ever commit one of these to source control by mistake? | |
That happened to me more times than I'm willing to admit!\n\nIn this talk | |
I'm going to go over the best practices to follow when when writing Pytho | |
n applications that prevent this type of accident.\n\nMiguel Grinberg | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Inside the Cheeseshop: How Python Packaging Works | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T120000 | |
DESCRIPTION:Questions and confusion about the Python packaging ecosystem a | |
bound. What is this `setup.py` file? What's the difference between wheels | |
and eggs? Do I use setuptools or distutils? Why should I use twine? Do I p | |
ut my projects dependencies in a `requirements.txt` or in `setup.py`? How | |
do I just get my module up on PyPI? Wait\, what is Warehouse?\n\nThis talk | |
will identify the key tools one might encounter when trying to distribute | |
Python software\, what they are used for\, why they exist\, and their his | |
tory (including where their weird names come from). In addition\, we'll se | |
e how they all work together\, what it takes to make them work\, and what | |
the future has in store for Python packaging.\n\nDustin Ingram | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:How Netflix does failovers in 7 minutes flat | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T120000 | |
DESCRIPTION:During peak hours\, Netflix video streams make up more than on | |
e third of internet traffic. Netflix must stream uninterrupted in the face | |
of widespread network issues\, bad code deploys\, AWS service outages\, a | |
nd much more. Failovers make this possible.\n\nFailover is the process of | |
transferring all of our traffic from one region in AWS to another. While m | |
ost of Netflix runs on Java\, failovers are powered entirely by Python. Py | |
thon's versatility and rich ecosystem means we can use it for everything f | |
rom predicting our traffic patterns to orchestrating traffic movement\, wh | |
ile dealing with the eventual consistency of AWS.\n\nToday\, we can shift | |
all of our 100 million+ users in under seven minutes. A lot of engineering | |
work went into making this possible. The issues we faced and solutions we | |
created have broad application to availability strategies in the cloud or | |
the datacenter.\n\nAmjith Ramanujam | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Strategies to Edit Production Data | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T120000 | |
DESCRIPTION:At some point\, we all find ourselves at a SQL prompt making e | |
dits to the production database. We know it's a bad practice and we always | |
intend to put in place safer infrastructure before we need to do it again | |
— what does a better system actually look like?\n\nThis talk progresses | |
through 5 strategies for teams using a Python stack to do SQL writes agai | |
nst a database\, to achieve increasing safety and auditability:\n\n(1) Dev | |
elop a process for raw SQL edits \n(2) Run scripts locally\n(3) Deploy and | |
run scripts on an existing server\n(4) Use a task runner\n(5) Build a Scr | |
ipt Runner service\n\nWe’ll talk about the pros and cons of each strateg | |
y and help you determine which one is right for your specific needs.\n\nBy | |
the end of this talk you’ll be ready to start upgrading your infrastruc | |
ture for making changes to your production database safely!\n\nJulie Qiu | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Practical Sphinx | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T120000 | |
DESCRIPTION:Each member of your project team uses something different to d | |
ocument\ntheir work -- RestructuredText\, Markdown\, and Jupyter Notebooks | |
. How do\nyou combine all of these into useful documentation for your proj | |
ect's users.\nSphinx and friends to the rescue!\n\nLearn how to integrate | |
documentation into your everyday development\nworkflow\, apply best practi | |
ces\, and use modern development tools and\nservices\, like Travis CI and | |
ReadTheDocs\, to create engaging and up-to-date\ndocumentation which users | |
and contributors will love.\n\n\n\nCarol Willing | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:DragonPaint – Bootstrapping Small Data to Color Cartoons | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T120000 | |
DESCRIPTION:The creation of sufficient quantities of labeled training data | |
is one of the biggest challenges for machine learning applications\, espe | |
cially when the data itself must be created\, not just labeled. DragonPain | |
t presents a generalizable strategy for minimizing the manual creation of | |
data using rule based algorithms to automate the creation of a restricted | |
subset of data and then bootstrapping to the automated creation of unrestr | |
icted (rule breaking) training and test data. A gentle introduction to com | |
puter vision\, graphics and machine learning\, we use Python and geometry | |
to build an image data set for a TensorFlow model. \n\nGretchen Greene | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Augmenting Human Decision Making with Data Science | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T120000 | |
DESCRIPTION:Do we even need humans? Humans and data science are flawed on | |
their own. Humans lack the ability to process large volumes of information | |
. Machines lack intuition\, empathy\, and nuance. You'll learn how to guid | |
e users of expert-use systems by applying data science to their user exper | |
ience. This allows us to take advantage of the human-touch while leveragin | |
g our large datasets. What is the relationship between human decisions and | |
algorithms? Are we thinking about data science all wrong? In this talk\, | |
you'll learn the ways we balance human decisions and data science througho | |
ut our applications\, the challenges we have faced along the way and the f | |
uture of the relationship between humans and data.\n\nKelsey Pedersen | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Code like an accountant: Designing data systems for accuracy\, res | |
ilience and auditability | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T120000 | |
DESCRIPTION:As engineers\, we care a lot about the reliability of our appl | |
ications. When a website falls over\, pagers go off\, and engineers burst | |
into action to bring a site back to life. Postmortems are written\, and t | |
eams develop strategies to prevent similar failures in the future.\n\nBut | |
what about the reliability of our data? Would _you_ trust financial report | |
s built on your data? \n\nIf not\, what can you do to improve data health? | |
If you _would_ trust these reports\, how can you prove to customers\, inv | |
estors\, and auditors alike that they should too?\n\nIn this talk\, you’ | |
ll learn to apply strategies from the world of dev-ops to data. You’ll l | |
earn about questions auditors ask that can help you pinpoint data problems | |
. You’ll also learn some accounting-specific tools for accurate and time | |
ly record keeping that I’ve found fascinating and helpful!\n\n\n\nSophie | |
Rapoport | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Performance Python: Seven Strategies for Optimizing Your Numerical | |
Code | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T120000 | |
DESCRIPTION:Python provides a powerful platform for working with data\, bu | |
t often the most straightforward data analysis can be painfully slow. When | |
used effectively\, though\, Python can be as fast as even compiled langua | |
ges like C. This talk presents an overview of how to effectively approach | |
optimization of numerical code in Python\, touching on tools like numpy\, | |
pandas\, scipy\, cython\, numba\, and more.\n\nJake VanderPlas | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Counter\, Gauge\, Upper 90 - Oh my! | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T113000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T120000 | |
DESCRIPTION:Setting up application monitoring is often an afterthought\, a | |
nd in the speaker's opinion can be a bit overwhelming to get started with. | |
What is a `metric`? What is a `gauge`? What is a `counter`? What's that ` | |
upper 90` metric you have up on your `dashboard`? And what *all* metrics s | |
hould I monitor?\n\nThis talk aims to get you started on the monitoring jo | |
urney in Python. In addition to clearing up some of the jargon\, we will l | |
ook at `statsd` and `prometheus` monitoring systems and how to integrate o | |
ur applications with these.\n\nWithout the numbers\, we are really flying | |
blind!\n\nAmit Saha | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Beyond Unit Tests: Taking Your Testing to the Next Level | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T125500 | |
DESCRIPTION:You've used pytest and you've used mypy\, but bugs are still s | |
lipping through your code. What's next? In this talk\, we cover two simple | |
but powerful tools for keeping your code problem-free. Property-based tes | |
ting\, provided by the [Hypothesis](https://hypothesis.readthedocs.io/en/l | |
atest/) library\, lets you run hundreds of tests from a single template. C | |
ontracts\, via [dpcontracts](https://github.com/deadpixi/contracts)\, make | |
your program test itself. You'll learn how and why to use these tools and | |
how to combine them with the rest of your testing suite.\n\n\nHillel Wayn | |
e | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:import time_travel: A Primer on Timezones in Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T125500 | |
DESCRIPTION:Timezones are one of those things every programmer loves to ha | |
te. Most of us\, at\nleast in the US\, just try to ignore them and hope no | |
body notices. Then twice a\nyear\, we fear with impending doom those 3 sma | |
ll words: Daylight Saving Time.\n\nIt doesn't have to be this way. Armed w | |
ith some best practices and a little help\nfrom supporting libraries\, tim | |
ezone-related bugs can be a thing of the past.\n\nThis talk explores stand | |
ard library and 3rd party library timezone support\, as\nwell as persisten | |
ce and serialization techniques for timezone-aware datetimes.\nBy the end | |
of the talk\, the listener should feel confident in their ability to\ncorr | |
ectly store\, send\, receive\, and manipulate datetime objects in any time | |
zone.\n\nDavid Gouldin | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Colossal Cave Adventure in Python... in the browser! | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T125500 | |
DESCRIPTION:Colossal Cave\, also known as Adventure or ADVENT\, is the ori | |
ginal text adventure. It was written in FORTRAN IV and there is practicall | |
y no way to run the original program without translating it. We'll explore | |
software archeology to write a Python interpreter to run the FORTRAN code | |
as-is\, without translating it. Come learn about pre-ASCII and 36-bit int | |
egers and writing interpreters in Python!\n\nAnd\, we'll show how to use B | |
eeWare's Batavia Python interpreter (in JavaScript) to execute the program | |
. FORTRAN IV in Python in JavaScript in your browser!\n\nChristopher Swens | |
on | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Behavior-Driven Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T124000 | |
DESCRIPTION:Behavior-Driven Development (BDD) is gaining popularity as an | |
improved way to collaborate over product features and tests. In Python\, * | |
*behave** is one of the leading BDD test frameworks. Using **behave**\, te | |
ams write Gherkin behavior scenarios (e.g.\, tests) in plain language\, an | |
d then programmers write Python code to automate the steps. BDD testing is | |
great because tests are self-documenting and steps abide by the DRY princ | |
iple. An example test could be:\n\n> Given the DuckDuckGo home page is dis | |
played\n> When the user searches the phrase "Python"\n> Then search result | |
s for "Python" are shown\n\nThis talk will teach how to use **behave** to | |
develop well-designed test scenarios and a robust automation framework. It | |
will focus on the layers of the behave framework: feature files\, step de | |
finitions\, support classes\, and config files. A full example project wil | |
l be hosted on GitHub for audience members to reference after the talk.\n\ | |
n\n\nAndrew Knight | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:"WHAT IS THIS MESS?" - Writing tests for pre-existing code bases | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T124000 | |
DESCRIPTION:Many of us practice test driven development\, and pride oursel | |
ves in our code coverage. This is relatively easy to do when you begin a n | |
ew project\, but what happens when you take over an existing code base wit | |
h little to no tests? Where and how do you start writing tests? This task | |
can be very intimidating and frustrating\, but can be accomplished!\n\nThi | |
s talk will run through some common approaches and methodologies for addin | |
g test coverage to pre-existing code (that you might not even be familiar | |
with at all). The next time you take over an untested monolith\, you will | |
be able to do the right thing and start writing tests instead of hoping f | |
or the best!\n\nJustin Crown | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Demystifying the Patch Function | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T125500 | |
DESCRIPTION:One of the most challenging and important thing fors for Pytho | |
n developers learn is the unittest mock library. The patch function is in | |
particular confusing- there are many different ways to use it. Should I us | |
e a context manager? Decorator? When would I use it manually? Improperly u | |
sed patch functions can make unit tests useless\, all the while making the | |
m look as if they are correctly testing code.Let’s learn how to wield pa | |
tch with confidence!\n\n\nLisa Roach | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:One weird trick to becoming a better software developer | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T124000 | |
DESCRIPTION:Those of us who have worked in software development for longer | |
than a few years probably feel we have an intuitive sense of what a great | |
developer is. Some traits come more easily to mind than others when it co | |
mes to identifying a great developer. In this talk we will take a slightly | |
different approach to evaluating software development best practices\, an | |
d identify one underrated skill common to great software developers: empat | |
hy. I hope to demonstrate that cognitive and emotional empathy skills are | |
critical to good software development. We will explore ways to cultivate t | |
his trait in order to become better developers\, both for our own sakes an | |
d for the sake of the teams in which we work.\n\nEsther Nam | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Programming microbes using Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T124000 | |
DESCRIPTION:The genome of a typical microbe contains roughly 5 million bas | |
e pairs of DNA including > 4000 genes\, which provide the instructions for | |
cellular replication\, energy metabolism\, and other biological processes | |
. At Zymergen\, we edit DNA to design microbes with improved ability to pr | |
oduce valuable materials and molecules. Microbes with these edits are buil | |
t and tested in high throughput by our fleet of robots. Genomes are far to | |
o large for exhaustive search\, so identifying which edits to make require | |
s machine learning on non-standard features. Our task to extract informati | |
on from trees\, networks\, and graphs of independently representable knowl | |
edge bases (metabolism\, genomics\, regulation)\, in ways that respect the | |
strongly causal relationships between systems. In this talk\, I will desc | |
ribe how we use Python’s biological packages (e.g. BioPython\, CobraPy\, | |
Escher\, goatools) and other packages (NetworkX\, TensorFlow\, PyStan\, A | |
irFlow) to extract machine learning features and predict which genetic edi | |
ts will produce high-performance microbes.\n\nJanet Matsen | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Reinventing the Parser Generator | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T125500 | |
DESCRIPTION:Writing lexers and parsers is a complex problem that often inv | |
olves the use of special tools and domain specific languages (e.g.\, the l | |
ex/yacc tools on Unix). In 2001\, I wrote Python versions of these tools | |
which can be found in the PLY project. PLY predates a huge number of mode | |
rn Python features including the iteration protocol\, generators\, decorat | |
ors\, metaclasses\, and more. As such\, it relied on a variety of clever | |
hacks to layer a domain specific parser specification language on top of P | |
ython itself. \n\nIn this talk\, I discuss a modernization of the PLY proj | |
ect that abandons its past and freely abuses modern Python features includ | |
ing advanced metaclasses\, guaranteed dictionary ordering\, class decorato | |
rs\, type hints\, and more. The result of this work can be found in the | |
SLY project. However\, this talk isn't so much about SLY as it is focused | |
on how far you can push Python metaprogramming features to create domain- | |
specific languages. Prepare to be horrified--and to write code that will | |
break your IDE. \n \n\nDavid Beazley | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:HOWTO Write a Function | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T121000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T125500 | |
DESCRIPTION:A function is a small chunk of code that does useful work. You | |
r job when writing a function is to do it in a way that it easy to read. B | |
ased on over 15 years of code reviews here are some tips and guidelines I | |
give again and again. \n\nJack Diederich | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Type-checked Python in the real world | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T131000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T134000 | |
DESCRIPTION:You've heard about Python type annotations\, but wondered if t | |
hey're useful in the real world? Worried you've got too much code and can' | |
t afford to annotate it? Type-checked Python is here\, it's for real\, an | |
d it can help you catch bugs and make your code easier to understand. Come | |
learn from our experience gradually typing a million-LOC production Pytho | |
n application!\n\nType checking solves real world problems in production P | |
ython systems. We'll cover the benefits\, how type checking in Python work | |
s\, how to introduce it gradually and sustainably in a production Python a | |
pplication\, and how to measure success and avoid common pitfalls. We'll e | |
ven demonstrate how modern Python typechecking goes hand-in-hand with duck | |
-typing! Join us for a deep dive into type-checked Python in the real worl | |
d.\n\nCarl Meyer | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Systemd: why you should care as a Python developer | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T131000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T134000 | |
DESCRIPTION:Done! Your shiny new application is functionally complete and | |
ready to be deployed to production! But how exactly do you deploy properly | |
on Linux? Wonder no more! In 30 minutes\, this talk explains how you can | |
harness the power of the init system and systemd to solve common deploymen | |
t problems\, including some that you didn't even know you had. Examples of | |
things we will cover:\n\n* How to secure your system by having: private / | |
tmp for your process\, read-only paths so that your process can not write | |
to them\, inaccessible paths\, protect users home\, network access\, bin d | |
irectories\, etc.\n* How to limit the resources you app can consume.\n* Ho | |
w to interact directly with systemd\, so it can start transient units\, st | |
art/stop services\, mount disks\, resolve addresses.\n* How to isolate you | |
r service without containers.\n* How to isolate your service using contain | |
ers (using systemd to spawn a namespace).\n\nAll this will be covered from | |
a Python developer's perspective.\n\n\nAlvaro Leiva Geisse | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:There and Back Again: Disable and re-enable garbage collector at I | |
nstagram | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T131000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T134000 | |
DESCRIPTION:Python's cyclic garbage collector wonderfully hides the comple | |
xity of memory management from the programmer. But we pay the price in per | |
formance. Ever wondered how that works? In this talk\, you'll learn how ga | |
rbage collection is designed in Python\, what the tradeoffs are and how In | |
stagram battled copy-on-write memory issues by disabling the garbage colle | |
ctor entirely.\n\nYou'll also learn why that isn't such a great idea after | |
all and how we ended up extending the garbage collector API which allowed | |
us to (mostly) re-enable garbage collection. We'll discuss our upstream c | |
ontributions to the garbage collector that landed in Python 3.6 and 3.7.\n | |
\nThis is an in-depth talk about memory management but no prior experience | |
with CPython internals is necessary to follow it.\n\nZekun Li | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Effortless Logging: A deep dive into the logging module | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T131000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T134000 | |
DESCRIPTION:Logs are our best friend\, especially on those late nights whe | |
n we try to troubleshoot a problem in production that was written by a co- | |
worker who is on vacation. Logs are the main way to know what is happening | |
with an application at runtime\, but we don’t realize how important the | |
y are until we actually need them. Unfortunately\, they are usually an und | |
er-estimated part of the development process.\n\nThis talk aims to transmi | |
t the need for the logging module\, briefly explains how to use it and how | |
it is built\, and dives into all the complexity that is hidden to us. Thi | |
s will help attendees not just understand all the magic that allows us to | |
inspect our applications at runtime\, but also to avoid mistakes and adapt | |
the module to our needs for more esoteric scenarios.\n\nThe talk is struc | |
tured to simplify the understanding of the logging module. Many people hav | |
e read the documentation\, but still struggle to fully understand what is | |
happening under the hood. This talk aims to eliminate that barrier by pres | |
enting it in an easier-to-digest manner.\n\n\nMario Corchero | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Efficient shared memory data structures | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T131000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T134000 | |
DESCRIPTION:Multithreading makes shared memory easy\, but true parallelism | |
next to impossible. Multiprocessing gives us true parallelism\, but it ma | |
kes sharing memory very difficult\, and high overhead. In this talk\, we'l | |
l explore techniques to share memory between processes efficiently\, with | |
a focus on sharing read-only massive data structures.\n\nClaudio Freire | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Using List Comprehensions and Generator Expressions For Data Proce | |
ssing | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:Creating one list out of another list is a very common thing t | |
o do in Python\, so common that Python includes a special construct just f | |
or this purpose: list comprehensions. We'll get hands-on experience using | |
list comprehensions\, set comprehensions\, and dictionary comprehensions | |
during this tutorial. We'll also learn how and when we can slightly tweak | |
our comprehensions to turn them into more performant generator expression | |
s.\n\nWe will learn some tricks for figuring out which of our "for" loops | |
can be rewritten as comprehensions and which cannot. We will focus heavil | |
y on **code readability and code clarity** and we'll discuss when comprehe | |
nsions help readability and when they hurt.\n\nAll new skills will be acqu | |
ired through practice. We'll work through many exercises both individuall | |
y and as a group. All students will also receive a cheat sheet which can | |
be used for guidance during future comprehension-writing journeys.\n\nA la | |
ptop with Python installed is required for this workshop.\n\nTrey Hunner | |
LOCATION:Room 09 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Workflow Engines Up and Running | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:Join us for an introduction hands on tutorial of Python based | |
workflow engines.\n\nYou will get to create\, run and monitor a real time | |
workflow job with two Python based popular workflow engines: Airflow and L | |
uigi.\nDevelopers may have some long running batch jobs and may be using o | |
ne of the tools we will cover or might be using a different engine\, and w | |
ould like a more in depth hands-on experience learning these tools.\n\nIan | |
Zelikman\, Austin Hacker | |
LOCATION:Room 15 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Practical API Security | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:With the dominance of Mobile Apps\, Single Page Apps for the W | |
eb\, and Micro-Services\, we are all building more APIs than ever before. | |
Like many other developers\, I had struggled with finding the right mix of | |
security and simplicity for securing APIs. Some standards from the IETF h | |
ave made it possible to accomplish both. Let me show you how to utilize ex | |
isting libraries to lock down you API without writing a ton of code.\n\nIn | |
this tutorial\, you will learn how to write a secure API with future proo | |
f security utilizing JOSE. JOSE is a collection of complimentary standards | |
: JWT\, JWE\, JWS\, JWA\, and JWK. JOSE is used by OAuth\, OpenID\, and ot | |
hers to secure communications between APIs and consumers. Now you can use | |
it to secure your API.\n\nAdam Englander | |
LOCATION:Room 16 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python Epiphanies | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:This tutorial is for those who've been using Python for a whil | |
e and would consider themselves at an intermediate level but are looking t | |
o get to the next level.\n\nWe'll explore core language features\, look a | |
bit under the hood\, and to understand and learn how not to be too afraid | |
of bytecode\, monkey patching\, decorators\, and metaclasses.\n\nIn many w | |
ays Python is very similar to other programming languages. However\, in a | |
few subtle ways it is quite different\, and many software developers new | |
to Python\, after their initial successes\, hit a plateau and have difficu | |
lty getting past it. Others don't hit or perceive a plateau\, but still f | |
ind some of Python's features a little mysterious or confusing. This tuto | |
rial will help deconstruct some common incorrect assumptions about Python. | |
\n\nIf in your use of Python you sometimes feel like an outsider\, like yo | |
u're missing the inside jokes\, like you have most of the puzzle pieces bu | |
t they don't quite fit together yet\, or like there are parts of Python yo | |
u just don't get\, this may be a good tutorial for you.\n\nStuart Williams | |
LOCATION:Room 19 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Parallel Data Analysis with Dask | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:The libraries that power data analysis in Python are essential | |
ly limited to a single CPU core and to datasets that fit in RAM. Attendees | |
will see how dask can parallelize their workflows\, while still writing w | |
hat looks like normal python\, NumPy\, or pandas code.\n\nDask is a parall | |
el computing framework\, with a focus on analytical computing. We'll start | |
with `dask.delayed`\, which helps parallelize your existing Python code. | |
We’ll demonstrate `dask.delayed` on a small example\, introducing the co | |
ncepts at the heart of dask like the *task graph* and the *schedulers* tha | |
t execute tasks. We’ll compare this approach to the simpler\, but less f | |
lexible\, parallelization methods available in the standard library like ` | |
concurrent.futures`.\n\nAttendees will see the high-level collections dask | |
provides for writing regular Python\, NumPy\, or Pandas code that is then | |
executed in parallel on datasets that may be larger than memory. These hi | |
gh level collections provide a familiar API\, but the execution model is v | |
ery different. We'll discuss concepts like the GIL\, serialization\, and o | |
ther headaches that come up with parallel programming. We’ll use dask’ | |
s various schedulers to illustrate the differences between multi-threaded\ | |
, multi-processes\, and distributed computing.\n\nDask includes a distribu | |
ted scheduler for executing task graphs on a cluster of machines. We’ll | |
provide each person access to their own cluster.\n\nTom Augspurger\, James | |
Crist\, Martin Durant | |
LOCATION:Room 20 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Getting Started with Blockchains and Cryptocurrencies in Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:Blockchains and cryptocurrencies are getting more popular ever | |
yday. The rise and wide adoption of cryptocurrencies such as Bitcoin has a | |
ttracted a lot of attention\, ranging from developers to bankers. However\ | |
, many people are still not very comfortable with the ideas and concepts b | |
ehind the blockchain\, and workings of cryptocurrencies such as Bitcoin. T | |
herefore\, it stops them from entering and exploring the blockchain and cr | |
yptocurrency world.\n\n\nIn this tutorial\, we first explore the cryptogra | |
phic ideas behind the cryptocurrencies\, including hashing\, public/privat | |
e cryptography. This will be followed by the basics of a simplified blockc | |
hain. We cover mining\, incentives\, payment records\, ownership\, etc. Th | |
en we delve into working and playing with a private Bitcoin network\, by i | |
mplementing simple programs in Python to create public/private keys\, acco | |
unts\, and transactions. We further look into services that provide exchan | |
ge rate data on cryptocurrencies and analyze the data.\n\nAmirali Sanatini | |
a | |
LOCATION:Room 21 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Faster Python Programs - Measure\, don't Guess | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:Optimization can often help to make Python programs faster or | |
use less memory. Developing a strategy\, establishing solid measuring and | |
visualization techniques as well as knowing about algorithmic basics and d | |
atastructures are the foundation for a successful optimization. The tutori | |
al will cover these topics.\nExamples will give you a hands-on experience | |
on how to approach efficiently.\n\nPython is a great language. But it can | |
be slow compared to other languages\nfor certain types of tasks. If applie | |
d appropriately\, optimization may reduce\nprogram runtime or memory consu | |
mption considerably. But this often comes at a price. Optimization can be | |
time consuming and the optimized program may be more complicated. This\, i | |
n turn\, means more maintenance effort. How do you find out if it is worth | |
while to optimize your program? Where should you start?\n\nThis tutorial w | |
ill help you to answer these questions. You will learn how\nto find an op | |
timization strategy based on quantitative and objective criteria.\nYou wil | |
l experience that one's gut feeling what to optimize is often wrong.\n\nTh | |
e solution to this problem is: „Measure\, Measure\, and Measure!“. You | |
will\nlearn how to measure program run times as well as profile CPU and m | |
emory.\nThere are great tools available. You will learn how to use some of | |
them.\nMeasuring is not easy because\, by definition\, as soon as you sta | |
rt to measure\,\nyou influence your system. Keeping this impact as small a | |
s possible is\nimportant. Therefore\, we will cover different measuring te | |
chniques.\n\nFurthermore\, we will look at algorithmic improvements. You w | |
ill see that the\nright data structure for the job can make a big differen | |
ce. Finally\, you will\nlearn about different caching techniques.\n\nMike | |
Müller | |
LOCATION:Room 22 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Statistics and probability: your first steps on the road to data s | |
cience | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:An introduction to statistics and probability geared toward en | |
abling attendees to understand the capabilities and limitations of statist | |
ics and probability and to help them implement calculations in their proje | |
cts. Where possible/feasible\, attendees will build their own tools to hel | |
p them grasp the underlying concepts. In addition\, attendees will be intr | |
oduced to the pre-built tools in world-class Python and data science libra | |
ries to help them capitalize on the efficiencies and utility that those li | |
braries offer.\n\nChalmer Lowe | |
LOCATION:Room 09 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Intermediate testing with Django: Outside-in TDD and Mocking effe | |
ctively | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:Once developers have got the hang of the basics of testing\, p | |
roblems of applying it in the real world soon start to manifest themselves | |
\, and common questions come up. \n\n- What order should I write my tests | |
and code in to avoid wasting time on blind alleys? \n- If I'm using Mock | |
s in my tests to avoid external dependencies\, how do I avoid getting stuc | |
k with unwieldy\, unreadable tests that don't actually tell me when things | |
have gone wrong?\n- Unit tests vs integration tests vs functional tests\, | |
which should I use when\, and what are the trade-offs?\n\nIn this tutoria | |
l we'll work through an example of using an existing Django codebase\, add | |
ing a new feature\, and experimenting with different testing techniques al | |
ong the way to illustrate the pros and cons of each\n\n- bottom-up vs outs | |
ide-in development\n- double-loop TDD\n- using Mocks to isolate applicatio | |
n layers from each other\n- "listen to your tests"\, and learning to use u | |
gly or convoluted tests as a signal for improving design.\n\nSome familiar | |
ity with Django is desirable\, although skills learned in other web framew | |
orks are transferrable. By the end\, you'll be able to go back to your ow | |
n projects with practical experience\, and a new way of thinking about how | |
to optimise your tests for your own circumstances.\n\n\nHarry Percival | |
LOCATION:Room 10 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Beyond Django Basics | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:Finished with the official Django getting started guide\, and | |
not sure what to do next? This tutorial has you covered. \n\nWe'll exten | |
d the blog built in the official guide\, using a variety of slightly more | |
advanced Django features. Topics to be covered include: extending the in- | |
built user model\, using the in-built login system\, enhancing forms\, usi | |
ng view mixins and overriding view methods\, and changing up your database | |
backend. \n\nWith each extension\, we'll talk about not just how to use | |
these features but also *why* you'd want to use them. We'll conclude by t | |
alking about other Django features you may want to learn about as you grow | |
more proficient with this versatile framework.\n\nShauna Gordon-McKeon | |
LOCATION:Room 15 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python by Immersion | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:A fast introduction to Python for software developers with exp | |
erience in other programming languages. Instead of a traditional top-down | |
presentation of Python's features\, syntax\, and semantics\, students are | |
immersed in the language bottom-up with hundreds of small examples using t | |
he interactive interpreter to quickly gain familiarity with most of the co | |
re language features. Special attention is given to concepts in Python tha | |
t often trip up those new to the language.\n\nNote that this tutorial is n | |
ot designed to pair with the Python by Epiphanies tutorial\, i.e. we recom | |
mend you sign up for one or the other\, but no both.\n\nStuart Williams | |
LOCATION:Room 16 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Network Analysis Made Simple: Part II | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:Daenerys or Jon Snow? Diffusion of news through Twitter? JFK\, | |
ORD or ATL\, do these codes look familiar? In this tutorial we build up o | |
n the fundamentals of Part 1 tutorial and look at various applications of | |
network analysis to real world datasets like the US Airport Dataset\, Game | |
of Thrones character co-occurrence network\, and foray into diffusion pro | |
cesses on networks. \n\n\nMridul Seth\, Eric Ma | |
LOCATION:Room 19 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Docker for Data Science | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:Jupyter notebooks simplify the process of developing and shari | |
ng Data Science projects across groups and organizations. However\, when w | |
e want to deploy our work into production\, we need to extract the model f | |
rom the notebook and package it up with the required artifacts (data\, dep | |
endencies\, configurations\, etc) to ensure it works in other environments | |
. Containerization technologies such as Docker can be used to streamline t | |
his workflow.\n\nThis hands-on tutorial presents Docker in the context of | |
Reproducible Data Science - from idea to application deployment. You will | |
get a thorough introduction to the world of containers\; learn how to inco | |
rporate Docker into various Data Science projects\; and walk through the p | |
rocess of building a Machine Learning model in Jupyter and deploying it as | |
a containerized Flask REST API.\n\nAly Sivji\, Joe Jasinski\, tathagata d | |
asgupta (t) | |
LOCATION:Room 20 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Exploratory Data Visualization with Vega\, Vega-Lite\, and Altair | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:Exploring a new dataset visually can provide quick intuition i | |
nto the relationships within the data. There are a few well-developed visu | |
alization packages in Python\, but they often have very imperative APIs th | |
at force the user to focus on the mechanics of the visualization – tick | |
locations\, axis limits\, legends\, etc. – rather than the salient relat | |
ionships within the data.\n\nThis tutorial will introduce data visualizati | |
on with [Altair](http://altair-viz.github.io)\, a package designed for exp | |
loratory visualization in Python that features a declarative API\, allowin | |
g data scientists to focus more on the data than the incidental details. A | |
ltair is based on the [Vega](https://vega.github.io/) and [Vega-Lite](http | |
s://vega.github.io/vega-lite/) visualization grammars\, and thus automatic | |
ally incorporates best practices drawn from recent research in effective d | |
ata visualization.\n\nThe tutorial will provide an introduction to the Alt | |
air package and its API\, but more importantly will dive into the core con | |
cepts of effective data visualization that can be applied using any visual | |
ization package or tool.\n\nJake VanderPlas | |
LOCATION:Room 21 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Using pandas for Better (and Worse) Data Science | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T164000 | |
DESCRIPTION:The pandas library is a powerful tool for multiple phases of t | |
he data science workflow\, including data cleaning\, visualization\, and e | |
xploratory data analysis. However\, proper data science requires careful c | |
oding\, and pandas will not stop you from creating misleading plots\, draw | |
ing incorrect conclusions\, ignoring relevant data\, including misleading | |
data\, or executing incorrect calculations.\n\nIn this tutorial\, you'll p | |
erform a variety of data science tasks on a handful of real-world datasets | |
using pandas. With each task\, you'll learn how to avoid either a pandas | |
pitfall or a data science pitfall. By the end of the tutorial\, you'll be | |
more confident that you're using pandas for good rather than evil!\n\nPart | |
icipants should have a working knowledge of pandas and an interest in data | |
science\, but are not required to have any experience with the data scien | |
ce workflow. Datasets will be provided by the instructor.\n\nKevin Markham | |
LOCATION:Room 22 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Introduction to Digital Signal Processing | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180509T132000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180509T164000 | |
DESCRIPTION:Spectral analysis is an important and useful technique in many | |
areas of science and engineering\, and the Fast Fourier Transform is one | |
of the most important algorithms\, but the fundamental ideas of signal pro | |
cessing are not as widely known as they should be.\n\nFortunately\, Python | |
provides an accessible and enjoyable way to get started. In this tutori | |
al\, I present material from my book\, *Think DSP*\, and from a class I te | |
ach at Olin College. We will work with audio signals\, including music a | |
nd other recorded sounds\, and visualize their spectrums and spectrograms. | |
We will synthesize simple sounds and learn about harmonic structure\, c | |
hirps\, filtering\, and convolution.\n\nAllen Downey | |
LOCATION:Room 10 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Hard Shouldn't be Hardship: Supporting Absolute Novices to Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T133000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T140000 | |
DESCRIPTION:When we tell novices that programming is hard\, what are we wa | |
rning them about? The intent may be to impress upon learners the importanc | |
e of taking the workload seriously and starting early on the homework. How | |
ever\, “hard” is a loaded word and leaving novices alone with that wor | |
d and their imaginations can create an unbounded variable\, normalizing em | |
otional extremes and all nighters. The instructor often has no idea that | |
"hard" has become "hardship".\n\nAn instructor's expertise can become a bl | |
indspot. We've learned what is normal through experience and can easily fo | |
rget that we didn't know from the start. We presume that those experienci | |
ng trouble will stop and reach out for help\, but this will not always be | |
the case if they don't know those situations look like. Saying "when you' | |
re stuck" is not an objective\, actionable statement and leaves the unbou | |
nded suffering monster in play\, particularly for students who are afraid | |
of being a bother or being seen as asking a stupid question. We need to b | |
e clear with our learners about when difficult material has moved outside | |
our expectations and create a classroom environment where questions and cl | |
arifications are celebrated.\n\nThis talk will cover real and practical me | |
thods to help learners succeed in intensive programming courses\, such as | |
making your expectations clear\, helping your students recognize when and | |
how they should reach out for help\, creating a positive emotional atmosph | |
ere in the classroom\, and providing help efficiently. Topics will includ | |
e a ban on demotivational words\, strategies for soliciting questions\, th | |
e "2 hour" rule\, the educational benefits of live coding\, and recontextu | |
alizing error messages.\n\nElizabeth Wickes | |
LOCATION:Room 25A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:The Five Kinds of Python Functions | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T133000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T150000 | |
DESCRIPTION:Audience level: Intermediate\n\nWe'll look at the wide variety | |
of ways that we can leverage Python functions. This will show provide hel | |
pful background in ordinary functions\, as well as callable objects and la | |
mbdas. We'll look closely at how to use generator functions\, also. The fi | |
fth type of function is a function wraps a special method\, like len().\n\ | |
n\n\nSteven Lott | |
LOCATION:Room 23 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Learning Python like a Pro | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T133000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T140000 | |
DESCRIPTION:There are many awesome tools to learn and teach Python to begi | |
nners. You can teach it with games\, interactive tutorials and microcontro | |
llers. However\, if one is to stay in the world of programming\, sooner or | |
later one needs to start using more professional tools such as IDEs\, deb | |
uggers\, profilers\, version control systems and databases. Needless to sa | |
y\, the transition from IDLE to PyCharm can be very frustrating.\n\nCreati | |
ng your own course is a time-consuming process\, but after the course has | |
been created you also need to check students' solutions which consumes eve | |
n more time. Wouldn't it be great to automate checking process and to conc | |
entrate on the creative part of content creation and explaining concepts t | |
o students?\n\nAs an attempt to solve these problems [EduTools plugin](htt | |
ps://plugins.jetbrains.com/plugin/10081-edutools) was created. It's a free | |
open-source plugin that can be installed on PyCharm/IntelliJ IDEA IDEs to | |
create and take programming courses right inside the IDE. This way a novi | |
ce programmer dives into professional environment straight away and an edu | |
cator gets a tool to automate solution checking. Not only the plugin allow | |
s to create courses\, but it also comes with integration with [Stepik MOOC | |
platform](https://stepik.org).\n\nIn this talk I'd like to demonstrate ho | |
w one can create a course with automated checks using EduTools plugin\, sh | |
are it with students and connect to Stepik platform to gather solutions an | |
d statistics. I'll show how to create a simple course containing theory\, | |
code task with feedback prompts and test with choice problems. I'll also s | |
how how to use our existing free courses in class with the ability to view | |
your students' solutions.\n\nLiana Bakradze | |
LOCATION:Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Bridging the gaps between Science and Engineering with Jupyter Not | |
ebooks | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T133000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T150000 | |
DESCRIPTION:When it comes to data science in the enterprise\, organization | |
s often face a culture of self-interest that leads to unnecessary friction | |
between the Data Science and Software engineering teams\, causing ineffic | |
iencies\, and ultimately a failure to realize the full potential of data s | |
cience. In this talk\, we’ll show how Jupyter Notebooks combined with th | |
e PixieDust open source library can address the expectations and challenge | |
s around data science\, including the shortage of technical expertise\, ov | |
erly complex and inaccessible analytics tools and more. \n\nDavid Taieb | |
LOCATION:Room 13 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:A Whirlwind Tour of Google Cloud Services | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T133000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T150000 | |
DESCRIPTION:Did you know Google offers object recognition as an API? Join | |
us for a rapid tour of services you can add to your applications to save t | |
ime and add features to delight your users! All of these services can be u | |
sed wherever your core application is running -- as long as it has interne | |
t access. :)\n\n- Identify objects and locate faces in photos & videos wit | |
h Cloud Vision. Also speech to text and back!\n- Easy\, scalable logging w | |
ith Google Stackdriver\, then extract and graph metrics from those logs.\n | |
- Interactively query all of your logs (or any other data) with BigQuery.\ | |
n- Connect your distributed processes with fast and reliable messaging usi | |
ng Cloud PubSub.\n- And maybe more? Or less! It will be interesting and us | |
eful.\n\nThis is explicitly a sponsored product tour - we promise to focus | |
on solving real problems with these tools and to include lots of interact | |
ive hands-on demos and example code. Some of the demos will be easy to fol | |
low along on your own laptop. Please bring yours if that sounds interestin | |
g!\n\nJon Wayne Parrott | |
LOCATION:Room 25C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Graph Databases: Talking about your Data Relationships with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T134000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T142500 | |
DESCRIPTION:Have you ever considered how many relationships you have in yo | |
ur virtual life? Every friend or page liked on Facebook\, each connection | |
in LinkedIn or Twitter account followed is a new relationship not only bet | |
ween two people\, but also between their data. In Brazil only\, we have 16 | |
0 millions Facebook users. How can we represent and manipulate all these r | |
elationships? Graph Databases are storage systems that use graph structure | |
(nodes and edges) to represent and store data in a semantic way.\n\nThis | |
talk will begin approaching the challenge in representing relationships in | |
Relational Databases and introducing a more friendly solution using graph | |
. The definition of Graph Database\, its pros and cons and some available | |
tools (Neo4J\, OrientDB and TitanDB) will be shown during the presentation | |
\, as well as how these tools can be integrated with Python.\n\n\nNicolle | |
Cysneiros | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Win back lovely API: GraphQL in Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T134000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T142500 | |
DESCRIPTION:RESTful has been the go-to choice of API world. Why another AP | |
I approach? To support more data-driven applications\, to provide more fle | |
xibility and ease unnecessary code and calls\, to address a wide variety o | |
f large-scale development problems\, **GraphQL** comes with HTTP\, JSON\, | |
Versioning\, Nullability\, Pagination\, and Server-side Batching & Caching | |
in mind to make API "Simple yet Powerful".\n\nBy applying [Graphene-Pytho | |
n](http://graphene-python.org/)\, a library for building GraphQL APIs in P | |
ython easily\, this talk will go through the background and challenges of | |
applying GraphQL as the new API service in a restaurant POS (point of sale | |
) system within complex cloud infrastructure in Python. Introduction\, tes | |
ting\, and live demo is included for sure.\n\nKeith Yang | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Software Library APIs: Lessons Learned from scikit-learn | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T134000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T142500 | |
DESCRIPTION:When you think of an API\, you’re probably thinking about a | |
web service. But it’s important to think about your developer interface | |
when designing a software library as well! I’ll talk about the scikit-le | |
arn package\, and how its API makes it easy to construct complex models fr | |
om simple building blocks\, using three basic pieces: transformers\, estim | |
ators\, and meta-estimators. Then I’ll show how this interface enabled u | |
s to construct our own meta-estimator for model stacking. This will demons | |
trate how to implement new modeling techniques in a scikit-learn style\, a | |
nd more generally\, the value of writing libraries with the developer inte | |
rface in mind.\n\nLiz Sander | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY: Bayesian Non-parametric Models for Data Science using PyMC3 | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T134000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T142500 | |
DESCRIPTION:Nowadays\, there are many ways of building data science models | |
using Python\, including statistical and machine learning methods. I will | |
introduce probabilistic models\, which use Bayesian statistical methods t | |
o quantify all aspects of uncertainty relevant to your problem\, and provi | |
de inferences in simple\, interpretable terms using probabilities. A part | |
icularly flexible form of probabilistic models uses Bayesian *non-parametr | |
ic* methods\, which allow models to vary in complexity depending on how mu | |
ch data are available. In doing so\, they avoid the over-fitting that is c | |
ommon in machine learning and statistical modeling. I will demonstrate the | |
basics of Bayesian non-parametric modeling in Python\, using the PyMC3 pa | |
ckage. Specifically\, I will introduce two common types\, Gaussian process | |
es and Dirichlet processes\, and show how they can be applied easily to re | |
al-world problems using two examples.\n\nChristopher Fonnesbeck | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:The Hare Wins the Race: Getting the most out of RabbitMQ in distri | |
buted applications | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T135000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T142000 | |
DESCRIPTION:As web apps grow increasingly complex\, distributing asynchron | |
ous work across multiple background workers is often a basic requirement o | |
f a performant app. While there are a variety of tools that exist to solv | |
e this issue\, one common feature among them is the need for a robust mess | |
aging platform.\n\n[RabbitMQ][1] is a stable\, full-featured\, and mature | |
solution that is usually found in the Python ecosystem backing [Celery][2] | |
implementations. While Celery's utilization of RabbitMQ works just fine | |
out of the gate\, users with complex workflows\, unique constraints\, or t | |
ight budgets can take advantage of the flexibility of RabbitMQ to streamli | |
ne their data pipelines and get the most out of their infrastructure.\n\nT | |
his talk will provide an overview of RabbitMQ\, review its varied message- | |
routing capabilities\, and demonstrate some of the ways in which these fea | |
tures can be utilized in Python applications to solve common yet difficult | |
use-cases.\n\n [1]: https://www.rabbitmq.com/\n [2]: http://www.celeryp | |
roject.org/\n\n\nSteven Sklar | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Pumping up Python modules using Rust | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T135000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T142000 | |
DESCRIPTION:If you’ve spent much time writing (or debugging) Python perf | |
ormance problems\, you’ve probably had a hard time managing memory with | |
its limited language support. \n\nIn this talk\, we venture deep into the | |
belly of the Rust Language to uncover the secret incantations for building | |
high performance and memory safe Python extensions using Rust. \n\nRust h | |
as a lot to offer in terms of safety and performance for high-level progra | |
mming languages such Python\, Ruby\, Js and more with its easy Foreign Fun | |
ction Interface capabilities which enables developers to easily develop bi | |
ndings for foreign code. \n\n\nvigneshwer dhinakaran | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Learning From Failure: Post Mortems | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T135000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T142000 | |
DESCRIPTION:Unless you work on pacemakers or at NASA\, you've probably acc | |
epted the fact that you will make mistakes in your code\, and those mistak | |
es will creep into production. This talk will introduce you to post-mortem | |
s\, and how to use them as a vehicle for improving your code and your proc | |
ess.\n\nAlex Gaynor | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:A practical guide to Singular Value Decomposition in Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T135000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T142000 | |
DESCRIPTION:Recommender systems have become increasingly popular in recent | |
years\, and are used by some of the largest websites in the world to pred | |
ict the likelihood of a user taking an action on an item. In the world of | |
Netflix\, this means recommending similar movies to the ones you have seen | |
. In the world of dating\, this means suggesting matches similar to people | |
you already showed interest in!\n\nMy path to recommenders has been an un | |
usual one: from a Software Engineer to working on matching algorithms at a | |
dating company\, with a little background on machine learning. With my kn | |
owledge of Python and the use of basic SVD (Singular Value Decomposition) | |
frameworks\, I was able to understand SVDs from a practical standpoint of | |
what you can do with them\, instead of focusing on the science.\n\nIn my t | |
alk\, you will learn 2 practical ways of generating recommendations using | |
SVDs: matrix factorization and item similarity. We will be learning the hi | |
gh-level components of SVD the "doer way": we will be implementing a simpl | |
e movie recommendation engine with the help of Jupiter notebooks\, the Mov | |
ieLens database\, and the Surprise recommendation package.\n\n\nDaniel Pyr | |
athon | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Clearer Code at Scale: Static Types at Zulip and Dropbox | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T135000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T142000 | |
DESCRIPTION:Python now offers static types! Companies like Dropbox and Fac | |
ebook\, and open-source projects like Zulip\, use static types (with [PEP | |
484](https://www.python.org/dev/peps/pep-0484/) and [mypy](https://github. | |
com/python/mypy)) to make Python more productive and fun to work with — | |
in existing codebases from 40k lines to 4 million\, in Python 2 and 3\, an | |
d while preserving the conciseness and flexibility that make Python a grea | |
t language in the first place. I’ll describe how.\n\nReading and underst | |
anding code is a huge part of what we do as software developers. If we mak | |
e it easier to understand our codebases\, we make everyone more productive | |
\, help each other write fewer bugs\, and lower barriers for new contribut | |
ors. That's why Python now features optional static types\, and why Dropbo | |
x\, [Facebook](https://engineering.instagram.com/let-your-code-type-hint-i | |
tself-introducing-open-source-monkeytype-a855c7284881)\, and [Zulip](https | |
://blog.zulip.org/2016/10/13/static-types-in-python-oh-mypy/) use them on | |
part or all of their Python code.\n\nIn this talk\, I’ll share lessons f | |
rom Zulip’s and Dropbox’s experience — having led the mypy team at D | |
ropbox and working now on the Zulip core team — for how you can start us | |
ing static types in your own codebases\, large or small. We’ll discuss h | |
ow to make it a seamless part of your project’s tooling\; what order to | |
approach things in\; and powerful new tools that make it even easier today | |
to add static types to your Python codebase than ever before.\n\n\nGreg P | |
rice | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:By the Numbers: Python Community Trends in 2017/2018 | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T135500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T142500 | |
DESCRIPTION:Want to know about the latest trends in the Python community a | |
nd see the the big picture of how things have changed over the last few ye | |
ars? Interested in the results of the latest official Python Developers Su | |
rvey 2017 which was supported by the Python Software Foundation and gather | |
ed responses from more than 10.000 Python developers? Come learn about the | |
most popular types of Python development\, trending frameworks\, librarie | |
s and tools\, additional languages being used by Python developers\, Pytho | |
n versions usage statistics and many other insights from the world of Pyth | |
on. All derived from the actual data and professional research such as the | |
Python Developers Survey 2017 which collected responses from over 10.000 | |
Python developers\, organized in partnership between the Python Software F | |
oundation and JetBrains\, the Python Developers Survey 2016\, 3rd party su | |
rveys and supplementary analytical research.\n\nDmitry Filippov\, Ewa Jodl | |
owska | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Flourishing FLOSS: Making Your Project Successful | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T135500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T142500 | |
DESCRIPTION:You maintain an Open Source project with great code? Yet your | |
project isn’t succeeding in the ways you want? Maybe you’re struggling | |
with funding or documentation? Or you just can’t find new contributors | |
and you’re drowning in issues and pull requests?\nOpen Source is made up | |
of many components and we are often better-trained in methods for writing | |
good code\, than in methods for succeeding in the other dimensions we wan | |
t our project to grow. \nIn this talk we’ll explore the different compon | |
ents of an Open Source project and how they work together. After this talk | |
you’ll be well-equipped with a ideas and strategies for growing\, culti | |
vating\, and nourishing your Open Source project. \n\nFor your project to | |
succeed\, all of its non-code components must be well-maintained. What are | |
these different components and what methods can we learn to maintain them | |
?\n\n* Build real relationships with your sponsors and determine ways how | |
both sides can benefit from this relationship\, don’t just ask people fo | |
r money. \n* Establish a good communication system with your contributors: | |
Keep them informed\, listen to their feedback and input\, make them feel | |
heard. \n* Thank the people who worked on ticket triage or marketing\, not | |
just those who wrote code\, in your release notes. \n* Make it easy for n | |
ew contributors to get started: Write and maintain good documentation\, an | |
swer questions in a friendly and timely manner. \n* Market and evangelize | |
in the right places and at the right time: Give conference talks\, organiz | |
e sprints\, keep your project’s Twitter account active\, always curate n | |
ew and interesting content on your blog or website.\n* Implement a Code of | |
Conduct and enforce it if needed: Make your project a safe space to contr | |
ibute for everyone. \n\nWith these methods and a half-dozen others\, you | |
’ll handle beautifully all the components your project needs to succeed. | |
\n\nAnna Ossowski | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Fighting Gerrymandering with PyMC3 | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T135500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T142500 | |
DESCRIPTION:At the end of 2017\, there were seven states with ongoing redi | |
stricting litigation. We will discuss a statistical model that the United | |
States Supreme Court declared to be appropriate in cases of racial gerrym | |
andering\, and show how it can be implemented and used with the library `P | |
yMC3`. We will also discuss what the model tells us about racial gerryman | |
dering in North Carolina.\n\n\nColin Carroll\, Karin C. Knudson | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Don't Look Back in Anger: Wildman Whitehouse and the Great Failure | |
of 1858 | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T135500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T142500 | |
DESCRIPTION:In the 1850s\, Edward Orange Wildman Whitehouse was appointed | |
the lead engineer of the first attempt to build a trans-Atlantic telegraph | |
cable. With the entire population of two continents waiting for his go-li | |
ve\, their handlebar moustaches aquiver\, he demonstrated in fine form jus | |
t how spectacularly a big project can be a bigger disaster.\n\nThis is a t | |
ale of long-winded rants\, spectacular sideburns\, and gentlemen scientist | |
s behaving badly. It is also a lesson about the importance of honest refle | |
ction in technical teamwork. Lilly outlines some of the mistakes made duri | |
ng one of the biggest tech delivery projects in history\, and how a constr | |
uctive view of failure helped to turn it all around. Through the public me | |
ltdowns of Wildman Whitehouse you will learn the importance of feedback\, | |
how to handle complex tasks gracefully\, and the best way to recover from | |
having your pipeline eaten by a whale.\n\nLilly Ryan | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Using Python to build an AI to play and win SNES StreetFighter II | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T135500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T142500 | |
DESCRIPTION:![ryu-python](http://www.thesimplelogic.com/wordpress/wp-conte | |
nt/uploads/2017/12/ryu-python.png)\n\nHear the story of how we used Python | |
to build an AI that plays Super StreetFighter II on the Super NES. We'll | |
cover how Python provided the key glue between the SNES emulator and AI\, | |
and how the AI was built with `gym`\, `keras-rl` and `tensorflow`. We'll s | |
how examples of game play and training\, and talk about which bot beat whi | |
ch bot in the bot-v-bot tournament we ran. \n\nAfter this talk you'll know | |
how easy it is to use Python and Python's machine learning libraries to t | |
each a computer to play games. You'll see a practical example of the same | |
type of machine learning used by AlphaGo\, and also get to find out which | |
character in StreetFighter II is best to pick when playing your friends.\ | |
n\n [1]: https://lh3.googleusercontent.com/Mh9uzCm4JeevMN5w-SWJgzWabrqOCl | |
AVMsa4jJtMRm-il1dP6oVTsRstJSQlbgKf4qh3A08yMZ36pwezsITA=w3230-h1786\n [2]: | |
http://www.thesimplelogic.com/wordpress/wp-content/uploads/2017/12/ryu-py | |
thon.png\n\n\nAdam Fletcher\, Jonathan Mortensen | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:The importance of exploratory data analysis and data visualization | |
in machine learning | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T135500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T142500 | |
DESCRIPTION:All the data in the world is useless if you cannot understand | |
it. EDA and data visualization are the most crucial yet overlooked stage i | |
n analytics process. This is because they give insights on the most releva | |
nt features in a particular data set required to build an accurate model. | |
It is often said that the more the data\, the better the model but sometim | |
es\, this can be counter-productive as more data can be a disadvantage. ED | |
A helps avoid that.\n\nEDA is useful for professionals while data visualiz | |
ation is useful for end-users. \n\nFor end-users: \nA good sketch is bette | |
r than a long speech. The value of a machine learning model is not known u | |
nless it is used to make data driven decisions. It is therefore necessary | |
for data scientists to master the act of telling a story for their work to | |
stay relevant. This is where data visualization is extremely useful. \nW | |
e must remember that the end-users of the results are not professionals li | |
ke us but people who know little or nothing about data analysis. For effec | |
tive communication of our analysis\, there is need for a detailed yet simp | |
le data visualization because the work of a data scientist is not done if | |
data-driven insights and decisions are not made.\n\nFor professionals:\nHo | |
w do you ensure you are ready to use machine learning algorithms in a proj | |
ect? How do you choose the most suitable algorithms for your data set? How | |
do you define the feature variables that can potentially be used for mach | |
ine learning? Most data scientists ask these questions. EDA answers these | |
questions explicitly.\nAlso\, EDA helps in understanding the data. Unders | |
tanding the data brings familiarity with the data\, giving insights on the | |
best models that fit the data set\, the features in the dataset that will | |
be useful for building an accurate machine learning model\, making featur | |
e engineering an easy process.\n\nIn this talk\, I will give a detailed ex | |
planation on what EDA and data visualization are and why they are very hel | |
pful in building accurate machine learning models for analytics as well as | |
enhancing productivity and better understanding for clients. I will also | |
discuss the risks of not mastering EDA and data visualization as a data sc | |
ientist.\n\nOpetunde Adepoju | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Teaching Python 101 | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T140000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T143000 | |
DESCRIPTION:My name is Devishi Jha\, and I am a freshman at Valparaiso Hig | |
h School\, Indiana. I have been taught programming by the Python community | |
\, and currently\, I have been teaching python to children in my local com | |
munity. Throughout elementary and middle school\, I have been taught progr | |
amming in many different ways. Then in late middle school\, I taught progr | |
amming to children at my local library. In this talk\, I have compiled man | |
y teaching methods that I have found useful when learning python/teaching | |
python. I also cover the ages to start coding\, access to computers\, and | |
teaching at school vs. an after-school program. With the help of several c | |
oding teachers\, school principals\, and after-school coding program direc | |
tors\, I hope that this talk will serve as a guide to anyone who wants to | |
teach python or find a good way to learn it.\n\n\nDevishi Jha | |
LOCATION:Room 25A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Lessons Learned from Python-related Tips and Tricks to keep studen | |
ts engaged | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T140000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T143000 | |
DESCRIPTION:(30 minutes)\n\n**Background**: How does one keep a set of pro | |
fessional students interested in Python and data science for 2 whole weeks | |
? Esp. when their employers have paid for the class? Twice a year\, for 2 | |
full weeks\, I have to teach students data science (using Python) to busin | |
ess and industry professionals\, who are not programmers.\n\n**Outline**: | |
In this 30-minute talk\, I hope to share several of the Python-related tea | |
ching 'tricks' that I tried\, along with a few thoughts on why some worked | |
while many failed.\n\n**Students**: My students are professionals working | |
in developing countries (Asia\, Africa\, the Middle East) whose companies | |
have sent them for training. They have some quantitative background but a | |
lmost no computer programming experience (not counting Excel). Hence\, th | |
e choice of Python for instruction. The students are in the age group from | |
25-30\, and at the slightest chance\, they will revert to checking their | |
smartphones.\n\n**Curriculum**: I teach a hands-on Python course. In nine | |
full days\, I get them started on Jupyter\, Python basics\, and Pandas. I | |
then introduce data analysis using Pandas\, plotting\, and introductory ma | |
chine learning. At the end of two weeks\, there is a final project (with c | |
oding and data analysis) that is due.\n\n**Challenges**: Out of a class of | |
around 30\, there are always 4-5 students who have prior programming expe | |
rience and want a lot more out of the class. This “mixed-ability” clas | |
s adds to the difficulty of keeping them all engaged. One additional diffi | |
culty is that this being a “professional development course\,” there i | |
s no grading as such.\n\n**The talk**: Through repeated failures\, I’ve | |
had to adapt and develop several tricks and tips that impart Python and da | |
ta analytics skills to the students while simultaneously keeping them enga | |
ged. I will share the tools and techniques that I have discovered to work | |
(Ex. RISE by Damian Avila on top of Jupyter)\, Jupyter NBextensions\, the | |
frequent use of random numbers in various guises.\n\n**What worked & What | |
didn’t work**: Tapping into their competitiveness by awarding ‘points | |
’ worked. Just handing out handouts didn’t work well\, but Jupyter no | |
tebooks with descriptive text in Markdown worked better. It took me a long | |
time to realize that I was jumping into techniques and algorithms with to | |
o little of preface. Spending a good deal of time on motivating the proble | |
m and ‘building the narrative’ helped get them interested. When trying | |
to teach “*Classification Algorithms*\,” using the canonical *Iris* d | |
ataset (to identify species) flopped\, whereas classifying Tweets as 'from | |
bots' or 'from humans' kept them interested. Web-scraping for Ebola incid | |
ences flopped but getting live soccer scores made the students come alive. | |
\n\nI’ve made an embarrassing number of mistakes\, some of which I will | |
share\, along with my thoughts on why some of these techniques work and ot | |
hers don't. Though I teach regularly\, I am not an educator by training. I | |
am proposing this talk in the hope that I can share my insights and lesso | |
ns\, and learn a few things from seasoned educators a lot more experienced | |
than myself\, for the next time.\n\n\n\nRam Narasimhan | |
LOCATION:Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Types\, Deeper Static Analysis\, and you | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T150000 | |
DESCRIPTION:Many projects already take advantage of static analysis tools | |
like flake8\, PyLint\, and MyPy. Can we do better? In this talk\, I'll dis | |
cuss how to take a type checker\, bolt on an interprocedural static analyz | |
er\, and delight your security team with high quality results.\n\nAbstract | |
\n\nIt is incredibly challenging to build a halfway decent static analysi | |
s tool for a dynamic language like Python. Fortunately\, it gets quite a b | |
it easier with Python type annotations. To explain why\, I'll present a to | |
ol that finds security vulnerabilities by tracking dangerous flows of info | |
rmation interprocedurally across an entire codebase. **Then\,** I'll demon | |
strate how that tool is really just a slightly slower\, more sophisticated | |
\, type checker.\n\n\n\nPieter Hooimeijer | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Automating Code Quality | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T150000 | |
DESCRIPTION:Writing quality Python code can be both tough and tedious. On | |
top of the general design\, there are many code quality aspects that you n | |
eed to watch out for when writing and reviewing code such as adherence to | |
PEP8\, docstring quality\, test quality\, etc. Furthermore\, everyone is h | |
uman. If you are catching these code quality issues by hand\, there is a g | |
ood chance that at some point you will miss an easy opportunity to improve | |
code quality. If the quality check can be done by a machine\, then why wo | |
uld you even try to catch the code quality issue by hand? In the end\, the | |
machine will be able to perform the quality check with much more speed\, | |
accuracy\, and consistency than a person.\n\nThis talk will dive into how | |
existing open source projects offload and automate many of these code qual | |
ity checks resulting in:\n\n- A higher quality and a more consistent codeb | |
ase\n- Maintainers being able to focus more on the higher level design and | |
interfaces\n of a project.\n- An improved contribution process and highe | |
r quality pull requests from\n external contributors\n\nBy diving into ho | |
w these open source projects automate code quality checks\, you will learn | |
about:\n\n- The available tooling related to checking code quality such a | |
s `flake8`\,\n `pylint`\, `coverage`\, etc.\n- How to automate code quali | |
ty checks for both a development and team \n setting.\n- First-hand accou | |
nts of the benefits and lessons learned from automating\n code quality ch | |
ecks in real-life open source projects.\n\n\n\nKyle Knapp | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:How We Do Identity Wrong | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T150000 | |
DESCRIPTION:Most software has a user. Depending on the software\, the user | |
may need to provide various details about themselves for proper operation | |
-- their name\, their date of birth\, where they live. However\, it is qu | |
ite common for software systems such as these to ask the wrong questions\, | |
collect too much data\, and when it comes down to it\, serialise the part | |
s of the user's identity wrongly. This talk will discuss common ways that | |
real-world systems store identity wrong\, what questions you shouldn't ask | |
\, and how you can fix it in your own projects.\n\nAmber Brown ("HawkOwl") | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Big-O: How Code Slows as Data Grows | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T150000 | |
DESCRIPTION:Big-O is a computer science technique for analyzing how code p | |
erforms as data gets larger. It's a very handy tool for the working progr | |
ammer\, but it's often shrouded in off-putting mathematics.\n\nIn this tal | |
k\, I'll teach you what you need to know about Big-O\, and how to use it t | |
o keep your programs running well. Big-O helps you choose the data struct | |
ures and algorithms that will let your code work efficiently even on large | |
data sets.\n\nYou can understand Big-O even if you aren't a theoretical c | |
omputer science math nerd. Big-O isn't as mystical as it appears. It's wra | |
pped in mathematical trappings\, but doesn't have to be more than a common | |
-sense assessment of how your code will behave.\n\n\nNed Batchelder | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:User focused API Design | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180513T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180513T150000 | |
DESCRIPTION:When we talk about Web API Design\, we're usually driven to th | |
ink in architecture\, verbs\, and nouns. But we often forget our user: the | |
developer.\n\nUX designers rely on many techniques to create great experi | |
ences. User research\, User Testing\, Personas\, Usage Data Analysis and o | |
thers. However when creating `invisible products` we’re not used to thin | |
k in usability. So why don’t we take advantage of this background to imp | |
rove our APIs experiences?\n\n\n\nRenato Oliveira | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:GenZeal: A new generation of thinkers who design\, develop\, and d | |
istribute for tomorrow | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T150000 | |
DESCRIPTION:The GenZeal project is an after-school program where students | |
learn design thinking\, applied computational thinking\, and programming s | |
kills to solve a problem in their community. Students research and work wi | |
th local organizations and businesses to design and program microcontrolle | |
rs that run entirely on renewable energy sources to solve a specific need. | |
Through the process\, students earn physical and digital badges for each | |
skill they learn and apply with their project. Students learn applied desi | |
gn thinking\, computational thinking\, and open-source programming languag | |
es. They use what they learn to design\, prototype\, and program their pro | |
ject. The student projects are installed in the community and they monitor | |
their use in conjunction with the community coach. \n\nI will provide det | |
ails and examples of this project that can be replicated in small through | |
large school districts\, rural and urban. I will also explain how our scho | |
ol district redefined our curriculum from little computer science concepts | |
to purposeful\, applied PreK-12 computer science principles. \n\nLaura Ja | |
cob | |
LOCATION:Room 25A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Using GitHub\, Travis CI\, and Python to Introduce Collaborative S | |
oftware Development | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T143000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T150000 | |
DESCRIPTION:Real-world software engineering is collaborative\, commonly in | |
volving the use of Git\, GitHub\, and continuous integration with Travis C | |
I. This presentation will explain how to use these technologies and platfo | |
rms to teach interdisciplinary and introductory courses in computer progra | |
mming and software engineering. This presentation will first show how to c | |
reate a GitHub organization connected to a GitHub Classroom with unlimited | |
private repositories that contain instructor solutions and starter kits a | |
nd assignment submissions for both individual and team-based programming a | |
ssignments. The talk will next explain how to connect GitHub repositories | |
to continuous integration servers hosted by Travis CI\, thus supporting th | |
e cloud-based execution of tests and checks.\n\nThe presentation will subs | |
equently introduce a Python program\, called [GatorGrader](https://github. | |
com/gkapfham/gatorgrader)\, that supports the local and cloud-based checki | |
ng of a student's source code and technical writing for a programming proj | |
ect. GatorGrader can check\, for example\, that a submission contains the | |
required number of comments and produces the correct number of lines of co | |
nsole output. Suitable for use on either a local workstation or a cloud-ba | |
sed server provided by Travis CI\, GatorGrader can\, for instance\, ensure | |
that a student makes the requisite number of commits to a GitHub reposito | |
ry and structures a program in a specified fashion. GatorGrader can also i | |
nvoke external programs that ensure the quality of a student's technical w | |
riting. Finally\, since most of the aforementioned assignments are designe | |
d to be completed in teams\, this presentation introduces [GatorGrouper](h | |
ttps://github.com/GatorGrouper/gatorgrouper)\, another Python program that | |
uses student responses on a Google Form to create suitable groups of stud | |
ents who collaboratively complete programming projects with GitHub.\n\nGre | |
gory M. Kapfhammer | |
LOCATION:Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY: Randomness in Python: Creating Chaos in an Ordered Machine/Contro | |
lled Environment | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T150500 | |
DESCRIPTION:There are many computational needs for randomness--from creati | |
ng a game to building a simulation involving naturally occurring randomnes | |
s similar to the physical world. For most purposes using the python math m | |
odule to create random numbers within a specific range can be done with no | |
further questions\, but sometimes we require a more nuanced implementatio | |
n. \n\nWe will look at both pseudo-random number generators\, which use st | |
atistically repeatable processes to generate seemingly random series and t | |
rue random number generators\, which inject physical processes like atmosp | |
heric noise to generate sequences of numbers. We will discuss the benefits | |
and drawbacks of both approaches and common methods of implementing these | |
two types of generators in python. \n\nFinally\, we will look at several | |
real applications for randomness and discuss the best method for generatin | |
g “randomness” in each scenario. \n\nAmanda Sopkin | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python across the USA: This is the Bus. | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T150500 | |
DESCRIPTION:For 2 years\, a family of three has traveled on a converted sc | |
hool bus from conference to conference\, building tooling for the road in | |
Python and visiting Python families in every corner of the country.\n\nJus | |
tin Myles Holmes | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Birding with Python and Machine Learning | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T150500 | |
DESCRIPTION:In the past few years\, the power of computer vision has explo | |
ded. In this talk\, we'll apply a deep learning model to a bird feeder. We | |
'll use that model to detect\, identify\, and record birds that come to a | |
smart bird feeder.\n\nAlong the way\, we'll learn about different platform | |
s to deploy deep learning cameras on\, from the lowly Raspberry PI all the | |
way up to the powerful NVIDIA Jetson embedded computer with a built in GP | |
U.\n\nKirk Kaiser | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Adapting from Spark to Dask: what to expect | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T150500 | |
DESCRIPTION:Until very recently\, Apache Spark has been a de facto standar | |
d choice of a framework for batch data processing. For Python developers\, | |
diving into Spark is challenging\, because it requires learning the Java | |
infrastructure\, memory management\, configuration management. The multipl | |
e layers of indirection also make it harder to debug things\, especially w | |
hen throwing the Pyspark wrapper into the equation.\n\nWith Dask emerging | |
as a pure Python framework for parallel computing\, Python developers migh | |
t be looking at it with new hope\, wondering if it might work for them in | |
place of Spark. In this talk\, I’m using a data aggregation example to h | |
ighlight the important differences between the two frameworks\, and make i | |
t clear how involved the switch may be.\n\nNote: Just in case it's unclear | |
\, there's no Java of any kind in this talk. All the code / examples use P | |
ython (PySpark).\n\n\nIrina Truong | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Building a cross-platform native app with BeeWare | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T150500 | |
DESCRIPTION:Have you ever wanted to write a GUI application you can run on | |
your laptop? What about an app that you can run on your phone? Historical | |
ly\, these have been difficult to achieve with Python\, and impossible to | |
achieve without learning a different API for each platform. But no more.\n | |
\nBeeWare is a collection of tools and libraries that allows you to build | |
cross-platform native GUI applications in pure Python\, targeting desktop\ | |
, mobile and web platforms. In this talk\, you'll be introduced to the Bee | |
Ware suite of tools and libraries\, and see how you can use them to develo | |
p\, from scratch\, a GUI ChatBot application that can be deployed as a sta | |
ndalone desktop application\, a mobile phone application\, and a single pa | |
ge webapp - without making any changes to the application's codebase.\n\nR | |
ussell Keith-Magee | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Pipenv: The Future of Python Dependency Management | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T150500 | |
DESCRIPTION:This talk is about the history of Python packaging\, the tools | |
that have been historically available for application deployment\, the pr | |
oblems/constraints presented by them\, and presents a holistic solution to | |
many of these problems: Pipenv.\n\nA live demo of the tool will be presen | |
ted\, as well as a Q&A session.\n\nKenneth Reitz | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:You're an expert. Here's how to teach like one. | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T150500 | |
DESCRIPTION:Knowing how to code and being able to teach it are two separat | |
e skills. When we have expertise in a subject\, it's common to take for gr | |
anted that we'll be able to effectively communicate our expertise to someo | |
ne else. Come learn (or re-learn!) how to teach and discover practical exa | |
mples you can put to work right away.\n\nBy sharpening your teaching skill | |
s\, you'll be a more effective mentor\, trainer\, and team member.\n\nShan | |
non Turner | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Beyond scraping: how to use machine learning when you're not sure | |
where to start | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T150500 | |
DESCRIPTION:Scraping one web site for information is easy\, scraping 10000 | |
different sites is hard. Beyond page-specific scraping\, how do you build | |
a program than can extract the publication date of (almost) any news arti | |
cle online\, no matter the web site?\n\nWe’ll cover when to use machine | |
learning vs. humans or heuristics for data extraction\, the different step | |
s of how to phrase the problem in terms of machine learning\, including fe | |
ature selection on HTML documents\, and issues that arise when turning res | |
earch into production code.\n\nJulie Lavoie | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:CuPy: A NumPy-compatible Library for GPU | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T150500 | |
DESCRIPTION:![Logo][https://raw.githubusercontent.com/cupy/cupy/master/doc | |
s/image/cupy_logo_1000px.png]\n\n# CuPy : NumPy-like API accelerated with | |
CUDA\n\n[**Website**](https://cupy.chainer.org/) | [**Docs**](https://docs | |
-cupy.chainer.org/en/stable/) | [**Install Guide**](https://docs-cupy.chai | |
ner.org/en/stable/install.html) | [**Tutorial**](https://docs-cupy.chainer | |
.org/en/stable/tutorial/) | **Examples** ([Official](https://github.com/cu | |
py/cupy/blob/master/examples)) | [**Forum**](https://groups.google.com/for | |
um/#!forum/cupy)\n\nCuPy is an open-source library with NumPy syntax that | |
increases speed by doing matrix operations on NVIDIA GPUs. It is accelerat | |
ed with the CUDA platform from NVIDIA and also uses CUDA-related libraries | |
\, including cuBLAS\, cuDNN\, cuRAND\, cuSOLVER\, cuSPARSE\, and NCCL\, to | |
make full use of the GPU architecture. CuPy's interface is highly compati | |
ble with NumPy\; in most cases it can be used as a drop-in replacement. Cu | |
Py supports various methods\, data types\, indexing\, broadcasting\, and m | |
ore.\n\nShohei Hido | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Easy 2D Game Creation With Arcade | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T143500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T150500 | |
DESCRIPTION:Want to have fun with Python? Do something visual? Get started | |
today? Learn how to draw\, animate\, and use sprites for games with the [ | |
Python Arcade](http://arcade.academy/) library.\n\n"Arcade" is an easy-to- | |
use Python library for creating 2D arcade games. We'll show you how to get | |
started creating your own game\, and find plenty of example code to get a | |
n idea of what you can do with this library. If you are familiar with PyGa | |
me\, Arcade is easier\, more powerful\, and uses recent Python features li | |
ke type hinting and decorators.\n\nThis talk is great for beginners\, educ | |
ators\, and people who want to create their own arcade games.\n\nPaul Vinc | |
ent Craven | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:When data meets education! The secret life of data in education | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T151000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T154000 | |
DESCRIPTION:In the last decades\, the power of data and analytics has tran | |
sformed instruction in education. Increasingly\, large-scale data is avail | |
able on student learning and interaction online. Much of this data represe | |
nts student behavior. This has allowed researchers to model and track many | |
elements of student learning that were not previously feasible at scale: | |
engagement\, affect\, collaborative skill\, and robust learning. In turn\, | |
these models can be used in prediction of long-term student outcomes\, an | |
d to analyze the factors driving long-term success of students\, \n\nThis | |
talk will focus on secret life of data in education\, the key points of my | |
talk will be:\n\n- Data meets education\n- Course tracking\n- Student Beh | |
aviour\n- Data-driven education\n- Finishing strong\n\n\n\n\nRizky Ariesti | |
yansyah | |
LOCATION:Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python for N00bs: A cognitive and educational approach | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T151000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T154000 | |
DESCRIPTION:This talk will put a new spin on helping complete beginners to | |
use Python. We all tend to teach Python the way that we learned it. Howev | |
er\, by applying lessons learned from cognitive science and educational ps | |
ychology\, we can better help a wide range of beginners and open up Python | |
to new audiences. \n\nThe speaker will share examples of successes and fa | |
ilures in teaching Python in several contexts including high school classr | |
ooms\, the Young Coders program\, as well as online and printed curricula. | |
Topics covered will include teaching the command line\, helping new progr | |
amming concepts to “stick\,” increasing engagement with abstract conce | |
pts\, and supporting the independence of new programmers. \n\nThe Python | |
community is an ecosystem built on learning from others and giving back to | |
others. The strategies covered in this talk are useful for creating docum | |
entation for new users\, writing a book or tutorial\, teaching a child or | |
adult\, running a workshop\, or teaching a class. \n\n\nMeg Ray | |
LOCATION:Room 25A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Debugging PySpark -- Or trying to make sense of a JVM stack trace | |
when you were minding your own bus | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T154500 | |
DESCRIPTION:Apache Spark is one of the most popular big data projects\, of | |
fering greatly improved performance over traditional MapReduce models. Muc | |
h of Apache Spark’s power comes from lazy evaluation along with intellig | |
ent pipelining\, which can make debugging more challenging. This talk will | |
examine how to debug Apache Spark applications\, the different options fo | |
r logging in PySpark\, as well as some common errors and how to detect the | |
m.\n\nSpark’s own internal logging can often be quite verbose\, and this | |
talk will examine how to effectively search logs from Apache Spark to spo | |
t common problems. In addition to the internal logging\, this talk will lo | |
ok at options for logging from within our program itself.\n\nSpark’s acc | |
umulators have gotten a bad rap because of how they interact in the event | |
of cache misses or partial recomputes\, but this talk will look at how to | |
effectively use Spark’s current accumulators for debugging as well as a | |
look to future for data property type accumulators which may be coming to | |
Spark in future version.\n\nIn addition to reading logs\, and instrumentin | |
g our program with accumulators\, Spark’s UI can be of great help for qu | |
ickly detecting certain types of problems.\n\nDebuggers are a wonderful to | |
ol\, however when you have 100 computers the “wonder” can be a bit mor | |
e like “pain”. This talk will look at how to connect remote debuggers\ | |
, but also remind you that it’s probably not the easiest path forward.\n | |
\n\nHolden Karau | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python 3: ten years later | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T160000 | |
DESCRIPTION:Looking back at Python evolutions over the last 10 years.\n\nP | |
ython 3.0 was released ten years ago (December 2008). It's time to look ba | |
ck: analyze the migration from Python 2 to Python 3\, see the progress we | |
made on the language\, list bugs by cannot be fixed in Python 2 because of | |
the backward compatibility\, and discuss if it's time or not to bury Pyth | |
on 2.\n\nPython became the defacto language in the scientific world and th | |
e favorite programming language as the first language to learn programming | |
.\n\n\n\nVictor Stinner | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python for the quantum computing age | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T160000 | |
DESCRIPTION:Quantum computers are slowly turning in to reality more than 3 | |
0 years after they were first theorized. The need for quantum computers ha | |
ve become clear as we reach the limits of Moore’s law and yet we need mo | |
re computational power. We are at a very early stage of quantum computing. | |
Yet Python is slowly becoming a defacto language for programming quantum | |
computers. \n\nIn this talk\, we will discuss the difference a traditional | |
computer and a quantum computer. We will learn about the two architecture | |
s namely Quantum annealing and Quantum gate. Finally\, we will learn to pr | |
ogram quantum computers using Python.\n\n\nRavi Chityala | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:The AST and Me | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T160000 | |
DESCRIPTION:Get under the hood and learn about Python's beloved Abstract S | |
yntax Tree. Ever wonder how Python code is run? Overheard people arguing a | |
bout whether Python is interpreted or compiled? In this talk\, we will del | |
ve into the lifecycle of a piece of Python code in order to understand the | |
role that Python's Abstract Syntax Tree plays in shaping the runtime of y | |
our code. Utilizing your newfound knowledge of Python's AST\, you'll get a | |
taste of how you probably already rely on ASTs and how they can be used t | |
o build awesome tools.\n\n\nEmily Morehouse-Valcarcel | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Taking Django Async | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T160000 | |
DESCRIPTION:The Django Channels project has taken a major turn with versio | |
n 2.0\, embracing Python's async functionality and building applications a | |
round an async event loop rather than worker processes.\n\nDoing this\, ho | |
wever\, wasn't easy. We'll look through some of the techniques used to mak | |
e Django coexist in this async world\, including handing off between async | |
and sync code\, writing fully asynchronous HTTP and WebSocket handling\, | |
and what this means for the future of Django\, and maybe Python web framew | |
orks in general.\n\nAndrew Godwin | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Analyzing Data: What pandas and SQL Taught Me About Taking an Aver | |
age | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T154500 | |
DESCRIPTION:“So tell me\,” my manager said\, “what is an average?” | |
\n\nThere’s probably nothing worse than that sinking feeling when you fi | |
nish an analysis\, email it to your manager or client to review\, and they | |
point out a mistake so basic you can’t even fathom how you missed it. \ | |
n\nThis talk is about mine: how to take an average.\n\nAverages are someth | |
ing we use everywhere - it’s a simple np.mean() in pandas or AVG() in SQ | |
L. But recently I’ve come to appreciate just how easy it is to calculate | |
this statistic incorrectly. We learn once - in middle school no less - ho | |
w to take an average\, and never revisit it. Then\, when we are faced with | |
multidimensional datasets (ie. pretty much every dataset out there)\, we | |
never reconsider whether we should be taking an average the same way.\n\nI | |
n this talk\, we follow my arduous and humbling journey of learning how to | |
properly take an average with multidimensional data. We will cover how im | |
properly calculating it can produce grossly incorrect figures\, which can | |
slip into publications\, research analyses and management reports.\n\nAlex | |
Petralia | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:The human nature of failure & resiliency | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T160000 | |
DESCRIPTION:Projects fail in droves. Systems hiccup and hours of downtime | |
follows. Screws fall out all the time\; the world is an imperfect place.\n | |
\nWe talk a lot about building resilient systems\, but all systems are (at | |
least for now) built by humans. Humans who have been making the same type | |
s of mistakes for thousands of years. \n\nJust because failure happens doe | |
sn’t mean we can’t do our best to prevent it or—at the very least— | |
to minimize the damage when it does. As a matter of fact\, embracing failu | |
re can be one of the best things you do for your system. Failure is a vita | |
l part of evolution. By learning to love failure we learn how to take the | |
next step forward. Ignoring or punishing failure leads to stagnation and w | |
asted potential.\n\nThis talk distills 3000 pages of failure research into | |
40 minutes of knowledge about the human factors of failure\, how it can b | |
e recognised\, and how you can work around it to create more resilient sys | |
tems.\n\nBy the end of this talk the audience will have an awareness of th | |
e most common psychological reasons for mistakes and failures and how to d | |
evelop systems and processes to protect against them.\n\nVM (Vicky) Brasse | |
ur | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Dataclasses: The code generator to end all code generators | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T160000 | |
DESCRIPTION:The PEP 557 dataclasses module is available in starting in Pyt | |
hon 3.7. It will become an essential part of every Python programmer's t | |
oolkit. This talk shows what problem the module solves\, explains its key | |
design decisions\, and provides practical examples of how to put it to wo | |
rk.\n\nDataclasses are shown to be the next step in a progression of data | |
aggregation tools: tuple\, dict\, simple class\, bunch recipe\, named tupl | |
es\, records\, attrs\, and then dataclasses. Each builds upon the one that | |
came before\, adding expressiveness at the expense of complexity.\n\nData | |
classes are unique in that they let you selectively turn-on or turn-off it | |
s various capabilities and it lets the user choose the underlying data sto | |
re (either instance dictionary\, instance slots\, or an inherited base cla | |
ss).\n\nDataclasses and typing.NamedTuple both use variable annotations wh | |
ich were new in Python 3.6.\n\n\n\n\n\n\n\n\n\nRaymond Hettinger | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Controlling apples with snakes: Automating mobile apps with Appium | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T154500 | |
DESCRIPTION:Testing mobile applications is hard. Testing manually is nearl | |
y impossible.\nThat’s where automated testing shines. Just sit back and | |
watch the machine go!\nPython is a very powerful language for writing auto | |
mated tests\, but since Python is not installed on mobile platforms\, we n | |
eed to find a way to remotely control and monitor the device.\nBut how do | |
we automate a device remotely? The answer is Appium.\n\nIn this talk I wil | |
l go over the process of deploying and testing iOS (or Android) applicatio | |
ns\, and how to work with Appium to easily generate Python 3 code for test | |
ing your application.\n\nNir Arad | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Surviving (and thriving!) when you are overloaded | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T151500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T154500 | |
DESCRIPTION:Taking on leadership roles always includes new demands on your | |
attention and time. Inevitably\, your finite work week will conflict with | |
the sheer amount of tasks you have to do. How can we as leaders keep step | |
ping up to new responsibilities while balancing our pre-existing ones?\n\n | |
This talk will focus on strategies for managing a too-large workload witho | |
ut abandoning important tasks or doing a shoddy job. We’ll look at techn | |
iques to prioritize what work matters most\, identify tasks we should be d | |
oing ourselves\, and finally delegate the rest to build our team’s skill | |
s while reducing our own workload.\n\nScott Triglia | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:How I Learned to Stop Worrying and Love Python at Google | Tech Ta | |
lk Series | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T153000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T170000 | |
DESCRIPTION:Continuing with tradition\, our sponsor workshop session featu | |
res three awesome half-hour Python tech talks as they relate to Google. He | |
ar about Python tools we’ve built in-house\, using Python with Google de | |
veloper tools to build your web & mobile applications with or best practic | |
es on how we use Python internally at Google. You’re invited to stop by | |
and hear from a cadre of world-class Google engineers from around the worl | |
d! :-)\n\nWesley Chun | |
LOCATION:Room 23 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Datadog: Distributed Tracing for Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T153000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T170000 | |
DESCRIPTION:Tracing is a specialized form of logging that is designed to w | |
ork effectively in large\, distributed environments. When done right\, tra | |
cing follows the path of a request across process and service boundaries. | |
This provides a big step-up in application observability and can help info | |
rm a developer why certain requests are slow\, or why they might have beha | |
ved unexpectedly. This tutorial will familiarize users with the benefits o | |
f tracing\, and describe a general toolkit for emitting traces from Python | |
applications in a minimally intrusive way. We will walk through a simple | |
example app\, which receives an HTTP request and gradually instrument it t | |
o be observable via traces. We will discuss language constructs that can g | |
enerate traces - namely decorators\, monkey-patching and context managers | |
- and give users hints on how they might add tracing to their own applicat | |
ions and libraries. In the process\, users will become familiar with the e | |
xisting standards for modeling traces\, and some of the challenges involve | |
d in adhering to this model in a distributed\, asynchronous environment.\n | |
\nMichael Whetten | |
LOCATION:Room 13 | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Build serverless applications easily with Chalice – an open sour | |
ce Python framework | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T153000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T170000 | |
DESCRIPTION:Serverless applications make it easy for you to run your code | |
without managing servers. AWS Chalice is a serverless Python framework for | |
getting your serverless application up and running in minutes. In this tu | |
torial\, you'll learn how to build a serverless application using AWS Chal | |
ice. We will cover authoring a RESTful service that leverages Amazon API G | |
ateway and AWS Lambda as well as various deployment options.\n\nJames Sary | |
erwinnie | |
LOCATION:Room 25C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Jupyter Tools for Teaching and Learning | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T154000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T161000 | |
DESCRIPTION:Project Jupyter is the center of a set of technologies that gr | |
ew out of simple tools to make Python easier to use. Today\, Jupyter is co | |
mposed of powerful client-server applications and protocols for computing | |
in many programming languages. This talk focuses on using these technologi | |
es for pedagogical purposes. \n\nEvery course I have taught since the Fall | |
semester of 2014 has been over the web via our JupyterHub server. These c | |
ourses have included firstyear writing seminars\, as well as courses in Pr | |
ogramming Languages\, Assembly Language\, Introduction to Biology (in Pyth | |
on)\, and in Processing (Java-based). In this talk I hope to help identify | |
best-practices for using Jupyter in the classroom. I will discuss and dem | |
onstrate tools and techniques\, and explore the challenges of using Jupyte | |
r for teaching and learning.\n\nDouglas Blank | |
LOCATION:Room 25A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Pycamp 2K17: A Disclaimer | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180510T154000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180510T161000 | |
DESCRIPTION:Nagpur is a tier-two city in India. There were no user groups\ | |
, programming meetups and that too in Python? Impossible! It really seemed | |
impossible to organise people and do something that will make them intere | |
sted in learning and contributing. \nAs a student of Computer Engineering | |
Bachelor's Degree Program\, I always felt that drive missing in my fellow | |
classmates.\nMy talk covers the journey of organising first Django Girls M | |
eetup and first ever Python BootCamp of my city called "Pycamp 2k17". \nIt | |
covers the journey of survival\, how being a women it made tougher and ho | |
w we ended up putting a disclaimer on our website because we never knew th | |
at name 'PyCamp' has a copyright! \nHow me and my team managed to sell tic | |
kets of worth INR 50\,000 to the people who hardly ever heard of the name | |
'Python'. \nAnd cherry on the cake to get 'PSF' sponsoring the event.\n\nA | |
nubha Maneshwar | |
LOCATION:Room 25B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:How to Write Deployment-friendly Applications | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T161500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T170000 | |
DESCRIPTION:The DevOps movement gave us many ways to put Python applicatio | |
ns into production. But should your *application* care? Should it need t | |
o know whether it’s running on your notebook\, on a server\, in a Docker | |
container\, or in some cloud platform as a service?\n\nIt should not\, be | |
cause environment-agnostic applications are easier to **test**\, easier to | |
**deploy**\, easier to **handle**\, and easier to **scale**.\n\nBut how c | |
an you *practically* structure and configure your applications to make the | |
m indifferent to the environment they run in? How do secrets fit into the | |
picture? And where do you put that log file?\n\nBy the end of this talk | |
you’ll know the tools and techniques that enable you to write such Pytho | |
n applications and you’ll be ready for the next big change.\n\nHynek Sch | |
lawack | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:What is a Python Core Developer? | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T161500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T170000 | |
DESCRIPTION:How do you become a Python core developer? How can I become on | |
e? What is it like to be a Python core developer?\n\nThese are the questio | |
ns I often receive ever since I became a Python core developer a year ago. | |
Contributing to Python is a long journey that does not end when one earns | |
the commit privilege. There are responsibilities to bear and expectations | |
to live up to.\n\nIn the past year\, I've been learning more about what i | |
t really means to be a Python core developer. Let me share all of that wit | |
h you.\n\n\nMariatta Wijaya | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Exploring Deep Learning Framework PyTorch | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T161500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T170000 | |
DESCRIPTION:Anyone who is interested in deep learning has gotten their han | |
ds dirty playing around with Tensorflow\, Google's open source deep learni | |
ng framework. Tensorflow has its benefits like wide scale adoption\, deplo | |
yment on mobile\, and support for distributed computing\, but it also has | |
a somewhat challenging learning curve\, is difficult to debug\, and hard t | |
o deploy in production. PyTorch is a new deep learning framework that solv | |
es a lot of those problems.\n\nPyTorch is only in beta\, but users are rap | |
idly adopting this modular deep learning framework. PyTorch supports tenso | |
r computation and dynamic computation graphs that allow you to change how | |
the network behaves on the fly unlike static graphs that are used in frame | |
works such as Tensorflow. PyTorch offers modularity which enhances the abi | |
lity to debug or see within the network and for many\, is more intuitive t | |
o learn than Tensorflow.\n\nThis talk will objectively look at PyTorch and | |
why it might be the best fit for your deep learning use case and we'll lo | |
ok at use cases that will showcase why you might want consider using Tenso | |
rflow instead.\n\n\n\n\nStephanie Kim | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Reactive Programming with RxPy | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T161500 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T170000 | |
DESCRIPTION:Web applications contains lots of database operations\, networ | |
k calls\, nested callbacks and other computationally expensive tasks that | |
might take a long time to complete or even block other threads until it's | |
done\, here is where ReactiveX enters\, it doesn't only gives us the facil | |
ity to convert almost anything to a stream\; variables\, properties\, user | |
inputs\, caches\, etc to manage it asynchronously. But it also gives us a | |
n easy way to handle errors which is a hard task within asynchronous progr | |
amming. ReactiveX makes our code more flexible\, readable\, maintainable a | |
nd easy to write.\n\nWe will be exploring how ReactiveX help us to make th | |
ings easier with its operators toolbox that can be used to filter\, create | |
\, transform or unify any of those streams. We will learn that in just a f | |
ew lines of maintainable code\, we can have multiple web sockets which rec | |
ieves multiple requests all handled by an asynchronous process that serves | |
a filtered output.\n\nTo do that I decided to explain an example of the u | |
se with an example by implementing observables\, observers/subscribers and | |
subjects. We will start by requesting our data stream from the Github API | |
with a Tornado web socket and then filtering and processing it asynchroun | |
osly.\n\nValery Calderon | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Building a Data Pipeline with Testing in Mind | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T163000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T170000 | |
DESCRIPTION:It’s one thing to build a robust data pipeline process in py | |
thon but a whole other challenge to find tooling and build out the framewo | |
rk that allows for testing a data process. In order to truly iterate and d | |
evelop a codebase\, one has to be able to confidently test during the deve | |
lopment process and monitor the production system. \n\nIn this talk\, I ho | |
pe to address the key components for building out end to end testing for d | |
ata pipelines by borrowing concepts from how we test python web services. | |
Just like how we want to check for healthy status codes from our API respo | |
nses\, we want to be able to check that a pipeline is working as expected | |
given the correct inputs. We’ll talk about key features that allows a da | |
ta pipeline to be easily testable and how to identify timeseries metrics t | |
hat can be used to monitor the health of a data pipeline.\n\nJiaqi Liu | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Listen\, Attend\, and Walk : Interpreting natural language navigat | |
ional instructions | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T163000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T170000 | |
DESCRIPTION:Imagine you have an appointment in a large building you do not | |
know. Your host sent instructions describing how to reach their office. T | |
hough the instructions were fairly clear\, in a few places\, such as at th | |
e end\, you had to infer what to do. How does a _robot (agent)_ interpret | |
an instruction in the environment to infer the correct course of action? E | |
nabling harmonious _Human - Robot Interaction_ is of primary importance if | |
they are to work seamlessly alongside people.\n\nDealing with natural lan | |
guage instructions in hard because of two main reasons\, first being\, Hum | |
ans - through their prior experience know how to interpret natural languag | |
e but agents can’t\, and second is overcoming the ambiguity that is inhe | |
rently associated with natural language instructions. This talk is about h | |
ow deep learning models were used to solve such complex and ambiguous prob | |
lem of converting natural language instruction into its corresponding acti | |
on sequence.\n\nFollowing verbal route instructions requires knowledge of | |
language\, space\, action and perception. In this talk I shall be presenti | |
ng\, a neural sequence-to-sequence model for direction following\, a task | |
that is essential to realize effective autonomous agents.\n\nAt a high lev | |
el\, a sequence-to- sequence model is an end-to-end model made up of two r | |
ecurrent neural networks: \n\n - **Encoder** - which takes the model’s i | |
nput sequence as input and encodes it into a fixed-size context vector.\n | |
- **Decoder** - which uses the context vector from above as a seed from wh | |
ich to generate an output sequence. \n\nFor this reason\, sequence-to-sequ | |
ence models are often referred to as _encoder-decoder_ models. The alignme | |
nt based encoder-decoder model would translate the natural language instru | |
ctions into corresponding action sequences. This model does not assume any | |
prior linguistic knowledge: syntactic\, semantic or lexical. The model le | |
arns the meaning of every word\, including object names\, verbs\, spatial | |
relations as well as syntax and the compositional semantics of the languag | |
e on its own.\n\nIn this talk\, steps involved in pre-processing of data\, | |
training the model\, testing the model and final simulation of the model | |
in the virtual environment will be discussed. This talk will also cover so | |
me of the challenges and trade-offs made while designing the model.\n\nPad | |
maja Bhagwat | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python Performance Investigation by Example | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T163000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T170000 | |
DESCRIPTION:Occasionally we’ll find that some bit of Python we’ve writ | |
ten doesn’t run as fast as we’d like\, what can we do? Performance bot | |
tlenecks aren’t always intuitive or easy to spot by reading code so we n | |
eed to collect data with [profiling](https://docs.python.org/3.6/library/p | |
rofile.html). Once we’ve identified the bottleneck we’ll need to chang | |
e our approach\, but what options are faster than others?\n\nThis talk ill | |
ustrates a Python performance investigation and improvements using an [Adv | |
ent of Code](http://www.adventofcode.com/) programming challenge. I’ll w | |
alk through starting from a slow (but correct) solution\, look at profilin | |
g data to investigate _why_ it’s slow\, and explore multiple paths for i | |
mproving performance\, including more efficient algorithms and using third | |
-party tools like [Cython](http://cython.org/). You’ll leave this talk w | |
ith a recipe for analyzing Python performance and information about some o | |
ptions for improved performance.\n\nMatt Davis | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python 2 to 3: How to Upgrade and What Features to Start Using | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T163000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T170000 | |
DESCRIPTION:The end of life for Python 2 is 2020. Python 3 is the future a | |
nd you'll need to consider both your upgrade plan and what steps you'll ta | |
ke after upgrading to start leveraging Python 3 features.\n\nDuring this t | |
alk we'll briefly discuss how to start **the process of upgrading your cod | |
e to Python 3**. We'll then dive into some of **the most useful Python 3 f | |
eatures** that you'll be able to start embracing once you drop Python 2 su | |
pport.\n\nA number of the most powerful Python 3 features are syntactic fe | |
atures that are **Python 3 only**. You won't get any experience using thes | |
e features until you fully upgrade. These features are an incentive to dro | |
p Python 2 support in existing 2 and 3 compatible code. You can consider t | |
his talk as a teaser of Python 3 features that you may have never used.\n\ | |
nAfter this talk I hope you'll be inspired to fully upgrade your code to P | |
ython 3.\n\nTrey Hunner | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Trio: Async concurrency for mere mortals | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T163000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T170000 | |
DESCRIPTION:Concurrent programs are super useful: think of web apps juggli | |
ng lots of simultaneous downloads and websocket connections\, chat bots tr | |
acking multiple concurrent conversations\, or web spiders fetching pages i | |
n parallel. But *writing* concurrent programs is complicated\, intimidatin | |
g to newcomers\, and often challenging even for experts.\n\nDoes it have t | |
o be? Python is famous for being simple and straightforward\; can Python m | |
ake concurrent programming simple and straightforward too? I think so. By | |
carefully analyzing usability pitfalls in other libraries\, and taking adv | |
antage of new Python 3 features\, I've come up with a new set of primitive | |
s that make it dramatically easier to write correct concurrent programs\, | |
and implemented them in a new library called [Trio](https://trio.readthedo | |
cs.io). In this talk\, I'll describe these primitives\, and demonstrate ho | |
w to use them to implement a basic algorithm for speeding up TCP connectio | |
ns. Compared to the best previous Python implementation\, our version turn | |
s out to be easier to understand\, more correct\, and dramatically shorter | |
.\n\nThis talk assumes basic familiarity with Python\, but does *not* requ | |
ire any prior experience with concurrency\, async/await\, or networking.\n | |
\n\nNathaniel J. Smith | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Fighting the Good Fight: Python 3 in your organization | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T163000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T170000 | |
DESCRIPTION:Today\, services built on Python 3.6.3 are widely used at Face | |
book. But as recently as May of 2014 it was actually impossible at all to | |
use Python 3 at Facebook. Come learn how we cut the Gordian Knot of depend | |
encies and social aversion to the point where new services are now being w | |
ritten in Python 3 while older Python 2 projects are actively migrated to | |
Python 3. All accomplished by a small group of individual contributors in | |
their spare time. Learn to fight the good fight and upgrade your organizat | |
ion to Python 3 like we did at Facebook.\n\nJason Fried | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Secrets of a WSGI master. | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T174000 | |
DESCRIPTION:The WSGI (Web Server Gateway Interface) specification for host | |
ing Python web applications was created in 2003. Measured in Internet time | |
\, it is ancient. The oldest main stream implementation of the WSGI specif | |
ication is mod_wsgi\, for the Apache HTTPD server and it is over 10 years | |
old.\n\nWSGI is starting to be regarded as not up to the job\, with techno | |
logies such as HTTP/2\, web sockets and async dispatching being the way fo | |
rward. Reality is that WSGI will be around for quite some time yet and for | |
the majority of use cases is more than adequate.\n\nThe real problem is n | |
ot that we need to move to these new technologies\, but that we aren't usi | |
ng the current WSGI servers to their best advantage. Moving to a new set o | |
f technologies will not necessarily make things better and will only creat | |
e a new set of problems you have to solve.\n\nAs one of the oldest WSGI se | |
rver implementations\, Apache and mod\\_wsgi may be regarded as boring and | |
not cool\, but it is still the most stable option for hosting WSGI applic | |
ations available. It also hasn't been sitting still\, with a considerable | |
amount of development work being done on mod\\_wsgi in the last few years | |
to make it even more robust and easier to use in a development environment | |
as well as production\, including in containerised environments.\n\nIn th | |
is talk you will learn about many features of mod\\_wsgi which you probabl | |
y didn't even know existed\, features which can help towards ensuring your | |
Python web application deployment performs to its best\, is secure\, and | |
has a low maintenance burden.\n\nTopics which will be covered include:\n\n | |
* Easy deployment of Python web applications using mod\\_wsgi-express.\n* | |
Integration of mod_wsgi-express with a Django web application.\n* Using mo | |
d\\_wsgi-express in a development environment.\n* How to make use of mod\\ | |
_wsgi-express in a production environment.\n* Using mod_wsgi-express in a | |
containerised runtime environment.\n* Ensuring consistency between develop | |
ment and production environments using warpdrive.\n* Using mod\\_wsgi-expr | |
ess to bootstrap a system Apache installation for hosting WSGI application | |
s.\n* Why you should be using daemon mode of mod\\_wsgi and not embedded m | |
ode.\n* How to properly associate mod\\_wsgi with a Python virtual environ | |
ment.\n* Building a robust deployment that can recover from misbehaving ap | |
plication code\, backend services\, or request overloading.\n* Using hooks | |
provided by mod\\_wsgi to monitor the performance of your Python web appl | |
ication.\n\nIf you are a beginner\, come learn why mod\\_wsgi is still a g | |
ood option for deploying your Python web applications. If you are an old t | |
ime user of mod\\_wsgi\, find out about all the features you probably didn | |
't know existed\, revisit your current Python web application deployment a | |
nd make it even better.\n\nGraham Dumpleton | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Bowerbirds of Technology: Architecture and Teams at Less-than-Goog | |
le Scale | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T174000 | |
DESCRIPTION:Facebook\, Google\, Uber\, LinkedIn\, and friends are the rare | |
fied heights of software engineering. They encounter and solve problems at | |
scales shared by few others\, and as a result\, their priorities in produ | |
ction engineering and architecture are just a bit different from the rest | |
of us down here in the other 99% of services. Through deconstructing a few | |
blog posts from these giants\, we’ll evaluate just what is it that they | |
’re thinking about when they build systems and whether any of their choi | |
ces are relevant to those of us operating at high scale yet still somethin | |
g less than millions of requests per second.\n\nThis talk will go into dep | |
th on how to make technological decisions to meet your customers’ requir | |
ements without requiring a small army of engineers to answer 2 AM pages\, | |
and how to set realistic goals for your team around operations\, uptime\, | |
communications\, and disaster recovery.\n\nWith these guidelines in mind\, | |
you should be better equipped to say no (or yes!) the next time your team | |
’s software hipster proposes moving everything to the Next Big Thing.\n\ | |
nSam Kitajima-Kimbrel | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Visual Testing with PyCharm and pytest | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T174000 | |
DESCRIPTION:Know you should be doing testing but haven’t gotten over the | |
hurdle to learn it? pytest is Python’s modern\, friendly\, and powerful | |
testing framework. When paired with an IDE\, testing gets a visual interf | |
ace\, making it much easier to get started.\n\nIn this talk we cover “vi | |
sual testing”: starting\, learning\, using\, and mastering test-driven d | |
evelopment (TDD) with the help of a nice UI. We’ll show PyCharm Communit | |
y Edition\, a free and open-source Python IDE\, as a productive TDD enviro | |
nment for pytest. Specifically\, we’ll show a workflow using pytest and | |
PyCharm that helps make tests speed up development\, or at the very least | |
help to make testing seem less "in the way" of other development activitie | |
s\n\nBrian Okken\, Paul Everitt | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:All in the timing: How side channel attacks work | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T174000 | |
DESCRIPTION:In this talk\, you’ll learn about a category of security iss | |
ue known as side channel attacks. You’ll be amused to see how features l | |
ike automatic data compression\, short-circuit execution\, and determinist | |
ic hashing can be abused to bypass security systems. No security backgroun | |
d knowledge is required. The talk assumes at least intermediate Python exp | |
erience.\n\nWe’ll take a tour of real side channel vulnerabilities in op | |
en source Python codebases\, including the patches that fixed them. It als | |
o offers practical advice for avoiding these issues. My goal is to demysti | |
fy this topic\, even if you aren’t writing security-critical software.\n | |
\n\nPhilip James\, Asheesh Laroia | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Elegant Solutions For Everyday Python Problems | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T174000 | |
DESCRIPTION:Are you an intermediate python developer looking to level up? | |
Luckily\, python provides us with a unique set of tools to make our code m | |
ore elegant and readable by providing language features that make your cod | |
e more intuitive and cut down on repetition. In this talk\, I’ll share p | |
ractical pythonic solutions for supercharging your code. \n\nSpecifically\ | |
, I'll cover:\n\n- What magic methods are\, and show you how to use them i | |
n your own code.\n- When and how to use partial methods.\n- An explanation | |
of ContextManagers and Decorators\, as well as multiple techniques for im | |
plementing them.\n- How to effectively use `NamedTuples`\, and even subcla | |
ss and extend them!\n\nLastly\, I'll go over some example code that ties m | |
any of these techniques together in a cohesive way. You'll leave this talk | |
feeling confident about using these tools and techniques in your next pyt | |
hon project!\n\nNina Zakharenko | |
LOCATION:Room 26A/B/C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:A Bit about Bytes: Understanding Python Bytecode | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T174000 | |
DESCRIPTION:At some point every Python programmer sees Python bytecode fil | |
es -- they're those '.pyc' files Python likes to leave behind after it run | |
s. But have you ever wondered what's really going on in those files? Well\ | |
, wonder no more! In this talk you'll learn what Python bytecode is and ho | |
w it's used to execute your code\, as well as how to decipher and read it\ | |
, and how to reason about bytecode to understand the performance of your P | |
ython code.\n\nJames Bennett | |
LOCATION:Grand Ballroom B | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:The Journey Over the Intermediate Gap | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T174000 | |
DESCRIPTION:Congratulations on finishing your first tutorials or classes i | |
n python! In the parlance of the hero’s journey myth\, you’ve had your | |
‘threshold moment”: you’ve started down a path that could lead to a | |
long and fulfilling career. But the road to this glorious future is frust | |
ratingly obscured by a lack of guidance in the present. You know enough to | |
realize that you don’t have all the skills you need yet\, but it’s ha | |
rd to know how to learn those skills\, or even articulate what they are. T | |
here are no easy solutions to this problem. There are\, however\, a few fu | |
ndamental things to know and advice to keep in mind. Drawing from my own e | |
xperience and with input from others\, I’ve compiled some helpful hints | |
about the skills\, tools\, and guiding questions that will get you to mast | |
ery.\n\nSara Packman | |
LOCATION:Grand Ballroom A | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Get your resources faster\, with importlib.resources | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T174000 | |
DESCRIPTION:Resources are files that live within Python packages. Think t | |
est data files\, certificates\, templates\, translation catalogs\, and oth | |
er static files you want to access from Python code. Sometimes you put th | |
ese static files in a package directory within your source tree\, and then | |
locate them by importing the package and using its `__file__` attribute. | |
But this doesn't work for zip files!\n\nYou could use `pkg_resources`\, a | |
n API that comes with `setuptools` and hides the differences between files | |
on the file system and files in a zip file. This is great because you do | |
n't have to use `__file__`\, but it's not so great because `pkg_resources` | |
is a big library and can have potentially severe performance problems\, e | |
ven at import time.\n\nWelcome to `importlib.resources`\, a new module and | |
API in Python 3.7 that is also available as a standalone library for olde | |
r versions of Python. `importlib.resources` is build on top of Python's e | |
xisting import system\, so it is very efficient. It also defines an abstr | |
act base class which loaders can implement to provide their own resource a | |
ccess. Python's built-in zipimporter uses this to provide efficient acces | |
s to resources within a zip file. Third party import hooks can do the sam | |
e\, so resources can come from anything that is importable by Python.\n\nT | |
his talk will step through the motivations behind `importlib.resources`\, | |
the library's usage\, its interfaces\, and the hooks made available to thi | |
rd party packages. It will also talk about the minor differences between | |
the standalone version and the version in Python 3.7's standard library. | |
Hopefully audience members will come away with compelling reasons to port | |
their code to this much more efficient library.\n\nBarry Warsaw | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python\, Locales and Writing Systems | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180512T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180512T174000 | |
DESCRIPTION:Python 3 removes a lot of the confusion around Unicode handlin | |
g in Python\, but that by no means fixes everything. Different locales and | |
writing systems have unique behaviours that can trip you up. Here’s som | |
e of the worst ones and how to handle them correctly.\n\nRae Knowler | |
LOCATION:Global Center Ballroom AB | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Love your bugs | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20180511T171000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20180511T174000 | |
DESCRIPTION:Wrestling bugs can be one of the most frustrating parts of pro | |
gramming - but with the right framing\, bugs can also be our best allies. | |
I'll tell the tales of two of my favorite bugs\, including the time I trig | |
gered a DDOS of a logging cluster\, and explain why I love them. I'll also | |
give you concrete strategies for approaching tricky bugs and making them | |
easier and more fun.\n\nAllison Kaptur | |
LOCATION:Grand Ballroom C | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python Developers Survey 2017: Findings | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Want to know about the latest trends in the Python community a | |
nd see the big picture of how things have changed over the last few years? | |
Interested in the results of the latest official Python Developers Survey | |
2017 which was supported by the Python Software Foundation and gathered r | |
esponses from more than 10.000 Python developers? Come learn about the mos | |
t popular types of Python development\, trending frameworks\, libraries an | |
d tools\, additional languages being used by Python developers\, Python ve | |
rsions usage statistics and many other insights from the world of Python. | |
All derived from the actual research: Python Developers Survey 2017 which | |
collected responses from over 10.000 Python developers\, organized in part | |
nership between the Python Software Foundation and JetBrains.\n\nDmitry Fi | |
lippov | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Building Reproducible Machine Learning Models with Python and Dock | |
er | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:A 2016 study by the journal _Nature_ found that 90% of working | |
scientists surveyed think there is a "slight" or "significant" crisis in | |
experimental reproducibility. For the working data scientist\, the process | |
es and models used in analysis must be able to be used to reproduce result | |
s or to be applied to new data. We ran into these same problems while buil | |
ding an API for developers to easily incorporate Machine Learning algorith | |
ms in their software. We were able to leverage Docker\, Python\, Flask\, a | |
nd Amazon S3 to enable the reuse of the exact model generated in the initi | |
al analysis. This poster will show how those pieces are put together and h | |
ow you could create a similar system for your analysis. \n\nJeff Espenschi | |
ed | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Spfy: analyzing E.coli genomes as graph data | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Whole genome sequencing isn't only for humans\, but also plays | |
a key role in our understanding of bacteria. Spfy uses WGS data to predic | |
t traditional lab results for E.coli genomes. The results are then stored | |
in a linked graph for identifying and comparing different subtypes.\nThe e | |
ntire platform is packaged as a web-app\, and the analysis modules are wri | |
tten in Python (+ a bit of R). Part of a larger open-source initiative by | |
the National Microbiology Lab of Canada.\n\nKevin K Le | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Curriculum for project-based data science classes and their buildi | |
ng blocks | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Machine learning\, artificial intelligence and data science ar | |
e \ninterdisciplinary subjects and therefore they are difficult to teach. | |
We suggest educational building blocks that help students to understand m | |
achine learning software (such as scikit-learn) and create their own artif | |
icial intelligence algorithms. These building blocks are theoretical compo | |
nents of global optimization algorithms (derived in [1]- more information | |
of these building blocks will be given later ) as well as some other numer | |
ical procedures(such as automatic differentiation\, see\, for example\, Py | |
thon implementations Autograd and AlgoPy). \nBased on these building block | |
s the programming projects \nare created that demonstrate certain steps in | |
machine learning algorithms and show how these steps appear in popular m | |
odern machine learning methods.\nThese projects become a foundation of pro | |
ject based data \nscience courses\, such as Data Analysis and Decision Mak | |
ing using Python\, Python for Financial Applications\, Operations Research | |
models using Python\, etc. \n\nBuilding Blocks\n\nIn [1] the theoretical | |
approach for the design of global optimization \nmethods based on potentia | |
l theory was introduced. This approach extends \nthe theory of gradient ba | |
sed optimization for algorithmically defined \nfunctions (or black box fun | |
ctions)\, where analytical representation of the function is not available | |
or too complicated to work with (say\, too hard to compute derivatives). | |
Such situations are very common in real world applications. Based on this | |
theory\, the parsimonious set of building blocks \nof the optimization alg | |
orithms was obtained. The hypothetical algorithm \nwhere all these buildin | |
g blocks are present in their full form is given \nin [1]-[3]. It is shown | |
that by varying the parameters of the building blocks we obtain the whole | |
universe of optimization methods\, some of them we recognize as well know | |
n heuristic techniques such as covariance matrix adaptation evolution stra | |
tegy\, Shor r algorithm\, Nelder and Mead algorithm etc. Main building blo | |
cks are defined as linear algebra operations: space dilation operator (bas | |
ed on this operator space transformation is defined)\, Householder transfo | |
rmation as a certain case of space dilation operator and memory accumulati | |
on module (accumulates information from the previous iterations of the alg | |
orithms). \nOther numerical procedures that algorithms are built upon are | |
automatic differentiation and natural gradient.\n\nExamples of the projec | |
ts\n\nHouseholder transformation in Nelder and Mead algorithm (fmin functi | |
on in SciPy)\n\nSpace dilation operator in Shor r-algorithm [5] and in Cov | |
ariance matrix \nadaptation evolution strategy(CMA-ES) [6]\n\nCombining au | |
tomatic differentiation with gradient-based algorithms for \noptimization | |
of algorithmically defined functions.\n\nNatural gradient evolution strate | |
gy [4]\n\nCoordinate transformation\, cootdinate descent algorithm and sep | |
arable \nfunctions. Invariance of coordinate descent method with respect t | |
o \nscaling and rotation of the search space.\n\nMemory accumulation modul | |
e. Comparizon of memory accumulation in Shor \nalgorithm and genetic algor | |
ithm\n\nMulti objective optimization vs constrained optimization\n\n[1]Kap | |
linskii A.I.\, Propoi A.I.\, First-order nonlocal optimization methods tha | |
t use potential theory\, Automation and Remote Control \, 1994\, №7\, | |
pp.94-103.\n[2]Kaplinskii A.I.\, Propoi A.I.\, Nonlocal optimization meth | |
ods that use potential theory\, Automation and Remote Control \, 1993\ | |
, №7\, pp.55-66.\n[3]Kaplinskii A.I.\, Propoi A.I.\, Second-order refin | |
ement conditions in nonlocal optimization methods that use potential theor | |
y\, Automation and Remote Control \, 1994\, №8\, pp.104-113.\n[4]N. H | |
ansen\, Covariance Matrix Adaptation Evolution Strategy:A Tutorial \, N.Ha | |
nsen \, Cornell University Library\, 2016\nhttps://arxiv.org/abs/1604.0077 | |
2\n[5]Tom Schaul\, Studies in Continuous Black Box Optimization\, PhD diss | |
ertation\, 2011 \n[6]N.Shor \,Minimization Methods for Non-Differentiable | |
functions\, Springer 1985\n\n\n\nNadia Udler | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python and Windows C++ desktop app: how we made them the best frie | |
nds | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Have you ever dreamed of live peeking and hacking inside big C | |
++ desktop application? Controlling it with simple and elegant Python code | |
? That's what we do in our test automation team at Avast software. \n\n\nW | |
hen we were thinking about test automation for software which protects hun | |
dreds of millions users worldwide\, we wanted our tests to be as stable as | |
possible. That's why we targeted internals of the application.\n\n\nBoost | |
Python allows us to easily export internal C++ interfaces of our applicat | |
ion to be controlled with Python. This approach allows us to automatically | |
create binary that is importable by Python like a standard Python module | |
and natively call the C++ code of the application. It provides us with the | |
best of both worlds:\n\n * Python allows easy and fast development of tes | |
ts\n\n * Invoking code of our C++ application directly reduces the test st | |
ability problems\n\n * We are directly at the core\, no extra layers/testi | |
ng frameworks needed\n\n * No need to beg for some extra code in the appli | |
cation: we just use it as it is \n\n * We can script our Python tests\, as | |
well as interactively control the application\n\nIn this poster\, we show | |
the basic principles of this architecture and present guiding steps for t | |
hose who would like to start leveraging convenient Python in the cruel C++ | |
world.\n\n\n\nTomas Danek\, Lukas Kucera | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:PyBites Code Challenges | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Code challenges work. We hosted [47 Python challenges last yea | |
r](https://pybit.es/pages/challenges.html) and we have received amazing fe | |
edback. Not only do we get [amazing PR submissions](https://pybit.es/guest | |
-telegram-python-chatbot.html)\, we hear people stretching beyond what the | |
y thought capable of. As Sean Connery said: “there is nothing like a cha | |
llenge to bring out the best in man.” and we’re in the business of bri | |
nging this to the Python world.\n\nWe just launched our [Code Challenges P | |
latform](https://codechalleng.es) and > 500 Github users jumped on it the | |
first 2 weeks. We did a live code workshop at [Alicante University](https: | |
//pybit.es/alicante-pychallengeday.html) where we learned about typical hu | |
rdles people need to overcome to start leveraging the power of Python. And | |
we’re delighted to host a live code challenge at Pycon 2018! ([proposal | |
227](https://us.pycon.org/2018/proposals/227/)). We think it would be nic | |
e to further support this initiative with an attractive and data-driven po | |
ster about our project.\n\nBob Belderbos\, Julian Sequeira | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Lessons Learned from Civic Hacking | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Budgets\, Housing\, and Hurricanes. What do all of these thing | |
s have in common? Civic Hacking. These were local problems that were tackl | |
ed by a village of coding warriors.\n\nThere’s a lot Civic Hacking happe | |
ning in the state of Texas. From giving citizens exposure to city budgetin | |
g with Award-winning Budget Party\, tackling Section 8\, to the Hurricane | |
app creating effort covered by Forbes.\n\n\nCarrie Maxwell | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Django-Herald: A Django Messaging Library | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:A Django messaging library that features:\n\n - Class-based de | |
claration and registry approach\, like Django Admin\n - Supports multiple | |
transmission methods (Email\, SMS\, Slack\, etc) per message\n - Browser-b | |
ased previewing of messages\n - Maintains a history of messaging sending a | |
ttempts and can view these messages\n - Disabling notifications per user\n | |
\n\n\nRobert Roskam | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:15 years of PyCon: insight into Python's language and community vi | |
a seminar abstracts | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Since its inaugural conference in 2003\, the Python community | |
has hosted over 1200 talks\, in over 30 countries\, with more than 20\,000 | |
attendees in the U.S. alone. \n\nThat’s a lot of Python -- and a lot of | |
extractable data. \n\nBy examining the categories and topics of seminar a | |
bstracts over the years\, observations about the development of the langua | |
ge and the Python community's interests can be found. These insights are i | |
nvaluable to understanding how both the community and language have grown\ | |
, where they are headed\, and how people may support the continued growth | |
of Python for years to come.\n\nThis year for the 15th anniversary of PyCo | |
n\, we will highlight some of the many diverse presentations of previous c | |
onferences\, piquing not only your nostalgia\, but also your appreciation | |
for the impact this event has on what is shaping to truly be a hundred-yea | |
r language.\n\nTanya Schlusser\, Hailey Hoyat | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:AREPL: real-time evaluation of python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:[AREPL](https://github.com/almenon/AREPL) is a scratchpad in w | |
hich debugging\, running\, and writing your code can all be done at the sa | |
me time. Whenever you stop typing your code is evaluated and the output i | |
s shown. But not just the output - your local variables are saved for ins | |
pection as well. Update the code\, and the values seamlessly change. Eve | |
n if you make a mistake\, you will still get the state of your variables r | |
ight before\, along with the error and stack trace.\n\n**Other Features:** | |
\n* human-readable display of certain types\, like dates.\n* Automatic res | |
tart for GUI development\n* Ability to 'save' a section so it only runs on | |
ce\n\n----------\n\n**Links:**\nhttps://github.com/almenon/AREPL\nhttps:// | |
www.youtube.com/watch?v=GxryBUukTyM\n\n\n\nCaleb Collins-Parks | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:MFP: Making music with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:MFP (Music For Programmers) is an application that lets users | |
make music by creating a dataflow diagram called a "patch" (really a progr | |
am) that generates or processes sound. MFP is strongly inspired by graphi | |
cal patching languages such as Max/MSP and Pure Data\, but is a completely | |
new implementation written in Python with C extensions.\n\nUsing MFP\, y | |
ou can quickly start making sound\, processing the inputs and outputs of o | |
ther audio programs\, and interfacing with MIDI devices and control surfac | |
es by drawing diagrams. But you also have access to Python data and libr | |
aries from within patches\, which makes it possible to write programs that | |
have nothing to do with audio\, or to bring in Python's power to handle f | |
iles\, strings or whatever\, or to write extensions to MFP itself. \n\nBi | |
ll Gribble | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Reproducible environments for reproducible results | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Trustworthy results require reproducibility\, which begins wit | |
h an environment that won’t change under your feet. A truly stable envir | |
onment requires a guarantee of dependency immutability and the ability to | |
roll back if problems arise. [Pulp](https://pulpproject.org/) is open sour | |
ce\, written in Python\, and can be used to fetch\, upload\, organize\, an | |
d distribute software packages. With Pulp you can host and manage multiple | |
PyPI-like instances\, called repositories\, which are versioned and conta | |
in any packages you choose. These repositories can range from a mirror to | |
a carefully curated [known good set](https://packaging.python.org/glossary | |
/#term-known-good-set-kgs) and they can be promoted through your software | |
development life cycle.\n\nYou can fetch packages from external repositori | |
es\, upload private packages\, and create a pull-through cache of the Pyth | |
on Package Index\, all while keeping fine control from development to prod | |
uction. Each Pulp repository can act as a package index that plays nice wi | |
th pip. Pulp's plugin architecture enables users to manage RPM Packages\, | |
Debian Packages\, Docker Containers\, and ISOs all in one place. View our | |
source code on [github](https://github.com/pulp/pulp)\, or read more about | |
us in our [documentation](https://docs.pulpproject.org/en/3.0/nightly/). | |
\nCome by and talk Python workflows\, learn how Pulp can help you\, and te | |
ll us your use cases.\n\nAustin Macdonald\, Bihan Zhang | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Exploring generative models with Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Do you know that Neural Networks learn an inner representation | |
? This could be useful for data understanding and disentangling relationsh | |
ips between features. Over this manifold\, their last layers can perform t | |
he classification. But what if we change the target of these networks? Ins | |
tead of trying to classify correctly\, we could want to reconstruct the in | |
put. Based on this idea\, there are different approaches using Neural Netw | |
orks that are known as generative models\, models that can provide new ins | |
tances learning a manifold of the original data. Generative Adversarial Ne | |
tworks (GAN) and Variational Autoencoders (VAE) are two well-known techniq | |
ues to do this.\n\nRegarding this learnt manifold\, if the network can rec | |
onstruct the input after projecting it into this subspace\, What is in bet | |
ween two projected samples? Is it useful or just noise? We have explored t | |
his manifold empirically and we have found that some paths between project | |
ed samples provide unseen instances that are a combination of the inputs\, | |
i.e: digits that are rotated or shrunk\, style combination\, etc. This co | |
uld be useful to understand the underlying distribution or to provide new | |
instances when data is scarce.\n\nIn order to carry on these experiments\, | |
we have relied on Python\, in particular\, we have extensively used Tenso | |
rflow. In this poster\, the Python tools that one could use to explore and | |
reproduce these experiments will be described as well as the datasets tha | |
t we have used.\n\nJavier Jorge | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:How a Python Application Can Support Everything Else | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:This poster will walk through the full replacement of a legacy | |
suite of applications. The final system had a series of projects that all | |
plugged into a Python project that versioned every document for storage. | |
Python was the beginning and end state of every piece of data whether it w | |
as going through Javascript manipulation\, PHP\, or Knime. Python was the | |
backbone\, and it had to perform over very large data sets that were expec | |
ted to grow quickly.\n\nThis poster will present a visual representation o | |
f all the systems and how this project used Python to solve the problems i | |
n question.\n\nLaurie Barth | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Converting unstructured web data into sequenced STEM educational g | |
ames | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Vocabulary\, repetition\, and examples are fundamental to huma | |
n learning. These fundamental tools help humans to teach each other\, com | |
municate\, and innovate. Yet\, vocabulary building and reading comprehensi | |
on games specifically geared for science\, technology\, engineering and ma | |
th (STEM) disciplines are lacking. They are expensive to make and the cont | |
ent has a short life span.\n\nFirst\, a topic and grade level must be chos | |
en by the game designer. Second\, an age appropriate curriculum must be de | |
veloped. Third\, the content must be researched and edited. And finally\, | |
the content needs to be transformed into a game by game developer(s). This | |
process needs to be repeated for each topic.\n\nHowever\, this process ca | |
n be automated using natural language processing (NLP)\, the digitization | |
of primary sourced information\, and vibrant open source ecosystems. Autom | |
ating this process enables educators to create STEM educational games with | |
just four user inputs: (1) Term\, (2) Topic\, (3) Grade Level\, (4) Game | |
type. The corresponding output is a set of sequenced games that can be adj | |
usted for reading comprehension levels for particular students.\n\nThe pro | |
cess to build content for the games is built on open source packages such | |
as beautiful soup\, pandas\, textacy\, gensim\, scikit-learn\, and network | |
x. Client side work is done in javascript and is served by Flask.\n\nItay | |
Livni\, Michael Wehar | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Cart Pole AI Controller | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Cart Pole Balancing Problem is one of the standard classical c | |
ontrol problem. Building an AI Reinforcement learning agent to balance the | |
pole connected with one joint on top of the moving cart is a challenging | |
problem. This live demo showcases the working of the adaptive actor critic | |
game controller. It has applications in designing future AI game controll | |
ers\n\nSRIVIGNESSH PACHAM SRI SRINIVASAN | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:A Python-Friendly Computer Keyboard | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:If we could create a computer keyboard specifically for Python | |
programmers\, what would the layout of the letters and symbols be?\n\nThe | |
QWERTY keyboard we use today was developed in 1878 to avoid jamming typew | |
riters' metal arms when typing quickly. But some of the most commonly used | |
letters and symbols aren't easy for our fingers to get to on our modern\, | |
two-dimensional computer keyboards!\n\nComputer programmers know this pro | |
blem well: We have to press the `SHIFT` key every time we need a curly bra | |
cket\, a parenthesis or a colon. And we use lots of these punctuation mark | |
s\, creating a lot of extra keystrokes.\n\nBy running character analysis o | |
n the source code of Python's 30 most widely used libraries—presumably g | |
ood examples of high-quality\, Pythonic code—we can discover character f | |
requencies that will help us assemble a new keyboard layout that helps Pyt | |
hon programmers make more efficient keystrokes.\n\nA Python-friendly keybo | |
ard would have the most common letters and symbols on the home row\, the m | |
oderately-used letters and symbols on the top row\, and infrequently used | |
letters and symbols on the bottom row.\n\nAnd with keyboard re-mapping\, w | |
e can actually implement such a keyboard!\n\n\n\nErin Allard | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Fighting Documentation Drift | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:One of the main arguments against documentation is that it fre | |
quently falls out of sync with the code it is supposed to describe. Howev | |
er\, the solution isn't to document less\; the solution is to automate the | |
process of checking our documentation. This is the idea behind [darglint | |
](https://github.com/terrencepreilly/darglint)\, a docstring argument lint | |
er.\n\n*Darglint* can identify certain types of documentation drift with d | |
ocstring\, such as\n\n- missing/extraneous parameters\,\n- missing/extrane | |
ous return or yield statements\,\n- missing/extraneous exception descripti | |
ons\,\n\nAs well as a variety of stylistic errors which can make parsing t | |
he docstring difficult. This poster will describe and demonstrate *dargli | |
nt*\, measure its effectiveness against open-source projects\, and explore | |
other possibilities for fighting documentation drift.\n\nTerrence Reilly | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Building your own Messenger Chatbot using Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:While designing and developing your own functional chatbot mig | |
ht seem like a herculean task\, python makes it extremely easy to add inte | |
lligent conversational functionality\, and with pretty good accuracy! In a | |
ddition to this\, once you are familiar with Facebook messenger API (which | |
also has a wide range of wonderful conversational interface elements) it | |
’s actually not that hard a task to get your chatbot into production on | |
Messenger.\n\nMy poster\, with the help of a messenger bot I have programm | |
ed myself as an example\, will be taking you through the whole workflow of | |
setting up your own chatbot. We will start by looking at the important fe | |
atures of the Messenger API\, such as automatically sending texts\, quick | |
replies and images. Python libraries such as _spaCy_ and _NLTK_ make it ve | |
ry intuitive to add functionality to your bot. I will then be explaining h | |
ow you can use NLTK for text classification\, and spaCy language models fo | |
r entity recognition and part-of-speech tagging. These python libraries wi | |
ll enable us to add natural language conversational ability to the chatbot | |
.\n\nTo get your bot up and running on messenger\, you need to deploy it o | |
n a cloud server. I will be going through the steps involved in getting yo | |
ur app up and running on one such cloud service\, _Heroku_. Following this | |
\, we will be integrating Messenger with the application deployed on Herok | |
u\, for which we need to set up WebHooks (after I tell you what webhooks a | |
re!) and authorise the app.\n\nFinally\, I will be talking about how to ge | |
t your bot into production for which you will need to do complete some saf | |
ety formalities (such as setting a privacy policy) as per Facebook’s rul | |
es & regulations. We will then discuss how different lines of business can | |
leverage chatbots\, and what the potential advantages and disadvantages o | |
f chatbots are. By the end\, you will be equipped with all the tools neces | |
sary to design your own chatbot for your product\, and get it up and runni | |
ng on messenger for your Facebook product page! \n\nAkilesh Lakshminarayan | |
an | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Practical Sphinx | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Each member of your project team uses something different to d | |
ocument their\nwork --- RestructuredText\, Markdown\, and Jupyter Notebook | |
s. How do you\ncombine these into useful documentation for your project's | |
users? Sphinx and\nfriends to the rescue!\n\nLearn how to integrate docume | |
ntation into your everyday development\nworkflow\, apply best practices\, | |
and use modern development tools and services\,\nlike Travis CI and ReadTh | |
eDocs\, to create engaging and up-to-date\ndocumentation which users and c | |
ontributors will love.\n\n\nCarol Willing | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Open Source Metrics at Twitter: A USF Capstone Project | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Through a Capstone Program partnership between the Open Source | |
Program at Twitter\, the University of San Francisco Computer Science Dep | |
artment\, and members of the Linux Foundation's CHAOSS Community\, undergr | |
aduate students researched and developed numerous proof of concept tools t | |
o gather and and visualize metrics that assess Open Source Community Healt | |
h.\n\nRemy DeCausemaker | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Build secure and reliable continuous delivery deployment for pytho | |
n microservices | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:In the agile methodology\, the speed at which software gets sh | |
ipped these days got very fast. In many cases the initiative of building s | |
oftware in a secure way get’s deprioritized. There is no time to do “t | |
raditional secure process” where every stage of the software development | |
cycle has a security checklist. This talk presents proposal about process | |
es that support or could support secure software development. \nContinuous | |
Delivery is a software development discipline where you build your python | |
microservices in such a way that it can be released to production at any | |
time. Microservice security relies on automating the Continuous Delivery d | |
eployment process. \nMaking deployments secure and reliable before they la | |
nd in production should be a goal for every software developer. With Conti | |
nuous Delivery and security automation software developer doesn’t have t | |
o be a security expert in everything to work within a microservices archit | |
ecture. \n\nA poster will contain (suggestions and code snippets):\n\n1) | |
Challenges when using Microservices and Continuous Deployment\n2) Secure C | |
ontinuous Delivery Microservices Production pipeline\n - access control se | |
ttings\n - secure deploy an API gateway \n - centralized security or conf | |
iguration policies\n - secure source code management using GitHub \n - use | |
Security Policies tailored for microservices workflow\n3) Conclusion\n\nN | |
atalie Serebryakova | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Managing Machine Learning Experiments | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Managing experimental results in machine learning can be a dau | |
nting task. Researchers and practitioners often try a variety of algorith | |
ms\, hyper-parameters\, and pre-processing techniques\, each resulting in | |
different outcomes. Tracking and analyzing each of these outcomes is a bur | |
den further amplified when dealing with multiple collaborators and several | |
computer nodes.\n\nIn this presentation I will share my experience of man | |
aging over a 1\,200 experimental results\, ran in parallel on 8 computer n | |
odes with 5 collaborators over a time span of 6 months. I will focus on th | |
e usage of the [randopt](https://seba-1511.github.io/randopt/) package for | |
experimental management and visualization. Specifically\, I will introduc | |
e the typical randopt workflow which consists of experiment creation\, hyp | |
er-parameter selection\, and results visualization.\n\nRandopt is an [open | |
-source](https://github.com/seba-1511/randopt) library for experiment mana | |
gement. It is written in pure Python\, is dependency-free\, and available | |
on [PyPI](https://pypi.python.org/pypi/randopt). Interactive\, web-based e | |
xperimental reports are generated via the built-in command line utility an | |
d a programmatic API is also available. It is compatible with all Python p | |
ackages\, including PyTorch\, TensorFlow\, scikit-learn\, and numpy/scipy. | |
While randopt was developed with machine learning in mind\, its agnostici | |
ty with respect to the nature of the experiments makes it suitable for gen | |
eral-purpose scientific experiment management.\n\nSeb Arnold | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Building your own weather app using NOAA open data and Jupyter not | |
ebooks | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:The National Weather Service (NWS) estimates that its open dat | |
a support a [1.5 billion dollar industry](http://informationdiet.com/blog/ | |
read/how-did-weather-data-get-opened). However\, if you are a Python enthu | |
siast and love open data you don't need that industry to get your very ow | |
n customized weather app \;-)\n\nWe will walk through all the steps to cre | |
ate a fully-featured GIS interactive map (mobile friendly too!).\n\nThanks | |
to the Open Geospatial Consortium (OGC) standards\, and NOAA's open data | |
policies\, it is quite easy to set up a data discovery system based on loc | |
ation\, time\, and variable of interested.\n\nIn [this example](https://oc | |
efpaf.github.io/python_hurricane_gis_map/irma.html) we'll explore the Nati | |
onal Hurricane Center (NHC) predictions for hurricane Irma and fetch all o | |
pen data we can find along its path.\n\nFilipe Fernandes | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Instrumenting Python | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:This poster presents [Affirm](https://www.affirm.com/)'s appro | |
ach to instrumenting Python. We place great importance on our metrics infr | |
astructure because metrics help engineers find and fix bugs quickly\, conf | |
idently iterate on features\, and make data-driven decisions. \n\nWe start | |
by discussing how we emit metrics in our Python code by extending the Pyt | |
hon logger. We consider how we ensure this process is reliable and how we | |
make sure it will not impact application performance. \n\nWe also present | |
our metrics pipeline--how we use open source software for metrics collecti | |
on ([Riemann](http://riemann.io/))\, storage ([Elasticsearch](https://www. | |
elastic.co/products/elasticsearch))\, visualization ([Grafana](https://gra | |
fana.com/))\, and alerting ([Cabot](https://github.com/Affirm/cabot)). We | |
explain the reasons we believe the tools we chose are reliable and scalabl | |
e and the checks we have built to ensure our pipeline is working. \n\nAs a | |
n example\, we present the metrics we collect for [celery](http://www.cele | |
ryproject.org/) tasks and examples of the insights these metrics have give | |
n us. \n\nElaine Arbaugh\, James Lim | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Improving command line experience for managing databases with mssq | |
l-cli and mssql-scripter | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Since the announcement that SQL Server 2017 supports Linux and | |
Docker\, there was a need for creating modern\, cross-platform CLI tools | |
to provide DBA's and developers the choice to use SQL Server anywhere. \n\ | |
nWhile rethinking our tools strategy\, our team chose to collaborate with | |
the open source community to create two great Python-based tools: mssql-cl | |
i and mssql-scripter.\n\n- **mssql-cli** is an interactive T-SQL query too | |
l which includes features such as auto-completion\, syntax highlighting\, | |
and pretty formatting. To create this tool\, we collaborated with the [dbc | |
li community](https://github.com/dbcli) which includes other CLI tools suc | |
h as pgcli and mycli.\n\n- **mssql-scripter** is a scripting tool for SQL | |
Server databases and can easily generate CREATE and INSERT t-sql scripts f | |
or database objects\, similar to pg_dump and mysqldump.\n\nTo learn more\, | |
please visit our GitHub repos for [mssql-cli](https://github.com/dbcli/ms | |
sql-cli) and [mssql-scripter](https://github.com/microsoft/mssql-scripter) | |
\n\n\nAlan Yu | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:BAMnostic: an OS-agnostic port of genomic sequence analysis | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:As genome sequencing and testing gets [cheaper](https://www.ge | |
nome.gov/27565109/the-cost-of-sequencing-a-human-genome/) and becomes more | |
[mainstream](http://bgr.com/2017/11/27/23andme-dna-test-price-drop-amazon | |
-cyber-monday/)\, the amount of data being generated is staggering. Much l | |
ike other scientific fields\, **Python** has become one of the predominant | |
programming languages used to process such data. What most people do not | |
know is that a majority of genome analytics can be boiled down to clever s | |
tring comparison and matching algorithms. The caveat here being a single f | |
ile can be as ≥**300 Gb** in its [compressed binary encoded format](http | |
s://samtools.github.io/hts-specs/SAMv1.pdf). A high-throughput sequencing | |
library ([htslib](https://github.com/samtools/htslib)) was developed to es | |
tablish a standard encoding and compression schema that enabled researcher | |
s to have random access to these large files. As it stands\, htslib is the | |
industry standard in the realm of genomics. \n\nOne of the most popular P | |
ython libraries for handling genomic data ([PySAM](http://pysam.readthedoc | |
s.io/en/latest/)) is essentially a wrapper for htslib. As widely used as b | |
oth htslib and PySAM are for developers\, a large contingent of users (bot | |
h end and developer) are excluded simply because htslib and PySAM do not s | |
upport [***Windows***](https://github.com/pysam-developers/pysam/issues/57 | |
5) environments outside of contrived builds and dependencies that many end | |
-users would not be willing to implement.\n\nTo overcome this issue\, pure | |
Python ports of the random access\, unpacking\, and decoding components o | |
f htslib were developed as a lightweight toolkit called **BAMnostic**. BAM | |
nostic was developed to be a drop-in alternative for a majority of PySAM's | |
workload when working in a Windows environment or projects that require a | |
n OS-agnostic approach. As a drop-in\, it retains the same interface as Py | |
SAM for each of its supported functions. This interface also provides a me | |
ans of simple extensibility for machine learning and statistical analysis | |
through libraries such as [TensorFlow](https://www.tensorflow.org/api_docs | |
/python/)\, [scikit-learn](http://scikit-learn.org/stable/)\, and [statsmo | |
dels](http://www.statsmodels.org/stable/index.html). Additionally\, it mak | |
es piping desired data into data visualization libraries\, such as [Plotly | |
](https://plot.ly/)\, a simple task. Lastly\, as pure Python\, it can now | |
be easily embedded into a socketed [Flask](http://flask.pocoo.org/) web se | |
rver or used as standalone application.\n\nMarcus Sherman | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Supervised and Unsupervised Machine Learning of Electroluminescent | |
Images of Photovoltaic Modules | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Electroluminescence (EL) is a process in which materials emit | |
light when an electric current is passed through it. In this method\, elec | |
tricity is passed through photovoltaic (PV) modules and EL light is emitte | |
d from the solar cells which are captured by an infrared sensitive camera. | |
EL images are useful for characterization of electrical properties of pho | |
tovoltaic (PV) modules based on the intensity of light in the images. The | |
goal of the project is to build an automated pipeline for EL image supervi | |
sed classification and unsupervised clustering. The motivation behind EL i | |
mage processing is to study the effect of degradation in electrical proper | |
ties based on physical appearances captured by the images.\n\nTo study PV | |
module degradation\, EL images of crystalline silicon PV solar panels were | |
captured under multiple test conditions at various periodic intervals. Da | |
mp-heat and thermal cycling cause corrosion and cracks\, respectively\, wh | |
ich can be seen in an EL image with regions of dark areas. Cracks orientat | |
ion and thickness of corrosion is correlated to resistive losses which cau | |
se EL images to have lower light intensity at affected areas.\n\nThis work | |
is part of our US Dept. of Energy\, SunShot project “MLEET”. To enabl | |
e in-place analytics we store all datasets and results from different sour | |
ces in Hadoop with an HBase NoSQL database and we integrate it with python | |
using the happybase module. For feature extraction and machine learning f | |
rom these EL images\, we use scipy\, sklearn\, and opencv.\n\n\n\nAhmad Ma | |
roof Karimi\, Justin Fada\, Roger French | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Bringing ML to the Front Lines of Healthcare | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:# Introducing healthcareai\n\nA python and R library focused o | |
n increasing the national adoption of machine learning in healthcare.\n\n# | |
# Healthcare is behind\n\nHealthcare is far behind other industries techno | |
logically\, especially when it comes to analytics and machine learning. Th | |
is means that the industry is full of easy to capture value\, that can man | |
ifest as cost savings\, clinical outcome improvements and lives saved.\n\n | |
## Challenges to ML in Healthcare\n\n- There are many skilled analysts tha | |
t lack the skills to use ML.\n- Deploying models with pipelines is non-tri | |
vial even with experience.\n- Workflows are expensive and slow to change.\ | |
n- Model interpretability is a big deal for front line clinicians.\n\n## S | |
uccesses\n\n- LACE vs ML\n- 50% reduction in CLABSI cases at a large acade | |
mic medical center.\n- Improved self-pay collection workflows.\n- Reducing | |
Heart Failure Readmissions by \n\n## Lessons Learned\n\n- Pair analysts w | |
ith domain experts.\n- Be agile in model development.\n- Surface predictio | |
ns in the right workflow.\n- Continually monitor models.\n- Interpretation | |
is hard.\n\n## The Library\n\n### Benefits\n\n- Learn ML with the dozen b | |
uilt-in healthcare datasets.\n- Many built in visual model evaluation tool | |
s.\n- Data preparation pipelines are baked in from training to production | |
deployment.\n- Advanced users can use the full power of scikit-learn while | |
leveraging some nice conveniences.\n\n### Sample Usage of healthcareai\n\ | |
n```\nimport healthcareai\n... more to come here\n```\n\n### Ways You Can | |
Help\n\nThough we have some great successes (and failures) under our belts | |
\, we are early on our journey with ML + healthcare. Our goals are to make | |
healthcareai a low-friction way to get into ML. We are eager to provide i | |
ssues across a wide range of abilities and encourage PRs!\n\nTaylor Miller | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Running the #1 Brazilian Telegram Bot on a Raspberry Pi using Pyth | |
on | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Telegram Messenger is an instant messaging app. It has a well | |
documented chatbots API and a great amount of users on multiple countries. | |
\n\nFrom the need to save some time\, I learned to develop chatbots\, aut | |
omating tasks. A server is needed to run them 24/7. Then\, questions arris | |
e:\n- How to develop them?\n- Where to run it?\n- How much will it cost?\n | |
\nOn this poster I'll show people how I'm running a few Telegram Chatbots | |
as cheap as possible\, making possible to achieve it's goals without spend | |
ing lots of money.\n\nGabriel Ferreira | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Python for Passwords: Diceware | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION: A Beginner's Guide to Crypto Magic ⚡️ Welcome to Professo | |
r Speir's crypto class for first years. Passwords are an integral part of | |
our lives both in the Wizarding World of Technology™️ and consumers of | |
the internet. In this lesson\, we will learn a fun and safe methodology o | |
f creating passwords for humans that also contain a great deal of entropy. | |
Why are passwords so difficult?\n\nPassword best practices. \nHow can we | |
create good passwords with Python?\n>Diceware: A History\n>Diceware: The P | |
yPi Package\n\nIt all comes down to being random. Explain how `random.Syst | |
emRandom` works.\n\nI would have a demo application built where people cou | |
ld test generating such a password to take the experience from the poster | |
to the attendee. \n\n\nMegan Speir | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:Hack your Kinect! | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:Has your Kinect\, too\, been collecting dust at the back of yo | |
ur consoles console? Time to get it out and put it to good use again! \n\ | |
nWith a little Python and OpenCV magic\, you can easily breathe new life i | |
nto this super innovative gaming device from a few years ago. \n \nMy po | |
ster will show you what your trusty Kinect is capable of and what you can | |
do with the built-in hardware – which does not limit you to playing game | |
s\, but opens up other\, even more interesting possibilities of interactio | |
n\, especially when combined with a projector. Not a Kinect owner yet? No | |
problem\, my poster has you covered! I will let you know what equipment yo | |
u need and how to get it (good news: you do not need to also get the conso | |
le it came bundled with!). \n \nAs space is limited on a poster\, I will | |
likely not be able to provide a full working example script\, but I will m | |
ake sure to include code snippets and links to resources to help you with | |
your own future Python + Kinect projects.\n\nKay Kollmann | |
LOCATION:Poster Room | |
END:VEVENT | |
BEGIN:VEVENT | |
SUMMARY:I contributed! But what now ? Data analytics for understanding you | |
r open source community | |
DTSTART;TZID=US/Eastern;VALUE=DATE-TIME:20140317T100000 | |
DTEND;TZID=US/Eastern;VALUE=DATE-TIME:20140317T131000 | |
DESCRIPTION:For any community especially those in open source\, newcomer o | |
nboarding is important but retaining them is critical. Since past two year | |
s\, we at the Fedora Community Operations team have been working on unders | |
tanding community health and on improving contributor retention rates in o | |
ur community. Using this poster session\, I would like to share some of th | |
e findings from our work\, similar research done by other open source proj | |
ects and how we can use and apply these findings.\n\nThe poster will discu | |
ss some community-oriented metrics we use at Fedora to understand communit | |
y health like contributor engagement metrics\, contributor onboarding and | |
retention rates etc. I will then share some insights derived from finding | |
common patterns in contribution activity of long-term active volunteers i. | |
e. Are they involved in many different areas of their projects? What are s | |
ome good measures to predict how long a volunteer will stay ? What is the | |
magic element X that makes people stay ? The poster will also discuss abou | |
t similar research done by other open source communities in this area and | |
how these insights can be applied to improve contributor retention rates | |
and overall community health on an individual as well as community level.\ | |
n\nBee | |
LOCATION:Poster Room | |
END:VEVENT | |
END:VCALENDAR |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import icalendar as ical | |
import datetime | |
import pytz | |
def desc(event): | |
desc = event["description"] | |
authors = ", ".join(event["authors"]) | |
return "%s\n\n%s" % (desc, authors) | |
def utf8(s): | |
return s.encode("utf-8") | |
def ptime(s): | |
t = datetime.datetime.strptime(s, "%Y-%m-%dT%H:%M:%S") | |
tz = pytz.timezone("US/Eastern") | |
return tz.localize(t) | |
if __name__ == "__main__": | |
with open("conference.json") as f: | |
data = json.load(f) | |
c = ical.Calendar() | |
c.add("prodid", "-//Pycon 2018//") | |
c.add("version", "2.0") | |
for item in data: | |
#print str(item["name"].encode('utf-8')) | |
#print str(item["description"].encode('utf-8')) | |
e = ical.Event() | |
e.add("summary", utf8(item["name"])) | |
e.add("dtstart", ptime(item["start"])) | |
e.add("dtend", ptime(item["end"])) | |
e.add("description", utf8(desc(item))) | |
e.add("location", item["room"]) | |
c.add_component(e) | |
with open("my.ics", "w") as f: | |
f.write(c.to_ical()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
python t.py | |
Complexity Science | |
Complexity Science is an approach to modeling systems using tools from discrete mathematics and computer science, including networks, cellular automata, and agent-based models. It has applications in many areas of natural and social science. | |
Python is a particularly good language for exploring and implementing models of complex systems. In this tutorial, we present material from the draft second edition of *Think Complexity*, and from a class we teach at Olin College. We will work with random networks using NetworkX, with cellular automata using NumPy, and we will implement simple agent-based models. | |
Traceback (most recent call last): | |
File "t.py", line 32, in <module> | |
print e | |
File "/usr/local/lib/python2.7/dist-packages/ics/component.py", line 93, in __str__ | |
output(self, container) | |
File "/usr/local/lib/python2.7/dist-packages/ics/event.py", line 392, in o_description | |
container.append(ContentLine('DESCRIPTION', value=escape_string(event.description))) | |
File "/usr/local/lib/python2.7/dist-packages/ics/utils.py", line 170, in escape_string | |
string = string.replace("\\", "\\\\") | |
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 177: ordinal not in range(128) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import ics | |
def desc(event): | |
desc = event["description"] | |
authors = ", ".join(event["authors"]) | |
return "%s\n\n%s" % (desc, authors) | |
def utf8(s): | |
return s.encode("utf-8") | |
if __name__ == "__main__": | |
with open("conference.json") as f: | |
data = json.load(f) | |
c = ics.Calendar() | |
for item in data: | |
print str(item["name"].encode('utf-8')) | |
print str(item["description"].encode('utf-8')) | |
e = ics.Event(name=utf8(item["name"]), | |
begin=item["start"], | |
end=item["end"], | |
description=utf8(desc(item)), | |
location=item["room"], | |
) | |
print e | |
c.events.append(e) | |
with open("my.ics", "w") as f: | |
f.writelines(c) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment