mirror of
https://github.com/php/presentations.git
synced 2026-03-23 23:22:22 +01:00
Added PHPNW talks
This commit is contained in:
130
debug-setup-phpnw17.xml
Normal file
130
debug-setup-phpnw17.xml
Normal file
@@ -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>derick@mongodb.com</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>
|
||||
142
nonscalar-phpnw17.xml
Normal file
142
nonscalar-phpnw17.xml
Normal file
@@ -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>derick@mongodb.com</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>
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user