SlideShare a Scribd company logo
1 of 65
Download to read offline
Web 2.0 sviluppare e
 ottimizzare oggi

    alessandro cinelli (cirpo)
Chi sono

• sviluppatore Php, Javascript e Java
• membro Lugbs, Grusp, symfony-it
• traduttore documentazione symfony,
  zend framework e ProGit
• sviluppatore progetto phpCollab
perche’ siamo qui?

• condividere
• barcamp
• webdebs
www.webdebs.org


       http://groups.google.com/group/webdebs


http://www.linkedin.com/groups?gid=2801279&trk=myg_ugrp_ovr
www.webdebs.org
incontri


• web 2.0 sviluppare e ottimizzare oggi
• svcs: git e svn a confronto
• symfony framework, un’introduzione
• ...
sbadiglio
C’era una
 volta...
LEGO 1996
Apple 1997
Apple 2000
LEGO 2000
LEGO 2004
Apple 2004
LEGO 2010
Apple 2010
LEGO 1996
LEGO 2000
LEGO 2010
Apple 1997
Apple 2000
Apple 2004
Apple 2010
2004 - oggi
                        2004
2005




   2006

                         2007
Tim O’Reilly




http://oreilly.com/web2/archive/what-is-web-20.html
Tecnologie
   Rest    jquery              cassandra xslt
   symfony            HTML5 redis
             php agile           svg          RoR
            mvc
   java ajax python         flex        cloud

              Yui        xsl MongoDb zend fm
 XHTML
                    css3
          nosql orm xml Ec2 DOM
 json            comet mysql silverlight        canvas
 wireframes
            groovy svn TDD                 flash Hadoop
                              xunit
mapreduce       erlang couchDb       git     memcached
  microformat
               webservices websockets
HTML 5




http://www.foxtrot.com/2010/03/03212010/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Foxtrotcom+(FoxTrot.com)
HTML 5
• canvas
• svg
• geo location
• Html5Storage
• web workers
• audio
• video
             http://diveintohtml5.org/
NoSql
• Database documentali
 • CouchDb
 • MongoDb
• Key/Value
 • MemcachedDb
 • Redis
 • Cassandra
YouTube

• Apache
• Python
• Mysql
• Lighthttpd(video)
     http://video.google.com/videoplay?docid=-6304964351441328559
YouTube
while (true)
{
identify_and_fix_bottlenecks();
drink();
sleep();
notice_new_bottleneck();
}
YouTube
       Pagine servite



•   11,574 al secondo
•   694,444 al minuto
•   41,666,667 all’ora
•   1,000,000,000 al giorno
YouTube
• CDN
• NetScaler(Citrix) Load Balancer
• Lighttpd
• mini cluster per video
• Estension scritte in C
• Html Cache
• Python Object Cache
• BigTable images
• Mysql
Facebook

• 8 miliardi di minuti passati
  complessivamente ogni giorno
• 2, 5 miliardi di foto caricate ogni settimana
• 300 milioni di utenti
Facebook
                                  LOAD BALANCER




                              WEBSERVER (PHP) SERVICES




SERVICES(veloci, complessi)   DATABASE(lento, persistente)   MEMCACHED(veloce, semplice)
Facebook

• php
• java
• erlang
• python
• ruby
Facebook


• http://developers.facebook.com/
• http://video.fosdem.org/2010/maintracks/
  facebook.xvid.avi
blog devs

• http://code.flickr.com/blog/
• http://developer.yahoo.com/
• http://developers.facebook.com/
strumenti di sviluppo
• svcs
• project management
• continuos integration system*
• wireframes/mockup
• ide/editor
• editor di immagini
• browser
ide
• vim
• eclipse/aptana
• netbeans
• dreamweaver
• textmate
ide/editor
monitor


• nagios
• mytop
debug lato server


• xdebug
• zend debugger
debug lato client


• firebug
• web developer
firebug
• framework
• librerie
• metodologie di sviluppo
ottimizzazione
We should forget about small efficiencies, say
about 97% of the time: premature optimization
is the root of all evil -Donald Knuth-


• lato server
• lato client
ottimizzazione lato
         server

• cache
• web server
• database
ottimizzazione


• yslow
• live httpheaders
ottimizzazione


• http://code.google.com/closure/compiler
•   http://developer.yahoo.com/yui/compressor/
http://lugbs.linux.it
sickgirl.it
sickgirl.it
sickgirl.it
ungolperlavita.it
ungolperlavita.cirpo.org
ugplv.cirpo.org
domande ?
grazie a tutti :)

• alessandro.cinelli@gmail.com
• twitter.com/cirpo
• http://delicious.com/cirpo
• http://it.linkedin.com/in/cinellialessandro

More Related Content

Similar to Web 2.0 sviluppare e ottimizzare oggi

Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90
mstrom62
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
Tommaso Torti
 
Ardelean phone gap_wp4.
Ardelean phone gap_wp4.Ardelean phone gap_wp4.
Ardelean phone gap_wp4.
Dan Ardelean
 

Similar to Web 2.0 sviluppare e ottimizzare oggi (20)

Html5
Html5Html5
Html5
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
HTML 5 e browser legacy
HTML 5 e browser legacyHTML 5 e browser legacy
HTML 5 e browser legacy
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side Javascript
 
Custom vision on edge device
Custom vision on edge deviceCustom vision on edge device
Custom vision on edge device
 
IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge device
 
Drupal in the Cloud
Drupal in the CloudDrupal in the Cloud
Drupal in the Cloud
 
Ardelean phone gap_wp4.
Ardelean phone gap_wp4.Ardelean phone gap_wp4.
Ardelean phone gap_wp4.
 
Osd 2016 Middleware Track
Osd 2016 Middleware TrackOsd 2016 Middleware Track
Osd 2016 Middleware Track
 
#dd12,Quickr : iMMobilizing
#dd12,Quickr : iMMobilizing#dd12,Quickr : iMMobilizing
#dd12,Quickr : iMMobilizing
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 

More from Alessandro Cinelli (cirpo)

PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
Alessandro Cinelli (cirpo)
 
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
Alessandro Cinelli (cirpo)
 

More from Alessandro Cinelli (cirpo) (15)

Dear JavaScript
Dear JavaScriptDear JavaScript
Dear JavaScript
 
The evolution of asynchronous JavaScript
The evolution of asynchronous JavaScriptThe evolution of asynchronous JavaScript
The evolution of asynchronous JavaScript
 
The journey to become a solid developer
The journey to become a solid developer The journey to become a solid developer
The journey to become a solid developer
 
The evolution of asynchronous javascript
The evolution of asynchronous javascriptThe evolution of asynchronous javascript
The evolution of asynchronous javascript
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stage
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apis
 
Introduzione a GIT - Webinar Zend
Introduzione a GIT - Webinar ZendIntroduzione a GIT - Webinar Zend
Introduzione a GIT - Webinar Zend
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
 
Git e Git Flow
Git e Git Flow Git e Git Flow
Git e Git Flow
 
Presentazione framework Symfony
Presentazione framework Symfony Presentazione framework Symfony
Presentazione framework Symfony
 

Web 2.0 sviluppare e ottimizzare oggi