com presentations: PHP and Xdebug talks for PHP Brussels: php-brussels19.xml slides/internals/php74-__tostring-ex ceptions.xml slides/internals/php74-concat-operator-pre cedence.xml slides/internals/php74-custom-serialization -inheritence.xml slides/internals/php74-deprecate-curly -brace.xml slides/internals/php74-hash-argon.xml sl ides/internals/php74-invalid-container-read.xml slides/ internals/php74-operator-precedence-ternary.xml slides/ internals/p

[email protected] (Derick Rethans) Wed, 11 Dec 2019 10:34:30 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    bcbe5b0fad1aa06b40a708379ecae08248eca7a7
Author:    Derick Rethans <[email protected]>         Wed, 11 Dec 2019 10:34:30 +0000
Parents:   c728b39f85dc3ad54802f88b28a15016513afef8
Branches:  master

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

Log:
PHP and Xdebug talks for PHP Brussels

Changed paths:
  A  php-brussels19.xml
  M  slides/internals/php74-__tostring-exceptions.xml
  M  slides/internals/php74-concat-operator-precedence.xml
  M  slides/internals/php74-custom-serialization-inheritence.xml
  M  slides/internals/php74-deprecate-curly-brace.xml
  M  slides/internals/php74-hash-argon.xml
  M  slides/internals/php74-invalid-container-read.xml
  M  slides/internals/php74-operator-precedence-ternary.xml
  M  slides/internals/php74-timeline.xml
  M  slides/internals/php74-typed-properties-read.xml
  M  slides/internals/php74-typed-properties-write-coersive.xml
  M  slides/internals/php74-typed-properties-write-strict.xml
  M  slides/internals/php74-typed-properties-write.xml
  M  slides/internals/php74-typed-properties.xml
  M  slides/internals/php74-variance-argument-ok.xml
  M  slides/internals/php74-variance-argument-wrong.xml
  M  slides/internals/php74-variance-properties-ok.xml
  M  slides/internals/php74-variance-properties-wrong.xml
  M  slides/internals/php74-variance-return-ok.xml
  M  slides/internals/php74-variance-return-wrong.xml
  M  slides/internals/php74-weakref.xml
  M  slides/xdebug/breakpoints-2.xml
  A  xdebug-brussels19.xml
diff_bcbe5b0fad1aa06b40a708379ecae08248eca7a7.txt (text/plain, 23.2 KB)
diff --git a/php-brussels19.xml b/php-brussels19.xml
new file mode 100644
index 00000000..506bea06
--- /dev/null
+++ b/php-brussels19.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>Debugging</topic>
+<title>The La(te)st PHP 7 — What's&#160;new&#160;in&#160;PHP&#160;7.4</title>
+<event>Brussels PHP UG</event>
+<location>Brussels, Belgium</location>
+<date>December 11th, 2019</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/php-brussels19</url>
+<joindin></joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/php74-typed-properties.xml</slide>
+<slide>slides/internals/php74-typed-properties-read.xml</slide>
+<slide>slides/internals/php74-typed-properties-write.xml</slide>
+<slide>slides/internals/php74-typed-properties-write-coersive.xml</slide>
+<slide>slides/internals/php74-typed-properties-write-strict.xml</slide>
+<slide>slides/internals/php74-variance-return-ok.xml</slide>
+<slide>slides/internals/php74-variance-return-wrong.xml</slide>
+<slide>slides/internals/php74-variance-argument-ok.xml</slide>
+<slide>slides/internals/php74-variance-argument-wrong.xml</slide>
+<slide>slides/internals/php74-variance-properties-ok.xml</slide>
+<slide>slides/internals/php74-variance-properties-wrong.xml</slide>
+
+<slide>slides/internals/php74-null-coalesce-assignment.xml</slide>
+<slide>slides/internals/php74-spread-operator.xml</slide>
+<slide>slides/internals/php74-invalid-container-read.xml</slide>
+
+<slide>slides/internals/php74-ffi.xml</slide>
+<slide>slides/internals/php74-ffi-example.xml</slide>
+<slide>slides/internals/php74-preloading.xml</slide>
+<slide>slides/internals/php74-preloading-setup.xml</slide>
+<slide>slides/internals/php74-preloading-zf.xml</slide>
+<slide>slides/internals/php74-preloading-with-ffi.xml</slide>
+
+<slide>slides/internals/php74-reference-reflection.xml</slide>
+<slide>slides/internals/php74-custom-serialization.xml</slide>
+<slide>slides/internals/php74-custom-serialization-inheritence.xml</slide>
+
+<slide>slides/internals/php74-always-hash.xml</slide>
+<slide>slides/internals/php74-unbundle.xml</slide>
+
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+<slide>slides/internals/phpinternalsnews-me.xml</slide>
+
+<slide>slides/internals/php74-saner-string-number-comparisons.xml</slide>
+<slide>slides/internals/php74-weakref.xml</slide>
+<slide>slides/internals/php74-short-arrow-functions.xml</slide>
+<slide>slides/internals/php74-short-arrow-functions-example.xml</slide>
+<slide>slides/internals/php74-lsp-operator-precedence-lsp.xml</slide>
+<slide>slides/internals/php74-operator-precedence-ternary.xml</slide>
+<slide>slides/internals/php74-concat-operator-precedence.xml</slide>
+<slide>slides/internals/php74-hash-argon.xml</slide>
+<slide>slides/internals/php74-__tostring-exceptions.xml</slide>
+<slide>slides/internals/php74-base-convert.xml</slide>
+<slide>slides/internals/php74-numeric-literal-separator.xml</slide>
+<slide>slides/internals/php74-deprecate-curly-brace.xml</slide>
+<slide>slides/internals/php74-postgresql-escape.xml</slide>
+<!-- <slide>slides/internals/php74-arginfo.xml</slide> -->
+<slide>slides/internals/php74-deprecations.xml</slide>
+<slide>slides/internals/php74-timeline.xml</slide>
+
+<slide>slides/internals/questions-new.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>
diff --git a/slides/internals/php74-__tostring-exceptions.xml b/slides/internals/php74-__tostring-exceptions.xml
index ea6a8a99..c63377a7 100644
--- a/slides/internals/php74-__tostring-exceptions.xml
+++ b/slides/internals/php74-__tostring-exceptions.xml
@@ -7,7 +7,7 @@ Episode 14 — __toString Exceptions — Nikita Popov
 
 <example result="1">
 &lt;?php
-class 💥
+class 💥explode
 {
 	function __toString()
 	{
@@ -15,8 +15,8 @@ class 💥
 	}
 }
 
-$💣  = new 💥;
-echo $💣;
+$💣bomb  = new 💥explode;
+echo $💣bomb;
 ?>
 </example>
 <break lines="3"/>
@@ -24,7 +24,7 @@ echo $💣;
 <div effect="fade-out">
 <blurb>PHP 7.3:</blurb>
 <example class="error">
-Fatal error: Method 💥::__toString() must not throw an exception, caught Exception
+Fatal error: Method 💥explode::__toString() must not throw an exception, caught Exception
 </example>
 </div>
 
diff --git a/slides/internals/php74-concat-operator-precedence.xml b/slides/internals/php74-concat-operator-precedence.xml
index e1bdb27b..7d5f0a16 100644
--- a/slides/internals/php74-concat-operator-precedence.xml
+++ b/slides/internals/php74-concat-operator-precedence.xml
@@ -22,8 +22,8 @@ echo "sum: " . $a + $b;
 <break/>
 <blurb>In PHP 7.4:</blurb>
 <example class="error">
-Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' ⏎
-    will change in PHP 8: '+'/'-' will take a higher precedence in Standard input code on line 3
+The behavior of unparenthesized expressions containing both '.' and '+'/'-'
+    will change in PHP 8: '+'/'-' will take a higher precedence in example.php on line 3
 </example>
 
 <break/>
diff --git a/slides/internals/php74-custom-serialization-inheritence.xml b/slides/internals/php74-custom-serialization-inheritence.xml
index 6550aef1..5e6b4583 100644
--- a/slides/internals/php74-custom-serialization-inheritence.xml
+++ b/slides/internals/php74-custom-serialization-inheritence.xml
@@ -3,28 +3,26 @@
 
 <example result="1">
 &lt;?php
-class 🔥 {
+class 🔥fire {
     private $temperature = 5000;
-
     public function __serialize(): array       { return ['t' => $this->temperature]; }
     public function __unserialize(array $data) { $this->temperature = $data['t'];    }
 }
 
-class ⭐ extends 🔥 {
+class ⭐star extends 🔥fire {
     private $size = 695510000;
-
     public function __serialize(): array {
         return [
             's' => $this->size,
-            '🔥' => parent::__serialize(),
+            '🔥fire' => parent::__serialize(),
         ];
     }
     public function __unserialize(array $data) {
-        parent::__unserialize( $data['🔥'] );
+        parent::__unserialize( $data['🔥fire'] );
         $this->size = $data['s'];
     }
 }
-echo serialize( $test = new ⭐ );
+echo serialize( $test = new ⭐star );
 </example>
 
 </slide>
diff --git a/slides/internals/php74-deprecate-curly-brace.xml b/slides/internals/php74-deprecate-curly-brace.xml
index 83cd07fa..d8881a5c 100644
--- a/slides/internals/php74-deprecate-curly-brace.xml
+++ b/slides/internals/php74-deprecate-curly-brace.xml
@@ -9,13 +9,13 @@ https://wiki.php.net/rfc/deprecate_curly_braces_array_access — https://github.
 
 <example result="1">
 &lt;?php
-$🌻 = [ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ];
-echo $🌻[4], "\n";
-echo $🌻{4}, "\n";
+$🌻fibon = [ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ];
+echo $🌻fibon[4], "\n";
+echo $🌻fibon{4}, "\n";
 
-$🎄 = "Christmas Tree";
-echo $🎄[4], "\n";
-echo $🎄{4}, "\n";
+$🎄spruce = "Christmas Tree";
+echo $🎄spruce[4], "\n";
+echo $🎄spruce{4}, "\n";
 ?>
 </example>
 
diff --git a/slides/internals/php74-hash-argon.xml b/slides/internals/php74-hash-argon.xml
index 52ca478c..673f6d3b 100644
--- a/slides/internals/php74-hash-argon.xml
+++ b/slides/internals/php74-hash-argon.xml
@@ -37,8 +37,8 @@ print_r(password_algos());
 
 <div effect="fade-in">
 <example>
-password_hash(string $password, int $algo, array $options) : string
-password_verify(string $password, string $hash) : bool
+password_hash(string $pw, int $algo, array $options) : string
+password_verify(string $pw, string $hash) : bool
 </example>
 <blurb>Options:</blurb>
 <list>
diff --git a/slides/internals/php74-invalid-container-read.xml b/slides/internals/php74-invalid-container-read.xml
index 9731c4e9..74e2969f 100644
--- a/slides/internals/php74-invalid-container-read.xml
+++ b/slides/internals/php74-invalid-container-read.xml
@@ -21,16 +21,16 @@ $b = ($a[0][0] + $c[0]);
 
 <div effect="fade-in">
 <example class="error">
-Notice:  Trying to access array offset on value of type bool in /tmp/example.php on line 6
-Notice:  Trying to access array offset on value of type null in /tmp/example.php on line 6
-Notice:  Trying to access array offset on value of type null in /tmp/example.php on line 6
-Notice:  Trying to access array offset on value of type null in /tmp/example.php on line 6
-Notice:  Trying to access array offset on value of type null in /tmp/example.php on line 6
+Notice:  Trying to access array offset on value of type bool in example.php on line 6
+Notice:  Trying to access array offset on value of type null in example.php on line 6
+Notice:  Trying to access array offset on value of type null in example.php on line 6
+Notice:  Trying to access array offset on value of type null in example.php on line 6
+Notice:  Trying to access array offset on value of type null in example.php on line 6
 
-Notice:  Trying to access array offset on value of type int in /tmp/example.php on line 9
+Notice:  Trying to access array offset on value of type int in example.php on line 9
 
-Notice:  Trying to access array offset on value of type null in /tmp/example.php on line 13
-Notice:  Trying to access array offset on value of type null in /tmp/example.php on line 13
+Notice:  Trying to access array offset on value of type null in example.php on line 13
+Notice:  Trying to access array offset on value of type null in example.php on line 13
 </example>
 </div>
 
diff --git a/slides/internals/php74-operator-precedence-ternary.xml b/slides/internals/php74-operator-precedence-ternary.xml
index a6120833..7c8e3a29 100644
--- a/slides/internals/php74-operator-precedence-ternary.xml
+++ b/slides/internals/php74-operator-precedence-ternary.xml
@@ -9,7 +9,7 @@ http://wiki.php.net/rfc/concatenation_precedence — Deprecate only: https://git
 <example result="1">
 &lt;?php
 $a = 3;
-echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'four' : 'other', "\n";
+echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'four' : 'other';
 ?>
 </example>
 
@@ -17,11 +17,14 @@ echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'four' :
 <break/>
 <blurb>In PHP 7.4:</blurb>
 <example class="error">
-Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in Standard input code on line 3
+Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated.
+  Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in example.php on line 3
 
-Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in Standard input code on line 3
+Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated.
+  Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in example.php on line 3
 
-Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in Standard input code on line 3
+Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated.
+  Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in example.php on line 3
 </example>
 </div>
 
diff --git a/slides/internals/php74-timeline.xml b/slides/internals/php74-timeline.xml
index 3aba13ec..9095c3f3 100644
--- a/slides/internals/php74-timeline.xml
+++ b/slides/internals/php74-timeline.xml
@@ -3,9 +3,6 @@
 
 <break lines="5"/>
 <div effect="fade-in">
-<blurb class="big-centre">November 28th</blurb>
-</div>
-<div effect="fade-in">
-<blurb class="centre">(possibly) 😉 </blurb>
+<blurb class="big-centre">It already is!<br/><small>(November 28th)</small></blurb>
 </div>
 </slide>
diff --git a/slides/internals/php74-typed-properties-read.xml b/slides/internals/php74-typed-properties-read.xml
index 1a72b719..fc31b8cf 100644
--- a/slides/internals/php74-typed-properties-read.xml
+++ b/slides/internals/php74-typed-properties-read.xml
@@ -3,14 +3,14 @@
 
 <example>
 &lt;?php
-class 🥃 
+class 🥃whisky 
 {
     public    int        $age;
     protected Distillery $distillery;
     private   ?Bottler   $bottler;
 }
 
-$whisky = new 🥃;
+$whisky = new 🥃whisky;
 
 echo $whisky->age;
 ?>
@@ -18,7 +18,7 @@ echo $whisky->age;
 <break/>
 <div effect="fade-in">
 <blurb class="error">
-Error: Typed property 🥃::$age must not be accessed before initialization
+Error: Typed property 🥃whisky::$age must not be accessed before initialization
 </blurb>
 
 <break lines="2"/>
diff --git a/slides/internals/php74-typed-properties-write-coersive.xml b/slides/internals/php74-typed-properties-write-coersive.xml
index 81bfc465..f16a7129 100644
--- a/slides/internals/php74-typed-properties-write-coersive.xml
+++ b/slides/internals/php74-typed-properties-write-coersive.xml
@@ -3,14 +3,14 @@
 
 <example result="1">
 &lt;?php
-class 🥃 
+class 🥃whisky
 {
     public    int        $age;
     protected Distillery $distillery;
     private   ?Bottler   $bottler;
 }
 
-$whisky = new 🥃;
+$whisky = new 🥃whisky;
 $whisky->age = "29";
 
 var_dump($whisky);
diff --git a/slides/internals/php74-typed-properties-write-strict.xml b/slides/internals/php74-typed-properties-write-strict.xml
index 9fe80e16..16d4c387 100644
--- a/slides/internals/php74-typed-properties-write-strict.xml
+++ b/slides/internals/php74-typed-properties-write-strict.xml
@@ -5,14 +5,14 @@
 &lt;?php
 declare(strict_types=1);
 
-class 🥃 
+class 🥃whisky
 {
     public    int        $age;
     public    Distillery $distillery;
     private   ?Bottler   $bottler;
 }
 
-$whisky = new 🥃;
+$whisky = new 🥃whisky;
 $whisky->age = 29;
 ?>
 </example>
@@ -20,7 +20,7 @@ $whisky->age = 29;
 
 <div effect="fade-in">
 <blurb class="error">
-TypeError: Typed property 🥃::$age must be int, string used
+TypeError: Typed property 🥃whisky::$age must be int, string used
 </blurb>
 </div>
 </slide>
diff --git a/slides/internals/php74-typed-properties-write.xml b/slides/internals/php74-typed-properties-write.xml
index dbde2540..7fe5a44e 100644
--- a/slides/internals/php74-typed-properties-write.xml
+++ b/slides/internals/php74-typed-properties-write.xml
@@ -3,14 +3,14 @@
 
 <example result="0">
 &lt;?php
-class 🥃 
+class 🥃whisky
 {
     public    int        $age;
     public    Distillery $distillery;
     private   ?Bottler   $bottler;
 }
 
-$whisky = new 🥃;
+$whisky = new 🥃whisky;
 $whisky->distillery = "Lagavullin";
 ?>
 </example>
@@ -18,7 +18,7 @@ $whisky->distillery = "Lagavullin";
 
 <div effect="fade-in">
 <blurb class="error">
-TypeError: Typed property 🥃::$distillery must be an instance of Distillery, string used
+TypeError: Typed property 🥃whisky::$distillery must be an instance of Distillery, string used
 </blurb>
 
 <break lines="2"/>
diff --git a/slides/internals/php74-typed-properties.xml b/slides/internals/php74-typed-properties.xml
index d55acfb4..7f7f2ca5 100644
--- a/slides/internals/php74-typed-properties.xml
+++ b/slides/internals/php74-typed-properties.xml
@@ -5,7 +5,7 @@ https://wiki.php.net/rfc/typed_properties_v2 — https://wiki.php.net/rfc/typed_
 
 <example>
 &lt;?php
-class 🥃 
+class 🥃whisky 
 {
 </example>
 <div effect="fade-in">
diff --git a/slides/internals/php74-variance-argument-ok.xml b/slides/internals/php74-variance-argument-ok.xml
index e11b40ac..14793d6e 100644
--- a/slides/internals/php74-variance-argument-ok.xml
+++ b/slides/internals/php74-variance-argument-ok.xml
@@ -3,17 +3,17 @@
 
 <example result="1">
 &lt;?php
-class 🐖 {}
-class 🐗 extends 🐖 {}
+class 🐖pig {}
+class 🐗boar extends 🐖pig {}
 
 class Asterix
 {
-	public function hunt(🐗 $animal) {}
+	public function hunt(🐗boar $animal) {}
 }
 
 class Gauls extends Asterix
 {
-	public function hunt(🐖 $animal) {}
+	public function hunt(🐖pig $animal) {}
 }
 ?>
 </example>
diff --git a/slides/internals/php74-variance-argument-wrong.xml b/slides/internals/php74-variance-argument-wrong.xml
index 876174a7..55ea8ff6 100644
--- a/slides/internals/php74-variance-argument-wrong.xml
+++ b/slides/internals/php74-variance-argument-wrong.xml
@@ -3,22 +3,22 @@
 
 <example result="0">
 &lt;?php
-class 🐖 {}
-class 🐗 extends 🐖 {}
+class 🐖pig {}
+class 🐗boar extends 🐖 {}
 
 class Asterix
 {
-	public function hunt(🐖 $animal) {}
+	public function hunt(🐖pig $animal) {}
 }
 
 class Gauls extends Asterix
 {
-	public function hunt(🐗 $animal) {}
+	public function hunt(🐗boar $animal) {}
 }
 ?>
 </example>
 
-<blurb class="error">Warning: Declaration of Gauls::hunt(🐗 $animal) should be compatible with Asterix::hunt(🐖 $animal)</blurb>
+<blurb class="error">Warning: Declaration of Gauls::hunt(🐗boar $animal) should be compatible with Asterix::hunt(🐖pig $animal)</blurb>
 <break lines="2"/>
 <blurb class="center">Arguments types are *contra-variant*:<br/>~they can *not* accept a more specific type~</blurb>
 </slide>
diff --git a/slides/internals/php74-variance-properties-ok.xml b/slides/internals/php74-variance-properties-ok.xml
index 492ac4b9..b6ae151f 100644
--- a/slides/internals/php74-variance-properties-ok.xml
+++ b/slides/internals/php74-variance-properties-ok.xml
@@ -8,17 +8,17 @@ typed properties are invariant
 
 <example>
 &lt;?php
-class 🌐 {}
-class 🌏 extends 🌐 {}
+class 🌐sphere {}
+class 🌏planet extends 🌐sphere {}
 
 class Bakery
 {
-	public 🌏 $gravity;
+	public 🌏planet $gravity;
 }
 
 class Patisserie extends Bakery
 {
-	public 🌏 $gravity;
+	public 🌏planet $gravity;
 }
 ?>
 </example>
diff --git a/slides/internals/php74-variance-properties-wrong.xml b/slides/internals/php74-variance-properties-wrong.xml
index c9f6603a..b46cb2ab 100644
--- a/slides/internals/php74-variance-properties-wrong.xml
+++ b/slides/internals/php74-variance-properties-wrong.xml
@@ -8,22 +8,22 @@ typed properties are invariant
 
 <example return="1">
 &lt;?php
-class 🌐 {}
-class 🌏 extends 🌐 {}
+class 🌐sphere {}
+class 🌏planet extends 🌐sphere {}
 
 class Bakery
 {
-	public 🌐 $temperature;
+	public 🌐sphere $temperature;
 }
 
 class Patisserie extends Bakery
 {
-	public 🌏 $temperature;
+	public 🌏planet $temperature;
 }
 ?>
 </example>
 
-<blurb class="error">Fatal error: Type of Patisserie::$temperature must be 🌐 (as in class Bakery)</blurb>
+<blurb class="error">Fatal error: Type of Patisserie::$temperature must be 🌐sphere (as in class Bakery)</blurb>
 <break lines="2"/>
 <blurb class="center">Property types are *in-variant*:<br/>~they can *not* represent a more specific or a more broad type~</blurb>
 </slide>
diff --git a/slides/internals/php74-variance-return-ok.xml b/slides/internals/php74-variance-return-ok.xml
index 3bfd3f9e..4f2f5abc 100644
--- a/slides/internals/php74-variance-return-ok.xml
+++ b/slides/internals/php74-variance-return-ok.xml
@@ -8,17 +8,17 @@ typed properties are invariant
 
 <example result="1">
 &lt;?php
-class 🍞 {}
-class 🥖 extends 🍞 {}
+class 🍞bread {}
+class 🥖baguette extends 🍞bread {}
 
 class Bakery
 {
-	public function gimme(): 🍞 {}
+	public function gimme(): 🍞bread {}
 }
 
 class Patisserie extends Bakery
 {
-	public function gimme(): 🥖 {}
+	public function gimme(): 🥖baguette {}
 }
 ?>
 </example>
diff --git a/slides/internals/php74-variance-return-wrong.xml b/slides/internals/php74-variance-return-wrong.xml
index 5b4bc7a5..736d976d 100644
--- a/slides/internals/php74-variance-return-wrong.xml
+++ b/slides/internals/php74-variance-return-wrong.xml
@@ -8,22 +8,22 @@ typed properties are invariant
 
 <example>
 &lt;?php
-class 🍞 {}
-class 🥖 extends 🍞 {}
+class 🍞bread {}
+class 🥖baguette extends 🍞bread {}
 
 class Bakery
 {
-	public function gimme(): 🥖 {}
+	public function gimme(): 🥖baguette {}
 }
 
 class Patisserie extends Bakery
 {
-	public function gimme(): 🍞 {}
+	public function gimme(): 🍞bread {}
 }
 ?>
 </example>
 
-<blurb class="error">Fatal error: Declaration of Patisserie::gimme(): 🍞 must be compatible with Bakery::gimme(): 🥖</blurb>
+<blurb class="error">Fatal error: Declaration of Patisserie::gimme(): 🍞bread must be compatible with Bakery::gimme(): 🥖baguette</blurb>
 <break lines="2"/>
 <blurb class="center">Return types are *co-variant*:<br/>~they can *not* return a more broad type~</blurb>
 </slide>
diff --git a/slides/internals/php74-weakref.xml b/slides/internals/php74-weakref.xml
index 37373f61..5517b119 100644
--- a/slides/internals/php74-weakref.xml
+++ b/slides/internals/php74-weakref.xml
@@ -16,8 +16,9 @@ final class WeakReference {
 <blurb>Example:</blurb>
 <example result="1">
 &lt;?php
-class 👻 { function boo() { echo "BOO!\n"; } }
-$boo = new 👻 ;
+class 👻ghost { function boo() { echo "BOO!\n"; } }
+
+$boo = new 👻ghost;
 $ref = WeakReference::create( $boo );
 
 $ref->get()->boo();
diff --git a/slides/xdebug/breakpoints-2.xml b/slides/xdebug/breakpoints-2.xml
index 35b39cc4..91d94fb8 100644
--- a/slides/xdebug/breakpoints-2.xml
+++ b/slides/xdebug/breakpoints-2.xml
@@ -18,9 +18,6 @@
   |aaaaaa| 12| 
   |aaaaaa| 13| demo(true, true, true, false);
 ]]></example>
-<div effect="fade-in-out">
-<blurb class="big-centre">demo</blurb>
-</div>
 </td>
 <td><div effect="fade-in">
 <example inline="2"><![CDATA[
diff --git a/xdebug-brussels19.xml b/xdebug-brussels19.xml
new file mode 100644
index 00000000..79d8fb60
--- /dev/null
+++ b/xdebug-brussels19.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>Debugging</topic>
+<title>Xdebug 3.0</title>
+<event>Brussels PHP UG</event>
+<location>Brussels, Belgium</location>
+<date>December 11th, 2019</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/xdebug-brussels19</url>
+<joindin></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/port9000.xml</slide>
+<!-- <slide>slides/xdebug/connect1.xml</slide> -->
+<!-- <slide>slides/xdebug/connect2.xml</slide> -->
+<slide>slides/xdebug/debugger-activation.xml</slide>
+<slide>slides/xdebug/debugger-connection-log.xml</slide>
+<slide>slides/xdebug/xdebug-slow.xml</slide>
+<slide>slides/xdebug/test-with-many-versions.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
+<!--
+<slide>slides/xdebug/xdebug-2.8.xml</slide>
+<slide>slides/xdebug/breakpoint-behaviour.xml</slide>
+<slide>slides/xdebug/xdebug-ci.xml</slide>
+-->
+<slide>slides/xdebug/xdebug-3.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-slow.xml</slide>
+<slide>slides/xdebug/xdebug-hard.xml</slide>
+
+<slide>slides/xdebug/donate.xml</slide>
+<slide>slides/xdebug/business-support.xml</slide>
+<slide>slides/xdebug/transparency.xml</slide>
+
+<slide>slides/xdebug/xdebug-2.9.xml</slide>
+<slide>slides/xdebug/cc-speedup.xml</slide>
+
+
+<!--<slide>slides/xdebug/phpinternalsnews.xml</slide>-->
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>