The toxic material/element lead (Pb). A lot of old water mains and service lines were made out of lead or had lead in them which leaches into the drinking water.
Admiral Patrick
I’m surprisingly level-headed for being a walking knot of anxiety.
Ask me anything.
Special skills include: Knowing all the “na na na nah nah nah na” parts of the Three’s Company theme.
I also develop Tesseract UI for Lemmy/Sublinks
- 146 Posts
- 1.73K Comments
I don’t really understand what’s going on in the above picture, but maybe they’re changing old pipes for new ones?
Possibly replacing old, lead pipes. They’re doing a lot of that in my area because of federal funding from a couple years ago.
Admiral Patrick@dubvee.orgto
Technology@lemmy.world•White House App Found Tracking Users' Exact Location Every 4.5 Minutes via Third-Party ServerEnglish
16·10 days ago509 reviews as I write this and still 0 downloads and zero of those 509 reviews have any text; they just have ratings.
Admiral Patrick@dubvee.orgOPto
News@lemmy.world•Gay Muslim influencer hosts inclusive Ramadan meal and calls for acceptance across faithsEnglish
7·25 days agoI’m not a fan of crossposting since is clutters up my post history, but feel free to.
While I totally understand those communities, my preference is to not relegate anything that isn’t rage to a special community since it distills regular news down to just the rage. Just my personal preference.
Admiral Patrick@dubvee.orgOPto
News@lemmy.world•Gay Muslim influencer hosts inclusive Ramadan meal and calls for acceptance across faithsEnglish
844·25 days agoI’m beyond tired of the Tr*mp Rage Show Spectacular, so here’s some uplifting news for y’all.
Admiral Patrick@dubvee.orgtoHome Improvement@lemmy.world•Does anyone else get paralyzed on fixing small things because they're terrified of it becoming a larger thing? And how do you overcome it?English
16·27 days agoSpeaking from recent experience, the smaller thing can, and often does, turn into a larger thing all on its own and always at the worst time.
For the last 3 years, I knew my water heater was on its last legs. I kept putting it off until two Saturdays ago I had a wet basement and no hot water. The kick in the ass was that it wasn’t that hard to replace the unit: 2 hours of labor to install and 2 hours to drain, remove, and clean around the old one. Cost me just under $650 including same day delivery which was awesome because I would have had to rent a truck and drafted someone to help me load/unload it otherwise.
So my advice is when you allocate time to address the small problem, give yourself double that in case it turns into a bigger project. It’s always easier to deal with big stuff when it’s not a surprise.
Admiral Patrick@dubvee.orgto
Selfhosted@lemmy.world•Introducing New Fediverse Software, Goofed v0.0.1, Minimum Viable Shitpost EditionEnglish
30·29 days agoYou can also POST AS A GUEST TO THE FEDIVERSE without signing up.
Oh, dear lord. As if we don’t have enough spam and drive-by trolls as it is.
Mine died last weekend and I had to replace it. $650 to do myself, and that included same day delivery.
It failed the prior night, noticed it mid-morning, ordered at 2pm, received it at 5, and had it installed by 7. Was kind of a pain but not nearly as awful as I feared.
Admiral Patrick@dubvee.orgto
News@lemmy.world•Epstein’s Private Messages Speculated Trump Might ‘Bomb Iran’ If ‘Cornered Like a Rat’ — Seven Years Before He Did - Secret NewsEnglish
7·1 month agoThe number of upvotes on this post (and it’s xpost in c/politics) is extremely disheartening and shows why getting news from social media is doomed to spread crackpot shit. People will like and share anything they agree with no matter what tinfoil rag it links to.
Humanity makes me sad.
Admiral Patrick@dubvee.orgto
RetroGaming@lemmy.world•Trying to get into MUDs - any suggestions?English
2·1 month agoMy friend got me into it, and it was the first and only MUD I ever really got into. So kind of loved it by default. I tried out a few others but never really got very far beyond the first few levels in each.
Beyond that, it was intuitive as far as MUDs went, had a massive world and lore, and was well “modded”.
Admiral Patrick@dubvee.orgto
RetroGaming@lemmy.world•Trying to get into MUDs - any suggestions?English
4·1 month ago
Admiral Patrick@dubvee.orgOPto
Programmer Humor@programming.dev•In conclusion: Magic DNSEnglish
1·2 months agoI do!
Kubernetes is a nightmare and overkill for most things we need to run, and Docker Swarm is super easy to setup and maintain.
We only use it for one application, though. The app needs to scale horizontally and scale up and down with demand, so I put together a 6 node swarm cluster just for it. Works great, though the auto scaling required some helper scripting.
Admiral Patrick@dubvee.orgto
Lemmy Shitpost@lemmy.world•Ban USA politics from this sub pleaseEnglish
46·2 months agoBan
USApolitics from this sub please
Admiral Patrick@dubvee.orgto
Selfhosted@lemmy.world•What can you host with limited bandwidth but lots of storage?English
16·2 months ago1080p buffered generously but it worked :) The sweet spot was having it transcode to 720p (yay hardware acceleration). I wasn’t sharing it with anyone at the time, so it was just me watching at work on one phone while using my second phone at home for internet.
Admiral Patrick@dubvee.orgto
Selfhosted@lemmy.world•What can you host with limited bandwidth but lots of storage?English
31·2 months agoJust about anything as long as you don’t need to serve it to hundreds of people simultaneously. Hell, I once hosted Jellyfin over a 3G hotpot and it managed.
Pretty much any web-based app will work fine. Streaming servers (Emby, Plex, Jellyfin, etc) work fine for a few simultaneous people as long as you’re not trying to push 4K or something. 1080p can work fine at 4 Mbps or less (transcoding is your friend here). Chat servers (Matrix, XMPP, etc) are also a good candidate.
I hosted everything I wanted with 30 Mbps upload before I got symmetric fiber.
Admiral Patrick@dubvee.orgto
Selfhosted@lemmy.world•Based on this graph, and this graph alone, guess at what time I completely blocked OpenAI crawlersEnglish
16·2 months agoMaybe I should flesh it out into an actual guide. The Nepenthes docs are “meh” at best and completely gloss over integrating it into your stack.
You’ll also need to give it corpus text to generate slop from. I used transcripts from 4 or 5 weird episodes of Voyager (let’s be honest: shit got weird on Voyager lol), mixed with some Jack Handy quotes and a few transcripts of Married…with Children episodes.
https://content.dubvee.org/ is where that bot traffic lands up if you want to see what I’m feeding them.
Admiral Patrick@dubvee.orgto
Selfhosted@lemmy.world•Based on this graph, and this graph alone, guess at what time I completely blocked OpenAI crawlersEnglish
34·2 months agoThanks!
Mostly there’s three steps involved:
- Setup Nepenthes to receive the traffic
- Perform bot detection on inbound requests (I use a regex list and one is provided below)
- Configure traffic rules in your load balancer / reverse proxy to send the detected bot traffic to Nepenthes instead of the actual backend for the service(s) you run.
Here’s a rough guide I commented a while back: https://dubvee.org/comment/5198738
Here’s the post link at lemmy.world which should have that comment visible: https://lemmy.world/post/40374746
You’ll have to resolve my comment link on your instance since my instance is set to private now, but in case that doesn’t work, here’s the text of it:
So, I set this up recently and agree with all of your points about the actual integration being glossed over.
I already had bot detection setup in my Nginx config, so adding Nepenthes was just changing the behavior of that. Previously, I had just returned either 404 or 444 to those requests but now it redirects them to Nepenthes.
Rather than trying to do rewrites and pretend the Nepenthes content is under my app’s URL namespace, I just do a redirect which the bot crawlers tend to follow just fine.
There’s several parts to this to keep my config sane. Each of those are in include files.
-
An include file that looks at the user agent, compares it to a list of bot UA regexes, and sets a variable to either 0 or 1. By itself, that include file doesn’t do anything more than set that variable. This allows me to have it as a global config without having it apply to every virtual host.
-
An include file that performs the action if a variable is set to true. This has to be included in the
serverportion of each virtual host where I want the bot traffic to go to Nepenthes. If this isn’t included in a virtual host’sserverblock, then bot traffic is allowed. -
A virtual host where the Nepenthes content is presented. I run a subdomain (
content.mydomain.xyz). You could also do this as a path off of your protected domain, but this works for me and keeps my already complex config from getting any worse. Plus, it was easier to integrate into my existing bot config. Had I not already had that, I would have run it off of a path (and may go back and do that when I have time to mess with it again).
The
map-bot-user-agents.confis included in thehttpsection of Nginx and applies to all virtual hosts. You can either include this in the mainnginx.confor at the top (above theserversection) in your individual virtual host config file(s).The
deny-disallowed.confis included individually in each virtual hosts’sserversection. Even though the bot detection is global, if the virtual host’sserversection does not include the action file, then nothing is done.Files
map-bot-user-agents.conf
Note that I’m treating Google’s crawler the same as an AI bot because…well, it is. They’re abusing their search position by double-dipping on the crawler so you can’t opt out of being crawled for AI training without also preventing it from crawling you for search engine indexing. Depending on your needs, you may need to comment that out. I’ve also commented out the Python requests user agent. And forgive the mess at the bottom of the file. I inherited the seed list of user agents and haven’t cleaned up that massive regex one-liner.
# Map bot user agents ## Sets the $ua_disallowed variable to 0 or 1 depending on the user agent. Non-bot UAs are 0, bots are 1 map $http_user_agent $ua_disallowed { default 0; "~PerplexityBot" 1; "~PetalBot" 1; "~applebot" 1; "~compatible; zot" 1; "~Meta" 1; "~SurdotlyBot" 1; "~zgrab" 1; "~OAI-SearchBot" 1; "~Protopage" 1; "~Google-Test" 1; "~BacklinksExtendedBot" 1; "~microsoft-for-startups" 1; "~CCBot" 1; "~ClaudeBot" 1; "~VelenPublicWebCrawler" 1; "~WellKnownBot" 1; #"~python-requests" 1; "~bitdiscovery" 1; "~bingbot" 1; "~SemrushBot" 1; "~Bytespider" 1; "~AhrefsBot" 1; "~AwarioBot" 1; # "~Poduptime" 1; "~GPTBot" 1; "~DotBot" 1; "~ImagesiftBot" 1; "~Amazonbot" 1; "~GuzzleHttp" 1; "~DataForSeoBot" 1; "~StractBot" 1; "~Googlebot" 1; "~Barkrowler" 1; "~SeznamBot" 1; "~FriendlyCrawler" 1; "~facebookexternalhit" 1; "~*(?i)(80legs|360Spider|Aboundex|Abonti|Acunetix|^AIBOT|^Alexibot|Alligator|AllSubmitter|Apexoo|^asterias|^attach|^BackDoorBot|^BackStreet|^BackWeb|Badass|Bandit|Baid|Baiduspider|^BatchFTP|^Bigfoot|^Black.Hole|^BlackWidow|BlackWidow|^BlowFish|Blow|^BotALot|Buddy|^BuiltBotTough| ^Bullseye|^BunnySlippers|BBBike|^Cegbfeieh|^CheeseBot|^CherryPicker|^ChinaClaw|^Cogentbot|CPython|Collector|cognitiveseo|Copier|^CopyRightCheck|^cosmos|^Crescent|CSHttp|^Custo|^Demon|^Devil|^DISCo|^DIIbot|discobot|^DittoSpyder|Download.Demon|Download.Devil|Download.Wonder|^dragonfl y|^Drip|^eCatch|^EasyDL|^ebingbong|^EirGrabber|^EmailCollector|^EmailSiphon|^EmailWolf|^EroCrawler|^Exabot|^Express|Extractor|^EyeNetIE|FHscan|^FHscan|^flunky|^Foobot|^FrontPage|GalaxyBot|^gotit|Grabber|^GrabNet|^Grafula|^Harvest|^HEADMasterSEO|^hloader|^HMView|^HTTrack|httrack|HTT rack|htmlparser|^humanlinks|^IlseBot|Image.Stripper|Image.Sucker|imagefetch|^InfoNaviRobot|^InfoTekies|^Intelliseek|^InterGET|^Iria|^Jakarta|^JennyBot|^JetCar|JikeSpider|^JOC|^JustView|^Jyxobot|^Kenjin.Spider|^Keyword.Density|libwww|^larbin|LeechFTP|LeechGet|^LexiBot|^lftp|^libWeb| ^likse|^LinkextractorPro|^LinkScan|^LNSpiderguy|^LinkWalker|msnbot|MSIECrawler|MJ12bot|MegaIndex|^Magnet|^Mag-Net|^MarkWatch|Mass.Downloader|masscan|^Mata.Hari|^Memo|^MIIxpc|^NAMEPROTECT|^Navroad|^NearSite|^NetAnts|^Netcraft|^NetMechanic|^NetSpider|^NetZIP|^NextGenSearchBot|^NICErs PRO|^niki-bot|^NimbleCrawler|^Nimbostratus-Bot|^Ninja|^Nmap|nmap|^NPbot|Offline.Explorer|Offline.Navigator|OpenLinkProfiler|^Octopus|^Openfind|^OutfoxBot|Pixray|probethenet|proximic|^PageGrabber|^pavuk|^pcBrowser|^Pockey|^ProPowerBot|^ProWebWalker|^psbot|^Pump|python-requests\/|^Qu eryN.Metasearch|^RealDownload|Reaper|^Reaper|^Ripper|Ripper|Recorder|^ReGet|^RepoMonkey|^RMA|scanbot|SEOkicks-Robot|seoscanners|^Stripper|^Sucker|Siphon|Siteimprove|^SiteSnagger|SiteSucker|^SlySearch|^SmartDownload|^Snake|^Snapbot|^Snoopy|Sosospider|^sogou|spbot|^SpaceBison|^spanne r|^SpankBot|Spinn4r|^Sqworm|Sqworm|Stripper|Sucker|^SuperBot|SuperHTTP|^SuperHTTP|^Surfbot|^suzuran|^Szukacz|^tAkeOut|^Teleport|^Telesoft|^TurnitinBot|^The.Intraformant|^TheNomad|^TightTwatBot|^Titan|^True_Robot|^turingos|^TurnitinBot|^URLy.Warning|^Vacuum|^VCI|VidibleScraper|^Void EYE|^WebAuto|^WebBandit|^WebCopier|^WebEnhancer|^WebFetch|^Web.Image.Collector|^WebLeacher|^WebmasterWorldForumBot|WebPix|^WebReaper|^WebSauger|Website.eXtractor|^Webster|WebShag|^WebStripper|WebSucker|^WebWhacker|^WebZIP|Whack|Whacker|^Widow|Widow|WinHTTrack|^WISENutbot|WWWOFFLE|^ WWWOFFLE|^WWW-Collector-E|^Xaldon|^Xenu|^Zade|^Zeus|ZmEu|^Zyborg|SemrushBot|^WebFuck|^MJ12bot|^majestic12|^WallpapersHD)" 1; }deny-disallowed.conf
# Deny disallowed user agents if ($ua_disallowed) { # This redirects them to the Nepenthes domain. So far, pretty much all the bot crawlers have been happy to accept the redirect and crawl the tarpit continuously return 301 https://content.mydomain.xyz/; }
Admiral Patrick@dubvee.orgto
Selfhosted@lemmy.world•Based on this graph, and this graph alone, guess at what time I completely blocked OpenAI crawlersEnglish
169·2 months agoI was blocking them but decided to shunt their traffic to Nepenthes instead. There’s usually 3-4 different bots thrashing around in there at any given time.
If you have the resources, I highly recommend it.










I’d have to look, but I’m going with ignorance of its toxicity like with other things such as radium being used frivolously .
We painted our kids’ rooms with it, painted pencils yellow with it, used it for water lines, put it in gasoline where we then breathed the leaded fumes for decades, and more.
As for finally getting around to replacing lead water lines, well, infrastructure isn’t sexy and no one wants to pay for it.