CMF: a pain in the F @ PHPDay 05-14-2011

Long story short, a true tale about an hopeless DevTeam


CMF: a pain in the F



 David Funaro & Alessandro Nadalin
                      May, 14 2011
let us introduce


The Problem™
There comes the boss
            < there's a new project
There comes the boss


              < seems easy,
                let's use Joomla!
Don't open that door!
CMS


The 80/20 dilemma
80% is cool at all
but as

the requirements grows
(you always knew that)
the project becomes a mess
There comes the boss
            < can I haz fotonic
              menthal scanner
              in the website
There comes the boss


              < can't do boss
             Joomla! is not meant...
There comes the boss
           < STFU NOOB DO THAT
             OR BLA BLA BLA
what if
There comes the boss


               < seems complex,
              no Joomla this time,
             let's use a framework!
There comes the boss
           < STFU NOOB WE
             SHOULD GO LIVE
             NEXT WEEK BLA BLA
Framework


The 20/80 dilemma
20% is cool at all
the 80%
is really
 funny
but has a cost
   Time To Market
again, what if
There comes the boss


               < seems complex,
              no Joomla this time,
             when should it go live?
There comes the boss
           < salesguy just told the
             client tomorrow
There comes the boss


             < ok, let's use a CMF
unfortunately, there is no stable
  CMF in the PHP ecosystem
so it has a cost
   initial development
investment
                 =
       know how (team) +
      quality (framework) +
velocity (that customers pretend)

               =

             CMF
"Our" CMF
Target: End User/Site admin



should be able to manage a site editing pages with
                different elements.

             Easily, like a CMS.
Target: Developer

    should be able to plug the CMF with NO PAIN,
using the kick-ass framework at the bottom of the CMF.
CMF: a pain in the F @ PHPDay 05-14-2011
2
things
Pages
Pages

 main structure of a web site
 organized as a tree
 a way to express our contents
 usually composed by a series of
 containers ( that we'll refer to as
 boxes )
Boxes
Boxes

The way to separate
single elements of a page

Loosely coupled HMVC
structures
Boxes
                 {Bridge}




Entities                              Pages


 Boxes let entities be shown inside webpages
Boxes

We dispose of different types of
boxes:
  Common
  DSL
Common Box
Simple
   Input field
   Textarea
   Video
   Image
   File
   Richtext
Composite
   Input field + image
   input field + image + richetex
   textarea + video
what about the DSL?
Domain Specific Language


DSL = ! (Website 1   Website 2 )
Example: Identify DSL



    Event    Page        Event           Page

Books                    Cars            Users
          Review
   News          Users    News      Contract

        Widget                  Widget
Web Elements = CMF Entities




            Page        Cars
Books      News
Review     Widget
                      Contract




             DSL
back to the CMF
CMF Stack

Framework: symfony, for example
CMF entities: Site, Pages, Menus, Users ...
DSL entities: cars, contracts (for Hertz)
Common Boxes : Textarea, image, video, ...
Dsl boxes: Cars image gallery
Common Boxes + DSL Boxes
                 =




The main tool for the developer to build a page
                with the CMF
Example : page & box composition
The Page-Box Binding Storage

Data can change its structure fastly, according to the domain model.

        We need a technology supporting this fast change.

      Since we have N box type, to compose a page we should
                      look for a few tables.

      We need a technology supporting this kind of lookups.
so,
  How will we
manage the data?
RDBMS   , of course
because different
data always have
 the same need
one size fits all
We tend to think at the way we should store data

          not how we're gonna use it
and we think that the

shit-it-always-happens migration

          will be easy
also if that column is useful for one and one only row
among milions
so we know we're gonna face
a few well-known problems...
Data Mapping
 Data Structure                              RDBMS


                                    id               10



                                   name          tom



                                 parent_id           19



we have to find a way to re-organize the data-structre to insert our
tree inside a table.
But is really different! Tree find a node in O(nlogn)
Data Mapping
Data Structure                         RDBMS




      is better than before, but isn't the best way
Data Mapping
Data Structure              RDBMS




                            ?
         ... and NOW??????
The Alien

spend more time to normalize
your models




          BUT
    you always find
  something that as a
  different Behaviour
Unpredictable
    Tomorrow

User Story evolve continous
   Worse than the Alien
EAV
                 formerly known as:
              normalization WTF?!?!?!


                          or:
how to do 70k joins to retrieve an entity of you model
Overnormalized
user_id | mail | phone | address


                    Large schema is broken
                       into smaller ones



       user_id | mail_id
      user_id | phone_id
     user_id | address_id
Overnormalized
user_id | mail_id LEFT JOIN
user_id | phone_id LEFT JOIN
...
...
...
...
...

user_id | address_id   LEFT JOIN
Overnormalized

              Users List
LEFT JOIN                  LEFT JOIN
                  LEFT JOIN
                        LEFT JOIN
                    LEFT JOIN
LEFT JOIN               LEFT JOIN
Overnormalized
LEFT JOIN                 LEFT JOIN
                     LEFT JOIN
         LEFT JOINList
             Users         LEFT JOIN
LEFT JOIN              LEFT JOIN
           LEFT JOIN
 LEFT JOIN       LEFT JOIN
  LEFT JOIN
   LEFT JOIN
           LEFT JOIN    LEFT JOIN
     LEFT JOIN
      LEFT JOIN LEFT JOIN
       LEFT JOIN
  What if you need to show only a single primary address?
back to the CMF
Bind Page with Boxes




Foreing Key -> TextareaBox
Bind Page with Boxes




Foreing Key -> ?


       AND NOW
        AND NOW ???
#1   Mantain the RI
#2   Not Mantain the RI
Maintain or not Maintain
   the RI; that is the
       question
we have to choose
have you ever thought



"there should be
 another way!"

            ?
Can someone help us?
lets try


NoSQL
 world
Written in: C/C++
                                Main point: Blazing fast
                                Protocol: Telnet-like
                                Disk-backed in-memory database,
                                but since 2.0, it can swap to disk.
                                Master-slave replication
                                Simple keys and values,
                                but complex operations like
                                ZREVRANGEBYSCORE
                                INCR
                                Values can be set to expire (as in a cache)




$ redis-cli set mykey "my binary safe value" => OK
$ redis-cli get mykey => my binary safe value
Best used:
                                                     rapidly changing data
                                                     with a foreseeable
                                                     database size (should fit
                                                     mostly in memory)


                                                   For example:
                                                     analytics
                                                     real-time data collection
                                                     caching
                                                     MQ
                                                     log
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
very fast
very fast


Object != key -> value
very fast


              Object != key -> value

              Not reliable



Can I haz otha nozql?
Written in: C++
                                                Main point: Retains some friendly properties
                                                of SQL
                                                Protocol: Custom, binary (BSON)
                                                Master/slave replication
                                                speaks JavaScript
                                                Built-in sharding
                                                Performance over features
                                                After crash, it needs to repair tables



> j = { name : 'david', surname : 'funaro' };

{ "name" : "david", "surname" : "funaro" }

> db.things.save(t);

> db.things.find();

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
Best used:
                                               you need dynamic queries
                                               you prefer to define indexes,
                                               not map/reduce functions
                                               you need good performance
                                               on a big DB


                                              For example:
                                                all things that you would do
                                                with MySQL or PostgreSQL,
                                                but having predefined
                                                columns really holds you back
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Document Oriented
Document Oriented

Schema Free
Document Oriented

            Schema Free

            Navigate Object




Can I haz otha nozql?
Written in: Erlang
                                         Main point: DB consistency, ease of use
                                         Protocol: HTTP, some say REST
                                         Bi-directional replication => master-master
                                         conflict detection ( 409 Conflict )
                                         MVCC: write operations do not block reads
                                         Previous versions of documents are
                                         available
                                         Crash-only (reliable) design
                                         Needs compacting from time to time
                                         Views: embedded map/reduce
                                         jQuery library included




curl -d '{"keys":["bar"]}' -X POST http://host:port/foo/_all_docs?include_docs=true
Best used:
                                              accumulating occasionally-
                                              changing data
                                              pre-defined queries
                                              versioning is king


                                             For example:
                                               CRM/CMS systems
                                               API


http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Reliable
Reliable

Document Oriented
Reliable

Document Oriented

Schema Free
Reliable

           Document Oriented

           Schema Free

           Navigate Object



Can I haz otha nozql?
Why do we so hardly
 need a GraphDB
  like OrientDB?
"GraphDBs don't avoid relations but they embrace them in
a way that they are not a computational problem
anymore, by making them explicit instead of implicit
through joins."

                                                      Claudio Martella
                      ( http://blog.acaro.org/entry/somebody-is-going-to-hate-me-nosparql )
Easy joins
select from users where city.country.continent = 'Oceania'
Same link semantics,
  different objects
   select links from menu >> 28:1, 17:5
Same link semantics,
    different objects
                 select from [28:1, 17:5]


          28:1                                 17:5
        ExternalLink                        ProductLink
url: http://www.google.com                     id: 4
28:1                  17:5
        ExternalLink         ProductLink
url: http://www.google.com      id: 4




          $link->render()
Written in: Java
                                    Main point: Graph
                                    Protocol: Binary or HTTP
                                    ACID
                                    Disk-persisted or in-memory,
                                    Cluster
                                    150k inserts per second
                                    Schema-less, *-full, *-mixed
                                    Speaks JSON
                                    Integrated GUI
                                    Documental
                                    SQL commands



curl -X PUT '127.0.0.1:2480/document/demo/1:2' --data "{'@rid': '1:2'}"
Reliable
Reliable

Graph - Documental
Reliable

Graph - Documental

Schema-*
Reliable

Graph - Documental

Schema-*

Easy traversal
Reliable

Graph - Documental

Schema-*

Easy traversal

SQL-friendly
Reliable

Graph - Documental

Schema-*

Easy traversal

SQL-friendly

UberFast ( binary protocol )
Reliable

Graph - Documental

Schema-*

Easy traversal

SQL-friendly

UberFast ( binary protocol )

Universal ( HTTP protocol )
is so cool
but has a problem...
ver 1.0
rc1
but has a couple problems...
JAVA
but somebody
started writing the binary-protocol binding
     https://github.com/AntonTerekhov/OrientDB-PHP
                    ( beta, 28 April 2010 )
and others
CMF: a pain in the F @ PHPDay 05-14-2011
wrote the HTTP one

https://github.com/odino/Orient
$driver = new OrientHttpClientCurl();
$orient = new OrientFoundationBinding(
  $driver, '127.0.0.1', '2480', 'admin', 'admin', 'demo
');

$response = $orient->query("select from fellas where any() traverse(0,-1) ( @rid = 1:1 )");

$output = json_decode($response->getBody());
foreach ($output->result as $friend)
{
  echo $friend->name;

    // other fun...
}
you can start playing with a pure

         GraphDB now
High-level PHP Component?
No
but we know that ;)
that's why in DNSEE we will build a basic


Object Graph Mapper
              for OrientDB
...because...
hey, you remember about our CMF?
codename: ConGoW
codename: ConGoW

contents gone wild

   ( don't ask why )
ConGoW

 soon the real kickstart
ConGoW

 soon the real kickstart
 10 devs at the starting point
ConGoW

 soon the real kickstart
 10 devs at the starting point
 OSS on GitHub
ConGoW

 soon the real kickstart
 10 devs at the starting point
 OSS on GitHub
 Stack
   Symfony2
ConGoW

 soon the real kickstart
 10 devs at the starting point
 OSS on GitHub
 Stack
   Symfony2
   Orient
ConGoW

 soon the real kickstart
 10 devs at the starting point
 OSS on GitHub
 Stack
   Symfony2
   Orient
   Doctrine2
"My only friend, the end"
"My only friend, the end"
David Funaro
@ingdavidino
davidfunaro.com
"My only friend, the end"
David Funaro      Alessandro Nadalin
@ingdavidino                   @_odino_
davidfunaro.com                 odino.org
"My only friend, the end"
David Funaro      Alessandro Nadalin
@ingdavidino                   @_odino_
davidfunaro.com                 odino.org
"My only friend, the end"
David Funaro                     Alessandro Nadalin
@ingdavidino                                               @_odino_
http://davidfunaro.com                               http://odino.org




                    http://joind.in/talk/view/3008
Credits
http://www.flickr.com/photos/pagedooley/5313217918/sizes/l/in/photostream/
  http://www.flickr.com/photos/zoetnet/5520594473/sizes/l/in/photostream/
 http://www.flickr.com/photos/mhxbhd/3962410821/sizes/o/in/photostream/
http://www.flickr.com/photos/labyrinthx/1955594336/sizes/z/in/photostream/
         http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
    http://www.flickr.com/photos/salim/19426192/sizes/o/in/photostream/
http://www.flickr.com/photos/mybluevan/3780363712/sizes/l/in/photostream/
         http://farm4.static.flickr.com/3064/3086258014_f1925639e0.jpg
1 of 140

Recommended

Please Don't Touch the Slow Parts V3 by
Please Don't Touch the Slow Parts V3Please Don't Touch the Slow Parts V3
Please Don't Touch the Slow Parts V3Federico Galassi
979 views85 slides
Please dont touch-3.5 by
Please dont touch-3.5Please dont touch-3.5
Please dont touch-3.5Francesco Fullone
410 views89 slides
Dbi Advanced Talk 200708 by
Dbi Advanced Talk 200708Dbi Advanced Talk 200708
Dbi Advanced Talk 200708oscon2007
2.2K views119 slides
Gofer 200707 by
Gofer 200707Gofer 200707
Gofer 200707oscon2007
401 views27 slides
Biblia javascript by
Biblia javascriptBiblia javascript
Biblia javascriptJoel Ramirez Gonzalez
2.6K views2177 slides
What's new in Joomla 1.6? by
What's new in Joomla 1.6?What's new in Joomla 1.6?
What's new in Joomla 1.6?Alessandro Nadalin
1K views13 slides

More Related Content

Viewers also liked

Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA) by
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Alessandro Nadalin
4.2K views183 slides
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin by
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
2K views122 slides
Pubcon 2016 - How SEO's can Use PPC to hit their goals by
Pubcon 2016 - How SEO's can Use PPC to hit their goalsPubcon 2016 - How SEO's can Use PPC to hit their goals
Pubcon 2016 - How SEO's can Use PPC to hit their goalsWil Reynolds
13.8K views138 slides
Debunking the myths of organizational change management by
Debunking the myths of organizational change managementDebunking the myths of organizational change management
Debunking the myths of organizational change managementaccenture
191.1K views16 slides
BigWeatherGear Group and Corporate Services Brochure 2013 by
BigWeatherGear Group and Corporate Services Brochure 2013BigWeatherGear Group and Corporate Services Brochure 2013
BigWeatherGear Group and Corporate Services Brochure 2013Kristin Matson
438.5K views4 slides
designing innovation, insitutions for social transformation D1s3 gupta anil i... by
designing innovation, insitutions for social transformation D1s3 gupta anil i...designing innovation, insitutions for social transformation D1s3 gupta anil i...
designing innovation, insitutions for social transformation D1s3 gupta anil i...Dr Anil Gupta
70.5K views69 slides

Viewers also liked(16)

Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA) by Alessandro Nadalin
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Don't screw it up: how to build durable web apis @ PHPDay 2014 in Verona (ITA)
Alessandro Nadalin4.2K views
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin by Alessandro Nadalin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Pubcon 2016 - How SEO's can Use PPC to hit their goals by Wil Reynolds
Pubcon 2016 - How SEO's can Use PPC to hit their goalsPubcon 2016 - How SEO's can Use PPC to hit their goals
Pubcon 2016 - How SEO's can Use PPC to hit their goals
Wil Reynolds13.8K views
Debunking the myths of organizational change management by accenture
Debunking the myths of organizational change managementDebunking the myths of organizational change management
Debunking the myths of organizational change management
accenture191.1K views
BigWeatherGear Group and Corporate Services Brochure 2013 by Kristin Matson
BigWeatherGear Group and Corporate Services Brochure 2013BigWeatherGear Group and Corporate Services Brochure 2013
BigWeatherGear Group and Corporate Services Brochure 2013
Kristin Matson438.5K views
designing innovation, insitutions for social transformation D1s3 gupta anil i... by Dr Anil Gupta
designing innovation, insitutions for social transformation D1s3 gupta anil i...designing innovation, insitutions for social transformation D1s3 gupta anil i...
designing innovation, insitutions for social transformation D1s3 gupta anil i...
Dr Anil Gupta70.5K views
10 Ways Your Boss Kills Employee Motivation by Officevibe
10 Ways Your Boss Kills Employee Motivation10 Ways Your Boss Kills Employee Motivation
10 Ways Your Boss Kills Employee Motivation
Officevibe771.3K views
50 Essential Content Marketing Hacks (Content Marketing World) by Heinz Marketing Inc
50 Essential Content Marketing Hacks (Content Marketing World)50 Essential Content Marketing Hacks (Content Marketing World)
50 Essential Content Marketing Hacks (Content Marketing World)
Heinz Marketing Inc167.3K views
Prototyping is an attitude by With Company
Prototyping is an attitudePrototyping is an attitude
Prototyping is an attitude
With Company1.4M views
10 Insightful Quotes On Designing A Better Customer Experience by Yuan Wang
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience
Yuan Wang1.3M views
How to Use Social Media to Influence the World by Sean Si
How to Use Social Media to Influence the WorldHow to Use Social Media to Influence the World
How to Use Social Media to Influence the World
Sean Si381.1K views
SEO: Getting Personal by Kirsty Hulse
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse432.5K views
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba by ux singapore
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
ux singapore1.2M views

Similar to CMF: a pain in the F @ PHPDay 05-14-2011

Hybrid MongoDB and RDBMS Applications by
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsSteven Francia
27.4K views68 slides
Super Sizing Youtube with Python by
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Pythondidip
15.2K views25 slides
Os Solomon by
Os SolomonOs Solomon
Os Solomonoscon2007
661 views25 slides
Vote NO for MySQL by
Vote NO for MySQLVote NO for MySQL
Vote NO for MySQLUlf Wendel
3.2K views61 slides
Node.JS| Coffeescript Presentation by
Node.JS| Coffeescript PresentationNode.JS| Coffeescript Presentation
Node.JS| Coffeescript PresentationSam Frons
6.5K views40 slides
STP201 Efficiency at Scale - AWS re: Invent 2012 by
STP201 Efficiency at Scale - AWS re: Invent 2012STP201 Efficiency at Scale - AWS re: Invent 2012
STP201 Efficiency at Scale - AWS re: Invent 2012Amazon Web Services
1.8K views73 slides

Similar to CMF: a pain in the F @ PHPDay 05-14-2011(20)

Hybrid MongoDB and RDBMS Applications by Steven Francia
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS Applications
Steven Francia27.4K views
Super Sizing Youtube with Python by didip
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
didip15.2K views
Os Solomon by oscon2007
Os SolomonOs Solomon
Os Solomon
oscon2007661 views
Vote NO for MySQL by Ulf Wendel
Vote NO for MySQLVote NO for MySQL
Vote NO for MySQL
Ulf Wendel3.2K views
Node.JS| Coffeescript Presentation by Sam Frons
Node.JS| Coffeescript PresentationNode.JS| Coffeescript Presentation
Node.JS| Coffeescript Presentation
Sam Frons6.5K views
STP201 Efficiency at Scale - AWS re: Invent 2012 by Amazon Web Services
STP201 Efficiency at Scale - AWS re: Invent 2012STP201 Efficiency at Scale - AWS re: Invent 2012
STP201 Efficiency at Scale - AWS re: Invent 2012
Amazon Web Services1.8K views
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3... by Amazon Web Services
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
Amazon Web Services1.9K views
CQRS recipes or how to cook your architecture by Thomas Jaskula
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architecture
Thomas Jaskula18K views
Optimize drupal using mongo db by Vladimir Ilic
Optimize drupal using mongo dbOptimize drupal using mongo db
Optimize drupal using mongo db
Vladimir Ilic9.1K views
Lessons Learned from Building a Multi-Tenant Saas Content Management System o... by MongoDB
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
MongoDB19.5K views
Minnebar 2013 - Scaling with Cassandra by Jeff Bollinger
Minnebar 2013 - Scaling with CassandraMinnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with Cassandra
Jeff Bollinger4.6K views
Mongo la search platform - january 2013 by MongoDB
Mongo la   search platform - january 2013Mongo la   search platform - january 2013
Mongo la search platform - january 2013
MongoDB274 views
Sharded By Business Line: Migrating to a Core Database using MongoDB and Solr by MongoDB
Sharded By Business Line: Migrating to a Core Database using MongoDB and SolrSharded By Business Line: Migrating to a Core Database using MongoDB and Solr
Sharded By Business Line: Migrating to a Core Database using MongoDB and Solr
MongoDB865 views
Trigger maxl from fdmee by Bernard Ash
Trigger maxl from fdmeeTrigger maxl from fdmee
Trigger maxl from fdmee
Bernard Ash1.6K views
Dapper: the microORM that will change your life by Davide Mauri
Dapper: the microORM that will change your lifeDapper: the microORM that will change your life
Dapper: the microORM that will change your life
Davide Mauri2.1K views
Learning subjects for junior level developers at Skitsanos Inc. by Evgenios Skitsanos
Learning subjects for junior level developers at Skitsanos Inc.Learning subjects for junior level developers at Skitsanos Inc.
Learning subjects for junior level developers at Skitsanos Inc.
Evgenios Skitsanos354 views

More from Alessandro Nadalin

Spa, isomorphic and back to the server our journey with js @ frontend con po... by
Spa, isomorphic and back to the server  our journey with js @ frontend con po...Spa, isomorphic and back to the server  our journey with js @ frontend con po...
Spa, isomorphic and back to the server our journey with js @ frontend con po...Alessandro Nadalin
642 views152 slides
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2... by
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...Alessandro Nadalin
914 views155 slides
Scaling at Namshi @ Seamless Ecommerce Dubai 2017 by
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Alessandro Nadalin
474 views34 slides
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai by
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in DubaiAccelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in DubaiAlessandro Nadalin
370 views62 slides
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin by
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinA tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinAlessandro Nadalin
672 views44 slides
React native in the wild @ Codemotion 2016 in Rome by
React native in the wild @ Codemotion 2016 in RomeReact native in the wild @ Codemotion 2016 in Rome
React native in the wild @ Codemotion 2016 in RomeAlessandro Nadalin
1.1K views32 slides

More from Alessandro Nadalin(20)

Spa, isomorphic and back to the server our journey with js @ frontend con po... by Alessandro Nadalin
Spa, isomorphic and back to the server  our journey with js @ frontend con po...Spa, isomorphic and back to the server  our journey with js @ frontend con po...
Spa, isomorphic and back to the server our journey with js @ frontend con po...
Alessandro Nadalin642 views
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2... by Alessandro Nadalin
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...
Alessandro Nadalin914 views
Scaling at Namshi @ Seamless Ecommerce Dubai 2017 by Alessandro Nadalin
Scaling at Namshi @ Seamless Ecommerce Dubai 2017Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Scaling at Namshi @ Seamless Ecommerce Dubai 2017
Alessandro Nadalin474 views
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai by Alessandro Nadalin
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in DubaiAccelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
Accelerated Mobile Pages @ Dubytes meetup Dec 2016 in Dubai
Alessandro Nadalin370 views
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin by Alessandro Nadalin
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinA tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
A tech team of ~10 @ Rocket Tech Summit 2016 in Berlin
Alessandro Nadalin672 views
React native in the wild @ Codemotion 2016 in Rome by Alessandro Nadalin
React native in the wild @ Codemotion 2016 in RomeReact native in the wild @ Codemotion 2016 in Rome
React native in the wild @ Codemotion 2016 in Rome
Alessandro Nadalin1.1K views
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ... by Alessandro Nadalin
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
Hey, I just met AngularJS, and this is crazy, so here’s my JavaScript, let’s ...
Alessandro Nadalin2.8K views
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA) by Alessandro Nadalin
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)
Alessandro Nadalin5.6K views
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal... by Alessandro Nadalin
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
Alessandro Nadalin6.9K views
A Rocket Internet experience @ ForumPHP Paris 2013 by Alessandro Nadalin
A Rocket Internet experience @ ForumPHP Paris 2013A Rocket Internet experience @ ForumPHP Paris 2013
A Rocket Internet experience @ ForumPHP Paris 2013
Alessandro Nadalin16.5K views
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco by Alessandro Nadalin
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
Alessandro Nadalin3.8K views
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San... by Alessandro Nadalin
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San...
Alessandro Nadalin6.6K views
The rocket internet experience @ PHP.TO.START 2013 in Turin by Alessandro Nadalin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in Turin
Alessandro Nadalin8.2K views
HTTP colon slash slash: the end of the road? by Alessandro Nadalin
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
Alessandro Nadalin5.2K views
The state of your own hypertext preprocessor by Alessandro Nadalin
The state of your own hypertext preprocessorThe state of your own hypertext preprocessor
The state of your own hypertext preprocessor
Alessandro Nadalin1.9K views
REST in peace @ Osidays 2011 India 11-21-2011 by Alessandro Nadalin
REST in peace @ Osidays 2011 India 11-21-2011REST in peace @ Osidays 2011 India 11-21-2011
REST in peace @ Osidays 2011 India 11-21-2011
Alessandro Nadalin1.8K views

Recently uploaded

Business Analyst Series 2023 - Week 4 Session 7 by
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
110 views31 slides
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
191 views23 slides
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...ShapeBlue
48 views17 slides
"Surviving highload with Node.js", Andrii Shumada by
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada Fwdays
49 views29 slides
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
40 views52 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
130 views29 slides

Recently uploaded(20)

Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10110 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue191 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue48 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays49 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue114 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue52 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue69 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue113 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty54 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue75 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue68 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue81 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue121 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue86 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue63 views

CMF: a pain in the F @ PHPDay 05-14-2011