Open mikeizbicki opened 1 year ago
Can we watch any of the videos or do they have to be from PyCon2023?
@luisgomez214 Any video from any year counts.
Hi! I will attach a review of 15 videos, separated in 3 different comments, for a total of 4 extra credit points.
I have learned the following:
Talk: Marlene Mhangami - Leadership and Identity in the Pan-African Python movement https://www.youtube.com/watch?v=PQmCADPolOE&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=13
Talk - William Morrell: (Professionally) Coding with Others https://www.youtube.com/watch?v=IcvxW-EhEV0
Talk - Bianca Rosa: Observability driven developmentrs https://www.youtube.com/watch?v=lxyrmsxY2KA
Talk - Vic Kumar: Writing Functional Code in Python https://www.youtube.com/watch?v=x7sQVLO3JJA
Talk - Trey Hunner: Python Oddities Explained https://www.youtube.com/watch?v=nWC73Llo170
Talk - Calvin Hendryx-Parker: Bootstrapping Your Local Python Environment https://www.youtube.com/watch?v=-YEUFGFHWgQ
Talk - Benjamin "Zags" Zagorsky: Handling Timezones in Python https://www.youtube.com/watch?v=XZlPXLsSU2U
Talk - Greg Compestine: How to Succeed with Python Across the Enterprise https://www.youtube.com/watch?v=1zRv5vAQCKk
Talks - Fred Phillips: Hooking into the import system https://www.youtube.com/watch?v=ziC_DlabFto [for reference this is an example of the import systems: import numpy as np]
Talk - Kelly Schuster - Paredes/Sean Tibor: Learn Python Like a 12 Year Old https://www.youtube.com/watch?v=OAYhKUozqf4
Talk: Sam Scott: Why Authorization is Hard https://www.youtube.com/watch?v=2BN96ON48U8&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=42
Talk - Meredydd Luff: Building a Python Code Completer https://www.youtube.com/watch?v=aRO7DkJrA_c&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=27
Pablo Galindo Salgado: Making Python better one error message at a time https://www.youtube.com/watch?v=5eYOQxqqWl8&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=38
Talk - Jeremiah Paige: Intro to Introspection https://www.youtube.com/watch?v=5eYOQxqqWl8&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=38
Talk - Aaron Stephens: Python for Threat Intelligence https://www.youtube.com/watch?v=Zf38qncahiU&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=46
Talk - Brandt Bucher: A Perfect Match link This video taught me what structural pattern matching is, and how to use it via the match function, as is explained in PEP 636. It was really interesting to see how new python code can be accommodating to old python code. Additionally, it was very helpful to see the person who came up with the code explaining it himself, as he was able to go in depth and he has a full understanding of the code and how it works.
Keynote- Peter Wang link In this talk Peter Wang talked a bit about the pros and cons of python, and I learned a lot in hearing his reasoning. Having code be understandable to the general public but also complicated enough to complete certain tasks is important, as well as how it doesn’t work for front end tasks as much. Seeing him live coding was also incredibly impactful, as we do live coding in class but the way in which he was able to just make the code flow so quickly was impressive and gave me a goal worth striving for in terms of type speed and understanding of each language of code.
Talk - John Reese: Open Source on Easy Mode link This talk was helpful in providing information on how a lot of computer systems and packages are set up. His description of thx and not only how it works, but what it does was super in depth and detailed in a way that made me understand it and understand that it is important to help validate projects throughout development.
https://www.youtube.com/watch?v=W-lZttZhsUY
The video is about what refracting is. I was introduced to the concept before but wasn’t fully familiar. Refracting is changing code to look nicer and be more efficient. Doing so allows for people to better understand it. The video goes through examples and explains the thought process that goes along with it. The video explains the benefits of it and gives tips on how to improve our own code writing.
https://www.youtube.com/watch?v=YY7yJHo0M5I
The video, like the previous one I watched, is about how to make code more efficient. This time it focuses on how to improve one’s writing. The video explains loops, list comprehension, errors and gives examples of how to implement the code. The video helped me visualize the topics differently, it was informative hearing why to write code a certain way.
https://www.youtube.com/watch?v=I4nkgJdVZFA
This video focuses on why Python is slower than most other languages. It provides different theories, such as the way you write the code, and gives recommendations on how to make it faster. Such as not using loops. The video talks about JIT visualizers and compilers and suggest that they optimize runtime. Also, the video recommends improving GC which is a place that stores data but simplifies it.
In total below there should be 15 videos watched, for 4 total points. The video links and descriptions are as follows:
https://www.youtube.com/watch?v=vPokIvli8yk&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=7&pp=iAQB
https://www.youtube.com/watch?v=bK2iPDu7RDE&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=11&pp=iAQB
https://www.youtube.com/watch?v=ST33zDM9vOE&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=19&pp=iAQB
https://www.youtube.com/watch?v=NjMTf2UWPsw&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=21&pp=iAQB
https://www.youtube.com/watch?v=GJUL3glrKvA&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=39&pp=iAQB
https://www.youtube.com/watch?v=NUk6QN02UxQ&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=40&pp=iAQB
https://www.youtube.com/watch?v=9c0ksQKizts&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=49&pp=iAQB
https://www.youtube.com/watch?v=2R1HELARjUk&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=50&pp=iAQB
https://www.youtube.com/watch?v=G7SIcvWrAKs&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=55&pp=iAQB
https://www.youtube.com/watch?v=WcbnJA2ah6U&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=5
https://www.youtube.com/watch?v=NNWiL6DFCcg&list=PL2Uw4_HvXqvbpFquYIE57BEAqkQWk-iFg&index=93&pp=iAQB
https://www.youtube.com/watch?v=8wgR4oroeR0&list=PL2Uw4_HvXqvYk1Y5P8kryoyd83L_0Uk5K&index=52&pp=iAQB
https://www.youtube.com/watch?v=eVdHmaE3tSM&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=26&pp=iAQB
https://www.youtube.com/watch?v=t2EUocx3vGQ&list=PL2Uw4_HvXqvYeXy8ab7iRHjA-9HiYhRQl&index=57&pp=iAQB
https://www.youtube.com/watch?v=pvaIi0l1GME&list=PL2Uw4_HvXqvYk1Y5P8kryoyd83L_0Uk5K&index=9
Video- William Morrell: (Professionally) Coding with Others https://www.youtube.com/watch?v=IcvxW-EhEV0
Morrell talks about the key elements of coding with others: having a READme and License file for any code that may become public, tracking changes over time with a resource like git, various commit messages and their respective functions, the benefits of using pull requests in general, and the importance of dependency management. The video was great as a high level overview/reminder of why doing more work at the start (of giving context for changes through pull requests or using tools like poetry for dependency management) does a lot to relieve headaches later on. I think it encapsulated many useful experiences from CS46 (like using git and familiarizing myself with License/READme files) but also mentioned elements that I can do to improve my programming skills (writing useful commit messages).
i watched 7 videos for a total of 3 points - 1 – professionally coding with others - https://www.youtube.com/watch?v=IcvxW-EhEV0&ab_channel=PyConUS The presenter talks about how to create professional-quality code, even if you’re not employed in a coding profession. They discuss how to format and present your code properly. Examples of things that they talk about include documentation, version control, code quality tools, pull requests, and dependency management.
2 – localize your open source documentation - https://www.youtube.com/watch?v=0k9UkMrMBYM&ab_channel=PyConUS The presenter talks about localization, which they define as localization being similar to translation to fit certain needs and/or contexts. They state that localization has many benefits, including that localizing can lead to more contributors.
3 – who said wrangling geospatial data at scale was easy - https://www.youtube.com/watch?v=wYtoePM83HE&ab_channel=PyConUS This presentation gives an overview of some libraries that are used in geospatial data analysis and the ways in which those libraries and other techniques function. They say that when scaling data, it is important to choose a data format that lends itself to fast io. Raster formats are often known as faster in the geospatial world. Vector data format is slower to process, but is more accurate and has many data points. The presenter also discusses the benefits and pitfalls of various libraries such as NumPy.
4 – speed up data access with pyarrow - https://www.youtube.com/watch?v=akfsWPsvmrM&ab_channel=PyConUS The presenter begins their presentation by emphasizing the value of data, but that accessibility of the data impacts how valuable it is and how much information can be extracted. They say that a flaw in current software is that there is more focus on functions than data, and that data is not often treated with specificity. One problem that they identify is the problem of serialization & deserialization process. A solution that they identify is a method called “Data is the new API.” They go on to discuss Apache Arrow and illustrate some examples.
5 – let’s talk about jwt - https://www.youtube.com/watch?v=JyvJYkbzBNc&ab_channel=PyConUS This presentation is about JWT, or JSON Web Tokens. The presenter begins by providing a background on JOSE and the way in which it represents information. JWT’s are unique identifiers that contain information; the presentation walks through the various parts of a JWT such as the header, payload, reserved claims, public claims, private claims and the signature. The presentation details the specificities of JWTs, as well as the ways in which to format each portion of a JWT and what to include/not include.
6 – dungeons and dragons and graphs - https://www.youtube.com/watch?v=t2EUocx3vGQ&ab_channel=PyConUS This presentation discusses the way in which graphs and algorithms relate to the game of Dungeons and Dragons. The presentation begins by discussing various definitions for graphs, as well as relationships that graphs are particularly good at representing. They then discuss the ways in which a graph could be used to represent a path between interactions that a D&D character could have when entering a tavern. They review some pseudocode for depth first search, and then discuss some other concepts such as breadth first search and spanning trees. The finish with an overview of some tips for how to debug when graph algorithms fail.
7 – improving app performance with snapshots - https://www.youtube.com/watch?v=0cNBVt8UvI8&ab_channel=PyConUS The presenter discusses issues that many apps face with performance and some potential solutions. They discuss the issue of databases negatively impacting performance. Solutions to this that were discussed included database scaling (vertical and horizontal) and query tuning. They also discuss the ORM problem, which is a problem that they experienced when their company was growing quickly. They discuss multiple strategies for improving queries to resolve problems such as the ORM problem.
Talk: Eric J. Ma - A careful walk through probability distributions, using Python In this talk, the presenter explained the concept of probability distribution functions by describing them as python objects. I found this way of explaining the concept very intuitive and helpful. The presenter used the streamlit framework to be able to then interactively render the distribution objects in the browser. I think this paradigm of teaching statistics and other mathematical concepts has a lot of potential. I want to integrate the interactive components into an AI stem tutor I’m working on.
Talk - Josh Weissbock: Distributed Web Scraping in Python This talk was about how to do distributed web scraping effectively. The presenter proposed avoiding bot detection by adding random headers to requests, which I’m not sure I agree is a good approach in every case. Some sites change the content served based on headers like language, viewport, mobile site, etc. I appreciated the distributed mental model he shared with several scraper nodes and a single command and control node to keep track of progress and results. This is a helpful paradigm. I also had never heard of the backoff module which allows the easy use of function decorators to wrap a function and have it rerun until a condition is met, like downloading a webpage. I plan to use these learning for a webscraper project I am working on.
Talk: Anthony Shaw - Why is Python slow? This video was really cool and helped me understand how python works under the hood. I learned that when code is run it is first parsed into an Abstract Syntax Tree which is defined by the syntactic rules of python. After this step, the compiler then traverses the tree and creates a Control Flow Graph which represents all possible paths that could be traversed during the programs execution. Next the assembler traverses the control flow graphs and converts it into sequential statements as byte code that can be interpreted by the cpu. I learned these steps are cached and the resulting compiled code is what is stored in the pycache folder. I also appreciated the numba shoutout, since I have used it before to speed up code. numba is a JIT compiler for numpy.
Total Points: +2
+2 points
1) Tutorials - Juhi, Dana: Intro to Hugging Face: Fine-tuning BERT for NLP tasks
The lecture introduced the Hugging Face's Transformers library, which provides a collection of pre-trained models for NLPs. These models are open source and cover a wide range of tasks, making it easier for developers to leverage existing models for their projects. The lecture emphasized how to explore and choose appropriate models for specific tasks within the library.
2) Tutorials - Lisa Carpenter: How to create beautiful interactive GUIs and web apps
I've learned about Streamlit, which is a powerful tool for rapidly creating interactive web applications for data visualization, model deployment, and more. It doesn't require front-end development skills and is well-suited for data scientists and analysts. It allows the coder to create various widgets such as buttons, text inputs, and data frames that allow users to interact with the app's content. Streamlit's session state feature helps maintain data across user interactions and app pages. It provides a persistent storage mechanism that keeps track of variables even as the app is reloaded or navigated between different pages.
3) Talks - Paul Ganssle: Working with Time Zones: Everything You Wish You Didn't Need to Know
In Python 3.6 and later, the zoneinfo module was introduced, which provides a more robust and accurate way to handle time zones. This module offers better support for handling ambiguous and imaginary times and provides consistent behavior for different time zone semantics. Migrating from the older pytz library to the newer zoneinfo module might be necessary due to limitations in pytz, such as the potential lack of transitions beyond 2038 or the need for faster time zone operations. The zoneinfo module aims to provide better performance, more accurate handling of transitions, and improved support for future time zone changes.
PyCon is the main meat-space gathering of python programmers. Every year, there are presentations about cool python projects and programming techniques, and these presentations are posted to youtube at https://www.youtube.com/c/pyconus. You can get extra credit for watching these videos. (PyCon2023 happened 2 weeks ago... the videos aren't online yet... but they should be online soon.)
To get extra credit: