This document discusses web hooks and the programmable web. It begins by defining web hooks as user-defined HTTP callbacks that can make web services extensible and empower users. The document then explores how web hooks enable a truly programmable web by allowing programs to extend web applications, unlike APIs which only allow programmatic use. It discusses how web hooks could enable applications to be combined like UNIX command line tools using input/output pipes. Finally, it argues that for the web to be fully programmable, web applications need to implement web hooks for common events.
Show 62 | 3 Reasons Web Sites Fail | Edge of the Web RadioErin Sparks
Consider this: There are about 700 million websites. But to most of us, only a tiny fraction of those sites exist because we jump from bookmark to bookmark, scanning our favorite homepages and refreshing our feeds. Marketers everywhere are asking, "Why do so many websites fall short?"
We're giving you the Three Deadly Reasons Most Websites Fail
Why you should keep your Web knowledge up to date
and How to keep your Web knowledge up to date?
facebook,gadgets,market share,newsletter,rss,technology,trend,twitter,websites trends,widgets
Using Google Analytics to Measure Social Media SuccessPerficient
Now that you’re using social media, do you know whether or not it’s working for your business? Wondering what all those numbers mean in Google Analytics? Learn the basics of measuring social media success with Google Analytics in this presentation by Sarah Worsham, CEO & Web Strategist from Sazbean Consulting.
Show 68 PERQ INTERVIEW w/ Scott Hill & Andy MedleyErin Sparks
We have a couple of guests in house. Gentlemen from PERQ – a company headquartered in Indianapolis, IN. This company does something simple – they help businesses attract consumers through incentives, with you use of cutting edge technology. Simple as that – and guess what – that’s what you need. We’ll speak with them today about the successes they have had.
ALSO : We have 12 tips to improve conversion rates over the festive period
It is my attempt to design a symbol for Indian Rupee in response to the rupee symbol design contest from goverment of India. Though my design was not in the final 5, my effort was well worth the contest's importance
This is a quick introduction to webhooks I gave at GlueCon 2010. It was also a bit of an ad for a last minute 40 minute talk I was giving immediately after.
Show 62 | 3 Reasons Web Sites Fail | Edge of the Web RadioErin Sparks
Consider this: There are about 700 million websites. But to most of us, only a tiny fraction of those sites exist because we jump from bookmark to bookmark, scanning our favorite homepages and refreshing our feeds. Marketers everywhere are asking, "Why do so many websites fall short?"
We're giving you the Three Deadly Reasons Most Websites Fail
Why you should keep your Web knowledge up to date
and How to keep your Web knowledge up to date?
facebook,gadgets,market share,newsletter,rss,technology,trend,twitter,websites trends,widgets
Using Google Analytics to Measure Social Media SuccessPerficient
Now that you’re using social media, do you know whether or not it’s working for your business? Wondering what all those numbers mean in Google Analytics? Learn the basics of measuring social media success with Google Analytics in this presentation by Sarah Worsham, CEO & Web Strategist from Sazbean Consulting.
Show 68 PERQ INTERVIEW w/ Scott Hill & Andy MedleyErin Sparks
We have a couple of guests in house. Gentlemen from PERQ – a company headquartered in Indianapolis, IN. This company does something simple – they help businesses attract consumers through incentives, with you use of cutting edge technology. Simple as that – and guess what – that’s what you need. We’ll speak with them today about the successes they have had.
ALSO : We have 12 tips to improve conversion rates over the festive period
It is my attempt to design a symbol for Indian Rupee in response to the rupee symbol design contest from goverment of India. Though my design was not in the final 5, my effort was well worth the contest's importance
This is a quick introduction to webhooks I gave at GlueCon 2010. It was also a bit of an ad for a last minute 40 minute talk I was giving immediately after.
An analysis of the trends in the web platform to help you plan, prepare and build for a better web. We'll go into ways to analyse trend data to help you learn more effectively about the platform, and we'll go into tools you'll need to make intelligent decisions when deciding on feature levels and browser support.
This presentation looks at various notions of “Web2-ness” within a wider context of a more wired web.
Although not the true “Semantic Web”, practitioners argue that many of the sites and services available today have the hallmarks of connectedness which Berners-Lee originally suggested would ultimately make up the next phase of the internet.
In the cultural context, this raises questions and outlines possibilities about how best to develop our web products so as to best capitalise on the notion that the power of the web is in sharing, and not – as has been typical to date - in silos.
The major issues tend to show themselves in two ways, and this presentation will focus on both: Firstly, how best to capture and share the voices of our users, and secondly how the power of the distributed web can help us cheaply and easily improve our offerings.
HTML5 is here and we should use it right now. It is fun and interesting to look at cool CSS3, Canvas and Video demos but our main goal should be to make our day-to-day life easier by using the cool things browsers offer us right now. Learn about local storage, simplifying interfaces and using HTML5 right now!
I broke what? Taking over maintenance on existing (well loved) projects, by B...T. Kim Nguyen
Taking over maintenance of an existing open source application can be a scary prospect yet exciting and fun at the same time. I want to talk a little bit about how I ended up taking over maintenance of WebOb a Python HTTP request/response library that is used heavily by a huge variety of projects.
Length: Long Talk
Target Level: Beginner
Target Audience: Integrator, User, Developer
Rich, modern web-applications are changing the way we write software for the Internet. As browsers grow evermore powerful, we become able to construct more complex and interactive applications by deferring some server-side logic to the client. In this presentation, we will establish a definition and characteristics for what makes web-applications modern and compare the benefits and trade-offs by exploring a few case studies.
About the Author:
Mike Filbin is a full-stack web developer who focuses on engineering JavaScript applications for both the browser and the server. Mike is also a proponent of the Free and Open Source software movements and is a member of both the Linux and Free Software foundations.
Session slides from Future Insights Live, Vegas 2015:
https://futureinsightslive.com/las-vegas-2015/
Modular front-end applications that can grow and evolve over time. Many front-end JS toolkits are optimized for building the first version of the app quickly. But for an app that powers a business, you have to think past initial launch. Your app will likely outlive the attention span of those who first wrote it. So, how do we pick tools and architectures that can be modified, maintained, and upgraded over time by a team of people?
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
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.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
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!
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
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.
The Art of the Pitch: WordPress Relationships and Sales
Web Hooks And The Programmable World Of Tomorrow
1. WEB HOOKS
and the
Programmable World of Tomorrow
Jeff Lindsay
three years after coining web hooks, people are starting to get excited about them.
i’m going to share what they are, why they’re significant, and what’s going on
in the growing web hooks ecosystem
2. WEB HOOKS
and the
Programmable World of Tomorrow
Jeff Lindsay
i’ve given a version of this talk before, but this time i’d like to try and focus on this
“programmable” idea that helped inspire web hooks.
3. WARNING:
Emergent dynamics described ahead.
was a guy really excited hearing about web hooks, but was disappointed to see what they are.
i’m describing a game changer based on a mechanism that takes one line of code to describe.
seems so simple, people assume you can only do simple things. quite the contrary...
4. go. simple mechanisms can create rich dynamics.
easily teach somebody the rules, doesn’t mean they see the implications of those rules.
i want to share the implications of this simple mechanism.
5. in 1997, jon udell talks about websites as data sources that can be reused and remixed
today that idea isn’t very novel
6. “a new programming paradigm
that takes the whole Internet
as its platform”
he envisions the Internet as a programming paradigm
7. The Programmable Web
“The Web as Platform”
it starts to manifest as the programmable web and talk of “the web as a platform”
8. The Programmable Web
APIs and Mashups
john musser here starts to track apis and mashups in 2005. there are now over 1k apis and
increasingly more.
apis and mashups became the foundation of the programmable web...
9. Pro g ramm at ic
The Programmable Web
APIs and Mashups
but are they? after thinking about web hooks and what they can give us, i realized apis and mashups
don’t make a programmable web. they make a programmatic web
10. Pro g ramm at ic
The Programmable Web
Twitter API lets you use Twitter programmatically.
It does not let you program Twitter to do more.
they let you use web apps programmatically. they don’t let you program them to do more,
whereas web hooks can. so i like to argue that web hooks will bring about the *real* programmable
web.
11. Web Service
interwebz
User
so let’s get specific. here’s an example scenario showing the use of web hooks.
12. Web Service
Hi, I’m Twickr,
a new web service.
interwebz
User
22. “Twickr”
It doesn’t matter to you.
Whatever I want...
interwebz
User
web hooks are just user-defined http callbacks
23. Web Service
EXTENSIBLE
interwebz
EMPOWERED
User
but do you see what they did? they made the web service extensible and empowered the
user.
24. a friend of mine got me to explain web hooks to her. not a programmer, but has iphone.
she compared it to jailbreaking the iphone: letting users do what they want, customize, add
apps, etc
having web hooks is like jailbreaking your web apps. opens functional extensibility.
25. a pseudo code example of what the heart of implementing web hooks looks like.
SIMPLE: make an HTTP request to a user-specified URL on major events
28. “When a customer pays you, PayPal posts a notification to your server at a URL you specify.”
its framed as a notification, but that doesn’t properly imply the usage its intended for:
integration.
29. started thinking about this in 2006.
everything flashed before my eyes and was very confused why it wasn’t used more.
felt like i was taking crazy pills. today i know why...
31. both have been around longer. rest is simpler..
in fact, it’s almost described as “using HTTP properly”
but not until it got a name could it be used in discourse to make it popular
32. REST
Hooks
rest apis and web hooks are two sides of the same coin
they complement each other in ways i’ll get to later
but i just want to give this pattern a name, and start associating some ideas with it
33. Push
Pipes
Plugins
talk is split into three sections
ways to look at the use of web hooks
icons will hopefully make more sense as i talk about them
34. Push
let’s get started with push
people are starting to talk about push and pubsub on the web... although its not the first
time
35. 1998 (predating rss) microsoft submitted an internet draft to extend http
to provide a basic pubsub framework called GENA
40. but then in 2000, rss 0.92 was released. five years later it gets an icon and widespread
adoption.
it started with blog feeds, then comment feeds...
41. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
42. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
43. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
44. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
45. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
46. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
47. then soon exploded into twitter feeds, photo feeds, activity feeds, event feeds, bookmark feeds
even feeds of feeds
48. it makes you think of feeds like in the telecom world
52. then it gives it to us. and we do this over and over.
are we there yet? are we there yet?
53. ?
feeds made sense in a world where feed readers ran on
desktops that couldn’t be pushed to over http
54. ?
of course, now we have other web applications consuming feeds and it doesn’t make sense.
even most of our feed readers have become web applications
55. SUP is a recent incremental solution to increase the eficiency of consuming large amounts of
feeds.
however, its based on polling and is essentially yet another feed,
so i couldn’t help...
56. SUP DAWG, WE HEARD YOU LIKE FEEDS
SO WE MADE YOU A FEED OF OUR FEEDS
57. evan and kellan gave a great talk a while back about this push issue, and their proposed solution:
xmpp
i have a condensed version of this talk. the slides speak for themselves
58.
59.
60.
61.
62.
63.
64. (aka XMPP)
they have a great point. polling sucks, and xmpp is a pretty good solution for data streams
65. but it’s kind of heavy weight. it does a lot and makes a decently complex little system.
luckily it’s not *that* hard to use with today’s library support
66. evan and kellan did point out there are extremes when it comes to data streams.
most data streams will probably fall somewhere in between,
but i do think xmpp is suited for the fast and furious end
67. joshua schachter of delicious responded to this talk in a blog post.
he basically suggests web hooks as an alternative
68. “One solution that occurred to me at the time was to build a simple callback system over HTTP.
This would fall comfortably between full polling and full persistent publish/subscribe.”
he says they fall comfortably between polling and xmpp. i agree, and think they can cover
most use-cases
69. others seem to agree....
this is a standard for discovering and subscribing to content changes.
they let you use web hooks OR xmpp, which is nice.
good idea, but (like GENA) standard specs alone don’t get very far
70. gnip is a service that some may have heard of (but don’t understand)
72. Source Destination
Protocol + Mechanism Protocol + Mechanism
Format Format
Web Hooks Web Hooks
RSS RSS
XMPP XMPP
Atom Atom
XML XML
REST REST
Publisher Consumer
they’re basically an adaptor for data streams, letting you pick your own protocol and mechanism, no
matter what the feed publisher is providing.
73. Source Destination
Protocol + Mechanism Protocol + Mechanism
Format Format
Web Hooks Web Hooks
RSS RSS
XMPP XMPP
Atom Atom
XML XML
REST REST
Publisher Consumer
however, they recently dropped support to consume via xmpp, making web hooks their primary push
mechanism for consuming data streams.
74. Source
Protocol + Mechanism Protocol + Mechanism
Format Format
Web Hooks Web Hooks
RSS RSS
XMPP XMPP
Atom Atom
XML XML
REST REST
Publisher Consumer
as an example, if i wanted to get digg updates via web hooks, gnip will poll digg for me and invoke my
callback with the content as new updates come in.
75. Source
Protocol + Mechanism Protocol + Mechanism
Format Format
Web Hooks Web Hooks
RSS RSS
XMPP XMPP
Atom Atom
XML XML
REST REST
Publisher Consumer
alternatively, i could even poll gnip for digg updates. although seemingly redundant, it helps ease the
load on digg and allows gnip to provide filtering functionality.
76. Protocol + Mechanism Protocol + Mechanism
Format Format
Web Hooks Web Hooks
RSS RSS
XMPP XMPP
Atom Atom
XML XML
REST REST
Publisher Consumer
but another example might be if twitter provides an xmpp stream, but i already have a polling setup...
gnip would let me poll instead of integrate xmpp.
77. microformats
in promoting web hooks, i sort of look up to the way microformats work in values and process.
very ground up, grassroots... take existing popular use-patterns and make it a convention.
microformats can be viewed as an alternative xml+rdf
78. xml+rdf vs microformats
“Here's a new language we want you to learn,
and now you need to output these additional
files on your server. It's a hassle.
(Microformats) lower the barrier to entry.”
tantek is a big microformats evangelist. he says....
so i told him about web hooks. “what are they?” “push over http”
“how are they di than xmpp?” “they’re a lightweight alternative” lower the barrier to entry...
79. xmpp vs web hooks
“Good. XMPP needs a competitor.”
he says...
this was encouraging. i mean, when tantek talks, you listen...
if for no other reason than
81. unfortunately, xmpp has many features and proposals to do pubsub that web hooks doesn’t.... after
all, it’s just a creative use of http requests, not a messaging protocol. so in order to do pubsub with
web hooks, you need more to be implemented. well, brad fitzpatrick and brett slatkin are working on
that.
82. Push is good.
so the moral here is that push is good and there’s finally a demand for it. we have some good
solutions waiting adoption...
83. XMPP is ideal when needed,
but Web Hooks generally do the job.
as far as xmpp vs web hooks, i think they both have their place.
web hooks are easier, so you might as well default to web hooks unless you really need
xmpp.
84. But push is not the point.
however, as i framed this talk, it’s really not about push. it’s a nice way to get the social
media kids into bed with web hooks, but hooks are really about more than pubsub and
notifications. otherwise i would have called them web notifications or something...
85. Pipes
instead of push, i was more drawn by the pipes metaphor. i wanted to integrate and
orchestrate the web applications i use, conceptually similar to unix pipelining.
86. so i thought about it. pipes were a really amazing feature that let you get more out of your commands
by letting you chain them together. it sort of let you program without programming, combining
commands in ways that weren’t necessarily intended by the author.
87. Input Output
Program
all from a bit of infrastructure involving input and output
88. STDIN STDOUT
Program
STDERR
stdin, stdout were available to reroute wherever the user wanted
most common use was chaining commands together: piping
89. xargs
wget
echo
mail
grep
wc
cat
so you had all these simple little programs, that might not even be useful alone
90. cat
xargs
wget
echo
mail
grep
wc
string them together...
92. cat grep mail
xargs
wget
echo
wc
and you have something more useful than the sum of the parts
93. Write programs that do one thing and do it well.
Write programs to work together.
Write programs that handle text streams,
because that is a universal interface.
this helped put forth the unix philosophy and encouraged building these small composable
commands
94. STDIN
Program
but it doesn’t work without the output. it just breaks.
95. API
Web App
unfortunately that’s how the web is today.
we can talk to web apps, but they really can’t talk to us. or anything else really.
96. API Hooks
Web App
it’s not that they can’t, they just don’t. we just need to start putting hooks in so they can.
those roles are best played by mechanisms that use the protocol the web is built on: http
99. cat grep mail
Basecamp
so we want to combine web applications like we can CLI programs.
get more than the sum of the parts.
web hooks open up this possibility, but need like APIs, need to be implemented
101. Basecamp
Project finished
Todo completed
Milestone created
Contact added
File uploaded
102. Basecamp
My handler
http://example.com/handler
users can write handlers that are just web scripts.
they have a url, and thats what you give basecamp
103. Basecamp
My handler
http://example.com/handler
it’s code. it can do anything from there.
integrate with other services, make a phone call, order pizza, whatever
104. Todos
Basecamp
for example, all these apps share data about todos. they each have respective specialized talents,
but all work with todos. by putting hooks on todo CRUD,
you can use their apis to keep them synced pretty well. magically. real-time.
107. Code as glue
based on the idea that web urls can run code. and code can do anything.
108. when i first thought about this, cheap PHP hosting was all over, but it could be even simpler.
there are paste bins like this one. made to share formatted code with people over IRC or email
109. put in some code you want to share or ask a question about
113. Basecamp
Project finished
http://pastie.org/run/24576
for example, basecamp. now when you finish a project, everybody meets for shots in the break room.
115. just hit a button, write code, hit save, share the url. it’s javascript
116. obviously app engine, although it’s a little more involved than appjet for quick handlers.
but it is an option for python.
and there are ruby/rails hosts like heroku
117. one thing i’ve been working on is an extension to play with ways end-users might interact
with web hooks
118. Hey, there’s an
event hook here!
by detecting some markup in a page, it discovers hooks.
like say for new photos from contacts.
you want to do something when that happens, click it
119. Save
and write some code. hit save, it posts to AppJet (or wherever),
registers the handler (assuming a standard protocol), and done. all inline.
go back and change the code.
120. Real world examples
but these are all mockups and what-ifs...
there is a world of web hooks already evolving...
121. i started by exposing svn hooks as web hooks in devjavu
122. i talked about web hooks enough using pbwiki as an example,
their mysterious cto decided to implement them
124. went all out on hooked events. not sure if it’s made it to production, but really cool
125. “Building projects with web hooks in
mind lets me keep the core Lighthouse
source focused, while external
services live in their own libraries.”
--Rick Olson
the idea silently spread to rails guys.
rick olson used them in lighthouse
126. “We implemented web hooks a while
ago and people have been building all
sorts of unexpected stuff on top of it.”
--Tobias Lütke
tobias used them in shopify. i’m told he’s revamping their api to have more hooks. they were
one of the earliest adopters and recently had their 1 yr anniversary using web hooks
127. google code recently caught up other code hosts by providing a post commit hook.
it was very well done, as you’d expect from google and in particular shows that
authentication can be done with hmac signatures
128. github was one of the first majorly popular site to use and promote web hooks.
129. they’ve been doing really well with their post-receive hook. users have used it to integrate
with mailing lists, chat, other project management tools, continuous integration, etc
130. they were so successful with the adhoc integration, they formalized it.
but in the best way! using their existing web hook infrastructure.
they just have modules running in a separate but local web service.
131. in fact, that lets them open source it. letting people fork, write new handlers, and push back.
this is probably going to be the standard model of service integration.
132. and a great example of services integrated with github, besides lighthouse, is runcoderun.
they run your regression tests for you. continuous integration in the sky. love it.
they sign you up automatically if you put their hook in github.
133. and of course i mentioned paypal. but i should mention, web hooks make so much sense
for paypal... they’re not so much about pushing content, but INTEGRATING. that’s what
web hooks are great for, even though they can be used for content push.
134. jott is another example of a web hook implementer that doesn’t know it.
they parse voice over the phone and do stu with it, like post to twitter, etc
135. they do it with “Links”... which are just hooks. they post to a script that does something with
the parsed text. really cool for todos.
136. Jott reads back the
The message is Message is sent via User receives
User jotts to
response and sends
converted HTTP Post to a information back
a Jott Link
it via SMS SMTP
into text web page
here’s their diagram. totally web hooks.
137. it become obvious making adaptor services would not only be useful in specific cases, but in
general, it makes sense to have services that will turn other protocols into inputs to the web
hook ecosystem. the first was email... i built mailhook...
138. GAE community made one because GAE doesn’t have a way to accept email (but will soon).
web hooks were the obvious solution.
139. rick olson has an open source non-hosted ruby version that will do xmpp.
he uses it for lighthouse.
140. but smtp2web is interesting because it was made because of the limitations of GAE...
141. in fact a lot of people made these kinds of “micro webservices” to do simple things GAE
didn’t do. it was the first glimpse at small, focused services that are like the equivalent of
grep, cat, wordcount, etc in the command line piping ecosystem.
142. then there’s martyn and andy. two guys in the uk that love web hooks.
they built this thing called spaghetti junction at a hackday. it involved into...
143. switchub. i REALLY love this. i knew this sort of thing would emerge, but i didn’t think it would happen
until web hooks were more popular. kind of like the pastinbin code runner, they let you create hook
inputs with urls to put in apps that you can route to various output handlers: email, irc, etc
144. my example switchboard. this kind of feels like gnip, only more focused and more about web hooks.
so i like it lots.
145. opening handlers up like github. anybody can write handlers soon.
working with them a little to make it real awesome.
146. switchub would benefit from builtin inputs from various other protocols like email, rss, etc...
but instead of having them builtin, they can work with other services to support those kinds
of inputs. for example, rssfwd could easily be modified to provide a web hook for rss
147. switchub is a lot like how i visualized a way for regular users to orchestrate web apps.
was inspired by reason: virtual rack mounts
148. flip it around and wire them together however you like. totally cool.
153. tangent: this is a neat find. was on reddit. andreessen proposing IMG tag.
people fought it, said it needed to be more generalized.
he just put it on mosaic and that was that
162. Extend
Integrate
Function
Content
but extending apps...
163. almost called this section Platforms.
platforms are really cool. we all love them.
i LOVE them, so fb platform was really cool.
asked a friend how it worked. he said “web hooks”
164. sure enough, this looks like web hooks to me. as long as it’s http, calling out... but then using the
results in their app? thats dierent...
165. in fact a few people have used web hooks for plugins. dabble is a great example.
166. they do online databased for people that use excel as a database.
168. “Dabble plugins allow Dabble applications to create new, derived fields by calling out
to external HTTP-accessible applications. This solves the problem of safely enabling
extension of a centrally-located hosted application, in that, while you’re writing code
to extend and enhance the behavior of a Dabble application, your code never
actually runs inside Dabble.”
[General]
Name = Amazon Sales Rank
[Sales Rank by ISBN]
URL = http://chadfowler.com/dabble/amazon_sales_rank.cgi
Input = Text
Output = Number
only they have an extra layer for meta data. but that’s a cool pattern.
169. “If you’ve used a UNIX-based operating system, you’re probably
familiar with the notion of pipes. The output of one program is
piped into the input of another, creating a filter chain. This is
conceptually the same as the way Dabble’s plugin IO works.
Nice and simple.”
of course, they compare it to pipes. the simplicity. the natural fit of it.
170. of course, i think they should have web hooks for all their standard CRUD events...
this way their database apps can integrate (like PayPal) with the rest of your workflow
171. in fact, all these “app platforms” like coghead and salesforce should have web hooks.
that would make them more useful, less silo’d o into just processing data in their world
172.
173.
174. IMified uses web hooks. sells the tech too: “allows anyone with basic web programming skills
to quickly and easily create ...”
176. General Systems
Theory
central tenet is value is not in the elements or parts of a system
177. General Systems
Theory
the real value is in the interactions, how they work together.
this creates the emergent phenomenon of a system, and defines its behavior
180. “a new programming paradigm
that takes the whole Internet
as its platform”
this vision for a programming paradigm that IS the internet/web is very compelling... but we’re not
there yet.
184. “What is the equivalent of the pipe
in the age of the web?”
in 2000, just as rss 0.92 was being released, tim oreilly asks...
since we had nothing better, we assumed the answer was feeds.
185. this eventually gave us yahoo pipes. which just didn’t seem to change the game like you would think...
perhaps feeds just aren’t the answer. or maybe they are and the problem is using the pipes analogy.
it’s definitely a stretch...