Skip to content

Commit 9b717c5

Browse files
committed
merging scipy and numpy pages, with redirects. new bash resources
1 parent 9c8d990 commit 9b717c5

9 files changed

Lines changed: 125 additions & 71 deletions

File tree

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,13 @@ during Python software development as part of a programmer's
5555
* [Safe ways to do things in bash](https://github.com/anordal/shellharden/blob/master/how_to_do_things_safely_in_bash.md)
5656
shows you how to not shoot yourself in the foot by using safe coding
5757
practices with your shell scripts.
58+
59+
* The
60+
[Bash Infinity Framework](https://invent.life/project/bash-infinity-framework)
61+
[source code](https://github.com/niieani/bash-oo-framework) provides
62+
boilerplate and a standard library for Bash projects so they are easier
63+
to read and maintain. If you have ever tried to read someone else's
64+
Bash scripts or even your own after setting them aside for a couple of
65+
months, you know that anything which makes readability better is a major
66+
step up from vanilla Bash.
67+

‎content/pages/03-data/18-numpy.markdown‎

Lines changed: 0 additions & 44 deletions
This file was deleted.

content/pages/03-data/19-scipy.markdown renamed to content/pages/03-data/18-scipy-numpy.markdown

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
1-
title: SciPy
1+
title: SciPy and NumPy
22
category: page
3-
slug: scipy
4-
sortorder: 0319
3+
slug: scipy-numpy
4+
sortorder: 0318
55
toc: False
6-
sidebartitle: SciPy
6+
sidebartitle: SciPy & NumPy
77
meta: SciPy is an umbrella project for many open source data analysis libraries such as NumPy, pandas and Matplotlib.
88

99

10-
# SciPy
10+
# SciPy and NumPy
1111
[SciPy](https://www.scipy.org/) is a collection of open source code libraries
1212
for math, science and engineering. [NumPy](/numpy.html),
1313
[Matplotlib](/matplotlib.html) and [pandas](/pandas.html) are libraries
1414
that fall under the SciPy project umbrella.
1515

1616
<img src="/img/logos/scipy.png" width="100%" alt="SciPy project logo.">
1717

18+
[NumPy](http://www.numpy.org/) ([source code](https://github.com/numpy/numpy))
19+
is a Python code library that adds scientific computing capabilities such as
20+
N-dimensional array objects, FORTRAN and C++ code integration, linear algebra
21+
and Fourier transformations. NumPy serves as a required dependency for many
22+
other scientific computing packages such as [pandas](/pandas.html).
23+
24+
<img src="/img/logos/numpy.jpg" width="100%" alt="NumPy logo.">
25+
1826
[Blaze](http://blaze.pydata.org/) is a similar, but separate, ecosystem
1927
with additional tools for wrangling, cleaning, processing and analyzing data.
2028

@@ -43,3 +51,31 @@ for the SciPy ecosystem:
4351
incompatible in only a few years. The issue is that many science projects
4452
last decades and therefore cannot follow the rate of change as easily
4553
as typical software development projects.
54+
55+
56+
### NumPy resources
57+
* [From Python to NumPy](http://www.labri.fr/perso/nrougier/from-python-to-numpy/)
58+
is an awesome resource that shows how to use your basic
59+
Python knowledge to learn how to do vectorization with NumPy.
60+
61+
* [101 NumPy Exercises for Data Analysis](https://www.machinelearningplus.com/101-numpy-exercises-python/)
62+
63+
* [NumPy: creating and manipulating numerical data](http://www.scipy-lectures.org/intro/numpy/index.html)
64+
65+
* [Python NumPy Array Tutorial](https://www.datacamp.com/community/tutorials/python-numpy-tutorial)
66+
is a starter tutorial specifically focused on using and working
67+
with NumPy's powerful arrays.
68+
69+
* [Beyond Numpy Arrays in Python](https://matthewrocklin.com/blog//work/2018/05/27/beyond-numpy)
70+
is a predecessor to a
71+
[Numpy Enhancement Proposal](https://github.com/numpy/numpy/pull/11189)
72+
that recommends how to prepare the scientific computing ecosystme for
73+
GPU, distributed and sparse arrays.
74+
75+
76+
### Example NumPy code
77+
* [SmoothLife](https://github.com/duckythescientist/SmoothLife) is an
78+
implementation of [Conway's Game of Life](https://bitstorm.org/gameoflife/)
79+
using NumPy. The project uses a continuous space rather than the
80+
traditional discrete board.
81+

‎content/pages/04-web-development/38-testing.markdown‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,19 @@ correctness.
4848
shows how to set unit tests and integration tests for a Flask example
4949
application.
5050

51+
* [BDD Testing a Restful Web Application in Python](https://semaphoreci.com/community/tutorials/bdd-testing-a-restful-web-application-in-python)
52+
is an introduction to behavior-driven development (BDD) and uses
53+
a [Flask](/flask.html) web application as an example project for
54+
learning.
55+
56+
* [Testing, for people who hate testing](https://eev.ee/blog/2016/08/22/testing-for-people-who-hate-testing/)
57+
provides examples for how to improve your testing environment such
58+
as using a new test harness and getting your test suite to run fast.
59+
60+
* [Getting started with Pytest](https://jacobian.org/writing/getting-started-with-pytest/)
61+
goes over some code challenges as examples for how to use Pytest in
62+
your own projects.
63+
5164
* [Good test, bad test](http://late.am/post/2015/04/20/good-test-bad-test.html)
5265
explains the difference between a "good" test case and one that is not
5366
as useful. Along the way the post breaks down some myths about common
@@ -59,6 +72,9 @@ correctness.
5972
* Google has a [testing blog](http://googletesting.blogspot.com/) where
6073
they write about various aspects of testing software at scale.
6174

75+
* [A beginner's guide to Python testing](https://miguelgfierro.com/blog/2018/a-beginners-guide-to-python-testing/)
76+
covers test-driven development for unit, integration and smoke tests.
77+
6278
* Still confused about the difference between unit, functional and
6379
integration tests? Check out this
6480
[top answer on Stack Overflow](http://stackoverflow.com/questions/4904096/whats-the-difference-between-unit-functional-acceptance-and-integration-test)
@@ -70,3 +86,44 @@ correctness.
7086
over standard unittest testing.
7187

7288
* [Distributed Testing with Selenium Grid and Docker](https://testdriven.io/distributed-testing-with-selenium-grid) shows how to distribute automated, browser tests with Selenium Grid and Docker Swarm. It also looks at how to run tests against a number of browsers and automate the provisioning and deprovisioning of machines to keep costs down.
89+
90+
* [Principles of Automated Testing](http://www.lihaoyi.com/post/PrinciplesofAutomatedTesting.html)
91+
explains how to prioritize what to test, goes through some levels of
92+
testing from [unit](/unit-testing.html) to
93+
[integration](/integration-testing.html) and examines when to use example
94+
and bulk tests.
95+
96+
97+
### Mocking resources
98+
Mocking allows you to isolate parts of your code under test and avoid
99+
areas that are not critical to the tests you are writing. For example,
100+
you may want to test how you handle text message responses but do not
101+
want to actually receive text messages in your application. You can
102+
mock a part of the code that would provide a happy-path scenario so
103+
you can run your tests properly. The following resources show you how to
104+
use mocks in your test cases.
105+
106+
* [Getting Started with Mocking in Python](https://semaphoreci.com/community/tutorials/getting-started-with-mocking-in-python)
107+
provides a whole code example based on a blog project that shows
108+
how to use `mock` when testing.
109+
110+
* [Python Mocking 101: Fake It Before You Make It](https://blog.fugue.co/2016-02-11-python-mocking-101.html)
111+
explains what mocking is and is not, and shows how to use the `patch`
112+
function to accomplish it in your project.
113+
[Revisiting Unit Testing and Mocking in Python](https://blog.fugue.co/2017-07-18-revisiting-unit-testing-and-mocking-in-python.htmlZ)
114+
is a follow-up post that expands upon using the `patch` function
115+
along with dependency injection.
116+
117+
* [Mocks and Monkeypatching in Python](https://semaphoreci.com/community/tutorials/mocks-and-monkeypatching-in-python)
118+
uses the `mock` and `monkeypatch` tools to show how to mock your
119+
test cases.
120+
121+
* [Mock yourself, not your tests](http://hernantz.github.io/mock-yourself-not-your-tests.html)
122+
examines when mocks are necessary and when they are not as useful
123+
so you can avoid them in your test cases.
124+
125+
* [Mocking Redis & Expiration in Python](http://malexandre.fr/2017/10/08/mocking-redis--expiration-in-python/)
126+
is a specific scenario where you would want to test your
127+
[Redis](/redis.html)-dependent code but prefer to mock it rather than
128+
ensure an installation and connection are present whenever you run
129+
your tests.

‎redirects/numpy.html‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="refresh" content="0; url=https://www.fullstackpython.com/scipy-numpy.html">
5+
</head>
6+
<body>
7+
</body>
8+
</html>

‎redirects/scipy.html‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="refresh" content="0; url=https://www.fullstackpython.com/scipy-numpy.html">
5+
</head>
6+
<body>
7+
</body>
8+
</html>

‎theme/templates/choices/scipy.html‎

Lines changed: 0 additions & 18 deletions
This file was deleted.

‎theme/templates/table-of-contents.html‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,7 @@ <h4>3.3 <a href="/no-sql-datastore.html">NoSQL</a></h4>
6868
<div class="tc"><a href="/neo4j.html">Neo4j</a></div>
6969
<h4>3.4 <a href="/data-analysis.html">Data analysis</a></h4>
7070
<div class="tc"><a href="/pandas.html">pandas</a></div>
71-
<div class="tc"><a href="/numpy.html">NumPy</a></div>
72-
<div class="tc"><a href="/scipy.html">SciPy</a></div>
71+
<div class="tc"><a href="/scipy-numpy.html">SciPy & Numpy</a></div>
7372
<h4>3.5 <span class="sn">Data visualization</span></h4>
7473
<div class="tc"><a href="/bokeh.html">Bokeh</a></div>
7574
<div class="tc"><a href="/d3-js.html">d3.js</a></div>
@@ -111,7 +110,6 @@ <h4>4.6 <a href="/task-queues.html">Task queues</a></h4>
111110
<div class="tc"><a href="/celery.html">Celery</a></div>
112111
<div class="tc"><a href="/redis-queue-rq.html">Redis Queue (RQ)</a></div>
113112
<div class="tc"><a href="/dramatiq.html">Dramatiq</a></div>
114-
<div class="tc sn">Huey</div>
115113
<h4>4.7 <a href="/static-site-generator.html">Static site generators</a></h4>
116114
<div class="tc"><a href="/pelican.html">Pelican</a></div>
117115
<div class="tc"><a href="/lektor.html">Lektor</a></div>
@@ -192,7 +190,6 @@ <h4>5.10 <a href="/serverless.html">Serverless Architectures</a></h4>
192190
<h3>6. <a href="/devops.html">DevOps</a></h3>
193191
<h4>6.1 <a href="/monitoring.html">Monitoring</a></h4>
194192
<div class="tc sn">Prometheus</div>
195-
<div class="tc sn">Service Canary</div>
196193
<div class="tc"><a href="/rollbar.html">Rollbar</a></div>
197194
<div class="tc sn">Sentry</div>
198195
<div class="tc sn">Scout</div>

0 commit comments

Comments
 (0)