- Added slides from Montréal, Prague and Vancouver.

This commit is contained in:
Derick Rethans
2008-04-10 09:03:16 +00:00
parent 179e64bd87
commit 2a878ee0c8
31 changed files with 423 additions and 19 deletions

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<presentation
template="css"
navmode="html"
navbarbackground="#4373b4"
navbartopiclinks="0"
navColor="#f1fbff"
logo1=""
stylesheet="presentations/slides/ezc/ez.css"
backgroundfixed="1" >
<topic>Internals</topic>
<title>Engine Performance</title>
<event>WebCamp 2008</event>
<location>Prague, Czech Republic</location>
<date>March 27th, 2008</date>
<speaker>Derick Rethans</speaker>
<email>dr@ez.no</email>
<url>http://derickrethans.nl/talks.php</url>
<slide>slides/internals/title2.xml</slide>
<!-- INTRODUCTION -->
<slide>slides/toolbox/me.xml</slide>
<slide>slides/internals/intro2.xml</slide>
<slide>slides/internals/parse_error.xml</slide>
<slide>slides/internals/opcode2.xml</slide>
<slide>slides/internals/vld-example.xml</slide>
<slide>slides/internals/vld1.xml</slide>
<slide>slides/internals/vld2.xml</slide>
<slide>slides/internals/execute2.xml</slide>
<slide>slides/internals/execute5.xml</slide>
<slide>slides/grown-up/micro-opts.xml</slide>
<slide>slides/grown-up/faster-harder.xml</slide>
<slide>slides/grown-up/benchmarks.xml</slide>
<slide>slides/internals/execute5.xml</slide>
<!-- CACHES -->
<slide>slides/internals/opcode-cache.xml</slide>
<slide>slides/internals/how_ccache_serialize.xml</slide>
<slide>slides/perf/accelerators.xml</slide> <!-- Accelerators -->
<slide>slides/internals/vld1b.xml</slide>
<slide>slides/xdebug/live-demo.xml</slide>
<slide>slides/internals/inclued.xml</slide>
<slide>slides/xdebug/live-demo.xml</slide>
<!-- profile -->
<slide>slides/xdebug/profiling.xml</slide>
<slide>slides/xdebug/profiling2.xml</slide>
<slide>slides/xdebug/live-demo.xml</slide>
<!-- 5.3 greia -->
<slide>slides/internals/variables-circular.xml</slide>
<slide>slides/internals/questions.xml</slide>
<slide>slides/internals/resources.xml</slide>
</presentation>

61
ezc-openweb8.xml Normal file
View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<presentation
template="css"
navmode="html"
navbarbackground="#4373b4"
navbartopiclinks="0"
navColor="#000000"
logo1=""
stylesheet="presentations/slides/ezc/ez.css"
backgroundfixed="1" >
<topic>Component Libraries</topic>
<title>Lego Blocks for PHP</title>
<event>OpenWeb Vancouver</event>
<location>Vancouver, Canada</location>
<date>Apr 14th, 2008</date>
<speaker>Derick Rethans</speaker>
<email>dr@ez.no</email>
<url>http://derickrethans.nl/talks.php</url>
<slide>slides/ezc/title-ezc-generic.xml</slide>
<!-- introduction -->
<slide>slides/toolbox/goals-process.xml</slide>
<slide>slides/toolbox/goals-library.xml</slide>
<slide>slides/toolbox/documentation.xml</slide>
<slide>slides/ezc/contributing.xml</slide>
<slide>slides/toolbox/dependencies.xml</slide>
<slide>slides/toolbox/classnames.xml</slide>
<slide>slides/toolbox/autoload.xml</slide>
<slide>slides/toolbox/autoload-arrays.xml</slide>
<!-- overview -->
<slide>slides/ezc/overview.xml</slide>
<slide>slides/ezc/install-download.xml</slide>
<slide>slides/ezc/install-pear.xml</slide>
<!-- database -->
<slide>slides/ezc/example-database-instance.xml</slide>
<slide>slides/ezc/query-abstraction-intro.xml</slide>
<slide>slides/ezc/fluent-interface.xml</slide>
<slide>slides/ezc/bindvalue-bindparam.xml</slide>
<slide>slides/ezc/pesistent-object-abstraction-intro.xml</slide>
<slide>slides/ezc/example-archive.xml</slide>
<slide>slides/ezc/example-mail.xml</slide>
<slide>slides/ezc/mail-diagram.xml</slide>
<slide>slides/ezc/example-mail-parse.xml</slide>
<slide>slides/ezc/example-mail-summary.xml</slide>
<slide>slides/ezc/graph-overview.xml</slide>
<slide>slides/ezc/example-graph.xml</slide>
<slide>slides/ezc/example-graph-result.xml</slide>
<slide>slides/ezc/example-graph2.xml</slide>
<slide>slides/ezc/example-graph2-result.xml</slide>
<!-- what's next? -->
<slide>slides/ezc/future-2007.2-2008.1.xml</slide>
<slide>slides/ezc/questions.xml</slide>
</presentation>

View File

@@ -20,26 +20,36 @@
<!-- 1 -->
<slide>slides/myths/no-compiler.xml</slide>
<slide>slides/myths/no-compiler-points.xml</slide>
<slide>slides/myths/no-compiler-no-slacking.xml</slide>
<!-- 2 -->
<slide>slides/myths/hard-to-integrate.xml</slide>
<slide>slides/myths/hard-to-integrate-points.xml</slide>
<slide>slides/myths/ext-embed-php.xml</slide>
<!-- 3 -->
<slide>slides/myths/unstable-platform.xml</slide>
<slide>slides/myths/unstable-points.xml</slide>
<slide>slides/internals/variables-circular.xml</slide>
<!-- 4 -->
<slide>slides/myths/php-is-weak.xml</slide>
<slide>slides/myths/php-is-weak-points.xml</slide>
<!-- 5 -->
<slide>slides/myths/shared-nothing.xml</slide>
<slide>slides/myths/srm.xml</slide>
<slide>slides/myths/apc-memcache.xml</slide>
<slide>slides/myths/ezc-workflow.xml</slide>
<!--<slide>slides/myths/ezc-workflow.xml</slide>-->
<!-- 6 -->
<slide>slides/myths/oo-sucks.xml</slide>
<slide>slides/myths/oo-sucks-points1.xml</slide>
<slide>slides/myths/oo-sucks-points2.xml</slide>
<slide>slides/myths/oo-sucks-points3.xml</slide>
<slide>slides/myths/oo-sucks-points4.xml</slide>
<slide>slides/myths/oo-sucks-points5.xml</slide>
<!-- 7 -->
<slide>slides/myths/no-tool-support.xml</slide>

View File

@@ -40,7 +40,6 @@
<slide>slides/internals/opcode-cache.xml</slide>
<slide>slides/internals/how_ccache_serialize.xml</slide>
<slide>slides/perf/accelerators.xml</slide> <!-- Accelerators -->
<slide>slides/internals/questions.xml</slide>
<!-- VARIABLES -->
<slide>slides/internals/variables1.xml</slide>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<slide>
<title>What's Next?</title>
<subtitle>Additions for eZ Components 2008.1</subtitle>
<blurb>New components:</blurb>
<list>
<bullet>*Feed*: RDF/RSS/ATOM feed parsing and generating, with support for modules</bullet>
<bullet>*Search*: Search API towards Solr, Sphinx, Google, etc.</bullet>
</list>
<blurb>Additions to components:</blurb>
<list>
<bullet>*Cache*: Hierarchical caching</bullet>
<bullet>*Template*: Translation and character set support</bullet>
</list>
<blurb>Roadmap: http://issues.ez.no/RoadMap.php?Id=729</blurb>
</slide>

View File

@@ -4,15 +4,15 @@
<subtitle>Download bundle</subtitle>
<blurb>Installation:</blurb>
<example><![CDATA[// download the bundle from http://ez.no/download/ez_components
tar -xjf ezcomponents-2007.1beta1.tar.bz2
<example><![CDATA[// download the bundle from http://ezcomponents.org/download
tar -xjf ezcomponents-2007.2.1.tar.bz2
pwd]]></example>
<break lines="3"/>
<blurb>Setup:</blurb>
<example result='0'><![CDATA[<?php
ini_set( 'include_path', '/home/httpd/ezcomponents-2007.1beta1:.' );
ini_set( 'include_path', '/home/httpd/ezcomponents-2007.2.1:.' );
require 'Base/src/base.php';
function __autoload( $className )

View File

@@ -7,8 +7,8 @@
<blurb>Resources:</blurb>
<list>
<bullet>*Download*: http://ez.no/ezcomponents/download</bullet>
<bullet>*Documentation*: http://ez.no/doc/components/overview</bullet>
<bullet>*Download*: http://ezcomponents.org/download</bullet>
<bullet>*Documentation*: http://ezcomponents.org/docs</bullet>
<bullet>*Mailinglist*: http://lists.ez.no/mailman/listinfo/components</bullet>
<bullet>*IRC*: #ezcomponents @ Freenode</bullet>
<bullet>*These Slides*: :-:url:-:</bullet>

View File

@@ -3,7 +3,7 @@
<image align="center" filename="components.png" pdf-scale="0.7"/>
<blurb class="event-date">:-:title:-:</blurb>
<break lines="7"/>
<break lines="5"/>
<break/>
<blurb class="event-date">:-:event:-: - :-:location:-:</blurb>
<break/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<slide fontsize="6em">
<title>Inclued</title>
<blurb>Dumps includes/classes hiearchies</blurb>
<break/>
<blurb>Download from http://t3.dotgnu.info/blog/tags/inclued/</blurb>
<break/>
<blurb>Install:</blurb>
<example><![CDATA[tar -xvzf inclued-0.3.tgz
cd inclued
phpize && make && make install]]></example>
<break/>
<blurb>Add to php.ini:</blurb>
<example><![CDATA[extension=inclued.so
inclued.enabled=1
inclued.dumpdir=/tmp]]></example>
</slide>

View File

@@ -4,7 +4,9 @@
<break lines="12" />
<link fontsize="3em" marginleft="2em" leader="These Slides: " href="http://derickrethans.nl/talks.php" target="_new"/>
<link fontsize="3em" marginleft="2em" leader="VLD site: " href="http://www.derickrethans.nl/vld.php" target="_new"/>
<link fontsize="3em" marginleft="2em" leader="VLD: " href="http://www.derickrethans.nl/vld.php" target="_new"/>
<link fontsize="3em" marginleft="2em" leader="Xdebug: " href="http://xdebug.org" target="_new"/>
<link fontsize="3em" marginleft="2em" leader="Inclued: " href="http://t3.dotgnu.info/blog/tags/inclued/" target="_new"/>
<break lines="3" />
<link fontsize="3em" marginleft="2em" leader="PHP: " href="http://www.php.net" target="_new"/>

View File

@@ -0,0 +1,11 @@
<slide template="title" fontsize="3.5em">
<title>Welcome!</title>
<image align="center" filename="elephpant.jpg" pdf-scale="0.7"/>
<break/>
<blurb class="event-date">:-:event:-: - :-:location:-:</blurb>
<break/>
<blurb class="event-presenter">:-:speaker:-: - dr@ez.no</blurb>
<break/>
<blurb class="pres-url-small">:-:url:-:</blurb>
</slide>

View File

@@ -12,9 +12,10 @@
</list>
<break/>
<blurb>Usage:</blurb>
<example><![CDATA[wget wget http://pecl.php.net/get/vld-0.8.0.tgz
tar -xvzf vld-0.8.0.tgz
cd vld-0.8.0
<example><![CDATA[cvs -d :pserver:cvsread@cvs.xdebug.org:/repository login
# passwd = srmread
cvs -d :pserver:cvsread@cvs.xdebug.org:/repository co -d vld vle
cd vld
phpize && make && make install
php -dextension=vld.so -dvld.active=1 script.php]]></example>
</slide>

View File

@@ -3,6 +3,4 @@
<title>Myth #2: PHP Is Hard To Integrate</title>
<image align="center" filename="ext-embed-php.jpg"/>
<blurb class="blurb_center">(From xkcd.com, by Randall Munroe)</blurb>
</slide>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<slide fontsize="6em">
<title>Myth #5: PHP Has No Application Serverr</title>
<title>Myth #5: PHP Has No Application Server</title>
<image align="center" filename="ezc-workflow.png"/>
</slide>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #2: PHP Is Hard To Integrate</title>
<list>
<bullet>As PHP performs badly, another approach is required</bullet>
<bullet>Extensions are hard to write</bullet>
<bullet>You can only write extensions in C</bullet>
<bullet>Who here has tried to write an extension, or considered it?</bullet>
<bullet>There are plenty of extensions, so plenty of examples</bullet>
<bullet>There are also extensions in C++ (SDO, SCA, Colorer...)</bullet>
<bullet>Extensions are hard to use, as you need to recompile PHP</bullet>
<bullet>Shared objects, even closed source exist (Zend, ioncube)</bullet>
<bullet>Documentation is hard to find</bullet>
</list>
</slide>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #1: PHP Has No Compiler</title>
<list>
<bullet>Why would you want a compiler?</bullet>
<bullet>Real compiler makes “proper” byte code that can be introspected</bullet>
<bullet>There is no “compiler”, but there is APC</bullet>
<bullet>Only performs caching, and does not store to disk</bullet>
<bullet>APC optimizes, and you don't want that in a normal parser</bullet>
</list>
</slide>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #6: PHP's OO Implementation Is Inferior</title>
<list>
<bullet>You should have implemented the Java model, as that's where everything was stolen from anyway</bullet>
<bullet>PHP also doesn't use OO everywhere where it can.</bullet>
<bullet>PHP is pragmatic, where Java is academic and limiting.</bullet>
<bullet>PHP has to stay backwards compatible</bullet>
<bullet>New extensions also come in OO variants</bullet>
<bullet>OO is not the solution to all your problems</bullet>
<bullet>Why can't we omit $this?</bullet>
<bullet>Why do we have goto?</bullet>
<bullet>Why is reflection information not cached?</bullet>
</list>
</slide>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #6: PHP's OO Implementation Is Inferior</title>
<list>
<bullet>Why don't we have type hints?</bullet>
<bullet>Why don't we have templates?</bullet>
<bullet>Why don't we have generics?</bullet>
<bullet>PHP has no namespaces and packages.</bullet>
<bullet>PHP throws fatal errors and not exceptions for many things</bullet>
<bullet>We have no type hints for properties.</bullet>
<bullet>PHP doesn't have friends</bullet>
<bullet>Why is the visibility checked against the class and not the objects?</bullet>
</list>
</slide>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #6: PHP OO: Iterators</title>
<list>
<bullet>why are there *Recursive and non-Recursive versions of most iterators</bullet>
<bullet>Why is it rewind, and not reset?</bullet>
<bullet>Why do the recursive versions not just do the recursion?</bullet>
</list>
</slide>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #6: PHP OO: SPL</title>
<list>
<bullet>Why does SPLFileObject not have fread()? Because it's line based.</bullet>
<bullet>Why can't I implement traversable? Very low level shitznitz.</bullet>
<bullet>Why are SplObserver and SplSubject so narrow dude?</bullet>
</list>
</slide>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #6: PHP OO: Exceptions</title>
<list>
<bullet>Why is everything marked as final because it's safe C-code.</bullet>
<bullet>Why are exceptions not stackable?</bullet>
<bullet>Why don't we have finally?</bullet>
<bullet>Why can't I throw in __destruct?</bullet>
<bullet>Why can't I throw an exception from __autoload()?</bullet>
</list>
</slide>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<slide fontsize="6em">
<title>Myth #6</title>
<break lines="18"/>
<break lines="12"/>
<blurb class='title_blurb'>PHP's OO Implementation Is Inferior</blurb>
</slide>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #4: PHP is Weak(ly typed)</title>
<list>
<bullet>PHP auto casts variables when it feels like it because that's how get/post works strings only.</bullet>
<bullet>Has this every caused you a problem that can not be solved elegantly differently?</bullet>
<bullet>Larger application requires more control and type checks and...</bullet>
<bullet>You can always write type-aware (but not checking) code, saves time and is less code thus faster.</bullet>
<bullet>There is also ext/filter</bullet>
<bullet>Why don't we have scalar type hints?</bullet>
<bullet>Why don't we have auto boxing?</bullet>
</list>
</slide>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<slide>
<title>Myth #3: PHP Is An Unstable Platform</title>
<list>
<bullet>Backwards Compatibility breaks galore</bullet>
<bullet>Who has been affected by this, and which thing?</bullet>
<bullet>We try not to break BC at all, but we're still human</bullet>
<bullet>PHP crashes all the time</bullet>
<bullet>Could just as well been something else... like bad code (infinite recursion)</bullet>
<bullet>And where is the backtrace/bug report?</bullet>
<bullet>But references caused problems!</bullet>
<bullet>Yes, they did and this was fixed</bullet>
<bullet>It wasn't fixed correctly, as it started throwing notices</bullet>
<bullet>Only if you abused references before</bullet>
<bullet>Why does PHP memory leak?</bullet>
</list>
</slide>

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<slide fontsize="6em">
<title>phpUnderControl</title>
<subtitle>Continuous integration with CruiseControl</subtitle>
<image align="center" filename="phpundercontrol.jpg"/>
</slide>

View File

@@ -3,8 +3,11 @@
<title>Resources</title>
<break lines="12" />
<link fontsize="3em" marginleft="2em" leader="These Slides: " href="http://derickrethans.nl/talks.php" target="_new"/>
<link leader="PHP Unit: " href="http://phpunit.de" target="_new"/>
<link leader="phpUnderControl: " href="http://phpundercontrol.org" target="_new"/>
<link leader="Xdebug: " href="http://xdebug.org" target="_new"/>
<link leader="These Slides: " href="http://derickrethans.nl/talks.php" target="_new"/>
<break lines="3" />
<link fontsize="3em" marginleft="2em" leader="PHP: " href="http://www.php.net" target="_new"/>
<link leader="PHP: " href="http://www.php.net" target="_new"/>
</slide>

View File

@@ -8,7 +8,7 @@
<bullet>API documentation</bullet>
<bullet>Tutorials</bullet>
<bullet>Example Applications</bullet>
<bullet>http://ez.no/doc/components/overview</bullet>
<bullet>http://ezcomponents.org/docs</bullet>
</list>
<break lines="2"/>

80
tdd-openweb8.xml Normal file
View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<presentation
template="css"
navmode="html"
navbarbackground="#4373b4"
navbartopiclinks="0"
navColor="#f1fbff"
logo1=""
stylesheet="presentations/slides/ezc/ez.css"
backgroundfixed="1" >
<topic>Testing</topic>
<title>Test-Driven Development</title>
<event>OpenWeb Vancouver</event>
<location>Vancouver, Canada</location>
<date>Apr 15th, 2008</date>
<speaker>Derick Rethans</speaker>
<email>dr@ez.no</email>
<url>http://derickrethans.nl/talks.php</url>
<slide>slides/tdd/title.xml</slide>
<!-- INTRODUCTION -->
<slide>slides/toolbox/me.xml</slide>
<!-- Funny Intro -->
<slide>slides/tdd/broken-code-is-fine.xml</slide>
<slide>slides/tdd/dont-ship.xml</slide>
<!-- TESTING intro:
- What needs testing?
- Types of testing + tools
-->
<slide>slides/tdd/testing.xml</slide>
<slide>slides/tdd/webapp-parts-1.xml</slide>
<slide>slides/tdd/unit-testing.xml</slide>
<!-- TDD intro
- Development process, not just a test method
- It is a religion: ✡✝☪
- Traditional development
- TDD
- when to run tests
-->
<slide>slides/tdd/tdd.xml</slide>
<slide>slides/tdd/not-a-testing-method.xml</slide>
<slide>slides/tdd/religion.xml</slide>
<slide>slides/tdd/back-in-time.xml</slide>
<slide>slides/tdd/the-test-is-king.xml</slide>
<slide>slides/tdd/test-driven-development.xml</slide>
<slide>slides/tdd/practical-test-driven-development.xml</slide>
<slide>slides/tdd/addressing-defects.xml</slide>
<!-- Quick php unit example
- Quick example
- Code coverage
- some problems with leaking, system dependent things, can't test private
methods, hard to test exceptions - things that should not happen
-->
<slide>slides/tdd/phpunit.xml</slide>
<slide>slides/tdd/phpunit-output.xml</slide>
<slide>slides/tdd/no-code-without-test.xml</slide>
<slide>slides/tdd/no-code-without-test2.xml</slide>
<slide>slides/tdd/phpundercontrol.xml</slide>
<slide>slides/tdd/unit-test-issues.xml</slide>
<!-- Politics -->
<slide>slides/tdd/politics.xml</slide>
<slide>slides/tdd/politics-devs.xml</slide>
<slide>slides/tdd/politics-managers.xml</slide>
<!-- TDD case studies
-->
<slide>slides/tdd/case-studies.xml</slide>
<slide>slides/tdd/case-study-major-players.xml</slide>
<slide>slides/tdd/case-study-dev-testimonials.xml</slide>
<slide>slides/internals/questions.xml</slide>
<slide>slides/tdd/resources.xml</slide>
</presentation>