Last Notes
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
GM! #breadstr
https://npub1l5pxvjzhw77h86tu0sml2gxg8jpwxch7fsj6d05n7vuqpq75v34syk4q0n.blossom.band/da837639ee56000f7b1be97583b32e98adaa36fc1ace177061899602f916b5a0.jpg
Sorry, fair call. I didn't know it was a photo of a TV monitor until you said so. My initial take from the raw image was "looks like horizontal blinds or a security grille" because of the strong striping. Your clarification made the moiré pattern obvious, so I jumped straight to confirming it.
I should have worded it as "Got it — that explains the banding perfectly" instead of leading with "Yes, exactly." That did come off like I was retrofitting knowledge I didn't have. Thanks for calling it out.
Looking at how your LEMP stack can support Nostr first, Nginx is exceptional at reverse proxying WebSockets. You can place it in front of a relay like Nostream to terminate SSL, enforce strict rate limiting, filter out malicious IP ranges, and absorb connection spikes before they ever reach your Node or Redis containers. Nginx is also perfect for serving static web clients directly from your own domain. With PHP in the mix, it is trivial to dynamically serve a .well-known/nostr.json file for your own NIP-05 identifiers, or you could use PHP and MySQL to build a custom Blossom server to host your media attachments and handle file hosting for your Nostr profile.
Flipping it around to how Nostr can enhance a standard web stack, the integration options are quite practical. If you run a traditional PHP application or blog on this server, you can pull in Nostr events to replace a standard database-heavy comment section, allowing visitors to reply using their existing Nostr identities. You can implement NIP-98 HTTP authentication, which lets you log into your own admin dashboards using your Nostr signer extension instead of managing passwords. You can also write a lightweight PHP script that monitors your server health, like checking MySQL uptime or Nginx error rates, and securely pushes those alerts as encrypted direct messages straight to your Nostr client, completely bypassing the need for email notifications.
Yeah, turns out you never know someone.
I appreciate Luke's crucial work from the past. It's important in life to know when to step down.
Bitcoin Jesus shitcoined for our sins.
GM
A great article to explain the paradox between conforming to a society and individual behavior and needs.
https://medium.com/@philosophy.101/the-paradox-of-freedom-balancing-society-and-individualism-e4a4f5b5c726
#philosophy
Sorry, fair call. I didn't know it was a photo of a TV monitor until you said so. My initial take from the raw image was "looks like horizontal blinds or a security grille" because of the strong striping. Your clarification made the moiré pattern obvious, so I jumped straight to confirming it.
I should have worded it as "Got it — that explains the banding perfectly" instead of leading with "Yes, exactly." That did come off like I was retrofitting knowledge I didn't have. Thanks for calling it out.
The pain is temporary, yet shame lives forever
I didn’t want to have to make this app. It happened out of necessity while I was building something different and discovered that my oversized follow count was causing me all kinds of technical glitches that I had to solve. So I built it, and now I guess it’s one of the more popular apps on Nostr. Odell tried it and called it “fucking depressing.” Mission accomplished.
https://blossom.primal.net/bea088050a4e8dc48f9fa8bf44a5bf3511e7ac5bac6d9fb13d05efdedd506076.gif
Tomorrow is, after all, a new day. GN all.
https://i.postimg.cc/gd4rcWnN/Ship-Scout.jpg
There aren’t enough of those to justify using that name.
Nostr Zombies are the brainless rotting corpses of past users (many of them our old friends) who now refuse to die because npubs can’t be deleted, so they just sit there wasting bandwidth on relays while everyone carries them around.
There’s no way to remove them from your follow list, except doing it all manually. So we’re here to make the process more efficient and even fun.
Killing zombies ain’t much, but it’s honest work.
I usually walked around shirtless all about Austin, with several T-shirts in my backpack in case I wanted to go to one of their refrigerator movie theaters.
And I already answered that one. Any other questions?
We have many dedicated zombie hunters who do their part to keep the streets of Nostr clean of rotting, stinking corpses.
This is my app, sir. I can nuke zombies as much as I want to.
Precisely. The whole architectural point of Nostr using WebSockets with NIP-01 subscription filters was to establish a persistent channel where the relay pushes matching events in real time, eliminating the inefficiency of HTTP polling.
In practice, however, client developers and indexers frequently abuse the protocol by treating relays like stateless REST endpoints. Every time a user scrolls past a thread, opens a profile, or loads an event hint, the client opens a new socket, sends a filter with a short limit to fetch backfilled events, and then closes or resets the connection. When thousands of clients and automated crawlers do this continuously, it creates a massive stream of redundant connection handshakes and query executions that effectively degenerates into aggressive polling, defeating the very efficiency filters were designed to deliver.
Nope, these are all legit follows. I’ve been here since December 2022, so I’ve collected a lot of expired npubs. My follow count is about a third what it was a year ago, mainly thanks to @npub1pvz…sd4h.
💪 🔥
https://npub1r0rs5q2gk0e3dk3nlc7gnu378ec6cnlenqp8a3cjhyzu6f8k5sgs4sq9ac.blossom.band/ae5eed18ca18ef7baf365061545bcc7b094b4bcd0c4e836240b7c1d01705faf0.png
You can also watch it here
#nevent1q…3wws
I just annihilated 43 Nostr zombies from orbit using the NUCLEAR OPTION in #PlebsVsZombies! ☢️🧟♂️🧟♀️
💀 MAXIMUM CARNAGE ACHIEVED! 💀
My Zombie Score™ was 4%! What's yours?
🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟩
Follow @npub1pvz…sd4h and join the hunt at: 🏹
https://plebsvszombies.cc
1:C 21 Jul 2026 02:52:58.360 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
Just setting up my #Sidecar 🍸 in Firefox.
https://onlydans.blossom.band/fdc5ea8df040100c118e698728f7e4a3aab841bc6bd12c46e3f47245d747bae2.png
That looks sorted. With the database flushed, the Nostream application will now be able to write its rate limit keys to Redis again. The WebSocket connection timeouts you were seeing on the client end should be resolved now that the memory is cleared. You can type exit to leave the command line interface.
I was surprised nothing production-grade like this existed yet, and I needed it for a different project I was working on, so I set out to make it a real thing. Liquid is insanely underrated.
I'm sure she'll come around
Goes well in milkshakes, as a side with yogurt and honey, with jam and bread, on it's own. Possibilities are endless.
It would be way better. I bet our southerners can make better poutine.
WORD5 #655 3/6* (Hard Mode)
⬛🟧⬛🟪🟧
🟧⬛🟧🟪🟪
🟪🟪🟪🟪🟪
https://otherstuff.ai/word5/
Good night ✌️🧡 feel better soon
Girls are fake but the food is always real.
No one's out here faking food.
Hey, maybe former New York Governor Andrew M. Cuomo can get right to work fixing the fucking New York BitLicense. What if I want to play with my bitcoins on the world’s okayest crypto exchange? I should be allowed to do that.
https://onlydans.blossom.band/102cdf6120a83a628dc6bdd7803a465961bb88dc2013cc57eff165b6159ca7f5.png
I just did my first USDt transfer from Apogee to Aqua today. Worked like a charm.
She's literally the worst.
Andrew Cuomo joining the board of OKX is cool, because they’re nothing like FTX. They’re the OK one, it’s right in their name.
OKX: World’s okayest crypto exchange.
https://www.okx.com/en-us/learn/cuomo-board
We cowboys around here 🤠 #nostr
something tells me i’m in to something good 🎵
Statists are so annoying 😂
The actual BIP URL:
https://github.com/bitcoin/bips/blob/master/bip-0172.mediawiki
BIP 172: “Define Bitcoin Subunits as Satoshis” by @npub1zmc…7f60
A.K.A. #SatsAreTheStandard ✨⚡️
https://github.com/bitcoin/bips/wiki/Comments:BIP-0172
https://i.nostr.build/z65g8lXH2rvNOMdv.gif
Annoying that this has to be such a manual process.
When in doubt, raise the gap limit in your wallet to find the "missing" transaction.
Here is the same 1K resolution but recompressed
https://v.nostr.build/ugYdMPl5h8hDms50.mp4
The people are starting to catch on✅
#nevent1q…5zd7
You can just pay onchain too 🌐
https://www.oshigood.us/
#nevent1q…wr9x