SlideShare ist ein Scribd-Unternehmen logo
1 von 193
Downloaden Sie, um offline zu lesen
RESTin peace
Bengaluru, 20-22 November 2011
Sorry for the ugly slide.

 There will be others.
    Really sorry.



     Bengaluru, 20-22 November 2011
REST in a nutshell



    Bengaluru, 20-22 November 2011
2000
 Fielding's dissertation:

 REpresentational
 State
 Transfer
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm




                                      Bengaluru, 20-22 November 2011
REST in a nutshell:




1. Client <> Server
    Bengaluru, 20-22 November 2011
REST in a nutshell:




                   2. Stateless
    Bengaluru, 20-22 November 2011
Servers do not keep any
informations the clients uses
  during different requests.



       Bengaluru, 20-22 November 2011
So the architecture scales well.




        Bengaluru, 20-22 November 2011
REST in a nutshell:




   3. Cacheable
    Bengaluru, 20-22 November 2011
Client has access to
resources stored between
 it and the origin server.



      Bengaluru, 20-22 November 2011
So communication is faster.




      Bengaluru, 20-22 November 2011
REST in a nutshell:




4. Layered system
     Bengaluru, 20-22 November 2011
Intermediary nodes can be
used along our architecture.




       Bengaluru, 20-22 November 2011
So you efficiently implement
           point 3.



       Bengaluru, 20-22 November 2011
REST in a nutshell:



                      5. Uniform
                      interface
    Bengaluru, 20-22 November 2011
Communicate using well-known
  verbs and providing all the
    informations needed to
      consume a service.


        Bengaluru, 20-22 November 2011
So fallbacks are easy.




   Bengaluru, 20-22 November 2011
this was a bit difficult to understand

           so, obviously...




    Bengaluru, 20-22 November 2011
nobody had a clue




  Bengaluru, 20-22 November 2011
ANTIPATTERNS


   Bengaluru, 20-22 November 2011
1
       URIs

Bengaluru, 20-22 November 2011
"REST is about

 cool URI design"




http://apple.com/users/1/licenses/4.json




                        Bengaluru, 20-22 November 2011
"REST is about

 cool URI design"




http://apple.com/users/1/licenses/4.json




                        Bengaluru, 20-22 November 2011
http://apple.com/site/en_US/showUsers.jsp?uid=1&license=4




            is OK too

                Bengaluru, 20-22 November 2011
but, enter simple rule of thumb




        Bengaluru, 20-22 November 2011
cool URIs help you
think in term of resources
                                        - David Zuelke




       Bengaluru, 20-22 November 2011
2
 URIs (bis)

Bengaluru, 20-22 November 2011
REST follows a URI schema


                GET /users
                POST /users
                PUT /users/{id}
                DELETE /users/{id}
                ...


       Bengaluru, 20-22 November 2011
REST follows a URI schema


               GET /users
                  POST /users
               PUT /users/{id}
                DELETE /users/{id}
                ...


       Bengaluru, 20-22 November 2011
what if you change your
         URL?



     Bengaluru, 20-22 November 2011
client is
broken
 Bengaluru, 20-22 November 2011
RESTful clients should
      be driven by service's
      hypermedia controls
Roy Fielding : http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven




                      Bengaluru, 20-22 November 2011
HATEOAS
 Bengaluru, 20-22 November 2011
3
POST is cool


Bengaluru, 20-22 November 2011
said SOAP 1.1

   Bengaluru, 20-22 November 2011
said SOAP 1.1

   Bengaluru, 20-22 November 2011
loosing meaningful verbs at the protocol level




             Bengaluru, 20-22 November 2011
loosing meaningful verbs at the protocol level

        nothing cacheable by default




             Bengaluru, 20-22 November 2011
loosing meaningful verbs at the protocol level

        nothing cacheable by default

         what about bookmarking?



             Bengaluru, 20-22 November 2011
4
500 is your friend


  Bengaluru, 20-22 November 2011
said SOAP
         ( again )




 Bengaluru, 20-22 November 2011
GET /users/300
Host: www.example.com




Bengaluru, 20-22 November 2011
GET /users/300
        Host: www.example.com




HTTP/1.1 500 Internal Server Error
Etag: 1234
X-Powered-By: php/5.3
...

The record cannot be found

       Bengaluru, 20-22 November 2011
GET /users/300
        Host: www.example.com




HTTP/1.1 500 Internal Server Error
Etag: 1234
X-Powered-By: php/5.3
...

The record cannot be found

       Bengaluru, 20-22 November 2011
The HTTP protocol is awesome,
and lets you return meaningful and
universally-understood status codes




        Bengaluru, 20-22 November 2011
404 Not Found




Bengaluru, 20-22 November 2011
404 Not Found




  OMG Link is broken?



Bengaluru, 20-22 November 2011
202 Accepted




Bengaluru, 20-22 November 2011
202 Accepted




You get an immediate OK, and the operation will hopefully complete



                  Bengaluru, 20-22 November 2011
Pause




Bengaluru, 20-22 November 2011
The WWW

 Bengaluru, 20-22 November 2011
the largest data-exchange network on the planet




          Bengaluru, 20-22 November 2011
And meanwhile, at Facebook...




12TB of new data every day
       (1 year ago)

    500 million users
        Bengaluru, 20-22 November 2011
And meanwhile, at Google...




       1 billion
unique monthly googlers

      Bengaluru, 20-22 November 2011
via   HTTP                       , baby!




      Bengaluru, 20-22 November 2011
HTTP in a nutshell:




1. Client <> Server
    Bengaluru, 20-22 November 2011
HTTP in a nutshell:




                   2. Stateless
    Bengaluru, 20-22 November 2011
HTTP in a nutshell:



3. widespread cache spec
 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html


               Bengaluru, 20-22 November 2011
HTTP in a nutshell:
    Lao Tze Song using Firefox 6
          Company proxy
       Great chinese (fire)wall
            Reverse proxy
             Origin server

4. Layered system
      Bengaluru, 20-22 November 2011
HTTP in a nutshell:




 5. it is the uniform interface
 between clients and servers
     Bengaluru, 20-22 November 2011
HTTP bleeds REST


    Bengaluru, 20-22 November 2011
How do I
implement
   this
goodness?
 Bengaluru, 20-22 November 2011
1.
caching & scalability


    Bengaluru, 20-22 November 2011
HTTP cache

  Bengaluru, 20-22 November 2011
Types of cache

           Local

     Shared/proxy

 Shared/reverse proxy



  Bengaluru, 20-22 November 2011
Types of cache

           Local

     Shared/proxy

 Shared/reverse proxy



  Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
Types of cache

           Local

   Shared/proxy

 Shared/reverse proxy



  Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
Types of cache

           Local

     Shared/proxy

Shared/reverse proxy



  Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
on the server side




Bengaluru, 20-22 November 2011
Caching with
  Expiration
  (example)
 Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Expires: 0




        Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Expires: 0




        Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Expires: Tue, 31 Jan 2011 01:00 GMT




         Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Cache-Control: max-age=60, public




       Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Cache-Control: max-age=60, public




       Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Cache-Control: max-age=60, public


      Cacheable for 60 seconds




       Bengaluru, 20-22 November 2011
HTTP/1.1 200 OK
Host: www.example.com
Cache-Control: max-age=60, public


Cacheable by both local and shared caches




        Bengaluru, 20-22 November 2011
You can also cache with
                 validation
(Etags, If-None-Match, ...)



    Bengaluru, 20-22 November 2011
Why HTTP caching
      is so
   important?


   Bengaluru, 20-22 November 2011
Ask yourself:
as a developer, what do I want
      on my application?



        Bengaluru, 20-22 November 2011
Evolve



                                 Loose coupling




                                     Work less




Bengaluru, 20-22 November 2011
Evolve

Because you want your platform to extensible

                                                   Loose coupling




                                                       Work less




                  Bengaluru, 20-22 November 2011
Evolve

Because you want your platform to extensible

                                                    Loose coupling

Because you want it to be easy to integrate with, evolve, plug
and mantain

                                                        Work less




                   Bengaluru, 20-22 November 2011
Evolve

Because you want your platform to extensible

                                                    Loose coupling

Because you want it to be easy to integrate with, evolve, plug
and mantain

                                                        Work less

Because every LoC is bug-prone and our man-day is a hard-to-
scale cost



                   Bengaluru, 20-22 November 2011
enters our Hero #1




Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
enters our Hero #2




Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
http://www.lullabot.com/articles/a-beginners-guide-to-caching-data




              Bengaluru, 20-22 November 2011
2007


Bengaluru, 20-22 November 2011
2011?


Bengaluru, 20-22 November 2011
it supports
HTTP caching!
  http://drupal.org/node/147310




    Bengaluru, 20-22 November 2011
it supports
HTTP caching!
   http://drupal.org/node/147310
 ( people is supposed to clap their hands here )




       Bengaluru, 20-22 November 2011
but



Bengaluru, 20-22 November 2011
wait.... how?


  Bengaluru, 20-22 November 2011
Default headers
Expires = 'Sun, 19 Nov 1978 05:00:00 GMT',

Cache-Control = 'no-cache, must-revalidate',

ETag = $_SERVER['REQUEST_TIME'],




         Bengaluru, 20-22 November 2011
Default headers
Expires = 'Sun, 19 Nov 1978 05:00:00 GMT',

Cache-Control = 'no-cache, must-revalidate',

ETag = $_SERVER['REQUEST_TIME'],




         Bengaluru, 20-22 November 2011
Default headers
Expires = 'Sun, 19 Nov 1978 05:00:00 GMT',

Cache-Control = 'no-cache, must-revalidate',

ETag = $_SERVER['REQUEST_TIME'],




         Bengaluru, 20-22 November 2011
Default headers
Expires = 'Sun, 19 Nov 1978 05:00:00 GMT',

Cache-Control = 'no-cache, must-revalidate',

ETag = $_SERVER['REQUEST_TIME'],




         Bengaluru, 20-22 November 2011
is that even legal?




Bengaluru, 20-22 November 2011
"but you can redefine them!"




      Bengaluru, 20-22 November 2011
drupal_add_http_header()




     Bengaluru, 20-22 November 2011
function drupal_add_http_header()
{
  ...


    ...

    drupal_send_headers($headers);
}




          Bengaluru, 20-22 November 2011
so, what

drupal_send_headers()

    can do so evil?


    Bengaluru, 20-22 November 2011
header()                          ,

         of course




 Bengaluru, 20-22 November 2011
which means




Bengaluru, 20-22 November 2011
drupal_add_http_header('Dumb-Header', 'I'm batman!');
...
// other logic
...
drupal_add_http_header('Dumb-Header', 'I'm not');

var_dump(headers_list());




                Bengaluru, 20-22 November 2011
drupal_add_http_header('Dumb-Header', 'I'm batman!');
...
// other logic
...
drupal_add_http_header('Dumb-Header', 'I'm not');

var_dump(headers_list());

array
 0 => string 'X-Powered-By: PHP/5.3.2-1ubuntu4.7'
 1 => string 'Dump-Header: I'm not'




                Bengaluru, 20-22 November 2011
drupal_add_http_header('Dumb-Header', 'I'm batman!');
...
// other logic
...
drupal_add_http_header('Dumb-Header', false);

var_dump(headers_list());




                Bengaluru, 20-22 November 2011
drupal_add_http_header('Dumb-Header', 'I'm batman!');
...
// other logic
...
drupal_add_http_header('Dumb-Header', false);

var_dump(headers_list());

array
 0 => string 'X-Powered-By: PHP/5.3.2-1ubuntu4.7'
 1 => string 'Dump-Header: I'm batman'




                Bengaluru, 20-22 November 2011
drupal_add_http_header('Dumb-Header', 'I'm batman!');
...
// other logic
...
drupal_add_http_header('Dumb-Header', ' ');

var_dump(headers_list());




                Bengaluru, 20-22 November 2011
drupal_add_http_header('Dumb-Header', 'I'm batman!');
...
// other logic
...
drupal_add_http_header('Dumb-Header', ' ');

var_dump(headers_list());

array
 0 => string 'X-Powered-By: PHP/5.3.2-1ubuntu4.7'
 1 => string 'Dumb-Header:'




                Bengaluru, 20-22 November 2011
or

Bengaluru, 20-22 November 2011
you can use header_remove()
               ( PHP 5.3 )




       Bengaluru, 20-22 November 2011
and create a new class to
   manage/keep track of
headers and caching directives



       Bengaluru, 20-22 November 2011
but we're lazy

                 and

we don't want to reinvent the wheel




     Bengaluru, 20-22 November 2011
Goals
Work less
                                             evolve
              loose coupling


            Bengaluru, 20-22 November 2011
Goals
Work less
                                             evolve
              loose coupling


            Bengaluru, 20-22 November 2011
everything is done for us!

                :)



             but....



   Bengaluru, 20-22 November 2011
tmp files, cache tables, procedural code...

                mmmmh....

        gotta be something better




          Bengaluru, 20-22 November 2011
Frameworks



Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
ONE

Bengaluru, 20-22 November 2011
Cache is used for compiling routes, autoloading, ...




              Bengaluru, 20-22 November 2011
Cache is used for compiling routes, autoloading, ...




   ...but also for storing the view

              Bengaluru, 20-22 November 2011
Goals
Work less
                                             evolve
              loose coupling


            Bengaluru, 20-22 November 2011
Goals
Work less
                                             evolve
              loose coupling


            Bengaluru, 20-22 November 2011
at least because we use a framework




       Bengaluru, 20-22 November 2011
HTTP
Less work


Bengaluru, 20-22 November 2011
http://www.flickr.com/photos/snakphotography/5004775320/sizes/o/in/photostream/




  because the hard work is delegated to the browser/proxy


                                 Bengaluru, 20-22 November 2011
Evolve


Bengaluru, 20-22 November 2011
because cache is abstracted from the application




           Bengaluru, 20-22 November 2011
Loose coupling


   Bengaluru, 20-22 November 2011
because caching is bound to the protocol, HTTP, not
to your implementation ( Sf, RoR, Django )




                    Bengaluru, 20-22 November 2011
but hey, you say




Bengaluru, 20-22 November 2011
HTTP's cache fails when dealing with really dynamic
pages, because consumers will always have to hit the
 origin server, although a part of the page would be
    cacheable ( header and footer, for example )




              Bengaluru, 20-22 November 2011
Nope


     Nope

Bengaluru, 20-22 November 2011
ESI was built for that
  http://www.w3.org/TR/esi-lang




     Bengaluru, 20-22 November 2011
Edge Side Includes
   A de facto standard for bla bla bla...




       Bengaluru, 20-22 November 2011
Edge Side Includes
         A de facto standard for bla bla bla...



 Server side includes ( not SSI! ) usually handled by the
               architecture's ESI processor.

            http://www.w3.org/TR/esi-lang
           http://www.w3.org/TR/edge-arch
<esi:include src="http://osidays.com/talks/1" />




              Bengaluru, 20-22 November 2011
<esi:include src="http://osidays.com/talks/1" />




              Bengaluru, 20-22 November 2011
<esi:include src="http://osidays.com/talks/1" />




              Bengaluru, 20-22 November 2011
1s (tweets)




3600 (post)

   Bengaluru, 20-22 November 2011
<esi:include src='tweets.html' />




<esi:include src='article/12.html' />



          Bengaluru, 20-22 November 2011
2.
adaptability & durability


      Bengaluru, 20-22 November 2011
Hypermedia
 another long-time friend




   Bengaluru, 20-22 November 2011
Links
outrageously semplifying




  Bengaluru, 20-22 November 2011
<img src="..." />

<a href="..." />

<link rel="payment" ... />


       Bengaluru, 20-22 November 2011
<img src="..." />

<a href="..." />

<link rel="payment" ... />


       Bengaluru, 20-22 November 2011
<img src="..." />

<a href="..." />

<link rel="payment" ... />


       Bengaluru, 20-22 November 2011
<link rel="payment" href="/checkout" type="text/html" ... />




                Bengaluru, 20-22 November 2011
<link rel="payment" href="/checkout" type="text/html" ... />




                Bengaluru, 20-22 November 2011
<link rel="payment" href="/checkout" type="text/html" ... />




                Bengaluru, 20-22 November 2011
<link rel="payment" href="/checkout" type="text/html" ... />




                Bengaluru, 20-22 November 2011
POST /users
      Host: www.example.
      com




HTTP/1.1 201 Created
Host: www.example.com
Etag: 1234
X-Powered-By: php/5.3
Location: /users/1
      Bengaluru, 20-22 November 2011
POST /users
      Host: www.example.
      com




HTTP/1.1 201 Created
Host: www.example.com
Etag: 1234
X-Powered-By: php/5.3
Location: /users/1
      Bengaluru, 20-22 November 2011
POST /users
       Host: www.example.
       com




HTTP/1.1 201 Created
Host: www.example.com
Etag: 1234
X-Powered-By: php/5.3
Location: /new-users-db/1
      Bengaluru, 20-22 November 2011
POST /users
       Host: www.example.
       com




HTTP/1.1 201 Created
Host: www.example.com
Etag: 1234
X-Powered-By: php/5.3
Location: /new-users-db/1
      Bengaluru, 20-22 November 2011
consumers of your API are able to follow
      the changes of your design




        Bengaluru, 20-22 November 2011
Client knows how to consume the
service based on the informations
auto-provided by the service itself




       Bengaluru, 20-22 November 2011
No WSDL.




Bengaluru, 20-22 November 2011
No URI templates.




Bengaluru, 20-22 November 2011
No easily-outdated documentation.




       Bengaluru, 20-22 November 2011
No assumptions.




Bengaluru, 20-22 November 2011
Less WTFs.




Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
This does not easily break.




   Bengaluru, 20-22 November 2011
HATEOAS
Hypermedia As The Engine Of Application State




           Bengaluru, 20-22 November 2011
6

Bengaluru, 20-22 November 2011
everything
seems eventually
      cool

Recap: why REST?
    Bengaluru, 20-22 November 2011
Pros



Performances
  Bengaluru, 20-22 November 2011
Pros

Scalability

       Bengaluru, 20-22 November 2011
Pros
                     Durability



Bengaluru, 20-22 November 2011
Not RESTful?


  Bengaluru, 20-22 November 2011
Simply don't care


    Bengaluru, 20-22 November 2011
Rules of architectural design




        Bengaluru, 20-22 November 2011
Follow them according
     to your needs


     Bengaluru, 20-22 November 2011
amazon.com



Bengaluru, 20-22 November 2011
So...

Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
Alessandro Nadalin



   Bengaluru, 20-22 November 2011
odino.org



Bengaluru, 20-22 November 2011
Bengaluru, 20-22 November 2011
@_odino_                     #osidays




Bengaluru, 20-22 November 2011
Thank YOU!
@_odino_




     Bengaluru, 20-22 November 2011
Credits
       http://www.flickr.com/photos/larachris/16564077/sizes/o/in/photostream/
  http://www.flickr.com/photos/ashatenbroeke/4367373081/sizes/z/in/photostream/
      http://www.flickr.com/photos/yourdon/3140270189/sizes/l/in/photostream/
      http://www.flickr.com/photos/jox1989/4964706072/sizes/l/in/photostream/
       http://www.flickr.com/photos/brainfg/168506259/sizes/o/in/photostream/
     http://www.flickr.com/photos/norte_it/3897091546/sizes/o/in/photostream/
 http://www.zdnet.com/blog/service-oriented/soap-versus-rest-a-matter-of-style/3568
http://www.flickr.com/photos/turtlemom_nancy/2046347762/sizes/l/in/photostream/
      http://www.flickr.com/photos/juanpg/3333385784/sizes/z/in/photostream/
       http://www.flickr.com/photos/congvo/301678287/sizes/l/in/photostream/
     http://www.flickr.com/photos/ihasb33r/2573196546/sizes/z/in/photostream/
 http://www.flickr.com/photos/martin_heigan/4544138976/sizes/o/in/photostream/
      http://www.flickr.com/photos/cknara/4195099999/sizes/o/in/photostream/
       http://www.flickr.com/photos/1080p/3076529265/sizes/l/in/photostream/
     http://www.flickr.com/photos/adamrice/280300202/sizes/l/in/photostream/
      http://www.flickr.com/photos/tomer_a/541411897/sizes/o/in/photostream/
      http://www.flickr.com/photos/subpra/4514008262/sizes/l/in/photostream/
     http://www.flickr.com/photos/lippincott/2539720043/sizes/l/in/photostream/
     http://www.flickr.com/photos/rawryder/5086090931/sizes/l/in/photostream/
     http://www.flickr.com/photos/robboudon/5312731161/sizes/l/in/photostream/
 http://www.flickr.com/photos/bc-burnslibrary/4158243488/sizes/o/in/photostream/
http://www.flickr.com/photos/13606325@N08/2416993706/sizes/o/in/photostream/
    http://www.flickr.com/photos/neothezion/5135841069/sizes/l/in/photostream/
               http://www.flickr.com/photos/planetschwa/2494067809/
               http://www.flickr.com/photos/thomasthomas/258931782/
   http://www.flickr.com/photos/rustyboxcars/2629631562/sizes/l/in/photostream/
    http://www.flickr.com/photos/ell-r-brown/4138727474/sizes/l/in/photostream/
     http://www.flickr.com/photos/noah123/5082076630/sizes/z/in/photostream/
     http://www.flickr.com/photos/jungle_boy/220181177/sizes/l/in/photostream/
    http://www.flickr.com/photos/prettydaisies/872539081/sizes/l/in/photostream/
   http://www.flickr.com/photos/kaptainkobold/76256150/sizes/o/in/photostream/
 http://www.flickr.com/photos/uomoincravatta/1438372865/sizes/z/in/photostream/




           Bengaluru, 20-22 November 2011

Weitere ähnliche Inhalte

Ähnlich wie Restinpeaceosidays2011 111121093818-phpapp02

Divyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptDivyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptOpenSourceIndia
 
Divyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptDivyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptsuniltomar04
 
Firefox3.5 And Next
Firefox3.5 And NextFirefox3.5 And Next
Firefox3.5 And NextChanny Yun
 
From java to rails
From java to railsFrom java to rails
From java to railsjokry
 
IPv4 and IPv6 Current Situation
IPv4 and IPv6 Current SituationIPv4 and IPv6 Current Situation
IPv4 and IPv6 Current SituationRIPE NCC
 
Academic Library Collection Development: Current Landscape, Future Trends
Academic Library Collection Development: Current Landscape, Future TrendsAcademic Library Collection Development: Current Landscape, Future Trends
Academic Library Collection Development: Current Landscape, Future TrendsMichael Levine-Clark
 
Vineet Choudhry Portfolio
Vineet Choudhry PortfolioVineet Choudhry Portfolio
Vineet Choudhry PortfolioRakesh Ranjan
 
REST in peace @ Osidays 2011 India 11-21-2011
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-2011Alessandro Nadalin
 
Callimachus introduction 20111021
Callimachus introduction 20111021Callimachus introduction 20111021
Callimachus introduction 201110213 Round Stones
 
Intro to Table-Grouping™ technology
Intro to Table-Grouping™ technologyIntro to Table-Grouping™ technology
Intro to Table-Grouping™ technologyDavid McFarlane
 
OSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 Farms
OSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 FarmsOSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 Farms
OSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 FarmsKnowledge Cue
 
IPv6 Adoption in the RIPE NCC Service Region
IPv6 Adoption in the RIPE NCC Service RegionIPv6 Adoption in the RIPE NCC Service Region
IPv6 Adoption in the RIPE NCC Service RegionRIPE NCC
 
Introduction to Clojure's STM
Introduction to Clojure's STMIntroduction to Clojure's STM
Introduction to Clojure's STMFronx Wurmus
 

Ähnlich wie Restinpeaceosidays2011 111121093818-phpapp02 (20)

FYP Presentation
FYP PresentationFYP Presentation
FYP Presentation
 
Divyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptDivyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-ppt
 
Divyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptDivyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-ppt
 
Firefox3.5 And Next
Firefox3.5 And NextFirefox3.5 And Next
Firefox3.5 And Next
 
From java to rails
From java to railsFrom java to rails
From java to rails
 
IPv4 and IPv6 Current Situation
IPv4 and IPv6 Current SituationIPv4 and IPv6 Current Situation
IPv4 and IPv6 Current Situation
 
Dzone
DzoneDzone
Dzone
 
Academic Library Collection Development: Current Landscape, Future Trends
Academic Library Collection Development: Current Landscape, Future TrendsAcademic Library Collection Development: Current Landscape, Future Trends
Academic Library Collection Development: Current Landscape, Future Trends
 
ISA11 - Jon Kolko: Design for Impact
ISA11 - Jon Kolko: Design for ImpactISA11 - Jon Kolko: Design for Impact
ISA11 - Jon Kolko: Design for Impact
 
Atm carige chitaly
Atm carige chitalyAtm carige chitaly
Atm carige chitaly
 
Vineet Choudhry Portfolio
Vineet Choudhry PortfolioVineet Choudhry Portfolio
Vineet Choudhry Portfolio
 
REST in peace @ Osidays 2011 India 11-21-2011
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
 
Callimachus introduction 20111021
Callimachus introduction 20111021Callimachus introduction 20111021
Callimachus introduction 20111021
 
Intro to Table-Grouping™ technology
Intro to Table-Grouping™ technologyIntro to Table-Grouping™ technology
Intro to Table-Grouping™ technology
 
OSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 Farms
OSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 FarmsOSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 Farms
OSP303 SharePoint 2010 – Planning High Availability for SharePoint 2010 Farms
 
Sound State Presentation
Sound State PresentationSound State Presentation
Sound State Presentation
 
11 tips for HTML5
11 tips for HTML511 tips for HTML5
11 tips for HTML5
 
IPv6 Adoption in the RIPE NCC Service Region
IPv6 Adoption in the RIPE NCC Service RegionIPv6 Adoption in the RIPE NCC Service Region
IPv6 Adoption in the RIPE NCC Service Region
 
Do your test
Do your testDo your test
Do your test
 
Introduction to Clojure's STM
Introduction to Clojure's STMIntroduction to Clojure's STM
Introduction to Clojure's STM
 

Mehr von OpenSourceIndia

Rajashekaran vengalil building cross browser html5 websites
Rajashekaran vengalil building cross browser html5 websitesRajashekaran vengalil building cross browser html5 websites
Rajashekaran vengalil building cross browser html5 websitesOpenSourceIndia
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networkingOpenSourceIndia
 
Gil yehuda commoditization open source
Gil yehuda commoditization open sourceGil yehuda commoditization open source
Gil yehuda commoditization open sourceOpenSourceIndia
 
Chetan postgresql partitioning
Chetan postgresql partitioningChetan postgresql partitioning
Chetan postgresql partitioningOpenSourceIndia
 
Azri solutions leaner techniques for faster portals get drupalled
Azri solutions leaner techniques for faster portals   get drupalledAzri solutions leaner techniques for faster portals   get drupalled
Azri solutions leaner techniques for faster portals get drupalledOpenSourceIndia
 
Ashish pandey huawei osi_days2011_cgroups_understanding_better
Ashish pandey huawei osi_days2011_cgroups_understanding_betterAshish pandey huawei osi_days2011_cgroups_understanding_better
Ashish pandey huawei osi_days2011_cgroups_understanding_betterOpenSourceIndia
 
Sumit& archit osi nov-2011-displays-in-mobile-devices
Sumit& archit osi nov-2011-displays-in-mobile-devicesSumit& archit osi nov-2011-displays-in-mobile-devices
Sumit& archit osi nov-2011-displays-in-mobile-devicesOpenSourceIndia
 

Mehr von OpenSourceIndia (9)

20111121 osi keynote
20111121 osi keynote20111121 osi keynote
20111121 osi keynote
 
Rajashekaran vengalil building cross browser html5 websites
Rajashekaran vengalil building cross browser html5 websitesRajashekaran vengalil building cross browser html5 websites
Rajashekaran vengalil building cross browser html5 websites
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
 
Harsha s ipmi_tool_osi
Harsha s ipmi_tool_osiHarsha s ipmi_tool_osi
Harsha s ipmi_tool_osi
 
Gil yehuda commoditization open source
Gil yehuda commoditization open sourceGil yehuda commoditization open source
Gil yehuda commoditization open source
 
Chetan postgresql partitioning
Chetan postgresql partitioningChetan postgresql partitioning
Chetan postgresql partitioning
 
Azri solutions leaner techniques for faster portals get drupalled
Azri solutions leaner techniques for faster portals   get drupalledAzri solutions leaner techniques for faster portals   get drupalled
Azri solutions leaner techniques for faster portals get drupalled
 
Ashish pandey huawei osi_days2011_cgroups_understanding_better
Ashish pandey huawei osi_days2011_cgroups_understanding_betterAshish pandey huawei osi_days2011_cgroups_understanding_better
Ashish pandey huawei osi_days2011_cgroups_understanding_better
 
Sumit& archit osi nov-2011-displays-in-mobile-devices
Sumit& archit osi nov-2011-displays-in-mobile-devicesSumit& archit osi nov-2011-displays-in-mobile-devices
Sumit& archit osi nov-2011-displays-in-mobile-devices
 

Kürzlich hochgeladen

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 

Kürzlich hochgeladen (20)

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 

Restinpeaceosidays2011 111121093818-phpapp02