Fork me on GitHub
#gratitude
<
2022-11-24
>
Mario Trost16:11:15

Thanks to @quoll for making me understand graph databases and datalog! A couple of days ago I clicked https://github.com/quoll/asami/wiki in the https://github.com/quoll/asami and to my very pleasant surprise found a dense and at the same time accessible documentation of asami, graph db's and datalog in general. Great work, greatly appreciated :heart_hands: šŸ™

šŸ’Æ 6
šŸ’– 1
gratitude 9
brianwitte16:11:46

I had the same experience! Thank you @quoll :saluting_face:

ā¤ļø 2
Thomas Moerman16:11:06

I salute the person who invented/discovered the interceptor pattern (cfr Pedestal, Sieppari, Papillon and others), why did I discover this only after 20 years into my career? It's like a fundamental particle āš›ļø of software engineering, right?

šŸ‘€ 3
gratitude 8
ā¤ļø 1
Bart Kleijngeld17:11:46

I'm actually unfamiliar with it, so thanks for the tip! šŸ™‚

Thomas Moerman19:11:14

I found these videos useful. There's also the #interceptors channel. ā€¢ https://youtu.be/bDN898hu_wQ ā€¢ https://youtu.be/_Cf-STRvFy8

gratitude 1
Daniel Gerson19:11:43

@U052A8RUT You beat me to it. šŸ˜† I'm 15min in the Proctor video, and can attest it's very understandable partyparrot Thanks for posting your original gratitude post.

šŸ‘ 1
Matthew Davidson (kingmob)07:05:12

Interceptors are at least twenty years old, though I can't tell who originated it. It's probable the pattern is even older than that under different names (e.g., audio/video processing pipelines). The first printed reference I can find for the interceptor is from _<https://en.wikipedia.org/wiki/Pattern-Oriented_Software_Architecture#POSA2|Pattern-Oriented Software Architecture, 2nd Ed>._ from 2000. (Ed. 1 doesn't list the pattern.) The POSA2 book pattern is quite general. The first reference I can find to it being used for _web_ requests is the "intercepting filter". Here's a <https://web.archive.org/web/20021001190923/http://java.sun.com/blueprints/corej2eepatterns/Patterns/InterceptingFilter.html|Sun page> on the topic from 2002.

šŸ‘ 2
Daniel Gerson13:05:05

@U10EC98F5 I skimmed the link you referenced, but at least two considerations appear absent. 1) That the executor handles asynchronous filters protecting other filters from the mess that is asynchronous nesting. 2) That the interceptor filters queued and stack run are available for manipulation on the context itself! No doubt that the lineage of the Interceptor pattern derives from this prior art, but in my mind it deserves a 2.0 status with these criteria met. Begs the question how old 2.0 is?

Matthew Davidson (kingmob)14:05:51

@U03B2SRNYTY Not sure which link you're referring to, but the Sun page on the InterceptingFilter talks about dynamically altering the interceptor list. I think that meets your criterium #2 iiuc. I know for sure that Netty's ChannelPipeline meets both criteria, and it dates back to 2008, predating Pedestal by 5 years. Netty itself dates back to 2004, so it's possible interceptors existed even earlier in a different file. (And I'm not even sure that's the oldest async usage. E.g., Tomcat has interceptors and was started back in 1998, but I'm not very familiar with it)

šŸ‘ 2
Daniel Gerson07:05:13

@U10EC98F5 Thanks! I did say I skimmed it. šŸ˜† Much obliged that you confirmed that #2 is met.

šŸ‘ 2