]> Dogcows Code - chaz/talk-introduction-to-psgi/commitdiff
fix fonts
authorCharles McGarvey <chazmcgarvey@brokenzipper.com>
Tue, 12 Jul 2016 20:46:16 +0000 (14:46 -0600)
committerCharles McGarvey <chazmcgarvey@brokenzipper.com>
Tue, 12 Jul 2016 20:46:16 +0000 (14:46 -0600)
css/common.css
slides.html

index 63feb097b75611a20e0fbcb0d412fbbb8444f208..9f45170a10fdf5562a469759d4dd78fde6e70d2f 100644 (file)
@@ -1,15 +1,23 @@
-@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
-@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
-@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
+@import url(https://fonts.googleapis.com/css?family=Open+Sans);
+@import url(https://fonts.googleapis.com/css?family=Muli);
+@import url(https://fonts.googleapis.com/css?family=Inconsolata);
 
 body {
-    font-family: 'Droid Serif';
+    font-family: 'Open Sans';
 }
 
-h1, h2, h3 {
-    font-family: 'Yanone Kaffeesatz';
+.remark-slide-content h1,
+.remark-slide-content h2,
+.remark-slide-content h3 {
+    font-family: Muli;
     font-weight: normal;
 }
+.remark-slide-content h2 {
+    font-size: 40px;
+}
+.remark-slide-content h3 {
+    font-size: 30px;
+}
 
 .remark-slide-content li {
     line-height: 2em;
@@ -20,7 +28,7 @@ h1, h2, h3 {
 
 
 .remark-code, .remark-inline-code {
-    font-family: Inconsolata, 'Ubuntu Mono';
+    font-family: Inconsolata, monospace;
 }
 .remark-code {
     border-radius: 5px;
index fef0bc2a56e47c841dfd48358d97a74927100f8d..c5390b0e0c588ac1ba7fa22cfad90b07d4f023a6 100644 (file)
@@ -216,7 +216,7 @@ layout: true
 
 ---
 
-### Hypertext Transfer Protocol
+### **H**yper**t**ext **T**ransfer **P**rotocol
 
 --
 - Invented by Tim Berners-Lee in 1989, first specified as [HTTP 0.9](https://www.w3.org/Protocols/HTTP/AsImplemented.html) in 1991.
@@ -542,7 +542,7 @@ layout: true
 
 ---
 
-### Common Gateway Interface
+### **C**ommon **G**ateway **I**nterface
 
 --
 - Created by the NCSA in 1993.
@@ -581,25 +581,25 @@ print "Your IP address is ${client_ip}.";
 
 .condensed[
 .col[
-- AUTH_TYPE
-- CONTENT_LENGTH
-- CONTENT_TYPE
-- GATEWAY_INTERFACE
-- PATH_INFO
-- PATH_TRANSLATED
-- QUERY_STRING
-- REMOTE_ADDR
-- REMOTE_HOST
+- `AUTH_TYPE`
+- `CONTENT_LENGTH`
+- `CONTENT_TYPE`
+- `GATEWAY_INTERFACE`
+- `PATH_INFO`
+- `PATH_TRANSLATED`
+- `QUERY_STRING`
+- `REMOTE_ADDR`
+- `REMOTE_HOST`
 ]
 .col[
-- REMOTE_IDENT
-- REMOTE_USER
-- REQUEST_METHOD
-- SCRIPT_NAME
-- SERVER_NAME
-- SERVER_PORT
-- SERVER_PROTOCOL
-- SERVER_SOFTWARE
+- `REMOTE_IDENT`
+- `REMOTE_USER`
+- `REQUEST_METHOD`
+- `SCRIPT_NAME`
+- `SERVER_NAME`
+- `SERVER_PORT`
+- `SERVER_PROTOCOL`
+- `SERVER_SOFTWARE`
 - other "protocol-specific" variables
 ]
 ]
@@ -621,9 +621,9 @@ print "Your IP address is ${client_ip}.";
 
 .condensed[
 .col[
-- Content-Type
-- Location
-- Status
+- `Content-Type`
+- `Location`
+- `Status`
 - other "protocol-specific" header fields
 ]
 ]
@@ -1198,38 +1198,38 @@ layout: true
 
 .condensed[
 .col[
-- HTTP_ACCEPT
-- HTTP_ACCEPT_ENCODING
-- HTTP_ACCEPT_LANGUAGE
-- HTTP_CACHE_CONTROL
-- HTTP_CONNECTION
-- HTTP_DNT
-- HTTP_HOST
-- HTTP_USER_AGENT
-- PATH_INFO
-- QUERY_STRING 
-- REMOTE_ADDR
-- REMOTE_PORT
-- REQUEST_METHOD
-- REQUEST_URI
-- SCRIPT_NAME
+- `HTTP_ACCEPT`
+- `HTTP_ACCEPT_ENCODING`
+- `HTTP_ACCEPT_LANGUAGE`
+- `HTTP_CACHE_CONTROL`
+- `HTTP_CONNECTION`
+- `HTTP_DNT`
+- `HTTP_HOST`
+- `HTTP_USER_AGENT`
+- `PATH_INFO`
+- `QUERY_STRING `
+- `REMOTE_ADDR`
+- `REMOTE_PORT`
+- `REQUEST_METHOD`
+- `REQUEST_URI`
+- `SCRIPT_NAME`
 ]
 .col[
-- SERVER_NAME
-- SERVER_PORT
-- SERVER_PROTOCOL
-- psgi.errors
-- psgi.input
-- psgi.multiprocess    
-- psgi.multithread     
-- psgi.nonblocking     
-- psgi.run_once        
-- psgi.streaming
-- psgi.url_scheme
-- psgi.version
-- psgix.harakiri
-- psgix.input.buffered
-- psgix.io
+- `SERVER_NAME`
+- `SERVER_PORT`
+- `SERVER_PROTOCOL`
+- `psgi.errors`
+- `psgi.input`
+- `psgi.multiprocess`
+- `psgi.multithread`
+- `psgi.nonblocking`
+- `psgi.run_once`
+- `psgi.streaming`
+- `psgi.url_scheme`
+- `psgi.version`
+- `psgix.harakiri`
+- `psgix.input.buffered`
+- `psgix.io`
 ]
 ]
 
@@ -1237,38 +1237,38 @@ layout: true
 
 .condensed[
 .col[
-- .highlight[HTTP_ACCEPT]
-- .highlight[HTTP_ACCEPT_ENCODING]
-- .highlight[HTTP_ACCEPT_LANGUAGE]
-- .highlight[HTTP_CACHE_CONTROL]
-- .highlight[HTTP_CONNECTION]
-- .highlight[HTTP_DNT]
-- .highlight[HTTP_HOST]
-- .highlight[HTTP_USER_AGENT]
-- .highlight[PATH_INFO]
-- .highlight[QUERY_STRING ]
-- .highlight[REMOTE_ADDR]
-- .highlight[REMOTE_PORT]
-- .highlight[REQUEST_METHOD]
-- .highlight[REQUEST_URI]
-- .highlight[SCRIPT_NAME]
+- .highlight[`HTTP_ACCEPT`]
+- .highlight[`HTTP_ACCEPT_ENCODING`]
+- .highlight[`HTTP_ACCEPT_LANGUAGE`]
+- .highlight[`HTTP_CACHE_CONTROL`]
+- .highlight[`HTTP_CONNECTION`]
+- .highlight[`HTTP_DNT`]
+- .highlight[`HTTP_HOST`]
+- .highlight[`HTTP_USER_AGENT`]
+- .highlight[`PATH_INFO`]
+- .highlight[`QUERY_STRING `]
+- .highlight[`REMOTE_ADDR`]
+- .highlight[`REMOTE_PORT`]
+- .highlight[`REQUEST_METHOD`]
+- .highlight[`REQUEST_URI`]
+- .highlight[`SCRIPT_NAME`]
 ]
 .col[
-- .highlight[SERVER_NAME]
-- .highlight[SERVER_PORT]
-- .highlight[SERVER_PROTOCOL]
-- psgi.errors
-- psgi.input
-- psgi.multiprocess    
-- psgi.multithread     
-- psgi.nonblocking     
-- psgi.run_once        
-- psgi.streaming
-- psgi.url_scheme
-- psgi.version
-- psgix.harakiri
-- psgix.input.buffered
-- psgix.io
+- .highlight[`SERVER_NAME`]
+- .highlight[`SERVER_PORT`]
+- .highlight[`SERVER_PROTOCOL`]
+- `psgi.errors`
+- `psgi.input`
+- `psgi.multiprocess`
+- `psgi.multithread`
+- `psgi.nonblocking`
+- `psgi.run_once`
+- `psgi.streaming`
+- `psgi.url_scheme`
+- `psgi.version`
+- `psgix.harakiri`
+- `psgix.input.buffered`
+- `psgix.io`
 ]
 ]
 
@@ -1276,38 +1276,38 @@ layout: true
 
 .condensed[
 .col[
-- HTTP_ACCEPT
-- HTTP_ACCEPT_ENCODING
-- HTTP_ACCEPT_LANGUAGE
-- HTTP_CACHE_CONTROL
-- HTTP_CONNECTION
-- HTTP_DNT
-- HTTP_HOST
-- HTTP_USER_AGENT
-- PATH_INFO
-- QUERY_STRING 
-- REMOTE_ADDR
-- REMOTE_PORT
-- REQUEST_METHOD
-- REQUEST_URI
-- SCRIPT_NAME
+- `HTTP_ACCEPT`
+- `HTTP_ACCEPT_ENCODING`
+- `HTTP_ACCEPT_LANGUAGE`
+- `HTTP_CACHE_CONTROL`
+- `HTTP_CONNECTION`
+- `HTTP_DNT`
+- `HTTP_HOST`
+- `HTTP_USER_AGENT`
+- `PATH_INFO`
+- `QUERY_STRING `
+- `REMOTE_ADDR`
+- `REMOTE_PORT`
+- `REQUEST_METHOD`
+- `REQUEST_URI`
+- `SCRIPT_NAME`
 ]
 .col[
-- SERVER_NAME
-- SERVER_PORT
-- SERVER_PROTOCOL
-- .highlight[psgi.errors]
-- .highlight[psgi.input]
-- .highlight[psgi.multiprocess         ]
-- .highlight[psgi.multithread  ]
-- .highlight[psgi.nonblocking  ]
-- .highlight[psgi.run_once     ]
-- .highlight[psgi.streaming]
-- .highlight[psgi.url_scheme]
-- .highlight[psgi.version]
-- .highlight[psgix.harakiri]
-- .highlight[psgix.input.buffered]
-- .highlight[psgix.io]
+- `SERVER_NAME`
+- `SERVER_PORT`
+- `SERVER_PROTOCOL`
+- .highlight[`psgi.errors`]
+- .highlight[`psgi.input`]
+- .highlight[`psgi.multiprocess`]
+- .highlight[`psgi.multithread`]
+- .highlight[`psgi.nonblocking`]
+- .highlight[`psgi.run_once`]
+- .highlight[`psgi.streaming`]
+- .highlight[`psgi.url_scheme`]
+- .highlight[`psgi.version`]
+- .highlight[`psgix.harakiri`]
+- .highlight[`psgix.input.buffered`]
+- .highlight[`psgix.io`]
 ]
 ]
 
@@ -1381,7 +1381,7 @@ enable 'LogDispatch', logger => $logger;
 ### [`XSRFBlock`](https://metacpan.org/pod/Plack::Middleware::XSRFBlock)
 
 ```perl
-enable 'XSRFBlock';
+enable 'XSRFBlock', cookie_options => { httponly => 1 };
 ```
 
 - Blocking cross-site request forgery couldn't be easier.
@@ -1405,7 +1405,7 @@ layout: false
 ![CPAN](img/cpan.png)
 ]
 
-## Plack modules on the CPAN in July 2016
+## Plack modules in July 2016
 
 **10** `Plack-Handler-*` distributions
 
@@ -1417,7 +1417,17 @@ layout: false
 
 ## Parting Thoughts
 
-- You should write middleware!
+- PSGI also specifies a way to delay or stream responses to the server.
+
+???
+- It's kind of complicated, but you can read the spec to learn more.
+- Read the source code of various apps and middlewares to see how it works in practice.
+
+--
+- There are tons of great apps and middleware on the CPAN.
+
+--
+- Consider writing some of your app as a middleware.
 
 ???
 - The concept and implementation of middleware is cool.
@@ -1430,13 +1440,6 @@ layout: false
   - Sessions
   - Rate limiters
 
---
-- PSGI also specifies a way to delay or stream responses to the server.
-
-???
-- It's kind of complicated, but you can read the spec to learn more.
-- Read the source code of various apps and middlewares to see how it works in practice.
-
 ---
 
 class:  center, middle
This page took 0.039455 seconds and 4 git commands to generate.