pipenv does more than just create a venv, although it is my favorite tool for that. The most important thing it does is freeze the dependency tree using Pipfile.lock
The idea is to make builds (more) reproducible. I can build a python program, test it thoroughly, and then be reasonably assured the whole thing won't come crashing down in CI/CD from a bad update to a transient dependency. Then when I want to update the libraries I know I'm doing it purposefully and can commit the new dependency tree to source control.
probably recording exact dependency versions, based on a loose requirements.txt and when it was built.
You may want this because you have a library that you shouldn't be pinning to the third decimal on a sem-ver package, but that you don't want to hiccup in CI due to a dot-release.
Or maybe you think a loose file your tooling can read, and a hyper-specific file your builder should read, is a better interface for a project.
Yes, kind of like that. Except that it doesn't use requirements.txt but rather a file called Pipfile. In there you can also pin version, or leave them unspecified or only partially specified and you can also divide them in dev-packages and normal packages (so it allows for a bit more flexibility than a requirements.txt file).
> a bit like "pip freeze > requirements.txt" then?
With the added bonus that it also contains a hash of the package so if someone pushes a new version with the same version number it would complain that the hashes don't match.
To be specific, what is disallowed is using technology to steal signs (the camera). You can steal signs if there is a runner on second, although the pitcher and catcher can then change signs. It's one of the 'unwritten rules' in that it happens but they try to be sneaky about it. You don't want to disrespect the other team. More often with good scouting hitters can get an advantage of the pitcher is 'tipping the pitch', i.e. using a different delivery or setup depending on what pitch is coming. For instance, how high they hold the glove
A small correction, stealing signs is not disallowed, and pitchers and catchers will have different sets of signs they use when there is a runner on second base. What is disallowed is the use of technology to steal signs, the camera in center field going to the TV behind the dugout
"The Art of Memory" by Frances Yates is an interesting and scholarly book on the ancient origins of this idea. It's not a light read but I find it fascinating how influential this idea has been over such long periods of time, and also how memory has changed and evolved with the accessibility of the written word. Reciting hour long speeches word for word from memory used to be a commonplace skill (rhetoric).
That's a strange thing to say. GNU Emacs has been around 33, years, is still very actively developed, is GPL so could be forked, and seems more popular than ever. You don't have to justify your decision to not use Emacs by saying Emacs has a bleak future. I think Emacs probably has the most secure future of any text editor or IDE.
Developers do have stakes in programming languages and programming tools. You, yourself, said that you don't want to invest in Emacs. Someone who has invested a ton in mastering Emacs at this point has a personal stake in it. He wants it to thrive and have high adoption.
That being said, I'm actually in the same camp with you, on both counts (this comment and your previous one).
My main problem with Emacs is that of mindshare. To clarify what that means, I'll use some examples.
Git has huge mindshare: if a new development tool appears, if it can integrate with Git, its makers will try to integrate it themselves. This generally provides the best and most maintained integration.
Emacs has low mindshare: if a new development tool appears, Emacs users have to integrate it themselves. Outside of the relatively small Lisp community, almost no upstream developer is bothering to offer Emacs integration.
I'm not sure I understand your example. Emacs integrates, it doesn't need to be integrated. It also has the best git interface I have ever seen (magit).
In a certain sense a subclass of Emacs users are the makers since it is a traditional Free Software model not backed by a major corporation. But that can be seen as an advantage since there is no single point of failure, and if GNU doesn't do a good job it can be forked, and has in the past (remember XEmacs?).
Practically speaking, the major disadvantage of Emacs is poor asynchronous/ multithreaded support. That's not an easy problem to solve but I do think it will get better eventually, and I don't find it a major impediment in day-to-day use.
Well, if you want a clear example of what I mean, Jetbrains makes a plugin for Kotlin for their IDE and another one for Eclipse. They don't make one for Emacs. The Emacs community has to make it (maybe they do, I don't know).
Look at any tool (except for GNU or Lisp stuff) and try to see how many of them have Emacs plugins made directly by the tool authors.
Eclipse, Visual Studio Code, Atom, etc., tend to have plugins made directly by the tool authors, in many cases.
In the author's defense, I came to the same conclusion using Dvorak when I was a teenager learning unix and programming. I switched back to QWERTY for a while, but around 8 years ago I learned about Colemak and switched and have been very happy with it since.
One thing I like about Colemak is that it is close enough to QWERTY that I can still type on QWERTY by looking at the keys and not look like a complete fool. Dvorak is so different that it completely rewires the brain and it's very difficult to switch between it and QWERTY. That's been my experience at least.
After switching back and forth between Dvorak and QWERTY for multi-hour work sessions maybe three times I found that I could do so instantly. I learned touch typing on QWERTY very young so maybe this is why it was easy for me. I often use a keyboard without any labels on the keys so it's always touch typing no matter the layout I pick. Also, I don't really get anxious about things that slow down my text entry, so I tolerated my own interface experiments without worry. I've coded and done data analysis using my thumbs on a cell phone. Switching keyboard layouts really isn't so bad by comparison. To each their own.
I find it surprising that much of the current effort in keyboard layouts is in finding things that are better than QWERTY but similar enough to it to not be scary. I am completely unmotivated by this. If someone could convince me that their layout was a kind of super-Dvorak, and scientifically enhanced the same features that I enjoy about it then I would try it out in a heartbeat.
What's interesting is that LaserDisc (the optical ancestors of DVDs that look like giant CDs) are analog. The video and audio streams are encoded with Pulse Width Modulation (PWM)