agenda

Track View Time View

Key Notes

  • Registration and breakfast

    | Duration: 45min (Break)
    Wohl Center, Main Hall

    Welcome to PyCon Israel 2017!

    Try to arrive early to complete the registration.


  • Opening session: Welcome to PyCon Israel 2017!

    | Duration: 15min (Keynote)
    Wohl Center, Main Hall

    Time to start the show!


  • The "F" of Reinvention

    | Duration: 60min (Keynote)
    Wohl Center, Main Hall

    In the early days of Python, the "F" may have been a key to its early success.  It was just the sort of magic power that made hard problems easier and impossible problems possible.  It was what made you want to program in your spare time.  It made management ask probing questions such as "who gave you permission to do this?"  No, the "F" was an unstoppable force for good.  As Python has matured, discussions of the "F" have often given way to more serious topics such as Unicode, packaging, and backwards compatibility.   However, it never really went away.  In fact, it's been sitting their in plain sight all along--growing in power.  In this talk,  I'll give a forward-looking discussion of Python's future and exploiting the power of the "F".  

    Speaker/s:

  • Not telling you my title ;)

    | Duration: 60min (Keynote)
    Wohl Center, Main Hall

    Jessica McKellar is an entrepreneur, software engineer, and open source developer from San Francisco. She is a former Director for the Python Software Foundation, PyCon North America's Diversity Outreach Chair. For her outreach efforts in the Python community, she was awarded the O'Reilly Open Source Award in 2013.


  • Lunch Break

    | Duration: 60min (Break)
    Wohl Center, Main Hall

  • Coffee Break

    | Duration: 30min (Break)
    Wohl Center, Main Hall

  • Party Time!

    | Duration: 180min (Keynote)
    Wohl Center, Main Hall

    It's been a long day...
    Let's party!

    Details available here


  • Registration and breakfast

    | Duration: 60min (Break)
    Wohl Center, Main Hall

  • Why Python's the best language for AI (and how to make it even better)

    | Duration: 60min (Keynote)
    Wohl Center, Main Hall

    Over the last few years, Python has cemented its lead as the primary development language for machine learning and AI, among both researchers and engineers. Python is dominating this development niche because manual memory management is very important for numeric computing, and CPython exposes an efficient and practical API for low-level extensions. The rest of the Python ecosystem also relies on low-level extensions --- Python would be of little use for web programming without fast libraries for JSON and XML parsing, image manipulation and database connectivity. However, most Python users have little love for these native extensions that they rely on. Native extensions impose some inconveniences. More things can go wrong, and they're necessarily exceptional and less dynamic.


    In this talk, I'll argue that the Python community ought to accept native extensions as a necessary good, instead of a necessary evil. The language would get stronger at its strengths by ending its ambivalence about native extensions, and investing in better tooling. Individual developers would benefit from getting comfortable dropping down into Cython, and understanding how to read and build native libraries. This applies especially in the growing field of machine learning and artificial intelligence --- the biggest growth area in software development today.


  • Lunch Break

    | Duration: 60min (Break)
    Wohl Center, Main Hall

  • Coffee Break

    | Duration: 30min (Break)
    Wohl Center, Main Hall

  • Closing session

    | Duration: 60min (Keynote)
    Wohl Center, Main Hall

    Time to wrap up the main event!

    We'll have some closing notes to review the event and a ruffle with a cool surprise.

    Register here to join the raffle and make sure to show up ;)

     


  • Workshops registration and breakfast at Bar-Ilan

    | Duration: 60min (Break)
    Bar-Ilan CS lab 201 (604 on the map)

  • Lunch break

    | Duration: 60min (Lunch)
    Wohl Center, Main Hall

  • Coffee Break

    | Duration: 30min (Coffee Break)
    Bar-Ilan CS lab 201 (604 on the map)

Track 1

  • Dream in Code

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    The Sapir-Whorf hypothesis states that language limits cognition; that the words we use influence the thoughts we have. This happens in code, too: programmers using different programming languages solve problems differently.

    Can we use this to our advantage? Let's unit test C code with pytest. Let's do autocompletion with a single script that's both Python and Bash. Let's write a Django server and extend its working API in its admin interface. Let's talk about Whorfian Refactoring.

    Speaker/s:

  • Practical usage of asyncio

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    In Python 3.4, asyncio was introduced to the standard library. This module gives us the ability to build concurrency into our applications without threading or multiprocessing. During this talk, I will show examples of asyncio and discuss the how, when and why of its usage.

    Speaker/s:

  • The State Of Python In The Serverless World

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    A year after my "Python in the Serverless Era" talk at PyCon IL 2016, it's time to revisit Python's role in the Serverless ecosystem. We’ll review new frameworks and use cases involving Python in this vibrant and emerging technology.

    Speaker/s:

  • Building Serverless applications with Python

    | Duration: 45min (Frontal)
    Wohl Center, Main Hall

    Serverless applications in Python sounds, strange isn’t? In this talk I’ll explain how to build not only crop images or select data from DynamoDB, but build real application, what kind of troubles are we should expect, how to make decision is your task fit into serverless architecture in Python or may be you should use, general approach. How fast serverless applications written in Python, and more important how to scale it.


  • Lessons learned from the oVirt project which allowed us to multiply by 20 the performance of the Python SDK

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    In this talk we will explain the lessons that we learned while creating and maintaining the oVirt Python SDK, and specially how we were able to multiply the performance by 20, doing some rather radical changes to its architecture. oVirt is an open source virtualzation management platform. The oVirt Python SDK is a library that simplifies the usage of its API for Python developers. It is intended to remove from the Python developer the burden of handling XML and HTTP, while granting access to all the functionality of the oVirt API. A key aspect of the Python SDK is that it is automatically generated from the specification of the API. It has always been like that, since its very inception. In version 4 of oVirt a new version of the API was introduced, together with a much more strong specification. That gave us the opportunity to re-architect the Python SDK, with the following goals in mind: * Make sure that all the API functionality can be used, now and in the future, automatically generating Python code that can be kept backwards compatible. * Drastically improve the performance of the Python XML parsing and rendering code, specially for large data sets. * Enable asynchronous HTTP, and pipe-lining of HTTP requests. This is of utmost importance for environments with high latency. During the talk we will explain why these are important goals for us, what were the challenges with the architecture of version 3 of the SDK, and we will show you the techniques, tools and, yes, the code, that we used to make version 4 of the SDK 20 times faster.

    Speaker/s:

  • CFFI, CTypes, Cython - the good, the bad, the ugly

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    I will demonstrate use of ctypes, cffi, and cython to wrap c code, including a performance benchmark

    Speaker/s:

  • Testing with PyTest

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    Write automated tests is one of the best ways to ensure high quality code and a peace of mind for both developer and her managers. In this session we'll learn how to write tests using pytest. We will start by introducing pytest and we will see how to use it to write unittest for brand new code. TDD style. Then we'll take a look at the case where you already have a lot of code without tests and consider how can we approach that problem. We'll see how to write integration tests and how to mock the rest of the world.

    Speaker/s:

  • Programming 'brainfuck' and virtual machines

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    An introduction to the Brainfuck esoteric programming language, an `ASCII2bf` program, a `bf` interpreter in `bf`, and finally - we will live code a `bf` interpreter in Python (which is probably the simplest interesting example of a virtual machine)

    Speaker/s:

  • Designing Pythonic APIs

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    When writing a package (library) or even a simple module, providing it with a good API, is almost as important as its functionality itself (well, at least if you want some adoption), but what makes a good API? In this talk, I’ll provide some insights on that question by surveying the APIs that helped make projects such as Requests, Flask and Celery popular, while also reviewing technical implementations.

    Speaker/s:

  • DevOps with Python

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    At the conference I would like to talk about:

    • On-box and off-Box automation
    • Networking and system automation with Python for DevOps
    • Using REST-API with controllers
    • Creating automation tools as web applications with Django

     

    Packages I want to talk about:

    • netmiko
    • paramiko
    • pyvmomi
       

    The conference audience will gain knowledge in managing the IT environment through automation to develop DevOps tools with Python.

    Speaker/s:

  • The magic of SQLAlchemy

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    Many languages have a way to abstract the database nicely in code - ORMs are everywhere. But SQLAlchemy is special, it's not only an ORM ( like the one Django has ), It's also "The Python SQL Toolkit" where you can replace complicated SQL queries with simple, clean and safe Python.

    Speaker/s:

  • "Low Level" Python - a Deep dive into the python sources

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    We've been told to stop writing objects. We've been told to write more objects. But what exactly do we really write when we write something? In this talk, we cover the Python datamodels sources and how do they interact?, when to begin writing objects, what methods to start with that leverage the Python data models, and how to use the "magic" methods of Python. This talk assumes you know all of the basic builtin data structures of Python and have familiarity with operators. Which should we be doing? When? How?

    Speaker/s:

  • Custom Source Code Checks

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    Anton-Marchukov.pdfA great set of tools exists to check the source code for compliance with Python coding standards such as PEP 8. Those tools are useful to control code quality during code review and on continuous integration stage. However, the standards do not cover everything and each team may have additional coding guidelines in place. Conveniently the Python ecosystem allows easy creation of custom source code checks, so your local code style conventions that are outside of existing tools coverage should not be left for a manual review process only. This talk will focus on how automation of code checks outside of PEP 8 standard can be done.

    Speaker/s:

  • mypy - Python's gradual typing implementation

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    itzik-kasovitch.pdfPython is a dynamic language. On small code bases this property is helpful and might increase productivity. On medium to large code bases this might be an impediment. In this session I will introduce mypy, which introduces type hints into Python in attempt to solve that impediment.


  • Let me sleep on it - improving concurrency in unexpected ways

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    Nir-Soffer.pdfContrary to the common belief, Python has real threads and even with the famous GIL, they can be used in useful ways. Vdsm is a heavily multi-threaded Python program, constantly juggling tens of threads waiting for blocking system calls. In this talk we will explore a real world thread synchronization problem taken from Vdsm's LVM cache module. We will demonstrate the problem using simple tests and show the unexpected solution.

    Speaker/s:

  • A primer to write a conversational chatbot in no time

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    Wonder of complicated could be to write a 'working' conversational chatbot engine using an opensource project? Maybe integrated with Facebook Messenger ? Well, this presentation, will guide you to develop a simple bot, with a sprinkle of AI and all in your hands, ready to be consumed and to learn how your bot could solve problems and make more awesome your life :)


  • Handling geo-located data (people, vehicle fleets...) in real-time using Python and MongoDB

    | Duration: 30min (Frontal)
    Wohl Center, Main Hall

    When we get geographic data from sensors, be it indoor positioning, GPS, or anything else, we need to handle it correctly. We (of course) have a lot of tools in Python to do so. What if you get a ton of this data coming continuously and have to display it, make real-time calculations, controls, reports and other operations ? Let's see one of the possible approaches to this problem using AsyncIO, MongoDB, a web app and Pandas reports, including how I implemented it for some clients (a live demo, if internet access permits it).


  • Let's build a device together using Python!

    | Duration: 480min (Workshop)
    Bar-Ilan CS lab 201 (604 on the map)

    We will try to get our hands dirty playing with python (micropython) on some wifi enabled (and/or bluetooth) micro-controllers, to build a project together.

    Proposed project is a weather and air quality monitor station device with a full-color display showing the current values of the sensors as well. The device can send data upstream to a sensor network to share data with others.

    We will improve on work done at the PyCon FR workshop on the same subject.


    People with their own ideas can come to the workshop too to learn how to do it (if you need specific hardware, bring it :)).


  • Let's build a device together using Python! -- part II

    | Duration: 120min (Workshop)
    Bar-Ilan CS lab 201 (604 on the map)

    We will try to get our hands dirty playing with python (micropython) on some wifi enabled (and/or bluetooth) micro-controllers, to build a project together.

    Proposed project is a weather and air quality monitor station device with a full-color display showing the current values of the sensors as well. The device can send data upstream to a sensor network to share data with others.

    We will improve on work done at the PyCon FR workshop on the same subject.

    People with their own ideas can come to the workshop too to learn how to do it (if you need specific hardware, bring it :)).


  • Let's build a device together using Python! -- part III

    | Duration: 90min (Workshop)
    Bar-Ilan CS lab 201 (604 on the map)

    We will try to get our hands dirty playing with python (micropython) on some wifi enabled (and/or bluetooth) micro-controllers, to build a project together.

    Proposed project is a weather and air quality monitor station device with a full-color display showing the current values of the sensors as well. The device can send data upstream to a sensor network to share data with others.

    We will improve on work done at the PyCon FR workshop on the same subject.

    People with their own ideas can come to the workshop too to learn how to do it (if you need specific hardware, bring it :)).


Track 2

  • Python Peculiarities

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Let's have fun! In this session we'll look at cases of strange core and library behavior, explore weirdness of Python, discuss the dos and don'ts of cool hacks and learn some neat new tricks!

    Speaker/s:

  • Text Parsing: the Case for Monads

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Pyparsing is a mature, small and useful text parsing library that let's you define a grammar easily and succinctly. Amazingly, pyparsing is using a unique design pattern called "Combinators" which is leveraged even further by monadic syntax from functional programming, while feeling Pythonic and clean. We will study this unique approach and uncover its secrets.

    Speaker/s:

  • Django Channels Teaching a mature framework new tricks

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    This example-heavy talk, might give you everything you need to start having fun with Django Channels. Channels allow us to add features such as real time communication to our apps; without giving up the framework we love. Now we can use websockets and stay pythonic. Perhaps more importantly they provide opportunities for fun. We may answer client’s demands for features such as messaging while maintaining a consistent stack. Further, no longer do we have to consider expensive SASS style solutions, which lack flexibility. From realtime-chat to collaborative drawing canvases, Ronnie demonstrates how simple and playful you may find channels. Finally, we will talk about the nut’s and bolts that make up this powerful tool.

    Speaker/s:

  • Unit tests and TDD does NOT have to be boring

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    When reviewing your Python applications for quality, we are constantly pushed to improve our ‘code coverage’ and improve our unit test quality, since so often we are caught out during upgrades and re factoring, by a lack of broad regression tests. As an experienced programmer who was a Python newby, the whole unit test backlog for existing code in my new job was terrifying, so I needed to do something different... Here are practical examples of using Python for web programming where writing unit tests as part of the initial development processes, using Test Driven Design (TDD) methodologies, not only creates reliable regression tests for future code quality and maintenance, but also speeds up the development time, and gives a clearer path to deployment. The focus and examples are on web development, but the lessons and ideas are good for other development areas.


  • Exploring and Analyzing Open Satellite Imagery data with python

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    In recant year Earth imaging satellites have shrink drastically in cost and size, it is now possible to obtain open satellite data on a weekly basis in high Spatial resolution. This talk will cover working with satellite data in python in serval tool rasterio that is based on the Geospatial Data Abstraction Library (GDAL) and NumPy and combine it with xarray a python model to working with Multidimensional Arrays. we will show example that make use of the Unique information in Earth imaging satellites like the Ability to get information about vegetation health by using data in wavelengths the human eye can't see. This talk is intended for novice and intermediate python developers who interested in using satellite imagery

    Speaker/s:

  • Continuous Delivery in Python on a Massive Scale

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    J.P. Morgan has one of the largest Python codebases in the world. We will discuss the challenges of working with millions of lines of Python and how one can deal with those. We will also show you how Python makes it easy to achieve continuous delivery and continuous deployment approaches regardless of scale.

    Speaker/s:

  • CPython, Grumpy, PyPy - When, How, Why?

    | Duration: 45min (Frontal)
    Wohl Center, Movie hall

    I will talk about the differences between the three implementations. Focusing on use cases in which each of them should be used and how each environment tackles performance issues (GIL, just-in-time and Goroutines). I will also evaluate performance impact in real life scenario.

    Speaker/s:

  • Putting Things on the Internet™

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    In a world where simply connecting random household appliances to the Internet is considered 'innovation', a counter-proposal must be presented. In this talk we explore the free-as-in-freedom technologies that enable developers to build real-life applications based on physical devices. Buzzwords will be harmed during this talk.

    Speaker/s:

  • Bringing people together with Python and Open Source

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    ROSE (short for Red Hat Open Source for Education) is a cross-community effort lead by Red Hat Israel that brings students from Tira and Ra'anana to the Red Hat offices to learn about the Linux operating system and Python programming. As part of the ROSE project, the students learn about Open Source, basic Linux shell skills, and Python programming. As a final project, they write an algorithm in Python for a self driving car in a race game. The project gives an excellent opportunity to 8th grade students to experience both the world of coding and communication with other communities that they are not regularly in contact with. How does this work? Why use Python of all the languages? How can coding bring people from different cultures closer? Can we make it fun? In this session, we will present the project structure, the team activities, the code competition and our experience leading this project last year.

    Speaker/s:

  • Meet Lago, your personal opensource tool for building isolated testing environment in a breeze

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    In this talk we will introduce a powerful Python open source project called Lago, which allows you to create fully isolated virtualized environment and interact with it using a Python API. Based on a real-life example of testing a complex project, we will go over the cons of using legacy methods for running system tests, and we will show how Lago can be used to overcome them while introducing additional cool features, such as running the whole testing suite on your laptop!

    Speaker/s:

  • The snake and the butler, Jenkins as a Python execution platform

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Jenkins is a very useful tool for building automation systems. Jenkins jobs typically get written as a mix of shell scripts and plug-in invocations, but as Python developers we prefer to do things with Python. In this presentation we will look into various tricks for implementing Jenkins job logic in Python starting with running simple scripts and going up to passing objects around and running stateful applications.

    Speaker/s:

  • Extend Docker using Python

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Docker is the most popular platform to run Python applications within containers. Many companies are using this platform to either deploy micro-services or test the code changes before merging it to production. Docker has 3 extension points: Drivers, Plugins and user-facing API. I am going to focus on the latter (user-facing API) and by the end of the talk, you will learn Docker's REST API and know how to extend Docker capabilities using Python.

    Speaker/s:

  • “bluegiraffeplaysball” (or Make Passwords Great Again Using "zxcvbn”)

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Facebook, Google and Apple mislead you to create crappy passwords, that can be cracked easily. I invite you to see a more realistic way to estimate your own passwords using python “zxcvbn” lib. This is a useful tool that can also help you making your customers’ passwords stronger, and your site more secured. 

    Speaker/s:

  • Adopt dynamically Python syntax and semantics

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Usage of AST ( Abstract Syntax Trees ) to extend Python language. I am going to show on a real example how to adopt the syntax of the language to adjust it and to adapt to one's needs. Probably based on reactive programming and semantics of the reactive programming environment.

    Speaker/s:

  • Ansible modules for oVirt - bridging the gap between declarative and imperative worlds

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    The oVirt project contains Python, Java and Ruby SDKs, which are auto-generated from the API specification and they are using imperative concept. On the other hand Ansible modules have to be declarative and idempotent. In this talk we will present issues we've had during the development, the lessons we've learned, and how we've made Ansible modules declarative using imperative SDK. The development of Ansible modules is done in Python, so the Python developers will gain knowledge on how Ansible modules can be developed, and what things should be considered when writing Ansible modules.


  • Unit-testing in the real world with mock

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Everybody agree that unit-tests are important, however learning how to write unit-tests is hard. Most of the instructional material you might try to read will use as its' examples some well behaved functions with known input and deterministic outputs. Code that is trivial to write tests around. However the real world isn't so well behaved. It has legacy code, it inspects the world, has side effects, calls external services and might have random components. Writing unit-tests for such a code is anything but trivial. One technique to allow writing unit-tests around such real world code is to replace all that ugliness with mocks, and the standard unittest.mock library is a grate tool for that. The abilities of this library surprised and delighted me in more then one occasion as I straggled to raise my code coverage. However, in my experience both the concept of mocking and the unittest.mock library are not widely known. I hope to help change that in a small way.

    Speaker/s:

  • Adding interactivity by extending Jupyter Notebook

    | Duration: 30min (Frontal)
    Wohl Center, Movie hall

    Jupyter (formerly IPython) Notebook is a "better REPL" that can be easily extended. I'll demonstrate how writing new backends is a productive way to expose existing tools (e.g. Ansible) in a more interactive way.


  • Build a fully isolated virtualized end to end testing environment from Python

    | Duration: 180min (Workshop)
    Bar-Ilan CS lab 203 (Building 604 on the map)

    In this workshop we will see how easy it can be to implement fully automated system test for your Python application, that would integrate easily in your Development or Continuous Integration flow. We will use the open source Python project - Lago, which allows you to create fully isolated environments and interact with them using a Python API. We will go through the steps of building complete end- to-end system tests, which includes: deployment, installation and interaction with your application in the testing environment, simulating production scenarios such as making API calls, putting your application behind an HTTP server, testing for scale and more. We will also talk about how to investigate failures, and how these tests can integrate easily with conventional unit-testing frameworks such as PyTest and nose. Attendees of this workshop should have intermediate Python knowledge.

    Hardware Requirements
    One Laptop with at least 8GB of RAM and 15 GB free disk space
    Supported operating systems
    RHEL 7.3, Fedora 24, Fedora 25, CentOS 7.3

    We will present the workshop on a projector so participants can see the workshop tasks even without installing the projects.
    We’ll do our best to provide a few pre-installed laptops for people in need. Please make sure to mention you need a laptop when subscribing to the workshop. It is likely that not all requests will be answered.

    Speaker/s:

  • PyCon-IL.TV: Kodi Add-on From Scratch

    | Duration: 120min (Workshop)
    Bar-Ilan CS lab 203 (Building 604 on the map)

    Kodi is a media-center software, designed to be displayed on large TV screens and controlled easily from the sofa. Kodi's flexible, Python based, add-on system effectively make it a general-purpose GUI platform, and provide a simple way to create a TV interface for web applications.

    In this workshop, we will start with the basics, and learn how to add a custom add-on and get it to run. Once the simple demo is running properly, it can be modified to show relevant data from the conference website. Hopefully, future sprints could expand and generalize that, providing for future PyCons an easy way to feature large screens, controlled by remotes, that would allow participants to browse the conference schedule and view videos from previous years.

    We need to keep contact with the participants, in order to send announcements and let you know what you need to prepare in advance. After registration, please join the forum:

    https://groups.google.com/forum/#!forum/pyconil-kodi-workshop

    or email me mailto:aronovitch@gmail.com

    Speaker/s:

  • PyCon-IL.TV: Kodi Add-on From Scratch -- part II

    | Duration: 90min (Workshop)
    Bar-Ilan CS lab 203 (Building 604 on the map)

    Kodi is a media-center software, designed to be displayed on large TV screens
    and controlled easily from the sofa. Kodi's flexible, Python based, add-on
    system effectively make it a general-purpose GUI platform, and provide a simple
    way to create a TV interface for web applications.

    In this workshop, we will start with the basics, and learn how to add a custom
    add-on and get it to run. Once the simple demo is running properly, it can be
    modified to show relevant data from the conference website.

    Hopefully, future sprints could expand and generalize that, providing for future
    PyCons an easy way to feature large screens, controlled by remotes, that would
    allow participants to browse the conference schedule and view videos from
    previous years.

    We need to keep contact with the participants, in order to send announcements
    and let you know what you need to prepare in advance.
    After registration, please join the forum:
    https://groups.google.com/forum/#!forum/pyconil-kodi-workshop
    or email me mailto:aronovitch@gmail.com

    Speaker/s:

PyData

  • 5 simple steps to create meaningful features from clickstream data (with Pandas)

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Predicting client financial behaviour is usually done by financial data sources - such as client financial history, bank and credit statements, etc. In this talk we will review a different type of data source for risk assessment - features engineered from clickstream data gathered by Mixpanel. We will discuss what kind of features can be generated from clickstream data and how to generate these features using Pandas, what is the benefit of these unconventional features, what are the different correlations of the features with user financial behaviour and how can you apply clickstream data analysis to your problems in general.

    Speaker/s:

  • Real Time Sensor Anomaly Detection with Sci-Kit Learn and the Azure Stack

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    The introduction of IoT and Big Data has disrupted the multi-billion dollar municipal water management industry. However, sensors sometimes malfunction and differentiating between sensor error and expected anomalous readings from events such as storms and floods can be extremely difficult. Traditionally to account for irregularities, municipalities hire analysts to manually sift through sensor data and modify values believed to be caused by sensor error, an extremely costly and error prone process. Recently the Microsoft Partner Catalyst team partnered with the industry to build an anomaly detection model to differentiate between irregular sensor readings and sensor error, and put the model into production using Sci-Kit Learn as well as Azure Event Hubs, Stream Analytics and PowerBI. In this session participants will receive a high level overview of the the sensor error detection problem, and learn how to build a production visualization pipeline for classification models in near real time for their own use.

    Speaker/s:

  • Population Anomaly Detection through Deep Gaussianization

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    We introduce a scheme for population anomaly detection based on gaussianization through an adversarial autoencoder. This scheme is applicable to detection of 'soft' anomalies in arbitrarily distributed highly-dimensional data. A soft, or population, anomaly is characterized by a shift in the distribution of the data set, where certain elements appear with higher or lower probability than anticipated. Such anomalies must be detected by considering a large sample set rather than a single sample. Applications include, but not limited to, payment fraud trends, data exfiltration, and system security and health monitoring. We evaluate the scheme on credit card payment and DNS data exfiltration data and obtain both quantitative results and qualitative insights. We discuss our PyTorch implementation of deep gaussianization, and review implementation details, pitfalls, and performance.

    Speaker/s:

  • Anomaly detection and future forecasting -- when "good enough" is good enough.

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Anomaly detection and time series forecasting are valuable in monitoring the financial and technical health of an organization. Proper modeling of time series requires accounting for periodic fluctuation; malicious users; data irregularity, saturation or scarcity; sudden peaks and drops. To account for these parameters, the modeler needs to select the proper model family, optimize the model parameters, validate the assumptions, and refine the process as needed. The task is even more complicated when one needs to build a self-service application that supports "slicing and dicing" any metric to its underlying components. In such a case, where the number of possible models can be counted by thousands, manual tuning is impossible. In this lecture, I show how a series of assumptions and simplifications allowed completing the modeling task in one week, using open source Python packages. I will review all the assumptions, their implications, and limitations. I will also show which modeling approach worked, and which didn't work in case of Automattic, the company behind WordPress.com, Jetpack and other projects, that serves more than 180,000,000 unique visitors a month in the US alone. I hope that this information will be useful in many data-driven organizations.

    Speaker/s:

  • Gotchas of Pandas

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Pandas is one of the first libraries someone deals with while learning data science with python. While being one of the best libraries for data analysis and data cleaning, pandas is full of bugs and gotchas. This talk will look inside those gotchas with detailed explanations and will provide the solutions for some of them. this talk will cover the common and rare pandas gotchas like: -NaN problems Errors due to Numpy and core python libraries Reindexing gotchas Boolean Gotchas

    Speaker/s:

  • All package managers suck, conda sucks less

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    We'll discuss how to create stable environment using https://conda.io both for development and production.

    Speaker/s:

  • From plotting to "chart-porn": Creating slick charts with Matplotlib

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Python is gaining speed as a leading data science programming language, alongside R. An essential part of data science is data visualization, something easily achieved with popular plotting library Matplotlib. While matplotlib is powerful and versatile, R has one advantage with respect to plotting: ggplot2, which easily generates beautiful charts out of the box. In this talk we will demonstrate how to painlessly generate eye candy charts with Matplotlib, using styles, color maps, full chart customization and clever subplotting with figures and axis objects. We'll also briefly discuss basic and advanced interactivity for Jupyter notebooks and beyond.

    Speaker/s:

  • Aspect oriented programming for Data science

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Aspect oriented programming is a programming paradigm for dealing with cross-cutting concerns. Python enables AOP by using the built-in decorator feature. We will demonstrate how to use these concepts within a data science settings. We will cover: timing, caching, ssh tunneling, and interactive jupyter plotting

    Speaker/s:

  • Apache beam and google cloud dataflow

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Apache beam is an open source framework that try to create uniform API for all data processing frameworks like spark, flume and storm. so you can write your code and run it on different platform without changing it. Google cloud data flow is a service that allows you to process your data with apache beam without deploying any server. Recently google has contribute python support for apache beam.​In this lecture we will explore apache beam model and run en example on Google cloud dataflow with python API

    Speaker/s:

  • Dynamic Neural Networks with DyNet

    | Duration: 45min (Frontal)
    Wohl Center, Hall #2

    Neural networks work very well for many learning-based applications, and I assume you are already familiar with them. Programming neural network models is rather easy, thanks to software libraries such as Theano, TensorFlow and Keras that let you define and train complex network structures. However, these libraries assume a fixed (static) graph structure, and are tailored for the GPU. I will introduce a radically different approach, in which the graphs are dynamic, and constructed from scratch for every training example. This makes programming of complex networks with structure that depend on the input very easy. I will introduce the DyNet neural networks package, that supports this dynamic graph creation, and which also works very well on the CPU. The talk assumes familiarity with neural network models, and will focus on how to implement them with DyNet.

    Speaker/s:

  • Structured Predictions an historical overview

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    In this session we will cover the history of semantic image segmentation, from old color based method, to edge based/ super pixel method, and finally go trough the recent revolutions in this area such as CRF and GAN. No prior knowledge is required, and this is more fun and light talk that passes the intuition behind the equations.

    Speaker/s:

  • Process Monitoring on Sequences of System Call Vectors

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    We introduce a methodology for efficient monitoring of processes running on hosts in a corporate network. The methodology is based on collecting streams of system calls produced by all or selected processes on the hosts, and sending them over the network to an analytics server, where machine learning algorithms based on LSTM (Long-Short Term Memory) are used to identify changes in process behavior, due to malicious activity, hardware failures, or software errors. System call streams are enormous, and an efficient representation with performance guarantees independent of the level of activity on the host must be used. Some earlier work was based on processing of sequential streams of system calls, which does not scale well. Other approaches rely on computing frequencies of short sequences (n-grams) of system calls over a fixed time window. However, in this case information about temporal dynamics of the process is lost. In our methodology, vectors of counts of system calls are collected and sent for every monitored process at fixed short time intervals, e.g., 1 second. However, the analytics server processes sequences of system call vectors over longer time spans. This way, the performance guarantee is maintained through sending fixed amount of data per time unit independently of the activity on the host, but the temporal behavior is at least partially preserved. By varying the vector and sequence time durations, a balance between network and CPU load, on one hand, and monitoring accuracy, on the other hand, can be adjusted depending on performance and accuracy requirements.


  • Recognizing Traffic Lights With Deep Learning

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    This talk will present the solution used to win 1st place in Nexar’s traffic light recognition challenge. We will go over the process of how to start with a basic deep learning model and improve it over time. The talk will focus on the ideas and process more than the technical implementation. No need for strong background in deep learning to understand all the concepts in this talk.


  • Data Science at Scale: Using dask and Numba for performane and scalability

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Today there is a great need for improoved performance and scalability even in the early stages of the data science process, in my talk I will discuss the limitations of pandas in terms of performance and show a few hands on examples for common data processing procedure using two frameworks: Dask and Numba


  • Luigi - Big data plumbing library

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Luigi is workflow orchestration framework library developed by Spotify and being used extensively at Oracle. In this talk I will cover key design aspects of Luigi, the way we use it and what makes it so special

    Speaker/s:

  • Hypothesis: Generating test cases

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized by a source of examples, and then generates simple and comprehensible examples that make your tests fail. This lets you find more bugs in your code with less work.

    Speaker/s:

  • A physicist's approach to Data-Science

    | Duration: 30min (Frontal)
    Wohl Center, Hall #2

    One of the main challenges of developing algorithms for a dynamic, data intensive, and "noisy" environment is being able to monitor system performance and understand the impact of each element or change. Using basic principles, we developed a model that estimates key performance metrics. Used in an unconventional way, the model allows us to gain significant insight on global system behavior and performance, and impact of updates to the core algorithm's logic. This model has proven extremely powerful at Via. We have developed and deployed the world's first operating system for on-demand dynamic public transit. Our solution is operating at scale in New-York, Chicago, DC, Paris and is growing rapidly to additional locations.

    Speaker/s:

  • Convolutional methods for Text in Tensorflow

    | Duration: 180min (Workshop)
    Bar-Ilan CS lab 202 (Building 604 on the map)

    RNNs are the default architecture for "deep NLP" but their are numerous practical cases where convolutions are as effective while training faster and requiring fewer computational resources.
    The first hour of this workshop will cover the convolutional operations we need to work with text including dilated convolutions, deconvolutions and tricks for managing gradients. We'll then use what we learnt to restore capitalization and punctuation to  text a common task when dealing with speech recognition. 
    Please come prepared with a laptop, tensorflow and nltk installed. Python 3 is preferred. The materials for the workshop are https://github.com/talolard/CMFT_PyCon2017

    Speaker/s:

  • Keras Sprint!

    | Duration: 30min (Workshop)
    Bar-Ilan CS lab 202 (Building 604 on the map)

    Sprinting on keras live with the worldwide keras developers community!

    Speaker/s:

  • Keras Sprint! -- part II

    | Duration: 90min (Workshop)
    Bar-Ilan CS lab 202 (Building 604 on the map)

    Sprinting on keras live with the worldwide keras developers community!

    Speaker/s: