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>