SlideShare a Scribd company logo
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

More Related Content

Similar to Restinpeaceosidays2011 111121093818-phpapp02

FYP Presentation
FYP PresentationFYP Presentation
FYP Presentation
briggsrogers
 
Divyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptDivyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-ppt
OpenSourceIndia
 
Divyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-pptDivyanshu open stack presentation -osi-ppt
Divyanshu open stack presentation -osi-ppt
suniltomar04
 
Firefox3.5 And Next
Firefox3.5 And NextFirefox3.5 And Next
Firefox3.5 And Next
Channy Yun
 
From java to rails
From java to railsFrom java to rails
From java to rails
jokry
 
IPv4 and IPv6 Current Situation
IPv4 and IPv6 Current SituationIPv4 and IPv6 Current Situation
IPv4 and IPv6 Current Situation
RIPE NCC
 
Dzone
DzoneDzone
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
Michael Levine-Clark
 
ISA11 - Jon Kolko: Design for Impact
ISA11 - Jon Kolko: Design for ImpactISA11 - Jon Kolko: Design for Impact
ISA11 - Jon Kolko: Design for Impact
Interaction South America
 
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
Alessandro Nadalin
 
Callimachus introduction 20111021
Callimachus introduction 20111021Callimachus introduction 20111021
Callimachus introduction 20111021
3 Round Stones
 
The End of IPv4 Foretold
The End of IPv4 ForetoldThe End of IPv4 Foretold
The End of IPv4 Foretold
RIPE NCC
 
Intro to Table-Grouping™ technology
Intro to Table-Grouping™ technologyIntro to Table-Grouping™ technology
Intro to Table-Grouping™ technology
David 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 Farms
Knowledge Cue
 
11 tips for HTML5
11 tips for HTML511 tips for HTML5
11 tips for HTML5
Bart De Waele
 
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
RIPE NCC
 
Do your test
Do your testDo your test
Do your test
Yura Tolstik
 
Introduction to Clojure's STM
Introduction to Clojure's STMIntroduction to Clojure's STM
Introduction to Clojure's STM
Fronx Wurmus
 
RIPE Atlas
RIPE AtlasRIPE Atlas
RIPE Atlas
RIPE NCC
 

Similar to Restinpeaceosidays2011 111121093818-phpapp02 (19)

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
 
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
 
The End of IPv4 Foretold
The End of IPv4 ForetoldThe End of IPv4 Foretold
The End of IPv4 Foretold
 
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
 
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
 
RIPE Atlas
RIPE AtlasRIPE Atlas
RIPE Atlas
 

More from OpenSourceIndia

20111121 osi keynote
20111121 osi keynote20111121 osi keynote
20111121 osi keynote
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 websites
OpenSourceIndia
 
Naveen nimmu sdn future of networking
Naveen nimmu sdn   future of networkingNaveen nimmu sdn   future of networking
Naveen nimmu sdn future of networking
OpenSourceIndia
 
Harsha s ipmi_tool_osi
Harsha s ipmi_tool_osiHarsha s ipmi_tool_osi
Harsha s ipmi_tool_osi
OpenSourceIndia
 
Gil yehuda commoditization open source
Gil yehuda commoditization open sourceGil yehuda commoditization open source
Gil yehuda commoditization open source
OpenSourceIndia
 
Chetan postgresql partitioning
Chetan postgresql partitioningChetan postgresql partitioning
Chetan postgresql partitioning
OpenSourceIndia
 
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
OpenSourceIndia
 
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
OpenSourceIndia
 
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
OpenSourceIndia
 

More from 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
 

Recently uploaded

Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 

Recently uploaded (20)

Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 

Restinpeaceosidays2011 111121093818-phpapp02