Presentation at the 2011 Codemotion (formerly known as the italian JavaDay) about RESTful architectures and caching with Edge Side Includes specification.
Awareness, Accessibility and Barriers in Utilization of Rastriya Swasthya Bim...Sudheer Kumar
This is primary research as a part of my Independent Research project done in Puri district of Orissa among BPL families that gives the glimpse of reality of social welfare scheme.
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinAlessandro Nadalin
Namshi runs one of the most successful businesses across the Rocket portfolio with ~10 engineers: even though we surely need to beef the team up, we have never considered scaling so much as we want to keep our product roadmap and development cycle lean, simple and free of waste.
This is the report of my first Summer training in BBA at Lupin, Ankleshwar plant. This whole report is prepared by me with the help of information provided by the company. Production, Dispatch, Store-warehouse, Purchase, Financial, HR departments are included in this project.
This project also include a Mini Project on "Job Satisfaction". I complete this project with the help of Random Survey method. I hop this report will help you in your study.
For any kind of query or correction in the project contact me through
email- rajat.gandhi27@gmail.com
facebook- www.facebook.com/rajat.gandhi28
Nice performance using Sf2 cache wrapping Sf1 applicationMarc Weistroff
In collaboration with Emmanuel Cohen.
At a key moment for online press in France, a major French news company chooses PHP and Symfony to extend its popular web site. We will present the architecture we designed at Sensio Labs to meet a very good performance requirement. We used Symfony2 kernel wrapping symfony 1.4 and relied on loose-coupled applications serving content from heterogeneous backend sources.
Awareness, Accessibility and Barriers in Utilization of Rastriya Swasthya Bim...Sudheer Kumar
This is primary research as a part of my Independent Research project done in Puri district of Orissa among BPL families that gives the glimpse of reality of social welfare scheme.
A tech team of ~10 @ Rocket Tech Summit 2016 in BerlinAlessandro Nadalin
Namshi runs one of the most successful businesses across the Rocket portfolio with ~10 engineers: even though we surely need to beef the team up, we have never considered scaling so much as we want to keep our product roadmap and development cycle lean, simple and free of waste.
This is the report of my first Summer training in BBA at Lupin, Ankleshwar plant. This whole report is prepared by me with the help of information provided by the company. Production, Dispatch, Store-warehouse, Purchase, Financial, HR departments are included in this project.
This project also include a Mini Project on "Job Satisfaction". I complete this project with the help of Random Survey method. I hop this report will help you in your study.
For any kind of query or correction in the project contact me through
email- rajat.gandhi27@gmail.com
facebook- www.facebook.com/rajat.gandhi28
Nice performance using Sf2 cache wrapping Sf1 applicationMarc Weistroff
In collaboration with Emmanuel Cohen.
At a key moment for online press in France, a major French news company chooses PHP and Symfony to extend its popular web site. We will present the architecture we designed at Sensio Labs to meet a very good performance requirement. We used Symfony2 kernel wrapping symfony 1.4 and relied on loose-coupled applications serving content from heterogeneous backend sources.
Alcohol induced metabolic alterations - A Case based discussionNamrata Chhabra
I shall proceed through a case based discussion and highlight a few of the metabolic alterations that have been found in the patient under study and of course these are the commonest metabolic alterations that change the whole scenario.
The objective of my discussion is to provide you with a solid foundation of alcohol induced metabolic alterations. The knowledge thus acquired will help you to make spontaneous diagnosis and plan the relevant treatment in the clinical settings.
The case details are with you. There are 3 questions related to the problems the patient is having in this case, and there are 4 options for each of the questions. Using your prior knowledge, try to select the most appropriate answer, you have only one minute to solve the answer.
Spa, isomorphic and back to the server our journey with js @ frontend con po...Alessandro Nadalin
We’ve been toying around with JS since 4 years, trying to figure out what’s the best approach to build mobile-friendly apps that would offer the best performances on mobile devices.
We first went SPA and then decided to take a different approach, as 3 years ago we decided to tackle our problems on mobile with an isomorphic application.
Today, we would like to guide you through years of that choice and why we decided to take a step back and go revamp our mobile website again, with server-side rendering and a pinch of React.
Spoiler alert: 30ms is considered slow.
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...Alessandro Nadalin
We've been toying around with JS since 4 years, trying to figure out what's the best approach to build mobile-friendly apps that would offer the best performances on mobile devices.
We first went SPA and then decided to take a different approach.
2 years ago we presented a talk, at this very same conference, about how we decided to tackle our problems on mobile with an isomorphic application.
Today, we would like to guide you through 2 years of that choice and why we decided to take a step back and go revamp our mobile website again, with server-side rendering and a pinch of React.
Fast and wicked performance ahead!
A very short, non-technical presentation on some of the practices we adopted while growing Namshi to be the largest fashion e-tailer in the Middle East.
Examples used in the talk: https://github.com/odino/react-native-codemotion
Ever since it launched, RN has gained lots of interest since it opens a new door to web developers: mobile development, with the added of bonus of being able to re-use a substantial chunk of code for both ios and android.
Follow me on this step by step tutorial on how to build a simple mobile app with the latest version of React Native, understanding the concepts behind it, the differences between React and its native version and seeing how you can debug a native app directly in your browser.
Docker is a groundbreaking technology that will heavily influence how we will write software in the years to come: let's then have a look at:
* where it comes from (Linux Containers)
* how it works
* how to dockerize simple apps to easily deploy them on production
* how you can use Docker in local environments to simplify your development workflow
Do you like Vagrant, auto-scaling or 12-factor apps? Then get ready to be mindblown.
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
A look at how we try to make our architecture robust, resilient and fun to work with: Namshi is not github or spotify but... ...imitation is the sincerest form of flattery!
An internal presentation given to the tech team at Namshi: thoughts on our 2013 and what to expect in 2014.
If you looking to team up with a bunch of passionate nerds...have a look and join the crazy boat!
http://namshi.com/
http://tech.namshi.com/
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)Alessandro Nadalin
Since bumping into AngularJS a few months ago, we decided to invest more and more time developing with it: coming from a PHP background, the shift of paradigm easy due to the use of patterns and intuitive flows: even though this won’t be a very in-depth technical talk, we are going to see why you should consider working with angular: fast single-page apps, DI, ease of testing, being asynchronous, scaling on the clients.
Welcome to the future.
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...Alessandro Nadalin
OrientDB is a NoSQL graph database which also includes a document layer (like MongoDB): it gained a lot of attention, enough to push big companies like Sky and UltraDNS to use it in production: it's written in Java and it's amazingly fast, since it can store up to 150,000 records per second on common hardware; moreover, thanks to being a graphdb, it can manage relationship so fast that, compared to traditional DBs, can be 1000% faster than them.
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoAlessandro Nadalin
The HTTP protocol has been there for more than 20 years, almost untouched, but the current needs of the web are pushing towards adding some spices into the mix.
In this talk we will have a brief look at the history of HTTP, what SPDY - the "new" protocol proposed by google - brings into the table and how HTTP/2.0 will look like.
Alcohol induced metabolic alterations - A Case based discussionNamrata Chhabra
I shall proceed through a case based discussion and highlight a few of the metabolic alterations that have been found in the patient under study and of course these are the commonest metabolic alterations that change the whole scenario.
The objective of my discussion is to provide you with a solid foundation of alcohol induced metabolic alterations. The knowledge thus acquired will help you to make spontaneous diagnosis and plan the relevant treatment in the clinical settings.
The case details are with you. There are 3 questions related to the problems the patient is having in this case, and there are 4 options for each of the questions. Using your prior knowledge, try to select the most appropriate answer, you have only one minute to solve the answer.
Spa, isomorphic and back to the server our journey with js @ frontend con po...Alessandro Nadalin
We’ve been toying around with JS since 4 years, trying to figure out what’s the best approach to build mobile-friendly apps that would offer the best performances on mobile devices.
We first went SPA and then decided to take a different approach, as 3 years ago we decided to tackle our problems on mobile with an isomorphic application.
Today, we would like to guide you through years of that choice and why we decided to take a step back and go revamp our mobile website again, with server-side rendering and a pinch of React.
Spoiler alert: 30ms is considered slow.
SPA, isomorphic and back to the server: our journey with JavaScript @ JsDay 2...Alessandro Nadalin
We've been toying around with JS since 4 years, trying to figure out what's the best approach to build mobile-friendly apps that would offer the best performances on mobile devices.
We first went SPA and then decided to take a different approach.
2 years ago we presented a talk, at this very same conference, about how we decided to tackle our problems on mobile with an isomorphic application.
Today, we would like to guide you through 2 years of that choice and why we decided to take a step back and go revamp our mobile website again, with server-side rendering and a pinch of React.
Fast and wicked performance ahead!
A very short, non-technical presentation on some of the practices we adopted while growing Namshi to be the largest fashion e-tailer in the Middle East.
Examples used in the talk: https://github.com/odino/react-native-codemotion
Ever since it launched, RN has gained lots of interest since it opens a new door to web developers: mobile development, with the added of bonus of being able to re-use a substantial chunk of code for both ios and android.
Follow me on this step by step tutorial on how to build a simple mobile app with the latest version of React Native, understanding the concepts behind it, the differences between React and its native version and seeing how you can debug a native app directly in your browser.
Docker is a groundbreaking technology that will heavily influence how we will write software in the years to come: let's then have a look at:
* where it comes from (Linux Containers)
* how it works
* how to dockerize simple apps to easily deploy them on production
* how you can use Docker in local environments to simplify your development workflow
Do you like Vagrant, auto-scaling or 12-factor apps? Then get ready to be mindblown.
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
A look at how we try to make our architecture robust, resilient and fun to work with: Namshi is not github or spotify but... ...imitation is the sincerest form of flattery!
An internal presentation given to the tech team at Namshi: thoughts on our 2013 and what to expect in 2014.
If you looking to team up with a bunch of passionate nerds...have a look and join the crazy boat!
http://namshi.com/
http://tech.namshi.com/
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)Alessandro Nadalin
Since bumping into AngularJS a few months ago, we decided to invest more and more time developing with it: coming from a PHP background, the shift of paradigm easy due to the use of patterns and intuitive flows: even though this won’t be a very in-depth technical talk, we are going to see why you should consider working with angular: fast single-page apps, DI, ease of testing, being asynchronous, scaling on the clients.
Welcome to the future.
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...Alessandro Nadalin
OrientDB is a NoSQL graph database which also includes a document layer (like MongoDB): it gained a lot of attention, enough to push big companies like Sky and UltraDNS to use it in production: it's written in Java and it's amazingly fast, since it can store up to 150,000 records per second on common hardware; moreover, thanks to being a graphdb, it can manage relationship so fast that, compared to traditional DBs, can be 1000% faster than them.
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoAlessandro Nadalin
The HTTP protocol has been there for more than 20 years, almost untouched, but the current needs of the web are pushing towards adding some spices into the mix.
In this talk we will have a brief look at the history of HTTP, what SPDY - the "new" protocol proposed by google - brings into the table and how HTTP/2.0 will look like.
Presentation given at the International PHP conference in Mainz, October 2012, dealing with a bit of history about the HTTP protocol, SPDY and the future (HTTP/2.0).
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
1. REST in peace
Rome, March 5th 2011
Licensed under CC license
2. Agenda
Rest in a nutshell ESI in a nutshell
The uniform interface Pros/Cons
Bad APIs
ESI + REST Problems
Licensed under CC license
Rome, March 5th 2011
3. Sorry for the ugly slide.
There will be others.
Really sorry.
Licensed under CC license
Rome, March 5th 2011
6. 2000
Fielding's dissertation:
REpresentational
State
Transfer
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Licensed under CC license
Rome, March 5th 2011
7. REST in a nutshell:
Licensed under CC license
Rome, March 5th 2011
8. REST in a nutshell:
1. Client <> Server
Licensed under CC license
Rome, March 5th 2011
9. REST in a nutshell:
2. Stateless
Licensed under CC license
Rome, March 5th 2011
10. Recover and
failover
paradise
Licensed under CC license
Rome, March 5th 2011
11. What about
the user
session?
Licensed under CC license
Rome, March 5th 2011
12. Must
die
Licensed under CC license
Rome, March 5th 2011
13. What about
the user
cookies?
Licensed under CC license
Rome, March 5th 2011
14. Should
die
Licensed under CC license
Rome, March 5th 2011
16. Wondering why?
Send a cookie via FTP.
http://www.google.it/search?sourceid=chrome&client=ubuntu&channel=cs&ie=UTF-8&q=ftp+cookies
And
http://www.ics.uci.edu/~fielding/pubs/dissertation/evaluation.htm#sec_6_3_4_2
Licensed under CC license
Rome, March 5th 2011
17. REST in a nutshell:
3. Cacheable
Licensed under CC license
Rome, March 5th 2011
18. REST in a nutshell:
When dealing with safe methods,
the response should be able to tell the client,
or whatever stands behind the request,
how to cache it.
Licensed under CC license
Rome, March 5th 2011
19. REST in a nutshell:
4. Layered system
Licensed under CC license
Rome, March 5th 2011
20. REST in a nutshell:
5. Uniform
interface
Licensed under CC license
Rome, March 5th 2011
21. Uniform interface
hierarchic resource identification
HTTP verbs to perform operations
manipulation through representation
HATEOAS
Licensed under CC license
Rome, March 5th 2011
22. Richardson maturity model
hierarchic resource identification
HTTP verbs to perform operations
manipulation through representation
HATEOAS
Really well explained by Fowler: http://martinfowler.
com/articles/richardsonMaturityModel.html#level0
Licensed under CC license
Rome, March 5th 2011
23. Richardson maturity model
mess
hierarchic resource identification
HTTP verbs to perform operations
HATEOAS
Licensed under CC license
Rome, March 5th 2011
24. Richardson maturity model
0. mess
hierarchic resource identification
HTTP verbs to perform operations
HATEOAS
Licensed under CC license
Rome, March 5th 2011
25. 0
Using HTTP
Licensed under CC license
Rome, March 5th 2011
26. Without giving a
f***
Licensed under CC license
Rome, March 5th 2011
27. Richardson maturity model
1. 0. mess
hierarchic resource identification
HTTP verbs to perform operations
HATEOAS
Licensed under CC license
Rome, March 5th 2011
28. 1
mytastyproduct.com/users
mytastyproduct.com/users/1/licenses/4
Licensed under CC license
Rome, March 5th 2011
29. Richardson maturity model
1. 0. mess
hierarchic resource identification
2. HTTP verbs to perform operations
HATEOAS
Licensed under CC license
Rome, March 5th 2011
36. Uniform interface is interesting.
Everyone seem to have its own RESTful "service".
But no one seem to entirely implement a uniform interface.
Licensed under CC license
Rome, March 5th 2011
37. Uniform interface is interesting.
Everyone seem to have its own RESTful "service".
But no one seem to entirely implement a uniform interface.
That means... ...?
Licensed under CC license
Rome, March 5th 2011
38. No
RESTful
stuff
Licensed under CC license
Rome, March 5th 2011
39. But don't be too religious.
Licensed under CC license
Rome, March 5th 2011
40. But don't be too religious.
Cookies stuff included.
REST gets raped everyday,
get over it.
Licensed under CC license
Rome, March 5th 2011
55. GET /api.twitter.com/1/users/show.format
GET /api.twitter.com/1/users/
HTTP Accept header:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Licensed under CC license
Rome, March 5th 2011
71. HTTP/1.1 201 Created
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Date: Fri Feb 18 03:21:09 CET 2011
Content-Type: text/plain
Server: OrientDB Server v.0.9.24
Connection: Keep-Alive
Set-Cookie: OSESSIONID=OS12979956697985725150466358620636;
Path=/; HttpOnly
CONTENT-LENGTH: 221
Licensed under CC license
Rome, March 5th 2011
72. CAN I HAZ HATEOAZ?
Licensed under CC license
Rome, March 5th 2011
73. HTTP 201 Created
Location /bla bla bla bla...
http://en.wikipedia.org/wiki/HTTP_location
Licensed under CC license
Rome, March 5th 2011
74. I am really ashamed of having
bothered you for 78 slides
to say how to perform a GET
Licensed under CC license
Rome, March 5th 2011
75. ESI
in peace
Rome, March 5th 2011
Licensed under CC license
Rome, March 5th 2011
76. Edge Side Includes
A de facto standard for bla bla bla...
Licensed under CC license
Rome, March 5th 2011
77. 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
Licensed under CC license
Rome, March 5th 2011
78. Include
<esi:include src="http://codemotion.it/talks/1" />
Licensed under CC license
Rome, March 5th 2011
79. Try/Catch
<esi:try>
<esi:attempt>
<esi:comment text="The REST talk"/>
<esi:include src="http://codemotion.it/talks/1" />
</esi:attempt>
Licensed under CC license
Rome, March 5th 2011
80. Fallback
<esi:try>
<esi:attempt>
<esi:comment text="The REST talk"/>
<esi:include src="http://codemotion.it/talks/1" />
</esi:attempt>
<esi:except>
<esi:comment text="fallback"/>
<p>epic fail</p>
</esi:except>
</esi:try>
Licensed under CC license
Rome, March 5th 2011
82. Pitfalls
Processor configuration
Licensed under CC license
Rome, March 5th 2011
83. Pitfalls
Processor configuration
Implementation of fallbacks for handling
errors
Licensed under CC license
Rome, March 5th 2011
84. Pitfalls
Processor configuration
Implementation of fallbacks for handling
errors
it relies on the processor, which gains
importance, for creating any single response (
not really true :-) )
Licensed under CC license
Rome, March 5th 2011
93. So here's a resource.
Licensed under CC license
Rome, March 5th 2011
94. So here's a resource.
Or, better, its
representation.
Licensed under CC license
Rome, March 5th 2011
95. Five minutes cache
2 days cache
Licensed under CC license
Rome, March 5th 2011
96. Let's write our own
caching system
Licensed under CC license
Rome, March 5th 2011
97. because we need to cache different
resources with different expiring intervals
odino@odino-phenom:~$ ab -n 1000 -c 10 http://127.
0.0.1/tmp/esi.php
This is ApacheBench, Version 2.3 <$Revision: 655654
$>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/
Licensed to The Apache Software Foundation, http:
//www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Licensed under CC license
Rome, March 5th 2011
99. USE ESI
and HTTP
cache
Licensed under CC license
Rome, March 5th 2011
100. Understanding the web cache
http://www.mnot.net/cache_docs/#WORK
HTTP cache
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
Licensed under CC license
Rome, March 5th 2011
101. Without a
single LoC
Licensed under CC license
Rome, March 5th 2011
111. 2. Caching
Resolved by the gateway cache
aka your reverse proxy
aka, most of the time, Varnish
Licensed under CC license
Rome, March 5th 2011
112. You know
Varnish,
don't you?
Licensed under CC license
Rome, March 5th 2011
113. Without varnish
Concurrency Level: 10
Time taken for tests: 1.467 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 5476471 bytes
HTML transferred: 5285280 bytes
Requests per second: 681.69 [#/sec] (mean)
Time per request: 14.670 [ms] (mean)
Time per request: 1.467 [ms] (mean, across all concurrent
requests)
Transfer rate: 3645.73 [Kbytes/sec] received
Licensed under CC license
Rome, March 5th 2011
114. With varnish
Concurrency Level: 10
Time taken for tests: 0.179 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 5479938 bytes
HTML transferred: 5288556 bytes
Requests per second: 5587.65 [#/sec] (mean)
Time per request: 1.790 [ms] (mean)
Time per request: 0.179 [ms] (mean, across all concurrent
requests)
Transfer rate: 29902.34 [Kbytes/sec] received
Licensed under CC license
Rome, March 5th 2011
115. AWESOME
huh?
Licensed under CC license
Rome, March 5th 2011
118. Defining a request
header in ESI
<esi:environment>
<esi:request_header name="Accept" value="text/vnd.odino.xhtml"/>
</esi:environment>
Licensed under CC license
Rome, March 5th 2011
119. Defining a request
header in ESI
<esi:environment>
<esi:request_header name="Accept" value="text/vnd.odino.xhtml"/>
</esi:environment>
Content Negotiation
Licensed under CC license
Rome, March 5th 2011
125. with the RAD framework
Symfony2
http://symfony-reloaded.org/
https://github.com/pminnieur/ServerBundle
Licensed under CC license
Rome, March 5th 2011
126. That means you should be able to write your
own reverse proxy acting as an ESI processor.
I mean, if they were able to write a webserver...
Licensed under CC license
Rome, March 5th 2011
137. Response for fragments
text/vnd.xhesiml+xml
<div>
....
</div>
<span>
<esi ... />
</span>
Licensed under CC license
Rome, March 5th 2011
138. Client
Reverse proxy
Supporting
all the ESI
ESI processor specification
http://www.w3.org/TR/esi-lang
Application
Licensed under CC license
Rome, March 5th 2011
140. Is that a problem?
Licensed under CC license
Rome, March 5th 2011
141. Client
Reverse proxy
Supporting
all the ESI
ESI processor specification
http://www.w3.org/TR/esi-lang
Application
Licensed under CC license
Rome, March 5th 2011
142. Varnish is there
for a reason
Licensed under CC license
Rome, March 5th 2011
145. Ready to include a resource
with our custom hypermedia
format
<esi:environment>
<esi:request_header name="Accept" value="text/vnd.blablabla"/>
</esi:environment>
Licensed under CC license
Rome, March 5th 2011
146. But don't screw
everything forgetting
the remaining parts of
HATEOAS, like
hypermedia relations.
http://www.slideshare.net/adorepump/hateoas-the-confusing-bit-from-rest
http://tech.groups.yahoo.com/group/rest-discuss/message/17011
Licensed under CC license
Rome, March 5th 2011
167. "REST is software design on the scale of decades: every detail is intended to promote
software longevity and independent evolution. Many of the constraints are directly
opposed to short-term efficiency. Unfortunately, people are fairly good at short-term
design, and usually awful at long-term design. "
Roy Fielding
Licensed under CC license
Rome, March 5th 2011
168. Put a bit of
REST
everywhere
Licensed under CC license
Rome, March 5th 2011
174. Agile development
vs
REST
Licensed under CC license
Rome, March 5th 2011
175. Agile development
vs
REST
mmmmmmmmmmmm................
http://www.odino.org/288/restful-and-agile-love-hate-love
Licensed under CC license
Rome, March 5th 2011
190. Then people got mad
Licensed under CC license
Rome, March 5th 2011
191. A disclaimer
in peace
Rome, March 5th 2011
Licensed under CC license
Rome, March 5th 2011
192. JSON does not suck. At all.
http://www.slideshare.net/Wombert/xml-versus-the-new-kids-on-the-block-phpbnl11-20110129
Licensed under CC license
Rome, March 5th 2011
193. Varnish
does not suck. At all.
Licensed under CC license
Rome, March 5th 2011
194. HTML5
does not suck. At all.
http://www.html5rocks.com/
Licensed under CC license
Rome, March 5th 2011
195. OrientDB
rocks
Ask Luca Garulli, he might be in this room
http://www.orientechnologies.com/
Licensed under CC license
Rome, March 5th 2011
196. Everything is a tradeoff
Licensed under CC license
Rome, March 5th 2011
198. David Zuelke
knows best
Licensed under CC license
Rome, March 5th 2011
199. Design HTTP interfaces
and RESTful webservices
http://www.slideshare.net/Wombert/designing-http-interfaces-and-restful-web-services-phpbnl11-20110128
Licensed under CC license
Rome, March 5th 2011
200. Others
know best
Licensed under CC license
Rome, March 5th 2011
201. 300 RESTful boring slides :)
http://www.slideshare.net/guilhermecaelum/rest-in-practice
REST as the DBMS of the web
http://www.slideshare.net/dnene/rest-representational-state-transfer-explained
Licensed under CC license
Rome, March 5th 2011