Public
It turns out that Unicode support in Terminals is a lot more difficult than it first appears. A quick overview of special support for Unicode characters in Terminals:
- "Wide" or "Fullwidth" characters, particularly for East Asian languages and emojis, are codepoints that occupy two cells in a terminal instead of one.
- "Zero" width combining characters used in languages such as Arabic, Hebrew, or Hindi do not occupy any cells themselves; instead, they modify the previous character.
- "Zero Width Joiner" (ZWJ U+200D) reduces and combines many codepoints into a single emoji. This is similar to combining, but encoded in a completely different way.
- "Variation Selector-16" (VS-16 U+FE0F) is a special character that, for specific "Narrow" emojis consuming one cell, causes them to become "Wide", consuming two cells.
The Mozilla Foundation has released their latest annual report -- covering the time up through December of 2022 (Mozilla's reporting always lags by one year) -- and something peculiar leaps out of the data:
- The compensation of the Mozilla CEO has skyrocketed (by millions)
- While the Mozilla revenue drops
- And the Firefox Marketshare takes a nosedive
- While, at first, this seems ridiculously lopsided... perhaps it actually makes sense.
This tutorial walks you through how to package a simple Python project. It will show you how to add the necessary files and structure to create the package, how to build the package, and how to upload it to the Python Package Index (PyPI).
"Four months ago, Adnan Khan and I exploited a critical CI/CD vulnerability in PyTorch, one of the world’s leading ML platforms. Used by titans like Google, Meta, Boeing, and Lockheed Martin, PyTorch is a major target for hackers and nation-states alike.
Thankfully, we exploited this vulnerability before the bad guys.
Here is how we did it."
An implementation of Emacs Lisp's defadvice
, for Python.
Sadly thr library itself is very old (14 years old at the time of recording this), and only for Python 2. There is, however, a PR in the repo that makes it work with Python 3.