K

Kenneth Reitz

kennethreitz.org · Personal blog · on HN since 2009

Kenneth Reitz is a Python developer who created Requests and Pipenv and writes about tooling, open source burnout, and mental health.

What HN saysCommenters discuss Pipenv's design choices like project-local environments, and HN links his essays and the controversy around his personal writing and a related apology.
92HN people shared it
32linked it in comments
96stories submitted
5.3Kstory points
2 months agolast shared
2009people per year2026

Most-shared posts

  1. 1
    A Better Pip Workflow
    9 people · 200 points · first shared 2016 · 84 comments on HN
  2. 2
    MentalHealthError: an exception occurred
    6 people · 608 points · first shared 2016 · 186 comments on HN
  3. 3
  4. 4
    Static Sites with Heroku
    4 people · 3 points · first shared 2012 · discussion on HN
  5. 5
    Xcode, GCC, and Homebrew
    3 people · 646 points · first shared 2012 · 103 comments on HN
  6. 6
    The Future of Python HTTP
    3 people · 338 points · first shared 2012 · 53 comments on HN
  7. 7
    Homepage
    3 people · first shared 2010
  8. 8
    Announcing Pipenv
    2 people · 664 points · first shared 2017 · 162 comments on HN
  9. 9
    On Cybersecurity and Being Targeted
    2 people · 281 points · first shared 2016 · 117 comments on HN
  10. 10
    Why I Left Medium
    2 people · 258 points · first shared 2013 · 167 comments on HN
  11. 11
    How I Develop Things and Why
    2 people · 207 points · first shared 2012 · 33 comments on HN
  12. 12
    ​Pipenv: One Year Later and a Call for Help
    2 people · 123 points · first shared 2018 · 16 comments on HN
  13. 13
    Introducing Flask-Sockets
    2 people · 63 points · first shared 2013 · 18 comments on HN
  14. 14
    If I could amend PEP 8
    2 people · 48 points · first shared 2017 · 66 comments on HN
  15. 15
    Be Cordial or Be on Your Way
    2 people · 31 points · first shared 2012 · 30 comments on HN

What HN people wrote when they linked it

amasad · 2017-08-31
It's the least shitty of all other designs. It picked the best design decisions from existing package managers. By default it is project local (as opposed to global like what rubygems, pip, and others are), it's recursive and largely reproducible (fully reproducible using lock files). The resolution algorithm is also deterministic and simple, you can implement it in an hour. Although other languages are catching up they have to do it as add-ons or third party tools -- for example python pipenv https://www.kennethreitz.org/essays/announcing-pipenv
afarrell · 2016-02-27
I also suspect that this is the same person mentioned here: http://www.kennethreitz.org/essays/purging-the-unexpected-negative-a-n… For many guys, "crazy chick" is the only language they have to describe an abusive relationship. It's not the most helpful phrase, so it's best replaced with a clearer one.
cbarber · 2013-02-15
Fixed. Great point. Btw - the site is being served statically though Heroku [1]. This is the first time I have tried this out, and it worked fantastically. [1] http://kennethreitz.org/exposures/static-sites-on-heroku-cedar
espeed · 2012-05-06
Don't mess with "crappy free hosts" -- just run it on a free Heroku dyno (http://www.heroku.com/pricing). Kenneth (http://kennethreitz.com) shows you can get good performance with Flask on the free dyno (http://flask.pocoo.org/mailinglist/archive/2012/2/22/flask-on-heroku-%…
bryanh · 2011-12-14
Just in case you want something more full featured (think IP, COOKIES, POST, GZIP, STREAMS, etc...) check out http://httpbin.org/ from the same guy that brought sanity to http requests in Python: http://kennethreitz.com/
kenneth_reitz · 2010-10-26
I'm writing a new todo application that runs and syncs on ALL platforms: Fin. http://kennethreitz.com
passive · 2017-05-23
I would recommend Python 3 for sure. I just use the installers from https://www.python.org/ and don't tend to have any problems. I prefer lightweight tools, so I use Visual Studio Code. It won't hold your hand, but neither will it get in your way. When working on projects, get in the habit of using virtualenvs. It's a small amount of overhead, but will save you a ton of frustration in the long run. A primer on windows: From project directory, initialize it: > python -m venv .env (I put my virtualenvs in .env out of habit. Virtualenvwrapper, itself a useful addition for managing virtualenvs, puts them in your home directory, which can be fine too.) Activate it: > .env\Scripts\activate.bat Use "pip" to install your dependencies. Also use "pip freeze" to record those dependencies for installations elsewhere. I'm currently following this for dependency management: https://www.kennethreitz.org/essays/a-better-pip-workflow
4ggr0 · 2025-08-28
There's an "apology"/response from Keith. https://kennethreitz.org/essays/2023-01-an_overdue_apology "i'm sorry, hope we can continue working together in the future" seems like a very mild response to allegedly fumbling 30k, but what do i know... > the asynchronous landscape within Python's ecosystem failed to meet my expectations, leading me to conclude that Requests should retain its synchronous nature. i concluded that the ecosystem does things differently than my personal standards, so i'm gonna revert and keep the money. nice.
wolf550e · 2019-09-12
I use separate requirements-to-freeze.txt and requirements.txt, so that I maintain only list of direct dependencies (no transitive dependencies) and only pin versions when I know the code won't work with the latest version, but pip freeze creates a file like package lock with all the dependencies versioned so I can recreate the exact environment again without needing to store a docker image of it or something like that. See https://www.kennethreitz.org/essays/a-better-pip-workflow Needing to name the requirements file and needing to activate venv are not pain points I feel. Wrapping native libraries and not invoking a C compiler at package install time means some trade-offs. https://cffi.readthedocs.io/en/latest/cdef.html
mellosouls · 2019-07-17
Earlier response to the vorpus criticism (presumably): https://www.kennethreitz.org/essays/requests3-update
smnrchrds · 2019-05-04
Interestingly, Pipenv is no longer in the list of projects on his website: https://www.kennethreitz.org/projects What that means, I don't know.
jdorfman · 2019-05-04
He has been pretty transparent with his bipolar disorder. Speaking from experience mania drastically changes your personality. https://www.kennethreitz.org/essays/mentalhealtherror-an-exception-occ…
cbzehner · 2018-02-09
Pipenv? See a recent post by (what I assume) is one of the maintainers. https://www.kennethreitz.org/essays/pipenv-one-year-later-a-call-for-h…
wkd · 2017-08-25
We use different files for "soft" requirements, dev/test requirements, and a freeze.txt containing all production requirements and then we default to installing from freeze.txt but can update from the other files. It's similar to this[1] but generating the freeze.txt in a temporary virtualenv. I've started using an generated offline cache and PIP_FIND_LINKS to remove the dependency of pypi for known installs in one project as well, will be interesting to see if it turns out to be a good idea or not. [1]: https://www.kennethreitz.org/essays/a-better-pip-workflow
mrsmn · 2017-01-30
David Beazley : http://www.dabeaz.com/ Kenneth Reitz : https://www.kennethreitz.org/ Armin Ronacher : http://lucumr.pocoo.org/ Julien Danjou : https://julien.danjou.info/ Hynek Schlawack : https://hynek.me/ Donald Stufft : https://caremad.io/
gourneau · 2017-01-23
Hey other Reitz fans. Make sure to check out his newish podcast series: https://www.kennethreitz.org/import-this/
Cthulhu_ · 2016-08-25
One can argue semantics whether you call it a UI or a CLI, but hey. There's a number of GUI clients out there that depending on your criteria could be considered better. They're usually not as powerful as the CLI client though, and if they are, features like accessing the reflog are hard to find and use. There's also a few alternative CLIs out there, I've just done a quick googling and came across http://www.saintsjd.com/2012/01/a-better-ui-for-git/ and http://www.kennethreitz.org/essays/legit-the-sexy-git-cli. Personally I prefer the CLI, it's the only tool that I can rely on to do what I tell it to do and to know what's happening. But it takes time and effort to get used to it.
welder · 2016-05-09
Same here, needed this for a long time. I wasn't going to keep a duplicate requirements-to-freeze.txt file around [1] so created this tool. [1] http://www.kennethreitz.org/essays/a-better-pip-workflow
randomname2 · 2016-02-27
Interestingly the author states his symptoms started through a combination of lack of sleep and dating a disturbed individual [1]. Such a diagnosis is possibly offensive, ableist and unscientific, however there are many such anecdotal reports of people with (developing or fully developed) mental illness pairing up. While there is little evidence of such pairing up being a cause (i.e. some sort of "contagiousness", as explored in [2]), there is some evidence that people suffering from mental illness (including personality disorders) can be attracted to one another [3]. [1] http://www.kennethreitz.org/essays/purging-the-unexpected-negative-a-n… [2] http://www.rawstory.com/2015/12/is-mental-illness-contagious/ [3] http://www.medicaldaily.com/law-attraction-mental-illness-marriage-375…
temuze · 2014-03-21
Yeah, there's no accepted way to do Websockets in Python. I'd say Autobahn is probably the closest we have to something like that. That said, it isn't too difficult to hack something together. Kenneth Reitz did a nice little project for Flash websockets that I like: http://kennethreitz.org/introducing-flask-sockets/ Python 3.4 has that nice ayncio module built in. I'm hoping it'll be a big draw for people into Python 3.
dangoldin · 2013-09-08
There's also http://kennethreitz.org/why-i-left-medium/ Not on Medium but relevant to this discussion.
philip1209 · 2012-10-20
I'm not familiar - if there's a better way, please let me know. If you just try to serve an index.html, it doesn't work. http://kennethreitz.com/static-sites-on-heroku-cedar.html
stock_toaster · 2012-06-11
I watched the intro on udemy. Very cool. You talked about installing xcode. For newer osx versions, people may be able to install just the [command line tools for xcode][1], which is only about 170MB or so. It might save some people from waiting around for the full xcode. [1]: http://kennethreitz.com/xcode-gcc-and-homebrew.html
johtso · 2012-06-03
This is a much cleaner way of serving static sites on Heroku: http://kennethreitz.com/static-sites-on-heroku-cedar.html Using this technique you can even use .htaccess files.
arthurbrown · 2012-05-13
I'd guess this impetus for this post came about after this meeting at pycon http://kennethreitz.com/the-future-of-python-http.html
redbeard0x0a · 2012-02-16
It looks like Apple worked with Kenneth Reitz (the guy who created that OSX-GCC-Installer on github) and it seems that the Command Line Tools for Xcode download from Apple is a result of that conversation. It also looks as if homebrew is going to support compilation using the official package from Apple. Read more: http://kennethreitz.com/xcode-gcc-and-homebrew.html

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close