{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2024.1.0"}, "schedule": {"url": "https://cfp.pycon.org.il/conference2022/schedule/", "version": "1.2", "base_url": "https://cfp.pycon.org.il", "conference": {"acronym": "conference2022", "title": "PyCon Israel 2022", "start": "2022-06-28", "end": "2022-06-29", "daysCount": 2, "timeslot_duration": "00:05", "time_zone_name": "Asia/Jerusalem", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "Main Hall", "guid": "337213d3-558d-5250-abe2-fd1ba4854bd5", "description": null, "capacity": 700}, {"name": "PyData", "guid": "3547e459-2fb9-51fc-8215-1a3d1f2c8869", "description": null, "capacity": null}, {"name": "Hall 3", "guid": "af7a3443-42e2-5372-9914-e4add71a849d", "description": null, "capacity": null}], "tracks": [{"name": "General", "color": "#3632D6"}, {"name": "DB, Big Data, Data Science, AI/ML", "color": "#3EF265"}, {"name": "Security", "color": "#E00A0A"}, {"name": "DevOps/CI/Automation/QA", "color": "#E3E73D"}, {"name": "Other", "color": "#F0BCA5"}], "days": [{"index": 1, "date": "2022-06-28", "day_start": "2022-06-28T04:00:00+03:00", "day_end": "2022-06-29T03:59:00+03:00", "rooms": {"Main Hall": [{"url": "https://cfp.pycon.org.il/conference2022/talk/8H8FQX/", "id": 741, "guid": "3ad488ba-b2bb-5935-a179-7a99b7ce39c0", "date": "2022-06-28T09:30:00+03:00", "start": "09:30", "logo": null, "duration": "00:50", "room": "Main Hall", "slug": "conference2022-741--panel-python-strategy", "title": "\ud83c\uddfa\ud83c\uddf8 Panel: Python Strategy", "subtitle": "", "track": "General", "type": "Keynote", "language": "en", "abstract": "In this panel, we will ask industry leaders about their python strategy and usage patterns", "description": "In this panel, we will ask industry leaders about their python strategy and usage patterns", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d74f582c-5d04-5b14-ba67-dbdece49b7ec", "id": 10, "code": "A7VPV3", "public_name": "Sim Zacks", "avatar": null, "biography": "TBD", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/NZQNPP/", "id": 660, "guid": "17b9c94d-28ec-5997-ad3e-e5741da8c737", "date": "2022-06-28T10:30:00+03:00", "start": "10:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-660--the-hidden-costs-of-your-favorite-functions", "title": "\ud83c\uddfa\ud83c\uddf8 The hidden costs of your favorite functions", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Have you ever written a simple function, and added it to your pipeline only to discover it is WAY slower than it should be? In this talk, I will demonstrate how to sniff out functions that slow down your pipeline and be proactive about speeding up", "description": "Have you ever written a short and simple function, and added it to your pipeline only to discover it is WAY slower than it should be? Did you know some pandas functions are written in cython and work much faster than others? Python is not known to be the fastest language, but you can be proactive about speeding things up!\r\n\r\nWhile Python is featureful and simple to write, it isn\u2019t known as a fast language. Many of Python\u2019s functions and one-liners have hidden complexity costs. Choosing the wrong ones can slow down your code and those costs definitely add up. For example - popping an item from the end of a list vs from the start of it, or using the \u201cin\u201d operator on a set vs a list. A few seconds running time difference in your local script could mean a few hours time difference on the production pipeline.\r\n\r\nIf you want to learn about what to look out for, how to overcome these pitfalls and make your code more efficient this is the talk for you.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "843c74b7-8e77-5125-ac6b-c930b7bdee93", "id": 803, "code": "MJ3H7L", "public_name": "Maya Gershovitz Bar", "avatar": null, "biography": "Maya Gershovitz Bar is a Software Engineer at Meta. She has been working on data pipelines for a number of years and the author of a well known Israeli tech blog about algorithms and complexity.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/LW3VLY/", "id": 666, "guid": "ca0052a6-af58-5a50-8e1a-ba9a5f791ee2", "date": "2022-06-28T11:00:00+03:00", "start": "11:00", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-666--building-lightning-fast-apps-with-asyncio", "title": "\ud83c\uddfa\ud83c\uddf8 Building Lightning-Fast Apps With asyncio", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "asyncio, Python's concurrent I/O library, can power very-high-performance applications. Come and hear the story of how we were able to replace a legacy service cluster with a single asyncio-powered instance, and how you can do it too.", "description": "Modern services must handle vast amounts of traffic efficiently and in a scalable manner. One method of achieving high throughput while keeping things simple is by utilizing concurrent I/O.\r\n\r\nThe asyncio package is Python's offering for building high-performance, concurrent applications using non-blocking I/O. It is also known as an event loop or async/await (among other names), but in essence, it's a useful method for achieving high concurrency efficiently \u2013 one that differs from the principles of multithreading and offers unique benefits.\r\n\r\nIn this talk, I will share the story of why we designed an asyncio-based Python service, how its performance exceeded that of the Java service it replaced by an order-of-magnitude, and what learnings we gained from it. These learnings can help us design super-fast, highly concurrent services.\r\n\r\nWe will talk about:\r\n- The principle behind asyncio's efficiency - its secret sauce.\r\n- When asyncio shines, and when you might opt for a different approach.\r\n- How to combine it with other paradigms to maximize your application's performance.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "485be51d-627a-5a35-af24-64d81ca77cdb", "id": 806, "code": "BFUSRT", "public_name": "Assaf Dayan", "avatar": "https://cfp.pycon.org.il/media/assaf-headshot-square.png", "biography": "Assaf is a software engineer at Dropbox. He has experience designing and developing large-scale, distributed systems in Python, Go, and other languages. He is curious about technologies that simplify complexity and make work more efficient.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/XNGJKS/", "id": 525, "guid": "430a86df-82dd-5096-aefd-a8c550ae29af", "date": "2022-06-28T11:30:00+03:00", "start": "11:30", "logo": null, "duration": "00:50", "room": "Main Hall", "slug": "conference2022-525--what-happens-when-you-import-a-module-", "title": "\ud83c\uddfa\ud83c\uddf8 What happens when you import a module?", "subtitle": "", "track": "General", "type": "Long Talk", "language": "en", "abstract": "We all \"import\" modules . But how does Python find and load modules, and making their definitions available? The answer is surprisingly complex. This talk walks you through the world of module importation, from load path, to finders and loaders.", "description": "Modules are a key feature of Python, allowing us to easily reuse our own code and take advantage of publicly available modules from PyPI. It's a rare program that doesn't include at least one \"import\" statement. But what actually happens when we import a module? How does Python find our file? How does it decide whether it should even try to find our module? And after it finds our module file, how does Python load it into memory, assigning to its attributes?\r\n\r\nIn this talk, I'll walk you through what happens when you \"import\" a module into Python. The mechanism is surprisingly complex, in no small part because it has to take so many possibilities into consideration. We'll talk about finders and loaders, and about the many ways in which you can customize the module-loading mechanism if you find a need to do so.\r\n\r\nIf you've ever imported a module, then this talk will pull back the curtain a bit, helping you to understand what's happening under the hood.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "857807f5-4dc9-5ecb-b8cd-94148db64a13", "id": 219, "code": "9M8KZ3", "public_name": "Reuven Lerner", "avatar": "https://cfp.pycon.org.il/media/Reuven.Lerner.jpeg", "biography": "Reuven M. Lerner is a full-time trainer, offering more than 30 courses \r\nin Python and data science to companies around the world. Reuven is the \r\nauthor of \"Python Workout\" and \"Pandas Workout,\" both published with \r\nManning. His free, weekly \"Better Developers\" newsletter about Python \r\nand software engineering has more than 25,000 subscribers. Reuven lives \r\nin Modi'in, Israel with his wife and three children.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/HJSCXC/", "id": 637, "guid": "edb1e18a-8be2-5bf6-895f-532f614fd178", "date": "2022-06-28T14:00:00+03:00", "start": "14:00", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-637--monorepo-one-repo-to-rule-them-all", "title": "\ud83c\uddfa\ud83c\uddf8 Monorepo - One Repo To Rule Them All", "subtitle": "", "track": "DevOps/CI/Automation/QA", "type": "Talk", "language": "en", "abstract": "Does your service architecture slow you down? Instead of enabling rapid and frequent deliveries? If you have found yourself in this situation, you will benefit from hearing about our journey towards an efficient repository structure.", "description": "In this session, we will share our journey towards a monorepo. We will discuss the many reasons we made this decision, and how it improved our development. Learning from our experience will help you choose the correct repository structure for your project and needs. We will get into details about the python specifics of a monorepo: what is a good python repository structure, how to utilize python relative imports, editable installation, and how to handle virtual environments. Getting practical, we will present our implementation of monorepo in Gitlab and how we transferred the repositories. We will dive into the technical details sharing commands and snippets.\r\n\r\nAt the end of this session, you will be able to choose the correct repository structure for your project and will have gained practical tools to implement a monorepo and conduct a safe transfer.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "3521d998-1e91-536f-b31d-d8c32aa5f338", "id": 81, "code": "LNKWBH", "public_name": "Yael Green", "avatar": "https://cfp.pycon.org.il/media/profile_picture.png", "biography": "I am a  Software Engineer at Imubit taking the role of a team lead. I develop mostly backend in Python. I love technology and talking about it.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/MTCTZY/", "id": 680, "guid": "70cc48a8-2222-50d3-9f4d-97f1165b2282", "date": "2022-06-28T14:30:00+03:00", "start": "14:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-680--no-more-sassy-saas-integrations", "title": "\ud83c\uddfa\ud83c\uddf8 No more sassy SaaS integrations", "subtitle": "", "track": "DevOps/CI/Automation/QA", "type": "Talk", "language": "en", "abstract": "Applications today are giant meshes of services and interconnected APIs. However, there isn\u2019t a standardized, systematic way to integrate them. In this talk, we'll cover the patterns of working with 3rd party integrations.", "description": "Applications today are giant meshes of services and interconnected APIs. We benefit from an ecosystem of rich SaaS and 3rd party integrations that are the de facto standard for many platforms and applications: Slack & Jira for example. However, there isn\u2019t a standardized, systematic way to integrate them. \r\n\r\nIn this talk, we'll cover the patterns and antipatterns of working with 3rd party integrations,  and suggest how to wrap them into a very Pythonic framework that focuses on ease of use and great developer experience - using widely used frameworks such as Typer, Pydantic and methodologies like Dependency Injection, Snapshot testing & JSONSchema.\r\n\r\nAt the end of the talk, the audience will understand the problem of many 3rd party integrations, how existing products solved that problem and how to develop an infrastructure that lets you develop these integrations faster.\r\n\r\nTalk structure:\r\nThe problems with many integrations\r\nUse-case: How Airbyte dealt with many integrations and created a community out of it\r\nHow to create a framework that let you integrate new SaaS easily using:\r\n* Pydantic\r\n* Typer\r\n* FastAPI\r\n* Decorators & Dependency Injections\r\nHow to improve testing for integrations:\r\n* Snapshot testing using module patching", "recording_license": "", "do_not_record": false, "persons": [{"guid": "64ff7ecf-b092-5cff-bf5b-0010deac82b9", "id": 60, "code": "GFWWTA", "public_name": "Amit Ripshtos", "avatar": "https://cfp.pycon.org.il/media/1633010419465.jpeg", "biography": "Software developer & leader.\r\nReally loves Python.\r\n\r\nTechnical Lead @ Dazz", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/CKS3YM/", "id": 643, "guid": "c8569a80-fd99-56dc-9a29-64a8641513d9", "date": "2022-06-28T15:30:00+03:00", "start": "15:30", "logo": null, "duration": "00:50", "room": "Main Hall", "slug": "conference2022-643--python-common-security-mistakes-in-2022", "title": "\ud83c\uddfa\ud83c\uddf8 Python common security mistakes in 2022", "subtitle": "", "track": "Security", "type": "Long Talk", "language": "en", "abstract": "The Python eco-system and community made a lot of progress in terms of security and security awareness, but common OWASP top 10 mistakes still happen in the real world.", "description": "Python gives developers multiple tools and best practices to avoid common security issues and vulnerabilities. However, real life requirements, obstacles and deadlines can sometimes cause good developers to produce insecure code that is vulnerable to common OWASP top 10 attacks like Authorization Bypass, SQL Injection and Cross Site Scripting (XSS).\r\n\r\nThis presentation shows examples based on real-life vulnerabilities we encounter at CYE in our everyday penetration testing of our clients, with vulnerable code examples and mitigations.\r\n\r\nPresentation outline:\r\nAttack and threats - OWASP Top 10\r\n*   Parameter Tampering\r\n*   SQL Injections\r\n*   XSS\\PXSS\r\n*   Malicious File Upload\r\n\r\nMitigations\r\n*   Parameterized Queries and ORM\r\n*   Hardening: Authorizations + Views\r\n*   Authorization and permission checks\r\n*   Input Validation\r\n*   Output HTML Encoding", "recording_license": "", "do_not_record": false, "persons": [{"guid": "78b730df-f681-55f2-b365-9bb00e56a0a6", "id": 785, "code": "TDL7Q3", "public_name": "Gil Cohen", "avatar": "https://cfp.pycon.org.il/media/Gil6.JPG", "biography": "Gil Cohen, Research director & Appsec SME\r\n\r\nGil is a highly experienced information security architect, consultant, researcher and penetration tester with more than 16 years of experience. Previously a senior consultant and team leader, mentor for colleagues, head of penetration testing and training and the CTO of Comsec Group, Gil currently acts as a research director and application security subject matter expert at Cye, taking part in both the information security services department and in the research of the Hyver automation product. \r\nGil started his computer science career in the Israeli Mamram IDF programming course. After serving in the military for 3 years as a Programmer, Gil changed his focus to computer security and moved to the IDF's Infosec - Center for Encryption and Information Security, specializing in penetration testing.\r\nAfter honorably discharging from service, Gil worked in several companies and further developed his expertise in application security and computer security in general, including development of unique hacking utilities and techniques. In 2009, Gil finished a Computer Science B.Sc degree with excellence in The College of Management Academic Studies. Lectures at international well-known conferences including Defcon in Las Vegas and others.", "answers": []}, {"guid": "db5015a2-9e3e-5864-a132-e0fb2d92cfd3", "id": 875, "code": "9NDQ3K", "public_name": "Eyal Greenberg", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/YJGQNC/", "id": 596, "guid": "98a37930-da95-5d4d-8e2e-c1b558405456", "date": "2022-06-28T16:30:00+03:00", "start": "16:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-596--off-road-profiling-when-the-automated-profilers-just-don-t-cut-it-", "title": "\ud83c\uddfa\ud83c\uddf8 Off road profiling - when the automated profilers just don't cut it.", "subtitle": "", "track": "DevOps/CI/Automation/QA", "type": "Talk", "language": "en", "abstract": "When long running jobs are too long running jobs, profilers help us understand where it is that our code spends its time. I present a technique for manually guided profiling for cases the automatic tools cant' help.", "description": "Automatic profiling is great. You just run your code, as you normally do, and get a nice graph of where your CPU spends its time while you're waiting for a job to finish.\r\n\r\nExcept, sometimes the automatic tools can't help. Maybe something in your work load doesn't agree with them. Maybe they make your already long running job run so much longer that it's impractical to run it properly. Maybe you're only interested in profiling a small part of your code, and profiling the whole thing would create too much noise to be useful.\r\n\r\nIn this lecture I'll go over what I did when faced with such a problem. I'll detail the technique I used to determine where the time is spent. This is a manually guided profiling, i.e. the programmer decides which areas to measure.\r\n\r\nWe'll also handle the more complicated cases. In particular:\r\n* Short functions that get called _a lot_.\r\n* Preventing double accounting when one measured function calls another measured function.\r\n* How to present your data when you need to \"sell\" the need to fix a problem.\r\n\r\nLast, but not least, I'll present an easy way for you to incorporate this technique into your own Python code.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "92428c94-971f-524a-9b55-46e545f6d7cd", "id": 754, "code": "BFLX3B", "public_name": "Shachar Shemesh", "avatar": "https://cfp.pycon.org.il/media/Serious_portrait.jpg", "biography": "With about four decades of experience programming, I managed to be involved in just about every aspect of the computer industry. I have done extensive programming in Python, Perl, PHP, C, C++, D, and Assembly for the 6502 and 68000 platforms. I've programmed on the Apple II, Amiga, MSDOS, Win32, Unix/Linux and Android. I've recently picked up Verilog, for programming the hardware itself.\r\n\r\nI tried creating a new C++ style programming language, but for the time being that project has been abandoned.\r\n\r\nI am a founding member, and former board member, of Hamakor, and am a founding member and board member of Digital Right Movement.\r\n\r\nI run two YouTube channels:\r\n* Hebrew one about explaining aspects of technology is at  https://www.youtube.com/channel/UC3-CWmNDharsFBgtjGOGCpA.\r\n* English one, where I'm building a clone of 80's computers from scratch on FPGA, is at https://www.youtube.com/c/CompuSAR.", "answers": []}], "links": [], "attachments": [], "answers": []}], "PyData": [{"url": "https://cfp.pycon.org.il/conference2022/talk/NTWSDZ/", "id": 656, "guid": "543a1eac-6efa-54af-a346-3d80e9f3e1a9", "date": "2022-06-28T10:30:00+03:00", "start": "10:30", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-656--supercharging-pipeline-efficiency-with-ml-performance-prediction", "title": "\ud83c\uddfa\ud83c\uddf8 Supercharging Pipeline Efficiency with ML Performance Prediction", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Running millions of tasks is difficult when dealing with high workload variance. We improved our pipeline efficiency by using ML models to classify task requirements and dynamically allocate the necessary system resources.", "description": "To process our customers' data, Singular's data pipeline fetches and enriches data from dozens of different data sources multiple times a day.\r\n\r\nThe pipeline consists of hundreds of thousands of daily tasks, each with a different processing time and resource requirements, depending on the customer's size and business needs. We deal with this scale by using Celery and Kubernetes as our tasks infrastructure. This lets us allocate dedicated workers and queues to each type of task based on its requirements.\r\n\r\nOriginally, our task requirements, required workers, and resources were all configured manually. As our customer base grew, we noticed that heavier and longer tasks were grabbing all the resources and causing unacceptable queues in our pipeline. Moreover, some of the heavier tasks required significantly more memory, leading to Out-Of-Memory kills and infrastructure issues.\r\n\r\nIf we could classify tasks by their heaviness and how long they were going to take, we could have segregated tasks in Celery based on their expected duration and memory requirements and thus minimized interruptions to the rest of the pipeline. However, the variance in the size and granularity of the fetched data made it impossible to classify if a task was about to take one minute or one hour.\r\n\r\nOur challenge was: how do we categorize these tasks, accurately and automatically? To solve the issue we implemented a machine-learning model that could learn to predict the expected duration and memory usage of a given task. Using Celery\u2019s advanced task routing capabilities, we could then dynamically configure different task queues based on the model's prediction.\r\n\r\nThis raised another challenge - how could we use the classified queues in the best way? We could have chosen to once again configure workers statically to consume from each queue. However, we felt this approach would be inadequate at scale. We decided to make use of Kubernetes\u2019 vertical and horizontal autoscaling capabilities to dynamically allocate workers for each classified queue based on its length. This improved our ability to respond to pipeline load automatically, increasing performance and availability. Additionally, we were able to deploy shorter-lived workers on AWS Spot instances, giving us higher performance while lowering cloud costs.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "4a7f39b8-6f00-5bda-a820-16df8faf6135", "id": 800, "code": "JCFBFJ", "public_name": "Boaz Wiesner", "avatar": null, "biography": "DevOps Engineer @ Singular", "answers": []}, {"guid": "a2aa5680-31f1-5247-8a26-8daa80c20286", "id": 801, "code": "RVJSPG", "public_name": "Keren Meron", "avatar": "https://cfp.pycon.org.il/media/Singula-IMG_8869_1.jpg", "biography": "Software Developer for 3 years at Singular.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/BRSQEQ/", "id": 645, "guid": "bcc543d9-2d25-5b33-889e-6c89125a9707", "date": "2022-06-28T11:00:00+03:00", "start": "11:00", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-645--detecting-anomalous-sequences-using-text-processing-methods", "title": "\ud83c\uddfa\ud83c\uddf8 Detecting anomalous sequences using text processing methods", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Hello wait you talk see to can\u2019t my!\r\nSounds weird? Detecting abnormal sequences is a common problem.\r\nJoin my talk to see how this problem involves Bert, Word2vec & Autoencoders (in python), and how you can apply it to information security problems", "description": "Dealing with sequences can be challenging as each item has its unique position in the sequence and there\u2019s a correlation between all items and their positions. One of the most common issues when working with sequences is dealing with anomalous sequences, that doesn\u2019t fit with the regular sequences\u2019 structure. Those sequences make no sense, create noise in the data and interrupt the learning process. \r\n\r\nThe most common sequences are text sentences, and possible scenario for abnormal text sequences could be when trying to translate sound to text, and sometimes there\u2019re some irrelevant noise that can translate to nonsense sequences, and if we want to build a model based on that data, we need to find a way to identify and clean this irrelevant and anomalous data.\r\n\r\nDetecting anomalous sequences could be also related to non-text sequences, such as sequence of action or events. Those scenarios could be related to information security problems. For example, in many organizations there\u2019re logs of actions that has been made on internal systems and detecting suspicious sequences of actions on the system could be a crucial in detecting attacks or misusage of the systems. \r\n\r\nMy proposed solution includes two phases.\r\nIn the first step, we need to model the items in the sequence and understand its structure and correlations. We need to train a word embedding algorithm for generating the vectors embedding out of the sequences, such as Bert or Word2vec. \r\nThe next step, after creating the sequence embedding, is detecting the anomalies. The algorithm we used for the anomaly detection phase is Autoencoder, where you can train the model on normal data and detect the abnormal events.\r\n\r\nThis pipeline has some challenges. For example, each sequence has different length and there\u2019s a need for training both the word embedding algorithm and the Autoencoder to know how to learn the right structure of all possible lengths.\r\n\r\nJoin my talk to see how I used python for building this architecture, and learn how you can process your sequences, using word embedding algorithms such as Bert and Word2vec and use their output for Autoencoders in order to create an anomaly detection model for detecting suspicious sequences.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "a98dadd6-3e63-5b54-bd9e-ba84b2c8d433", "id": 237, "code": "CJSLQX", "public_name": "Liron Faybish (Ben-Kimon)", "avatar": "https://cfp.pycon.org.il/media/A66I5618.jpg", "biography": "I'm a Data Scientist at PayPal for almost 5 years. I work for the enterprise threat management team in the information security organization. My focus is finding machine learning solutions for information security problems in general and specifically for insider frauds threats.\r\n\r\nI hold a Msc in software and information systems engineering. In my thesis I researched the field of user verification on mobile devices using sequences of touch gestures. The full paper of this thesis was published at PAKDD 2018 conference, and also I published an extended abstract of this research in UMAP 2017 conference.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/QDDKUZ/", "id": 671, "guid": "af2b52c2-deea-589c-a082-bcd155e4305f", "date": "2022-06-28T11:30:00+03:00", "start": "11:30", "logo": null, "duration": "00:50", "room": "PyData", "slug": "conference2022-671--zero-to-hero-few-shot-learning-multi-armed-bandit", "title": "\ud83c\uddee\ud83c\uddf1 Zero to Hero: Few Shot Learning + Multi-armed Bandit", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Long Talk", "language": "en", "abstract": "Join us to learn how to use large language models to solve NLP tasks. Via live coding, we'll demonstrate how to use Few Shot Learning together with Multi-armed Bandit, to tackle the boolean question answering task.", "description": "In the era of massive language models (LMs), solving NLP tasks can be as easy as specifying a product need to your engineering team: all you need to do is specify your need in a language the LM can understand. One of the main paradigms in nowadays massive LMs is called Few Shot Learning, where one can specify a set of examples from which the model has to understand the task. This approach can sometimes be as effective as finetuning.\r\n\r\nBut how do you choose the set of examples to show to the model? Randomly choose them? Try all possible combinations and choose the best one? We propose to formulate this task as a Multi-Armed Bandit problem: There are many possible sets of examples, and we\u2019d like to explore and find the optimal in an efficient way.\r\n\r\nIn this session we\u2019ll begin with an empty Jupyter Notebook and finish with a complete notebook that tackles the BoolQ task (boolean question answering). This live coding session will be paired with practical advices and insights you can apply to your next NLP task using the Few Shot Learning approach.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "ea3ac1c3-cf43-5018-9e5e-2cc8d4eec6a4", "id": 810, "code": "BUEWF3", "public_name": "Yoel Zeldes", "avatar": "https://cfp.pycon.org.il/media/profile2.jpeg", "biography": "Over 13 years of experience as a software engineer and algorithm developer in various domains, including NLP, recommender systems, vision, and cybersecurity.\r\n\r\nI am passionate about good quality code, interesting ideas and sophisticated algorithms. I love encountering elegant equations while trying to solve real-life problems.", "answers": []}, {"guid": "72c5022d-bee3-51b9-8ebc-375aff09fbb9", "id": 820, "code": "AWWJNS", "public_name": "Shuki Cohen", "avatar": "https://cfp.pycon.org.il/media/Screenshot_20220411-003148.jpg", "biography": "Seasoned Data Scientist with an emphasis on NLP, classical ML, visualization and experimentation. Driven by great passion for the field, I am inspired by unintuitive insights and inferences made by smart algorithms. In my talks, I try to convey my typical spirit and enthusiasm while delivering crisp takeaways.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/AYYU7Q/", "id": 701, "guid": "23709be8-d866-5d62-a003-fa478a405b19", "date": "2022-06-28T14:00:00+03:00", "start": "14:00", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-701--python-dag-architecture-the-winning-combination-for-the-development-of-complex-varied-algorithmic-flows-in-an-agile-world-", "title": "\ud83c\uddee\ud83c\uddf1 Python & DAG architecture: The winning combination for the development of complex varied algorithmic flows in an agile world.", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Rapid development of complex algorithms requires an agile management. This talk will demonstrate how we leverage Python flexibility and DAGs power to enable a flexible algorithm development process with high quality and minimal risk at each stage.", "description": "Rapid development of complex and varied algorithms requires tight and agile management. This talk will demonstrate the power of DAGs (Direct Acyclic Graphs) to enable a flexible algorithm development process with high quality and minimal risk at each stage in a continuous delivery ecosystem. I will show how Python concepts and libraries are used in tandem with DAG architecture to manage independent, atomic algorithmic units with unique characteristics \u2014 and at the same time to easily create complex flows through flexible combinational integrations of algorithmic building blocks.\r\nPython-based DAG is central in creating a strong yet open and simple infrastructure for our SW architecture, that supports incremental deliveries for the development of new high-quality algorithmic solutions according to changing requirements.  \r\nThe semiconductor industry is a dynamic field experiencing rapid growth, requiring the continuous delivery of algorithmic solutions to diverse challenges. While these solutions are inherently complex, they need to be developed quickly and agilely. \r\nOur DAG-based SW architecture is perfect for meeting these needs. \r\nDAG enables us to develop and enrich our application in both new algorithm units \u2014 independent Python packages with their unique parameters, tests etc. \u2014 and new algorithmic flows, while improving reuse and throughput without interfering with parallel development.\r\nMoreover, DAG provides the flexibility to update any existing algorithmic unit with new requirements, according to changing customer challenges. This is optimally done through the combination of DAG and Python, which inherently enables algorithmic building blocks to act as independent packages and yet remain accessible to debugging through the applications that consume it.  And since Python is object-based, we leverage it within the DAG architecture to enhance building blocks with classes, methods, attributes and more. \r\nEach node in the graph activates an independent algorithmic unit and delivers all required inputs and parameters. DAG combines these units to generate different flows for different cases and requirements. Over time, each graph section can be developed, replaced or updated with minimal effect on other algorithmic units and flow.\r\nWe will learn that:\r\n1.\tPython concepts and libraries (like Tickle and Dask) are the perfect drivers for a DAG-based SW architecture.\r\n2.\tDAG as a SW architecture enables a flexible development process with high quality and minimal risk at each stage.\r\n3.\tDAG as a SW architecture enables the development of a variety of different algorithms that are both independent and collaborative, thereby supporting reuse and saving TPT.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "16ce01ef-c978-52d5-b25e-f7cccd4d7e06", "id": 834, "code": "BNHQBL", "public_name": "Noa Marom", "avatar": null, "biography": "Noa Marom is a Senior SW engineer C++ and Python, strong Object-Oriented expertise. Lead Agile and SCRUM methodology adoption, propelling teams to continuous improvement. Aligns to customer needs and requirements, focuses on big picture and fully committed to a high-quality product and a satisficed customer. M.Sc focused in Computer Science from Bar-Ilan University.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/3SFAHN/", "id": 690, "guid": "02e958df-cc5a-5f23-afb0-c424300ad70a", "date": "2022-06-28T14:30:00+03:00", "start": "14:30", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-690--cracking-wordle-machine-learning-based-strategies", "title": "\ud83c\uddfa\ud83c\uddf8 Cracking Wordle: Machine Learning based Strategies", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Wordle is an online word game that has gone viral with millions of daily players world-wide. We will consider strategies based on information theory and reinforcement learning, allowing the creation of agents outperforming most human Wordle players.", "description": "Have you seen the posts on social media featuring yellow, green and gray boxes? Yes, that\u2019s Wordle, a simple online word game that has gone viral with millions of daily players world-wide.\r\n\r\nThough being a simple game, naive automatic solutions do not provide a winning strategy for the game. Following the success of machine learning solvers in games like chess and go, we will dive into Wordle and demonstrate how to program python agents that outperform most human players. \r\n\r\nWe will implement a strategy based on information theory and a strategy based on reinforcement learning. We will present a Wordle python package for evaluating our agents, which you can later use for evaluating and comparing your own agent. \r\n\r\nFinally, we address the question all players are asking: What is the best starter word?", "recording_license": "", "do_not_record": false, "persons": [{"guid": "364989dc-477c-5cbb-b371-96eb546431d8", "id": 817, "code": "CJF7SE", "public_name": "Efrat Ravid", "avatar": "https://cfp.pycon.org.il/media/DSC_0251-1.jpg", "biography": "I\u2019m the Lead Data Scientist at Intezer, a Genetic Malware Analysis startup, where I deliver end-to-end ML solutions for cyber threat detection. As part of my MSc, I explore NLP and time series analysis techniques for the detection of radicalization in social networks. I hold a BSc in Statistics and Computer Science and have served in 8200.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/MTQEA3/", "id": 647, "guid": "e73941cb-19aa-5530-89f0-f88bd7c0f1a0", "date": "2022-06-28T15:30:00+03:00", "start": "15:30", "logo": null, "duration": "00:50", "room": "PyData", "slug": "conference2022-647--engineering-and-algorithms-using-python-at-scale-creating-a-high-definition-map-of-the-world-s-road-network", "title": "\ud83c\uddee\ud83c\uddf1 Engineering and algorithms using python at scale \u2013 creating a High Definition Map of the world's road network", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Long Talk", "language": "en", "abstract": "How we map continents at cm level accuracy from crowd sourced computer vision data using PySpark. \r\nA tale of engineering challenges working with python at huge scale in production with a rapidly evolving development effort.", "description": "REM group in Mobileye is tasked with the challenge of creating and updating a high definition map at world scale with cm level accuracy of all road geometry and semantic elements to enable fully autonomous driving. \r\n\r\nThe map is constructed from crowd sourced anonymized data of millions of driving-assistance systems running computer vision processes in consumer vehicles. \r\n\r\nThis is the tale of the engineering challenges building a python based production solution running cutting edge algorithms efficiently on big data, while supporting a rapid pace development environment.  \r\n\r\nIn this tale we will share how we addressed the need to: \r\n- Build maps at huge scale in reasonable time and efficiency \r\n- Enable 100+ developers to continuously evolve the technology at a fast pace, run their code on production loads, view and debug their results \r\n\r\nWe will discuss challenges of working with PySpark as our major computation engine, and some of the solutions we employed to adderess these challenges. \r\n\r\nA peek into engineering in Mobileye REM group.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "42ec692f-d119-5210-98e3-757a7c110ab7", "id": 878, "code": "YZ7XUP", "public_name": "Amit Raphael", "avatar": "https://cfp.pycon.org.il/media/self.jpeg", "biography": "I have a decade of experience as Algorithm & Software developer and team leader.\r\nI'm working now in Mobileye on the amazing challenge of mapping the entire roads network of the world.\r\nI worked on variety of fields including big data, process optimizations, and anomaly detection.\r\nI love the challenge of optimizing anything in life and naturally thinking of the best way to do things.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/9DUY9A/", "id": 579, "guid": "247d4255-be99-5a9e-b84b-970cc0eb202c", "date": "2022-06-28T16:30:00+03:00", "start": "16:30", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-579--computer-vision-for-the-poor-how-to-easily-reduce-deep-computer-vision-to-shallow-nlp", "title": "\ud83c\uddee\ud83c\uddf1 Computer Vision for The Poor: How to easily reduce Deep Computer Vision to shallow NLP", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Being able to classify images is at the heart of many recommender systems. In this talk, we will share a simple trick to make the task of building an image classifier as easy as building a standard text classifier.", "description": "Building a task-specific image classification solution typically requires leveraging Computer Vision transfer learning techniques. It involves manipulating complex deep learning models, applying non trivial image preprocessing and using expensive hardware. \r\nBut what if you could leverage existing image meta-data annotations to classify our  images?\r\n\r\nIn this talk we will share a simple trick to make the task of building an image classifier as easy as building a standard text classifier. This reduction simplifies preprocessing and training and it also dramatically reduces the required hardware & computation time. This reduction is made possible by leveraging ready-made computer vision APIs provided by the public cloud vendors. These APIs extract semantic textual labels from images that in turn can be used to build simple, shallow NLP classifiers. \r\n\r\nThis simple reduction has helped us deliver fast & cheap Python-based image classification models to production and is widely used in Outbrain products.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f2e2b8f8-4b5f-57a9-a425-b1bdc9056b38", "id": 332, "code": "UZ9VHA", "public_name": "Assaf Klein", "avatar": "https://cfp.pycon.org.il/media/assaf_face_KoH8lbd.jpg", "biography": "Experienced, hands on, software and algorithms manager with unique multidisciplinary knowledge and proven leading skills. He has a wide experience in the design and implementation of machine learning, recommender systems, NLP, data mining, and optimization algorithms.  He has been managing and building small-medium diverse engineering teams for over a decade and currently, he is Recommendations Data Science Manager, leading a diverse group of algorithm engineers in charge of the key KPIs of Outbrain\u2019s recommender system.", "answers": []}, {"guid": "830c91ea-1773-5b02-b380-feb65c2bf4ba", "id": 333, "code": "KGRNKR", "public_name": "Hila Weisman-Zohar", "avatar": "https://cfp.pycon.org.il/media/pic.jpeg", "biography": "Hila has been processing, analyzing, and generating algorithms for the past decade. After earning her masters (summa cum laude) at BIU NLP lab and publishing at elite academic venues such as EMNLP, she began to research & develop algorithms that analyze call center calls as a senior researcher at NICE. She published 4 US patents and presented academic posters at various venues during that time. For the past two years, she has worked as DS Guild Master & algorithm engineer at Outbrain, where she works on large-scale super-fast algorithms for the native ads field. Hila also loves to teach and share her experience and has talked at various meetups and conferences", "answers": []}], "links": [], "attachments": [], "answers": []}], "Hall 3": [{"url": "https://cfp.pycon.org.il/conference2022/talk/9XQ8KV/", "id": 735, "guid": "dca8dd51-9880-5fc4-90c2-764f771942b5", "date": "2022-06-28T10:30:00+03:00", "start": "10:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-735--circuit-playground-bluefruit-board-bringing-objects-to-life-with-python-code-", "title": "\ud83c\uddfa\ud83c\uddf8 Circuit Playground Bluefruit Board: Bringing Objects to Life (With Python Code)", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "What if you could take your Python coding skills and use it to affect the physical world around you? Circuit Playground boards allow you to do just that, and in this talk you\u2019ll see how you can turn on the lights using the Python you already know.", "description": "As developers, we are used to limiting our creations only to the world displayed on screens. This is your opportunity to learn how to go beyond it. \r\nIn this talk I am going to introduce you to the basics of Adafruit\u2019s Circuit Playground Bluefruit board. This round electronic circuit board can light up multicoloured LEDs, make sounds, detect touch, colour, temperature, sound, and motion (with no soldering or sewing required!). The board connects to your computer with a Micro USB cable, which allows you to save your Python code and run it instantly. During this talk we will explore together a few exciting sample projects along with their code. \r\n\r\nEven if you never tinkered with hardware before, or just recently picked up Python, you\u2019ll be able to run the existing sample code and create your own in no time.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d717ccf4-2719-5875-80b0-27d4898a8109", "id": 866, "code": "RADUVA", "public_name": "Lior Dagan Leib", "avatar": "https://cfp.pycon.org.il/media/Lior_Dagan_Leib.jpg", "biography": "Lior Dagan Leib is an experienced software engineer with a decade of mobile and backend development background. In recent years she fell in love with machine learning. She started learning it by taking neural network and deep learning courses and applied her knowledge to create side projects both in NLP and computer vision.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/SGNBSX/", "id": 704, "guid": "bf47d22f-eb85-5f9a-8dbd-ba20de9deec7", "date": "2022-06-28T11:00:00+03:00", "start": "11:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-704--hidden-hacks-in-linters-for-better-more-secure-code", "title": "\ud83c\uddee\ud83c\uddf1 Hidden Hacks in Linters for Better & More Secure Code", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Linters are a great tool that enable developers to create static analysis rules for their code base, and the most popular one in the Python ecosystem is Pylint - and this talk will walk through some of its advanced features", "description": "Linters are a great tool that enable developers to create static analysis rules for their code base, and the most popular one in the Python ecosystem is Pylint.  While most programmers use pre-built sets of rules baked into their linter of choice, these can also be adapted to custom needs.   \r\n\r\nToday's linters are highly evolved and make it possible to avoid static code and even to run static analysis checks through the development and CI cycles, but they are even more powerful and few developers take advantage of their many advanced features.  With Pylint it is quite easy to create custom rules that can for both general usage\u2013\u2013such as library guidelines and even security SAST, through more customized usage like maintaining clarity around internal frameworks, and enforcing organizational guidelines.  \r\n\r\nOften times Python is chosen as the language of choice due to its suitability for specific tasks such data pipelines, and system engineering, while those who code in the language are not always familiar with the language's underlying fundamentals and patterns.  With custom lint rules, you can proactively help your developers write better code in their native IDEs, protect IaC repos through custom lint enforcement on config files, and even have security tools leverage them for manual vulnerability checks.  This talk will demonstrate how you can apply all of this to your Python code with Pylint.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "574e0a18-7d8b-5ca5-a471-cd10b89c4ead", "id": 837, "code": "XLYCVZ", "public_name": "Gabriel Manor-Liechtman", "avatar": null, "biography": "Pic:\r\nhttps://github.com/gemanor.png\r\n\r\n Technical Leader @ Jit CTO Office\r\n\r\nGabriel is a senior full-stack developer with a favorite kid named Frontend.\r\n\r\nFor over ten years now, he's enjoyed writing clean code, simplifying complex problems, leading feature development, and influencing innovation every day.\r\n\r\nWhen I\u2019m not busy with code, you\u2019ll find him talking about application performance, building confidence in code-bases, product architecture, developing organizational culture, and other nerdy dev stuff.\r\n\r\nBesides all that, he's a father of two, a hobbyist photographer, restless traveler, and food creator.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/7EM7SP/", "id": 674, "guid": "2adcf7de-6a70-5e84-8909-60fe4892f381", "date": "2022-06-28T11:30:00+03:00", "start": "11:30", "logo": null, "duration": "00:50", "room": "Hall 3", "slug": "conference2022-674--property-based-testing-with-hypothesis-stronger-tests-less-work", "title": "\ud83c\uddfa\ud83c\uddf8 Property Based Testing with Hypothesis: Stronger Tests, Less Work", "subtitle": "", "track": "DevOps/CI/Automation/QA", "type": "Long Talk", "language": "en", "abstract": "Property based tests are a pragmatic way to write better tests with less work.\r\n\r\nIn this talk, we\u2019ll introduce property based tests and show how they can help you in real-world use-cases.", "description": "Automated tests are great. But they\u2019re not free - we all want tests that are good at protecting us from bugs - but to get that, we need to put a lot of work into them.\r\n\r\nProperty based testing is a technique that saves us a lot of this work. It uses the computer to generate hundreds, or even thousands of test cases - so we don\u2019t have to.\r\nThis helps us find bugs sooner and more easily, and have more confidence in our code.\r\n\r\nThis session will point you in the right direction to start using property based tests in your work.\r\n\r\nWe will explore the technique through Python\u2019s excellent Hypothesis framework and go over the fundamental concepts, basic usage and tooling.\r\n\r\nWe\u2019ll also get a feeling for the power and variety of real-world use cases, by creating a test that explores a CRUD web application, finding bugs in edge cases we didn\u2019t know.\r\n\r\nWe\u2019ll finish with pointers and resources to help you get started.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "700ac17f-9a31-5067-b515-b1b6d5d74902", "id": 815, "code": "S8VEKE", "public_name": "Shai Geva", "avatar": "https://cfp.pycon.org.il/media/avatars/shai_profile_pic_from_linkedin_fCAWvx1.jpeg", "biography": "Making software with humans and for humans for close to 20 years (with python always a part of this).\r\n\r\nI\u2019m a consultant and freelance developer, and have played a bunch of roles in the past - dev, architect, manager & entrepreneur.\r\n\r\nI love automated tests and spend a lot of my time on them, because in every role I\u2019ve played, I\u2019ve seen that investment in testing is one of the best moves a dev team can make.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/FB9K73/", "id": 561, "guid": "483a2799-3f9f-5d7d-967f-71cece2d0e53", "date": "2022-06-28T14:00:00+03:00", "start": "14:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-561--gpt-3-wrote-the-description-for-this-talk-scary-or-exciting-", "title": "\ud83c\uddfa\ud83c\uddf8 GPT-3 wrote the description for this talk... Scary or exciting?", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "This session might give you the tools to get started with Python and GPT-3.", "description": "GPT-3 is a powerful tool that can be used for a variety of natural language processing tasks. Python is a popular language for development, and Ronnie will show you how to use the two together to get the most out of GPT-3.\r\n\r\nYou'll learn how to set up your development environment, how to train and use GPT-3 models, and how to troubleshoot common issues. Ronnie will also share some tips and tricks for getting the most out of GPT-3.\r\n\r\nAt the end of the talk, you'll have a better understanding of how to develop with GPT-3 using Python, and you'll be able to apply what you've learned to your own projects.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "45d50e38-a326-5e03-89cb-a6ba2ca0dfee", "id": 77, "code": "ZPXGTA", "public_name": "Ronnie Sheer", "avatar": "https://cfp.pycon.org.il/media/1649862887677.jpeg", "biography": "Ronnie Sheer is the head of R&D at Hiverr, a new Ed-Tech startup from Telrad group. Ronnie is also an Instructor at LinkedIn Learning, where he delivers lectures and courses on various programming topics. His lectures and courses have received tens of thousands of views on various social media platforms. Ronnie is passionate about Python and software development, and loves sharing his knowledge with others.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/8UKVCH/", "id": 536, "guid": "c0cb28ab-bb30-5de9-9516-4b6291000e59", "date": "2022-06-28T14:30:00+03:00", "start": "14:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-536--effective-protobuf-everything-you-wanted-to-know-but-never-dared-to-ask", "title": "\ud83c\uddee\ud83c\uddf1 Effective Protobuf: Everything You Wanted To Know, But Never Dared To Ask", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Communicating and persisting data (and state!) is at the very core of software engineering. That\u2019s where serialization comes in - but getting it right can be quite the challenge. Here's how to make it less so.", "description": "Communicating and persisting data (and state!) is at the very core of software engineering. That\u2019s where serialization comes in: transforming a set of objects into a stream of bytes.\r\n\r\nThere are endless competing standards out there, roughly divided into textual and binary. For binary, Protobuf by Google is the undisputed \u2018king of the hill\u2019 and even spawned its own RPC library - gRPC. \r\n\r\nGetting serialization right can be quite the challenge, especially when large data sets and big messages are involved. Two of the key challenges are:\r\nThe options are endless, but the long-term implications of your choices can be hard to predict. \r\nBackwards compatibility is paramount, often making changes time-consuming and costly.\r\n\r\nIn this talk we are going to discuss the real-world techniques and optimizations learned building a high-performance production debugger. We\u2019ll cover everything from the theory of serialization, through a quick introduction to Protobuf, all the way to the nitty-gritty details of how to squeeze every bit of performance under the most demanding conditions.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "71cf003a-b946-50b2-9551-67d0189cbf09", "id": 36, "code": "S3NQ7S", "public_name": "Liran Haimovitch", "avatar": "https://cfp.pycon.org.il/media/Liran_Haimovitch_-_Rookout.jpeg", "biography": "Liran is the Co-Founder and CTO of Rookout. He\u2019s an Observability and Instrumentation expert with a deep understanding of Java, Python, Node, and C++. Liran has broad experience in cybersecurity and compliance from his past roles. When not coding, you can find Liran hosting his podcast, speaking at conferences, writing about his tech adventures, and trying out the local cuisine when traveling.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/R99FR8/", "id": 586, "guid": "852a3ee3-6ba0-5415-b9ba-89624532912a", "date": "2022-06-28T15:30:00+03:00", "start": "15:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-586--there-is-always-another-way-sharpen-your-numpy-skills-with-the-8-queens-puzzle", "title": "\ud83c\uddfa\ud83c\uddf8 There is always another way: Sharpen your NumPy skills with the 8 Queens puzzle", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "A short walk through the challenge of finding the fastest NumPy algorithm/way for solving the 8 Queens puzzle. During this walkthrough I will explain the different solutions, the NumPy APIs I\u2019ve been using and their underlying implementation.", "description": "NumPy is a powerful library. Understanding its underlying implementation and its APIs is key for achieving fast code. \r\n\r\nThe 8 Queens puzzle requires placing eight chess queens on an 8\u00d78 chessboard so that no two queens threaten each other. Thus, a solution requires that no two queens share the same row, column, or **diagonal**. When solving the puzzle, it is possible to use shortcuts that reduce computational requirements.  For example, by applying a simple rule that constrains each queen to a single column (or row). Generating permutations further reduces the possibilities to just 40,320 (that is, 8!), which then can be checked only for **diagonal** attacks.\r\n \r\nThe talk will explore 5 different ways to use NumPy to sum all the diagonals in a 2 dimensional array \u2014 from brute force, i.e. looping over all diagonals, to more advanced APIs (e.g. as_strides.) \r\n\r\nDuring this walkthrough I will explain the different solutions, the NumPy APIs I\u2019ve been using, their underlying implementation, and a few basic NumPy principles like array data structure, broadcasting, fancy indexing and more.\r\n\r\nThe optimal solution might surprise you. \r\n\r\n**We will learn that:**\r\n \r\n* loops in NumPy are a performance enemy.\r\n* There are (almost) always multiple ways to solve a problem in NumPy \u2014 you may just need to expand your box of tricks.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "268279be-fe36-5ee4-863c-29933e47a29c", "id": 746, "code": "7UPWLX", "public_name": "Ariel Lieberman", "avatar": "https://cfp.pycon.org.il/media/ArielLiebermanSml.jpg", "biography": "I have been developing software since 1987, and for the past five years I have been a software architect at Applied Materials. Prior to that, I worked in R&D management positions at a number of technology companies, including Verint, Nokia Siemens, and Comverse.  I love to learn new technologies on the one hand, and on the other hand to embark on challenging treks around the world: I have done, among other things, the routes of the Tour de Mont Blanc (160 km) and Alta Via 1 (150 km).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/JY99JU/", "id": 587, "guid": "71782073-5ed4-5f16-89de-d0a946430403", "date": "2022-06-28T16:00:00+03:00", "start": "16:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-587--meet-the-best-feature-in-python-3-10-match-case", "title": "\ud83c\uddfa\ud83c\uddf8 meet the best feature in python 3.10: match-case", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "```\r\n>>> 1,1 == 1,1\r\n1, True, 1\r\n```\r\nThis bug led me into a rabbit hole of learning the internals of python's interpreter. This is a story of how python 3.10's structural pattern matching feature changed the way I write code completely", "description": "In this talk I'll go over the new structural pattern matching (also known as \u201cmatch-case\u201d) featured in python 3.10 and present real world examples on when and why it's extremely useful. In this talk, we will break the misconception that match-case is just another \u201cswitch-case\u201d for python, and discover the it\u2019s real power. those use cases include:\r\n* creating interactive CLIs\r\n* creating custom flake8 plugins\r\n* validating custom syntax", "recording_license": "", "do_not_record": false, "persons": [{"guid": "fd7c970a-e68f-55e0-ba69-f5afbf09cb2a", "id": 747, "code": "Q3XSGL", "public_name": "Dror Ivry", "avatar": "https://cfp.pycon.org.il/media/1584637059690.jpeg", "biography": "enthusiastic developer with a soft spot for cutting edge technology.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/SBKDPC/", "id": 640, "guid": "ed80b08c-7175-5ef1-8a29-9a8c488187b5", "date": "2022-06-28T16:30:00+03:00", "start": "16:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-640--exploring-the-cheese-shop-what-s-in-the-python-package-index-", "title": "\ud83c\uddfa\ud83c\uddf8 Exploring the Cheese Shop - What's in the Python Package Index?", "subtitle": "", "track": "Security", "type": "Talk", "language": "en", "abstract": "We pip install packages all day long, but did you consider where it is coming from?", "description": "Let's explore Pypi, the python package index. Topics we will cover:\r\n1. What is Pypi?\r\n2. How are packages uploaded and by who?\r\n3. How to protect yourself from various attacks coming from Pypi?\r\n4. Running your own Pypi repositories and mirroring python packages.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "d7c8b1b2-0eb7-54a7-b204-f37a8861754c", "id": 782, "code": "YM9WVM", "public_name": "Michael Sverdlin", "avatar": null, "biography": "Michael \u201cSveder\u201d Sverdlin is a software developer, GDG Tel Aviv lead, startup mentor and lecturer. He is a 15 year veteran of the Israeli startup scene, both as an early employee creating outstanding development teams and as startup mentor through the Google Launchpad program, under which he helped tens of startups with their MVPs, technology choices and product ideas. As a software developer Michael Shipped products on all the major consumer platforms \u2013 the web, iOS, Android and Windows, as well as worked on website backend systems, OS internals, and cyber security. His work experience includes Jfrog (where he currently works after they bought Vdoo), Lightricks, Neocleus and Zimperium, as well as big organizations like Intel and the Israeli Defense Forces intelligence unit.", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 2, "date": "2022-06-29", "day_start": "2022-06-29T04:00:00+03:00", "day_end": "2022-06-30T03:59:00+03:00", "rooms": {"Main Hall": [{"url": "https://cfp.pycon.org.il/conference2022/talk/ZQLDJM/", "id": 742, "guid": "578a2a5a-d305-5d89-8f2b-8a1823370ef0", "date": "2022-06-29T09:30:00+03:00", "start": "09:30", "logo": null, "duration": "00:50", "room": "Main Hall", "slug": "conference2022-742--keynote-yam-peleg", "title": "\ud83c\uddfa\ud83c\uddf8 Keynote: Yam Peleg", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "TBD", "description": "TBD", "recording_license": "", "do_not_record": false, "persons": [{"guid": "ac274f14-3d44-52be-9709-c04fda3ec42e", "id": 59, "code": "RMZGYL", "public_name": "Yam Peleg", "avatar": "https://cfp.pycon.org.il/media/276153279_10159609978684663_9183771048069833045_n.jpg", "biography": "Yam Peleg started his academic studies at the age of 14 and right after completing his military service in the israeli intelligence, He founded his own start up company: Deep Trading, which today is a highly awarded company that is ranked among the top trading firms worldwide.\r\nIn total he has over 15 years of professional experience with data-science and machine learning in variety of industries, including finance, healthcare, retail, and manufacturing, and he also co-founded number of businesses and ventures involving data science.\r\n\r\nFor his open source contributions, He left his mark on some of the most popular data science packages such as numpy and scikit-image. \r\nAnd he is a member of the official \"keras team\" and had been among the earliest core developers of Keras - The leading open-source deep learning framework today. \r\nHis open source contributions had been presented at numerous conferences around the world including the top python conferences: pycon, scipy and pydata, and he is currently working on several books on the subject matter.\r\n\r\nFor his academic work, his main focus of interest is the field of \"meta-learning\": \"algorithms that create algorithms\". \r\nIn his papers he applies this approach for to bring the power of machine learning to solve the hardest problems in other fields of science and his papers are currently published on leading journals of biology and physics.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/Z7AY7W/", "id": 547, "guid": "2045c93f-1912-5970-844a-2a99f36ef2ff", "date": "2022-06-29T10:30:00+03:00", "start": "10:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-547--memoirs-of-a-python-object-memory-management-and-improving-performance", "title": "\ud83c\uddfa\ud83c\uddf8 Memoirs of a Python Object: Memory Management and Improving Performance", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Python is known to be expensive in Memory and CPU. However, it does not mean you can't do anything about it.\r\nIn this talk, we'll learn about Python's memory management, and what you can do today to improve the performance of your Python program.", "description": "Python is a dynamically typed and garbage collected language. These traits naturally mean that Python can be less efficient in terms of its CPU performance and its memory utilization.\r\nIn this talk, we learn about how Python manages its memory, and what you can do about it to improve the performance of your Python program.\r\nMore specifically, we'll learn about:\r\n- Variables vs Names - why Python is different than other programming languages\r\n- How Python represents objects, and specifically - the PyObject struct\r\n- Python's two methods of garbage collecting - Reference Counting and Tracing\r\n- How you can improve the performance of your program\r\n- Two case studies from Instagram (Facebook)", "recording_license": "", "do_not_record": false, "persons": [{"guid": "17015925-3589-5500-b3fe-1901c4aa2b32", "id": 720, "code": "D3CJBB", "public_name": "Michael Khaitov", "avatar": "https://cfp.pycon.org.il/media/20220607_154331_edited.jpg", "biography": "Michael (Mickey) is a software engineer in Meta (previously Facebook) for the past 2.5 years, and worked as part of the Data Infra team in the Novi project.\r\nHis team built an ORM and Storage Engine for Novi's OLTP storage. The ORM and Storage engine layers were written initially only in Python. Later, their low-level stack was re-written to C++, keeping the higher levels and API in Python.\r\nHis team has faced many performance challenges during his time at Meta, and has learned about improving performance in Python through that.\r\nMichael now works as part of the Authentication Services team, where he works on building the future authentication levers for Meta's Family of Apps.\r\nBesides working at Meta, Michael is a Computer Science BSc graduate with honors from Tel Aviv University.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/MGNZBH/", "id": 612, "guid": "a6c91e90-eff2-5d0c-ba8d-60e4d5c5c494", "date": "2022-06-29T11:00:00+03:00", "start": "11:00", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-612--identity-providers-your-app-and-everything-in-between", "title": "\ud83c\uddfa\ud83c\uddf8 Identity providers, your app, and everything in-between", "subtitle": "", "track": "Security", "type": "Talk", "language": "en", "abstract": "Signing in to Twitter using Google, or saving files from an app to the cloud are different applications of auth flows. This talk will show how it works and focus on integrating a flask app with identity providers by applying the relevant flow.", "description": "Most users prefer to sign in to apps via trusted identity platforms like Google, rather than managing a separate account per app.\r\nAs a backend developer, you would probably like to add such a login capability to your app, and more than that- let the user grant the app permission to use his data.\r\nIn this talk, you will hear about the standard authentication and authorization flows, and how we can integrate our flask app with identity providers - Starting from the basic terms and ending with the different auth flows. I will focus on matching the right flow for our app architecture and explain how the app gets the user's consent to access his data.\r\nAlthough the integration code will be with a specific identity provider, the flow is generic for every standard identity platform.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "f6384f01-7219-52c6-92e1-e98f59dbc9c3", "id": 758, "code": "LN9THB", "public_name": "Hodaya Ankri", "avatar": "https://cfp.pycon.org.il/media/my_pic.jpeg", "biography": "I am a software engineer at Microsoft, focused on the backend development of cloud products. Python is one of my favorite languages,  C and C# are also on the list :)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/GRM8TF/", "id": 619, "guid": "b84969d8-3eeb-5cc7-a45b-884c9089d897", "date": "2022-06-29T11:30:00+03:00", "start": "11:30", "logo": null, "duration": "00:50", "room": "Main Hall", "slug": "conference2022-619--optimizing-code-performance-for-python-internals", "title": "\ud83c\uddfa\ud83c\uddf8 Optimizing Code Performance for Python Internals", "subtitle": "", "track": "General", "type": "Long Talk", "language": "en", "abstract": "The Python interpreter plays a critical role in controlling the performance of your code, using a vast variety of optimizations & fast paths for common code patterns and idioms.  This talk will walk you through how it can break or worsen performance.", "description": "The Python interpreter plays a critical role in controlling the performance of your code, using a vast variety of optimizations & fast paths for common code patterns and idioms.  This talk will be a fun interactive session presented through code examples that display an assortment of those optimizations and in which (unexpected) ways they can break, worsening the performance of your Python code; we'll follow by inspecting CPython interpreter's inherent behavior to understand the reason for the breakage.  The output and results just might surprise even the most advanced Python coders.  \r\n\r\nThis talk will (partly) be based on some code samples I have contributed to the excellent wtfpython (https://github.com/satwikkansal/wtfpython) focused on Python quirks in general, with a touch of performance.  Through these snippets we will learn some performance dos and don'ts, by understanding CPython internals and features under the hood.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "23921a82-11b1-5d5d-9f07-270e45c80b4a", "id": 755, "code": "VE38HT", "public_name": "Yonatan Goldschmidt", "avatar": "https://cfp.pycon.org.il/media/Yonatan_Goldschmidt_Granulate.jpg", "biography": "Yonatan Goldschmidt is a Team Lead at Granulate, overseeing the development and deployment of their real-time continuous optimization solution as an expert in low-level programming. Before joining Granulate, Yonatan served for nearly six years in the Israel Defense Forces as a Team Lead and R&D Specialist.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/WETCXQ/", "id": 613, "guid": "46077a54-b00c-5ec7-a763-e3fc30dbccb0", "date": "2022-06-29T14:00:00+03:00", "start": "14:00", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-613--the-journey-of-upgrading-a-python-version-from-a-debugger-perspective", "title": "\ud83c\uddfa\ud83c\uddf8 The Journey of Upgrading A Python Version: From a Debugger Perspective", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "What happens when you develop a Python debugger and the latest Python version breaks it? We\u2019ll go through the process of debugging a Python debugger and the methods we used to solve it efficiently.", "description": "When a new Python version is released, the great opportunity to add new features to our software comes around. Yet, alongside those features, there\u2019s always an API break which requires us to make undesired changes to our software. Often, the change can be as small and seemingly insignificant as a signature change or sometimes can be as big as shifting from Python 2 to 3.\r\n\r\nIn rare cases, due to this upgrade, your software would break. You'd then open your favorite debugger and begin debugging until you pinpoint the issue. \r\n\r\nBut what happens when you yourself develop a debugger\u2026 and need to debug your own debugger?\r\n\r\nIn this talk I will present what I learned from supporting the latest Python (3.10) when creating a debugger.\r\nI\u2019ll go through the background of the underlying debugging mechanism in Python, show a real-world example of what happens when an undocumented minor change in CPython interpreter breaks the debugger, and how to successfully find the solution. I\u2019ll share some personal anecdotes of my own journey doing so and the tips and tricks I learned along the way.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "0b983d34-beb9-5f31-b235-2d59c36117d4", "id": 761, "code": "Z7EJBX", "public_name": "Nathan Shain", "avatar": null, "biography": "Nathan is Software Engineer at Rookout, with 8 years of experience in Embedded C++ and Python, mostly in the fields of cybersecurity, cryptography and network.\r\nAt Rookout, he takes part in the SDK team, responsible for developing a live debugger for 6 different languages.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/RLJECW/", "id": 618, "guid": "28fd6063-0d8e-5c7d-b2ec-7f5bd6bf9250", "date": "2022-06-29T14:30:00+03:00", "start": "14:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-618--from-pyperf-to-py-spy-everything-you-need-to-know-about-python-profilers", "title": "\ud83c\uddfa\ud83c\uddf8 From PyPerf to py-spy - Everything You Need to Know About Python Profilers", "subtitle": "", "track": "DevOps/CI/Automation/QA", "type": "Talk", "language": "en", "abstract": "With the increasing complexity of modern Python applications and the high cost of running them in the cloud\u2013\u2013the need for profiling solutions rises.  However, current solutions often times fall short.", "description": "With the increasing complexity of modern Python applications and the high cost of running them in the cloud the need for profiling solutions rises, but current solutions often times fall short, and are not equipped for the requirements of many common stacks and environments.\r\n\r\nIn this talk we will describe how contemporary Python profilers are implemented, discuss and demonstrate the advantages and disadvantages of different implementation approaches in different use cases.  This talk will dive into modern profiling with flamegraphs - when and how to use them for the most accurate results, and introduce the Python profilers PyPerf & py-spy and new implementation approaches including PyPerfMap - for a simpler ramp up, alongside more reliable data, that can work on any Linux machine.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "dcf1bbe9-02ff-5745-aea4-feffa8a20495", "id": 767, "code": "EUJUPB", "public_name": "Tomer Doitshman", "avatar": "https://cfp.pycon.org.il/media/tomer_pic.jpeg", "biography": "Yishai Zinkin is a member of Granulate\u2019s Research Team, working on the development and deployment of their real-time continuous optimization solution as an expert in low-level programming. Before joining Granulate, Yishai served as a Software Engineer for five years at the Center of Encryption and Information Security of Israel Defense Forces.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/YPDD8K/", "id": 626, "guid": "5df5958b-1225-50bf-b969-fba9af751204", "date": "2022-06-29T15:30:00+03:00", "start": "15:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-626--it-s-critical-concurrent-programming-as-a-sane-programming-model-or-how-i-met-critical-section-", "title": "\ud83c\uddfa\ud83c\uddf8 It's Critical: Concurrent programming as a sane programming model (or how I met critical section)", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "We mostly hear about concurrency as a more performant replacement for threads or multi-processing.\r\nBut the hidden gem of concurrent programming is how sane concurrent code, and how easy it is to reason about shared state.", "description": "In this talk we'll be building a toy async-await framework of our own. Building this ourselves allows us to grok concurrency from the ground up, and understand its value when given to us as an existing framework", "recording_license": "", "do_not_record": false, "persons": [{"guid": "2c4b71f1-1236-5d06-8d4d-60150c8ec6f3", "id": 775, "code": "P38DZ9", "public_name": "David Baum", "avatar": null, "biography": "David Baum, pythonista and senior SW-Engineer at OwnBackup\r\n\r\nDavid Baum is senior SW-Eng' working for 10 years in the industry.\r\nHe has written anything from kernel drivers to client side code.\r\nHis pet animal is a python. interpreter\r\nDavid has a B. Sc in comp-sci from the Hebrew-U", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/XLNZEP/", "id": 649, "guid": "80cd568b-8951-545a-880b-d2fbe05814d1", "date": "2022-06-29T16:00:00+03:00", "start": "16:00", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-649--building-your-own-dystopic-surveillance-state-with-python", "title": "\ud83c\uddfa\ud83c\uddf8 Building your own dystopic surveillance state with Python", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Always wanted to have your own surveillance state but didn't know where to start?\r\n\r\nIn this talk we'll cover the first steps on doing **face detection and recognition** - in Python!", "description": "In this talk we'll go over on how to do face detection and recognition in Python and some simple applications of it (both for hobby projects and totalitarian regimes).\r\n\r\nWe'll use some handy Python libraries for processing images and finding out all faces that appear in them - find out who they are, how old they are in whether they're happy or not (the unhappy ones to be sent to re-education - out of scope for this talk).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "c6ce7aaa-3a61-52e3-80f8-266a5cd9f067", "id": 139, "code": "XMYJZE", "public_name": "Adam Kariv", "avatar": "https://cfp.pycon.org.il/media/avatars/cd511289b5773fff5e7efe328846eef3_8KJ9BN9.jpg", "biography": "Adam Kariv is an open data consultant and activist.\r\n\r\nHe is the founder of the Public Knowledge Workshop (\u2018Hasadna\u2019), an Israeli NGO working to make government data more accessible, and has extensive experience working with government agencies to build better tools for publishing data. \r\n\r\nFor over 25 years, Adam is developing, designing and managing software projects, from open-source data-wrangling libraries to enterprise-scale, mission-critical systems developed by over 20 engineers.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/SGVBD8/", "id": 627, "guid": "9fa224a9-fbb5-5e5c-b5db-54ca3f364a8f", "date": "2022-06-29T16:30:00+03:00", "start": "16:30", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-627--fine-grained-error-locations-in-tracebacks", "title": "\ud83c\uddfa\ud83c\uddf8 Fine Grained Error Locations in Tracebacks", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Python is dynamically typed. While awesome, even simple statements in a single line can cause series headaches.  Running *var['python']['3']['11']['a']* produced **TypeError: 'NoneType' ..** error. Impossible to debug from the Traceback, until 3.11..", "description": "A Python line can contains many operations e.g. in numpy -\r\nresult = (a + b) @ ( c + d)\r\nIf we will get an error, like broadcast error, the traceback will mention the Python line but won't be able to inform whether it originated from a + b or c + d.\r\n\r\nPython is compiled to Bytecode (pyc files), which later interpretated to machine level. One Python line generates multiple bytecodes. \r\n\r\nWe will dive into Python's Bytecode, to understand how tracebacks work and why they were constrained to provide more information when bugs happen.\r\n\r\nThose problems are solved in Python 3.11, released few weeks ago as alpha version. With it, the tracebacks now have markers that show exactly which variable caused the error. This feature reduce the use of debugging mode.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9fa5a47e-8afd-5f2a-ac81-c916ddf05ba7", "id": 776, "code": "YHDAZY", "public_name": "Ron Alfia", "avatar": "https://cfp.pycon.org.il/media/passport_pic.jpg", "biography": "Python Programmer with a passion for Hardware.\r\nSpecializing in the development of deep - learning solutions. \r\n\r\nAlgorithms Engineer, Intel\r\nB.Sc. Computer Science, Technion", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/9PUC7A/", "id": 535, "guid": "3aa6dd90-ce42-57e1-824a-7219552e8253", "date": "2022-06-29T17:00:00+03:00", "start": "17:00", "logo": null, "duration": "00:20", "room": "Main Hall", "slug": "conference2022-535--under-the-sea-attacking-vulnerable-c-creatures-in-snakes-land", "title": "\ud83c\uddfa\ud83c\uddf8 Under the sea - Attacking vulnerable C creatures in Snakes-land", "subtitle": "", "track": "Security", "type": "Talk", "language": "en", "abstract": "I'd like to share the findings from my research where I looked into python packages that wrap vulnerable C code and ship vulnerabilities to the unaware developers\r\nAttackers aware of such libs may abuse these components without the developers knowing", "description": "The Python ecosystem has PyPI libraries that bundle C code, but if that code has vulnerabilities how would we ever find out? how can we fix them?\r\nUntil today, this was a common hidden problem and risk that we all accepted (mostly unknowingly). Today it changes. My talk will demonstrate the uncharted attack vector in open source software supply chain - unmanaged code pieces inside our dependencies.\r\n\r\nYou'll learn about the struggles of managing open source libraries and adopt takeaways from my research findings, where I looked into Python libraries that wrap vulnerable C code, and unknowingly shipped vulnerabilities to unaware and unsuspecting developers. The developers, on their end, may think that they're safe (no reported CVEs) but malicious actors with such knowledge can exploit these seemingly non-vulnerable libraries and compromise systems while flying completely under the radar.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "59cd6b28-dee3-5b3f-a726-0b49f9e72601", "id": 715, "code": "EZQVGB", "public_name": "Aviad Hahami", "avatar": "https://cfp.pycon.org.il/media/1571231021676.jpeg", "biography": "Security researcher and experienced software engineer with a great passion for algorithms (graph-theory specifically), security research (vulnerability research, bug bounties), chaos engineering (YES!), frontends, backends, web services, systems architecture, infras, clouds(making them rain), and more :)\r\n\r\nOh yea I also DJ", "answers": []}], "links": [], "attachments": [], "answers": []}], "PyData": [{"url": "https://cfp.pycon.org.il/conference2022/talk/HJQG33/", "id": 554, "guid": "bc6cf523-3467-5fc5-9bc2-8e04cbe399b4", "date": "2022-06-29T10:30:00+03:00", "start": "10:30", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-554--why-does-don-t-stop-me-now-by-queen-make-us-happy-feature-analysis", "title": "\ud83c\uddfa\ud83c\uddf8 Why Does \u201cDon\u2019t Stop Me Now\u201d by Queen Make Us Happy? Feature Analysis", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "An enriching talk about music theory and analysis using python tools.", "description": "Have you ever noticed that, depending on your mood, not every song is suitable for you at a given time? And how about songs that change your mood while listening to them? For instance, Queen\u2019s \u201cDon\u2019t Stop Me Now\u201d, voted as the most feel-good song of all times, seems to make people pretty happy. If you wondered why this happens, this talk is for you!\r\n\r\nWe will walk through songs\u2019 features that influence our mood based on the acoustic parameters, such as tempo and loudness. We will use signal processing tools written in Python to analyze it. We will also learn about compositional and lyrical features which help us decide if a song is \u201chappy\u201d or \u201csad\u201d (or a mix of both).\r\n\r\nAfter this talk, you will know some basic terms in signal processing and music. You then will understand, from the perspective of a signal processing engineer, what are the musical features which arouse your feelings.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "73c0c131-a22e-54c0-a549-4c111445cc15", "id": 725, "code": "RSNSFE", "public_name": "Noga Karni", "avatar": null, "biography": "Noga Karni is a Signal Processing and Machine Learning engineer at MyPart. She fell in love with audio signals and is researching musical production features\u2019 extraction, using audio signal processing techniques, and incorporation into ML models. Noga Karni holds a Bachelor's degree in Electrical and Computer Engineering from Ben Gurion University. In her free time she teaches swimming.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/CVRD3G/", "id": 708, "guid": "0b4078ea-9fca-5864-98d6-25f9f8c81258", "date": "2022-06-29T11:00:00+03:00", "start": "11:00", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-708--what-are-we-busy-about-", "title": "\ud83c\uddfa\ud83c\uddf8 What are we busy about?", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "A plan is what, a schedule is when .it takes both a plan and a schedule to get things done\u201d - Peter Turla.", "description": "A plan is what, a schedule is when .it takes both a plan and a schedule to get things done\u201d - Peter Turla. Aligning operational requirements with the needs of your employees is not an easy task. Managers that need to build a work schedule for their teams, need to consider many variables e.g. employees availability and personal preferences, operational needs of the organization, fairness and inclusion. The organization should both provide the service and run smoothly, and keep the employees engaged and satisfied. This challenge is scaled in the medical setting, where different professional staff members needs to attend different patients with their limitations.\r\n \r\nIn Antidote Health \u2013 a telehealth service, we created an automated process, based on Linear Programming methodology, implemented in Python pipeline.  \r\n \r\nThe Project is based on preprocessing the data received from doctors about their availability times, and encoded via  CP-SAT model,Pandas and Numpy libraries . Algorithm then runs and provides an optimization of shifts for each doctor given several constrains. The results are piped into the backend of our system, where the scheduling of the patient-doctor appointments is managed. The developed model assists and optimizes the end-to-end process of scheduling in a fast-paced dynamic environment .\r\n \r\nBy automating the scheduling process, you were able to deliver consistent results, experience fewer mistakes,reduce costs, maximize our doctors productivity , and boost overall doctors and patients satisfaction.\r\n \r\nYou will be inspired to develop similar solution for your scheduling needs. Remember - if you want to win in the marketplace you must first win in the workplace", "recording_license": "", "do_not_record": false, "persons": [{"guid": "fac25b7d-377e-590a-918b-6ba47e39d694", "id": 842, "code": "YLL3YP", "public_name": "Layla Abu khalaf", "avatar": null, "biography": "Passionate in computer either SW/HW like to learn languages and programming languages  in the past it has been said robots are impossible to create now the world of robotics is the possible way to continue living THE BEST WAY TO PREDICT THE FUTURE IS TO INVENT IT .", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/SQFB7R/", "id": 684, "guid": "dc7a2124-0772-5480-aac1-dd095963b625", "date": "2022-06-29T11:30:00+03:00", "start": "11:30", "logo": null, "duration": "00:50", "room": "PyData", "slug": "conference2022-684--data-class-serialization-the-right-way", "title": "\ud83c\uddee\ud83c\uddf1 Data Class Serialization The Right Way", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Long Talk", "language": "en", "abstract": "Do you ever use data classes in your project? Need to store these data structures for later use? \r\nIn our talk, we will present how to do it in Python. We will focus on Pydantic and will show the correct way to do it for complex data structures.", "description": "Many of us write Python apps that handle data. As part of that, we often face the need of persisting this data as-is. This will enable us to use this data structure later.\r\n\r\nIn this session, we will present\r\n1. How does Serialization work?\r\n-- 1. The difficulties of Dynamic programming languages with serialized data\r\n-- 2. A few different Python libraries that handle that (pickle, jsonpickle, pyyaml, marshmallow) \r\n-- 3. How Pydantic takes the most precise approach \r\n2. The problem and solution to Serializing subclasses \r\n-- 1. The problem when deserializing the raw data\r\n-- 2. A live session where we walk through increasingly better solutions to find the optimal one\r\n\r\nAfter this session, you will have the understanding and tools to persist your complex data structures using Pydantic.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "75068745-7db0-5988-9849-cbe998565280", "id": 380, "code": "HH99ZJ", "public_name": "Bat-El Ziony Sabati", "avatar": "https://cfp.pycon.org.il/media/batel-ziony.jpg", "biography": "A Senior Software Engineer. Love to dream, learn, and fulfill. Find me on www.linkedin.com/in/bat-el-ziony-sabati", "answers": []}, {"guid": "1187342b-5afe-5aa7-a289-a5ab9627aaf5", "id": 818, "code": "ADMDV7", "public_name": "Mordechai Alter", "avatar": "https://cfp.pycon.org.il/media/70e8a37a-e5dd-4830-a716-5a7c9b16f09f.jpg", "biography": "A Senior Software Engineer. Loves people and gadgets, including how they work...", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/CAJC3V/", "id": 723, "guid": "00cea180-e91f-5dcd-8432-8fb1a26708e7", "date": "2022-06-29T14:00:00+03:00", "start": "14:00", "logo": null, "duration": "00:50", "room": "PyData", "slug": "conference2022-723--life-death-and-shopping", "title": "\ud83c\uddfa\ud83c\uddf8 Life, Death, and\u00a0Shopping", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Long Talk", "language": "en", "abstract": "A step-by-step introduction to purchase prediction. Also applicable to survival analysis and churn prediction. Including implementation in\u00a0PySpark.", "description": "When dealing with survival analysis, the model's success is predicting death correctly. But it can also predict an engine failure, abandonment, or even purchases.\r\nIn purchase prediction, survival analysis, or churn prediction, the data is usually labeled or artificially labeled by a set of rules- such as inactivity for 30 days equivalent to churn. But the data structure is different from classical machine learning, and the data handling and modeling are different accordingly. \r\nIn this lecture, we will cover the data structures and aggregations for such analysis focusing on time aggregations using pyspark and what NLP got to do with any of it.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "9f3d2990-6585-597f-b1ae-987b0c6be10e", "id": 275, "code": "LGDG8A", "public_name": "Dina Bavli", "avatar": "https://cfp.pycon.org.il/media/WhatsApp_Image_2022-04-30_at_11.31.33_AM.jpeg", "biography": "Data Scientist with experience in NLP, Graph theory, NetworkX, churn prediction, and a growing interest in ASR (automated speech recognition). Her Master's thesis deals with classifying and characterizing persuasion. She is a former teaching assistant for ML and an experienced international public speaker. She is a data science content writer for workshops, meetups, online courses, and an official author of the Towards Data Science and Better Programming publications.\r\nDina is passionate about data, sharing knowledge, and contributing to society and open source. Whenever she can't find a sufficient tutorial, she creates one.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/HS3BKM/", "id": 727, "guid": "d9334b56-8b88-509f-9405-ebc99179774a", "date": "2022-06-29T15:30:00+03:00", "start": "15:30", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-727--web-apps-for-data-science-using-streamlit", "title": "\ud83c\uddee\ud83c\uddf1 Web apps for data science using streamlit", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Nobody cares about your algorithm, learn how to communicate model insights.", "description": "Data scientists can lose track of time working on their models, failing to consider anything other than loss and metrics. But, in reality, no one cares about one's specific model.\r\nThe ability to communicate the model\u2019s functionality as well as other insights produced by the model are critical to the data science profession. However, this ability is often overlooked.\r\nHowever, what if I told you that you could solve this problem and demonstrate your model's capabilities to the rest of the world with a simple Python script?\r\n\r\nThe talk will include a live demo that will demonstrate how, using a few lines of code, you could wrap a machine-learning model into a pure python web app so others can experiment with it. You will see how to incorporate interactive plotly graphs which gives the user an additional layer of understanding of the problem.\r\n\r\nIt is said that soft skills are hard currency. In our case, they are backed up with powerful technology. Whether you are a beginner or an experienced data scientist - this talk will level up your visual data communication, and grant you a new superpower!", "recording_license": "", "do_not_record": false, "persons": [{"guid": "47e7b8bb-76f2-5003-80ad-7e98efb36369", "id": 861, "code": "DLJXBX", "public_name": "Liron Soffer", "avatar": "https://cfp.pycon.org.il/media/professional_picture_from_linkedin.jpeg", "biography": "Liron Soffer is a Data Science Tech Leader at Sunbit, a fintech startup.\r\nShe holds a BSc from the Technion in Industrial Engineering with two specializations, one in Information Systems and the other in Entrepreneurship.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/GNN3MJ/", "id": 662, "guid": "df26b720-000c-5b47-92b0-fb9fc5082961", "date": "2022-06-29T16:00:00+03:00", "start": "16:00", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-662--formal-verification-through-python-why-and-how-", "title": "\ud83c\uddfa\ud83c\uddf8 Formal Verification through Python \u2013 Why and How?", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Formal verification (FV) can prove the correctness of algorithms and systems and so ensure safety. Since FV tools are not easy to use, we will show examples (from the RL domain) of how executing them via Python could be very useful and friendly-user.", "description": "Formal verification is a subfield in mathematics/computing that provides methods to specify [1] and formally prove the correctness [2] of algorithms and systems given an environment and described using variables, transition functions, etc.\r\n\r\nThe ability to check a code, whether it enters a state that is not safe using the information in the system is a great advantage. But unfortunately, the main model checkers (which are automatic tools implementing formal verification algorithms) are not very user-friendly. They require writing a text file, which can be very long for large-scale problems, and multiple steps to compile and run, also their UI isn\u2019t always very accessible.\r\n\r\nUtilizing model checkers such as NuSMV [3] can become easier by using python. By writing a code that generates the text file for us and activating the NuSMV as a subprocess, we can get the NuSMV results and by using python disassemble the answer and use it in our code accordingly.\r\n\r\nMoreover, if we change the problem parameters or the scale of the problem changes between runs, we need to change the file for the NuSMV accordingly, which makes the transition between runs much more complicated. By using python we can make this process much easier and more modular, we can use the information on our code to write the file and also run it.\r\n\r\nTo demonstrate the idea, we will focus on reinforcement learning (which is a subfield of machine learning). We trained an agent to play frozen lake - a game in which the player needs to reach from one point to another on a board without falling into certain squares which are water holes. We use Q-learning [4] (which is a reinforcement learning algorithm) for the agent which is trained until the decisions table converged by a change of a bound - epsilon or less. We aim to find a way to improve the learning process using Formal verification and specifically NuSMV.\r\n\r\nWe used NuSMV as an expert of reinforcement learning, the NuSMV checks if the problem we created is solvable before we run the agent, and also during the training process, we used it as an expert that helps the agent learn and make sure it can find an optimal route to the goal. \r\n\r\nBefore using it as an expert that gives the agent the solution, we used formal verification and python together. For example, some problems require parameters tunings and so we used the NuSMV to check if the epsilon to convergence is good enough to reach the optimal solution, which has the potential to save time because we might be able to take a much larger epsilon.\r\n\r\nFurthermore, NuSMV can tell us if the agent during the training process has enough information to reach the solution or if it needs more training. These principles are beneficial to other RL problems.\r\n\r\nTo conclude, formal verification can be helpful in many problems but using it may be hard for large-scale or complicated problems, so python is a powerful tool that can help us make the process easier and manageable and allow future integration with new problems and tools.\r\n\r\n[1] Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems - Specification. Springer, New York (1992).\r\n[2] Clarke, E. M., Henzinger, T. A., Veith, H., & Bloem, R. (Eds.): Handbook of model checking (Vol. 10). Cham: Springer (2018).\r\n[3] Cimatti, A., Clarke, E., Giunchiglia, F., Roveri, M.: Nusmv: a new symbolic model checker. Int. J. Softw. Tools Technol. Transfer 2(4), 410\u2013425 (2000).\r\n[4] Watkins, C. J., & Dayan, P.: Q-learning. Machine learning, 8(3), 279-292 (1992).", "recording_license": "", "do_not_record": false, "persons": [{"guid": "ce1340d6-7765-5e4d-8cca-2b12f2e52e09", "id": 724, "code": "PJPVRK", "public_name": "Avraham Raviv", "avatar": "https://cfp.pycon.org.il/media/Pic.jpeg", "biography": "I'm a Ph.D. candidate in the faculty of engineering, at Bar-Ilan University, and a Data Scientist researcher at Samsung Israel. My main focus is Deep Learning and Computer Vision.\r\n\r\nIn my research, I'm trying to develop methods to improve the run time of edge devices, using parallel computing and optimization of Neural Networks. \r\n\r\nAlongside my research, I'm also a teaching assistant in several courses:\r\nIntroduction to programming, Data structure and algorithms, and advanced courses for grad students. \r\n\r\nI'm an author of the \"Machine and Deep Learning in Hebrew\" book, and love to share content in Hebrew about advanced topics of AI and DS.", "answers": []}, {"guid": "34e658b7-8e46-50aa-ab9e-85ab68883f64", "id": 787, "code": "ZGHDQN", "public_name": "Or Reginiano", "avatar": null, "biography": "Student at Bar Ilan", "answers": []}, {"guid": "c01f9525-b240-5afa-9e50-1076cd83023b", "id": 793, "code": "WGAZUC", "public_name": "eliya bronshtein", "avatar": null, "biography": "Fourth year student of Bachelor's degree in computer engineering at Bar-Ilan university", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/3WZ9AV/", "id": 602, "guid": "222126a8-1f90-56f4-b387-ed350748841d", "date": "2022-06-29T16:30:00+03:00", "start": "16:30", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-602--transformer-based-nlp-pipelines-with-spacy-v3", "title": "\ud83c\uddfa\ud83c\uddf8 \ud83e\udd16  Transformer-based NLP Pipelines with SpaCy v3", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Transformer-based models have been producing superior results on various NLP tasks. In this talk, we\u2019ll cover the new transformer-based NLP pipelines featured by SpaCy, and how to apply multi-task learning for improved efficiency and accuracy.", "description": "The transformer deep learning model adopts the mechanism of self-attention, and serves as a swiss army knife solution to many of the most common language tasks. Combining several language tasks together is commonly referred to as language processing pipeline, and was made popular across the NLP industry using SpaCy, a Python library for language understanding.\r\nIn this talk, we\u2019ll cover the undoubtedly most exciting feature of SpaCy v3: the integration of transformer-based pipelines. We\u2019ll learn how to quickly get started with pre-trained transformer models, how to create custom pipeline components, and how to perform multi-task learning and share a single transformer between multiple components. Altogether, we\u2019ll explore the building of efficient NLP pipelines for real-world applications reaching state-of-the-art performance.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "7b04d22a-e95d-5762-ab26-8bf3e43cb804", "id": 357, "code": "9FL9KJ", "public_name": "Stav Shemesh", "avatar": "https://cfp.pycon.org.il/media/slack_profile.png", "biography": "I hold a M.Sc in Computer Science with an NLP thesis focused on language modeling from Reichman University (IDC Herzliya), and a B.Sc in computer science from the Open University. I work at Amenity Analytics as an NLP research engineer, building models to solve a wide range of problems in NLP.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/CN87D3/", "id": 641, "guid": "ccb1d0b5-c908-5a1d-a015-b8f27cb4e206", "date": "2022-06-29T17:00:00+03:00", "start": "17:00", "logo": null, "duration": "00:20", "room": "PyData", "slug": "conference2022-641--don-t-underestimate-the-obvious-murphy-s-law-in-real-life-data-science", "title": "\ud83c\uddfa\ud83c\uddf8 Don\u2019t Underestimate the Obvious: Murphy\u2019s Law in Real-life Data Science", "subtitle": "", "track": "DB, Big Data, Data Science, AI/ML", "type": "Talk", "language": "en", "abstract": "Murphy\u2019s Law states that if anything can go wrong it will -- and this is particularly true in data science. Based on personal experience, I describe how to create an effective model despite data pitfalls, methodological hazards and hidden bugs.", "description": "\u201cIf anything can go wrong, it will\u201d, states Murphy\u2019s Law, and this holds particularly true in data science. Whereas the algorithms used in data science are mathematically flawless, the path to creating an effective model is often rife with obstacles, such as data deficiencies, methodological pitfalls, hidden bugs and human mistakes. In this talk, I offer lessons about common obstacles and how you can avoid them in your projects, as I have learnt from nearly a decade of data science work. Topics include: how data often violates our intuitive assumptions, and how Python tools can detect such violations. How to confidently build a model by starting from simple baselines and using synthetic data to your advantage. How to avoid common pitfalls \u2013 such as unintentional overfitting, train set contamination and inconsistent package versions \u2013 via defensive programming and code reviews. And how to guarantee long-term code correctness via Pytest.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "595121f5-e594-5f0e-8404-6fce5d56cd08", "id": 783, "code": "GVSYHF", "public_name": "Inon Peled", "avatar": null, "biography": "Senior Data Scientist at Pendo.io with 15 years of industry experience in software development, PhD in Machine Learning, and MSc and BSc in Computer Science. My previous projects involved Machine Learning under uncertainty, Big Data, Modeling and Prediction, and Autonomous and Green Mobility.Senior Data Scientist at Pendo.io with 15 years of industry experience in software development, PhD in Machine Learning, and MSc and BSc in Computer Science. My previous projects involved Machine Learning under uncertainty, Big Data, Modeling and Prediction, and Autonomous and Green Mobility.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Hall 3": [{"url": "https://cfp.pycon.org.il/conference2022/talk/M8WR9C/", "id": 528, "guid": "7ca1662e-68ef-5e13-9090-7c38891b74ad", "date": "2022-06-29T10:30:00+03:00", "start": "10:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-528--getting-started-with-opentelemetry-in-python", "title": "\ud83c\uddee\ud83c\uddf1 Getting Started with OpenTelemetry in Python", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "In this talk, you will learn about the concept and benefits of tracing by examining the open-source project OpenTelemetry. You will leave this session knowing how to set up OpenTelemetry to get better visibility and troubleshoot your system faster.", "description": "Tracing and observability are becoming very popular as distributed services are getting more complex. To better understand our architecture and to be able to troubleshoot production issues faster, we need to track how requests are populated throughout the system. By monitoring the interactions between the different components we can overcome some of the native complexity of distributed services. In this talk, you will learn about the concept and benefits of tracing by examining the open-source project OpenTelemetry in its Python version. You will leave this session knowing how to set up OpenTelemetry yourself and utilize open-source solutions and tracing data to get better visibility and troubleshoot your system faster.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "81c0497f-0cb1-5fdf-af7d-f27f210d7a39", "id": 876, "code": "R7N8CU", "public_name": "Michael Haberman", "avatar": null, "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/HTDW3P/", "id": 661, "guid": "94e3f1a6-0e20-5815-a50c-e7a892c18500", "date": "2022-06-29T11:00:00+03:00", "start": "11:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-661--how-to-lift-your-tech-debt-curse-with-the-magic-of-the-open-close-principle", "title": "\ud83c\uddfa\ud83c\uddf8 How to Lift Your Tech Debt Curse with the Magic of the Open-Close Principle", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Using Python's awesome features and important design principles for safe legacy code refactoring while maintaining a healthy production environment", "description": "Throughout the company life cycle many products change and evolve.\r\nYour PM is demanding an urgent feature and you find yourself looking at a patchwork project composed of fixes on fixes, no testing and, \"if it's working, don't touch it\" comment written by someone who left the company a few years ago.\r\n \r\nWe all know the experience of inheriting a legacy system and with it the curse of tech debt.\r\n \r\nIn this talk I will share the insights I gained lifting many such curses, while maintaining a running production environment, using the magic of the Open-Close principle.\r\nGiving you the right tools to plan and execute, your next refactoring challenge.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6c421a5b-97c2-55a9-94df-24d931057dab", "id": 804, "code": "CU7R3T", "public_name": "Dor Amram", "avatar": "https://cfp.pycon.org.il/media/me_2.png", "biography": "Dor Amram is a software engineer@Similarweb and father to the most beautiful girl (not necessarily in that order) with 7 years of experience in software engineering.\r\nExcited about knowledge sharing and loves spending time finding simple solutions to complex problems", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/NBCGW7/", "id": 667, "guid": "026e42e8-c571-59ea-9392-c63fe298f4a7", "date": "2022-06-29T11:30:00+03:00", "start": "11:30", "logo": null, "duration": "00:50", "room": "Hall 3", "slug": "conference2022-667--leveraging-networkx-in-memory-graphs-for-securing-your-cloud-infrastructure", "title": "\ud83c\uddfa\ud83c\uddf8 Leveraging networkx in-memory graphs for securing your cloud infrastructure", "subtitle": "", "track": "Security", "type": "Long Talk", "language": "en", "abstract": "Securing Infrastructure-as-code configurations is a key requirement in a cloud production system. We will cover how the networkx library is leveraged to represent cloud resources as a DAG, and how it enhances the misconfigurations scanning process.", "description": "We at Bridgecrew by Palo Alto Networks have published checkov, a Python open source tool which is the industry-standard for Infrastructure-as-code (aka: IaC) scanning, and is used by thousands of users and with an active community. Checkov scans for misconfigurations and reports the security implications and risks that such misconfiguration has induced. In this talk, I will show how we leveraged the networkx python library to empower checkov\u2019s scanning capabilities.\r\n\r\nIaC is the practice of codifying the provisioning and management of IT resources. As IaC frameworks have become more advanced, dependencies between IaC configurations were incorporated, just as physical IT resources are most likely to be dependent on each other. \r\n\r\nCheckov utilizes the networkx graph library to build a DAG (directed acyclic graph) to enable blazing fast graph analysis queries relevant for the IaC security domain. It uses the graph to render configuration settings which stem from other configurations that are linked to it.\r\nThis allows the testing of more complex scenarios, in which a combination of dependent resources creates an unsecure misconfiguration, whereas scanning each resource independently would not unveil such misconfiguration.\r\n\r\nAfter this lecture you\u2019ll know what a DAG is, how to traverse it and the benefits of in-memory analysis over utilizing a persistent graph DB. You\u2019ll also get to know the concept of IaC, and what benefits it brings to the development lifecycle, and why using checkov ensures your IaC remains continuously secure.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "e63ce50f-b6dc-5d55-bab4-b0f82cc3a773", "id": 808, "code": "ZWJGTY", "public_name": "Naor David", "avatar": null, "biography": "I am a senior software engineer working at the Bridgecrew team by Palo Alto Networks, and one of the core maintainers of checkov, a Python open source project which is the industry standard tool for securing infrastructure-as-code.\r\nI am passionate about Python development, cloud security (mainly infrastructure-as-code security), data engineering, data science, and open-source development.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/YYXQFL/", "id": 552, "guid": "9fd2e9ad-7858-515d-a97d-65af3be00a3a", "date": "2022-06-29T14:00:00+03:00", "start": "14:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-552--json-the-fine-print", "title": "\ud83c\uddee\ud83c\uddf1 JSON - The Fine Print", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "In this talk we'll discuss the finer points of working with JSON. We'll cover custom serialization, validation, and shine some lights at some darker corners.", "description": "Why does the following code prints `False`?\r\n\r\n```\r\noutgoing = (1, 2, 3)\r\ndata = json.dumps(outgoing)\r\nincoming = json.loads(data)\r\nprint(outgoing == incoming)\r\n```\r\n\r\nIn this talk, we'll cover more advanced topics in JSON serialization. We'll look into serialization in general, look at some design decisions the Python JSON module does and look into custom serialization and streaming.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "09bc2ad0-282d-567b-9e74-5440bdd0c16a", "id": 24, "code": "CEXJSE", "public_name": "Miki Tebeka", "avatar": "https://cfp.pycon.org.il/media/avatars/017957ad32f7035e080c0a24d3eb10f8_4Gf7En3.jpg", "biography": "A person (probably)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/EKQMGL/", "id": 607, "guid": "8aa31e71-e924-58f9-bc01-9effee841557", "date": "2022-06-29T14:30:00+03:00", "start": "14:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-607--overcoming-concurrency-issues-in-web-applications", "title": "\ud83c\uddee\ud83c\uddf1 Overcoming Concurrency Issues in Web Applications", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Concurrency in web applications is hard to identify and debug, and very easy to get wrong! In this talk I'm going to present common concurrency issues and suggest ways to identify and prevent them!", "description": "In this talk I'll present common issues, and different approaches for dealing with concurrency:\r\n\r\n- Why it is better to ask for forgiveness instead of permission when dealing with concurrency\r\n- What is the TOCTOU (time-of-check-time-of-use) problem, how it can happen and how to address it\r\n- How database locking can help with concurrency, and how to avoid it!\r\n- How and when to rely on database features to maintain correctness", "recording_license": "", "do_not_record": false, "persons": [{"guid": "6e53e03e-a417-55be-b357-0de6ca039b4e", "id": 123, "code": "S37DEW", "public_name": "Haki Benita", "avatar": "https://cfp.pycon.org.il/media/haki-benita.png", "biography": "Haki is a software developer and a technical lead. He takes special interest in databases, web development, software design and performance tuning. Haki also writes about development and performance in his blog [hakibenita.com](https://hakibenita.com)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/XBTSAF/", "id": 710, "guid": "b5fef02e-3910-5fb9-ba46-49092d67fbd4", "date": "2022-06-29T15:30:00+03:00", "start": "15:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-710--basic-microcontroller-programming-with-python", "title": "\ud83c\uddfa\ud83c\uddf8 Basic microcontroller programming with Python", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Arduino microcontrollers can be used for numerous and versatile home-based functions. Want to learn what you can do and how to get started coding Arduino in Python? There\u2019s a low cost of entry, and the possibilities are endless.", "description": "Python is not generally considered the best option for programming microcontrollers. It is big, slow, and not optimized for handling asynchronous events. So how can you enjoy the fantastic world of microcontrollers using Python? In this talk, I will share my journey and the transition I made moving from C to Python, using Arduino programming to improve my Pythonic skills.\r\n\r\nThere are so many possibilities latent in programming Arduino using Python. I will begin by explaining the basics of Arduino and Micro-Python and showing an Arduino project that I created and other open-source Python projects written for Arduino.\r\n\r\nThis talk aims to inspire Python developers from all levels to dive into the magical world of microcontrollers and get their hands dirty.\r\n\r\nAre you curious about how you can enjoy the benefits of your Pythonic skills in the physical world? Would you like to learn how developing an Arduino project can help you improve your Pythonic skills? If you answered yes - this talk is for you! If you know Python \u2013 the microcontroller's world is open to you.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "4d90dfcf-9bb8-5365-a2e0-3d9386e3b5ed", "id": 850, "code": "CYKFBX", "public_name": "Anat Wax", "avatar": "https://cfp.pycon.org.il/media/%D7%AA%D7%93%D7%9E%D7%99%D7%AA359%D7%A4%D7%A0%D7%99%D7%9D.jpg", "biography": "Anat Wax is a quality engineer at Red Hat. She has a long-lasting history as a maker and DIY\u2019er and has many Ikea hacks in her closet.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/ZDZVMW/", "id": 716, "guid": "cbf82c4f-4b76-5dae-ab8d-aec45ede7737", "date": "2022-06-29T16:00:00+03:00", "start": "16:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-716--django-url-pattern-role-authorization-system", "title": "\ud83c\uddee\ud83c\uddf1 Django URL Pattern Role Authorization System", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Taking the Django traditional groups and permissions to the next level by adding layer and using an access endpoint pattern approach to provide scalability, flexibility and a wider control of authenticated user's access.", "description": "Django comes with a built-in permissions system with view, add, change, and delete permissions, as well as the ability to add other permissions as one might wish (even if with weird and uninformative names that no one will eventually use).\r\nOne question remains, though: is it the right approach when building a big Django application that contains a lot of different authorization groups?\r\nThis talk is more of a case study dedicated to the challenges (and solutions) we had at Bluevine around this exact question.\r\nAt Bluevine we faced many difficulties enforcing authorization with the traditional Django authorization system for several reasons.\r\n* incompatibilities and different users with different sets of permissions, due to lack of restrictions around the Django auth user model.\r\n* Inability to grant limited permissions to different models.\r\n\r\nThe above are just a few of these difficulties.\r\nIn this talk, we'll discuss the above and other difficulties, as well as our solutions.\r\nHint - we refreshed the Django permission mechanism by adding a role layer, changing permissions, and more.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "8de98dc2-2600-51e6-b446-77515692a0ce", "id": 857, "code": "KCAZCR", "public_name": "Yarin Asulin", "avatar": null, "biography": "Im Yarin Asulin, Im a software development team lead and have been working in BlueVine for the past 4.5 Years. Before BlueVine I served in the technology unit of the Intelligence Corps. I started developing as a curious teen since then i have been moving forward by learning and using new and advanced technologies.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/PN8CGZ/", "id": 559, "guid": "dc4a2921-728f-5d81-b5ef-627a25f452e1", "date": "2022-06-29T16:30:00+03:00", "start": "16:30", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-559--minimum-viable-security-for-python-applications", "title": "\ud83c\uddfa\ud83c\uddf8 Minimum Viable Security for Python Applications", "subtitle": "", "track": "Security", "type": "Talk", "language": "en", "abstract": "Python remains a very popular programming and scripting language in the DevOps ecosystem for building CI/CD pipelines. In the same way we think about how we design and build our Python applications, we need to design, build and automate security.", "description": "The minimum viable security (MVS) approach, enables us to easily bake security into our config files, apps, and CI/CD processes with a few simple controls built for Python applications.\r\n\r\nIn this talk we will focus on five critical security controls that will be integrated as part of the CI/CD pipeline: Bandit for static application security (SAST), Gitleaks to detect hard-coded or insufficiently secured secrets, Python dependency checks (SCA), infrastructure as code (IaC) and ZAP for API and dynamic application security (DAST), in addition to custom controls to ensure proper enforcement of MFA via Github Security. These controls will provide a foundational framework for securing Python applications, from the first line of code, that will make it possible to continuously iterate and evolve our security maturity, for advanced layers of security that often comes with time, as well as increased experience.\r\n\r\nCode examples will be showcased as part of this session.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "2fae3a2d-75e3-522e-92a2-067641c50d9a", "id": 901, "code": "DTRZSW", "public_name": "Michael Segal", "avatar": "https://cfp.pycon.org.il/media/JIT_07_MICHAEL_S_366.jpg", "biography": "Michael is a seasoned software engineer with experience from the backend through the frontend, security and much more.  Having held  a diversity of roles at leading companies such as Spotlight, Bluevine, Orchestra group, today he channels his passion for Python, and specifically Django towards making security a first-class citizen in development from the first line of code as a fullstack engineer at Jit.  He also is an animal lover, provided the animals are cats.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://cfp.pycon.org.il/conference2022/talk/AEYARP/", "id": 548, "guid": "b6532787-dad0-5411-9d85-7a1592a7145e", "date": "2022-06-29T17:00:00+03:00", "start": "17:00", "logo": null, "duration": "00:20", "room": "Hall 3", "slug": "conference2022-548--pythonic-ddd-and-how-to-improve-your-life-when-maintaining-a-monolith", "title": "\ud83c\uddee\ud83c\uddf1 Pythonic DDD And How To Improve Your Life When Maintaining A Monolith", "subtitle": "", "track": "General", "type": "Talk", "language": "en", "abstract": "Startups choose python because it helps you to set up your application very quickly, but after a few months, it can get really messy. This is the story of how we in Databand managed to extract good backend guidelines with Python out of our monolith.", "description": "In this lecture, I'm going to talk about our experience in Databand.ai where we started with a quick-and-dirty web application architecture in order to quickly provide value to our customers.\r\n\r\nOur application became larger and larger, and the business needs were significantly changed. A lot of new code and features were introduced, and we found ourselves chasing after our tails in order to detect problems in our app.\r\nWhen we had enough, we started to conduct new backend guidelines and embraced a lot of DDD methodologies such as a bounded context, layering, unit of work, repository pattern, domain architecture, and so on.\r\n\r\nI believe this tells the story of a lot of startups and there is a lot to learn from our experience - what went wrong, how to avoid it, and how to fix old problems.", "recording_license": "", "do_not_record": false, "persons": [{"guid": "fe3f61df-b989-5627-a529-e1eb038ffee9", "id": 721, "code": "PK8SNG", "public_name": "Niv Sluzki", "avatar": "https://cfp.pycon.org.il/media/niv_profile_2_zoom.jpg", "biography": "Niv Sluzki is an Engineering Manager at Databand.ai where he oversees the impact detection development group. He\u2019s a former major in the Israel Defense Forces Intelligence Corps where he was in charge of leading and managing dozens of complex Big Data projects in different environments. He is an experienced full stack developer who worked with different product managers on a variety of products.", "answers": []}], "links": [], "attachments": [], "answers": []}]}}]}}}