# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 18
# self = https://watcher.sour.is/conv/yvxum5q
Boingo!


WARN[0059] attempt to fetch blacklisted feed @<prologic https://twtxt.net/user/prologic/twtxt.txt> 


I managed to reproduce it! πŸ€¦β€β™‚οΈ This was missed because normally when I do development, I run in debug-mode with the -D flag, and there's a different code-path that takes place for "validating" the pod's configuration. But this is inter-mixed with "configuration initialization" as well, like for examples, loading up the whitelist of image domains or the new blacklist of feeds and turning them into regexes. πŸ€¦β€β™‚οΈ
Boingo!


WARN[0059] attempt to fetch blacklisted feed @<prologic https://twtxt.net/user/prologic/twtxt.txt> 


I managed to reproduce it! πŸ€¦β€β™‚οΈ This was missed because normally when I do development, I run in debug-mode with the -D flag, and there's a different code-path that takes place for "validating" the pod's configuration. But this is inter-mixed with "configuration initialization" as well, like for examples, loading up the whitelist of image domains or the new blacklist of feeds and turning them into regexes. πŸ€¦β€β™‚οΈ
I'm surprised I haven't been burned by this bug before 🀣 So sorry! I will fix properly and attempt to make this code-path a bit more clear. πŸ‘Œ
I'm surprised I haven't been burned by this bug before 🀣 So sorry! I will fix properly and attempt to make this code-path a bit more clear. πŸ‘Œ
Also me on #go-nuts on LiberaChat:


[20:31:11]  <prologic> Q: Why does the empty regexp match any string? (https://play.golang.org/) this is rather weird to me and makes no sense.
[20:31:18]  <prologic> Am I misunderstanding regexp here or is this a bug?
[20:31:20]  <prologic> Go 1.17.1 here


🀣 πŸ˜‚ I _feel_ quite stupid at this point πŸ€¦β€β™‚οΈ
Also me on #go-nuts on LiberaChat:\n\n
\n[20:31:11]  <prologic> Q: Why does the empty regexp match any string? (https://play.golang.org/) this is rather weird to me and makes no sense.\n[20:31:18]  <prologic> Am I misunderstanding regexp here or is this a bug?\n[20:31:20]  <prologic> Go 1.17.1 here\n
\n\n🀣 πŸ˜‚ I _feel_ quite stupid at this point πŸ€¦β€β™‚οΈ
Also me on #go-nuts on LiberaChat:


[20:31:11]  <prologic> Q: Why does the empty regexp match any string? (https://play.golang.org/) this is rather weird to me and makes no sense.
[20:31:18]  <prologic> Am I misunderstanding regexp here or is this a bug?
[20:31:20]  <prologic> Go 1.17.1 here


🀣 πŸ˜‚ I _feel_ quite stupid at this point πŸ€¦β€β™‚οΈ
Now I _feel_ even more dumb πŸ˜…\n\n
\n[20:32:23]  <fizzie> Your playground link was missing the... link. Need to click on the share button.\n[20:32:52]  <prologic> Err fuck wait\n[20:33:07]  <prologic> https://play.golang.org/p/1ZQuQS4balZ\n[20:33:14]  <prologic> Didn't realise you had to click the "Share" button :D\n
Now I _feel_ even more dumb πŸ˜…


[20:32:23]  <fizzie> Your playground link was missing the... link. Need to click on the share button.
[20:32:52]  <prologic> Err fuck wait
[20:33:07]  <prologic> https://play.golang.org/p/1ZQuQS4balZ
[20:33:14]  <prologic> Didn't realise you had to click the "Share" button :D
Now I _feel_ even more dumb πŸ˜…


[20:32:23]  <fizzie> Your playground link was missing the... link. Need to click on the share button.
[20:32:52]  <prologic> Err fuck wait
[20:33:07]  <prologic> https://play.golang.org/p/1ZQuQS4balZ
[20:33:14]  <prologic> Didn't realise you had to click the "Share" button :D
@prologic You're just tired mate πŸ˜…

I still consider myself a noob when it comes to regexp, but I too thought an empty string causing a match seemed a bit... off. I mean I thought when it comes to typical regexp, you have to be pretty explicit to just match anything.
@prologic @eldersnake Any string contains an empty string, so that's not surprising to me at all. :-)
@lyse It’s still quite weird to me’ 🀣 I can’t visualize the DFA 🀣
@lyse It’s still quite weird to me’ 🀣 I can’t visualize the DFA 🀣
@prologic I reckon the automaton will have a single state which is also a final state and all input transitions into the same state again. Like that: https://lyse.isobeef.org/tmp/dfa.png It's just a return true.
@lyse Eh you're probably right 🀣 It's been so long since I did _actual_ Computer Science πŸ˜…
@lyse Eh you're probably right 🀣 It's been so long since I did _actual_ Computer Science πŸ˜…
@prologic Haha, my actual computer science days have also long been gone.