00:00:00 - Introduction
00:07:41 - git
00:11:00 - GitHub
00:12:31 - git clone
00:15:06 - git add
00:16:01 - git commit
00:17:40 - git status
00:18:42 - git push
00:20:01 - git pull
00:22:53 - Merge Conflicts
00:27:19 - git log
00:27:54 - git reset
00:35:44 - hello.html
00:41:46 - headings.html
00:43:47 - lists.html
00:46:29 - image0.html
00:49:41 - image1.html
00:53:46 - table.html
00:56:31 - form.html
00:59:04 - DOM
01:00:35 - CSS
01:02:04 - style0.html
01:07:40 - style1.html
01:11:51 - style2.html
01:14:45 - size.html
01:18:08 - font.html
01:20:30 - border.html
01:21:55 - Styling table.html (table.html)
01:29:20 - div_span.html
01:39:48 - GitHub Pages
00:00:00 - Introduction
00:02:38 - Branching
00:17:20 - Remotes
00:19:53 - Forks
00:20:53 - Pull Requests
00:24:10 - links0.html
00:26:56 - link1.html
00:30:34 - HTML5
00:33:30 - form.html
00:38:31 - CSS
00:39:45 - multiple.html
00:42:04 - descendant.html
00:46:35 - child.html
00:47:50 - attribute.html
00:51:15 - hover.html
00:53:07 - before.html
00:55:08 - selection.html
00:55:57 - CSS Selectors
00:57:06 - Responsive Design
00:59:45 - print.html
01:02:38 - responsive0.html
01:04:48 - responsive1.html
01:08:42 - flexbox.html
01:11:09 - grid.html
01:14:44 - nobootstrap.html (bootstrap.html)
01:15:02 - bootstrap.html
01:16:10 - columns0.html
01:17:51 - columns1.html
01:22:10 - alert.html
01:24:02 - variables.html
01:25:47 - Sass
01:35:16 - nesting.html
01:39:39 - inheritance.html
00:00:00 - Introduction
00:00:48 - Python
00:01:45 - hello.py
00:03:26 - name.py
00:07:06 - variables.py
00:10:10 - conditions.py
00:12:51 - sequences.py
00:18:48 - loops0.py
00:23:26 - loops1.py
00:23:42 - sets.py
00:24:58 - dictionaries.py
00:27:57 - functions.py
00:32:12 - modules.py
00:35:56 - classes.py
00:39:17 - HTTP
00:40:25 - Flask
00:46:56 - routes0
00:52:25 - templates
00:57:14 - variables0
01:04:17 - conditions
01:11:53 - loops
01:17:48 - inheritance
01:23:00 - forms
01:33:50 - notes
00:00:00 - Introduction
00:00:51 - Databases
00:01:53 - SQL
00:02:35 - SQL Data Types
00:04:26 - create.sql
00:09:27 - Constraints
00:11:07 - INSERT
00:13:39 - insert.sql
00:14:06 - SELECT
00:25:37 - SQL Functions
00:26:21 - UPDATE
00:28:37 - DELETE
00:36:57 - Foreign Keys
00:42:48 - joins.sql
00:50:15 - Indexing
00:56:30 - SQL Injection
01:02:57 - Race Conditions
01:08:10 - SQL Transactions
01:09:08 - SQLAlchemy
01:09:45 - list.py
01:15:42 - import.py
01:22:05 - passengers.py
01:25:19 - airline0
01:38:59 - airline1
00:00:00 - Introduction
00:01:56 - Object-Oriented Programming
00:03:26 - classes0.py
00:05:32 - classes1.py
00:12:31 - classes2.py
00:17:05 - classes3.py
00:19:45 - classes4.py
00:25:55 - Object-Relational Mapping
00:26:51 - Flask-SQLAlchemy
00:27:36 - models.py
00:32:47 - create.py
00:38:35 - import0.py
00:39:12 - import1.py
00:51:45 - airline1
00:52:27 - airline2
00:56:54 - airline3
01:00:28 - airline4
01:05:25 - Relationships
01:07:27 - APIs
01:08:12 - JSON
01:15:11 - HTTP Methods
01:16:31 - requests
01:16:53 - google.py
01:19:25 - fixer.io
01:21:38 - currency0.py (因为API过期无法运行了)
01:23:11 - HTTP Status Codes
01:26:27 - currency1.py (因为API过期无法运行了)
01:30:28 - currency2.py (因为API过期无法运行了)
01:33:52 - airline5
01:40:29 - API Keys
00:00:00 - Introduction
00:02:42 - JavaScript
00:03:22 - ES6
00:03:55 - JavaScript in a Web Page
00:04:43 - hello0.html
00:06:21 - events.html
00:09:52 - Functions
00:10:37 - Events
00:12:53 - query.html
00:17:48 - querySelector
00:19:02 - counter0.html
00:21:38 - counter1.html
00:25:40 - counter2.html
00:32:52 - counter3.html
00:34:10 - Variables
00:35:50 - variables0.html
00:36:31 - variables1.html
00:38:21 - variables2.html
00:45:33 - colors0.html
00:48:23 - colors1.html
00:55:08 - Arrow Functions
00:56:41 - colors2.html
00:57:50 - colors3.html
01:01:41 - tasks0.html
01:06:42 - tasks1.html
01:09:07 - tasks2.html
01:11:44 - interval.html
01:13:40 - storage.html
01:18:07 - Ajax
01:18:36 - currency (因为API过期无法运行了)
01:30:56 - Socket.IO
01:33:01 - vote0
01:42:09 - vote1
00:00:00 - Introduction
00:00:53 - Single-Page Apps
00:02:22 - multipage
00:05:48 - singlepage0
00:15:06 - HTML5 History API
00:16:19 - singlepage1
00:20:30 - singlepage2
00:25:38 - window
00:30:03 - scroll.html
00:33:12 - posts0
00:42:36 - posts1
00:47:47 - dice0
00:52:37 - dice1
00:55:06 - dice2
00:59:50 - dice3
01:06:32 - CSS Animation
01:07:56 - animate0.html
01:10:31 - animate1.html
01:12:40 - animate2.html
01:14:42 - animate3.html
01:16:55 - posts2
01:17:48 - posts3
01:22:09 - posts4
01:23:37 - circle0.html
01:25:27 - circle1.html
01:27:20 - rect.html
01:28:07 - circle2.html
01:29:51 - circle3.html
01:31:48 - stoplight.html
01:35:05 - draw0.html
01:38:12 - draw1.html
01:40:41 - draw2.html
00:00:00 - Introduction
00:02:08 - Django
00:04:16 - Project Components
00:07:14 - hello
00:16:03 - flights
00:21:20 - Migrations
00:25:22 - Django Shell
00:35:57 - Rendering Templates
00:41:47 - admin
00:49:29 - Adding Routes
00:54:13 - Linking Routes
00:57:35 - Template Inheritance
01:00:40 - Model Relationships
01:09:52 - Registration
01:20:42 - CSRF
01:22:36 - Login and Authentication
01:36:59 - In Conclusion
00:00:00 - Introduction
00:01:47 - Customizing Django Admin
00:08:03 - Static Files in Django
00:10:06 - Testing
00:11:24 - prime.py
00:15:07 - tests0.py
00:16:22 - tests0.sh
00:20:26 - assert
00:21:41 - assert0.py
00:22:16 - assert1.py
00:24:04 - unittest
00:24:19 - tests1.py
00:29:16 - tests.py
00:51:15 - unittest Methods
00:53:00 - Selenium
00:59:59 - CI/CD
01:03:51 - Travis
01:06:32 - YAML
01:09:06 - .travis.yaml
01:21:09 - Docker
01:23:50 - Dockerfile
01:26:29 - docker-compose.yml
01:39:56 - In Conclusion
00:00:00 - Introduction
00:00:38 - GitHub Classroom
00:08:38 - Creating a Branch
00:13:01 - Opening a Pull Request
00:17:19 - Deploying
00:44:36 - Travis CI
00:48:44 - Types of Tests
00:53:29 - Build
00:55:47 - Reproducibility
00:57:33 - Tidy Deploys
00:58:29 - Faster Development
00:59:27 - Automate all the things!
01:00:50 - CICD
01:01:51 - Travis Configurations
01:13:27 - Builds and Testing
01:15:31 - CICD in the Wild
01:17:03 - In Conclusion
00:00:00 - Introduction
00:03:29 - Benchmarking
00:04:22 - Vertical Scaling
00:06:08 - Horizontal Scaling
00:09:42 - Load Balancing Methods
00:14:43 - Session-Aware Load Balancing
00:19:40 - Autoscaling
00:35:20 - Scaling Databases
00:38:00 - Database Partitioning
00:48:04 - Database Replication
00:49:46 - Single-Primary Replication
00:52:55 - Multi-Primary Replication
00:56:55 - Caching
00:58:23 - Client-Side Caching
01:05:22 - Server-Side Caching
00:00:00 - Introduction
00:00:37 - Security
00:01:39 - Git
00:02:01 - Open-Source Software
00:05:22 - Two-Factor Authentication
00:08:47 - HTML
00:15:26 - Flask
00:15:49 - HTTP and HTTPS
00:17:47 - Cryptography
00:20:42 - Public-Key Cryptography
00:23:21 - Environment Variables
00:25:39 - SQL
00:33:52 - SQL Injection
00:40:23 - APIs
00:42:24 - API Keys
00:43:41 - JavaScript
00:46:27 - Cross-Site Scripting
01:05:48 - Django
01:06:19 - Cross-Site Request Forgery
01:14:47 - Testing, CI/CD
01:17:02 - Scalability
01:17:50 - DoS Attacks
01:18:32 - DDoS Attacks
01:20:43 - What's Next?
01:23:44 - In Conclusion