<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-07-22T21:21:12Z</updated>
  <generator>https://njump.me</generator>

  <title>Nostr notes by Admiral Patrick</title>
  <author>
    <name>Admiral Patrick</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.me/npub1h4ud3mt096a9yu66ku8fjmdu4hc8fnt5lk4xz77g739ugc4dg75qtt2nhe.rss" />
  <link href="https://njump.me/npub1h4ud3mt096a9yu66ku8fjmdu4hc8fnt5lk4xz77g739ugc4dg75qtt2nhe" />
  <id>https://njump.me/npub1h4ud3mt096a9yu66ku8fjmdu4hc8fnt5lk4xz77g739ugc4dg75qtt2nhe</id>
  <icon>https://dubvee.org/pictrs/image/f83918d2-8812-43ba-936c-8ac3418f2bd4.webp</icon>
  <logo>https://dubvee.org/pictrs/image/f83918d2-8812-43ba-936c-8ac3418f2bd4.webp</logo>




  <entry>
    <id>https://njump.me/nevent1qqsrz0u2ju44vukjm5hs8rmlcz82ar9lmhhgrrrenl63n0zel095uyszyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sj7wwx2</id>
    
      <title type="html">Can&amp;#39;t tell if this bugs me or is genius. A lot of names get ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrz0u2ju44vukjm5hs8rmlcz82ar9lmhhgrrrenl63n0zel095uyszyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sj7wwx2" />
    <content type="html">
      Can&amp;#39;t tell if this bugs me or is genius.  A lot of names get pronounced very differently depending on the character.   I&amp;#39;m used to shows having consistent pronunciation of character names, places, etc like in Star Trek, Game of Thrones, etc.  In the show, though, it&amp;#39;s all over the place sometimes.&lt;br/&gt;&lt;br/&gt;e.g.&lt;br/&gt;&lt;br/&gt;- **Admiral Souther**:  Sowther / Suther (The character himself pronounced it &amp;#34;Suther&amp;#34; so I assume that is the correct pronunciation)&lt;br/&gt;- **Klaes Ashford**:  Kalus / Klace &lt;br/&gt;- **Marco Inaros:** In-are-ohs / Inner-ohs&lt;br/&gt;&lt;br/&gt;Does anyone know if that variation was intentional or just accidental?  I could see it either way.  If intentional, it does lend some realism since this is common IRL and may also help highlight the differences in dialects between the Earthers, Martians, and Belters.   &lt;br/&gt;&lt;br/&gt;The only instance that actually, flat-out bugged me was the same lieutenant on the Agatha King pronounced the admiral&amp;#39;s name as &amp;#34;Suther&amp;#34; in one episode and Sowther in another despite working closely with the man himself and should, thus, know how to pronounce his name correctly. 
    </content>
    <updated>2026-07-14T21:07:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsvhnu6g2xnx3j2s6322mv2vhjcedwymhd60qtm0fex0vzem046qzczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6swusp3q</id>
    
      <title type="html">Delicious grilled corn is here. Political memes are ---&amp;gt; That ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsvhnu6g2xnx3j2s6322mv2vhjcedwymhd60qtm0fex0vzem046qzczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6swusp3q" />
    <content type="html">
      Delicious grilled corn is here.    Political memes are ---&amp;gt; That Way ---&amp;gt;&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-07-09T20:52:44Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2pqxm32gm0znmctwtclpcuy5l2camgskgzcwn7uv56pzer9lkwkczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sedszuk</id>
    
      <title type="html">[YouTube](https://www.youtube.com/watch?v=Io7wofnFB_w)</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2pqxm32gm0znmctwtclpcuy5l2camgskgzcwn7uv56pzer9lkwkczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sedszuk" />
    <content type="html">
      [YouTube](&lt;a href=&#34;https://www.youtube.com/watch?v=Io7wofnFB_w&#34;&gt;https://www.youtube.com/watch?v=Io7wofnFB_w&lt;/a&gt;)
    </content>
    <updated>2026-05-03T01:09:08Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2a2phhzk3nmsvgjzv8gwhqvcl65njkq0sjmtpn08p8z5yrtwv90qzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sypn7g5</id>
    
      <title type="html">- [YouTube](https://www.youtube.com/watch?v=EK_LN3XEcnw) ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2a2phhzk3nmsvgjzv8gwhqvcl65njkq0sjmtpn08p8z5yrtwv90qzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sypn7g5" />
    <content type="html">
      - [YouTube](&lt;a href=&#34;https://www.youtube.com/watch?v=EK_LN3XEcnw&#34;&gt;https://www.youtube.com/watch?v=EK_LN3XEcnw&lt;/a&gt;)&lt;br/&gt;-[song.link](&lt;a href=&#34;https://song.link/y/EK_LN3XEcnw&#34;&gt;https://song.link/y/EK_LN3XEcnw&lt;/a&gt;)
    </content>
    <updated>2026-03-01T02:27:39Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0eev3ptp7n6es45hjgncn449yl6zsgy6ta3kdujwvnc9tphcrz4gzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6szphyle</id>
    
      <title type="html">Maybe I should flesh it out into an actual guide. The Nepenthes ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0eev3ptp7n6es45hjgncn449yl6zsgy6ta3kdujwvnc9tphcrz4gzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6szphyle" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfx7an4xp8u26u2nsnmv4zrhd7dsvxt4vmwamnkx5f09462uz6u2cds4r2e&#39;&gt;nevent1q…4r2e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Maybe I should flesh it out into an actual guide.  The Nepenthes docs are &amp;#34;meh&amp;#34; at best and completely gloss over integrating it into your stack.  &lt;br/&gt;&lt;br/&gt;You&amp;#39;ll also need to give it corpus text to generate slop from.  I used transcripts from 4 or 5 weird episodes of Voyager (let&amp;#39;s be honest:  shit got *weird* on Voyager lol), mixed with some Jack Handy quotes and a few transcripts of Married...with Children episodes.  &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://content.dubvee.org/&#34;&gt;https://content.dubvee.org/&lt;/a&gt; is where that bot traffic lands up if you want to see what I&amp;#39;m feeding them. 
    </content>
    <updated>2026-02-13T19:24:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszqnhc9gp8mueqarg94ltk8kvvpk8yzxfzu0jjulwr8jjcvl3y5ugzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s2as8df</id>
    
      <title type="html">Thanks! Mostly there&amp;#39;s three steps involved: 1) Setup ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszqnhc9gp8mueqarg94ltk8kvvpk8yzxfzu0jjulwr8jjcvl3y5ugzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s2as8df" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs03x99gnaunatmqrd7r3ngqasu82qdqp00wahz0l0gr0q26euwepgtm53mn&#39;&gt;nevent1q…53mn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks!&lt;br/&gt;&lt;br/&gt;Mostly there&amp;#39;s three steps involved:&lt;br/&gt;1)  Setup Nepenthes to receive the traffic&lt;br/&gt;2) Perform bot detection on inbound requests (I use a regex list and one is provided below)&lt;br/&gt;3) 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.&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s a rough guide I commented a while back:  &lt;a href=&#34;https://dubvee.org/comment/5198738&#34;&gt;https://dubvee.org/comment/5198738&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s the post link at lemmy.world which should have that comment visible:  &lt;a href=&#34;https://lemmy.world/post/40374746&#34;&gt;https://lemmy.world/post/40374746&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;You&amp;#39;ll have to resolve my comment link on your instance since my instance is set to private now, but in case that doesn&amp;#39;t work, here&amp;#39;s the text of it:&lt;br/&gt;&lt;br/&gt;So, I set this up recently and agree with all of your points about the actual integration being glossed over.&lt;br/&gt;&lt;br/&gt;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.&lt;br/&gt;&lt;br/&gt;Rather than trying to do rewrites and pretend the Nepenthes content is under my app&amp;#39;s URL namespace, I just do a redirect which the bot crawlers tend to follow just fine.&lt;br/&gt;&lt;br/&gt;There&amp;#39;s several parts to this to keep my config sane.  Each of those are in include files.&lt;br/&gt;&lt;br/&gt;- 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&amp;#39;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.&lt;br/&gt;&lt;br/&gt;- An include file that performs the action if a variable is set to true.  This has to be included in the `server` portion of each virtual host where I want the bot traffic to go to Nepenthes. If this isn&amp;#39;t included in a virtual host&amp;#39;s `server` block, then bot traffic is allowed.&lt;br/&gt;&lt;br/&gt;- 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).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The `map-bot-user-agents.conf` is included in the `http` section of Nginx and applies to all virtual hosts.  You can either include this in the main `nginx.conf` or at the top (above the `server` section) in your individual virtual host config file(s).&lt;br/&gt;&lt;br/&gt;The `deny-disallowed.conf` is included individually in each virtual hosts&amp;#39;s `server` section. Even though the bot detection is global, if the virtual host&amp;#39;s `server` section does not include the action file, then nothing is done.&lt;br/&gt;&lt;br/&gt;#### Files&lt;br/&gt;:::spoiler map-bot-user-agents.conf&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Note that I&amp;#39;m treating Google&amp;#39;s crawler the same as an AI bot because....well, it is.  They&amp;#39;re abusing their search position by double-dipping on the crawler so you can&amp;#39;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&amp;#39;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&amp;#39;t cleaned up that massive regex one-liner.&lt;br/&gt;&lt;br/&gt;```nginx&lt;br/&gt;# Map bot user agents&lt;br/&gt;## Sets the $ua_disallowed variable to 0 or 1 depending on the user agent. Non-bot UAs are 0, bots are 1&lt;br/&gt;&lt;br/&gt;map $http_user_agent $ua_disallowed {&lt;br/&gt;    default 		0;&lt;br/&gt;    &amp;#34;~PerplexityBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~PetalBot&amp;#34;		1;&lt;br/&gt;    &amp;#34;~applebot&amp;#34;		1;&lt;br/&gt;    &amp;#34;~compatible; zot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~Meta&amp;#34;		1;&lt;br/&gt;    &amp;#34;~SurdotlyBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~zgrab&amp;#34;		1;&lt;br/&gt;    &amp;#34;~OAI-SearchBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~Protopage&amp;#34;	1;&lt;br/&gt;    &amp;#34;~Google-Test&amp;#34;	1;&lt;br/&gt;    &amp;#34;~BacklinksExtendedBot&amp;#34; 1;&lt;br/&gt;    &amp;#34;~microsoft-for-startups&amp;#34; 1;&lt;br/&gt;    &amp;#34;~CCBot&amp;#34;		1;&lt;br/&gt;    &amp;#34;~ClaudeBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~VelenPublicWebCrawler&amp;#34;	1;&lt;br/&gt;    &amp;#34;~WellKnownBot&amp;#34;	1;&lt;br/&gt;    #&amp;#34;~python-requests&amp;#34;	1;&lt;br/&gt;    &amp;#34;~bitdiscovery&amp;#34;	1;&lt;br/&gt;    &amp;#34;~bingbot&amp;#34;		1;&lt;br/&gt;    &amp;#34;~SemrushBot&amp;#34; 	1;&lt;br/&gt;    &amp;#34;~Bytespider&amp;#34; 	1;&lt;br/&gt;    &amp;#34;~AhrefsBot&amp;#34; 	1;&lt;br/&gt;    &amp;#34;~AwarioBot&amp;#34;	1;&lt;br/&gt;#    &amp;#34;~Poduptime&amp;#34; 	1;&lt;br/&gt;    &amp;#34;~GPTBot&amp;#34; 		1;&lt;br/&gt;    &amp;#34;~DotBot&amp;#34;	 	1;&lt;br/&gt;    &amp;#34;~ImagesiftBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~Amazonbot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~GuzzleHttp&amp;#34; 	1;&lt;br/&gt;    &amp;#34;~DataForSeoBot&amp;#34; 	1;&lt;br/&gt;    &amp;#34;~StractBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~Googlebot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~Barkrowler&amp;#34;	1;&lt;br/&gt;    &amp;#34;~SeznamBot&amp;#34;	1;&lt;br/&gt;    &amp;#34;~FriendlyCrawler&amp;#34;	1;&lt;br/&gt;    &amp;#34;~facebookexternalhit&amp;#34; 1;&lt;br/&gt;    &amp;#34;~*(?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|&lt;br/&gt;^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&lt;br/&gt;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&lt;br/&gt;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|&lt;br/&gt;^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&lt;br/&gt;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&lt;br/&gt;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&lt;br/&gt;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&lt;br/&gt;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|^&lt;br/&gt;WWWOFFLE|^WWW-Collector-E|^Xaldon|^Xenu|^Zade|^Zeus|ZmEu|^Zyborg|SemrushBot|^WebFuck|^MJ12bot|^majestic12|^WallpapersHD)&amp;#34; 1;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;:::&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;:::spoiler deny-disallowed.conf&lt;br/&gt;```nginx&lt;br/&gt;# Deny disallowed user agents&lt;br/&gt;if ($ua_disallowed) { &lt;br/&gt;    # 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 &lt;br/&gt;	return 301 &lt;a href=&#34;https://content.mydomain.xyz/&#34;&gt;https://content.mydomain.xyz/&lt;/a&gt;;&lt;br/&gt;}&lt;br/&gt;```&lt;br/&gt;:::&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2026-02-13T17:25:46Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspphqymdemfaallturefl4sdzn0xus9car5kd0fuaqrce42h3amdczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6slzqh0c</id>
    
      <title type="html">I was blocking them but decided to shunt their traffic to ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspphqymdemfaallturefl4sdzn0xus9car5kd0fuaqrce42h3amdczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6slzqh0c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsth9u3vpc6dtsc60sd6p3zrxrqf4st7pm82p8wjquydlezk2mx59q9ddwf4&#39;&gt;nevent1q…dwf4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I was blocking them but decided to shunt their traffic to Nepenthes instead.  There&amp;#39;s usually 3-4 different bots thrashing around in there at any given time.&lt;br/&gt;&lt;br/&gt;If you have the resources, I highly recommend it. 
    </content>
    <updated>2026-02-13T16:35:01Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsx96k0ce2zyfnshuq0qrvl9dd74t2jf5y2xgg53qhfgzulg9fgcmczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sevpzw7</id>
    
      <title type="html">**California residents who lit illegal fireworks over the July 4 ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsx96k0ce2zyfnshuq0qrvl9dd74t2jf5y2xgg53qhfgzulg9fgcmczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sevpzw7" />
    <content type="html">
      **California residents who lit illegal fireworks over the July 4 holiday may be in for a nasty surprise in the mail thanks to covert fire department operations.**&lt;br/&gt;&lt;br/&gt;A number of California cities, including Sacramento, have begun using drones to locate people shooting off illegal fireworks. From Wednesday to Saturday night, the Sacramento Fire Department’s special fireworks task force patrolled the streets with unmarked cars and drones, focusing on neighborhoods where they’ve had prior complaints. Task force officers and the drones took photos of the illegal activity, and within 30 days the property owner where the fireworks were used could receive a fine in the mail.
    </content>
    <updated>2025-07-07T02:08:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszthzyvlswxn9mnv03t0d7q9pt98lqedlrlhag42unruel222wd7szyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s0d98nq</id>
    
      <title type="html">Waited *weeks* for this and was so excited it finally arrived ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszthzyvlswxn9mnv03t0d7q9pt98lqedlrlhag42unruel222wd7szyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s0d98nq" />
    <content type="html">
      Waited *weeks* for this and was so excited it finally arrived today.  Unboxed it, put it on charge, and....nothing.  Won&amp;#39;t boot up, no signs of life.  He&amp;#39;s dead, Jim.&lt;br/&gt;&lt;br/&gt;Now I have to send it back and wait who knows how long if I want a replacement.  Probably just going to ask for a refund; I can&amp;#39;t wait another 4-6 weeks or wait for one to ship from the September batch.  Ugh!&lt;br/&gt;&lt;br/&gt;Mildly infuriating, highly disappointing. 
    </content>
    <updated>2025-07-06T02:08:40Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqzvdgkhh84zgnwd8y7se2x0p4nnn2eu2elp0jj3zkacrs5avpx6qzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s68hcwq</id>
    
      <title type="html">TNG 6x24: Second Chances Ok, she said &amp;#34;Night Bird&amp;#34; but ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqzvdgkhh84zgnwd8y7se2x0p4nnn2eu2elp0jj3zkacrs5avpx6qzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s68hcwq" />
    <content type="html">
      TNG 6x24: Second Chances&lt;br/&gt;&lt;br/&gt;Ok, she said &amp;#34;Night Bird&amp;#34; but same energy. &lt;br/&gt;&lt;br/&gt;It also helps to imagine that scene, but with this voice:&lt;br/&gt;&lt;br/&gt;![]( &lt;img src=&#34;https://dubvee.org/pictrs/image/78205552-fc49-49a1-9e4f-9c24ceb77bdb.webp&#34;&gt; )
    </content>
    <updated>2025-07-05T19:36:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgzyzgrclyca0ccv69erxm59u5d8mahm2u53uy0ykzay9c66hydsgzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s69e7dm</id>
    
      <title type="html">Dog-piling is when someone expresses an opinion and people swarm ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgzyzgrclyca0ccv69erxm59u5d8mahm2u53uy0ykzay9c66hydsgzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s69e7dm" />
    <content type="html">
      Dog-piling is when someone expresses an opinion and people swarm in the comments telling the OC how wrong they are and how right *they* are.  Typically the person getting dogpiled is downvoted into oblivion in the process. Note that I&amp;#39;m not talking about anything controversial in their opinion or the comment being trolling in any way; just any general disagreement with the groupthink.&lt;br/&gt;&lt;br/&gt;**Brief example**:&lt;br/&gt;```&lt;br/&gt;User 1:  There are lots of factors at play here, not just money.  There&amp;#39;s X, Y, Z, and those are all independent from money.&lt;br/&gt;  |____&amp;gt; User 2: No, it&amp;#39;s money.  It&amp;#39;s always money&lt;br/&gt;  |______&amp;gt;  User 4: Right?  How can anyone think it&amp;#39;s anything *but* money?  Some people!&lt;br/&gt;  |____&amp;gt; User 3: Yes, well, X, Y, and Z wouldn&amp;#39;t be a problem if not for capitalism, so it&amp;#39;s definitely money, and you&amp;#39;re wrong.&lt;br/&gt;  |____&amp;gt; User 5: It all boils down to money; always does.&lt;br/&gt;  |____&amp;gt; User 6: Of course it&amp;#39;s money.  Only a capitalist bootlicker would think otherwise.&lt;br/&gt;  |____&amp;gt; User 7: Go back to Reddit, troll.&lt;br/&gt;  |____&amp;gt; User 8: You&amp;#39;re so close, but it&amp;#39;s money.  &lt;br/&gt;  ...&lt;br/&gt;  |____&amp;gt; User 999: (Same as the last 998 comments; contributes nothing except attacking the opinion for being different)&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;None of that adds anything to the discussion; they&amp;#39;re not engaging on the subject, just attacking the opinion because it differs.  &lt;br/&gt;&lt;br/&gt;That behavior does not seem healthy to me and seems like it&amp;#39;s almost designed to discourage anyone from expressing any opinion that&amp;#39;s not part of the established group think.  Again, I am not talking about trolls here, just any kind of differing opinions.&lt;br/&gt;&lt;br/&gt;Should that kind of behavior be discouraged?  If so, as a mod, what would be the best way to address it?  After the 2nd or 3rd dogpile comment, start removing subsequent ones that are just piling on?  &lt;br/&gt;&lt;br/&gt;It&amp;#39;s definitely a people problem, so I&amp;#39;m curious what would be a gentle but firm way to deal with it. 
    </content>
    <updated>2025-06-25T17:30:32Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0m0xwvmygwymfza5gx4zwp7ufqgvhyqc3h295ltpu9ar0gdwkswqzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sdwwwap</id>
    
      <title type="html">Fake bans aren&amp;#39;t a thing, but banning from an instance ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0m0xwvmygwymfza5gx4zwp7ufqgvhyqc3h295ltpu9ar0gdwkswqzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sdwwwap" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs28txf700qlr6v66cfr39zpxlx7yp4em07ewcqxhf7m4csvnuewqqm776hf&#39;&gt;nevent1q…76hf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Fake bans aren&amp;#39;t a thing, but banning from an instance doesn&amp;#39;t necessarily ban them from all communities (just the ones they&amp;#39;ve interact with up to the time of the ban).&lt;br/&gt;&lt;br/&gt;This means someone on instance B, who is banned from instance A, can still interact with communities on instance A via instance B if instance B was not informed the person was banned from the community.&lt;br/&gt;&lt;br/&gt;However, a user from instance B, banned from instance A, interacting with a community on instance A via instance B will not have their content federated via instance A (the home instance of the community).  Thus, only other users on instance B should be able to see that user&amp;#39;s submissions.&lt;br/&gt;&lt;br/&gt;Clear as mud? &lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2025-04-07T20:47:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsq2f4l6426x8c6mlkm2qzq0xv00ucwcqcgmj6s6v4h3cmg3nn699czyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6swghxum</id>
    
      <title type="html">Ugh. I&amp;#39;ve already decided I&amp;#39;m not going to 1.0, so if ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsq2f4l6426x8c6mlkm2qzq0xv00ucwcqcgmj6s6v4h3cmg3nn699czyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6swghxum" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqycvj7qqjq6fsy0hv6mxae39jx5xg86jfesgwh0lk2ndj63mlu5ss4rgkw&#39;&gt;nevent1q…rgkw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ugh.  I&amp;#39;ve already decided I&amp;#39;m not going to 1.0, so if it&amp;#39;s not in 0.19.10  maybe I&amp;#39;ll patch it in myself until I figure out a way to move my instance to Piefed.
    </content>
    <updated>2025-03-16T18:27:54Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsztc63qnxejd7a24nd5f8wqj97x2kv5ewfvdv70pvk98cc02v3jggzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sknqp3r</id>
    
      <title type="html">Upgraded my instance from 0.19.3 to 0.19.9 today, and fetching ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsztc63qnxejd7a24nd5f8wqj97x2kv5ewfvdv70pvk98cc02v3jggzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sknqp3r" />
    <content type="html">
      Upgraded my instance from 0.19.3 to 0.19.9 today, and fetching metadata for Youtube videos no longer works.   Worked perfectly on 0.19.3 as of 3 hours ago (pre-upgrade).&lt;br/&gt;&lt;br/&gt;This is how it&amp;#39;s supposed to look:&lt;br/&gt;&lt;br/&gt;![]( &lt;img src=&#34;https://dubvee.org/pictrs/image/3e44b031-bd9b-4fdc-aa91-1b5a59708d88.webp&#34;&gt; )&lt;br/&gt;&lt;br/&gt;Good job, lemmy devs! 👍
    </content>
    <updated>2025-03-16T18:07:49Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsvkzuux7kacqh99g8t3ud3npcj98w2r0du86d775ng4xhmtxs9ntszyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6swhzmtg</id>
    
      <title type="html">Developers: I will never *ever* do that, *no one* should *ever* ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsvkzuux7kacqh99g8t3ud3npcj98w2r0du86d775ng4xhmtxs9ntszyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6swhzmtg" />
    <content type="html">
      Developers:  I will never *ever* do that, *no one* should *ever* do that, and you should be ashamed for guiding people to.    I get that you want to make things easy for end users, but at least exercise some bare minimum common sense.&lt;br/&gt;&lt;br/&gt;The worst part is that `bun` is just a single binary, so the install script is bloody pointless.  &lt;br/&gt;&lt;br/&gt;Bonus mildly infuriating is the mere existence of the `.sh` TLD. &lt;br/&gt;&lt;br/&gt;**Edit b/c I&amp;#39;m not going to answer the same goddamned questions 100 times from people who blindly copy/paste the *question* from StackOverflow into their code/terminal:**&lt;br/&gt;&lt;br/&gt;&amp;gt; WhY iS ThaT woRSe thAn jUst DoWnlOADing a BinAary???&lt;br/&gt;&lt;br/&gt;1) Downloading the compiled binary from the release page (if you don&amp;#39;t want to build yourself) has been a way to acquire software since shortly after the dawn of time. You already know what you&amp;#39;re getting yourself into&lt;br/&gt;1) There are SHA256 checksums of each binary file available in each release on Github. You can confirm the binary was not tampered with by comparing a locally computed checksum to the value in the release&amp;#39;s checksums file.&lt;br/&gt;1) Binaries can also be signed (not that signing keys have never leaked, but it&amp;#39;s still one step in the chain of trust)&lt;br/&gt;1) The install script they&amp;#39;re telling you to pipe is not hosted on Github. A misconfigured / compromised server can allow a bad actor to tamper with the install script that gets piped directly into your shell. The domain could also lapse and be re-registered by a bad actor to point to a malicious script. Really, there&amp;#39;s lots of things that can go wrong with that.&lt;br/&gt;&lt;br/&gt;The point is that it is bad practice to just pipe a script to be directly executed in your shell. Developers should not normalize that bad practice.&lt;br/&gt;
    </content>
    <updated>2025-02-19T00:04:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0uq94h3kkj6yf9wgxjc3ddcgf06tn6cyazxxynk69jp29y0lyk8czyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sujvjzf</id>
    
      <title type="html">I&amp;#39;m....speechless and all out of snark on this one. This is ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0uq94h3kkj6yf9wgxjc3ddcgf06tn6cyazxxynk69jp29y0lyk8czyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6sujvjzf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsphxtyxscrpku0ydec0awxl6ggqtxu78wqlnech7uxr04swpntlpgsn9kfu&#39;&gt;nevent1q…9kfu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m....speechless and all out of snark on this one.  This is fucking horrifying. &lt;br/&gt;&lt;br/&gt;Single-issue voters who threw their vote away or sat out and did not help stop this, well, hope you&amp;#39;re happy with your choices. 
    </content>
    <updated>2025-02-09T01:52:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsy45h479fav4ts852dqxspyhvlm000zw3lk69nqawa6a2ck8v2vcczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s2qvh3f</id>
    
      <title type="html">I&amp;#39;m unfamiliar with Clubsall. Is it pulling them via ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsy45h479fav4ts852dqxspyhvlm000zw3lk69nqawa6a2ck8v2vcczyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s2qvh3f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0q70rdtmntjdxglz3frr6ugd83femrf7t7wgz2spmr64syvjqy3qfz32p6&#39;&gt;nevent1q…32p6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m unfamiliar with Clubsall.  Is it pulling them via federation or fetching via API?  Would defederating work?  I appear to have already defederated, likely in response to your earlier post, but not sure if that does anything.  And that only stops them from pulling content from my instance, not what I posted to any other.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2024-12-12T23:20:05Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9sy64apnl59demn8y09xlkm0e8ecyej6e780260jcvddh83jqslgzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s52tp4w</id>
    
      <title type="html">**Context**: [30 Rock: ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9sy64apnl59demn8y09xlkm0e8ecyej6e780260jcvddh83jqslgzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6s52tp4w" />
    <content type="html">
      **Context**:  [30 Rock: Homonym](&lt;a href=&#34;https://www.youtube.com/watch?v=WZLkcFns8Ks&#34;&gt;https://www.youtube.com/watch?v=WZLkcFns8Ks&lt;/a&gt;) - A fake game show where the host says a homonym (stare/stair, meet/meat, etc), and the contestant has to guess the right word.  It&amp;#39;s *always* the other one. &lt;br/&gt;&lt;br/&gt;Inspired from [this post](&lt;a href=&#34;https://feddit.org/post/5379286&#34;&gt;https://feddit.org/post/5379286&lt;/a&gt;)
    </content>
    <updated>2024-12-05T02:59:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2rxjj2mjm2y2pdlfqhn7s764vsltnqkxwzavnarhn64pdc2vckfqzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6spvn86y</id>
    
      <title type="html">&amp;gt; People in a quiet neighborhood in Carthage, a town in Moore ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2rxjj2mjm2y2pdlfqhn7s764vsltnqkxwzavnarhn64pdc2vckfqzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6spvn86y" />
    <content type="html">
      &amp;gt; People in a quiet neighborhood in Carthage, a town in Moore County, North Carolina, heard a series of six loud pops a few minutes before 8:00 p.m. on Dec. 3, 2022. A resident named Michael Campbell said he ducked at the sound. Another witness told police they thought they were hearing fireworks. **The noise turned out to be someone shooting a rifle at a power substation next door to Campbell&amp;#39;s home.** The substation, operated by the utility Duke Energy Corp., consists of equipment that converts electricity into different voltages as it&amp;#39;s transported to the area and then steered into individual houses. The shots hit the radiator of an electrical transformer, a sensitive piece of technology whose importance would likely be understood only by utility company employees. It began dumping a &amp;#34;vast amount&amp;#34; of oil, according to police reports. A subsequent investigation has pointed to a local right-wing group, one of a wave of attacks or planned attacks on power infrastructure.&lt;br/&gt;&lt;br/&gt;&amp;gt; By 8:10 the lights in Carthage went out. Minutes later, a security alarm went off at a Duke Energy substation 10 miles away, this one protected from view by large pine trees. When company personnel responded, they found that someone had shot its transformer radiator, too. Police found shell casings on the ground at the site and noticed someone had slashed the tires on nearby service trucks. The substations were designed to support each other, with one capable of maintaining service if the other went down. Knocking out both facilities prevented the company from rerouting power. Police described the two incidents as a coordinated attack. About 45,000 families and businesses remained dark for four days. This was a burden for area grocery stores and local emergency services. One woman, 87-year-old Karin Zoanelli, died in the hours after the shooting when the blackout caused her oxygen machine to stop operating. The North Carolina Medical Examiner&amp;#39;s office classified the death as a homicide.&lt;br/&gt;&lt;br/&gt;&amp;gt; The attack on Duke&amp;#39;s facilities in Moore County remains unsolved, but **law enforcement officials and other experts suspect it&amp;#39;s part of a rising trend of far-right extremists targeting power infrastructure in an attempt to sow chaos. The most ambitious of these saboteurs hope to usher in societal collapse, paving the way for the violent overthrow of the US government, according to researchers who monitor far-right communities.** &lt;br/&gt;&lt;br/&gt;&amp;gt; Damaging the power grid has long been a fixation of right-wing extremists, who have plotted such attacks for many years. They&amp;#39;ve been getting a boost recently from online venues such as &amp;#34;Terrorgram,&amp;#34; a loose network of channels on the social media platform Telegram where users across the globe advocate violent white supremacism. In part, people use Terrorgram to egg one another on -- a viral meme shows a stick figure throwing a Molotov cocktail at electrical equipment. People on the forum have also seized on recent anti-immigration riots in the UK, inciting people there to clash with police. In June 2022, months before the Moore County shootings, users on the forum began offering more practical support in the form of a 261-page document titled &amp;#34;Hard Reset,&amp;#34; which includes specific directions on how to use automatic weapons, explosives and mylar balloons to disrupt electricity. One of the document&amp;#39;s suggestions is to shoot high-powered firearms at substation transformers.&lt;br/&gt;&lt;br/&gt;- [MBFC](&lt;a href=&#34;https://mediabiasfactcheck.com/bloomberg/&#34;&gt;https://mediabiasfactcheck.com/bloomberg/&lt;/a&gt;)&lt;br/&gt;- [Archive](&lt;a href=&#34;https://archive.ph/YGmmf&#34;&gt;https://archive.ph/YGmmf&lt;/a&gt;)
    </content>
    <updated>2024-08-27T18:12:51Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsz0rjedy3l35p6heu9z3g8x6am94wyy9nfmttv0kwgf8p64qe3zygzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6syyg97a</id>
    
      <title type="html">cross-posted from: ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsz0rjedy3l35p6heu9z3g8x6am94wyy9nfmttv0kwgf8p64qe3zygzyz7h3k8dduht55nnt2msaxtdhjklqaxdwn765ctmer6yh3rz44r6syyg97a" />
    <content type="html">
      cross-posted from: [dubvee.org/post/1381314](&lt;a href=&#34;https://dubvee.org/post/1381314&#34;&gt;https://dubvee.org/post/1381314&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# &lt;br/&gt;&lt;br/&gt;Changelog for 1.4.x Series (Intrepid)&lt;br/&gt;## &lt;br/&gt;&lt;br/&gt;1.4.0&lt;br/&gt;This is the first release which completely drops “legacy” support for 0.18.x and below.  The minimum required API level is now 0.19.3 (though it will work with any 0.19.x series, there will be broken features that require 0.19.3).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;None of the 0.19.4 features are implemented yet.  Updating my instance to 0.19.4 is not on my priority list at the moment, though I *really* wished the media listing was present when I added the new media handling stuff.  :sigh:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I’ll probably be working on the 0.19.4 features sometime soon as I would like to finish what I had in mind for the media handling, and 0.19.4 provides the missing piece.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Anyway, here’s what’s new and improved:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;New Features&lt;br/&gt;&amp;lt;summary&amp;gt;Zoomable Images&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Most images are now zoomable:  post images, user/site/community avatars, images posted in comments, etc.&amp;lt;br&amp;gt;&lt;br/&gt;All the pan/zoom libraries I tried &amp;lt;em&amp;gt;suuuuuuucked&amp;lt;/em&amp;gt;, so I ended up rolling my own from scratch. The pinch zoom isn’t &amp;lt;em&amp;gt;quite&amp;lt;/em&amp;gt; where I want it, but it’s a start.  If anyone wants to contribute some code for improving that, please let me know.&amp;lt;br&amp;gt;&lt;br/&gt;- Support zoom, pan, and rotate&lt;br/&gt;- Mouse scroll to zoom&lt;br/&gt;- Click/grab to pan&lt;br/&gt;- Rotate via on-screen buttons&lt;br/&gt;- Double-click to quick zoom in/out by 2x&lt;br/&gt;- Gesture support&lt;br/&gt;- Pinch zoom in/out&lt;br/&gt;- Swipe up to zoom in&lt;br/&gt;- Swipe down to zoom out&lt;br/&gt;- Swipe left or right to close the zoom modal&lt;br/&gt;- Other gestures may be added once I figure out a clean way to differentiate them from conflicting mouse events&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Basic Gesture Support&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;First, I should point out that I am &amp;lt;em&amp;gt;not&amp;lt;/em&amp;gt; a fan of gesture navigation; absolutely hate it as a primary method of interaction.  I’m old and hate having to guess whether my fingers need to do the Macarena or the Hokey-Pokey to perform what &amp;lt;em&amp;gt;should be&amp;lt;/em&amp;gt; an intuitive action.&lt;br/&gt;That said, I &amp;lt;em&amp;gt;do&amp;lt;/em&amp;gt; like waving things (and people) away.&lt;br/&gt;To that end, I’ve added some gesture recognition in a few places, mostly modals.  Any modal can now be dismissed with a left or right swipe in an area not bound by other event handlers.&lt;br/&gt;- e.g.  You can’t swipe in the text field to dismiss an edit/report/ban/remove modal; you have to swipe outside of that.&lt;br/&gt;- Left/right swipe was chosen as to not interfere with scrolling so it could be used consistently across all modal types.&lt;br/&gt;The only other place, currently, with gesture support is the image zoom modal (described above).&lt;br/&gt;I may add some additional swipe actions where it’s intuitive to do so.  For now, I’m content with modals being easier to dismiss on mobile without having to reach up to the close button in the top corner.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;User Profile Modals&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Clicking on usernames throughout the application will now load a modal with their user card and relevant action buttons. Old behavior was taking you to their profile directly.&amp;lt;br&amp;gt;&lt;br/&gt;Actions include:&lt;br/&gt;- Go to profile&lt;br/&gt;- Message in Lemmy / Matrix&lt;br/&gt;- Block User&lt;br/&gt;- Search for alts / simiarly-named accounts&lt;br/&gt;- Ban user from instance (admins only)&lt;br/&gt;- View user on their home instance&lt;br/&gt;- Copy Lemmyverse link for user&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Image Management on  Posts/Comments (Paste Images into Post URL and Markdown Editor)&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;- Images can be pasted in the post’s URL field as well as in the markdown editor.&amp;lt;br&amp;gt;&lt;br/&gt;- Images can optionally be pre-processed to webP along with a user-selectable quality level. Especially useful if your instance limits the size of uploads&lt;br/&gt;- Can delete post images (only before you save the post; unfortunately there’s no way to retrieve the delete token after that even though it is stored in the DB. Yet another API limitation :sigh:)&lt;br/&gt;- This is addressed in 0.19.4, but I don’t have support for that yet.&lt;br/&gt;- Images pasted/uploaded into the markdown editor are tracked in a bar along the bottom of the editor. Individual images can be deleted as needed along with the corresponding markdown code for them.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Hide Posts/Comments From New Users&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;In App Settings -&amp;amp;gt; Filters, you can now opt to hide posts/comments made by new users.  You can also set the number of days an account is considered new: 1 to 30 days.  That setting also is applied to the new user badges (if you set the minimum age to 15 days, any account 15 days or younger will show the new user badge).&lt;br/&gt;This setting behaves differently for mods and admins:&lt;br/&gt;- &amp;lt;strong&amp;gt;Mods&amp;lt;/strong&amp;gt;:  Filter will be applied to all posts/comments &amp;lt;em&amp;gt;except&amp;lt;/em&amp;gt; in communities of which you are a moderator.&lt;br/&gt;- &amp;lt;strong&amp;gt;Admins&amp;lt;/strong&amp;gt;:  Filter will be applied to all posts/coments &amp;lt;em&amp;gt;except&amp;lt;/em&amp;gt; those made to communities local to your instance or those made to remote communities of which you are a moderator.&lt;br/&gt;Comments made by new users will be hidden, and that includes any replies (essentially behaves the same way as blocked users)&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Federation State Viewer&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;From the instances menu on a post, there’s a new option called “Federation Stats” which will show you the stats from your instance to the target &amp;lt;em&amp;gt;and&amp;lt;/em&amp;gt; from the target to your instance.  Also included in that is an estimated cacluation of the number of activities each instance is behind (useful for troubleshooting federation delays).&lt;br/&gt;This information has also been added to the instance items at &amp;lt;code&amp;gt;/instances&amp;lt;/code&amp;gt;&lt;br/&gt;Please note that the “Activities behind” counter is only an estimate. The value for &amp;lt;code&amp;gt;newest_activity_id&amp;lt;/code&amp;gt; is not provided by the API (because that would be useful, so why would the Lemmy devs include it?), so it has to be estimated.  The estimation is done by looking at the &amp;lt;code&amp;gt;last_successful_id&amp;lt;/code&amp;gt; of all the linked instances and grabbing the highest number and subtracting the &amp;lt;code&amp;gt;last_successful_id&amp;lt;/code&amp;gt; for the selected instance.  Not all of those activities would necessarily be coming to your instance (votes/posts/comments to communities yours isn’t subscribed to, etc), so it is merely an estimation.  Just because it shows you are behind by &amp;lt;em&amp;gt;X&amp;lt;/em&amp;gt; number doesn’t necessarily mean it’s behind by that many.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Instances Page&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Re-wrote this to do manual pagination, searching, and filtering.  &amp;lt;em&amp;gt;Much&amp;lt;/em&amp;gt; more responsive now that it is not rendering several thousand components each with actions items.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;&amp;#34;Click to Play&amp;#34; Media Embeds&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;If media is disabled in the feed, the thumbnail will now have an overlay button that will convert it to an embed on-the-fly.&amp;lt;br&amp;gt;&lt;br/&gt;When loading a video via click-to-play, I’m conditionally setting the “autoplay” flag where the embed API supports it, but it doesn’t always seem to be honored.  This is an attempt to not have to press “play” twice for a video.  So far, the only video frontend that seems to honor it is YouTube. Invidious/Piped, so far, do not, and neither does PeerTube.&amp;lt;br&amp;gt;&lt;br/&gt;Ok, so autoplay works if muted (no idea how YouTube’s player gets around this; probably some chicanery).  I think that’s worse because you still have to click twice on the videos,  and the “unmute” button is harder to reach than “play”.  So I think I’m going to just settle on having to click play twice.&lt;br/&gt;This seems to be be a Chrome/Chromium thing (and explains why YT gets to bypass this).  In Firefox, the autoplay flag is respected without having to mute the video.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Re-Integrated Piped Support as an Embeddable Youtube Frontend&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Now that click to play has been added, Piped support has been added back. It was removed due to poor performance and rate limiting when used with feed embeds.&amp;lt;br&amp;gt;&lt;br/&gt;If media embeds are enabed in the feed, only YouTube frontend will show direct embeds. Piped/Invidious will always be click to play regardless of embed setting due to above mentioned rate limiting / performance.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Alternate Source Dropdown / Archive Links&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Removed the &amp;lt;code&amp;gt;[Archive Link]&amp;lt;/code&amp;gt; next to the post URL and replacd it with a fancy menu to the left of it.&lt;br/&gt;- On posts with links, it currently has buttons to search for the article at Archive Today, Ghost Archive, and 12ft.io&lt;br/&gt;- On Youtube-like posts, can select alternalte links for YouTube, Invidious, or Piped&lt;br/&gt;- Invidious/Piped will open with your preferred instance (defined in settings)&lt;br/&gt;- Useful if someone posts a video to an Invidious instance that performs poorly for you and you would prefer to view it on your preferred Invidious/Piped instance or canonically on YouTube.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Quick Action Menus&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;On mobile, the navbar was getting cluttered, so most of the discrete dropdowns there have been moved into Quick Actions menus.&lt;br/&gt;- Main, Community, and User feed pages:  Quick Actions has replaced all discrete menus&lt;br/&gt;- Search Page, Modlog, instances page, and Community Browser:  All of the filtering options are in a quick action menu&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Users Can Now Add Their Own Preferred Invidious/Piped Instances&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Prior to this release, any Piped or Invidious instances needed to be added by the administrator via environment variables.  In addition to that, users can now add any number of custom Invidious and/or Piped instances in the app settings.&lt;br/&gt;These will be combined with the built-in list and the admin-extended list and be available for use as your preferred YT frontend and for detection of Piped/Invidious links in posts.&lt;br/&gt;Be aware that those custom instances will only render as embeds for you; they will be thumbnails for anyone else who hasn’t added them to Tesseract.  If you feel that instance should be added to Tesseract’s built-in list, please submit a Github issue with the details.&lt;br/&gt;Tesseract is pre-populated with the official list of public instances for each, but it can get out of date easily.&lt;br/&gt;&amp;lt;strong&amp;gt;Note&amp;lt;/strong&amp;gt;:  As of 6/20/2024, I’ve noticed a lot of Invidious/Piped instances are now requiring login, and embeds through them no longer work.  I believe if you have an account with one, log in, and enable 3rd party cookies for that domain, the embeds &amp;lt;em&amp;gt;should&amp;lt;/em&amp;gt; work.  I have not tried that, but it does work with Spotify.  This isn’t a Tesseract bug, unfortunately, or I’d fix it.&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Can Disable Infinite Scroll if you Want&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;If you’re not a fan of the infinite scroll, you can go to App Settings -&amp;amp;gt; Feed and disable infinite scroll.&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;TOTP 2FA Setup&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Can now enable and enroll in 2FA as well as disable it.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Account Icons Now Use Your Profile Avatar&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Icons in the account switcher and account screens now sync to your profile avatar, if defined.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;New Placeholder User Avatars&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Instead of the initials as used previously on accounts without avatars, now uses Dicebear Adventurer pseudorandom avatars.  Initials are still used for placeholder community icons when the community mods haven’t set one.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Passwords Can Now Be Revealed&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;All password elements will now allow you to toggle them to reveal. Should make a big improvement when logging-in on mobile.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Vote Viewer (Admins Only)&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;Admins can now see votes like in Lemmy-UI.  Uses infinite scroll and deduplication to compensate for the stupid API that returns multiple/duplicate votes on each page.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;Bugfixes and Enhancements&lt;br/&gt;&amp;lt;summary&amp;gt;Removed 0.18.x Backwards Compatibility&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;- Or, more specifically, removed 0.18.x JS client and the extensions I wrote to make that compatible with 0.19.x.  Now uses the 0.19.3 JS client.&lt;br/&gt;- Removed the image upload proxy which was needed in 0.18x due to CORS restrictions.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Various Enhancements to Auth Module.&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;- Added safety check so that the auth token is only ever sent to the profile’s associated instance and cannot accidentally send to non-home instance (e.g. when browsing communities on a remote instance).&lt;br/&gt;- Fixed a few chicken/egg situations where the profile store needed to be accessed before it was initialized&lt;br/&gt;- If your auth token is invalid, such as after changing your password on another device, you will get a toast message you can click to take you to the login screen.&lt;br/&gt;- If a profile exists for a username/instance combo, logging in will update the auth token for that existing profile rather than creating a new one.&lt;br/&gt;- User avatars are now fetched when logging in.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Grace Period Before Media Embeds are Destroyed When Scrolling out of Viewport&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;- Embeds now have a short timeout when leaving the viewport before they’re removed from the DOM and turn back into thumbnails.  Fixes annoyance when resizing the window while a video is playing and the video temporarily leaves the viewport and is destroyed. Timeout is 2 seconds and will reset/disarm if the post returns to the viewport before it expires.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;Community Creation / Editing&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;- Uses new upload handler for banner/icon&lt;br/&gt;- Can pre-process the banner/icon to webP before uploading&lt;br/&gt;- Shows a live preview of how the community card will look&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;summary&amp;gt;General&amp;lt;/summary&amp;gt;&amp;lt;p&amp;gt;- Slightly darkened background color in light mode cards (bg-white-&amp;amp;gt;bg-slate-100) for better contrast. Did similarly for some button colors&lt;br/&gt;- Added “OpenDyslexic” as a UI font option&lt;br/&gt;- Can now close modals with Escape key, close button, or by swiping left/right&lt;br/&gt;- Added button to reveal password fields&lt;br/&gt;- Some modals can be closed by clicking out of them.&lt;br/&gt;- I need to disable this or make it more consistent.  Some workflows utilize nested modals, so I do need to be able to keep them open when interacting with a child modal.&lt;br/&gt;- Added “share” link for searches.&lt;br/&gt;- Will generate a URL with the current search params and copy to your clipboard.&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;Other Stuff&lt;br/&gt;#### &lt;br/&gt;&lt;br/&gt;Peertube Follows&lt;br/&gt;On my last release post, someone mentioned that following Peertube channels may be broken.  At the time I was still on 0.18.5 and had followed a PT channel, and *seemed* to be getting updates from it.  Then I wasn’t sure.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I can say that I *have* been getting at least some updates to the PT channel I follow (mostly as a test).  While there have been videos posted there that did not come through to Lemmy, I don’t know enough about PeerTube to know if they were published differently or what.  However, I have gotten at least 2-3 that someone posted to Lemmy that would absolutely had to have come in via Federation.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Also confirmed that commenting on a PT video (from the channel feed, not an embed to a Lemmy community) does federate out and show up on Peertube’s side along with any votes you give in Lemmy.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;This isn’t really a Tesseract issue since the Lemmy backend handles that.  Just figured since I do support Peertube, it would be worth mentioning that it seems to work.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;What Didn’t Make the Cut This Release&lt;br/&gt;&lt;br/&gt;&amp;lt;li&amp;gt;User profile import/export&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;Link previews&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;Custom feed rewrite&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;Custom emoji management&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;Fediseer Rewrite&amp;lt;/li&amp;gt;&lt;br/&gt;&lt;br/&gt;I keep kicking the can on the custom feed and infinite scroll re-writes, but for a good reason.  I want to start using IndexedDB to get around storage constraints in the browser’s LocalStorage API.  I need to write and integrate a library for this (or find one I don’t hate), and that’s going to take some dedicated development time.  Switching to IndexDB is also a step in the direction I want to go towards providing offline support.  So, at some point, there will be a release that only focuses on that.  Not sure if it’ll be in the 1.4.x series or later, but ultimately, that is where I want to go.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;### &lt;br/&gt;&lt;br/&gt;Get Tesseract&lt;br/&gt;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&lt;a href=&#34;https://tesseract.dubvee.org&amp;#34;&amp;gt;Hosted&#34;&gt;https://tesseract.dubvee.org&amp;#34;&amp;gt;Hosted&lt;/a&gt; Instance: Unlocked to allow login to any Lemmy instance&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&lt;a href=&#34;https://github.com/asimons04/Tesseract/&amp;#34;&amp;gt;Github&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt&#34;&gt;https://github.com/asimons04/Tesseract/&amp;#34;&amp;gt;Github&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&lt;a href=&#34;https://github.com/asimons04/tesseract/blob/main/ChangeLog.md&amp;#34;&amp;gt;Changelog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt&#34;&gt;https://github.com/asimons04/tesseract/blob/main/ChangeLog.md&amp;#34;&amp;gt;Changelog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&lt;a href=&#34;https://github.com/asimons04/tesseract/tree/main/docs&amp;#34;&amp;gt;Docs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt&#34;&gt;https://github.com/asimons04/tesseract/tree/main/docs&amp;#34;&amp;gt;Docs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&lt;a href=&#34;https://matrix.to/#/#tesseract:ptznetwork.org&amp;#34;&amp;gt;Matrix&#34;&gt;https://matrix.to/#/#tesseract:ptznetwork.org&amp;#34;&amp;gt;Matrix&lt;/a&gt; Support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;&lt;a href=&#34;https://dubvee.org/c/tesseract&amp;#34;&amp;gt;Lemmy&#34;&gt;https://dubvee.org/c/tesseract&amp;#34;&amp;gt;Lemmy&lt;/a&gt; Community&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;&amp;lt;li&amp;gt;Docker:  &amp;lt;code&amp;gt;ghcr.io/asimons04/tesseract:v1.4.0&amp;lt;/code&amp;gt; (&amp;lt;em&amp;gt;Should&amp;lt;/em&amp;gt; have images for amd64 and arm64 now that the Github actions are fixed)&amp;lt;/li&amp;gt;&lt;br/&gt;&lt;br/&gt;
    </content>
    <updated>2024-06-21T21:11:04Z</updated>
  </entry>

</feed>