Skip to content

Commit cde94bd

Browse files
committed
new resources on deployment, security and shell scripting
1 parent 67722c2 commit cde94bd

File tree

12 files changed

+98
-7
lines changed

12 files changed

+98
-7
lines changed

content/pages/01-introduction/08-best-python-resources.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,10 @@ the [best Python videos](/best-python-videos.html) page.
187187
awesome-python although instead of just a Git repository this site is
188188
in the Read the Docs format.
189189

190+
* [Hacker News Tools of the Trade](https://github.com/cjbarber/ToolsOfTheTrade)
191+
is not specific to Python but almost all of the tools and services are
192+
useful to building software projects.
193+
190194

191195
## Podcasts
192196
Take a look at the [best Python podcasts](/best-python-podcasts.html)

content/pages/02-development-environments/06-jupyter-notebook.markdown

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,12 @@ like advanced interactive visualizations.
171171
* [Ansible-jupyter-kernel](https://github.com/ansible/ansible-jupyter-kernel)
172172
is a kernel that allows you to run [Ansible](/ansible.html) tasks and
173173
playbooks from within your Jupyter environment.
174+
175+
* [The Notebook Wars](https://yihui.name/en/2018/09/notebook-war/) is not a
176+
tutorial but instead points to the weaknesses that become apparent when
177+
using Jupyter and the current generation of notebook projects. The
178+
article raises many good points about barriers to entry although you
179+
could also argue some of these issues have been mitigated by Jupyter, just
180+
not as much as some people would like to see. Overall there is a lot to
181+
enjoy reading here and reflect on so that the community can continue making
182+
Jupyter a fantastic environment for development.

content/pages/02-development-environments/08-bash-shell.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,8 @@ during Python software development as part of a programmer's
7373
is a guide on using using Python for administrative scripting, including
7474
what to do about replacing invaluable command line tools such as `awk`,
7575
`sed` and `grep`.
76+
77+
* [Using Aliases to Speed Up Your Git Workflow](https://dev.to/robertcoopercode/using-aliases-to-speed-up-your-git-workflow-2f5a)
78+
has a bunch of shell aliases that make it easier for you to execute
79+
complicated or uncommon [Git](/git.html) commands.
80+

content/pages/02-development-environments/10-powershell.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,7 @@ of a Python programmer's
4545
Functions. The language is only in experimental mode on Azure Functions
4646
but could be useful if you have a bunch of existing scripts that you want
4747
to use on the [serverless](/serverless.html) platform.
48+
49+
* [PowerShell Core support in AWS Lambda](https://aws.amazon.com/blogs/developer/announcing-lambda-support-for-powershell-core/)
50+
is an announcement post that PowerShell can be used in AWS Lambda Functions
51+
along with how to get started.

content/pages/03-data/06-sqlalchemy.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ your application's code with the SQLAlchemy library.
119119
[morepath-sqlalchemy demo](https://pypi.org/project/morepath-sqlalchemy/)
120120
that serves as a working example.
121121

122+
* [Merging Django ORM with SQLAlchemy for Easier Data Analysis](https://djangostars.com/blog/merging-django-orm-with-sqlalchemy-for-easier-data-analysis/)
123+
has details on why, how and when you may want to use SQLAlchemy to
124+
augment the [Django ORM](/django-orm.html).
125+
122126

123127
### SQLAlchemy resources
124128
The best way to get comfortable with SQLAlchemy is to dig in and write

content/pages/03-data/08-django-orm.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ that have been added throughout the project's history.
9090
avoid with `ForeignKey` field relationships, handling IDs and many other
9191
edge cases that come up when frequently working with Django's ORM.
9292

93+
* [Merging Django ORM with SQLAlchemy for Easier Data Analysis](https://djangostars.com/blog/merging-django-orm-with-sqlalchemy-for-easier-data-analysis/)
94+
provides rationale for using the [SQLAlchemy](/sqlalchemy.html) ORM
95+
instead of Django's default ORM in some situations.
96+
9397
* [Working with huge data sets in Django](https://blog.labdigital.nl/working-with-huge-data-sets-in-django-169453bca049)
9498
explains how to slice the data you retrieve by query into pages and then
9599
use `prefetch_related` on a subset of the data rather than your whole

content/pages/03-data/12-mongodb.markdown

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ security controls so make sure to lock down your instances.
6262
installing and using MongoDB on your own instance. The post covers
6363
authentication, SSL and firewalls.
6464

65+
* [Securing MongoDB using Let's Encrypt certificate](https://zohaib.me/securing-mongodb-using-lets-encrypt/)
66+
gives a configuration that encrypts that traffic coming from and
67+
going to your MongoDB instances using free
68+
[Let's Encrypt certificates](https://letsencrypt.org/).
69+
6570

6671
### Python with MongoDB resources
6772
MongoDB is straightforward to use in a Python application when a driver
@@ -88,3 +93,9 @@ configure and start using MongoDB with Python.
8893
* [Python and MongoDB](https://talkpython.fm/episodes/show/2/python-and-mongodb)
8994
on the Talk Python to Me podcast has a great interview with the
9095
MongoDB Python driver maintainer.
96+
97+
* [PyMongo Monday: Setting Up Your PyMongo Environment](https://www.mongodb.com/blog/post/pymongo-monday-setting-up-your-pymongo-environment)
98+
is an introduction to using MongoDB with Python code. This first
99+
part of the series shows how to set up the
100+
[development environment](/development-environment.html) required
101+
for working with Mongo.

content/pages/03-data/16-pandas.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@ is a data structures and analysis library.
3434
is a good tutorial on removing sensitive data from your unfiltered
3535
data sets.
3636

37+
* [Analyzing a photographer's flickr stream using pandas](https://www.turbowhale.com/posts/analyze_flickr_stream_pandas/)
38+
explains how the author grabbed a bunch of Flickr data using the
39+
[flickr-api](https://github.com/alexis-mignon/python-flickr-api) library
40+
then analyzed the EXIF data in the photos using pandas.
41+

content/pages/04-web-development/43-webrtc.markdown

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ browser) and server (usually a [web server](/web-servers.html)).
4545
great overview of WebRTC and the new security concerns it can bring as it
4646
is integrated into more web applications.
4747

48+
* [How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC](https://blog.discordapp.com/how-discord-handles-two-and-half-million-concurrent-voice-users-using-webrtc-ce01c3187429)
49+
provides detailed insight into the what and why of the highly scalable
50+
[Discord](https://discordapp.com/) technical architecture that relies
51+
upon WebRTC for communication. There are a bunch of great examples here
52+
for why some of the service must be centralized (to prevent client IP
53+
addresses from leaking to other clients) while others are decentralized
54+
to assist with scaling the number of possible connections.
55+
4856
* [Architectures for a kickass WebRTC application](https://www.youtube.com/watch?v=m9QxBc0OeoI)
4957
is a video of a technical talk that covers some of the tools and protocols
5058
that can be used to create your WebRTC projects and why you would choose

content/pages/04-web-development/55-web-app-security.markdown

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,42 @@ treatment, such as cross-site scripting (XSS), SQL injection, cross-site
1414
request forgery and usage of public-private keypairs.
1515

1616

17-
## Security open source projects
17+
### Security tools
1818
* [Bro](http://www.bro.org/) is a network security and traffic monitor.
1919

20-
* [quick NIX secure script](https://github.com/marshyski/quick-secure) for
21-
securing Linux distributions.
22-
23-
* [lynis](https://github.com/CISOfy/lynis) is a really cool security audit
24-
tool that can be run as a shell script on a Linux system to find out
20+
* [lynis](https://cisofy.com/lynis/)
21+
([source code](https://github.com/CISOfy/lynis)) is a security
22+
audit tool that can run as a shell script on a Linux system to find out
2523
its vulnerabilities so that you can fix them instead of allowing them
2624
to be exploited by malicious actors.
2725

28-
## HTTPS resources
26+
* [Charles](https://www.charlesproxy.com/) is an HTTP proxy for inspecting
27+
headers, requests and responses for all traffic that flows through it.
28+
29+
* [quick NIX secure script](https://github.com/marshyski/quick-secure) for
30+
securing Linux distributions.
31+
32+
* [TLS Observatory](https://github.com/mozilla/tls-observatory) provides
33+
a suite of security tools for analyzing and inspecting Transport Layer
34+
Security (TLS) services.
35+
36+
* [WIG](https://github.com/6e726d/WIG) contains tools for gathering wireless
37+
data via Wifi protocols.
38+
39+
40+
### Specific vulnerabilities
41+
* [httpoxy](https://httpoxy.org/) is a set of vulnerabilities that can affect
42+
Python web application servers via HTTP requests.
43+
44+
* [Heartbleed](http://heartbleed.com/) is a vulnerability in OpenSSL
45+
implementations that must be patched for any systems you run otherwise
46+
you are at serious risk for data leakage.
47+
48+
* [Meltdown and Spectre](https://meltdownattack.com/) are x86 architecture
49+
problems caused by exploiting CPU branch-prediction implementations.
50+
51+
52+
### HTTPS resources
2953
* [How does HTTPS actually work?](http://robertheaton.com/2014/03/27/how-does-https-actually-work/)
3054
is a well-written overview of the protocol including certificates,
3155
signatures, signing and related topics.
@@ -75,6 +99,11 @@ securing Linux distributions.
7599
[cheat sheets for security](https://www.owasp.org/index.php/Cheat_Sheets)
76100
topics.
77101

102+
* [The SaaS CTO Security Checklist](https://cto-security-checklist.sqreen.io/)
103+
is an awesome list of steps for securing your infrastructure and employees
104+
as well as what stage and size company it is recommended that you put those
105+
procedures in place.
106+
78107
* This page contains a
79108
[fantastic curated list of security reading material](http://dfir.org/?q=node/8/)
80109
from beginning to advanced topics.
@@ -135,6 +164,9 @@ securing Linux distributions.
135164
how those attacks work is important in keeping your users' connections
136165
secure.
137166

167+
* [Let's Encrypt at Scale](https://engineering.autotrader.co.uk/2018/09/04/letsencrypt-at-scale.html)
168+
shows an implementation for securing thousands of sites with SSL
169+
certificates to support HTTPS everywhere.
138170

139171
## Web security learning checklist
140172
1. Read and understand the major web application security flaws that are

0 commit comments

Comments
 (0)