Skip to content

Commit 5ee9282

Browse files
committed
add new resources and update changelog
1 parent a9db729 commit 5ee9282

File tree

5 files changed

+60
-1
lines changed

5 files changed

+60
-1
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ application software stacks and backend databases. Any of these
3333
configurations can be a valid option depending on what type of application
3434
you are coding.
3535

36-
<img src="/img/visuals/sqlalchemy-orm-example.png" width="100%" alt="Example SQLAlchemy configurations with different web frameworks." class="technical-diagram"></a>
36+
<img src="/img/visuals/sqlalchemy-orm-example.png" width="100%" alt="Example SQLAlchemy configurations with different web frameworks." class="shot"></a>
3737

3838
A benefit many developers enjoy with SQLAlchemy is that it allows them
3939
to write Python code in their project to map from the database schema
@@ -123,6 +123,9 @@ your application's code with the SQLAlchemy library.
123123
has details on why, how and when you may want to use SQLAlchemy to
124124
augment the [Django ORM](/django-orm.html).
125125

126+
* [Building a Simple Birthday App with Flask-SQLAlchemy](https://pybit.es/flask-sqlalchemy-bday-app.html)
127+
combines SQLAlchemy with Flask to create a birthday reminder application.
128+
126129

127130
### SQLAlchemy resources
128131
The best way to get comfortable with SQLAlchemy is to dig in and write
@@ -154,6 +157,10 @@ edge cases.
154157
[SQLAlchemy tutorial](https://overiq.com/sqlalchemy/101/intro-to-sqlalchemy/) provides
155158
a slew of code examples that cover the basics for working with SQLAlchemy.
156159

160+
* [Implementing User Comments with SQLAlchemy](https://blog.miguelgrinberg.com/post/implementing-user-comments-with-sqlalchemy)
161+
gives a wonderful walkthrough of how to build your own online commenting
162+
system in Python using SQLAlchemy.
163+
157164
* [SQLAlchemy and data access in Python](https://talkpython.fm/episodes/show/5/sqlalchemy-and-data-access-in-python)
158165
is a podcast interview with the creator of SQLAlchemy that covers the
159166
project's history and how it has evolved over the past decade.

content/pages/03-data/10-no-sql-datastore.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ representing a person could have a property of "female" or "male".
183183
relational systems and what the Consistency, Availability and
184184
Partition-Tolerance (CAP) Theorem means.
185185

186+
* [NoSQL Explained](https://www.mongodb.com/nosql-explained) is a good
187+
high-level overview of considerations and features when choosing a type
188+
of NoSQL database compared to a relational database.
189+
186190
* [CAP Theorem overview](http://natishalom.typepad.com/nati_shaloms_blog/2010/10/nocap.html)
187191
presents the basic constraints all databases must trade off in operation.
188192

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ command line and query language.
4141
operate that were non-intuitive to developers who are new to using this
4242
database.
4343

44+
* [On MongoDB](https://www.nemil.com/mongo/index.html) is not a tutorial
45+
but instead discusses the culture and adoption patterns around how MongoDB
46+
became such a common NoSQL database. This is a must read to understand
47+
both the strengths and many weaknesses Mongo has despite what you may
48+
read in other introductory tutorials.
49+
4450

4551
### MongoDB security
4652
NoSQL databases can be a weak spot in a production deployment environment,

content/pages/04-web-development/54-slack.markdown

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,42 @@ for programmatically interacting with its messaging service.
3939
a Python tutorial but it provides a crazy hack for communicating
4040
with Slack using a Super Nintendo.
4141

42+
* [Hacking Slack accounts: As easy as searching GitHub](https://arstechnica.com/information-technology/2016/04/hacking-slack-accounts-as-easy-as-searching-github/)
43+
explains how secret Slack API keys are often committed to public GitHub
44+
repositories which allows malicious actors to easily break into an
45+
organization's messaging systems. Secret credentials in public repositories
46+
is a problem for any API and it is a particular problem for ones that are
47+
critical to a business' private communications.
48+
49+
* [Serverless Slash Commands with Python](https://renzo.lucioni.xyz/serverless-slash-commands-with-python/)
50+
shows how to build a [serverless](/serverless.html) [Flask](/flask.html)
51+
plus Zappa framework web app that is hosted on [AWS Lambda](/aws-lambda.html)
52+
and can use the Slack API.
53+
54+
* [Hacking Slack using postMessage and WebSocket-reconnect to steal your precious token](https://labs.detectify.com/2017/02/28/hacking-slack-using-postmessage-and-websocket-reconnect-to-steal-your-precious-token/)
55+
examines a bug that the author found in Slack's WebSockets reconnection
56+
operation that he reported to Slack. Slack fixed the issue and paid him a
57+
bug bounty for his work.
58+
59+
* [Posting messages to Slack using incoming webhooks and Python3 Requests API](https://notes.ayushsharma.in/2017/09/posting-messages-to-slack-using-incoming-webhooks-and-python-requests-api)
60+
is a short script that uses the [Requests](https://pypi.org/project/requests/)
61+
library instead of the Slack-provided Python helper libraries to interact
62+
with the API.
63+
64+
* [Build a Google Analytics Slack Bot with Python](https://www.twilio.com/blog/2018/03/google-analytics-slack-bot-python.html)
65+
walks through creating a bot that posts Google Analytics data into
66+
Slack channels by combining the Slack and Google APIs.
67+
68+
69+
### Example Slack bots
70+
* [python-rtmbot](https://github.com/slackapi/python-rtmbot) is the
71+
Slack-provided library for working with the Slack API and
72+
[WebSockets](/websockets.html) connection.
73+
74+
* [slack-starterbot](https://github.com/mattmakai/slack-starterbot)
75+
76+
* [slack-api-python-examples](https://github.com/mattmakai/slack-api-python-examples)
77+
contains the example code from several Slack bot blog posts.
78+
79+
* [slackbot](https://github.com/lins05/slackbot) another popular
80+
Slack bot implementation.

content/pages/meta/00-change-log.markdown

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ on GitHub.
1616

1717
## 2018
1818
### December
19+
* Updated [SQLAlchemy](/sqlalchemy.html), [NoSQL](/no-sql-datastore.html),
20+
[MongoDB](/mongodb.html) and [Slack API](/slack.html) pages with
21+
new descriptions and resources.
1922
* Updated the [serverless](/serverless.html),
2023
[operating systems](/operating-systems.html) and
2124
[HTTPS](/https.html) pages with a bunch of new resources.

0 commit comments

Comments
 (0)