|
| 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 | + |
| 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 | + |
| 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 | + |
0 commit comments