On Technologies and
            languages

Pierre Joye
2012/09/17
Pierre Joye
@pierrejoye
pierre@php.net




                   PHP Core developer
 Contributors to numerous OSS projects
          Works with the ex-Dark Force
                         Portability fan
Topics
•History
•Status
•Some useless stats
•Tools, pointers and directions
Any PHP users around?
Any Python users around?
Any Ruby users around?
Any Go users around?
Any Scala users around?
Any Red users around?
b: 1
a: context [
         b: 2
         inc: func [i [integer!] return: [integer!]][
                    i+b
         ]
]
a/inc 5 ;-- will return 7
“You are not a good developer if you
 know only one language, even as
              expert.”
Languages do not matter.
Any Linux users around?
Any Windows users around?
Any Mac users around?
Any Solaris users around?
Any Android users around?
Any i* users around?
OSes do not matter.
Growing amount of clients
http://www.asymco.com/2012/06/19/the-evolution-of-the-computing-value-chain/
http://www.asymco.com/2012/06/19/the-evolution-of-the-computing-value-chain/
Mobile
http://www.asymco.com/2012/06/19/the-
evolution-of-the-computing-value-chain/
“No need for DOM abstraction libraries.”

    “You don't have IE6 on mobile.”
                               PhoneGap Day Quote
“Most mobile players are contributing to PhoneGap
   except Apple. Something wrong with them?”

                     “Yep.”
                                        PhoneGap Day Quote
OSes do not matter anymore.
         (take #2)
The Web is the (Open) Platform
HTML5
HTML5
          ==
(better)HTML + CSS3 + JS
•phonegap
•Jquery
•Dojo
•Titanium
•Sencha (touch, extjs, etc.)
Phonegap goals

. Make web 1st class app dev platform

. Cease to exist by becoming unnecessary shim
Server Anyone?
Platforms matter.
Cloud Computing!
(the new holly Grail)
Azure, AWS, Openstack, Linode,
     SliceHost, AppEngine

      More to come }:->
Aw Jeez, not this shit again! (take #2)
Moment of solitude
One goal, One Process, One team
DevOps

(or bringing Agility to all teams)
This is a file from the Wikimedia Commons.
This is a file from the Wikimedia Commons.
Virtualization for the masses
$> vagrant box add base http://files.vagrantup.com/deb64.box
$> vagrant init
$> vagrant up
VeeWee
https://github.com/jedi4ever/veewee
$> vagrant basebox templates
The following templates are available:
vagrant basebox define '' 'archlinux-i686'
vagrant basebox define '' 'CentOS-4.8-i386'
vagrant basebox define '' 'CentOS-5.6-i386'
vagrant basebox define '' 'CentOS-5.6-i386-netboot'
$>   vagrant   basebox define 'debian-60' 'Debian-6.0.1a-amd64'
$>   vagrant   basebox build 'debian-60‚
$>   vagrant   box add 'debian-60' debian-60.box
$>   vagrant   init 'debian-60'
StatsD
https://github.com/etsy/statsd
Fix the apps
Service   Service
           Opera   Firefox     IE
                                          Client    Client




                                                             NoSql
                      SOAP   Tpl    BL

Services
                             App




                                                             DBs
Consumers (apps, browsers, services)




                                              JSON
                   Services
Node   Node            Nginx        Rails   Couch
               DNode                                 SAP
 app    app             php         +Thin    base




DBs    NoSql
                               Services
Smaller, faster, flexible
More Controls. More Releases.
Adapt or die.
Decoupled
(content, storage, service, etc.)
Decoupled CMS
    Demo
create.js
http://createjs.org/
Javascript
•Jasmine
•Jasmine-node
•require.js
•common.js
Questions?
Resources

References
http://www.asymco.com/2012/06/19/the-evolution-of-the-computing-value-chain/

Toolkits (mobile, desktop, JS, app)
• http://phonegap.com/
• http://jquery.org/
• http://dojotoolkit.org/
• http://www.appcelerator.com/
• http://www.sencha.com/
Resources

Languages (mobile, desktop, JS, app)
• http://www.php.net/
• http://python.org/
• http://www.ruby-lang.org/
• http://www.red-lang.org/
• http://golang.org/
Resources

Node.js/Javascript
• DNode introduction, http://substack.net/posts/85e1bd/DNode-Asynchronous-Remote-
  Method-Invocation-for-Node-js-and-the-Browser
• DNode for PHP, http://bergie.iki.fi/blog/dnode-make_php_and_node-
  js_talk_to_each_other/
• https://github.com/substack/dnode-ruby
• https://github.com/substack/dnode-perl
• https://github.com/jesusabdullah/dnode-python
• https://github.com/aslakhellesoy/dnode-java
• http://mustache.github.com/
• http://backbonejs.org/
Resources

Node.js/Javascript
• https://github.com/substack/node-browserify
• http://www.commonjs.org/
• http://xcambar.github.com/shepherd-js/
• http://requirejs.org/
• http://backbonejs.org/
• http://mustache.github.com/
• http://createjs.org/
• https://github.com/wikidocs/wikidocs-examples
• http://uxebu.com/blog/2012/09/17/bonsai-fresh-from-the-pixelplant/
  https://www.pixelplant.com/
Resources

Server/Dev/Infrastructure
• http://vagrantup.com/
• https://github.com/jedi4ever/veewee
• https://github.com/capistrano/capistrano
• http://fabfile.org/ (fabric)
• https://github.com/etsy/statsd
• http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/
Resources

Server/Dev/Infrastructure/QA/Misc
• http://lists.w3.org/Archives/Public/public-coremob/2012Sep/0021.html
  (why html is slow for Facebook)
• http://travis-ci.org/
• http://vimeo.com/45633052 (Decoupled CMS talk, by @bergie)

Webdevcon Keynote hh-2012-09-18

Editor's Notes

  • #4 Werdeuber PHP sprechen…..Neh, nichtwirklich
  • #5 jQuery Mobile
  • #6 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, dart?, Python, ruby, java, c#, scala?
  • #7 For the fun of it, a Red example Ask: Who knows one language? Two? More? (gut genugetwaszubauen)
  • #8 Esgibtetwas positives, and we can blame the old dark force
  • #9 (gibtsowieso standing neue)
  • #13 Next slide is video, wait a bit before switching, need live conn.
  • #17 There is hope.Facebook presenter“HTML5 is not useable for mobile devices”
  • #19 Esgibtetwas positives, and we can blame the old dark force
  • #20 Aberauch negatives, wirsindschuld.
  • #21 World Domination plan seiterste Tag!
  • #22 New company (on the block),gleicheZiele. Dark Force
  • #24 Take #2
  • #27 http://lists.w3.org/Archives/Public/public-coremob/2012Sep/0021.html(why html is slow for Facebook)Scrolling performance, GPU support, touch solltemehr features habenCrazy things like gifsocket
  • #28 jQuery Mobile
  • #29 jQuery Mobile
  • #31 Vendor platforms, Microsoft, linux, oracle, etc.
  • #33 Cloud platforms… und die so genannte standards
  • #34 Fail.
  • #35 Broken Old Methods fail.Alte toolsAlter processeJahres plan und dieseganze geschichte
  • #39 Wernutzt (schon) CI in seine Prjs? Wernicht hat irgendwieschonein Problem :>
  • #40 Oder selenium usw. Apps testing, etc.
  • #42 keine Entschuldigung mehr nicht zu arbeiten ;)Server, client (win/android/linux/etc) no idea about OSX on VM
  • #43 Vagrant, anyone uses it?
  • #44 Get your VM up and running
  • #45 keine Entschuldigung mehr nicht zu arbeiten ;)
  • #46 Get your VM up and running
  • #47 Get your VM up and running
  • #48 MonitoringZum beispielGraphite (time serie data store), console, repeater (cluster of statsd servers)
  • #49 keine Entschuldigung mehr nicht zu arbeiten ;)
  • #50 monolitic
  • #51 keine Entschuldigung mehr nicht zu arbeiten ;)Services, twitter, booking platform, finances, etc. etc.
  • #53 Deployment tools like capistrano, fabric
  • #57 Decoupled contentDemoWikidocs, collabaritive editing, html
  • #58 Backbone, moustache, require.js, jasmine (unit testing)
  • #59 Unit testing, manual durch browser, automationmoeglich via node
  • #60 Modulaer, loader, etc.
  • #61 Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions,views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
  • #62 Flash to html5 converter, underlying lib Banzai ist grade freigegeben
  • #64 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, Python, ruby, java, c#, scala?
  • #65 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, Python, ruby, java, c#, scala?
  • #66 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, Python, ruby, java, c#, scala?
  • #67 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, Python, ruby, java, c#, scala?
  • #68 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, Python, ruby, java, c#, scala?
  • #69 Nutztjemand PHP?Anyone using PHP in the room?If not, which primary language?javascript, Python, ruby, java, c#, scala?