com presentations: New (virtual) talks: php-cambridgephp20.xml php-phpday20.xml slides/internals/php80-attributes-after.xml slides/internals/php80-cpp-with.xml slides/internals/php80-cpp-without.xml slides/internals/php80-weakmap.xml slides/internals/types.xml slides/toolbox/configuration.xml slides/xdebug/2020-07-improvements-wall-time-296.png slides/xdebug/2020-07-improvements-wall-time.png slides/xdebug/business-support.xml slides/xdebug/code-

[email protected] (Derick Rethans) Tue, 08 Sep 2020 08:58:01 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    515c2ce22fc56d53217e05c70734ec3c6d387587
Author:    Derick Rethans <[email protected]>         Tue, 8 Sep 2020 09:58:01 +0100
Parents:   31fda81e8791ccc09c4a8a946f022c838f3c1df2
Branches:  master

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

Log:
New (virtual) talks

Changed paths:
  A  php-cambridgephp20.xml
  A  php-phpday20.xml
  M  slides/internals/php80-attributes-after.xml
  M  slides/internals/php80-cpp-with.xml
  M  slides/internals/php80-cpp-without.xml
  M  slides/internals/php80-weakmap.xml
  A  slides/internals/types.xml
  M  slides/toolbox/configuration.xml
  A  slides/xdebug/2020-07-improvements-wall-time-296.png
  A  slides/xdebug/2020-07-improvements-wall-time.png
  M  slides/xdebug/business-support.xml
  M  slides/xdebug/code-reorgnisation.xml
  M  slides/xdebug/config-settings-3.xml
  M  slides/xdebug/config-settings-3b.xml
  A  slides/xdebug/diagnostic-log.xml
  M  slides/xdebug/focus-on-xdebug3.xml
  A  slides/xdebug/log-july-2020.png
  M  slides/xdebug/modes.xml
  M  slides/xdebug/test-with-many-versions.xml
  M  slides/xdebug/transparency.xml
  A  slides/xdebug/xdebug-3-speedup-1.xml
  A  slides/xdebug/xdebug-cloud-animation.webm
  A  slides/xdebug/xdebug-cloud-coming-soon.jpg
  M  templates/default/iframe.ezt
  M  templates/default/image.ezt
  M  templates/default/slide.ezt
  A  xdebug-phpugmm20.xml
diff_515c2ce22fc56d53217e05c70734ec3c6d387587.txt (text/plain, 31.7 KB)
diff --git a/php-cambridgephp20.xml b/php-cambridgephp20.xml
new file mode 100644
index 00000000..ae623f6b
--- /dev/null
+++ b/php-cambridgephp20.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>What's&#160;new&#160;in&#160;PHP&#160;8</title>
+<event>PHP North West</event>
+<location>Virtual Manchester, United Kingdom</location>
+<date>August 4th, 2020</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/php-phpnw20</url>
+<joindin></joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<!-- TYPES -->
+<slide>slides/internals/php74-typed-properties.xml</slide>
+<slide>slides/internals/php74-variance-argument-ok.xml</slide>
+
+<slide>slides/internals/php80-union-types.xml</slide>
+<slide>slides/internals/php80-union-types-phpdoc.xml</slide>
+<slide>slides/internals/php80-union-types-new.xml</slide>
+<slide>slides/internals/php80-union-types-examples.xml</slide>
+<slide>slides/internals/php80-trailing-comma-example.xml</slide>
+<slide>slides/internals/php80-union-types-law.xml</slide>
+<slide>slides/internals/php80-union-types-coercive.xml</slide>
+
+Mixed Type v2
+<slide>slides/internals/php80-mixed-types.xml</slide>
+
+Constructor Property Promotion
+<slide>slides/internals/php80-cpp-without.xml</slide>
+<slide>slides/internals/php80-cpp-with.xml</slide>
+
+<slide>slides/internals/php80-named-without.xml</slide>
+<slide>slides/internals/php80-named-with.xml</slide>
+
+Attributes v2
+<slide>slides/internals/php80-attributes-before.xml</slide>
+<slide>slides/internals/php80-attributes-after.xml</slide>
+<slide>slides/internals/php80-attributes-attribute-definition.xml</slide>
+<slide>slides/internals/php80-attributes-use-cases.xml</slide>
+<slide>slides/internals/php80-attributes-syntax.xml</slide>
+
+New Syntax
+<slide>slides/internals/php80-match.xml</slide>
+<slide>slides/internals/php80-null-safe.xml</slide>
+<slide>slides/internals/php80-null-safe-short-circuit.xml</slide>
+
+Small Fry
+<slide>slides/internals/php80-str-functions.xml</slide>
+<slide>slides/internals/php80-weakmap.xml</slide>
+
+<slide>slides/internals/php80-warning-to-error.xml</slide>
+
+Non-Capturing Catches
+<slide>slides/internals/php80-new-catch.xml</slide>
+
+JIT
+<slide>slides/internals/php80-jit.xml</slide>
+
+<slide>slides/xdebug/php80-when.xml</slide>
+
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+
+<slide>slides/internals/questions-new.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>
diff --git a/php-phpday20.xml b/php-phpday20.xml
new file mode 100644
index 00000000..0d42658a
--- /dev/null
+++ b/php-phpday20.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>What's&#160;new&#160;in&#160;PHP&#160;8</title>
+<event>phpDay 2020</event>
+<location>Virtual Verona, Italy</location>
+<date>September 9th, 2020</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/php-phpday20</url>
+<joindin></joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<!-- TYPES -->
+<slide>slides/internals/php74-typed-properties.xml</slide>
+<slide>slides/internals/php74-variance-argument-ok.xml</slide>
+
+<slide>slides/internals/php80-union-types.xml</slide>
+<slide>slides/internals/php80-union-types-phpdoc.xml</slide>
+<slide>slides/internals/php80-union-types-new.xml</slide>
+<slide>slides/internals/php80-union-types-examples.xml</slide>
+<slide>slides/internals/php80-trailing-comma-example.xml</slide>
+<!--<s lide>slides/internals/php80-union-types-law.xml</slide> -->
+<slide>slides/internals/php80-union-types-coercive.xml</slide>
+
+Mixed Type v2
+<slide>slides/internals/php80-mixed-types.xml</slide>
+
+Constructor Property Promotion
+<slide>slides/internals/php80-cpp-without.xml</slide>
+<slide>slides/internals/php80-cpp-with.xml</slide>
+
+<slide>slides/internals/php80-named-without.xml</slide>
+<slide>slides/internals/php80-named-with.xml</slide>
+
+Attributes v2
+<slide>slides/internals/php80-attributes-before.xml</slide>
+<slide>slides/internals/php80-attributes-after.xml</slide>
+<slide>slides/internals/php80-attributes-attribute-definition.xml</slide>
+<slide>slides/internals/php80-attributes-use-cases.xml</slide>
+
+New Syntax
+<slide>slides/internals/php80-match.xml</slide>
+<slide>slides/internals/php80-null-safe.xml</slide>
+<slide>slides/internals/php80-null-safe-short-circuit.xml</slide>
+
+Small Fry
+<slide>slides/internals/php80-str-functions.xml</slide>
+<slide>slides/internals/php80-weakmap.xml</slide>
+
+<slide>slides/internals/php80-warning-to-error.xml</slide>
+
+Non-Capturing Catches
+<slide>slides/internals/php80-new-catch.xml</slide>
+
+JIT
+<slide>slides/internals/php80-jit.xml</slide>
+
+<slide>slides/xdebug/php80-when.xml</slide>
+
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+
+<slide>slides/internals/questions-new.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>
diff --git a/slides/internals/php80-attributes-after.xml b/slides/internals/php80-attributes-after.xml
index 59053f1b..2d17534d 100644
--- a/slides/internals/php80-attributes-after.xml
+++ b/slides/internals/php80-attributes-after.xml
@@ -16,13 +16,13 @@ class Distillery
 
 <div effect="fade-in">
 <example inline="2" class="big"><![CDATA[
-    #[*ORM\Column]*("string") // Class Name]]>
+    #[*ORM\Column*("string")] // Class Name]]>
 </example>
 </div>
 
 <div effect="fade-in">
 <example inline="2" class="big"><![CDATA[
-    #[ORM\Column](*"string"*) // Constructor Arguments]]>
+    #[ORM\Column(*"string"*)] // Constructor Arguments]]>
 </example>
 </div>
 
diff --git a/slides/internals/php80-cpp-with.xml b/slides/internals/php80-cpp-with.xml
index 3cc71c22..ee590453 100644
--- a/slides/internals/php80-cpp-with.xml
+++ b/slides/internals/php80-cpp-with.xml
@@ -5,7 +5,7 @@
 &amp;lt;?php
 class 🥃whisky 
 {
-    function __constructor(
+    function __construct(
         *public*    string $name,
         *protected* Distillery $distillery,
         *public*    int $age,
diff --git a/slides/internals/php80-cpp-without.xml b/slides/internals/php80-cpp-without.xml
index d377c455..34ae5fa0 100644
--- a/slides/internals/php80-cpp-without.xml
+++ b/slides/internals/php80-cpp-without.xml
@@ -12,7 +12,7 @@ class 🥃whisky
 </example>
 <div effect="fade-in">
 <example>
-    function __constructor(string $name, Distillery $distillery, int $age, ?Bottler $bottler)
+    function __construct(string $name, Distillery $distillery, int $age, ?Bottler $bottler)
     {
         $this->name = $name;
         $this->distillery = $distillery;
diff --git a/slides/internals/php80-weakmap.xml b/slides/internals/php80-weakmap.xml
index ba3f4c6e..a171f701 100644
--- a/slides/internals/php80-weakmap.xml
+++ b/slides/internals/php80-weakmap.xml
@@ -12,9 +12,9 @@ unset($obj); // $obj automatically dropped from WeakMap!
 
 <break lines="2"/>
 <blurb class="centre">Use Case</blurb>
-<example><![CDATA[
-class FooBar {
+<example inline="2"><![CDATA[
 &lt;?php
+class FooBar {
     private WeakMap $cache;
 
     public function getSomethingWithCaching(object $obj) {
diff --git a/slides/internals/types.xml b/slides/internals/types.xml
new file mode 100644
index 00000000..32d23711
--- /dev/null
+++ b/slides/internals/types.xml
@@ -0,0 +1,4 @@
+<slide style="title" background="queries.jpg" background_attr="Véronique Debord-Lazaro — https://www.flickr.com/photos/debord/4932655275">
+<title>Types</title>
+
+</slide>
diff --git a/slides/toolbox/configuration.xml b/slides/toolbox/configuration.xml
index 7cfb272b..36386773 100644
--- a/slides/toolbox/configuration.xml
+++ b/slides/toolbox/configuration.xml
@@ -23,7 +23,7 @@ class eZTranslationCache {
 class ezcTranslationCache {
 	protected $region;
 
-	function __constructor( $region ) {
+	function __construct( $region ) {
 		$this->region = $region;
 	}
 }
diff --git a/slides/xdebug/2020-07-improvements-wall-time-296.png b/slides/xdebug/2020-07-improvements-wall-time-296.png
new file mode 100644
index 00000000..bfef378d
Binary files /dev/null and b/slides/xdebug/2020-07-improvements-wall-time-296.png differ
diff --git a/slides/xdebug/2020-07-improvements-wall-time.png b/slides/xdebug/2020-07-improvements-wall-time.png
new file mode 100644
index 00000000..e92f34d5
Binary files /dev/null and b/slides/xdebug/2020-07-improvements-wall-time.png differ
diff --git a/slides/xdebug/business-support.xml b/slides/xdebug/business-support.xml
index 996c643b..2c34f7a9 100644
--- a/slides/xdebug/business-support.xml
+++ b/slides/xdebug/business-support.xml
@@ -8,7 +8,7 @@
 <break/>
 
 <blurb class="centre">
-Intracto&#160; &#160;Strategery&#160; &#160;e3N GmbH &amp; Co.&#160; &#160;Automattic&#160;<br/>&#160;JetBrains&#160; &#160;TYPO3 GmbH&#160; &#160;Tideways&#160; &#160;php[architect]
+Seravo&#160; — &#160;CHECK24&#160; — &#160;Private&#160;Packagist&#160; — &#160;Supermetrics&#160; — &#160;Intracto&#160; — &#160;Strategery&#160; — &#160;e3N&#160; — &#160;Automattic&#160; — &#160;JetBrains&#160; — &#160;TYPO3&#160;GmbH&#160; — &#160;Tideways
 </blurb>
 
 </slide>
diff --git a/slides/xdebug/code-reorgnisation.xml b/slides/xdebug/code-reorgnisation.xml
index fe234199..c3c136f8 100644
--- a/slides/xdebug/code-reorgnisation.xml
+++ b/slides/xdebug/code-reorgnisation.xml
@@ -28,25 +28,29 @@ xdebug_handler_dbgp.c   xdebug_stack.h
 <div effect="fade-in">
 <example inline="2">
 *derick@gargleblaster:~/src$ ls -v ../\*.[ch] \*/\*.[ch]*
-../config.h            debugger/com.h          lib/str.c
-../php_xdebug.h        debugger/handlers.c     lib/str.h
-../xdebug.c            debugger/handlers.h     lib/usefulstuff.c
-base/base.c            debugger/handler_dbgp.c lib/usefulstuff.h
-base/base.h            debugger/handler_dbgp.h lib/var.c
-base/filter.c          gcstats/gcstats.c       lib/var.h
-base/filter.h          gcstats/gcstats.h       lib/xml.c
-base/monitor.c         gcstats/gc…private.h    lib/xml.h
-base/monitor.h         lib/compat.c            profiler/profiler.c
-base/stack.c           lib/compat.h            profiler/profiler.h
-base/stack.h           lib/hash.c              tracing/t…e_computerized.c
-base/superglobals.c    lib/hash.h              tracing/t…e_computerized.h
-base/superglobals.h    lib/llist.c             tracing/t…e_html.c
-coverage/branch_info.c lib/llist.h             tracing/t…e_html.h
-coverage/branch_info.h lib/mm.h                tracing/t…e_textual.c
-coverage/coverage.c    lib/private.c           tracing/t…e_textual.h
-coverage/coverage.h    lib/private.h           tracing/tracing.c
-coverage/cov…private.h lib/set.c               tracing/tracing.h
-debugger/com.c         lib/set.h               tracing/tracing_private.h
+base/base.c                      gcstats/gc_stats.c         lib/var_export_html.h
+base/base.h                      gcstats/gc_stats.h         lib/var_export_line.c
+base/filter.c                    gcstats/gc_stats_private.h lib/var_export_line.h
+base/filter.h                    lib/compat.c               lib/var_export_serialized.c
+base/monitor.c                   lib/compat.h               lib/var_export_serialized.h
+base/monitor.h                   lib/crc32.c                lib/var_export_text.c
+base/stack.c                     lib/crc32.h                lib/var_export_text.h
+base/stack.h                     lib/hash.c                 lib/var_export_xml.c
+base/superglobals.c              lib/hash.h                 lib/var_export_xml.h
+base/superglobals.h              lib/lib.c                  lib/xml.c
+coverage/branch_info.c           lib/lib.h                  lib/xml.h
+coverage/branch_info.h           lib/lib_private.h          profiler/profiler.c
+coverage/code_coverage.c         lib/llist.c                profiler/profiler.h
+coverage/code_coverage.h         lib/llist.h                profiler/profiler_private.h
+coverage/code_coverage_private.h lib/mm.h                   tracing/trace_computerized.c
+debugger/com.c                   lib/set.c                  tracing/trace_computerized.h
+debugger/com.h                   lib/set.h                  tracing/trace_html.c
+debugger/debugger.c              lib/str.c                  tracing/trace_html.h
+debugger/debugger.h              lib/str.h                  tracing/trace_textual.c
+debugger/debugger_private.h      lib/usefulstuff.c          tracing/trace_textual.h
+debugger/handlers.c              lib/usefulstuff.h          tracing/tracing.c
+debugger/handlers.h              lib/var.c                  tracing/tracing.h
+debugger/handler_dbgp.c          lib/var.h                  tracing/tracing_private.h
 </example>
 </div>
 </slide>
diff --git a/slides/xdebug/config-settings-3.xml b/slides/xdebug/config-settings-3.xml
index d3a1a74d..a528dcbd 100644
--- a/slides/xdebug/config-settings-3.xml
+++ b/slides/xdebug/config-settings-3.xml
@@ -41,7 +41,7 @@
 |aaaaaa|x.|overload_var_dump
 |aaaaaa|x.|profiler_aggregate
 |aaaaaa|x.|profiler_append
-|aaaaaa|x.|pprofiler_enable
+|aaaaaa|x.|profiler_enable
 |aaaaaa|x.|profiler_enable_trigger
 |aaaaaa|x.|profiler_enable_trigger_value
 |aaaaaa|x.|profiler_output_dir
diff --git a/slides/xdebug/config-settings-3b.xml b/slides/xdebug/config-settings-3b.xml
index d2315a57..2f197a22 100644
--- a/slides/xdebug/config-settings-3b.xml
+++ b/slides/xdebug/config-settings-3b.xml
@@ -5,77 +5,56 @@
 <tr>
 <td>
 <example inline="2">
-*|aaaaaa|x.|auto_trace*          ~x.always_start~
-*|aaaaaa|x.|cli_color*
-|aaaaaa|x.||0000ff|base|.collect_assignments
-|aaaaaa|x.||0000ff|base|.collect_includes
-|aaaaaa|x.||0000ff|base|.collect_params
-|aaaaaa|x.||0000ff|base|.collect_return
-|aaaaaa|x.||0000ff|base|.collect_vars
-*|aaaaaa|x.|coverage_enable*             ~x.mode~
-*|aaaaaa|x.|default_enable*              ~x.mode~
-|aaaaaa|x.||0000ff|display|.dump.COOKIE
-|aaaaaa|x.||0000ff|display|.dump.ENV
-|aaaaaa|x.||0000ff|display|.dump.FILES
-|aaaaaa|x.||0000ff|display|.dump.GET
-|aaaaaa|x.||0000ff|display|.dump.POST
-|aaaaaa|x.||0000ff|display|.dump.REQUEST
-|aaaaaa|x.||0000ff|display|.dump.SERVER
-|aaaaaa|x.||0000ff|display|.dump.SESSION
-|aaaaaa|x.||0000ff|display|.dump_globals
-*|aaaaaa|x.|dump_once*
-|aaaaaa|x.||0000ff|display|.dump_undefined
----*|00cc00|x.extended_info|*---         ~gone already~
-|aaaaaa|x.||0000ff|base|.file_link_format
+xdebug.cli_color
+xdebug.cloud.userid
+xdebug.collect_assignments
+xdebug.collect_return
+xdebug.dump.COOKIE
+xdebug.dump.ENV
+xdebug.dump.FILES
+xdebug.dump.GET
+xdebug.dump_globals
+xdebug.dump_once
+xdebug.dump.POST
+xdebug.dump.REQUEST
+xdebug.dump.SERVER
+xdebug.dump.SESSION
+xdebug.dump_undefined
+xdebug.file_link_format
+xdebug.filename_format
+xdebug.force_display_errors
+xdebug.force_error_reporting
+xdebug.gc_stats_output_name
+xdebug.halt_level
+xdebug.idekey
+|00dd00|xdebug.log|
+|00dd00|xdebug.log_level|
+xdebug.max_nesting_level
 </example></td><td><example inline="2">
-|aaaaaa|x.||0000ff|base|.filename_format
-|aaaaaa|x.||0000ff|base|.force_display_errors
-|aaaaaa|x.||0000ff|base|.force_error_reporting
-|aaaaaa|x.||0000ff|base|.gc_stats_enable
-*|aaaaaa|x.|gc_stats_output_dir*            ~x.output_dir~
-*|aaaaaa|x.|gc_stats_output_name*           ~x.output_name~
-|aaaaaa|x.||0000ff|base|.halt_level
-*|aaaaaa|x.|idekey*
-|aaaaaa|x.||0000ff|base|.max_nesting_level
-|aaaaaa|x.||0000ff|display|.max_stack_frames
-|aaaaaa|x.||0000ff|display|.overload_var_dump
-*|aaaaaa|x.|profiler_aggregate*
-*|aaaaaa|x.|profiler_append*
-*|aaaaaa|x.|profiler_enable*                ~x.mode~
-*|aaaaaa|x.|profiler_enable_trigger*        ~x.enable_trigger~
-*|aaaaaa|x.|profiler_enable_trigger_value*  ~x.enable_…_value~
-*|aaaaaa|x.|profiler_output_dir*            ~x.output_dir~
-*|aaaaaa|x.|profiler_output_name*           ~x.output_name~
-|aaaaaa|x.||0000ff|debugger|.addr_header
-*|aaaaaa|x.|remote.autostart*               ~x.always_start~
-|aaaaaa|x.||0000ff|debugger|.connect_back
-|aaaaaa|x.||0000ff|debugger|.cookie_expire_time
+xdebug.max_stack_frames
+|ff0000|xdebug.mode|
+xdebug.output_dir
+xdebug.profiler_append
+xdebug.profiler_output_name
+xdebug.remote_addr_header
+xdebug.remote_connect_back
+xdebug.remote_cookie_expire_time
+xdebug.remote_host
+xdebug.remote_port
+xdebug.remote_timeout
+xdebug.scream
+xdebug.show_error_trace
+xdebug.show_exception_trace
+xdebug.show_local_vars
+|ff0000|xdebug.start_upon_error|
+|ff0000|xdebug.start_with_request|
+xdebug.trace_format
+xdebug.trace_options
+xdebug.trace_output_name
+xdebug.trigger_value
+xdebug.var_display_max_children
+xdebug.var_display_max_data
+xdebug.var_display_max_depth
 </example></td>
-<!--
-<td><example inline="2">
-*|aaaaaa|x.|remote_enable*                  ~x.mode~
-*|aaaaaa|x.|remote_handler*
-|aaaaaa|x.||0000ff|debugger|.host
-|aaaaaa|x.||0000ff|debugger|.log
-|aaaaaa|x.||0000ff|debugger|.mode
-|aaaaaa|x.||0000ff|debugger|.port
-|aaaaaa|x.||0000ff|debugger|.timeout
-*|aaaaaa|x.|scream*                         ~always on ☺~
-|aaaaaa|x.||0000ff|display|.show_error_trace
-|aaaaaa|x.||0000ff|display|.show_exception_trace
-|aaaaaa|x.||0000ff|display|.show_local_vars
-*|aaaaaa|x.|show_mem_delta*                 ~always on~
-*|aaaaaa|x.|trace_enable_trigger*           ~x.enable_trigger~
-*|aaaaaa|x.|trace_enable_trigger_value*     ~x.enable_trigger_value~
-|aaaaaa|x.||0000ff|tracing|.format
-|aaaaaa|x.||0000ff|tracing|.options
-*|aaaaaa|x.|trace_output_dir*               ~x.output_dir~
-*|aaaaaa|x.|trace_output_name*              ~x.output_name~
-|aaaaaa|x.||0000ff|display|.max_children
-|aaaaaa|x.||0000ff|display|.max_data
-|aaaaaa|x.||0000ff|display|.max_depth
-</example>
-</td>
--->
 </tr></table>
 </slide>
diff --git a/slides/xdebug/diagnostic-log.xml b/slides/xdebug/diagnostic-log.xml
new file mode 100644
index 00000000..2bbc5138
--- /dev/null
+++ b/slides/xdebug/diagnostic-log.xml
@@ -0,0 +1,9 @@
+<slide>
+<title>Diagnostic Log</title>
+
+<example result="1">
+<![CDATA[<?php
+xdebug_info();
+]]>
+</example>
+</slide>
diff --git a/slides/xdebug/focus-on-xdebug3.xml b/slides/xdebug/focus-on-xdebug3.xml
index 2e73b3f7..a2fd2b4c 100644
--- a/slides/xdebug/focus-on-xdebug3.xml
+++ b/slides/xdebug/focus-on-xdebug3.xml
@@ -14,12 +14,12 @@
 <break/>
 <blurb>*Xdebug ~3~*</blurb>
 <list>
-	<bullet>|ffff00|❋| The Big Refactor™
+	<bullet>|cc8800|❋| The Big Refactor™
 		<list>
-			<bullet>Introducing modes</bullet>
-			<bullet>Simplify configuration and validation</bullet>
+			<bullet>|00ff00|✔| Introducing modes</bullet>
+			<bullet>|cc8800|❋| Simplify configuration and validation</bullet>
 		</list>
 	</bullet>
-	<bullet>Performance Improvements</bullet>
+	<bullet>|cc8800|❋|  Performance Improvements</bullet>
 </list>
 </slide>
diff --git a/slides/xdebug/log-july-2020.png b/slides/xdebug/log-july-2020.png
new file mode 100644
index 00000000..d2181820
Binary files /dev/null and b/slides/xdebug/log-july-2020.png differ
diff --git a/slides/xdebug/modes.xml b/slides/xdebug/modes.xml
index 6e33549c..c9e80cc0 100644
--- a/slides/xdebug/modes.xml
+++ b/slides/xdebug/modes.xml
@@ -7,8 +7,8 @@
 <blurb class="center">Loaded, but miniscule overhead</blurb>
 </div>
 <div effect="fade-in-out">
-<blurb class="big-centre">Base</blurb>
-<blurb class="center">Every day debugging aide</blurb>
+<blurb class="big-centre">Develop</blurb>
+<blurb class="center">Every day debugging aides</blurb>
 </div>
 <div effect="fade-in-out">
 <blurb class="big-centre">Debugger</blurb>
diff --git a/slides/xdebug/test-with-many-versions.xml b/slides/xdebug/test-with-many-versions.xml
index 7a5e3ddd..ecab2769 100644
--- a/slides/xdebug/test-with-many-versions.xml
+++ b/slides/xdebug/test-with-many-versions.xml
@@ -2,34 +2,40 @@
 <title>Various Versions</title>
 
 <example class="small" inline="2">
-              7.1.15        7.1.23-zts    7.1.32-zts    7.2.10-32bit  7.2.19-zts    7.2.7         7.3.4-zts
-              7.1.15-32bit  7.1.24        7.1.3-32bit   7.2.10-zts    7.2.1-zts     7.2.7-32bit   7.3.5
-              7.1.15-zts    7.1.24-32bit  7.1.3-zts     7.2.11        7.2.2         7.2.7-zts     7.3.5-32bit
-              7.1.16        7.1.24-zts    7.1.4         7.2.11-32bit  7.2.20        7.2.8         7.3.5-zts
-              7.1.16-32bit  7.1.25        7.1.4-32bit   7.2.11-zts    7.2.20-32bit  7.2.8-32bit   7.3.6
-              7.1.16-zts    7.1.25-32bit  7.1.4-zts     7.2.12        7.2.20-zts    7.2.8-zts     7.3.6-32bit
-              7.1.17        7.1.25-zts    7.1.5         7.2.12-32bit  7.2.21        7.2.9         7.3.6-zts
-              7.1.17-32bit  7.1.26        7.1.5-32bit   7.2.12-zts    7.2.21-32bit  7.2.9-32bit   7.3.7
-              7.1.17-zts    7.1.26-32bit  7.1.5-zts     7.2.13        7.2.21-zts    7.2.9-zts     7.3.7-32bit
-7.1.0         7.1.18        7.1.26-zts    7.1.6         7.2.1-32bit   7.2.22        7.2dev        7.3.7-zts
-7.1.0-32bit   7.1.18-32bit  7.1.27        7.1.6-32bit   7.2.13-32bit  7.2.22-32bit  7.2dev-32bit  7.3.8
-7.1.0-zts     7.1.18-zts    7.1.27-32bit  7.1.6-zts     7.2.13-zts    7.2.22-zts    7.2dev-zts    7.3.8-32bit
-7.1.1         7.1.19        7.1.27-zts    7.1.7         7.2.14        7.2.23        7.3.0         7.3.8-zts
-7.1.10        7.1.19-32bit  7.1.28        7.1.7-32bit   7.2.14-32bit  7.2.2-32bit   7.3.0-32bit   7.3.9
-7.1.10-32bit  7.1.19-zts    7.1.28-32bit  7.1.7-zts     7.2.14-zts    7.2.23-32bit  7.3.0-zts     7.3.9-32bit
-7.1.10-zts    7.1.1-zts     7.1.28-zts    7.1.8         7.2.15        7.2.23-zts    7.3.1         7.3.9-zts
-7.1.11        7.1.2         7.1.29        7.1.8-32bit   7.2.15-32bit  7.2.2-zts     7.3.10        7.3dev
-7.1.11-32bit  7.1.20        7.1.29-32bit  7.1.8-zts     7.2.15-zts    7.2.3         7.3.10-32bit  7.3dev-32bit
-7.1.11-zts    7.1.20-32bit  7.1.29-zts    7.1.9         7.2.16        7.2.3-32bit   7.3.10-zts    7.3dev-zts
-7.1.12        7.1.20-zts    7.1.2-zts     7.1.9-32bit   7.2.16-32bit  7.2.3-zts     7.3.1-32bit   7.4dev
-7.1.12-32bit  7.1.21        7.1.3         7.1.9-zts     7.2.16-zts    7.2.4         7.3.1-zts     7.4dev-32bit
-7.1.12-zts    7.1.21-32bit  7.1.30        7.1dev        7.2.17        7.2.4-32bit   7.3.2         7.4dev-zts
-7.1.13        7.1.21-zts    7.1.30-32bit  7.1dev-32bit  7.2.17-32bit  7.2.4-zts     7.3.2-32bit   master
-7.1.1-32bit   7.1.22        7.1.30-zts    7.1dev-zts    7.2.17-zts    7.2.5         7.3.2-zts     master-32bit
-7.1.13-32bit  7.1.22-32bit  7.1.31        7.2.0         7.2.18        7.2.5-32bit   7.3.3         master-zts
-7.1.13-zts    7.1.22-zts    7.1.31-32bit  7.2.0-32bit   7.2.18-32bit  7.2.5-zts     7.3.3-32bit
-7.1.14        7.1.23        7.1.31-zts    7.2.0-zts     7.2.18-zts    7.2.6         7.3.3-zts
-7.1.14-32bit  7.1.2-32bit   7.1.32        7.2.1         7.2.19        7.2.6-32bit   7.3.4
-7.1.14-zts    7.1.23-32bit  7.1.32-32bit  7.2.10        7.2.19-32bit  7.2.6-zts     7.3.4-32bit
+              7.2.12        7.2.22-zts        7.2.33        7.3.11-zts    7.3.2-zts     7.4.3-32bit
+              7.2.12-32bit  7.2.23            7.2.3-32bit   7.3.12        7.3.3         7.4.3-zts
+              7.2.12-zts    7.2.2-32bit       7.2.33-32bit  7.3.12-32bit  7.3.3-32bit   7.4.4
+              7.2.13        7.2.23-32bit      7.2.33-zts    7.3.12-zts    7.3.3-zts     7.4.4-32bit
+              7.2.1-32bit   7.2.23-zts        7.2.3-zts     7.3.13        7.3.4         7.4.4-zts
+              7.2.13-32bit  7.2.24            7.2.4         7.3.1-32bit   7.3.4-32bit   7.4.5
+              7.2.13-zts    7.2.24-32bit      7.2.4-32bit   7.3.13-32bit  7.3.4-zts     7.4.5-32bit
+              7.2.14        7.2.24-zts        7.2.4-zts     7.3.13-zts    7.3.5         7.4.5-zts
+              7.2.14-32bit  7.2.25            7.2.5         7.3.14        7.3.5-32bit   7.4.6
+              7.2.14-zts    7.2.25-32bit      7.2.5-32bit   7.3.14-32bit  7.3.5-zts     7.4.6-32bit
+              7.2.15        7.2.25-zts        7.2.5-zts     7.3.14-zts    7.3.6         7.4.6-zts
+              7.2.15-32bit  7.2.25-zts-32bit  7.2.6         7.3.15        7.3.6-32bit   7.4.7
+              7.2.15-zts    7.2.26            7.2.6-32bit   7.3.15-32bit  7.3.6-zts     7.4.7-32bit
+              7.2.16        7.2.26-32bit      7.2.6-zts     7.3.15-zts    7.3.7         7.4.7-zts
+              7.2.16-32bit  7.2.26-zts        7.2.7         7.3.16        7.3.7-32bit   7.4.8
+              7.2.16-zts    7.2.27            7.2.7-32bit   7.3.16-32bit  7.3.7-zts     7.4.8-32bit
+              7.2.17        7.2.27-32bit      7.2.7-zts     7.3.16-zts    7.3.8         7.4.8-zts
+              7.2.17-32bit  7.2.27-zts        7.2.8         7.3.17        7.3.8-32bit   7.4.9
+              7.2.17-zts    7.2.28            7.2.8-32bit   7.3.17-32bit  7.3.8-zts     7.4.9-32bit
+              7.2.18        7.2.28-32bit      7.2.8-zts     7.3.17-zts    7.3.9         7.4.9-zts
+              7.2.18-32bit  7.2.28-zts        7.2.9         7.3.18        7.3.9-32bit   7.4dev
+              7.2.18-zts    7.2.29            7.2.9-32bit   7.3.18-32bit  7.3.9-zts     7.4dev-32bit
+              7.2.19        7.2.29-32bit      7.2.9-zts     7.3.18-zts    7.3dev        7.4dev-zts
+              7.2.19-32bit  7.2.29-zts        7.2dev        7.3.19        7.3dev-32bit          
+              7.2.19-zts    7.2.2-zts         7.2dev-32bit  7.3.19-32bit  7.3dev-zts    master
+7.2.0         7.2.1-zts     7.2.3             7.2dev-zts    7.3.19-zts    7.4.0         master-32bit
+7.2.0-32bit   7.2.2         7.2.30            7.3.0         7.3.1-zts     7.4.0-32bit   master-zts
+7.2.0-zts     7.2.20        7.2.30-32bit      7.3.0-32bit   7.3.2         7.4.0-zts
+7.2.1         7.2.20-32bit  7.2.30-zts        7.3.0-zts     7.3.20        7.4.1
+7.2.10        7.2.20-zts    7.2.31            7.3.1         7.3.20-32bit  7.4.1-32bit
+7.2.10-32bit  7.2.21        7.2.31-32bit      7.3.10        7.3.20-zts    7.4.1-zts
+7.2.10-zts    7.2.21-32bit  7.2.31-zts        7.3.10-32bit  7.3.21        7.4.2
+7.2.11        7.2.21-zts    7.2.32            7.3.10-zts    7.3.21-32bit  7.4.2-32bit
+7.2.11-32bit  7.2.22        7.2.32-32bit      7.3.11        7.3.21-zts    7.4.2-zts
+7.2.11-zts    7.2.22-32bit  7.2.32-zts        7.3.11-32bit  7.3.2-32bit   7.4.3
 </example>
 </slide>
diff --git a/slides/xdebug/transparency.xml b/slides/xdebug/transparency.xml
index 243ee519..79b49da2 100644
--- a/slides/xdebug/transparency.xml
+++ b/slides/xdebug/transparency.xml
@@ -1,5 +1,5 @@
 <slide>
 <title>Transparency</title>
 
-<image filename="log-january-2020.png"/>
+<image filename="log-july-2020.png"/>
 </slide>
diff --git a/slides/xdebug/xdebug-3-speedup-1.xml b/slides/xdebug/xdebug-3-speedup-1.xml
new file mode 100644
index 00000000..2ed29e73
--- /dev/null
+++ b/slides/xdebug/xdebug-3-speedup-1.xml
@@ -0,0 +1,10 @@
+<slide>
+<title>Xdebug 3 Performance</title>
+
+<div effect="fade-out">
+<image zoom="1.5" filename="2020-07-improvements-wall-time.png"/>
+</div>
+<div effect="fade-in">
+<image zoom="1.5" filename="2020-07-improvements-wall-time-296.png"/>
+</div>
+</slide>
diff --git a/slides/xdebug/xdebug-cloud-animation.webm b/slides/xdebug/xdebug-cloud-animation.webm
new file mode 100644
index 00000000..0f472b15
Binary files /dev/null and b/slides/xdebug/xdebug-cloud-animation.webm differ
diff --git a/slides/xdebug/xdebug-cloud-coming-soon.jpg b/slides/xdebug/xdebug-cloud-coming-soon.jpg
new file mode 100644
index 00000000..ffbfe7ef
Binary files /dev/null and b/slides/xdebug/xdebug-cloud-coming-soon.jpg differ
diff --git a/templates/default/iframe.ezt b/templates/default/iframe.ezt
index 99094ebb..ca2301ed 100644
--- a/templates/default/iframe.ezt
+++ b/templates/default/iframe.ezt
@@ -8,7 +8,7 @@
 {var $source = ''}
 {if !$width}{$width = 1010}{/if}
 {if !$height}{$height = 592}{/if}
-{if str_starts_with(get_attribute($node, 'filename'), 'http://')}
+{if str_starts_with(get_attribute($node, 'filename'), 'http')}
 {$source = get_attribute($node, 'filename')}
 {else}
 {$source = str_append($pres->base, get_attribute( $node, 'filename' ))}
diff --git a/templates/default/image.ezt b/templates/default/image.ezt
index acdb5a28..7b9a8c29 100644
--- a/templates/default/image.ezt
+++ b/templates/default/image.ezt
@@ -2,6 +2,8 @@
 {var $align = get_attribute( $node, 'align' )}
 {var $attr = get_attribute( $node, 'attr' )}
 {var $width = get_attribute( $node, 'width' )}
+{var $zoom = get_attribute( $node, 'zoom' )}
+{if !$zoom}{$zoom = 1}{/if}
 {if $attr}<div{if $align} style='float: {$align}'{/if}><div>{/if}
-<img {if $inline}class='inline' {/if}{if $align}align='{$align}' class='{$align}' {/if}{if $width}width='{$width}' {/if}src='{$pres->base}{get_attribute( $node, 'filename' )}'/>
+<img style="zoom={$zoom}; -moz-transform: scale({$zoom}); -moz-transform-origin: top center; clear: both;" {if $inline}class='inline' {/if}{if $align}align='{$align}' class='{$align}' {/if}{if $width}width='{$width}' {/if}src='{$pres->base}{get_attribute( $node, 'filename' )}'/>
 {if $attr}<p class='attribution'>{$attr}</p></div></div>{/if}
diff --git a/templates/default/slide.ezt b/templates/default/slide.ezt
index 6c32ec30..5d1cc30c 100644
--- a/templates/default/slide.ezt
+++ b/templates/default/slide.ezt
@@ -115,7 +115,6 @@ $('*').on("keydown", function(event) {
 {var $imgAttr = get_attribute( $node, 'background_attr' )}
 {var $maincolor = get_attribute( $node, 'template' )}
 <body{if $img} style='background-image: url({$pres->base}{$img}); background-size: cover;'{/if}>
-<div class='twitter'>@derickr</div>
 <div class='whole-slide{if $maincolor} template-{$maincolor}{/if}'>
 {switch ( get_attribute( $node, 'type' ) )}
 	{case 'agenda'}
diff --git a/xdebug-phpugmm20.xml b/xdebug-phpugmm20.xml
new file mode 100644
index 00000000..eee48585
--- /dev/null
+++ b/xdebug-phpugmm20.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>Debugging</topic>
+<title>Xdebug 3.0</title>
+<event>PHP UG Rhein-Neckar</event>
+<location>Virtual Mannheim, Germany</location>
+<date>August 27th, 2020</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/xdebug-phpugmm20</url>
+<joindin>https://xdebug.org</joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/xdebug/focus-on-xdebug.xml</slide>
+The Xdebug Experience
+17 years
+
+<slide>slides/xdebug/config-settings-2.xml</slide>
+<slide>slides/xdebug/breakpoints-2.xml</slide>
+<slide>slides/xdebug/xdebug-slow.xml</slide>
+<slide>slides/xdebug/port9000.xml</slide>
+
+<slide>slides/xdebug/focus-on-xdebug2.xml</slide>
+
+<slide>slides/xdebug/focus-on-xdebug3.xml</slide>
+breakpoint behaviour
+New versions (7.4)
+CI
+<!--
+<s lide>slides/xdebug/xdebug-2.8.xml</slide>
+<s lide>slides/xdebug/breakpoint-behaviour.xml</slide>
+-->
+
+<slide>slides/xdebug/test-with-many-versions.xml</slide>
+<slide>slides/xdebug/xdebug-ci.xml</slide>
+
+<slide>slides/xdebug/xdebug-2.9.xml</slide>
+<slide>slides/xdebug/cc-speedup.xml</slide>
+
+<slide>slides/xdebug/xdebug-3.xml</slide>
+<slide>slides/xdebug/focus-on-xdebug3.xml</slide>
+Code reorganisation
+Modes
+- only do what is needed
+Reduce Configuration Options
+Code Improvements (algorithms, memory, etc)
+<slide>slides/xdebug/code-reorgnisation.xml</slide>
+<slide>slides/xdebug/modes.xml</slide>
+<slide>slides/xdebug/config-settings-3.xml</slide>
+<slide>slides/xdebug/config-settings-3b.xml</slide>
+
+<slide>slides/xdebug/xdebug-hard.xml</slide>
+<!-- <s lide>slides/xdebug/connect1.xml</slide> -->
+<!-- <s lide>slides/xdebug/connect2.xml</slide> -->
+<slide>slides/xdebug/debugger-activation.xml</slide>
+<slide>slides/xdebug/debugger-connection-log.xml</slide>
+<slide>slides/xdebug/diagnostic-log.xml</slide>
+
+<slide>slides/xdebug/xdebug-3-speedup-1.xml</slide>
+
+<slide>slides/xdebug/xdebug-cloud-announcement.xml</slide>
+
+<slide>slides/xdebug/donate.xml</slide>
+<slide>slides/xdebug/business-support.xml</slide>
+<slide>slides/xdebug/transparency.xml</slide>
+
+
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>