a.k,a the Bentobox method to
   understanding web apps
What have we learned so far?
The difference between a web site
and a web application
           application.

The difference between a
programming language and a web
framework.

Copy-paste rules. Google everything!
  py p               g       y    g
Picture by
http://www.flickr.com/photos/gamene/
Why Bento?
• You need a balanced mix of things.
• It’s a puzzle - putting everything
  together in the box.
• “Ekiben“ - content which is
  arranged in the most efficient,
  graceful manner. The bento is
  presented in a simple, beautiful,
  balanced way. Nothing lacking.
  Nothing superfluous. Not decorated,
  but
  b t wonderfully d i
           d f ll designed. d
The Bento wireframe


 STORAGE         THE LOGIC (BACK‐END)
(BACK‐END)




   INFRA
(BACK END)
(BACK‐END)   THE STRUCTURE AND STYLE (THE 
                      FRONT‐END
In practice
                               practice…
                                 THE LOGIC (THE BACK-END)
                                                BACK END)

                                  RUBY ON RAILS, DJANGO, CAKEPHP, 
                                           JETTY , LIFT….
                                           JETTY , LIFT….
                  MYSQL, 
                 MONGODB                RUBY, PYTHON, PHP, SCALA 
        K-END)




                                                               XML
        AGE




                 UNICORN         HTML            CSS         JAVASCRIPT
THE STORA

(THE BACK
   NFRA




                                                               DOM
                                                 AJAX
& IN
   E




                     THE STRUCTURE & STYLE (THE FRONT-END)
ETSY
         “We use a number of different programming languages
         (including Matlab!) but are primarily a PHP shop. We
                                                     shop
         have a number of databases, some of which are
         MySQL and some of which are PostgreSQL. “




                                   PHP + Matlab
        MySQL 0 
       PostresSQL
        ost esSQ




                                                    XML
         INFRA           HTML         CSS         JAVASCRIPT

                                                    DOM
                                      AJAX
4SQ
        “Server code is written in scala running on the lift web
        framework using jetty for a webserver. We front
        everything with nginx, and use HAProxy in between.
        MongoDB handles most of our data storage needs
        (though a bit hasn't been migrated off PostgreSQL yet).



                                         Scala

       MongoDB and 
                                         Lift
        PostresSQL




                                                      XML
      Nginx + HAProxy      HTML         CSS         JAVASCRIPT

                                                      DOM
                                        AJAX
R
#1 HTML/CSS
#2 JQUERY
#3 Unicorn
HTML / CSS

                RUBY ON RAILS, DJANGO, CAKEPHP, 
                         JETTY , LIFT….
                         JETTY , LIFT….
 MYSQL, 
MONGODB               RUBY, PYTHON, PHP, SCALA 




                                             XML
UNICORN        HTML            CSS         JAVASCRIPT

                                             DOM
                               AJAX
jQuery

              RUBY ON RAILS, DJANGO, CAKEPHP, 
                       JETTY , LIFT….
                       JETTY , LIFT….
 MYSQL, 
MONGODB             RUBY, PYTHON, PHP, SCALA 




                                           XML
UNICORN      HTML            CSS         JAVASCRIPT

                                           DOM
                             AJAX
Unicorn

              RUBY ON RAILS, DJANGO, CAKEPHP, 
                       JETTY , LIFT….
                       JETTY , LIFT….
 MYSQL, 
MONGODB             RUBY, PYTHON, PHP, SCALA 




                                           XML
UNICORN      HTML            CSS         JAVASCRIPT

                                           DOM
                             AJAX
R PHP
 #1                          #6 Apache
#2 SaaS                      #7 CSS
#3 RoR                       #8 Django
                                  j g
#4 HTML                      #9 MySQL
#5 M
   MongoDB
        DB                   #10 nginx
                                   i
Rules: Figure out the term and place it on the
bentobox in the right place..
There might be false friends and doubles.
Googling allowed!
You have five minutes
Yo ha e fi e min tes – wrong ans ers will be
                          rong answers ill
removed, the team with most post-its wins!
Game on!
More questions? Shoot!
     q

Bentobox model for understanding technology stacks

  • 1.
    a.k,a the Bentoboxmethod to understanding web apps
  • 2.
    What have welearned so far?
  • 3.
    The difference betweena web site and a web application application. The difference between a programming language and a web framework. Copy-paste rules. Google everything! py p g y g
  • 4.
  • 5.
    Why Bento? • Youneed a balanced mix of things. • It’s a puzzle - putting everything together in the box. • “Ekiben“ - content which is arranged in the most efficient, graceful manner. The bento is presented in a simple, beautiful, balanced way. Nothing lacking. Nothing superfluous. Not decorated, but b t wonderfully d i d f ll designed. d
  • 6.
    The Bento wireframe STORAGE THE LOGIC (BACK‐END) (BACK‐END) INFRA (BACK END) (BACK‐END) THE STRUCTURE AND STYLE (THE  FRONT‐END
  • 7.
    In practice practice… THE LOGIC (THE BACK-END) BACK END) RUBY ON RAILS, DJANGO, CAKEPHP,  JETTY , LIFT…. JETTY , LIFT…. MYSQL,  MONGODB RUBY, PYTHON, PHP, SCALA  K-END) XML AGE UNICORN HTML CSS JAVASCRIPT THE STORA (THE BACK NFRA DOM AJAX & IN E THE STRUCTURE & STYLE (THE FRONT-END)
  • 8.
    ETSY “We use a number of different programming languages (including Matlab!) but are primarily a PHP shop. We shop have a number of databases, some of which are MySQL and some of which are PostgreSQL. “ PHP + Matlab MySQL 0  PostresSQL ost esSQ XML INFRA HTML CSS JAVASCRIPT DOM AJAX
  • 9.
    4SQ “Server code is written in scala running on the lift web framework using jetty for a webserver. We front everything with nginx, and use HAProxy in between. MongoDB handles most of our data storage needs (though a bit hasn't been migrated off PostgreSQL yet). Scala MongoDB and  Lift PostresSQL XML Nginx + HAProxy HTML CSS JAVASCRIPT DOM AJAX
  • 10.
  • 11.
    HTML / CSS RUBY ON RAILS, DJANGO, CAKEPHP,  JETTY , LIFT…. JETTY , LIFT…. MYSQL,  MONGODB RUBY, PYTHON, PHP, SCALA  XML UNICORN HTML CSS JAVASCRIPT DOM AJAX
  • 12.
    jQuery RUBY ON RAILS, DJANGO, CAKEPHP,  JETTY , LIFT…. JETTY , LIFT…. MYSQL,  MONGODB RUBY, PYTHON, PHP, SCALA  XML UNICORN HTML CSS JAVASCRIPT DOM AJAX
  • 13.
    Unicorn RUBY ON RAILS, DJANGO, CAKEPHP,  JETTY , LIFT…. JETTY , LIFT…. MYSQL,  MONGODB RUBY, PYTHON, PHP, SCALA  XML UNICORN HTML CSS JAVASCRIPT DOM AJAX
  • 14.
    R PHP #1 #6 Apache #2 SaaS #7 CSS #3 RoR #8 Django j g #4 HTML #9 MySQL #5 M MongoDB DB #10 nginx i Rules: Figure out the term and place it on the bentobox in the right place.. There might be false friends and doubles. Googling allowed! You have five minutes Yo ha e fi e min tes – wrong ans ers will be rong answers ill removed, the team with most post-its wins!
  • 15.
  • 16.