Skip to content

Commit c696fe9

Browse files
committed
add a few web dev and app dependency resources
1 parent 9a57e3c commit c696fe9

File tree

3 files changed

+38
-17
lines changed

3 files changed

+38
-17
lines changed

content/pages/02-development-environments/15-application-dependencies.markdown

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ installation so applications are easier for developers to create.
2222

2323
## Finding libraries
2424
Python libraries are stored in a central location known as the
25-
[Python Package Index](https://pypi.python.org/pypi) (PyPi). PyPi contains
25+
[Python Package Index](https://pypi.org/). PyPi contains
2626
search functionality with results weighted by usage and relevance based on
2727
keyword terms.
2828

@@ -121,6 +121,10 @@ further clarification.
121121

122122

123123
### Application dependency resources
124+
The following links provide advice on how to use Python packages as well
125+
as package your own dependencies for projects or consumption by other
126+
developers.
127+
124128
* [Python Packaging Is Good Now](https://glyph.twistedmatrix.com/2016/08/python-packaging.html)
125129
is a wonderfully written blog post. It provides historical context on why
126130
Python's code library packaging was painful for a long time, and what's
@@ -135,19 +139,17 @@ further clarification.
135139
is an amazing post that takes the reader from simple Python script
136140
into a complete Python package.
137141

138-
* [Jon Chu](https://twitter.com/jonathanchu) wrote a great introduction on
139-
[virtualenv and pip basics](http://jonathanchu.is/posts/virtualenv-and-pip-basics/).
140-
141142
* [A non-magical introduction to virtualenv and pip](http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python/)
142143
breaks down what problems these tools solve and how to use them.
143144

145+
* [There’s no magic: virtualenv edition](https://www.recurse.com/blog/14-there-is-no-magic-virtualenv-edition)
146+
breaks open the virtual environment "black box" to show you what the
147+
tool is doing when you use its commands.
148+
144149
* [Testing & Packaging](https://hynek.me/articles/testing-packaging/) examines
145150
a configuration for ensuring tests run against your code and how to
146151
properly package your project.
147152

148-
* [Tools of the modern Python hacker](http://www.clemesha.org/blog/modern-python-hacker-tools-virtualenv-fabric-pip/)
149-
contains detailed explanations of virtualenv, Fabric, and pip.
150-
151153
* Occasionally arguments about using Python's dependency manager versus
152154
one of Linux's dependency managers comes up. This provides
153155
[one perspective on that debate](http://notes.pault.ag/debian-python/).
@@ -158,16 +160,6 @@ further clarification.
158160
[left-pad NPM situation](https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c)
159161
that broke many dependent packages in the Node.js community.
160162

161-
* This Stack Overflow question details how to set up a
162-
[virtual environment for Python development](http://askubuntu.com/questions/244641/how-to-set-up-and-use-a-virtual-python-environment-in-ubuntu).
163-
164-
* Another Stack Overflow page answers
165-
[how to set environment variables when using virtualenv](http://stackoverflow.com/questions/9554087/setting-an-environment-variable-in-virtualenv).
166-
167-
* [Tips for using pip + virtualenv + virtualenvwrapper](http://mrcoles.com/tips-using-pip-virtualenv-virtualenvwrapper/)
168-
shows how to use shell aliases and postactivate virtualenvwrapper hooks to
169-
make life easier when using these tools.
170-
171163
* Major speed improvements were made in pip 7 over previous versions. Read
172164
[this article about the differences](https://lincolnloop.com/blog/fast-immutable-python-deployments/)
173165
and be sure to upgrade.
@@ -184,14 +176,33 @@ further clarification.
184176
and how to get around them until they are smoothed out by updates to the
185177
tools.
186178

179+
* [The Many Layers of Packaging](https://sedimental.org/the_packaging_gradient.html)
180+
goes up and down the packaging stack and even covers bits about virtual
181+
environments and security. It's well worth investing some time to read
182+
this post to get an overview of the many layers involved in dependency
183+
packaging.
184+
185+
* [How to Publish Your Package on PyPI](https://blog.jetbrains.com/pycharm/2017/05/how-to-publish-your-package-on-pypi/)
186+
is for developers who have created a code library they would like to
187+
share and make installable for other developers.
188+
187189

188190
### Open source app dependency projects
191+
[pip and venv](https://docs.python.org/3/library/venv.html) are part of
192+
Python 3's standard library as of version 3.3. However, there are numerous
193+
other open source libraries that can be helpful when managing application
194+
dependencies in your projects, as listed below.
195+
189196
* [Autoenv](https://github.com/kennethreitz/autoenv) is a tool for activating
190197
environment variables stored in a `.env` file in your projects' home
191198
directories. Environment variables aren't managed by virtualenv and although
192199
virtualenvwrapper has some hooks for handling them, it's often easiest to
193200
use a shell script or `.env` file to set them in a development environment.
194201

202+
* [Pipenv](https://pipenv.readthedocs.io/en/latest/) is a newer Python
203+
packaging and dependency management library that has seen some adoption
204+
in place of the standard `pip` library.
205+
195206
* [Pipreqs](https://github.com/bndr/pipreqs) searches through a project for
196207
dependencies based on imports. It then generates a `requirements.txt` file
197208
based on the libraries necessary to run those dependencies. Note though that

content/pages/04-web-development/00-web-development.markdown

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ many other topics. The following resources provide a range of perspectives
4848
and when combined together should get you oriented in the web development
4949
world.
5050

51+
* [How the Internet works](https://thesquareplanet.com/blog/how-the-internet-works/)
52+
is a must-read to get a quick overview of all the pieces that go into
53+
a network connection from one machine to another. The example explains how
54+
an email is sent and the story is just as useful for learning about other
55+
connections such as downloading a webpage.
56+
5157
* If you want to be a web developer it's important to know the foundational
5258
tools used to build websites and web applications. It is also important to
5359
understand that the core concepts such as
@@ -124,6 +130,10 @@ world.
124130
from disparate locations to see what the network speed is in fiber optic
125131
cables as a percentage of the speed of light.
126132

133+
* [The critical path: optimizing load times with the Chrome DevTools](https://www.lucidchart.com/techblog/2018/03/13/the-critical-path-optimizing-load-times-with-the-chromedev-tools/)
134+
provides a well-written explanation about using Chrome's developer
135+
features to improve the performance of your websites and web applications.
136+
127137
* [Three takeaways for web developers after two weeks of painfully slow Internet](https://medium.com/@zengabor/three-takeaways-for-web-developers-after-two-weeks-of-painfully-slow-internet-9e7f6d47726e)
128138
is a must-read for every web developer. Not everyone has fast Internet
129139
service, whether because they are in a remote part of the world or they're
116 KB
Loading

0 commit comments

Comments
 (0)