Skip to content

Commit 36f19f3

Browse files
committed
add a ton of new resources and stub out a few new pages such as WebRTC
1 parent ff85f0e commit 36f19f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+411
-88
lines changed

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

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -82,17 +82,19 @@ should include `requirements.txt` in the base directory of your project.
8282
Python projects' dependencies for a web application should be specified
8383
with pegged dependencies like the following:
8484

85-
django==1.6
86-
bpython==0.12
87-
django-braces==0.2.1
88-
django-model-utils==1.1.0
89-
logutils==0.3.3
90-
South==0.7.6
91-
requests==1.2.0
92-
stripe==1.9.1
93-
dj-database-url==0.2.1
94-
django-oauth2-provider==0.2.4
95-
djangorestframework==2.3.1
85+
```
86+
django==1.11.0
87+
bpython==0.12
88+
django-braces==0.2.1
89+
django-model-utils==1.1.0
90+
logutils==0.3.3
91+
South==0.7.6
92+
requests==1.2.0
93+
stripe==1.9.1
94+
dj-database-url==0.2.1
95+
django-oauth2-provider==0.2.4
96+
djangorestframework==2.3.1
97+
```
9698

9799
Pegged dependencies with precise version numbers or Git tags are important
98100
because otherwise the latest version of a dependency will be used. While
@@ -118,13 +120,17 @@ requirements.txt and setup.py, so read this
118120
further clarification.
119121

120122

121-
## Application dependency resources
123+
### Application dependency resources
122124
* [Python Packaging Is Good Now](https://glyph.twistedmatrix.com/2016/08/python-packaging.html)
123125
is a wonderfully written blog post. It provides historical context on why
124126
Python's code library packaging was painful for a long time, and what's
125127
been fixed to make building and installing application dependencies so
126128
much better.
127129

130+
* [Python Packaging User Guide](https://packaging.python.org/)
131+
provides a collection of resources to understand how to package and
132+
distribute Python code libraries.
133+
128134
* [Alice in Python projectland](https://veekaybee.github.io/2017/09/26/python-packaging/)
129135
is an amazing post that takes the reader from simple Python script
130136
into a complete Python package.
@@ -135,6 +141,10 @@ further clarification.
135141
* [A non-magical introduction to virtualenv and pip](http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python/)
136142
breaks down what problems these tools solve and how to use them.
137143

144+
* [Testing & Packaging](https://hynek.me/articles/testing-packaging/) examines
145+
a configuration for ensuring tests run against your code and how to
146+
properly package your project.
147+
138148
* [Tools of the modern Python hacker](http://www.clemesha.org/blog/modern-python-hacker-tools-virtualenv-fabric-pip/)
139149
contains detailed explanations of virtualenv, Fabric, and pip.
140150

@@ -143,10 +153,10 @@ further clarification.
143153
[one perspective on that debate](http://notes.pault.ag/debian-python/).
144154

145155
* [Open source trust scaling](http://lucumr.pocoo.org/2016/3/24/open-source-trust-scaling/)
146-
is a good piece for the Python community (and other communities) that is
147-
based on the
156+
is a good piece for the [Python community](/python-community.html)
157+
(and other programming communities) that is based on the
148158
[left-pad NPM situation](https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c)
149-
that broke many dependent packages in the Node.JS community.
159+
that broke many dependent packages in the Node.js community.
150160

151161
* This Stack Overflow question details how to set up a
152162
[virtual environment for Python development](http://askubuntu.com/questions/244641/how-to-set-up-and-use-a-virtual-python-environment-in-ubuntu).
@@ -162,8 +172,20 @@ further clarification.
162172
[this article about the differences](https://lincolnloop.com/blog/fast-immutable-python-deployments/)
163173
and be sure to upgrade.
164174

175+
* [Typosquatting programming language package managers](https://incolumitas.com/2016/06/08/typosquatting-package-managers/)
176+
shows how many packages on centralized dependency servers for Python,
177+
Node.js and Ruby can be vulnerable to "typosquatting" where a developer
178+
either confuses a fake package for the correct one or simply makes a
179+
typo when specifying her dependency list.
180+
181+
* [Perils of packaging](https://malramsay.com/post/perils_of_packaging/)
182+
covers several edge cases that come up when trying to put together
183+
pieces like Travis CI, PyPI and conda. The post walks through the errors
184+
and how to get around them until they are smoothed out by updates to the
185+
tools.
165186

166-
## Open source app dependency projects
187+
188+
### Open source app dependency projects
167189
* [Autoenv](https://github.com/kennethreitz/autoenv) is a tool for activating
168190
environment variables stored in a `.env` file in your projects' home
169191
directories. Environment variables aren't managed by virtualenv and although
@@ -176,10 +198,18 @@ further clarification.
176198
while this could come in handy with a legacy project, the version numbers
177199
for those libraries will not be generated with the output.
178200

201+
* [pip-check](https://github.com/bartTC/pip-check) presents a nicely-formatted
202+
list of all your installed dependencies and the status of whether or not
203+
updates are available for each of them.
204+
205+
* [pip-name](https://github.com/prakashdanish/pip-name) is a straightforward
206+
library that looks up package names on PyPI and tells you whether or not
207+
the library name is already taken.
208+
179209

180-
## Application dependencies learning checklist
210+
### Application dependencies learning checklist
181211
1. Ensure the libraries your web application depends on are all captured in
182-
a requirement.txt file with pegged versions.
212+
a `requirement.txt` file with pegged versions.
183213

184214
1. An easy way to capture currently installed dependencies is with the
185215
`pip freeze` command.

content/pages/03-data/01-databases.markdown

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ provider.
159159
operations we often take for granted when using an established relational
160160
database such as PostgreSQL.
161161

162+
* [Select Star SQL](https://selectstarsql.com/) is an interactive book for
163+
learning SQL. Highly recommended even if you feel you will only be working
164+
with an [object-relational mapper](/object-relational-mappers-orms.html)
165+
on your projects because you never know when you will need to drop into
166+
SQL to improve a generated query's slow performance.
167+
162168
* [Why I Love Databases](https://medium.com/@jeeyoungk/why-i-love-databases-1d4cc433685f)
163169
is a great read on the CAP Theorem, distributed systems and other topics
164170
that are at the core of database theory and implementation. Well worth

content/pages/03-data/05-object-relational-mappers.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ There are numerous ORM implementations written in Python, including
138138
1. [The Django ORM](/django-orm.html)
139139
1. [PonyORM](/pony-orm.html)
140140
1. [SQLObject](http://sqlobject.org/)
141+
1. [Tortoise ORM](https://tortoise-orm.readthedocs.io/en/latest/)
141142

142143
There are other ORMs, such as Canonical's
143144
[Storm](https://storm.canonical.com/), but most of them do not appear to

content/pages/03-data/18-data-visualization.markdown

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ easier for humans to see patterns, trends and other useful information.
1313

1414

1515
### Data visualization resources
16+
* [Data visualization, from 1987 to today](https://medium.economist.com/data-visualisation-from-1987-to-today-65d0609c6017)
17+
is a wonderful reference about the pre-computer age era of visualization
18+
which was a combination of cartography, art and statistics rather than
19+
any cohesive field as it is often seen today. The images showing how
20+
people worked with paper to build their visuals add fantastic context to
21+
the story.
1622

1723
* [One Chart, Twelve Charting Libraries](https://lisacharlotterost.github.io/2016/05/17/one-chart-code/)
1824
compares how charting libraries such as [D3.js](/d3-js.html),

content/pages/04-web-development/02-django.markdown

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ behind batteries-included is that the common functionality for building
1414
web applications should come with the framework instead of as separate
1515
libraries.
1616

17-
<a href="http://www.djangoproject.com/" style="border: none;"><img src="/img/logos/django.png" width="100%" alt="Official Django logo. Trademark Django Software Foundation." class="technical-diagram"></a>
17+
<a href="http://www.djangoproject.com/" style="border: none;"><img src="/img/logos/django.png" width="100%" alt="Official Django logo. Trademark Django Software Foundation." class="shot"></a>
1818

1919
For example,
2020
[authentication](https://docs.djangoproject.com/en/dev/topics/auth/),
@@ -136,6 +136,12 @@ since then.
136136
will be used by more than a single customer so their data needs to be
137137
properly separated.
138138

139+
* [How to Create Custom Django Management Commands](https://simpleisbetterthancomplex.com/tutorial/2018/08/27/how-to-create-custom-django-management-commands.html)
140+
explains how to expand the default `manage.py` commands list with your
141+
own custom commands in your projects. The tutorial has a bunch of great
142+
examples with expected output to make it easy to follow along and learn
143+
while you work through the post.
144+
139145
* Luke Plant writes about
140146
[his approach to class based views](http://lukeplant.me.uk/blog/posts/my-approach-to-class-based-views/) (CBVs),
141147
which often provoke heated debate in the Django community for whether they

content/pages/04-web-development/15-web-design.markdown

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,9 @@ width.
6464
[blog post series on building a browser engine](http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)
6565
that will show you how to build a simple rendering engine.
6666

67+
* [Defining Colors in CSS](https://pineco.de/defining-colors-in-css/)
68+
presents how to define color in your
69+
[Cascading Style Sheets (CSS)](/cascading-style-sheets.html) and breaks
70+
down the differences between specifying predefined color values,
71+
hexadecimal values, red-green-blue (RGB) and
72+
Hue-Saturation-Lightness (HSL).

content/pages/04-web-development/17-css.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ web application's design.
126126
* [Can I Use...](http://caniuse.com/) is a compatibility table that shows
127127
which versions of browsers implement specific CSS features.
128128

129+
* The [Web Design Museum](https://www.webdesignmuseum.org/) is an amazing
130+
look back at how web design has evolved over the past 25+ years. Some of
131+
the designs can still be seen in their current site's presentation such
132+
as the top navigation of Apple's 2001 site.
133+
129134

130135
## CSS learning checklist
131136
1. Create a simple HTML file with basic elements in it. Use the

content/pages/04-web-development/24-javascript.markdown renamed to content/pages/04-web-development/23-javascript.markdown

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
title: JavaScript
22
category: page
33
slug: javascript
4-
sortorder: 0424
4+
sortorder: 0423
55
toc: False
66
sidebartitle: JavaScript
77
meta: Learn about JavaScript and MVC frameworks for web applications on Full Stack Python.
@@ -49,11 +49,7 @@ which is defined by the
4949
[Ecma International Standards Body](http://www.ecma-international.org/default.htm).
5050

5151

52-
## JavaScript resources
53-
* [Frontend tooling in 2015](http://ashleynolan.co.uk/blog/frontend-tooling-survey-2015-results)
54-
shows the results of a survey for what frontend developers are using for
55-
CSS pre- and post-processing and other build steps.
56-
52+
### JavaScript resources
5753
* [How Browsers Work](http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/)
5854
is a great overview of both JavaScript and CSS as well as how pages are
5955
rendered in a browser.
@@ -72,17 +68,14 @@ which is defined by the
7268
* [Unheap](http://www.unheap.com/) is an amazing collection of reusable JQuery
7369
plugins for everything from navigation to displaying media.
7470

75-
* [The State of JavaScript in 2015](http://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/)
76-
is an opinion piece about favoring small, single-purpose JavaScript libraries
77-
over larger frameworks due to churn in the ecosystem.
78-
79-
* [The Modern JavaScript Developer’s Toolbox ](http://www.infoq.com/articles/modern-javascript-toolbox)
71+
* [The Modern JavaScript Developer's Toolbox](http://www.infoq.com/articles/modern-javascript-toolbox)
8072
provides a high-level overview of tools frequently used on the client and
8173
server side for developers using JavaScript in their web applications.
8274

8375
* [Developing a Single Page App with Flask and Vue.js](https://testdriven.io/developing-a-single-page-app-with-flask-and-vuejs) step-by-step walkthrough of how to set up a basic CRUD app with Vue and Flask.
8476

85-
## JavaScript learning checklist
77+
78+
### JavaScript learning checklist
8679
1. Create a simple HTML file with basic elements in it. Use the
8780
``python -m SimpleHTTPServer`` command to serve it up. Create a
8881
``<script type="text/javascript"></script>``
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
title: React
2+
category: page
3+
slug: react
4+
sortorder: 0424
5+
toc: False
6+
sidebartitle: React
7+
meta: Learn about React and JavaScript frameworks for web applications on Full Stack Python.
8+
9+
10+
# React
11+
[React](https://reactjs.org/) is a [JavaScript](/javascript.html) web
12+
application framework for building rich user interfaces that run in web
13+
browsers.
14+
15+
<a href="https://reactjs.org/" style="border:none"><img src="/img/logos/react.png" width="100%" alt="React framework logo." class="shot"></a>
16+
17+
18+
<div class="well see-also">React is an implementation of the <a href="/javascript.html">JavaScript frameworks</a> concept. Learn how these pieces fit together in the <a href="/web-development.html">web development</a> chapter or view the <a href="/table-of-contents.html">table of contents</a> for all topics.</div>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
title: Vue.js
2+
category: page
3+
slug: vuejs
4+
sortorder: 0425
5+
toc: False
6+
sidebartitle: Vue.js
7+
meta: Learn about Vue.js and other JavaScript frameworks for web applications on Full Stack Python.
8+
9+
10+
# Vue.js
11+
[Vue.js](https://vuejs.org/) is a [JavaScript](/javascript.html) web
12+
application framework for building rich apps that run in web browsers.
13+
14+
<a href="https://vuejs.org/" style="border:none"><img src="/img/logos/vuejs-wide.png" width="100%" alt="Vue.js logo." class="shot"></a>
15+
16+
<div class="well see-also">Vue.js is an implementation of the <a href="/javascript.html">JavaScript frameworks</a> concept. Learn how these pieces fit together in the <a href="/web-development.html">web development</a> chapter or view the <a href="/table-of-contents.html">table of contents</a> for all topics.</div>

0 commit comments

Comments
 (0)