Skip to content

Commit 2e82818

Browse files
update weekly 69
1 parent 476f7e5 commit 2e82818

3 files changed

Lines changed: 229 additions & 3 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@ As we publish more issues, we'll gradually make earlier content freely available
173173
- Shared 12 articles, 12 open-source projects, 1 audio/video
174174
- Issue 70: [Python in Microsoft Excel Officially Released!](./docs/2024-09-21-weekly.md)
175175
- Shared 12 articles, 12 open-source projects, 2 audio/videos
176-
- Issue 69: [It's Time to Stop Using Python 3.8](./docs/2024-09-15-weekly.md)
176+
- Issue 69: [It's Time to Stop Using Python 3.8](./docs/en/2024-09-15-weekly.md)
177177
- Shared 12 articles, 12 open-source projects
178-
- Issue 68: [2023 Python Developer Survey Results](./docs/2024-09-07-weekly.md)
178+
- Issue 68: [2023 Python Developer Survey Results](./docs/en/2024-09-07-weekly.md)
179179
- Shared 12 articles, 12 open-source projects, 2 hot discussions
180-
- Issue 67: [Major Updates to uv](./docs/2024-09-01-weekly.md)
180+
- Issue 67: [Major Updates to uv](./docs/en/2024-09-01-weekly.md)
181181
- Shared 12 articles, 12 open-source projects
182182
- Issue 66: [Python's Preprocessor](./docs/en/2024-08-24-weekly.md)
183183
- Shared 12 articles, 12 open-source projects, 1 audio/video

docs/en/2024-09-07-weekly.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
# Python Trending Weekly #68: 2023 Python Developer Survey Results
2+
3+
Hey there, I'm Python Cat. Here I share quality Python, AI, and general tech content weekly, mostly in English. There's also a [Telegram channel](https://t.me/pythontrendingweekly) as a supplement, publishing richer content. Feel free to follow!
4+
5+
This week I'm sharing 12 articles, 12 open source projects, and 2 trending discussions.
6+
7+
## [🦄Articles & Tutorials](https://xiaobot.net/p/python_weekly)
8+
9+
1、[Python Developers Survey 2023 Results](https://pyfound.blogspot.com/2024/08/python-developers-survey-2023-results.html)
10+
11+
Python's official 7th annual developer survey results are out! Over 25,000 Python developers from nearly 200 countries and regions participated in the survey. Let's see what new trends emerged this year, what changed, and what stayed the same?
12+
13+
2、[Why I Still Use Python Virtual Environments in Docker](https://hynek.me/articles/docker-virtualenv/)
14+
15+
When developing Python projects with Docker, is it still necessary to use virtual environments? The author's recommendation is yes, and the article shares several reasons: predictability and familiarity of directory structure, unified standards for easier communication, reduced code import lookups, etc.
16+
17+
3、[How I use Python to organize my data analyses](https://joshuacook.netlify.app/posts/2024-07-27_python-data-analysis-org/)
18+
19+
The author is a computational biologist who shares their experience using Python for data analysis, including virtual environments, dependency management, module management, programming practice recommendations, and more.
20+
21+
4、[Playing with the One Billion Row Challenge in Python](https://old-panda.com/2024/08/25/1brc-python)
22+
23+
How to process a file containing one billion weather data records in the shortest time? The author took on this challenge with Python, optimizing from 8 minutes to just over half a minute in their local environment, sharing some Python optimization tricks.
24+
25+
5、[Understanding the Template Method Pattern in Python](https://startcodingnow.com/template-method-design-pattern)
26+
27+
Using an example of preparing coffee and tea, this introduces the Template Method design pattern for creating flexible and reusable code structures that are easier to maintain and extend.
28+
29+
6、[Lesser known parts of Python standard library](https://www.trickster.dev/post/lesser-known-parts-of-python-standard-library/)
30+
31+
"Hidden gems" in Python's standard library - some are actually quite commonly used, like `collection` and `contextlib`, but others are truly rare like `fractions`, `webbrowser`, and `zipapp`.
32+
33+
7、[How to implement a time-based LRU cache in Python](https://jamesg.blog/2024/08/18/time-based-lru-cache-python/)
34+
35+
There are two common caching strategies: time-based and least recently used. The article introduces both caching approaches and implements a caching algorithm from scratch in Python that combines both strategies.
36+
37+
8、[The Design & Implementation of the CPython Virtual Machine](https://blog.codingconfessions.com/p/cpython-vm-internals)
38+
39+
A deep dive into the design and implementation of the CPython virtual machine, including bytecode format, the interpreter's bytecode evaluation loop, and how stack frames and computed jumps are used to optimize performance. Finally, it analyzes the execution process of a simple Python program, showing how the VM manages and executes compiled bytecode.
40+
41+
9、[How we made querying Pandas DataFrames with chDB 87x faster](https://clickhouse.com/blog/chdb-pandas-dataframes-87x-faster)
42+
43+
chDB is an embedded version of ClickHouse that runs in-process. Its version 2.0 is 87x faster than 1.0 when querying Pandas DataFrames. The article explains how this was achieved: reducing serialization/deserialization steps, directly reading Python objects, batch data copying, and rewriting Python string encoding/decoding logic in C++.
44+
45+
10、[Escaping from Anaconda's Stranglehold on macOS](https://paulromer.net/escaping-from-anaconda/)
46+
47+
Beginners who install Anaconda on macOS might not be able to find a way to run the official Python. The article introduces a simple solution: moving the .zshrc file out of the home directory to escape Anaconda's control over the Python environment.
48+
49+
11、[Python: profile total memory allocated with tracemalloc](https://adamj.eu/tech/2024/08/30/python-profile-total-memory-tracemalloc/)
50+
51+
`tracemalloc` is a Python standard library that can track memory allocation. The article shows how to use it to implement a simple memory estimation function, compares it with sys.getsizeof(), and examines the memory size of importing numpy. (Also: [What should you pay attention to when Python calculates memory?](https://pythoncat.top/posts/2020-03-02-size))
52+
53+
12、[Habits of great software engineers](https://vadimkravcenko.com/shorts/habits-of-great-software-engineers)
54+
55+
What habits do efficient, excellent software engineers have? The author summarizes some important points, such as focusing beyond just the code itself, pursuing efficiency, enjoying fixing things, systematic thinking, knowledge transfer, simplifying complex problems, etc.
56+
57+
## [🐿️Projects & Resources](https://xiaobot.net/p/python_weekly)
58+
59+
1、[supertree: Visualize decision trees in Python](https://github.com/mljar/supertree)
60+
61+
Interactively visualize decision trees in Jupyter Notebooks, Jupyter Lab, Google Colab, and other notebooks that support HTML rendering.
62+
63+
![](https://img.pythoncat.top/classifier-supertree.png)
64+
65+
2、[kazam: Linux Screen Recorder, Broadcaster, Capture and OCR with AI in mind)](https://github.com/henrywoo/kazam)
66+
67+
A versatile toolbox supporting screen recording, audio recording, broadcasting, OCR, webcam, and other features.
68+
69+
3、[python-training: Python training for business analysts and traders](https://github.com/jpmorganchase/python-training)
70+
71+
Python training course from JPMorgan Chase for business analysts and traders. (5.7K stars)
72+
73+
4、[pymobiledevice3: Pure python3 implementation for working with iDevices (iPhone, etc...)](https://github.com/doronz88/pymobiledevice3)
74+
75+
For interacting with iPhone and other devices, supporting device discovery, TCP port forwarding, syslog viewing, app management, file management, firmware updates, notification monitoring and triggering, screenshots, backups, etc. (1.3K stars)
76+
77+
5、[xiaomusic: Play music using Xiaomi AI speakers](https://github.com/hanxi/xiaomusic)
78+
79+
Play music using Xiaomi AI speakers, with music downloaded via yt-dlp. Supports multiple voice commands, multiple speaker devices, and various music formats. (1.4K stars)
80+
81+
6、[amine: Distraction blocker which monitors your mouse and keyboard](https://github.com/datavorous/amine)
82+
83+
Customizable pomodoro timer with strict distraction prevention (disables key combinations that might interfere with focus, prevents mouse from moving to screen edges), forced fullscreen, and user-friendly interface.
84+
85+
7、[asyncpal: Preemptive concurrency and parallelism for sporadic workloads](https://github.com/pyrustic/asyncpal)
86+
87+
Designed for preemptive concurrency and parallelism, using thread pools for concurrency and extending to multiprocessing for parallelism. Thread pools support automatic idle shrinking.
88+
89+
8、[tinystatus: Tiny status page generated by a Python script](https://github.com/harsxv/tinystatus)
90+
91+
Simple, customizable status page generator that can monitor the status of various services like HTTP endpoints, ping hosts, check ports, etc.
92+
93+
9、[graphiti: Build and query dynamic, temporally-aware Knowledge Graphs](https://github.com/getzep/graphiti)
94+
95+
Build knowledge graphs that represent complex relationships between entities that change over time. Supports extracting unstructured and structured data, and can query the generated graphs through time, full-text, semantic, and graph algorithms.
96+
97+
10、[librosa: Python library for audio and music analysis](https://github.com/librosa/librosa)
98+
99+
Powerful music and audio analysis tool. (7K stars)
100+
101+
11、[Nettacker: Automated Penetration Testing Framework - Open-Source Vulnerability Scanner - Vulnerability Management](https://github.com/OWASP/Nettacker)
102+
103+
Aimed at automatically gathering information, scanning vulnerabilities, and generating reports, including services, bugs, vulnerabilities, misconfigurations, etc. Uses TCP SYN, ACK, ICMP, and other protocols to detect and bypass firewall/IDS/IPS devices. (3.3K stars)
104+
105+
12、[HivisionIDPhotos: a lightweight and efficient AI ID photos tools](https://github.com/Zeyi-Lin/HivisionIDPhotos)
106+
107+
Intelligent ID photo creation tool that can perform lightweight background removal and generate ID photos of different sizes. (7.2K stars)
108+
109+
![](https://img.pythoncat.top/HivisionIDPhotos.png)
110+
111+
## **[🥂Discussions & Questions](https://xiaobot.net/p/python_weekly)**
112+
113+
1、[GoLang vs Python, which is more suitable as a second language for Java programmers?](https://www.v2ex.com/t/1069847)
114+
115+
2、[Self-learning Python from zero, how is this paid Python course? Please give some advice, experts](https://www.v2ex.com/t/1067502)
116+
117+
## [🐧 Looking Back](https://xiaobot.net/p/python_weekly)
118+
119+
[Python Trending Weekly #18: Flask, Streamlit, Polars Learning Tutorials](https://pythoncat.top/posts/2023-09-02-weekly) (2023.09.02)
120+

docs/en/2024-09-15-weekly.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Python Weekly #69: Time to Stop Using Python 3.8
2+
3+
4+
5+
## [🦄Articles & Tutorials](https://xiaobot.net/p/python_weekly)
6+
7+
1、[It's time to stop using Python 3.8](https://pythonspeed.com/articles/stop-using-python-3.8/)
8+
9+
Python 3.8 was released in October 2019 and will reach End of Life this October. After that, even if security vulnerabilities are discovered, no more patches will be released! Many third-party libraries and frameworks will also stop supporting Python 3.8, so it's time to upgrade to a newer version. (Note: Python 3.13 is coming out next month - [when should you upgrade to Python 3.13?](https://pythonspeed.com/articles/upgrade-python-3.13/))
10+
11+
2、[Multiversion Python Thoughts](https://lucumr.pocoo.org/2024/9/9/multiversion-python/)
12+
13+
How can a library depend on multiple versions of another library simultaneously, like pydantic 1.x and 2.x? The author explores this possibility and proposes an end-to-end solution, discussing the technical challenges that need to be addressed.
14+
15+
3、[Why I'm Switching to Polars?](https://arilamstein.com/blog/2024/09/04/why-im-switching-to-polars/)
16+
17+
The author decided to switch their Pandas projects to Polars. The article explains the reasoning: it's not because Polars is faster, but because its syntax is more intuitive and easier to remember and use. The article compares code for handling CSV files in Polars, Pandas, Tidyverse, and Base R.
18+
19+
4、[How We Made Notebooks Load 10 Times Faster?](https://www.singlestore.com/blog/how-we-made-notebooks-load-10-times-faster/)
20+
21+
The author's product embedded Jupyter iframes, which took a long time to load. By separating JupyterLab's UI from backend services, parallel loading, simulating static requests, and pre-rendering extension UIs, they achieved an 87% improvement.
22+
23+
5、[Asynchronous IO: the next billion-dollar mistake? ](https://yorickpeterse.com/articles/asynchronous-io-the-next-billion-dollar-mistake/)
24+
25+
The author raises a question: could asynchronous IO (non-blocking IO) be considered a "billion-dollar mistake"? In a parallel universe, if we had spent twenty years improving OS thread performance instead, would we have achieved better results?
26+
27+
6、[Building the Same App Using Various Web Frameworks](https://eugeneyan.com//writing/web-frameworks/)
28+
29+
What can we learn by building the same functionality with different web frameworks? The author experimented with FastAPI + Jinja + HTML + CSS + JavaScript, FastHTML, Next.JS, SvelteKit, and FastAPI + Svelte. FastHTML's performance was particularly impressive.
30+
31+
7、[How to build a movie recommendation app without the complexities of vector databases](https://blog.streamlit.io/how-to-recommendation-app-vector-database-weaviate/)
32+
33+
Weaviate is an AI-native database that simplifies the complexity of data storage, retrieval, and querying while integrating with AI models. The article shows how to use it with Streamlit to build a natural language movie recommendation app that supports keyword, semantic, and hybrid search modes.
34+
35+
8、[PyPI Proxying for Docker Builds](https://www.robopenguins.com/pypi-proxy/)
36+
37+
Can CI systems be improved by caching PyPI data locally? The author explores two approaches: mounting caches during builds and using the Proxpi proxy server. The article explains how to set up Proxpi using Docker and Docker Compose.
38+
39+
9、[Bitten by Unicode](https://pyatl.dev/2024/09/01/bitten-by-unicode/)
40+
41+
The author encountered a Unicode issue where hyphens visually resemble minus signs (HYPHEN-MINUS vs HYPHEN), causing negative amounts to be incorrectly parsed as positive when using hyphens. The article explains how to use the standard library `unicodedata` to identify and distinguish between these two symbols.
42+
43+
10、[ Rust for the small things? but what about Python?](https://dataengineeringcentral.substack.com/p/rust-for-the-small-things)
44+
45+
Rust is becoming increasingly popular for specific data engineering tasks, like Polars, but due to its verbose code, it doesn't match Python's simplicity and ease of use in many scenarios. The article provides simple code comparisons, showing Python's advantages in rapid development and prototyping.
46+
47+
11、[Go vs Python for Serverless: Performance, Cost, and Ease of Use](https://atakanerbas.com/programming/2024/08/29/go-vs-python-serverless.html)
48+
49+
Serverless allows developers to focus on building applications without worrying about underlying infrastructure. So how do Go and Python compare in serverless application development? The article compares them across three dimensions.
50+
51+
12、[Google Trends API alternative: Wikipedia Pageview Statistics](https://substack.com/@franz101/p-148522892)
52+
53+
Google Trends doesn't have an official Python API, and unofficial APIs aren't reliable, so the author sought alternatives to understand search and topic trends. The article introduces the use of Wikipedia-related APIs.
54+
55+
## [🐿️Projects & Resources](https://xiaobot.net/p/python_weekly)
56+
57+
1、[polar: An Open Source Lemon Squeezy alternative](https://github.com/polarsource/polar)
58+
59+
An all-in-one funding and monetization platform for open source and indie developers, selling digital products and subscriptions including GitHub repositories, Discord channels, file downloads, and licenses. (2.6K stars)
60+
61+
2、[gigi: A framework for rapid prototyping and development of real-time rendering techniques](https://github.com/electronicarts/gigi)
62+
63+
A framework for rapid prototyping and development of real-time rendering techniques. Includes three components: editor, viewer, and compiler, with support for DirectX 12 code generation.
64+
65+
3、[nestedtext: Human readable and writable data interchange format](https://github.com/KenKundert/nestedtext)
66+
67+
A file format for storing structured data, similar to JSON, that's intuitive to input, edit, and view. Only supports string types, not other types (integers, floats, booleans, etc.).
68+
69+
4、[maestro-cli: A command-line tool to play songs (or any audio, really) in the terminal](https://github.com/PrajwalVandana/maestro-cli)
70+
71+
A command-line tool for playing audio. Supports songs from YouTube, YouTube Music, and Spotify, with features for lyrics, clipping, filtering by tags, statistics, audio visualization, and music discovery.
72+
73+
![](https://img.pythoncat.top/maestro-cli.png)
74+
75+
5、[repo2file: Dump selected files from your repo into single file](https://github.com/artkulak/repo2file)
76+
77+
Dumps repository files into a single file for use in RAG and LLM applications. Supports entire repositories, respects .gitignore, and allows filtering by file type.
78+
79+
6、[edx-platform: The Open edX LMS & Studio, powering education sites around the world!](https://github.com/openedx/edx-platform)
80+
81+
A service-oriented platform for authoring and delivering online learning at any scale. Provides content management and learning management services. (7.3K stars)
82+
83+
7、[langflow: A low-code app builder for RAG and multi-agent AI applications](https://github.com/langflow-ai/langflow)
84+
85+
Built on Python, agnostic to models, APIs, data sources, and databases. Visual IDE with drag-and-drop support. Multi-agent orchestration and conversation management. Integrates with LangSmith, LangFuse, and LangWatch for observability. (28.3K stars)
86+
87+
8、[crawl4ai: Open-source LLM Friendly Web Crawler & Scrapper](https://github.com/unclecode/crawl4ai)
88+
89+
Simplifies web crawling and data extraction for use with large language models and AI applications. Supports crawling multiple URLs simultaneously, extracting all internal and external links, executing custom JavaScript before crawling, and CSS selectors. (2.7K stars)
90+
91+
9、[litecli: CLI for SQLite Databases with auto-completion and syntax highlighting](https://github.com/dbcli/litecli)
92+
93+
A SQLite command-line client developed in Python, supporting regular database operations, command auto-completion, and syntax highlighting. (2.5K stars)
94+
95+
10、[defusedxml: defusing XML bombs and other exploits](https://github.com/tiran/defusedxml)
96+
97+
Provides a secure way to handle XML files by modifying XML parsers in the standard library to remove features that could lead to security vulnerabilities.
98+
99+
11、[sail: LakeSail's computation framework with a mission to unify stream processing, batch processing, and compute-intensive (AI) workloads](https://github.com/lakehq/sail)
100+
101+
Provides a drop-in replacement for Spark SQL and Spark DataFrame APIs in single-process setups.
102+
103+
12、[dbos-transact-py: Ultra-Lightweight Durable Execution in Python](https://github.com/dbos-inc/dbos-transact-py)
104+
105+
When interruptions or crashes occur, it automatically recovers from the last completed step, achieving durable execution. Uses PostgreSQL to save execution state and OpenTelemetry to track workflows.
106+

0 commit comments

Comments
 (0)