com presentations: Added PHPNW talks: debug-setup-phpnw17.xml nonscalar-phpnw17.xml slides/debugging/gdb-what-is-it.xml

[email protected] (Derick Rethans) Tue, 26 Sep 2017 16:24:50 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    519e75823a9d6a44142fc12d7703d2ca2e2a251a
Author:    Derick Rethans <[email protected]>         Tue, 26 Sep 2017 17:24:50 +0100
Parents:   62549591a487d0302e769dddbe0e412bc96dd400
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=519e75823a9d6a44142fc12d7703d2ca2e2a251a

Log:
Added PHPNW talks

Changed paths:
  A  debug-setup-phpnw17.xml
  A  nonscalar-phpnw17.xml
  M  slides/debugging/gdb-what-is-it.xml
diff_519e75823a9d6a44142fc12d7703d2ca2e2a251a.txt (text/plain, 10.6 KB)
diff --git a/debug-setup-phpnw17.xml b/debug-setup-phpnw17.xml
new file mode 100644
index 0000000..65d6705
--- /dev/null
+++ b/debug-setup-phpnw17.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="10gen-strict.css">
+<topic>PHP</topic>
+<title>Debugging Your Set-Up</title>
+<event>PHP NorthWest 2017</event>
+<location>Manchester, UK</location>
+<lat>51.15056</lat><lon>4.43284</lon>
+<date>January 27th, 2017</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<joindin>https://joind.in/22137</joindin>
+
+<slide>slides/mongodb/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+In this session we will look at low-level (Linux) system debugging tools to
+find out what is going on (or wrong!) with your PHP environment, although the
+techniques are also valid for other programs besides PHP. We will cover
+debugging crashes with gdb, checking out memory leaks with valgrind, and many
+other tools to find out what is going wrong, and hopefully, figure out why.
+
+This session teaches tools to help out with tracking down bugs, and provides
+information on how to get better at debugging connection issues, crashes, files
+not being written, etc. The session is also valuable for people who want to
+help out with providing good bug reports for Open Source projects.
+
+<slide>slides/debugging/storytime.xml</slide>
+
+- don't jump to conclusions
+  - unless you know what you're doing ;-) https://jira.mongodb.org/browse/PHPC-894 / https://github.com/mongodb/mongo-php-driver/issues/514
+<slide>slides/debugging/jump-conclusions.xml</slide>
+
+<slide>slides/debugging/jump-memory-leak.xml</slide>
+
+<slide>slides/debugging/toolbox.xml</slide>
+<slide>slides/debugging/toolbox-items.xml</slide>
+
+<slide>slides/debugging/section-strace.xml</slide>
+<slide>slides/debugging/strace-systemcalls.xml</slide>
+<slide>slides/debugging/strace-invocation.xml</slide>
+<slide>slides/debugging/strace-invocation-phpini.xml</slide>
+<slide>slides/debugging/strace-invocation-socket.xml</slide>
+<slide>slides/debugging/demo.xml</slide>
+- strace
+  - what is it?
+  - how does it work?
+  - php.ini loading
+
+<slide>slides/debugging/jump-conclusions.xml</slide>
+<slide>slides/debugging/section-lsof.xml</slide>
+<slide>slides/debugging/lsof-files-unix.xml</slide>
+<slide>slides/debugging/lsof-invocation.xml</slide>
+<slide>slides/debugging/demo.xml</slide>
+<slide>slides/debugging/lsof-invocation-cant-listen.xml</slide>
+- lsof -i
+  - what is it?
+  - how does it work?
+  - socket with xdebug and fork
+    - set size: https://youtrack.jetbrains.com/issue/WI-31522, "PHP Scripts with Background Child Process" email
+  - setsize
+
+
+- small test case
+  - https://github.com/sebastianbergmann/php-code-coverage/issues/488
+
+<slide>slides/debugging/section-gdb.xml</slide>
+<slide>slides/debugging/gdb-what-is-it.xml</slide>
+<slide>slides/debugging/gdb-backtrace.xml</slide>
+<slide>slides/debugging/gdb-symbols.xml</slide>
+<slide>slides/debugging/demo.xml</slide>
+<slide>slides/debugging/gdb-optimisation.xml</slide>
+<slide>slides/debugging/gdb-optimisation-asm.xml</slide>
+<slide>slides/debugging/gdb-optimisation-wrong.xml</slide>
+<slide>slides/debugging/gdb-short-case.xml</slide>
+<slide>slides/debugging/gdb-usage.xml</slide>
+<slide>slides/debugging/gdb-debug-core.xml</slide>
+<slide>slides/debugging/gdb-attach.xml</slide>
+<slide>slides/debugging/demo.xml</slide>
+<slide>slides/debugging/gdb-zbacktrace.xml</slide>
+- gdb
+  - what is it?
+  - how does it work?
+  - talk about memory management in PHP
+  - crashes
+    - core files
+	- 
+  - attach to running PID
+  - run from within
+  - httpd -X
+  - symbols included
+    - optimisation
+  - zbacktrace
+
+<slide>slides/debugging/section-valgrind.xml</slide>
+<slide>slides/debugging/valgrind-how.xml</slide>
+<slide>slides/debugging/jump-memory-leak.xml</slide>
+<slide>slides/debugging/valgrind-show-leak1.xml</slide>
+<slide>slides/debugging/demo.xml</slide>
+<slide>slides/debugging/valgrind-show-leak2.xml</slide>
+<slide>slides/debugging/valgrind-show-leak3.xml</slide>
+<slide>slides/debugging/valgrind-show-leak4.xml</slide>
+<slide>slides/debugging/valgrind-show-leak5.xml</slide>
+<slide>slides/debugging/valgrind-show-leak6.xml</slide>
+<slide>slides/debugging/valgrind-wrap-up.xml</slide>
+- valgrind
+  - what is it?
+  - how does it work?
+  - memory leaks
+    - get_properties/get_gc
+  - run from with in
+  - use with gdb
+  - USE_ZEND_ALLOC=0
+  - ZEND_DONT_UNLOAD_MODULES
+
+** OPTIMISATION GONE WRONG **
+- gcc -S
+  - what is it?
+  - how does it work?
+  - compiler bug with alloca: https://bugs.xdebug.org/view.php?id=1337 https://bugs.php.net/bug.php?id=73545,
+  - don't use xdebug (sigh)
+    - https://github.com/xdebug/xdebug/commit/c36ea38141cb9403ff4bf72602fcf4ae62e5ba1e
+	- https://bugs.php.net/bug.php?id=73545
+
+
+<slide>slides/debugging/toolbox-items.xml</slide>
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/nonscalar-phpnw17.xml b/nonscalar-phpnw17.xml
new file mode 100644
index 0000000..089b098
--- /dev/null
+++ b/nonscalar-phpnw17.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="10gen-strict.css">
+<topic>MongoDB</topic>
+<title>Storing Non-Scalar Data</title>
+<event>PHP NorthWest 2017</event>
+<location>Manchester, UK</location>
+<date>September 30th, 2017</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>http://derickrethans.nl/talks.html</url>
+<joindin>https://joind.in/22136</joindin>
+<slide>slides/mongodb/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/mongodb/scalar-non-scalar-examples.xml</slide>
+<!-- <slide>slides/mongodb/scalar-non-scalar-example-vector.xml</slide> -->
+<slide>slides/mongodb/scalar-non-scalar-example-tag-cloud.xml</slide>
+<slide>slides/mongodb/scalar-non-scalar-example-product-properties.xml</slide>
+<!-- <slide>slides/mongodb/scalar-non-scalar-example-addresses.xml</slide> -->
+<slide>slides/mongodb/scalar-what-is-it-not.xml</slide>
+
+<slide>slides/mongodb/scalar-agenda.xml</slide>
+
+Intro into DB types and their data types
+<slide>slides/mongodb/scalar-section-dbs-and-types.xml</slide>
+
+    Key/Value:
+        Redis
+            LISTS
+            SETS
+            HASHES
+            Sorted SET
+<slide>slides/mongodb/scalar-key-value.xml</slide>
+<slide>slides/mongodb/scalar-redis.xml</slide>
+<!-- <slide>slides/mongodb/scalar-redis-lists.xml</slide> -->
+<slide>slides/mongodb/scalar-redis-sets.xml</slide>
+<slide>slides/mongodb/scalar-redis-hashses.xml</slide>
+<!-- <slide>slides/mongodb/scalar-redis-sorted-set.xml</slide> -->
+
+    Document:
+        MongoDB
+        CouchDB
+        Elastic Search
+<slide>slides/mongodb/scalar-document.xml</slide>
+<slide>slides/mongodb/scalar-mongodb.xml</slide>
+<slide>slides/mongodb/document-complex.xml</slide>
+<slide>slides/mongodb/phplib-crud-insert.xml</slide>
+<slide>slides/mongodb/scalar-couchdb.xml</slide>
+<slide>slides/mongodb/scalar-couchdb-example.xml</slide>
+<slide>slides/mongodb/scalar-couchdb-insert.xml</slide>
+<slide>slides/mongodb/scalar-elasticsearch.xml</slide>
+<slide>slides/mongodb/scalar-elasticsearch-example.xml</slide>
+<slide>slides/mongodb/scalar-elasticsearch-insert.xml</slide>
+
+    Relational:
+        MySQL
+            JSON
+        PostgreSQL
+            HSTORE
+            JSON
+            JSONB
+<slide>slides/mongodb/scalar-relational.xml</slide>
+<slide>slides/mongodb/scalar-mysql.xml</slide>
+<slide>slides/mongodb/scalar-mysql-json.xml</slide>
+<slide>slides/mongodb/scalar-mysql-json-example.xml</slide>
+<slide>slides/mongodb/scalar-postgresql.xml</slide>
+<slide>slides/mongodb/scalar-postgresql-hstore.xml</slide>
+<slide>slides/mongodb/scalar-postgresql-jsonb.xml</slide>
+<slide>slides/mongodb/scalar-postgresql-jsonb-example.xml</slide>
+
+<!-- <slide>slides/mongodb/scalar-storage-overview.xml</slide> -->
+
+<slide>slides/mongodb/scalar-section-query.xml</slide>
+
+Manipulation
+
+    Query
+        Query operators for $in, $elemMatch, etc
+        Query operations on nested fields
+
+<slide>slides/mongodb/scalar-query-redis.xml</slide>
+<slide>slides/mongodb/scalar-query-couchdb.xml</slide>
+<slide>slides/mongodb/scalar-query-mongodb.xml</slide>
+<slide>slides/mongodb/scalar-query-mongodb-aggregation.xml</slide>
+<slide>slides/mongodb/scalar-query-elasticsearch.xml</slide>
+<slide>slides/mongodb/scalar-query-mysql.xml</slide>
+<slide>slides/mongodb/scalar-query-postgresql-hstore.xml</slide>
+<!-- <slide>slides/mongodb/scalar-query-postgresql-jsonb.xml</slide> -->
+
+    Indexes
+        Redis
+        MongoDB
+        CouchDB
+        ElasticSearch
+        MySQL
+            only through virtual columns
+            Not on arrays
+        PostgreSQL
+            GIN/GIST 
+        Geospatial from GeoJSON sources (not PostGIS)
+
+<slide>slides/mongodb/indexes-title.xml</slide>
+<slide>slides/mongodb/scalar-index-redis.xml</slide>
+<slide>slides/mongodb/scalar-index-couchdb.xml</slide>
+<slide>slides/mongodb/index.xml</slide>
+<slide>slides/mongodb/scalar-index-elasticsearch.xml</slide>
+<slide>slides/mongodb/scalar-index-postgresql.xml</slide>
+<slide>slides/mongodb/scalar-index-mysql.xml</slide>
+
+
+<slide>slides/mongodb/scalar-section-manipulation.xml</slide>
+    Storing/Update
+        Atomicity
+            ACID
+            Single document with update specifiers
+        Partitioning on JSON data
+        Manipulation of JSON data
+<slide>slides/mongodb/scalar-atomicity.xml</slide>
+<!-- <slide>slides/mongodb/acid.xml</slide> -->
+<slide>slides/mongodb/scalar-nosql-acid.xml</slide>
+<slide>slides/mongodb/scalar-atomic-redis.xml</slide>
+<slide>slides/mongodb/scalar-atomic-couchdb.xml</slide>
+<slide>slides/mongodb/update-atomicity.xml</slide>
+
+    Schema validation
+        None can do that, besides MongoDB
+
+<slide>slides/mongodb/scalar-validate.xml</slide>
+<slide>slides/mongodb/document-validation.xml</slide>
+
+<slide>slides/mongodb/scalar-conclusion.xml</slide>
+
+
+Conclusion
+
+
+
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/slides/debugging/gdb-what-is-it.xml b/slides/debugging/gdb-what-is-it.xml
index 231590a..e61530c 100644
--- a/slides/debugging/gdb-what-is-it.xml
+++ b/slides/debugging/gdb-what-is-it.xml
@@ -3,7 +3,7 @@
 
 <list>
 	<bullet>a debugger</bullet>
-	<bullet>Like Xdebug/PhpStorm, but then for C programs</bullet>
+	<bullet>Like Xdebug/PhpStorm, but for C programs</bullet>
 	<bullet>Works through hardware interrupts</bullet>
 	<bullet>Fairly low level</bullet>
 	<bullet>Can be used to make a backtrace</bullet>