Created
March 8, 2012 09:28
-
-
Save lukearmstrong/1999912 to your computer and use it in GitHub Desktop.
PHP UK Conference 2012
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PHP UK Conference 2012 | |
https://joind.in/event/view/824 | |
Great Talks | |
Well Organised | |
Kept me watered | |
Great Food | |
Free Beer | |
I didn't catch a PHP Elephant plushie :( | |
I didn't win an O'Reilly Book :( | |
BUT I GOT FREE FOOD AND BEER AND CRISPS AND PRETZELS! | |
A look at PHP in 2012 | |
Rasmus Lerdorf | |
Slides: http://talks.php.net/show/phpuk2012/ | |
Rasmus is down to earth. | |
Your users don't care what language you use. | |
PHP is a front-end language. | |
Don't be an ass thinking about making a dynamicaly typed language statically typed. | |
Use the latest version. | |
CLI Server (running unit tests?) | |
Hash table collisions fix. HashDOS ($_POST/$_GET) | |
v6 has been shelved due to major issues with Unicode. | |
Contribute to PHP | |
http://bugs.php.net/random (Submit Code Patches) | |
http://edit.php.net/ (Documentation) | |
Fix PECL Extensions | |
Use PEAR to contribute useful Libraries | |
The Journey Towards Continuous Integration | |
Sebastian Marek (Plusnet) | |
Talk: https://joind.in/talk/view/4950 | |
Slides: http://prezi.com/3gq-sqcvdknr/the-journey-towards-continuous-integration/ | |
Started off having to manage a large codebase, that spanned several versions of PHP (3/4/5). | |
CI was investigated, but had to be sold to management because it boiled down to money. | |
Used Intrest Rates to relate to more development time spent hoping old shit worked, as opposed to proving old shit worked. | |
DocBlox (not PHPDocumentor) | |
PHP Unit (not Simple Test) | |
Cruise Control + phpUnderControl | |
Behat | |
Jenkins | |
Build Box: Consider this for the new development box | |
Git | |
Unit Tests | |
Functional Tests (Selenium) | |
# See Slides | |
PHP 5.4: The New Bits | |
Davey Shafik (Engine Yard/Orchestra) | |
Talk: https://joind.in/talk/view/4946 | |
Slides: http://speakerdeck.com/u/dshafik/p/php-54-the-new-bits | |
<?= 'Always available, even with short tags disabled'; ?> | |
<? $var = 'Not always available, can be disabled with short tags off due to XML clashes'; ?> | |
<? $new_array_syntax = [1, 2, 3, 4, 5]; // $php_less_than_5_4 = array(1, 2, 3, 4, 5); ?> | |
Class Traits == Copy and Paste for the Compiler (alternative to extending classes, useful for Singletons and getting instance) | |
New way of using odd binary notation, perhaps fixes obscure lolphp bug on reddit pointed out by Al. | |
# See Slides | |
Security audits as an integral part of PHP application development | |
Sijmen Ruwhof | |
Talk: https://joind.in/4963 | |
Slides: http://www.slideshare.net/sruwhof/security-audits-as-integral-part-of-php-application-development-11774289 | |
Explanined the obvious, don't trust user input, but also covered the not-so obvious, dont trust $_SERVER[] variables. | |
Demonstrated tools to scan open ports on servers, discover installed applications (such as phpMyAdmin), brute force logins using known passwords. | |
Generally the talk wasn't that great, his English wasn't great, but still gave me some whitehat ideas. | |
Scaling Communication with Continuous Integration | |
LB Denker (Etsy) | |
Talk: https://joind.in/talk/view/4953 | |
Slides: http://www.slideshare.net/elblinkin/scaling-communication-via-continuous-integration | |
Allow anyone to deploy. | |
They deploy several times an hour. | |
Over 100 developers. | |
PHPLint/Unit Testing gives confidence to deploy. | |
If people fuck up, they will be more careful in future, and it will be fixed by them very quickly as everyone can deploy. | |
(As opposed to the shitty developers/trusted developers model, as pointed out by Github talk, and used by Plusnet) | |
Try { Getting People To Come To A Talk About Exceptions } | |
Ed van Beinum | |
Talk: https://joind.in/talk/view/4959 | |
Slides: http://speakerdeck.com/u/edwin/p/try-getting-people-to-come-to-a-talk-on-exceptions | |
Really good speaker. Amusing. Zombie Apocolpse Examples. | |
Basically explained when and when not to throw exceptions, only throw an exception if you have to kill the application. | |
Don't throw an exception if you can easily determine the expected result. | |
Using PHP at Scale | |
Rasmus Lerdorf, Hugh E Williams, Ian Barber, Nikolay Bachiyski | |
Wordpress.com store sessions in cookies on the client. Consensus agrees that solution is retarded due to massive headers and MTU issues. | |
Challenges at scale: extreme data and platforms at eBay | |
Hugh E Williams (eBay) | |
Talk: https://joind.in/talk/view/4962 | |
Slides: ? | |
Unplugs shit in the datacentre for fun, fire drill for devops; but much more fun. | |
Amazing the amount of effort they put into their search. | |
Log everything. | |
Analyse what users are doing. | |
150(?) Developers, 18 months, brand new Datacentre; just for Search. | |
Masterizing PHP Data Structure 102 | |
Patrick Allaert | |
Talk: https://joind.in/talk/view/4968 | |
Slides: http://www.slideshare.net/patrick.allaert/masterizing-php-data-structure-102-phpuk-2012 | |
One for Al. | |
Some mentalist wittering on about theoretical data types and how using arrays is bad. | |
Yet instead of using Arrays, would instanciate an object from an extension Class, just to store a fucking variable. | |
Less memory, but possibly longer runtime or more CPU? # Investigate | |
Allows you to enforce variable types, but only if you want to be an ass (Rasmus). | |
Thoroughly test usage of References <? $array = (1, 2, 3); foreach ($array as $key => &item) {}; foreach ($array as $key => $item) {}; ?> | |
Monitoring your backend for speed and profit | |
Andrew "Bob" Brockhurst (BBC) | |
Talk: https://joind.in/talk/view/4964 | |
Slides: ? | |
Wasn't really about monitoring in the sense I was thinking of, but still a good talk. | |
BBC went from 40 servers to 72 servers for Olympics. | |
BBC kept Java backend. | |
BBC introduced new PHP front end, didn't involve backend rewrite. | |
All PHP applications run in one application. | |
They use the Zend Framework. (WTF!) | |
Use Varnish (64GB Cache), default config is good, monitoring and tweaking makes it better. Can configure using C. | |
Log and Monitor everything. | |
Cookies stipped from Requests for Caching Hits. | |
Partials on Pages mean personal content ("Welcome back Luke") can be generated, but the rest of the content is Cached. | |
MySQL Update | |
Dave Stokes (MySQL/Oracle) | |
Talk: https://joind.in/talk/view/4970 | |
Slides: ? | |
Use latest version of MySQL for performance (GA 5.5) | |
When compling configure using mysqlnd (Native Driver) # Investigate SSL? | |
Investigate Unbreakable Linux (Oracle's version of Redhat with rewritten device drivers/kernel) | |
Investigate MySQL Cluster (Write-only Master, Read-only Slaves) | |
Consider Oracle Support (may be issues regarding virtual machines) benefit is MySQL Monitor, Tools, etc. | |
Tools can be used on Open Source versions | |
Oracle are committed to providing security fixes to Enterprise and Community versions at the same time. | |
Oracle are always going to release MySQL under an Open Source License. | |
Distribute the workload | |
Helgi Þormar Þorbjörnsson (Orchestra/Engine Yard) | |
Talk: https://joind.in/talk/view/4958 | |
Slides: http://speakerdeck.com/u/helgi/p/distribute-the-workload-php-uk-2012-day-2 | |
Very interesting chap, lots of things we can learn from this talk. | |
The ideas stem from things I discovered from playing with other PAAS (Platform As A Service) providers such as Heroku. | |
Instead of the Application relying on a fixed Database server, Caching server, Assets server, it was decentralized allowing the potential | |
for these "servers" to live on other virtual or physical server(s). | |
So instead of spending a lot of money on a very powerful physical server, the idea is to have several cheaper virtual servers which can increase, | |
or decrease, depending on the current load. This process can be automated, and we end up with a situation where there is no "main" server, any | |
server can die at any time and the other servers continue operating as normal, and more servers can be spawned when required. | |
The application server can be replicated across many servers, but the application server operates as Read-only. So when a CMS needs to upload files, | |
they can be uploaded via a layer which determines if these need to be stored on a networked filesystem, or a CDN service such as Amazon S3, | |
or on the local hard drive (if in Development mode). | |
If a CMS, such as the Orlebar Brown product image uploader, takes time to process that upload, these jobs can be queued using Gearman. This means | |
that, the user can upload files, with an instant response, whilst in the back end the images are being resized and saved to the 36 different sizes, | |
without "blocking" the user's browser from continuing with further requests. | |
The database server can also be replicated across many servers, as I discovered from the MySQL talk, allowing many read-only slaves to serve data from | |
a write-only master. | |
PHP Under the Hood | |
Johannes Schlüter (PHP/MySQL/Oracle) | |
Talk: https://joind.in/talk/view/4967 | |
Slides: http://schlueters.de/presentations/#p=20120225_phpuk_php_under_the_hood&n=1 | |
Delving into the guts of PHP, the C source code. | |
Waaaaaaay over my head. | |
SQL vs NoSQL | |
Dave Stokes, Derick Rethans, Johannes Schlüter, ?, Helgi Þormar Þorbjörnsson | |
A rather pointless nerd fight involving lots of flailing of limbs. Helgi considers both can live side by side. Dave has the experience | |
to see the industry moves in phases and there is no silver bullet, so no need to get worked up about it. Derick and ? had a fight about | |
MongoDB vs CouchDB. Johannes was stuck in the middle. | |
No consensus as to when you would use one over the other. | |
I gathered that MongoDB/CouchDB require more thought on the application layer. But MySQL/PostgreSQL that is handled by the database layer. | |
SQL could be quicker if more thought was put into denormalizing data, potentially generated tables, but either way involves thought, and | |
seemingly SQL required less thought than NoSQL. NoSQL may be flavour of the month, but is unproven. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment