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
423 lines (422 loc) · 22.7 KB
/
change-log.html
File metadata and controls
423 lines (422 loc) · 22.7 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
<!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="Full Stack Python explains each layer of the web application stack, from the server up through the rendering in a user's browser.">
<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]-->
<style>
.toc-indent {padding-left: 25px;}
.toc-more-indent {padding-left: 37px;}
</style>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19910497-7']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script> </head>
<body>
<a href="https://github.com/makaimc/fullstackpython.github.com"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/a6677b08c955af8400f44c6298f40e7d19cc5b2d/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677261795f3664366436642e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"></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;"/></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>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>
<p>That's the whole history of Full Stack Python. What do you want to learn now?</p>
<div class="row">
<div class="col-md-3">
<div class="well select-next">
<a href="/introduction.html" class="btn btn-success btn-full"><i class="fa fa-fast-backward fa-inverse fa-2x"></i></a>
<p class="under-btn">
Let me start over from the Full Stack Python introduction.
</p>
</div>
</div>
<div class="col-md-3">
<div class="well select-next">
<a href="/future-directions.html" class="btn btn-success btn-full"><i class="fa fa-magic fa-inverse fa-2x"></i></a>
</a>
<p class="under-btn">
Show me what's coming on Full Stack Python in the future.
</p>
</div>
</div>
<div class="col-md-3">
<div class="well select-next">
<a href="/about-author.html" class="btn btn-success btn-full"><i class="fa fa-user fa-inverse fa-2x"></i></a>
<p class="under-btn">
Who's the author of Full Stack Python?
</p>
</div>
</div>
<div class="col-md-3">
<div class="well select-next">
<a href="/web-frameworks.html" class="btn btn-success btn-full"><i class="fa fa-code fa-inverse fa-2x"></i></a>
<p class="under-btn">
I want to learn how to code a Python web application now.
</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>Interested in major updates to this site or an alert when a complete Full Stack Python book with detailed example code is released? Sign up here and you'll an occasional email only when there's big news to report.</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-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 ">Introduction</a>
<a href="/web-frameworks.html" class="list-group-item smaller-item ">Web Frameworks</a>
<a href="/django.html" class="list-group-item smaller-item ">Django</a>
<a href="/flask.html" class="list-group-item smaller-item ">Flask</a>
<a href="/bottle.html" class="list-group-item smaller-item ">Bottle</a>
<a href="/morepath.html" class="list-group-item smaller-item ">Morepath</a>
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>
<a href="/databases.html" class="list-group-item smaller-item ">Databases</a>
<a href="/no-sql-datastore.html" class="list-group-item smaller-item ">NoSQL Data Stores</a>
<a href="/web-design.html" class="list-group-item smaller-item ">Web Design</a>
<a href="/cascading-style-sheets.html" class="list-group-item smaller-item ">Cascading Style Sheets</a>
<a href="/javascript.html" class="list-group-item smaller-item ">JavaScript</a>
<a href="/continuous-integration.html" class="list-group-item smaller-item ">Continuous Integration</a>
<a href="/code-metrics.html" class="list-group-item smaller-item ">Code Metrics</a>
<a href="/configuration-management.html" class="list-group-item smaller-item ">Configuration Management</a>
<a href="/static-content.html" class="list-group-item smaller-item ">Static Content</a>
<a href="/caching.html" class="list-group-item smaller-item ">Caching</a>
<a href="/task-queues.html" class="list-group-item smaller-item ">Task Queues</a>
<a href="/application-programming-interfaces.html" class="list-group-item smaller-item ">Application Programming Interfaces</a>
<a href="/api-integration.html" class="list-group-item smaller-item ">API Integration</a>
<a href="/api-creation.html" class="list-group-item smaller-item ">API Creation</a>
<a href="/logging.html" class="list-group-item smaller-item ">Logging</a>
<a href="/monitoring.html" class="list-group-item smaller-item ">Monitoring</a>
<a href="/web-analytics.html" class="list-group-item smaller-item ">Web Analytics</a>
<a href="/web-application-security.html" class="list-group-item smaller-item ">Web Application Security</a>
<a href="/best-python-resources.html" class="list-group-item smaller-item ">Best Python Resources</a>
<a href="/development-environments.html" class="list-group-item smaller-item ">Development Environments</a>
<a href="/about-author.html" class="list-group-item smaller-item ">About the Author</a>
<a href="/change-log.html" class="list-group-item smaller-item active">Change Log</a>
<a href="/future-directions.html" class="list-group-item smaller-item ">Future Directions</a>
<a href="/what-full-stack-means.html" class="list-group-item smaller-item ">What "Full Stack" Means</a>
<a href="/why-use-python.html" class="list-group-item smaller-item ">Why Use Python?</a>
<a href="/websockets.html" class="list-group-item smaller-item ">WebSockets</a>
<a href="/docker.html" class="list-group-item smaller-item ">Docker</a>
</div>
</div>
<div class="panel panel-success">
<div class="panel-heading"><h3 class="panel-head">Change Log</h3></div>
<div class="panel-body">
<a href="/">Full Stack Python</a> is an open book that explains
each Python web application stack layer and provides the
best web resources for those topics.
<hr/>
There's a work-in-progress
<a href="/full-stack-python-map.pdf">subjects map (.pdf)</a>
that visually lays out each chapter in addition to the table of
contents found below.
<hr/>
Need more detailed tutorials and walkthroughs than you see here?
<a href="/email.html">Sign up for an email alert when that content is created.</a>
<hr/>
<a href="http://twitter.com/mattmakai">Matt Makai</a> built
this site with greatly appreciated assistance from community
<a href="https://github.com/makaimc/fullstackpython.github.com/pulls">pull requests</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>
<link href="theme/css/f.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css" rel="stylesheet">
</body>
</html>