forked from mattmakai/fullstackpython.com
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchange-log.html
More file actions
567 lines (566 loc) · 35.2 KB
/
change-log.html
File metadata and controls
567 lines (566 loc) · 35.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Matt Makai">
<meta name="description" content="If you're interested in what's new to learn on Full Stack Python, the change log is the right place to look.">
<link rel="shortcut icon" href="theme/img/fsp-fav.png">
<title>Change Log - Full Stack Python</title>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<link href="theme/css/f.min.css" rel="stylesheet">
</head>
<body>
<div style="padding: 0 0 20px 0; margin: 0 0 20px 0; background-color: #22B24C;">
<div class="container">
<h2 style="color: #fff; margin: 20px 40px 0 0;"><a href="https://www.gumroad.com/l/python-deployments" style="color: #fff">The Full Stack Python Guide to Deployments book</a> has been released!</h2>
</div>
</div> <a href="https://github.com/makaimc/fullstackpython.com"><img style="position: absolute; top: 0; right: 0; border: 0;" src="/theme/img/fork.png" alt="Fork me on GitHub"></a>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo-header-section">
<a href="/" style="text-decoration: none; border: none;"><img src="theme/img/fsp-logo.png" height="52" width="52" class="logo-image" style="padding-top: 1px;" alt="Full Stack Python logo"></a>
<span class="logo-title"><a href="/">Full Stack Python</a></span>
</div>
</div>
</div><div class="row">
<div class="col-md-8">
<h1>Change Log</h1>
<p>This is a running list of the major changes to Full Stack Python since its
inception in December 2012. Another way to view the modifications is through
the
<a href="https://github.com/makaimc/fullstackpython.github.com/commits/gh-pages">source repository's commit log</a> on GitHub.</p>
<h2>2015</h2>
<h3>September</h3>
<ul>
<li>Added <a href="/api-creation.html">API creation</a> resources.</li>
<li>A new update for
<a href="http://www.deploypython.com/">Full Stack Python Guide to Deployments</a>
went out to existing purchasers!</li>
</ul>
<h3>August</h3>
<ul>
<li>Created new pages for <a href="/unit-testing.html">unit testing</a> and
<a href="/integration-testing.html">integration testing</a>.</li>
<li>Created a new page on <a href="/testing.html">testing</a> that will be fleshed out
over the next few weeks.</li>
<li>Added new <a href="/django.html">Django</a> resources, especially for migrations.</li>
<li>Added new <a href="/web-application-security.html">web app security</a> resources on
HTTPS.</li>
</ul>
<h3>July</h3>
<ul>
<li>Updated a boatload of pages with typo and grammar fixes while reviewing
everything for the upcoming launch of
<a href="https://gumroad.com/l/WOvyt">the PDF version of FSP contained in the packaged book deal</a>.</li>
<li>Added the beginnings of a
<a href="/static-site-generator.html">static site generator page</a>.</li>
<li>Updated sidebar with links to the new
<a href="https://gumroad.com/l/kwjLZ">Full Stack Python Guide to Deployments</a>
ebook.</li>
<li>New resources on the <a href="/web-frameworks.html">web frameworks</a> and
<a href="/morepath.html">Morepath</a> pages.</li>
</ul>
<h3>June</h3>
<ul>
<li>New <a href="/api-creation.html">API Creation</a> and <a href="/django.html">Django</a> resources
added.</li>
<li>Added new Peewee resources on the
<a href="/object-relational-mappers-orms.html">ORMs page</a>.</li>
<li>Nice little update to the <a href="/object-relational-mappers-orms.html">ORMs page</a>
with a diagram showing that different ORMs can work with varying
web frameworks and backends.</li>
<li>Added a new section just for Nginx resources and Removed broken links on
the <a href="/web-servers.html">web servers</a> page.</li>
<li>Added a new page on Python
<a href="/object-relational-mappers-orms.html">object-relational mappers</a>, which
helped condense that information on a single page and lighten the loads on
the Django and relational databases pages.</li>
<li>Added new page with a little advice on
<a href="/learning-programming.html">learning programming</a>.</li>
<li>Proofread and tweaked the <a href="/web-frameworks.html">web frameworks</a> page.</li>
<li>Added a new section entitled "Do I have to use a web framework?" to the
<a href="/web-frameworks.html">web frameworks</a> page.</li>
<li>Reviewed and updated the <a href="/introduction.html">introduction</a> with slight
modifications.</li>
<li>Added new <a href="/docker.html">Docker</a> resources.</li>
<li>Made some changes to what is contained in the Markdown files versus the
HTML Jinja2 templates. Behind the scenes work that needed to be done to
move the project forward.</li>
<li>Work continues on the
<a href="http://www.deploypython.com/">Full Stack Python Guide to Deployments</a> book.</li>
</ul>
<h3>May</h3>
<ul>
<li>Got a whole lot of work done on my upcoming
<a href="http://www.deploypython.com/">Full Stack Python Guide to Deployments</a> book.
Very close to releasing it (looking at mid-June).</li>
<li>Added new <a href="/django.html">Django</a> resources, especially around migrations
in Django 1.7+.</li>
<li>Worked on making <a href="/why-use-python.html">Why Use Python?</a> page specific to
that topic now that the <a href="/enterprise-python.html">Enterprise Python</a> page
contains enterprise-y info.</li>
<li>New page on the super broad topic of <a href="/data.html">Data</a> with Python.
Eventually it'll link to all sorts of data topics such as analysis,
visualization and processing.</li>
<li>New page on <a href="/enterprise-python.html">Enterprise Python</a>. A bit op-ed-ish
perhaps, but I think it captures some of the spirit of the open source
ecosystem with regards to Python for enterprise software development.</li>
<li>Added additional <a href="/django.html">Django</a> resources, specifically related to
testing.</li>
</ul>
<h3>April</h3>
<ul>
<li>Added more <a href="/no-sql-datastore.html">NoSQL resources</a>, especially ones involving
Redis.</li>
<li>New <a href="/pyramid.html">Pyramid</a> resource where the primary author is
interviewed about the web framework.</li>
<li>New <a href="/vim.html">Vim</a> resources.</li>
<li>Updated the <a href="/django.html">Django</a> page with new resources. The page is
getting unwieldy at its current size so I'll likely pare it down with
better categorizes sometime soon.</li>
<li>Added new resources on the <a href="/flask.html">Flask</a> page.</li>
</ul>
<h3>March</h3>
<ul>
<li>Added new <a href="/source-control.html">source control</a> resources.</li>
<li>Major site performance improvements. I removed font awesome and replaced
icons with SVG elements that mimic the font awesome icons.</li>
<li>Pushed the <a href="https://github.com/makaimc/fullstackpython.github.com/commit/2fc711b44ffed89c9855f4f999d4c1df076bc44d">1000th commit</a>
to Full Stack Python!
<img src="theme/img/1000th-commit.jpg" width="100%" alt="Screenshot of 1000th commit to Full Stack Python." class="technical-diagram" /></li>
<li>Major update to <a href="/vim.html">Vim</a> page to add screenshots, a better example
.vimrc configuration and many more resources.</li>
<li>Updated the <a href="/web-analytics.html">web analytics</a> page with a new
Python-specific section for walkthroughs that are specific to building or
using analytics with Python applications.</li>
<li>Adding a slew of new <a href="/django.html">Django</a> resources.</li>
<li>Working on including Crossbar.io and Autobahn to the
<a href="/websockets.html">websockets</a> page.</li>
<li>Added the Muffin framework to the
<a href="/other-web-frameworks.html">other web frameworks</a> page.</li>
<li>Added new <a href="/emacs.html">Emacs</a> page based on
<a href="https://github.com/makaimc/fullstackpython.github.com/pull/49">pull request #49</a>
base information. Thank you!</li>
<li>Added a new page on <a href="/best-python-videos.html">best Python videos</a> that
breaks out all the videos I had scattered around the site and puts the
best ones in a single place.</li>
<li>Beefing up the Django resources and will soon break them further down
into subcategories so they are easier to find by topic.</li>
</ul>
<h3>February</h3>
<ul>
<li>Cleaned up the sidebar and <a href="/email.html">email</a> subscribe messaging.</li>
<li>Added new <a href="/monitoring.html">monitoring</a>, <a href="/websockets.html">websockets</a> and
<a href="/continuous-integration.html">continuous integration</a> resources.</li>
<li>New <a href="/django.html">Django</a> resources.</li>
<li>Updated the <a href="/vim.html">Vim</a> page with a Vimrc configuration file
explanation along with Vimrc resources.</li>
<li>Added a <a href="/generators.html">generators</a> page that's mostly a stub that I will
be building out to explain this core language feature.</li>
<li>Updated <a href="/table-of-contents.html">table of contents</a> with new layout that'll
allow me to expand on core Python language topics.</li>
<li>Updated several out of date resources and added a new
<a href="/logging.html">logging</a> resource.</li>
<li>New <a href="/pyramid.html">Pyramid</a> resources. I definitely need to flesh that page
out further.</li>
<li>Added a <a href="/vim.html">Vim</a> page and resources for learning Vim as a Python
code editor.</li>
<li>Reorganized content pages to make for better logical groupings as I add new
content.</li>
<li>Major improvements to <a href="/websockets.html">Websockets</a> page after suggestions
from
<a href="https://github.com/makaimc/fullstackpython.github.com/issues/47">issue #47 on GitHub repository</a>.</li>
</ul>
<h3>January</h3>
<ul>
<li>Rewrote the Mailchimp sign up form for the email list so it doesn't have
the external JQuery libraries as dependencies. Site should be even faster
now.</li>
<li>Stripped a significant portion of unused Bootstrap boilerplate from the CSS
file and minified it. The resulting CSS file is over 100KB less (about
25KB down from 130KB) so the site should load faster now.</li>
<li>Major update to <a href="/websockets.html">WebSockets page</a> with new diagrams
and better explanations for why server push is useful.</li>
<li>New task queue resources.</li>
<li>Major update with the beginning of a page on <a href="/docker.html">Docker</a>, split
out static file handling resources on the <a href="/django.html">Django</a> page
and a new section on Python programming language popularity on the
"Why Use Python?" page.</li>
<li>Working on a <a href="/why-use-python.html">Why Use Python?</a> page with my own
assessment of the strengths and weaknesses of Python along with links to
resources where other folks discuss their own experiences.</li>
<li>Continuing to add WebSockets resources, especially Python-specific ones.</li>
<li>Added a new separate page for the <a href="/morepath.html">Morepath framework</a>.</li>
<li>Updated the <a href="/future-directions.html">future directions</a> page for 2015.</li>
<li>Added new WebSockets resources.</li>
<li>Added <a href="/websockets.html">WebSockets</a> page and some initial resources.</li>
</ul>
<h2>2014</h2>
<h3>December</h3>
<ul>
<li>Added new security resources and splitting HTTPS resources into their own
section.</li>
<li>Split out Djangular resources into a separate section.</li>
<li>New NoSQL Python client resources.</li>
<li>Added new API resources for integration and creation.</li>
</ul>
<h3>November</h3>
<ul>
<li>Added a nice new continuous integration diagram.</li>
<li>More Django and database resources.</li>
<li>Revising development environments page and adding new resources.</li>
<li>Adding my new Flask blog post on choose your own adventure presentations
along with the open source repository.</li>
<li>More resources under Best Python Resources.</li>
<li>Removing broken links from Best Python Resources and Django pages.</li>
<li>New monitoring and development environments resources.</li>
</ul>
<h3>October</h3>
<ul>
<li>Added the first new page in awhile! All about
<a href="/development-environments.html">development environments</a>.</li>
<li>Always adding new links to the best resources. More resources for
deployments, web analytics and Flask.</li>
<li>More API creation and consumption resources.</li>
<li>Merged a bunch of pull requests that cleaned up spelling and grammar
errors. Thank you contributors!</li>
<li>Adding new Django 1.7-specific resources section on the Django page.</li>
<li>New web frameworks, Bottle and Flask resources.</li>
</ul>
<h3>September</h3>
<ul>
<li>New resources for Flask, Django and task queues sections.</li>
<li>A few new resources for NoSQL data stores.</li>
</ul>
<h3>August</h3>
<ul>
<li>New interesting link for web framework code complexity visualizations.</li>
<li>Merged pull request that fixed some issues on WSGI page.</li>
<li>Updated table of contents so it's easier to read and broken down by
sections.</li>
<li>Added new <a href="/web-design.html">Web Design</a> page to cleanly separate CSS from
design topics and resources.</li>
<li>New resources for code metrics and NoSQL databases.</li>
<li>Added another Flask open source example app.</li>
<li>Added new <a href="/code-metrics.html">Code Metrics</a> page.</li>
<li>Updated CI page with more services and open source projects.</li>
<li>Added <a href="/continuous-integration.html">Continuous Integration</a> page.</li>
<li>Splitting out deployment from automation so I can add chapters on continuous
integration, configuration management (which will be moved from the
existing deployment chapter) and related topics.</li>
<li>Small tweaks to NoSQL, introduction and a few other pages.</li>
<li>Moved topics map from introduction page to deployment page.</li>
</ul>
<h3>July</h3>
<ul>
<li>Merged pull request for Django page and updated Django page with project
template section.</li>
<li>New Django example project resources.</li>
<li>Rewrote parts of source control and CSS pages for clarity.</li>
<li>Merged typo fixes PR #32.</li>
<li>Added my Full Stack Python video from the EuroPython 2014 conference.</li>
<li>Updated map with further details.</li>
<li>Added a map to the front page. May move that elsewhere later though based
on feedback.</li>
<li>Merged a pull request for new REST frameworks.</li>
<li>Lots of new Django, Flask and task queue resources.</li>
<li>Added two new Python libraries lists to the Best Python Resources page.</li>
<li>Thanks <a href="https://news.ycombinator.com/item?id=7985692">Hacker News</a> for
doubling my traffic so far in 2014! 65k uniques and counting...</li>
</ul>
<h3>June</h3>
<ul>
<li>Added more monitoring and logging resources.</li>
<li>New resources for Flask and NoSQL projects.</li>
<li>Updated NoSQL data store page with specific open source projects.</li>
<li>Added diagram to source control page.</li>
<li>Split version control resources from Git resources. Added new version
control resources.</li>
<li>Updated logging page with better explanations and content ordering.</li>
<li>Added learning checklists for all sections. The remaining sections that now
also have checklists are logging, web analytics and web application security.</li>
</ul>
<h3>May</h3>
<ul>
<li>Added link to my O'Reilly Programming blog post on demand for full stack
developer capabilities.</li>
<li>Updated APIs page with basic information on webhooks.</li>
<li>Added learning checklists for source control, application dependencies,
configuration management, NoSQL data stores, APIs, API integration,
API creation, static content and caching sections.</li>
<li>Moving learning checklists to the bottom of the pages since they are
specific advice for steps to take after reading a section.</li>
<li>Added a stub section for APIs.</li>
<li>Cleaned up and polished the task queues and web analytics pages.</li>
<li>Added learning checklist to operating systems, web servers, task queues,
monitoring pages and WSGI servers.</li>
<li>Adding more logging resources.</li>
<li>Continuing to add learning checklists to sections such as servers.</li>
<li>Moving navigation options into meta tags on markdown pages.</li>
</ul>
<h3>April</h3>
<ul>
<li>Adding the concept of "learning checklists" to web frameworks, Django, CSS
and JavaScript pages to give readers some guidance for how to learn each
topic. Will expand these checklists out into other pages over the next
couple of weeks.</li>
<li>Added an email sign up form to determine how many people are interested in
a full book since I've had a lot of requests in person to write one.</li>
<li>Added new resources to the other web frameworks section.</li>
<li>Updated the way choices to go from one page to another are generated. It's
now done off metadata instead of duplicated HTML content.</li>
<li>Huge site update to reorganize the way content is presented and navigated.
Kinda has that "choose your own adventure" thing going for it, doesn't it?</li>
<li>
<p>New logo! This one's way more Python software stack, way less boring
folder-thingy. Here's how the old one looked in comparison:
<img src="theme/img/old-logo.png" width="100%" alt="Old Full Stack Python logo" class="technical-diagram" /></p>
</li>
<li>
<p>Added a <a href="../future-directions.html">future direction</a> section to explain
current priorities for further developments on the site.</p>
</li>
<li>More resources for web frameworks and configuration management sections.</li>
<li>Added small JavaScript section. Updating witih basic resources.</li>
<li>Updated application dependencies with new links to Python library
collections.</li>
<li>Merged a couple of awesome pull requests that fixed typos and added
additional Bottle resources.</li>
</ul>
<h3>March</h3>
<ul>
<li>Updated logging page with new resources.</li>
<li>Added new CSS page.</li>
<li>New intermediate learning links on the best resources page.</li>
<li>Updated task queues page with better explanations and many more curated
resources.</li>
<li>Added why is this piece necessary for databases, WSGI servers, web
frameworks and application dependencies.</li>
<li>Updating best resources page with newsletters and a few additional beyond
the basics resources.</li>
<li>Adding 'why is this necessary' sections to servers, operating systems,
and web servers pages.</li>
<li>Extracting best Python resources from the introduction into a separate
page.</li>
<li>Cleaned up links on the first ten chapters and added new resources for
web frameworks.</li>
<li>Updated application dependencies section with new resources and initial
content description.</li>
<li>Updated the change log (how meta!) to have a cleaner layout.</li>
</ul>
<h3>February</h3>
<ul>
<li>Added Bottle as a web framework next to Django and Flask.</li>
<li>Added new Django resources. </li>
<li>New sitemap.xml. </li>
<li>Rewriting all sections to fix first draft typos and grammar mistakes
as well as add new content.</li>
<li>Added task queues section due to reader feedback. </li>
<li>Rewrote intro section.</li>
<li>Merged several pull requests (see closed
<a href="https://github.com/makaimc/fullstackpython.github.com/pulls">GitHub repo pull requests</a>). </li>
<li>New resources for platform-as-a-service section. </li>
<li>Added new sections specified by the community as missing. </li>
<li>Reorganized ordering of content. </li>
<li>Broke out subsections for Django and Flask. </li>
<li>Added signficant content to the WSGI section. </li>
<li>Converted from RST to Markdown (some of the downstream tools I want to
use work better with Markdown than RST). </li>
<li>Reorganized content into rough outline of "final" chapters.</li>
</ul>
<h3>January</h3>
<ul>
<li>Added configuration management, application dependencies, and source
control sections. </li>
<li>Updated about section. </li>
<li>Fully responsive web design.</li>
</ul>
<h2>2013</h2>
<h3>December</h3>
<ul>
<li>Changed CDN section to static content section. </li>
<li>Transitioned diagrams from Paper app drawings to Balsamiq mockups
exported to PNG files. </li>
<li>Added Python database connectors to database section.</li>
</ul>
<h3>November</h3>
<ul>
<li>Modified color scheme. </li>
<li>Updated caching and introduction section.</li>
<li>Added NoSQL data stores section.</li>
</ul>
<h3>October</h3>
<ul>
<li>Created separate monitoring section.</li>
</ul>
<h3>August</h3>
<ul>
<li>Added more resources for web servers and other categories.</li>
</ul>
<h3>June</h3>
<ul>
<li>Updated styling.</li>
<li>Switching around several sections.</li>
</ul>
<h3>January</h3>
<ul>
<li>Fleshed out web server, OS, and server sections, particularly IaaS
and PaaS topics.</li>
<li>Added initial "hand drawn" diagram placeholders for better diagrams later.</li>
</ul>
<h2>2012</h2>
<h3>December</h3>
<ul>
<li>Initial incomplete release on fullstackpython.com, created
introduction, CDN, web frameworks, and database sections with stubs for
other areas.</li>
</ul>
<h3>That's the history of FSP. What's next on your learning list?</h3>
<div class="row">
<div class="col-md-4">
<div class="well select-next">
<a href="/future-directions.html" class="btn btn-success btn-full"><svg width="28" height="30" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1254 581l293-293-107-107-293 293zm447-293q0 27-18 45l-1286 1286q-18 18-45 18t-45-18l-198-198q-18-18-18-45t18-45l1286-1286q18-18 45-18t45 18l198 198q18 18 18 45zm-1351-190l98 30-98 30-30 98-30-98-98-30 98-30 30-98zm350 162l196 60-196 60-60 196-60-196-196-60 196-60 60-196zm930 478l98 30-98 30-30 98-30-98-98-30 98-30 30-98zm-640-640l98 30-98 30-30 98-30-98-98-30 98-30 30-98z" fill="#fff"/></svg></a>
<p class="under-btn">What're the future plans for Full Stack Python?</p> </div>
</div>
<div class="col-md-4">
<div class="well select-next">
<a href="/about-author.html" class="btn btn-success btn-full"><svg width="28" height="30" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1600 1405q0 120-73 189.5t-194 69.5h-874q-121 0-194-69.5t-73-189.5q0-53 3.5-103.5t14-109 26.5-108.5 43-97.5 62-81 85.5-53.5 111.5-20q9 0 42 21.5t74.5 48 108 48 133.5 21.5 133.5-21.5 108-48 74.5-48 42-21.5q61 0 111.5 20t85.5 53.5 62 81 43 97.5 26.5 108.5 14 109 3.5 103.5zm-320-893q0 159-112.5 271.5t-271.5 112.5-271.5-112.5-112.5-271.5 112.5-271.5 271.5-112.5 271.5 112.5 112.5 271.5z" fill="#fff"/></svg></a>
<p class="under-btn">Who created Full Stack Python?</p> </div>
</div>
<div class="col-md-4">
<div class="well select-next">
<a href="/introduction.html" class="btn btn-success btn-full"><svg width="28" height="30" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1747 141q19-19 32-13t13 32v1472q0 26-13 32t-32-13l-710-710q-9-9-13-19v710q0 26-13 32t-32-13l-710-710q-9-9-13-19v678q0 26-19 45t-45 19h-128q-26 0-45-19t-19-45v-1408q0-26 19-45t45-19h128q26 0 45 19t19 45v678q4-11 13-19l710-710q19-19 32-13t13 32v710q4-11 13-19z" fill="#fff"/></svg></a>
<p class="under-btn">Take me back to the Full Stack Python introduction.</p> </div>
</div>
</div><div id="mc_embed_signup">
<form action="//mattmakai.us2.list-manage.com/subscribe/post?u=b7e774f0c4f05dcebbfee183d&id=b22335388d" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h4>Sign up here to receive an email with major updates to this site and Python tutorials delivered to your inbox once a month.</h4>
<div class="row">
<div class="col-md-9">
<input type="email" value="" name="EMAIL" class="email form-control" id="mce-EMAIL" placeholder="email address" required>
<div style="position: absolute; left: -5000px;"><input type="text" name="b_b7e774f0c4f05dcebbfee183d_b22335388d" tabindex="-1" value=""></div>
</div>
<div class="col-md-3">
<div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn btn-success" style="font-family: 'Helvetica Neue';"></div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="col-md-offset-1 col-md-3" id="sidebar">
<div class="panel panel-success">
<div class="panel-body">
<a href="http://www.deploypython.com/"><img src="https://static.fullstackpython.com/fsp-deployment-guide.png" alt="The Full Stack Python Guide to Deployments" width="100%"></a>
<p style="font-size: .8em; margin-top: 10px;">Searching for a complete, step-by-step deployment walkthrough? Learn more about <a href="http://www.deploypython.com/">The Full Stack Python Guide to Deployments book</a>.
</p>
</div>
</div> <div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-head"><a href="/table-of-contents.html" style="color: #fff;">Table of Contents</a></h3>
</div>
<div class="list-group">
<a href="/introduction.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Introduction</a>
<a href="/learning-programming.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Learning Programming</a>
<a href="/why-use-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Why Use Python?</a>
<a href="/python-2-or-3.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Python 2 or 3?</a>
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
<a href="/best-python-resources.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Resources</a>
<a href="/best-python-videos.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Videos</a>
<a href="/development-environments.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Development Environments</a>
<a href="/vim.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Vim</a>
<a href="/emacs.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Emacs</a>
<a href="/generators.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Generators</a>
<a href="/comprehensions.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Comprehensions</a>
<a href="/web-frameworks.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Web Frameworks</a>
<a href="/django.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Django</a>
<a href="/flask.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Flask</a>
<a href="/bottle.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Bottle</a>
<a href="/pyramid.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Pyramid</a>
<a href="/morepath.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Morepath</a>
<a href="/other-web-frameworks.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Other Web Frameworks</a>
<a href="/web-design.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Web Design</a>
<a href="/cascading-style-sheets.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Cascading Style Sheets</a>
<a href="/javascript.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>JavaScript</a>
<a href="/websockets.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>WebSockets</a>
<a href="/web-application-security.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Web Application Security</a>
<a href="/static-site-generator.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Static Site Generator</a>
<a href="/data.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Data</a>
<a href="/databases.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Databases</a>
<a href="/no-sql-datastore.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>NoSQL Data Stores</a>
<a href="/object-relational-mappers-orms.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Object-relational Mappers (ORMs)</a>
<a href="/application-programming-interfaces.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Application Programming Interfaces</a>
<a href="/api-integration.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>API Integration</a>
<a href="/api-creation.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>API Creation</a>
<a href="/deployment.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Deployment</a>
<a href="/servers.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Servers</a>
<a href="/platform-as-a-service.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Platform-as-a-service</a>
<a href="/operating-systems.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Operating Systems</a>
<a href="/web-servers.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Web Servers</a>
<a href="/wsgi-servers.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>WSGI Servers</a>
<a href="/source-control.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Source Control</a>
<a href="/application-dependencies.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Application Dependencies</a>
<a href="/static-content.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Static Content</a>
<a href="/task-queues.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Task Queues</a>
<a href="/configuration-management.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Configuration Management</a>
<a href="/continuous-integration.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Continuous Integration</a>
<a href="/logging.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Logging</a>
<a href="/monitoring.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Monitoring</a>
<a href="/web-analytics.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Web Analytics</a>
<a href="/docker.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Docker</a>
<a href="/caching.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Caching</a>
<a href="/testing.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Testing</a>
<a href="/unit-testing.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Unit Testing</a>
<a href="/integration-testing.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Integration Testing</a>
<a href="/code-metrics.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Code Metrics</a>
<a href="/debugging.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Debugging</a>
<a href="/what-full-stack-means.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>What "Full Stack" Means</a>
<a href="/change-log.html" class="list-group-item smaller-item active" style='font-family: "Helvetica Neue",sans-serif;'>Change Log</a>
<a href="/future-directions.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Future Directions</a>
<a href="/about-author.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>About the Author</a>
</div>
</div>
<div class="panel panel-success">
<div class="panel-body">
<a href="http://www.deploypython.com/"><img src="https://static.fullstackpython.com/fsp-deployment-guide.png" alt="The Full Stack Python Guide to Deployments" width="100%"></a>
<p style="font-size: .8em; margin-top: 10px;">Searching for a complete, step-by-step deployment walkthrough? Learn more about <a href="http://www.deploypython.com/">The Full Stack Python Guide to Deployments book</a>.
</p>
</div>
</div> <div class="panel panel-success">
<div class="panel-heading"><h3 class="panel-head">Change Log</h3></div>
<div class="panel-body">
Major updates are tweeted via
<a href="https://twitter.com/fullstackpython">@fullstackpython</a>.
<hr/>
Need more detailed tutorials than you see here?
<a href="http://www.deploypython.com/">Learn more about The Full Stack Python Guide to Deployments book.</a>
</div>
</div>
</div></div>
<hr/>
<div class="footer pull-right">
<a href="http://www.mattmakai.com/" class="underline">Matt Makai</a>
2015
</div>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-19910497-7', 'auto');
ga('send', 'pageview');
</script>
<script type='text/javascript'>
var trackOutboundLink = function(url) { ga('send', 'event', 'outbound', 'click', url, {'hitCallback': function () { document.location = url; } }); }
</script>
</body>
</html>