Chris Warrick

IRC Factoids

As part of my residence in #python on Freenode, I use a bunch of text macros, or factoids. Here’s a list of them:

name content
anaconda Anaconda (a) is often unneeded because there are binary wheels on PyPI (b) wastes disk space — how many Anaconda packages do you really use? (c) I’ve seen bugs caused solely by broken Anaconda packages (d) Anaconda, Inc. is a for-profit company. Why should I trust them to do things right? How can I be sure it’s safe? (e) Anaconda’s Spyder requires libselinux on SELinux-free systems.
caddy https://news.ycombinator.com/item?id=15237923 https://github.com/WedgeServer/wedge/issues/2
csv https://chriswarrick.com/blog/2017/04/07/csv-is-not-a-standard/
django Warrick’s Tenth Law: “Any sufficiently complicated Bottle or Flask app contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Django.”
email http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
entry_points https://chriswarrick.com/blog/2014/09/15/python-apps-the-right-way-entry_points-and-scripts/
factoids I’m using factoids (text macros) extensively on this channel. Here’s a list: https://chriswarrick.com/pub/factoids.html
float https://0.30000000000000004.com/
fourteen How to improve Python packaging, or why fourteen tools are at least twelve too many: https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
gohlke http://www.lfd.uci.edu/~gohlke/pythonlibs/
jupyter https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/edit
learnpy If you can already program in another language: official tutorial https://docs.python.org/3/tutorial/ ; if not: Think Python http://greenteapress.com/wp/think-python-2e/ or https://automatetheboringstuff.com/
learnpyN For newcomers to programming: Think Python http://greenteapress.com/wp/think-python-2e/ or Automate the Boring Stuff with Python https://automatetheboringstuff.com/
learnpyY If you can already program in another language, read the official tutorial at https://docs.python.org/3/tutorial/
locale https://chriswarrick.com/blog/2017/06/18/unix-locales-vs-unicode/
lpthw Learn Python The Hard Way is not worth the $30 price tag. It’s discouragingly slow and boring. 19% of the book is printing. It makes you memorize truth tables instead of understanding logic. It often makes you Google things instead of teaching them. Go get a refund and read those instead (free!): http://greenteapress.com/wp/think-python-2e/ or https://automatetheboringstuff.com/
packaging https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
packaging2023 https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
packaging2024 https://chriswarrick.com/blog/2024/01/15/python-packaging-one-year-later/
pdm https://pdm.fming.dev/latest/
pipenv Pipenv is a dependency management tool. It isn’t compatible with most workflows, and comes with many issues. https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-delivers-very-little/
pipenv_url https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-delivers-very-little/
pypt https://github.com/Kwpolska/python-project-template
pysetup https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/
pysetup#23 https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/#python-versions-2-vs-3
pysetup#anaconda https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/#distributions
pysetup#editors https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/#editors-and-ides
pysetup#install https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/#installing-python
pysetup#packages https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/#installing-packages
pysetup#virtualenv https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/#virtual-environments
pyweb https://chriswarrick.com/blog/2016/02/10/deploying-python-web-apps-with-nginx-and-uwsgi-emperor/
pyweb#ansible https://github.com/Kwpolska/ansible-nginx-uwsgi
runpackage You cannot run individual .py files that are part of a package. Instead of python foo/bar.py, use python -m foo.bar (you must be in the project top-level directory — that is, the directory that contains your top-level package). See also: https://go.chriswarrick.com/entry_points
splat https://docs.python.org/3/tutorial/controlflow.html#arbitrary-argument-lists
subprocess https://chriswarrick.com/blog/2017/09/02/spawning-subprocesses-smartly-and-securely/
test Hello, world! ąćęłńóśźż
typeguard https://github.com/agronholm/typeguard
typing Type hints are awesome, in general… unless you end up with Dict[str, Union[List[Dict[str, Union[str, int, float]]], Dict[int, List[Dict[str, Union[bool, int, str]]]], int]] for a fairly simple JSON structure.
typing-runtime https://github.com/agronholm/typeguard
venv https://chriswarrick.com/blog/2018/09/04/python-virtual-environments/
venv-lives https://hynek.me/articles/virtualenv-lives/
workon function workon { source "$WORKON_HOME/$1/bin/activate" }

You can find me in #python and on Freenode as ChrisWarrick, and also in a bunch of other places.

The factoids are made possible by a WeeChat plugin I wrote. This page is generated using a simple Python script.