-
@ c9badfea:610f861a
2025-05-13 02:42:40 -
@ c9badfea:610f861a
2025-05-13 02:39:06 -
@ c9badfea:610f861a
2025-05-13 02:35:44 -
@ c9badfea:610f861a
2025-05-13 02:26:54- 🗺️ Use Offline Maps
- 🎵 Produce Music On-Device
- 💾 Write ISO Images to USB Drives
- 💻 Code On-Device
- 🎬 Watch and Download Videos from YouTube, Rumble, Odysee, Bitchute, and More
- 🔤 Upgrade the Typing Experience
- 📰 Read RSS Feeds
- 📥 Download Torrents
- 📺 Watch IPTV Channels for Free
- 🔒 Easily Verify File Checksums
- 🗣️ Have an Offline Translator
- 🗣️ Have an Offline Text-to-Speech Engine
- 🤖 Run LLMs Locally
- 🌐 Browse Entire Websites Offline
- 🔐 Quickly Encrypt Files
-
@ d360efec:14907b5f
2025-05-13 00:39:56🚀📉 #BTC วิเคราะห์ H2! พุ่งชน 105K แล้วเจอแรงขาย... จับตา FVG 100.5K เป็นจุดวัดใจ! 👀📊
จากากรวิเคราะห์ทางเทคนิคสำหรับ #Bitcoin ในกรอบเวลา H2:
สัปดาห์ที่แล้ว #BTC ได้เบรคและพุ่งขึ้นอย่างแข็งแกร่งค่ะ 📈⚡ แต่เมื่อวันจันทร์ที่ผ่านมา ราคาได้ขึ้นไปชนแนวต้านบริเวณ 105,000 ดอลลาร์ แล้วเจอแรงขายย่อตัวลงมาตลอดทั้งวันค่ะ 🧱📉
ตอนนี้ ระดับที่น่าจับตาอย่างยิ่งคือโซน H4 FVG (Fair Value Gap ในกราฟ 4 ชั่วโมง) ที่ 100,500 ดอลลาร์ ค่ะ 🎯 (FVG คือโซนที่ราคาวิ่งผ่านไปเร็วๆ และมักเป็นบริเวณที่ราคามีโอกาสกลับมาทดสอบ/เติมเต็ม)
👇 โซน FVG ที่ 100.5K นี้ ยังคงเป็น Area of Interest ที่น่าสนใจสำหรับมองหาจังหวะ Long เพื่อลุ้นการขึ้นในคลื่นลูกถัดไปค่ะ!
🤔💡 อย่างไรก็ตาม การตัดสินใจเข้า Long หรือเทรดที่บริเวณนี้ ขึ้นอยู่กับว่าราคา แสดงปฏิกิริยาอย่างไรเมื่อมาถึงโซน 100.5K นี้ เพื่อยืนยันสัญญาณสำหรับการเคลื่อนไหวที่จะขึ้นสูงกว่าเดิมค่ะ!
เฝ้าดู Price Action ที่ระดับนี้อย่างใกล้ชิดนะคะ! 📍
BTC #Bitcoin #Crypto #คริปโต #TechnicalAnalysis #Trading #FVG #FairValueGap #PriceAction #MarketAnalysis #ลงทุนคริปโต #วิเคราะห์กราฟ #TradeSetup #ข่าวคริปโต #ตลาดคริปโต
-
@ d360efec:14907b5f
2025-05-12 04:01:23 -
@ d360efec:14907b5f
2025-05-12 01:34:24สวัสดีค่ะเพื่อนๆ นักเทรดที่น่ารักทุกคน! 💕 Lina Engword กลับมาพร้อมกับการวิเคราะห์ BTCUSDT.P แบบเจาะลึกเพื่อเตรียมพร้อมสำหรับเทรดวันนี้ค่ะ! 🚀
วันนี้ 12 พฤษภาคม 2568 เวลา 08.15น. ราคา BTCUSDT.P อยู่ที่ 104,642.8 USDT ค่ะ โดยมี Previous Weekly High (PWH) อยู่ที่ 104,967.8 Previous Weekly Low (PWL) ที่ 93,338 ค่ะ
✨ ภาพรวมตลาดวันนี้ ✨
จากการวิเคราะห์ด้วยเครื่องมือคู่ใจของเรา ทั้ง SMC/ICT (Demand/Supply Zone, Order Block, Liquidity), EMA 50/200, Trend Strength, Money Flow, Chart/Price Pattern, Premium/Discount Zone, Trend line, Fibonacci, Elliott Wave และ Dow Theory ใน Timeframe ตั้งแต่ 15m ไปจนถึง Week! 📊 เราพบว่าภาพใหญ่ของ BTCUSDT.P ยังคงอยู่ในแนวโน้มขาขึ้นที่แข็งแกร่งมากๆ ค่ะ 👍 โดยเฉพาะใน Timeframe Day และ Week ที่สัญญาณทุกอย่างสนับสนุนทิศทางขาขึ้นอย่างชัดเจน Money Flow ยังไหลเข้าอย่างต่อเนื่อง และเราเห็นโครงสร้างตลาดแบบ Dow Theory ที่ยก High ยก Low ขึ้นไปเรื่อยๆ ค่ะ
อย่างไรก็ตาม... ใน Timeframe สั้นๆ อย่าง 15m และ 1H เริ่มเห็นสัญญาณของการชะลอตัวและการพักฐานบ้างแล้วค่ะ 📉 อาจมีการสร้าง Buyside และ Sellside Liquidity รอให้ราคาไปกวาดก่อนที่จะเลือกทางใดทางหนึ่ง ซึ่งเป็นเรื่องปกติของการเดินทางของ Smart Money ค่ะ
⚡ เปรียบเทียบแนวโน้มแต่ละ Timeframe ⚡
🪙 แนวโน้มตรงกัน Timeframe 4H, Day, Week ส่วนใหญ่ชี้ไปทาง "ขาขึ้น" ค่ะ ทุกเครื่องมือสนับสนุนแนวโน้มนี้อย่างแข็งแกร่ง 💪 เป้าหมายต่อไปคือการไปทดสอบ PWH และ High เดิม เพื่อสร้าง All-Time High ใหม่ค่ะ! 🪙 แนวโน้มต่างกัน Timeframe 15m, 1H ยังค่อนข้าง "Sideways" หรือ "Sideways Down เล็กน้อย" ค่ะ มีการบีบตัวของราคาและอาจมีการพักฐานสั้นๆ ซึ่งเป็นโอกาสในการหาจังหวะเข้า Long ที่ราคาดีขึ้นค่ะ
💡 วิธีคิดแบบ Market Slayer 💡
เมื่อแนวโน้มใหญ่เป็นขาขึ้นที่แข็งแกร่ง เราจะเน้นหาจังหวะเข้า Long เป็นหลักค่ะ การย่อตัวลงมาในระยะสั้นคือโอกาสของเราในการเก็บของ! 🛍️ เราจะใช้หลักการ SMC/ICT หาโซน Demand หรือ Order Block ที่ Smart Money อาจจะเข้ามาดันราคาขึ้น และรอสัญญาณ Price Action ยืนยันการกลับตัวค่ะ
สรุปแนวโน้มวันนี้:
🪙 ระยะสั้น: Sideways to Sideways Down (โอกาส 55%) ↔️↘️ 🪙 ระยะกลาง: ขาขึ้น (โอกาส 70%) ↗️ 🪙 ระยะยาว: ขาขึ้น (โอกาส 85%) 🚀 🪙 วันนี้: มีโอกาสย่อตัวเล็กน้อยก่อนจะมีแรงซื้อกลับเข้ามาเพื่อไปทดสอบ PWH (โอกาส Sideways Down เล็กน้อย สลับกับ Sideways Up: 60%) 🎢
🗓️ Daily Trade Setup ประจำวันนี้ 🗓️
นี่คือตัวอย่าง Setup ที่ Lina เตรียมไว้ให้พิจารณาค่ะ (เน้นย้ำว่าเป็นเพียงแนวทาง ไม่ใช่คำแนะนำลงทุนนะคะ)
1️⃣ ตัวอย่างที่ 1: รอรับที่โซน Demand (ปลอดภัย, รอยืนยัน)
🪙 Enter: รอราคาย่อตัวลงมาในโซน Demand Zone หรือ Bullish Order Block ที่น่าสนใจใน TF 1H/4H (ดูจากกราฟประกอบนะคะ) และเกิดสัญญาณ Bullish Price Action ที่ชัดเจน เช่น แท่งเทียนกลืนกิน (Engulfing) หรือ Hammer 🪙 TP: บริเวณ PWH 104,967.8 หรือ Buyside Liquidity ถัดไป 🎯 🪙 SL: ใต้ Low ที่เกิดก่อนสัญญาณกลับตัวเล็กน้อย หรือใต้ Demand Zone ที่เข้า 🛡️ 🪙 RRR: ประมาณ 1:2.5 ขึ้นไป ✨ 🪙 อธิบาย: Setup นี้เราจะใจเย็นๆ รอให้ราคาลงมาในโซนที่มีโอกาสเจอแรงซื้อเยอะๆ ตามหลัก SMC/ICT แล้วค่อยเข้า เพื่อให้ได้ราคาที่ดีและความเสี่ยงต่ำค่ะ ต้องรอสัญญาณ Price Action ยืนยันก่อนนะคะ ✍️
2️⃣ ตัวอย่างที่ 2: Follow Breakout (สายบู๊, รับความเสี่ยงได้)
🪙 Enter: เข้า Long ทันทีเมื่อราคาสามารถ Breakout เหนือ High ล่าสุดใน TF 15m หรือ 1H พร้อม Volume ที่เพิ่มขึ้นอย่างมีนัยสำคัญ 🔥 🪙 TP: บริเวณ PWH 104,967.8 หรือ Buyside Liquidity ถัดไป 🚀 🪙 SL: ใต้ High ก่อนหน้าที่ถูก Breakout เล็กน้อย 🚧 🪙 RRR: ประมาณ 1:3 ขึ้นไป ✨ 🪙 อธิบาย: Setup นี้เหมาะกับคนที่อยากเข้าไวเมื่อเห็นโมเมนตัมแรงๆ ค่ะ เราจะเข้าเมื่อราคา Breakout แนวต้านระยะสั้นพร้อม Volume เป็นสัญญาณว่าแรงซื้อกำลังมาค่ะ เข้าได้เลยด้วยการตั้ง Limit Order หรือ Market Order เมื่อเห็นการ Breakout ที่ชัดเจนค่ะ 💨
3️⃣ ตัวอย่างที่ 3: พิจารณา Short สั้นๆ ในโซน Premium (สวนเทรนด์หลัก, ความเสี่ยงสูง)
🪙 Enter: หากราคาขึ้นไปในโซน Premium ใน TF 15m หรือ 1H และเกิดสัญญาณ Bearish Price Action ที่ชัดเจน เช่น แท่งเทียน Shooting Star หรือ Bearish Engulfing บริเวณ Supply Zone หรือ Bearish Order Block 🐻 🪙 TP: พิจารณาแนวรับถัดไป หรือ Sellside Liquidity ใน TF เดียวกัน 🎯 🪙 SL: เหนือ High ของสัญญาณ Bearish Price Action เล็กน้อย 💀 🪙 RRR: ประมาณ 1:1.5 ขึ้นไป (เน้นย้ำว่าเป็นการเทรดสวนเทรนด์หลัก ควรใช้ RRR ต่ำและบริหารขนาด Lot อย่างเข้มงวด!) 🪙 อธิบาย: Setup นี้สำหรับคนที่เห็นโอกาสในการทำกำไรจากการย่อตัวระยะสั้นค่ะ เราจะเข้า Short เมื่อเห็นสัญญาณว่าราคาอาจจะมีการพักฐานในโซนที่ถือว่า "แพง" ในกรอบสั้นๆ ค่ะ ต้องตั้ง Stop Loss ใกล้มากๆ และจับตาดูใกล้ชิดนะคะ 🚨
⚠️ Disclaimer: การวิเคราะห์นี้เป็นเพียงความคิดเห็นส่วนตัวของ Lina เท่านั้น ไม่ถือเป็นคำแนะนำในการลงทุนนะคะ การลงทุนมีความเสี่ยง ผู้ลงทุนควรศึกษาข้อมูลเพิ่มเติมและตัดสินใจด้วยความรอบคอบค่ะ 🙏
ขอให้ทุกท่านโชคดีกับการเทรดในวันนี้ค่ะ! มีคำถามอะไรเพิ่มเติม ถามมาได้เลยนะคะ ยินดีเสมอค่ะ! 😊
Bitcoin #BTCUSDT #Crypto #Trading #TechnicalAnalysis #SMC #ICT #MarketSlayer #TradeSetup #คริปโต #เทรดคริปโต #วิเคราะห์กราฟ #LinaEngword 😉
-
@ c1e9ab3a:9cb56b43
2025-05-09 23:10:14I. Historical Foundations of U.S. Monetary Architecture
The early monetary system of the United States was built atop inherited commodity money conventions from Europe’s maritime economies. Silver and gold coins—primarily Spanish pieces of eight, Dutch guilders, and other foreign specie—formed the basis of colonial commerce. These units were already integrated into international trade and piracy networks and functioned with natural compatibility across England, France, Spain, and Denmark. Lacking a centralized mint or formal currency, the U.S. adopted these forms de facto.
As security risks and the practical constraints of physical coinage mounted, banks emerged to warehouse specie and issue redeemable certificates. These certificates evolved into fiduciary media—claims on specie not actually in hand. Banks observed over time that substantial portions of reserves remained unclaimed for years. This enabled fractional reserve banking: issuing more claims than reserves held, so long as redemption demand stayed low. The practice was inherently unstable, prone to panics and bank runs, prompting eventual centralization through the formation of the Federal Reserve in 1913.
Following the Civil War and unstable reinstatements of gold convertibility, the U.S. sought global monetary stability. After World War II, the Bretton Woods system formalized the U.S. dollar as the global reserve currency. The dollar was nominally backed by gold, but most international dollars were held offshore and recycled into U.S. Treasuries. The Nixon Shock of 1971 eliminated the gold peg, converting the dollar into pure fiat. Yet offshore dollar demand remained, sustained by oil trade mandates and the unique role of Treasuries as global reserve assets.
II. The Structure of Fiduciary Media and Treasury Demand
Under this system, foreign trade surpluses with the U.S. generate excess dollars. These surplus dollars are parked in U.S. Treasuries, thereby recycling trade imbalances into U.S. fiscal liquidity. While technically loans to the U.S. government, these purchases act like interest-only transfers—governments receive yield, and the U.S. receives spendable liquidity without principal repayment due in the short term. Debt is perpetually rolled over, rarely extinguished.
This creates an illusion of global subsidy: U.S. deficits are financed via foreign capital inflows that, in practice, function more like financial tribute systems than conventional debt markets. The underlying asset—U.S. Treasury debt—functions as the base reserve asset of the dollar system, replacing gold in post-Bretton Woods monetary logic.
III. Emergence of Tether and the Parastatal Dollar
Tether (USDT), as a private issuer of dollar-denominated tokens, mimics key central bank behaviors while operating outside the regulatory perimeter. It mints tokens allegedly backed 1:1 by U.S. dollars or dollar-denominated securities (mostly Treasuries). These tokens circulate globally, often in jurisdictions with limited banking access, and increasingly serve as synthetic dollar substitutes.
If USDT gains dominance as the preferred medium of exchange—due to technological advantages, speed, programmability, or access—it displaces Federal Reserve Notes (FRNs) not through devaluation, but through functional obsolescence. Gresham’s Law inverts: good money (more liquid, programmable, globally transferable USDT) displaces bad (FRNs) even if both maintain a nominal 1:1 parity.
Over time, this preference translates to a systemic demand shift. Actors increasingly use Tether instead of FRNs, especially in global commerce, digital marketplaces, or decentralized finance. Tether tokens effectively become shadow base money.
IV. Interaction with Commercial Banking and Redemption Mechanics
Under traditional fractional reserve systems, commercial banks issue loans denominated in U.S. dollars, expanding the money supply. When borrowers repay loans, this destroys the created dollars and contracts monetary elasticity. If borrowers repay in USDT instead of FRNs:
- Banks receive a non-Fed liability (USDT).
- USDT is not recognized as reserve-eligible within the Federal Reserve System.
- Banks must either redeem USDT for FRNs, or demand par-value conversion from Tether to settle reserve requirements and balance their books.
This places redemption pressure on Tether and threatens its 1:1 peg under stress. If redemption latency, friction, or cost arises, USDT’s equivalence to FRNs is compromised. Conversely, if banks are permitted or compelled to hold USDT as reserve or regulatory capital, Tether becomes a de facto reserve issuer.
In this scenario, banks may begin demanding loans in USDT, mirroring borrower behavior. For this to occur sustainably, banks must secure Tether liquidity. This creates two options: - Purchase USDT from Tether or on the secondary market, collateralized by existing fiat. - Borrow USDT directly from Tether, using bank-issued debt as collateral.
The latter mirrors Federal Reserve discount window operations. Tether becomes a lender of first resort, providing monetary elasticity to the banking system by creating new tokens against promissory assets—exactly how central banks function.
V. Structural Consequences: Parallel Central Banking
If Tether begins lending to commercial banks, issuing tokens backed by bank notes or collateralized debt obligations: - Tether controls the expansion of broad money through credit issuance. - Its balance sheet mimics a central bank, with Treasuries and bank debt as assets and tokens as liabilities. - It intermediates between sovereign debt and global liquidity demand, replacing the Federal Reserve’s open market operations with its own issuance-redemption cycles.
Simultaneously, if Tether purchases U.S. Treasuries with FRNs received through token issuance, it: - Supplies the Treasury with new liquidity (via bond purchases). - Collects yield on government debt. - Issues a parallel form of U.S. dollars that never require redemption—an interest-only loan to the U.S. government from a non-sovereign entity.
In this context, Tether performs monetary functions of both a central bank and a sovereign wealth fund, without political accountability or regulatory transparency.
VI. Endgame: Institutional Inversion and Fed Redundancy
This paradigm represents an institutional inversion:
- The Federal Reserve becomes a legacy issuer.
- Tether becomes the operational base money provider in both retail and interbank contexts.
- Treasuries remain the foundational reserve asset, but access to them is mediated by a private intermediary.
- The dollar persists, but its issuer changes. The State becomes a fiscal agent of a decentralized financial ecosystem, not its monetary sovereign.
Unless the Federal Reserve reasserts control—either by absorbing Tether, outlawing its instruments, or integrating its tokens into the reserve framework—it risks becoming irrelevant in the daily function of money.
Tether, in this configuration, is no longer a derivative of the dollar—it is the dollar, just one level removed from sovereign control. The future of monetary sovereignty under such a regime is post-national and platform-mediated.
-
@ 2183e947:f497b975
2025-05-01 22:33:48Most darknet markets (DNMs) are designed poorly in the following ways:
1. Hosting
Most DNMs use a model whereby merchants fill out a form to create their listings, and the data they submit then gets hosted on the DNM's servers. In scenarios where a "legal" website would be forced to censor that content (e.g. a DMCA takedown order), DNMs, of course, do not obey. This can lead to authorities trying to find the DNM's servers to take enforcement actions against them. This design creates a single point of failure.
A better design is to outsource hosting to third parties. Let merchants host their listings on nostr relays, not on the DNM's server. The DNM should only be designed as an open source interface for exploring listings hosted elsewhere, that way takedown orders end up with the people who actually host the listings, i.e. with nostr relays, and not with the DNM itself. And if a nostr relay DOES go down due to enforcement action, it does not significantly affect the DNM -- they'll just stop querying for listings from that relay in their next software update, because that relay doesn't work anymore, and only query for listings from relays that still work.
2. Moderation
Most DNMs have employees who curate the listings on the DNM. For example, they approve/deny listings depending on whether they fit the content policies of the website. Some DNMs are only for drugs, others are only for firearms. The problem is, to approve a criminal listing is, in the eyes of law enforcement, an act of conspiracy. Consequently, they don't just go after the merchant who made the listing but the moderators who approved it, and since the moderators typically act under the direction of the DNM, this means the police go after the DNM itself.
A better design is to outsource moderation to third parties. Let anyone call themselves a moderator and create lists of approved goods and services. Merchants can pay the most popular third party moderators to add their products to their lists. The DNM itself just lets its users pick which moderators to use, such that the user's choice -- and not a choice by the DNM -- determines what goods and services the user sees in the interface.
That way, the police go after the moderators and merchants rather than the DNM itself, which is basically just a web browser: it doesn't host anything or approve of any content, it just shows what its users tell it to show. And if a popular moderator gets arrested, his list will still work for a while, but will gradually get more and more outdated, leading someone else to eventually become the new most popular moderator, and a natural transition can occur.
3. Escrow
Most DNMs offer an escrow solution whereby users do not pay merchants directly. Rather, during the Checkout process, they put their money in escrow, and request the DNM to release it to the merchant when the product arrives, otherwise they initiate a dispute. Most DNMs consider escrow necessary because DNM users and merchants do not trust one another; users don't want to pay for a product first and then discover that the merchant never ships it, and merchants don't want to ship a product first and then discover that the user never pays for it.
The problem is, running an escrow solution for criminals is almost certain to get you accused of conspiracy, money laundering, and unlicensed money transmission, so the police are likely to shut down any DNM that does this. A better design is to oursource escrow to third parties. Let anyone call themselves an escrow, and let moderators approve escrows just like they approve listings. A merchant or user who doesn't trust the escrows chosen by a given moderator can just pick a different moderator. That way, the police go after the third party escrows rather than the DNM itself, which never touches user funds.
4. Consequences
Designing a DNM along these principles has an interesting consequence: the DNM is no longer anything but an interface, a glorified web browser. It doesn't host any content, approve any listings, or touch any money. It doesn't even really need a server -- it can just be an HTML file that users open up on their computer or smart phone. For two reasons, such a program is hard to take down:
First, it is hard for the police to justify going after the DNM, since there are no charges to bring. Its maintainers aren't doing anything illegal, no more than Firefox does anything illegal by maintaining a web browser that some people use to browse illegal content. What the user displays in the app is up to them, not to the code maintainers. Second, if the police decided to go after the DNM anyway, they still couldn't take it down because it's just an HTML file -- the maintainers do not even need to run a server to host the file, because users can share it with one another, eliminating all single points of failure.
Another consequence of this design is this: most of the listings will probably be legal, because there is more demand for legal goods and services than illegal ones. Users who want to find illegal goods would pick moderators who only approve those listings, but everyone else would use "legal" moderators, and the app would not, at first glance, look much like a DNM, just a marketplace for legal goods and services. To find the illegal stuff that lurks among the abundant legal stuff, you'd probably have to filter for it via your selection of moderators, making it seem like the "default" mode is legal.
5. Conclusion
I think this DNM model is far better than the designs that prevail today. It is easier to maintain, harder to take down, and pushes the "hard parts" to the edges, so that the DNM is not significantly affected even if a major merchant, moderator, or escrow gets arrested. I hope it comes to fruition.
-
@ 21335073:a244b1ad
2025-05-01 01:51:10Please respect Virginia Giuffre’s memory by refraining from asking about the circumstances or theories surrounding her passing.
Since Virginia Giuffre’s death, I’ve reflected on what she would want me to say or do. This piece is my attempt to honor her legacy.
When I first spoke with Virginia, I was struck by her unshakable hope. I had grown cynical after years in the anti-human trafficking movement, worn down by a broken system and a government that often seemed complicit. But Virginia’s passion, creativity, and belief that survivors could be heard reignited something in me. She reminded me of my younger, more hopeful self. Instead of warning her about the challenges ahead, I let her dream big, unburdened by my own disillusionment. That conversation changed me for the better, and following her lead led to meaningful progress.
Virginia was one of the bravest people I’ve ever known. As a survivor of Epstein, Maxwell, and their co-conspirators, she risked everything to speak out, taking on some of the world’s most powerful figures.
She loved when I said, “Epstein isn’t the only Epstein.” This wasn’t just about one man—it was a call to hold all abusers accountable and to ensure survivors find hope and healing.
The Epstein case often gets reduced to sensational details about the elite, but that misses the bigger picture. Yes, we should be holding all of the co-conspirators accountable, we must listen to the survivors’ stories. Their experiences reveal how predators exploit vulnerabilities, offering lessons to prevent future victims.
You’re not powerless in this fight. Educate yourself about trafficking and abuse—online and offline—and take steps to protect those around you. Supporting survivors starts with small, meaningful actions. Free online resources can guide you in being a safe, supportive presence.
When high-profile accusations arise, resist snap judgments. Instead of dismissing survivors as “crazy,” pause to consider the trauma they may be navigating. Speaking out or coping with abuse is never easy. You don’t have to believe every claim, but you can refrain from attacking accusers online.
Society also fails at providing aftercare for survivors. The government, often part of the problem, won’t solve this. It’s up to us. Prevention is critical, but when abuse occurs, step up for your loved ones and community. Protect the vulnerable. it’s a challenging but a rewarding journey.
If you’re contributing to Nostr, you’re helping build a censorship resistant platform where survivors can share their stories freely, no matter how powerful their abusers are. Their voices can endure here, offering strength and hope to others. This gives me great hope for the future.
Virginia Giuffre’s courage was a gift to the world. It was an honor to know and serve her. She will be deeply missed. My hope is that her story inspires others to take on the powerful.
-
@ fbf0e434:e1be6a39
2025-05-13 02:00:022025年3月17日
塔林·克里斯滕森(Taryn Christiansen),DoraHacks
特别感谢DoraHacks创始人Eric Zhang提供的深刻讨论和支持。
Part 1
自动化的浪潮无疑正在到来。人类劳动将迅速贬值。人工智能已经取得了巨大的进展,并且,随着许多创新降低了成本,越来越多的企业将能够整合这一技术。随着生产模式、资本和供应链越来越多地实现自动化,生产力和效率将加速发展。
问题是,这是否是好事。答案五花八门。从末世论者如埃利泽·尤德科夫斯基(Eliezer Yudkowsky)[1]和罗曼·扬波尔斯基(Roman Yampolskiy)[2]等人认为,人工智能有潜力——并最终将——消灭人类物种。人类将远远不如未来的人工智能高效,因此,当通用人工智能(AGI)得以实现时,智能机器很容易得出结论:人类消耗太多,世界没有人类会更好。然后是怀疑论者,如马克斯·泰格马克(Max Tegmark)[3],他认为应该暂停人工智能的发展,以便更好地将其与人类利益对齐。“只有当我们确信其影响将是积极的、其风险可控时,才应开发强大的人工智能系统。[4]”再者,也有技术乐观主义者,如马克·安德森(Mark Andreessen)[5]、萨姆·奥特曼(Sam Altman)[6]和雷·库兹韦尔(Ray Kurzweil)[7],他们主张人工智能将带来物质上的丰盈乌托邦。发展应该加速,监管者应当退让,未来将带来经济增长、生产力提高和生活水平的惊人提升。
[1] 美国人工智能理论家、作家,MIRI(Machine Intelligence Research Institute,机器智能研究所)创始人之一。 [2] 俄罗斯裔美国计算机科学家,路易斯维尔大学教授,专长于AI安全和人工智能伦理。 [3] 瑞典裔美国物理学家、MIT教授,Future of Life Institute(未来生命研究院)联合创办人。 [4] https://futureoflife.org/open-letter/pause-giant-ai-experiments/. [5] https://a16z.com/the-techno-optimist-manifesto/. 硅谷知名风险投资家、网景(Netscape)浏览器联合创始人,Andreessen Horowitz投资公司创始人。 [6] https://ia.samaltman.com/. OpenAI CEO. [7] 发明家、未来学家、作家,现为谷歌工程总监。
在这里很难做出具体的预测。不同立场的人常常以某种“不可避免性”的口气宣扬他们的观点。安德森是乐观主义最著名的主张者之一,他坚信由快速技术进步所带来的未来将是每一代人梦寐以求的那种未来。将会有具备无限同情心和耐心的人工智能导师,使教育更加普及和易获取;医疗行业将大幅提升,提供更好的预测并减少错误;机器人可以执行危险的工作,从而让人们追求自己的愿望。经济效益也将是巨大的。由于生产成本的降低,价格将更低,人们的钱将有更强的购买力,需求将增加,新的工作岗位将被创造,工资也将提高。他主张这一观点的主要论据是历史先例。每次有新技术革命到来时,社会总会从中获得净效益(net good)。十九世纪石油工业的形成之前,鲸鱼行业雇用了成千上万的工人。石油取代了这些工作,但也消除了依赖屠杀成千上万头鲸鱼来制造日常产品的需求。汽车威胁了许多行业,但当它成为普遍拥有的财产时,突然之间,需要更多的道路、桥梁和加油站来满足需求。虽然将会有自动化,人工智能将以良好的成果充斥世界,赋予经济前所未有的机会,让人们找到工作、积累财富,并利用人工智能所创造的价值。
然而,人工智能不同于以往的技术发展。人工智能是一种智能的进步和普及,而不仅仅是机械化的进步。库兹韦尔写道:“第一次工业革命扩展了我们身体的能力,第二次则扩展了我们思想的能力。”但是,一种新变量意味着结果的不同。人工智能能够学习、适应、生成、发现、反驳、怀疑、确认、设定目标,能够制定手段,也许有一天它会拥有意志并感知情感。它变得越来越具能动性(agentic)和自主性(autonomous),能够承担和完成通过它自身流程所生成的任务。如果它现在还没有具备能动性,那目标是让它达到这一点。仅仅基于先前经验得出的预测可能是一种范畴错误,容易导致误导和错误。当然,过去的技术形式与人工智能之间存在重叠,但它们之间有一个明确的区别,并且这种区别应该指导我们的预测。
另一方面,末世论者的观点并不具备很大的现实意义。那些通常潜藏在末世论者警告背后的“终结者”般的情景是不太可能发生的。尽管正如埃隆·马斯克(Elon Musk)[8]最近在《乔·罗根播客》(The Joe Rogan Podcast)上所言,如果嵌入了错误的目标,也许像“太空奥德赛(Space Odyssey)”系列作品中的HAL 9000那样的情景[9]是可能的。考虑到DeepSeek公司最近在降低计算成本方面的进展,该公司开发的AI模型已具有与美国最先进的模型竞争的水平,一场新的竞赛已经宣告开始,事情将会加速发展。美国副总统在人工智能行动峰会上的讲话清楚地表明了这一点。当前存在着一场争夺国际技术主导地位的竞争,这将塑造未来,发展速度的减缓等同于举白旗。因此,如果对安德森的主张有任何可行的反对意见,那也必须集中在如何引导技术发展,而非停止它。这应当为关于自动化的讨论提供启示:如何最好地引导自动化以避免不良结果?我们需要一种积极主动的方式。
[8] 特斯公司CEO,SpaceX创始人兼首席执行官,X(原Twitter)所有人。 [9] HAL 9000(简称HAL)是科幻小说和电影系列《太空奥德赛》中的虚构人工智能角色,由阿瑟·克拉克(Arthur C. Clarke)和斯坦利·库布里克(Stanley Kubrick)共同创作。在作品中,HAL 9000原本是飞船“发现号”(Discovery One)的中央控制系统,它被设计得极其可靠,拥有高度智能、情感模拟能力,负责飞船运行,包括导航、生命支持、通信等核心任务。在执行任务时,由于HAL开始表现出微妙的异常(如错误报告设备损坏),同行宇航员决定关闭HAL。当这一计划被HAL得知,HAL控制飞船上设备造成了同行宇航员的死亡。但后续作品揭示,HAL的表现是由于收到了相互冲突的人类指令,并决定杀死宇航员来保证两种指令都能够实现。
Section 1.1
安德森对自动化的乐观态度存在一个问题,那就是他过于确定新工作机会会得到足够的分配,供人们享受并加以利用。问题在于,经济正变得越来越依赖知识和信息。知识和信息的比重远远超过了体力劳动,而在市场上能够取得成功的人是那些拥有相关技能的人,这些技能需要通过教育和培训来获得。正如托马斯·皮凯蒂(Thomas Piketty)[10]在其《21世纪资本论》(Capital in the Twenty-First Century)一书中所观察到的,这是一个普遍的经济趋势,“趋同(即减少和限制不平等)的主要动力是知识的传播和对培训与技能的投资。”因此,随着经济日益依赖知识,那些没有相关技能或安全保障的失业工人将处于严重的不利地位。而那些拥有相关知识、技能和信息的人则更有优势,能够投资资本并增加财富。例如,即便经济增长和生产成本降低,那些没有技能的人将看到工资停滞不前。但是,假设由于生产成本降低,消费者的购买力增强,需求可能会上升,如果供应无法迅速满足这一需求,价格可能会随之上涨,从而引发需求拉动型通货膨胀。关键在于,经济和生产力增长可能无法自然应对的变量和情境。正如皮凯蒂所说,“没有自然、自发的过程能够防止不稳定、不平等的力量永久占据主导地位。”因此,必须采取积极的应对策略,来避开那些可能会导致漂浮在经济表面上的大量船只沉没的尖锐岩石。
[10] 法国经济学家。
在杰里米·里夫金(Jeremy Rifkin)[11]的《工作的终结》(The End of Work)一书中,他采用了更加严峻的语气:“(下一个)工业革命正迫使全球经济面临空前的危机,数百万人因技术创新失业,全球购买力急剧下降。”而埃里克·布林约尔松(Erik Brynjolfsson)[12]和安德鲁·麦卡菲(Andre McAfee)[13]在《第二次机器时代》(The Second Machine Age)[14]一书中提供了充分的理由,认为里夫金的观点具有一定的道理。他们认为,经济增长所带来的回报(bounty)——即通过较少的投入产生更多的产出,使商品更加便宜、更加易得,从而改善人们生活——并没有通过财富、收入和资本的分配,使每个人都被惠及而受益。换句话说,“科技进步的浪潮可能并不会使所有船只都得以提升。”例如,在上文提到的技能差距上,“自1970年代中期以来,拥有研究生学位的人的工资上涨了约25%,而高中辍学者的平均工资则下降了30%。”尽管自20世纪中期以来,美国GDP和经济生产力呈现“令人印象深刻的轨迹”,但该国的中位数收入却在下降,表明少数人正在获得好处,而大多数人却错失了机会:自里根时代以来,贫富差距不断扩大。布鲁金斯学会的这篇文章[15]也支持这一观点。
[11] 美国经济和社会理论家、作家、公众演说家、政治顾问和活动家。 [12] 经济学家、教授,现任斯坦福大学数字经济实验室主任。 [13] 研究员、作家,MIT斯隆管理学院副教授、MIT数字经济计划副主任。 [14] http://digamo.free.fr/brynmacafee2.pdf/ [15] https://www.brookings.edu/articles/rising-inequality-a-major-issue-of-our-time/
然而,也许这些观点的实际含义被错误的同情心所误导。尽管不平等的确存在,但这并不意味着它应该被视为最主要的关注变量。再次强调,技术创新使商品变得异常便宜,使人们的生活更加轻松、生活水平更高,并且通过提供更多商品、服务、信息和知识的可获取性,来满足人们的需求和愿望,从而让日常生活更便利。尽管财富分配可能存在不平等,但其整体增长使每个人都变得更好。而且,随着财富的进一步增长,这一趋势将持续。曾经只有富人能够负担得起的东西,如今大多数人都可以买得起。比如iPhone,它能提供比所有现存图书馆更多的信息,而历史上,只有最富有的人才能使用后者,而几乎任何人都能购买前者。欧洲最大的图书馆是1481年的梵蒂冈图书馆,馆内估计有三千五百本书籍和文献。ChatGPT估计,如果将网上的信息转化为书籍大小的量,将约合467千万亿本书。看看农业的发展。当经济学家米尔顿·弗里德曼(Milton Friedman)在1980年写《选择的自由》(Free to Choose)时,他写道,在《独立宣言》被签署的时代,“每20个工人中就需要有19个(从事农业劳动),以养活这个国家的居民,以及提供生产盈余以供出口,来交换外国商品。如今,只需要每20个工人中的不到1个工人,就能养活2.2亿美国居民,并提供生产盈余使美国成为世界上最大的食品出口国。”
彼得·蒂尔(Peter Theil)[16]常常宣称,问题是技术创新停滞,而不是与福利项目或分配模式相关的道德失败。科学和技术需要突破,以转变行业并提高生活标准。人工智能的智能革命,理应能够实现这一潜力。因此,也许最好是直接放手不管。专注于特定分配模式的公平或正义,就像尼采所说的那样,是一种“坏良心(bad-conscience)”——以被认为的集体利益为代价而追求个人利益时所体验到的罪疚感,但实际上,这种感受只会阻碍进步,而非推动它。真正和最好的目标,可以说是努力创新并创造推动历史发展的价值,这就像亚当·斯密(Adam Smith)[17]的“看不见的手”的隐喻一样,自然地调和了人们的自利。正如米尔顿·弗里德曼所说,“对于促使个人之间合作,进而使得每个个人都可以从合作中受益的状态而言,没有外部力量是必要的,没有对自由的侵犯是必要的。这就是为什么正如亚当·斯密所说的,‘只关心自身利益’的个人会‘被一只隐形之手引导,以推动一种与他的意图无关的目标’。”
[16] 硅谷投资人,PayPal创始人,企业家、风险投资家、政治思想家、作家。 [17] 经济学家、哲学家、道德理论家,古典经济学奠基人。
Section 1.2
关于经济增长是否足以改善长期的福祉和生活水平的问题,存在着高度争议。这个问题显然在这里无法解决。然而,提到这一点的目的是为了表明两种观点都具有正确性。个人在市场上追求自己的利益,像价格和工资这样的变量通过人们的自愿交换达成平衡,已经带来了巨大的成果。但差距也随之产生。
自动化是一个潜在的威胁。忽视它并声称它是危言耸听是一个错误。在可能的人工智能颠覆之后,某种形式的平衡达成之前,过渡期可能是复杂的,并且可能造成不必要的痛苦,如果事先处理,这些痛苦本可以避免。革命性的新技术可能既有好的一面,也有坏的一面。例如,十五世纪的印刷术使人们摆脱了教会强加的信息控制,催生了科学文献涌现的浪潮,为文明提供了巨大的价值。但它也导致了激烈而血腥的宗教战争,因为它允许人们传播各种信息。因此,为了避免类似的结果,在实施任何能够重新安排和重组社会经济安排的技术时,采取主动的方式非常重要。
从这里出发,通常的推论是,监管措施是应对这些可能性最好的手段。但与其满足于监管,正如马克·安德森在拜登政府执政期间警告的那样,监管会导致人工智能垄断,本文将力图支持自由市场中的自愿交换,同时促进必要的社会合作,帮助人们适应并在一个越来越不依赖于人力资本的经济中发挥作用。
本文的担忧是人们失去行使自身能动性(agency)的机会,从而无法拥有对自己的生活的控制(control)感和影响(influence)感。如果大量的人失去参与工作的机会,将会出现一条鸿沟,阻挡人们在世界中通常实现自己潜力的方式。他们将不再有机会在关键的社会领域做出具有深远影响的生活选择,这些选择需要谨慎和远见。人们将失去测试自我、发现天性的倾向和兴趣、辨认自己重视的事物以及行使选择去追求它的机会。社会中培养毅力、动机和个人意志的主要机会将会丧失。如果工作将主要被自动化替代,那么需要一个新的机会媒介来取而代之。作为社会制度的工作需要进步,并保持人们成长和发展的途径。
20世纪的自由主义哲学家约翰·杜威(John Dewey)写道:“正如感觉需要可感知的对象来刺激它们,我们的观察、回忆和想象能力也不是自发工作的,而是由当前社会活动所设定的需求激发。”像教育和工作这样的社会环境提供了刺激特定能力和功能所需的活动媒介,这些能力和功能需要完成定义活动的任务。人们常常争论说,自动化将使人们摆脱繁琐和机械的工作束缚。他们将有更多时间寻找新的方式来表达自己的需求,并最终实现工作一直阻碍他们实现的目标。人们将有自由去实现自己的潜力。但这一切不会自发发生。需要有能激发实现真正自由、意义和目的的活动的环境。当一个人完全孤单地待在一个没有人阻碍其动作和倾向的房间里时,可以说他是自由的。这样的人可以随心所欲。但由于没有能够激发适当反应的情境,且没有成功与失败的可能性,也缺少需要合作和协调的场景,这些场景有助于培养社会和情感的能力,也没有必要发挥智力和解决问题的能力,这个房间里的人的成长会停止,反而会枯萎,无法实现自由。一个从天空自由下落、不被任何东西阻挡的人,他看似自由,其实并不自由,因为他注定会撞向地面。
正如弗朗茨·卡夫卡(Franz Kafka)所写:“我自由了,因此我迷失。”哲学家让-保罗·萨特(Jean-Paul Sartre)则说:“人类被注定要自由。”
因此,当前的问题是,如何开辟一个人们能够自愿进入其中,并找到表达美好生活所需能力的机会的空间。此类机会,旨在行使人们的能动性,将被称为“质性丰富(qualitatively rich)机会”,而能够实现这些机会的环境则被称为“质性丰富环境”。
一个体现“质性丰富机会”的“质性丰富环境”是“开源生态系统”(open source ecosystems),它应当是人工智能发展的主要模式,它提供了以下框架:市场将为人们提供机会,让他们通过具有挑战性和刺激性的工作来行使自己的能动性,进而实现有意义的项目。人们将不得不学习新技能,克服障碍,但这一过程不仅是为了保持一个人们可以竞争、做出选择、发展能动性的市场,同时也促进人们生活中的目的和意义。如果经济要关上旧有工作形式的门,比如流水线和服务性工作,那么应该为人们提供更多有意义的工作机会。正如经济学家泰勒·科文(Tyler Cowen)在《莱克斯·弗莱德曼博客》(Lex Fridman podcast)中指出的那样,人们需要事情做。他们不想只是待在家里,正如COVID封锁所证明的那样。如果例行劳动和低技术劳动将被自动化,那么唯一的选择是确保存在“质性丰富机会”,以便人们能够利用并行使自己的能力,进行有意义的工作。
因此,应该在经济中引入一种新的范式。从佩卡·希曼宁(Pekka Himanen)[18]的《黑客伦理》(The Hacker Ethic)一书中汲取灵感,人们应当从以工业为基础的工作范式转向一种“黑客范式”。在工业范式中,个体主要执行重复性的劳动任务,其目的仅仅是为了获取收入以维持生存。而黑客范式则以内在价值为核心,强调工作本身的趣味性、刺激性、创造性与游戏性,其特征是激情与游戏,而非“履行对工作的责任”或“为经济做出贡献”的社会义务,正如马克斯·韦伯(Max Weber)[18]在《新教伦理与资本主义精神》(Capitalism and The Protestant Ethic)中所揭示的那样。黑客范式强调人类能动性及其实现价值的潜力,这种价值能提升人类。工业范式则在工人与他们与世界的积极参与之间产生疏离感:工人对他们所贡献的工作漠不关心;人们通常不喜欢甚至讨厌他们的工作。他们在那里是为了赚钱,而不是参与有意义的工作。正如希曼宁所写:“改革工作形式不仅是尊重工人的问题,更是尊重人类作为人类的问题。黑客不认同‘时间就是金钱’的格言,而认同‘这是我的生活’的格言。”正如埃里克·史蒂文·雷蒙德(Eric Steven Raymond)在《如何成为黑客》(How To Become A Hacker)[20]中所说,黑客认为世界充满了奇妙的问题,并在致力于解决这些问题中找到了自由。他们寻找需要动机和热情的项目,并相信当其他人也有机会获得同样的自由时,世界将变得无限美好,这需要社会合作以及对信息的最大程度的开放获取——这也正是“开源”的重要意义所在。
[18] 芬兰哲学家。 [19] 社会学家、经济学家、历史学家、政治学理论家,德国社会学与历史学传统的代表人物之一,被称为现代社会学的奠基人之一。 [20] http://www.catb.org/esr/faqs/hacker-howto.html
为了凸显为何引入新范式对于应对人工智能的挑战至关重要,具有显著的历史意义,我们可以回到亚当·斯密的思想。随后,将进一步阐明“质性丰富环境”与“质性丰富机会”的概念,并将其应用于当下以专有技术(proprietary technology)为核心的人工智能垄断体系。届时可以看到,这些垄断将扼杀黑客范式的生成,因此是不可取的。
透过亚当·斯密的视角我们可以看到,尽管工业化在长期内极大地提升了人们的生活水平,但它也对从事重复性、机械性劳动的人产生了消极影响,因为这类劳动削弱了对人类认知能力的刺激,阻碍了其全面发展。劳动分工极大地加速了专业化的进程,却减少了个体接触那些能调动其高级心智能力的机会——而这些能力正是实现有意义、有目标、富有成就感的工作的基础。人工智能与自动化正成为一种转型催化剂,逐步替代工业时代的工作模式与生产逻辑,将人力资本曾承担的任务转交予智能机器完成。若人工智能真的是一种进步——即人类进步——那么它就应回应亚当·斯密关于劳动分工及其对人类生活影响的担忧。
Part 2
Section 2.1
亚当·斯密在1776年写下了《国富论》(The Wealth of Nations)。受到艾萨克·牛顿(Isaac Newton)的影响,斯密希望理解社会背后的设计,以及社会的运作机制,类似于牛顿发现并使用采用机械论术语来公式化了解释宇宙的物理法则。那个时代的模型是将现象看作是像精密调校的手表一样有组织和有秩序的,所有部件和机械都在完美的和谐中协同工作,产生各种各样的效应和涌现现象。
在斯密生活的时代,第一次工业革命正在英格兰进行。城市扩张,曾经仅限于富人阶层的商品和服务变得更加廉价且易于获取,生活水平提高,基础设施得到了发展,表面上看,人们过上了前所未有的更好生活。斯密观察到社会的进步。由于大发现时代以及使欧洲人能够踏上新大陆的技术,欧洲人与那些似乎尚未经历欧洲所经历的历史进程、被欧洲人认为是“未开化”的民族接触,因此,欧洲大陆的风尚(ethos)是历史和文明正在进入一个新的、更为先进的阶段。科学探索和知识带来的创新提升了生产力和效率,从而使社会系统的组织更加复杂。斯密希望了解推动这一进程的因果机制。
斯密观察并认为劳动分工在社会经济中扮演了主要的,甚至是基础性的角色。随着社会组织的扩展,制造与生产过程逐渐细分为更为专业的任务,结果这些过程的产出大幅增加。在传统的行会框架中,工匠将一生投入到完整的手工业中,学习所需的所有方面并精通每一部分。这种行会框架逐渐被分工化的工厂模式所取代,后者在日益发展的城市中通过劳动分工的方式系统化生产。一个庞大的个体系统因此浮现,它需要极高的协调性,而劳动分工则将这一系统组织成一个复杂的机制,旨在调和人们的利益。
斯密还认为,劳动分工反映了人类本性中的某些更深层次的特征。人们涌向城市,赚取劳动报酬并享受更好的生活条件,因为斯密认为,人类天生具有进行交换(truck)、易货交易(barter)和贸易(exchange)[21]的倾向。他写道:“交换、易货和将一种物品与另一种物品贸易的倾向是所有人类共有的,在其他任何动物种群中都无法找到。”像狼这样的动物自然地在等级化的群体中组织自己,刚孵化的小鸟倾向于飞行,而像树木这样的有机体则在密林中争夺阳光。与此不同,人类进行交换、易货和贸易,是因为他们有天生的倾向来改善自身状况。劳动分工推动了这一目标的实现。
[21] 这三个词的区别在斯密研究中并没有得到广泛讨论。一些学者认为它们是同义的,通过重复表达强调(参考J.Z. Muller, (1993) Adam Smith in His Time and Ours: Designing the Decent Society, New York: Free Press第69页,Willie Henderson and Warren J. Samuels, (2004) The etiology of Adam Smith’s division of labor, in Essays on the History of Economics)。就这三个词在英语中的使用历史而言,truck system在英国曾经意为用实物作为工资的薪资制度,barter通常指不涉及货币的物物交换。
然而,斯密认为,劳动分工是一种权衡——它也有代价。尽管人们的生活水平提高,他们享受更好的条件,能够满足诸如食物、水和住所等消费需求,但劳动分工却将工人简化为机器中的齿轮。这些任务几乎不需要认知努力。一旦任务变得常规化,并转化为肌肉记忆后,便没有更多的障碍或问题需要克服。因此,斯密深切担忧这一过程将随着时间推移产生深远的负面认知效应。人们去上班,只要他们熟悉自己的任务,就不需要动脑;他们机械地行动。斯密直言不讳地写道:
“一个人一生都在执行少量简单的操作,并且这些操作的效果始终显而易见,他便无需发挥理解力,或利用自己的创造力去寻求解决从未出现的困难的方法。他自然会变得愚笨无知,几乎达到人类可能变得最愚笨和无知的地步。”
劳动分工提供的机会在质性上较为贫乏,无法使人们具备过上有意义和有目的生活的能力。借用另一位启蒙时期哲学家伊曼纽尔·康德(Immanuel Kant)的术语,劳动分工未能尊重人类的尊严,而尊严要求针对并培养那些能够使人过上自主选择生活所必需的能力。拥有尊严意味着对个人生活拥有影响力(influence)和掌控力(efficacy)。
劳动分工创造了更多提高生活水平的机会,但它没有提供“质性丰富机会”,使人们能够整合他们的能力并实现全面的人生。大多数人可用的机会并未促使他们将创造性和生产力能力集中于那些能够扩展他们在世界中自由感的目标上。与行会制度相比,劳动分工提供了更多的机会,但这些机会也更浅薄,更缺乏产生掌控感的体验。但由于生活水平较高,人们正确地选择了将自己降级为齿轮的工作。但正如斯密所观察到的,提高生活水平不足以满足人类需求的全面范围。它没有让大多数个体能够发挥他们的更高能力。
斯密认为,必须进行改善。对人们而言,更多“质性丰富机会”是至关重要的,这些机会使他们能够过上更有意义和目的的生活,体现人类尊严,并为行使他们的能动性提供基础。劳动分工提供了物质自由的增益,但并未提供足够的机会以实现更内在的、主体驱动的自由。
这无疑是卡尔·马克思对资本主义的重大批评之一。在资本主义体制下,人们与他们的劳动发生异化(alienation)。劳动的异化意味着人们与自己的活动脱离;即人在其自身和它的创造与生产能力之间产生了距离。在心理学家埃里克·弗洛姆(Eric Fromm)关于马克思的著作[22]中,他写道:“对马克思而言,异化的过程表现在工作和劳动分工中。工作是人类与自然之间的积极联系,是创造新世界的过程,包括创造人类自身……但随着私有制和劳动分工的发展,劳动失去了作为人类力量表达的特性;劳动及其产品变成了与人类、与他的意志和计划分离的存在。”
[22] Eric Fromm, Marx's Concept of Man.
人类通过他们所参与的活动以及在其中投入的内在力量和驱动力来理解和塑造自己的身份。通过创造和塑造世界及其环境,并将能量集中于外部项目和目标,一个人在世界中实现自我感。活动(Activity),而非被动的消费或任务,定义了马克思所说的人类本质。正如弗洛姆在其著作《拥有与存在》(To Have or To Be)中所指出的,通过“存在(being)”,而非“拥有(having)”,一个人才能体验到生活的意义和目的。通过“在爱中存在”,“以充满激情的方式存在”,“以积极行动的方式存在”,“以有希望的方式存在”,“有目的地存在”,以及“以有生产力地方式存在”,一个人才能过上充实的生活,而不必依赖“拥有”(爱、激情、积极性,等等)这些东西。劳动分工强调“拥有”,而其所涉及的许多工作和活动并未促使人们发展出“存在感”。正如德国诗人歌德(Johann Wolfgang von Goethe)所言,人类通过“将自己从可能性的黑夜转化为现实的白昼”来努力存在。人类通过外化他们内心的价值观和设想来追求成为自我,而这一过程通过活动得以实现。弗洛姆写道:“人类只有在生产性行为中才是活着的,只有在他通过表达自己特定的人类能力来把握外部世界,并且以这些能力来把握世界时……在这个生产性过程中,人类实现了自己的本质。”劳动分工减少了人类的能动性感,即人类以他们所珍视的、选择并在其上实践自身意志的有意义的方式,来主动影响和引导自己生活的能力。
通过创建“质性丰富环境”,黑客范式及其对开源的推动提供了多个“质性丰富机会”,从而推动了我们社会和政治结构的进步。它具有实现人类天性中更为积极的一面——人的能动感——的潜力,而不仅仅是其消极和消费的部分。这里的主要假设是,如果人工智能要发展并融入经济基础,它应当使人们的生活得到改善。更具体地说,如果自动化发生,其结果应当是改善人们的生活,而非对他们造成伤害。实现这一目标的一种途径是确保足够分配“质性丰富机会”,让每个人都能从中受益,而开源正是实现这一目标的途径。人工智能发展可能导致人们境况恶化以及抑制他们潜在机会的一个重要原因是存在使用专有模型来控制人工智能并主导其市场使用的垄断现象。黑客范式和开源则为避免这种结果提供了可能的解决方案。
Section 2.2
在理解垄断如何减少“质性丰富机会”之前,我们需要进一步弄清楚什么是“质性丰富机会”,以及它们激发并帮助发展哪些能力。在解释这类机会的性质及其意义之后,我们将探讨垄断是如何大幅削弱这些机会的可及性,以及这意味着什么。
“质性丰富机会”的理念源自亚里士多德(Aristotle)[23],更具体地说,是由哲学家玛莎·努斯鲍姆(Martha Nussbaum)和经济学家阿玛蒂亚·森(Amartya Sen)进一步发展的。亚里士多德认为,人类要实现繁荣、过上充实而有尊严的生活,必须达成某些特定的功能(functions)或方式。他认为存在一种“人性(human nature)”,而这种人性包含基本的和更高层次的需求。无论历史和偶然条件如何变化,人类都具有一些根本特征。当然,这些特征是在历史情境中体现的,但在所有文化和文明中都可以观察到某些本质上的一致性。亚里士多德说:“善是万物所追求的目标。”所谓“善”,即是一种事物的适当功能。例如,眼睛的善是“看见”,种子的善是“长成一棵树”。实现某物的适当功能,就是实现其“繁荣”(flourish),也就是达到它所追求和努力趋向的状态。达到这样的状态,就是获得一种内在价值。
[23] 古希腊哲学家。
作为一个人去实现其功能,需要基本的生活必需品,如食物、水、住所和行动能力。但这些物品本身并不具有内在价值;它们之所以有价值,是因为它们使人能够运作以追求更进一步、更有内在价值的事物。如果一个人仅仅拥有这些基本的生存条件,我们可以说他“运作”着,但未必是“良好地运作”。要使一个人“良好地运作”,必须拥有其他内在价值更高的资源。人类需要教育与信息获取,以发展其认知能力;需要家庭和亲密关系,以发展社交技巧、个人身份认同和情感处理能力;还需要能够施展意志、探索兴趣、投入热情的追求,并培养目标感的渠道。一个良好的政治与社会安排,即我们应当追求的那种社会制度,应当为人们提供具体的机会,让他们得以实践这些需求,从而实现良好的人类运作状态。“质性丰富机会”即是指那些能够为人类发展内在有价值的能力(如做出知情决策的能力、制定值得追求的目标及其实现路径的能力,以及建立有意义、有影响力的人际关系的能力)提供基础的机会。像工作、教育、社区和艺术等社会制度,正是那些激发并促进实现这些目标所需能力的质性丰富环境。
质性丰富机会之所以重要,是因为它们使人们具备发展“能动性”的能力。借用斯坦福大学心理学家阿尔伯特·班杜拉(Albert Bandura)[24]的概念,我们可以将“人类的能动性”理解为个体感受到自己对生活有控制和影响力的能力。更具体地说,质性丰富机会能够激发那些针对“自我效能”(self-efficacy)能力的行为。所谓“自我效能”,是指一个人在面对挑战和障碍时所拥有的自我信心感。当面对一个困难且新颖的任务时,高自我效能的人会评估自己有能力克服困难完成任务;他们会拥有坚持不懈、克服失败的动机;即使身处陌生与复杂情境中,他们也能维持良好的心理状态。质性丰富机会旨在发展那些能够提升自我效能以及应对具体情境所需的能力。通过这些机会,一个人得以锻炼其能动性、获取掌控力,从而扩展其自由感。而正如班杜拉(1994)[25]所说:“一个人自我效能感越强,他为自己设定的目标挑战越高,并且对这些目标的承诺也越坚定。”因此,通过增强自我效能,无论是在信念层面还是实践层面,个人将获得更高程度的自由,并过上更具质感、更丰富的人生。
[24] https://happyheartfamilies.citymax.com/f/Self_Efficacy.pdf [25] https://happyheartfamilies.citymax.com/f/Self_Efficacy.pdf
工作在塑造个体身份和自我认同方面具有至关重要的作用。它为人们提供了探索不同职业路径的机会,使他们能够发现自己在人生中希望追求的目标。工作往往也是建立职业与个人关系、融入不同社会网络的重要方式,同时也是人们获取能力、攀登社会阶梯的媒介。工作这一领域还能帮助人们在多种环境和情境中培养动机、智力以及态度。换句话说,工作为人们提供了发展某些功能或生活方式的机会,而这些功能和生活方式正是实现美好生活所必不可少的。
例如,想象一个年轻人第一次进入劳动力市场。他尝试了几份工作。他发现自己不太喜欢零售业,因为需要持续与顾客打交道。他又尝试了送货服务,结果发现自己不喜欢那种日复一日的重复性工作。最后,他在一个建筑工地找到了工作,并发现有些任务既有趣又具有挑战性。他喜欢动手工作的感觉,于是决定投身技工行业。这个人随后进入技校学习,建立起重要的人际关系,在新环境中受到挑战,被激发去提升技能、积累知识与经验,并在这个过程中不断面对和克服新的困难与障碍。毕业后,他抓住了一个机会——一位欣赏他职业精神的导师为他提供了许多关注和支持。之后,他在某家公司工作了一段时间,并在这个过程中积累了足够的知识和自信,决定创办自己的公司,以实现这个目标。他开始建立客户关系,专注于能让自己在竞争中脱颖而出的技能,并最终打造出一家成功的企业。
这听起来也许有些理想化,但却是一个既熟悉又现实的例子。它描绘了一种有目的的生活,这些目的是通过在环境和情境中发现的机会而形成的,这些环境和情境提供了能够产生能动感和自我价值感的体验。当然,要实现这样的人生画面,通常还需要一系列其他条件,例如成长于一个有支持的环境中,拥有探索个人兴趣所需的资源和时间等——但在美国,工作无疑是提供发展构成美好生活的关键功能的核心渠道。上文中的这个人通过学习新技能、克服挑战、做出关键选择来应对社会环境,最终实现了成功与成就。随着在专业领域的成长,他不断设立新的目标,并获得足够的自我效能感,相信自己能够实现这些目标。他发展出一整套完整的能力体系,最终也获得了尊严感。无论这个人过去或未来是否还拥有其他美好的人生经历,如果没有那些能够让他工作与成长的机会,他的人生质量将会大打折扣。
这里有一个真实的例子,不过这个人将保持匿名。在荷兰大学毕业后,他不想找一份“普通的工作”,于是开始前往其他国家旅行。他靠在 YouTube 上制作音乐赚了一些钱,住在各地的酒店和青年旅舍。但随着资金逐渐减少,孤独与疏离感开始加剧,他变得抑郁。他完全自由——可以去任何地方、看任何东西,做任何他想做的事——但他感到极度孤独。在亚洲的一家青年旅舍,他一个人躺在床上盯着天花板,没有钱、没有女朋友、也没有工作,他想起了父亲曾对他说的话:“他小时候教过我:每当我感到沮丧或者不知道做什么时,就去找一座沙堆,拿把铲子,把沙子从院子的一边搬到另一边……干点体力活,做点辛苦的事——做点什么。我做创业项目时也一样。”于是,他开始学习编程,开发软件和应用程序,并利用 Stripe 平台[26]将作品发布给公众以筹集资金。他专注于那些能够带来方向感与创作机会的活动。在真正的“黑客精神”指引下,他把世界看作充满待解决问题的迷人场域,有些问题他认为是可处理且值得去做的,于是尝试去解决。令人惊讶的是,他立下目标:一年内创办十二个初创公司——而他真的做到了。
[26] 一个专注于在线支付处理和金融基础设施的平台,帮助企业在互联网上管理资金流动。
这个人起初感到疏离与孤独,缺乏人生目标。因此他选择行动起来,把自己投入到使用基础编程语言与工具进行的创造性表达中。通过利用人工智能,他也更能创造出具有价值和实用性的产品,供他人使用与体验。他采纳了父亲的建议,将自己投入到实际行动中,结果是抑郁与焦虑逐渐缓解。他在信息丰富的环境中,发现了许多“质性丰富机会”,得以发展自我,提升自我效能感与能力。他与更多富有挑战性的目标建立联系,不断努力达成这些目标。而开源技术在这一过程中扮演了关键角色。
这也正是 Dora 生态系统的重要意义所在。通过像 DoraHacks.io 这样的平台,像上文所描述的那样的人们可以借由“质性丰富机会”,与全球各地的开发者协作,共同创新,创造出人们认为紧迫且相关的有意义的解决方案。该生态系统为开发者提供了必要的资源,使他们能够加入全球任何地方的 “BUIDL” 团队,解决引人入胜的问题;并在黑客松中与其他建设者一起感受到社区归属感;同时还通过激励机制推动他们实现有意义的目标,而这些目标往往又会引发更具挑战性和刺激性的下一阶段任务。Dora 生态系统创造了一个充满可能性的环境,使人们能够构建去中心化的产品与服务,例如将所有权交还给用户本人,增强他们在数字世界中的自主性、安全性以及对金融资产的控制力。正如下文将进一步讨论的,大型企业和垄断机构通常并不会从这些类型的技术中直接受益。那么,他们又有什么动机去资助这类技术呢?开源技术栈能够提升价值的质量,因为它为人们提供了开发更具意义产品的路径,而这些产品通常比那些由大型、目标狭隘的机构所产出的产品更具意义。
因此,如果自动化有可能减少甚至消除人们运用能动性、获得自我效能感的“质性丰富机会“,那么它所腾出的空间,理应由其他在质性上更丰富的机会来填补。如果确实存在“人性”这样的东西,而这种人性包含了一系列需要被发展、以使人得以过上有尊严生活的能力,那么最优与最值得追求的政治与社会安排,应当是将“质性丰富机会”公平分配,以确保人们有选择去运用自身能力、成为能够良好运作并实现繁荣生活的个体。为人们提供质性丰富机会,使他们能够加以利用,并据此组织、调动并集中自身内在力量于那些能够锻炼与激发个体能力的实践之上,这就构成了一个让人过上更有意义人生的基础。它是给予人们成为他们所珍视之人的自由。
接下来的部分将转向对 AI 垄断企业的讨论,揭示它们是如何压制上述这类未来机会的。
Part 3
Section 3.1
人工智能领域中潜在的垄断者不言自明:谷歌、苹果、微软、Meta 和亚马逊。这些公司以及少数其他企业在 2024 年占据了 65% 的固定网络流量和 68% 的移动网络流量[27]。谷歌大约占据全球约 90% 的搜索市场,其品牌名几乎已成为“搜索”行为本身的代名词;Meta 拥有主要的社交媒体平台,如 Instagram、Facebook 和 WhatsApp,这些都是人们日常交流与信息分享中访问量极高的平台;微软控制着大约 72% 的桌面操作系统市场;在美国,苹果约占据 60% 的智能手机市场份额;而亚马逊则主导了线上零售,其规模“超过美国排名其后的 15 家最大电商零售商的总和”[28]。此外,谷歌、Meta 和亚马逊合计占据了美国约 60% 的广告收入。我们在网上所接触到的产品、精美广告、以及注意力的买卖,主要都是由这几家大型科技公司驱动的。根据 Synergy Research [29]的研究,到本世纪末,微软、谷歌和亚马逊三家公司可能将掌握全球高达三分之二的数据份额。这些公司还控制着大部分云基础设施——亚马逊、微软、谷歌(以及阿里巴巴)合计拥有全球 67% 的云计算市场份额[30]。
这些公司拥有庞大的资源储备,同时也长期以来采用各种手段排挤竞争对手,包括通过并购消灭潜在威胁、利用市场主导地位优先推广自家产品、实行掠夺性定价、利用网络效应,以及其他众所周知的策略。例如,鉴于亚马逊在电子商务领域的市场主导地位,它可以通过优先推荐自家产品,排挤其他可能品质更高的供应商产品。消费者在面对价格更低的亚马逊产品时,往往更倾向于购买,而亚马逊正好拥有充足的资源来维持这种低价策略。在网络效应方面,“目前[31]大多数科技巨头的用户数量都以十亿计”,这为初创企业和小公司制造了几乎无法跨越的障碍。而谷歌也多次被指控故意降低某些内容的排名,并优先展示有利于自身利益的信息。
[27] https://www.applogicnetworks.com/blog/sandvines-2024-global-internet-phenomena-report-global-internet-usage-continues-to-grow [28] https://www.emarketer.com/learningcenter/guides/amazon-revenue/ [29] https://cxotoday.com/news-analysis/big-tech-to-own-two-thirds-of-world-data/#:~:text=Without%20sounding%20like%20a%20predictor%20of%20doomsday%2C,data%20centers%20while%20the%20rest%20is%20on [30] https://botpopuli.net/digging-deeper-assessing-big-techs-capture-of-the-internets-infrastructure/#:~:text=The%20dominance%20of%20Big%20Tech,Services%20(AWS)%20in%202006. [31] https://academic.oup.com/policyandsociety/advance-article/doi/10.1093/polsoc/puae012/7636223
如今,这些公司正积极争夺对人工智能发展的主导权。“Meta、微软、亚马逊和Alphabet 预计在2025年将累计投入高达 3250 亿美元的资本支出与投资……相比这些公司在2024年报告[32]的约 2230 亿美元,这相当于增长了 46%。”此外,“几乎没有例外,所有初创公司、新进入者,甚至 AI 研究实验室都依赖这些大型科技公司:他们依靠微软、亚马逊和谷歌的计算基础设施来训练系统,也依靠它们庞大的消费市场渠道来部署和销售 AI 产品[33]。”科技巨头垄断了初创公司赖以生存[34]的关键资源——人才、数据和算力。
[32] https://finance.yahoo.com/news/big-tech-set-to-invest-325-billion-this-year-as-hefty-ai-bills-come-under-scrutiny-182329236.html [33] https://www.technologyreview.com/2023/12/05/1084393/make-no-mistake-ai-is-owned-by-big-tech/ [34] https://academic.oup.com/policyandsociety/advance-article/doi/10.1093/polsoc/puae012/7636223
现有的行业巨头正在开发各种模型,以维持其在各自市场中的立足点。由于它们掌握着大多数资源——例如,“这些公司贡献了标普500指数公司市值的 22% 以上,其单独市值甚至超过了加拿大、意大利等[35]部分 G7 国家 GDP”——它们可以随意挤压竞争对手,阻止初创企业和小型公司进入市场。正如前文所述,随着 DeepSeek 在全球市场中作为竞争者不断取得进展,这些最大规模的 AI 公司正在大肆渲染一场“军备竞赛”,并夸大中国威胁以及人工智能可能带来的危害,从而推动对 AI 的监管和开发限制,而这些限制最终最有可能使它们自身受益。与此同时,由于垄断体制依赖于专有模型,其架构、权重、学习算法、代码以及内嵌目标都对公众隐蔽不明,在 AI 渗透信息网络的过程中,这些公司的经济与市场主导地位也将以一种“隐秘的方式”塑造人们的思维和行为。
[35] https://academic.oup.com/policyandsociety/advance-article/doi/10.1093/polsoc/puae012/7636223
那么,监管是否能解决这个问题呢?《麻省理工科技评论》最近指出:“监管或许有帮助[36],但政府政策最终往往加固了这些公司的权力,而非加以削弱——这些公司能够利用其资本与政治影响力来操控政策。”亚历克斯·蓝姆佩尔(Alex Rampell)[37]最近写道[38]:“拜登政府发布了一项行政命令[39],试图以人为设定的门槛限制计算能力,禁止开源技术,理由是其对国家安全构成威胁,同时这实际上为几家最大公司垄断监管资源敞开了大门。”例如,尽管萨姆·奥特曼在与贝利·韦斯(Barry Weiss)[40]的《自由新闻播客》(Free Press podcast)中否认了这一说法,投资人马克·安德森却一再警告称,拜登的 AI 行政命令的真正目的在于将 AI 的控制权交到少数几家公司(极可能是 OpenAI)手中,并通过提高市场准入门槛来消除竞争者。此外,尽管此举颇具争议、甚至可能显得天真,自从 DeepSeek 发布其 V1 和 V3 模型以来,Anthropic的 CEO 达里·阿摩地(Dario Amodei)一直呼吁加强出口管制政策[41],进一步限制中国获取芯片的能力。然而,正如迪伦·潘特(Dylan Patel)[42]和纳森·兰伯特(Nathan Lambert)[43]在 《莱克斯·弗莱德曼博客》中指出的那样,DeepSeek 的开源模型显然并不构成任何实质性的国家安全威胁。但它确实对那些依赖专有系统、通过模型控制潜在价值的生态构成了威胁。DeepSeek 的方法迫使这些“专有资本”朝着可被任何人使用与构建的公共资源方向转化。正因如此,阿摩地对“单极 vs. 双极世界”的坚持背后其实包含着竞争性的动机:要么 AI 权力集中于美国,要么中美都拥有对等的 AI 能力——而后者,在阿摩地看来,是必须避免的局面。
[36] https://www.technologyreview.com/2023/12/05/1084393/make-no-mistake-ai-is-owned-by-big-tech/ [37] 硅谷知名投资人,安德森·霍洛维茨基金(Andreessen Horowitz,简称a16z)的普通合伙人(General Partner)。 [38] https://a16z.com/why-deepseek-is-a-gift-to-the-american-people/ [39] https://www.federalregister.gov/documents/2023/11/01/2023-24283/safe-secure-and-trustworthy-development-and-use-of-artificial-intelligence [40] 美国著名记者、专栏作家,独立新闻平台自由新闻(The Free Press)的创办人。 [41] https://darioamodei.com/on-deepseek-and-export-controls [42] 半导体行业分析师,SemiAnalysis网站创始人。 [43] AI研究员、工程师。
或许,我们应当持有一种不那么鹰派的乐观态度。经济学家泰勒·科文提出了充分理由,认为与其全面投入一场军备竞赛,不如在相互合作[44]与共赢中寻找发展路径。当然,竞争仍然是必要的,但推动未来事件进程的竞争心态,不应仅仅源于达尔文式的“适者生存”逻辑,而应更接近尼采所观察到[45]的古希腊式“竞技”(Agon)[46]传统——那是一种社会制度,其中的艺术家、军事领袖与运动员通过竞争彼此激励、共同成长。
[44] https://www.youtube.com/watch?v=TcJtvzF-FP8&t=2736s [45] http://www.northamericannietzschesociety.com/uploads/7/3/2/5/73251013/nietzscheana5.pdf [46] https://en.wikipedia.org/wiki/Agon
没有对手,竞争者也将迷失方向。因为没有了改进、突破和创新的机会,个体便失去了变得更好、更具创造力的可能。竞争者的存在本身就依赖于愿意对抗他们的人。正是因为有人挑战,希腊诗人才得以想象得更深远、表达得更出色。尼采指出,希腊竞技者面临的最大危险不是失败,而是——失去竞争对手。他写道:“这正是希腊竞技理念的核心:它厌恶独裁,畏惧其危险,它渴望用‘另一个天才’来抵御某一位天才的压倒性力量。”我们不应将竞争理解为自然状态下的求生挣扎,那种资源稀缺、人与人互为威胁的霍布斯(Thomas Hobbes)式处境——“孤独、贫穷、肮脏、残暴而短暂”[47]。我们也不应将竞争本能视为某种原始性冲动的残余,只为了压制对手、消灭威胁。我们应当将其理解为一种可以高贵化的本能,正如尼采所言,它是“所有人类情感、行为与作品的唯一丰沃土壤”。竞争本能自身也具有德性,应当被培养成“在正确的时间、以正确的方式、出于正确的理由”去发挥作用的东西(亚里士多德,《尼各马科伦理学》(Nicomachean Ethics)第二卷),而不是被视作一种必要之恶。阿摩地害怕中国,这可能不是正确的回应——或许,一个更好的、更具德性的回应,是将中国视为值得尊敬的竞争者。
[47] 霍布斯的《利维坦》(Leviathan)中对自然状态下的人的生活的刻画。
Section 3.2
现在让我们聚焦于这些潜在的 AI 垄断企业为何会通过主导 AI 生态系统,压制质性丰富机会的更广泛传播。原因至少有两个:第一个涉及经济能动性,第二个涉及价值能动性。所谓经济能动性,是指人们进入市场、创造能满足消费者需求与欲望的价值与效用的能力。如果市场上的 AI 模型被集中掌握在少数公司手中,新兴企业与创业者为世界做出有价值贡献的机会将受到限制。那些能够回应民主、医疗保健、金融自主、政治权利与自由,或其他重大而有意义问题的创新,将大幅减少,从而也会降低 AI 所可能带来的社会福祉。任何威胁到这些少数 AI 垄断企业的控制力、影响力或财富的产品与服务,将被直接排除在市场之外,而不是由市场自然机制或消费者的真实需求所决定。
另一方面,所谓价值能动性,是指人们有能力对社会应追求的目标产生影响、发表意见。如果 AI 是在不透明的条件下、依据无法被公众了解和介入的价值与目标进行训练的,那么人们在这些问题上的影响力就会被削弱。如果由专有模型决定大多数或几乎全部嵌入 AI 的产品与服务的性质,那么人们对这些技术的控制权将大为减少。例如,所谓“对齐问题”指的是如何使 AI 与人类的利益保持一致。那么,什么是人类的利益?什么是构成一个良好且值得追求社会的目标?AI 的运行应遵循哪些道德与伦理原则?这些价值是否可以由少数几家公司决定,而无需公开其训练数据与学习算法?是否可以不接受公众监督与介入?如果技术架构被封闭在公众视野之外,那么上述问题的答案就更有可能来自权威的决定,而不是通过民主程序获得的共识。
经济能动性与价值能动性的双重丧失是危险的,本文余下部分将进一步阐述原因。
Section 3.3: 经济能动性
正如奥地利经济学家路德维希·冯·米塞斯(Ludwig von Mises)与弗里德里希·哈耶克(Friedrich Hayek)所著名指出的,苏联之所以在某些方面具有毁灭性,部分原因在于它无法通过自然发生的市场机制来合理分配资源。在这样的体制下,由内部的中央计划者来决定人民的需求与欲望——而这些人所掌握的信息资源既稀缺、又充满偏见与误差,无法实现准确分配。因此,大量官僚主义和强制性的手段被实施来调配国家资源。
举例来说,国家必须设定价格。至少是在苏联的情况中,并不存在一个广泛可用的自由市场,来使商品与服务受到供需关系的调节。生产者依据国家命令进行生产,而非根据市场激励(如竞争)自行调整方向——这些激励本应协调生产与消费,促成市场均衡。换句话说,价格失去了其关键信息功能——它本应指示资源该流向何处。哈耶克在《通往奴役之路》(The Road to Serfdom)中写道:“任何对某些商品的价格或数量的控制,都剥夺了竞争协调个体努力的能力,因为此时价格变动无法反映环境中的相关变化,也就无法为个体行动提供可靠的指导。”
不过,对本文来说,更重要的是:国家控制的生产与经济计划还意味着人们被剥夺了进入市场并创造价值的机会,使他们难以通过创新改善自身生活。任何可能威胁国家权力、削弱其合法性与影响力,或转移其部分控制权的创新行为,都将被禁止进入市场。举个例子:假设某人观察到,在某国的偏远乡村地区,由于常年洪水泛滥,人们无法修建道路,从而难以参与国家选举。这位发明者研发了一种不受洪水腐蚀的新型混凝土,并希望在乡村修建道路,改善人们的通行条件,让他们更容易参与公共事务。但当他向国家交通委员会申请资源时,却遭到了拒绝。原因是:该地区居民普遍希望拥有农业生产的自主权,因此国家不愿意为这些人提供进入选举制度的通道。而在缺乏市场竞争的情况下,也没有其他机会和机制可以去建设这些道路。
垄断,尤其是在受到监管体系保护的情况下,构成了类似的威胁。马克思曾做出一个著名批评:资本主义作为一种社会制度,其内在逻辑会逐步而不可避免地导致生产资料向少数人手中集中。虽然包括哈耶克和米塞斯在内的许多经济学家认为这种看法是错误的,并坚信在正常运作的资本主义体系中,这一结果是可以避免的。但如果人工智能遭到垄断,那么马克思的预测将比以往更加接近现实——无论这是由于历史规律,还是由于无法预见的结构性变数所致。正如克里斯·迪克森(Chris Dixon)[48]在其著作《阅读、写作、拥有》(Read, Write, Own)中观察到的,初创公司之所以能在市场中找到生存空间,部分原因在于大公司往往目光短浅,无法及时察觉到新兴产品正逐步获得消费者的关注。在专注于自身业务的过程中,这些巨头常常错失市场趋势与动向,而初创企业若运气足够好,就能积累足够势能以形成竞争力。但如果这些老牌巨头掌控了人工智能,他们就可能利用 AI 的能力来抹平初创企业原本可以利用的那些优势。随着时间推移,垄断企业将对市场形成难以穿透的控制权,各行各业的价值链最终将进一步“上游集中”到这些公司手中——比现在更甚。由专家所忽视、却能在市场中创造出意想不到价值的颠覆性技术,其创新空间可能会被完全挤压出去。
[48] 安德森·霍洛维茨基金普通合伙人,负责加密货币与Web3投资部门(a16z crypto)。
由于人工智能具备智能能力,它作为资本工具拥有极大的潜力,能够创造出改善人类生活的先进技术。但,由于有些对公众最有益的应用方式,可能并不符合政府与大型企业的利益,其潜在福祉也就可能在权力结构中被悲剧性地削弱。其中最明显的例子就是金融自主权。
看看比特币的案例就足以说明问题。中本聪(Satoshi)[49]发明比特币的初衷,是为了让人们拥有金融自由的能力——通过创造一种稀缺资源,其价值储存功能可与黄金相类比。比特币使那些生活在高通胀、货币极度贬值国家的人们,能够积累具有全球流通性的财富。人们可以拥有一种不会因货币供应过量或国家财政赤字上升而贬值的资产。比特币能够帮助人们过上更加稳定、安全的生活,它提供了透明性、个人所有权,以及能够激励社会合作的制度安排——这一切都无需依赖强制性信任或道德施舍。
[49] 比特币(Bitcoin)的创造者,身份不明。
人们本希望掌权者能够设法将中本聪为世界带来的巨大价值纳入现有体系。并不是说比特币应立即取代法定货币,而是说,考虑到比特币在应对法币体系中潜在致命问题方面提供了极具前景的解决方案,政府至少应当付出更大的努力,将这些解决方案纳入实践。合理的期待是,执政者会寻求一种方式,将区块链、比特币及其增强经济自由的潜力加以整合。然而,直到最近,有关这一技术的监管进展一直缓慢而混乱。在拜登政府期间,由于政策缺乏清晰性与明确性,关于加密货币的许多举措都未能充分发挥其潜在价值,反而阻碍了其更高效、更具生产性的使用路径。
如果AI被通过监管框架实现垄断,那么那些原本有潜力改善人类生活的技术也可能轻易被弃置。若这些技术与政府或企业利益发生冲突,大多数人将无法通过授权或专利使用这些专有模型,而中小型企业也会被并购吸收。尽管人工智能本可以彻底革新选举平台及人们参与选举的方式;尽管它本可以通过更优的数据安全手段或创造更多经济机会来增强个体自由,但探索这些可能性的路径,若与掌控大多数 AI 技术栈(甚至全部)的公司利益不符,就很可能被封锁。如果某项潜在的 AI 技术有可能通过解决某些产业赖以牟利、甚至具有寄生性质的问题,从而威胁广告收入,那么像谷歌与 Meta 这样的科技公司几乎必然会阻止这一技术进入市场的尝试。
特朗普政府迄今为止最重要的政策举措之一,就是其新的加密货币政策。该政策废除了上一届政府的行政命令,并致力于制定一个有助于推动该技术发展的监管框架。这对于人工智能领域中正在发生的其他形式的创新具有重要意义。有了除了传统风险投资之外的其他资源——例如通证经济(tokenomics)[50],初创公司可以为其项目提供资金支持,并积累发展势能。
[50] 也译为“代币经济学”,是对加密货币或区块链项目的经济层面的研究和分析,尤其关注其原生数字代币的设计和发行。该术语由“代币/通证”(token)和“经济学”(economics)两个词组合而成。
彼得·蒂尔在其著作《从零到一》(Zero to One)中提出,初创公司本身就在、也应该在寻求成为垄断者。他们需要在市场中占据一个特定空间,通过开发专有技术击败其他竞争者,并进一步排除后来者进入该市场。正如蒂尔所言,如果企业不想成为失败者,这种策略是至关重要的。若他们希望获得投资者的关注,就必须采取建立垄断地位的路径。然而,借助通证经济以及其他与加密货币相关的机制,人们也有机会开发出有价值的技术,同时保留开源精神。在这样的机制下,合作与协作得以推动,同时也能获得支持增长所需的资金。
Section 3.4 价值能动性
经济能动性之所以被削弱,是因为市场中那些具备质感的价值创造机会正在减少,使个体难以通过创新与生产满足不断变化的需求与欲望。当 AI 技术栈被少数几家垄断企业掌控并主导整个生态系统时,即使有人识别出一个真正有意义的问题,并设计出强有力的解决方案,如果这不符合大型企业的利益,该方案也很可能无法进入市场。经济活动及其所带来的社会价值,不应建立在一套容许权力任意压制、扼杀对社会整体有益事务的权威机制上。那么,AI 垄断企业又是如何压缩人们在价值能动性上的“质性丰富机会”的呢?
如果雷·库兹韦尔的奇点理论及其相关预测哪怕部分属实——如果人类真的将与非生物智能融合,并生活在日益人工化的环境中——那么人工智能的垄断不仅不可取,而且可以说是一种反乌托邦式的局面。这种设想唤起了关于“技术霸主”的画面:他们主宰着人类社会,而人们要么沦为智能机器的奴工,要么则是舒适而满足地享受着智能繁荣所带来的物质成果。在这样的图景中,总有人必须开采矿物资源,而另一些人则消费着由此生产出的丰富商品与服务。但如果我们假设 AI 的发展会快到足以让智能机器人无需人力就能完成矿产开采工作,那最终所有人都会转变为纯粹的“消费者”。“在接下来的几十年里,”库兹韦尔预测,“几乎所有例行性的体力与脑力活动都将被自动化。”届时,唯有那些具有社交性、创造性、创新性或高度不可预测性的工作将对拥有相关技能与培训的人开放,其余人将大多成为消费者。而借助纳米机器人、虚拟现实、非生物智能增强技术与无处不在的信息流动,我们的现实将愈加接近哲学家罗伯特·诺齐克(Robert Nozick)所设想的“体验机”(experience machine)。
通过某种装置的介入——无论是接入某种模拟装置,还是完全沉浸于类似虚拟现实(VR)那样的数字化、信息化环境中——人们可以体验到他们所希望的任何事情。任何感官体验、情绪、思想或事件,都会随时向任何人开放,随时可供消费。一个人可以体验写出“伟大的美国小说”所带来的深刻满足,像苏格拉底[51]那样在雅典法庭上勇敢地对抗陪审团,或像拿破仑那样英勇地站在青翠的高岗上俯瞰敌军,也可以在模拟的攀登中登上珠穆朗玛峰,体会坚持不懈的荣耀与世界之巅的视野。重要的不是这些事件是否真实发生,而是有人“渴望”它,而它就会“存在”。在这样的图景中,人生的目标就是消费;而“道德生活”——值得追求的生活——则被定义为追求内部刺激的生活。外部世界、个体真实的存在状态将不再重要。一个人是否真实地勇敢、富有同情心、充满爱意、公正、虔诚、善良或邪恶——这都不再有意义。人们的兴趣与冲突将在人工体验的消费中得到调和。在一个“问题已被解决”的世界中,没有需要行动者去解决的具体问题,行动者也就变得可有可无;唯一需要的,是“消费”。
[51] 古希腊哲学家。
这种情境真正危险之处在于,垄断企业将完全掌控生成技术的算法,也即控制我们可接触的信息结构。信息将不断被嵌入到以消费为中心的环境中。理想情况下,人们应当拥有自由,做他们想做的事,以他们认可的方式生活。但人们“看待”世界的方式,他们建构现实的方式,他们所处的社会语境——都会被那些已经整合智能资本、成为未来唯一商品与服务生产者的公司所过滤与塑造。哲学家艾伦·布鲁姆(Allan Bloom)在其著作《美国精神的封闭》(The Closing of the American Mind)中写道:“每一个教育系统都有一个它希望达成的道德目标,并据此构建其课程。它希望塑造出某种特定类型的人。”人工智能的垄断企业将通过改造人的生存环境来塑造“人是什么”的意义,以符合其自身利益。而真正重要的那些事情——运用能动性、实现真实的自我效能感、发现自己在人生中真正珍视与渴望的事物、建构让现实更一贯、宜居和统一的人生目标等等的机会——将被被企业利益所强烈影响和操控。而这些利益,本质上是围绕经济增长与利润最大化构建的。
在诺姆·乔姆斯基(Noam Chomsky)[52]与爱德华·赫尔曼(Edward Herman)[53]合著的《制造共识》(Manufacturing Consent)[54]一书中,两位作者提出,美国媒体实际上是一种宣传工具,而非客观的信息来源(这一观点当时颇具争议,但如今已成为主流看法)。他们认为,这种宣传功能是通过一套“过滤模型”来运作的,该模型将信息作为输入,并为公众“福祉”完美制造出标准化的输出。而其中一些媒体过滤机制,正是今天科技巨头所采用的。第一个过滤器是媒体公司的规模、所有权结构及其以利润为导向的商业模式。这使得进入媒体市场所需的投资与准入成本变得高得惊人,从而使其他竞争者难以生存。法律制度被用来执行一系列标准,这些标准压制了初创公司与中小企业的发展;而政府补贴则倾向于支持那些与政府利益保持一致的媒体公司。第二个过滤器是广告收入。广告不仅提升了特定公司的利润,也让它们在竞争中占据优势。那些无法吸引广告支持的媒体来源往往被市场边缘化。在此过程中,那些资金雄厚的媒体公司为了争取广告商的“青睐”,被迫迎合股东所要求的持续利润增长。这意味着任何挑战企业利益的声音,都可能因营收减少而遭受惩罚,最终被逐出市场竞争。
[52] 美国教授和公共知识分子,以其在语言学、政治活动和社会批评领域的研究而闻名。乔姆斯基有时被称为“现代语言学之父”,他也是分析哲学的重要人物和认知科学领域的创始人之一。 [53] 美国经济学家、媒体学者和社会评论家。 [54] https://focalizalaatencion.wordpress.com/wp-content/uploads/2012/08/herman-chomsky-2002-manufacturingconsent.pdf
这两个过滤器,正是当今科技巨头在其平台上运用的机制。他们主导市场,并依靠广告收入获取惊人的利润。正如乔姆斯基与赫尔曼所指出的另一个过滤器——意识形态偏向,大科技公司同样如此。就像上世纪八十年代的主流媒体会大肆报道敌对国家的种族灭绝与谋杀,却对发生在美国“势力范围”如拉美地区的同类事件视而不见,大科技公司也会在符合其经济与利益考量时,沿着特定的意识形态线索行事。由于其庞大的利润模式与动机,大科技公司的利益并不必然与真理、勇气、准确性、诚实、公正或善恶标准一致。只有当这些价值可以带来可预见的利润与效用最大化时,它们才可能被采纳。因此,如果 AI 垄断企业逐步获得市场主导权,并以其最先进模型为基础将大量商品与服务推向市场,那么人们对于世界的理解、他们如何看待现实、哪些事物最值得关注——都会在信息过滤器的引导下被重塑。这些过滤器正是大科技公司用于“产出有利于技术发展结果”的机制的一部分。个体发展自身的机会、形成自我世界观的过程、以及构成生活统一性的价值体系,都将受到科技信息过滤器的支配与重构。
我们很容易想象这样一个世界:信息的生成由一小部分集中的模型主导,这些模型构建出一套相互交织的信息网络,强化着不准确、不诚实、甚至是伪造的信息结构。新闻标题与报道可能散布错误主张与对现实的歪曲,而这些说法又会被其他虚假信息源所“证实”,彼此互为支撑。这种信息结构——即信息的组织方式及其意义赋予机制——可能会被人为策划,以服务于掌握权力与控制信息传播资源者所设定的特定目的。少数人认为“最好的”内容将被优先推送,而公众的想法将逐渐变得从属,最终被操控以符合权力方的利益。这并不是在指责某个实体或个人有恶意意图,而是在强调这样一种结构性困境:当生成并传播社会所消费的信息的能力被集中在少数几方手中时,这种权力格局所带来的难以解决的困境。
这最终将不可避免地导向类似于前文提到的诺齐克“体验机”的世界。人们获得一种超越消费伦理的生活形式能力的机会将被极大压缩,甚至被彻底剥夺。确实,假设未来大多数工作被自动化,人们通过基本收入实现生活保障,那么个体将从劳作的束缚中解放,不再被迫为经济增长贡献劳动力。从某种意义上说,人类将获得对约束与必需品的自由。但问题在于,如果没有施展自由的媒介,如果没有真正的机会在具体经验中运用自己的能动性,那么这种自由就并不是真正的自由——至少不是那种更深层次的、积极意义上的自由。那种引导人们思考“如何生活”、那种通过探索而发现值得投入心力与时间的事业的过程、那种确立人生目标并在充满挑战与刺激的环境中努力实现的能力,将会在这样的结构中逐渐失效,甚至彻底被边缘化。
哲学家约翰·杜威(John Dewey)曾写道:
我们很少意识到,我们对什么有价值、什么无价值的判断,在多大程度上是受制于我们并不自觉的标准。但一般来说,那些我们未经思考便视为理所当然的事物,正是决定我们有意识思维与判断结论的关键。而那些位于反思之下的习性,往往正是在我们与他人的持续互动与交换中形成的。
如果构成社会的制度是由那些以提升股东利润为目的的大型企业所主导——这将在它们主导人工智能时成为现实——那么它们的模型将渗透进经济的每一个领域,渗入我们的环境。这些环境将影响我们所被激发的生活方式,朝向不再体现为实际的‘存在’(being),而是依赖于‘拥有’(having)。也就是说,什么是显著的、值得追求的、具有吸引力的,不再取决于它所需要的努力、它所要求的冒险精神,或它所能激发的成长过程,而是取决于它能否填满并打发时间。对于一种由消费伦理塑造的意识而言,显而易见、理所当然的东西,将与另一种由合作构成、旨在促使个体能动性寻求意义与目标的社会完全不同。前者会看到一个充满各种可能体验的世界,但这些体验除了即时呈现的感受之外毫无意义;而后者则仍然会体验到“必要性”,以及那种不可遏制的冲动——即人必须感受到世界上仍有值得行动之事。赫尔曼·梅尔维尔(Herman Melville)在其伟大的美国小说《白鲸》(Moby Dick)中写下了这样的句子:
我坚定目标的道路铺设着铁轨,我的灵魂被刻槽其上。穿越无底峡谷,穿越山脉深处与激流之下,我直奔而去!没有障碍,没有转弯,只有通向铁轨终点的直路!
但愿,那些曾赋予梅尔维尔写作力量的精神碎片,在未来的某个角落依然得以存在。
Section 3.5
在《查拉图斯特拉如是说》(Thus Spoke Zarathustra)一书中,尼采描绘了两种未来人类的形象:“末人”(Last Man)与“超人”(Overman)。这两者在本能、欲望、动机与驱力方面有着根本性的不同。他们所看到的世界、感知世界的方式也截然不同:哪些事物对他们而言是显著且有意义的,什么是“善”或“恶”,对自我与世界的信念与态度,皆南辕北辙。
尼采对“末人”充满蔑视,而他的理想目标则是“超人”。“末人”代表一种追求舒适、安逸与满足的生活方式——那是一种消费的生活,是一种被动的满足。末人的畜群(herd)沉浸在“白天的微小快乐、夜晚的微小快乐中,但极度重视健康。他们说:‘我们发现了幸福’,眨着眼睛”。这样的存在,培养出的是享乐、安逸、饱足与消费的本能。尼采常将这种状态比喻为“反刍的牛”。而“超人”则是那种能够保有创造与超越本能的存在,他将生命导向某个遥远而艰难的目标,借此创造出一种超出自身的价值,使生活因此获得尊严与意义。超人仍然保有那种穿越变革性经验的冲动,那种能改变自我存在状态与意识体验的本能。正是这种冲动激发个体去掌握现实、理解现实,并因此增强他们影响现实的能力——个体越来越能够通过自己的活动与存在方式去塑造经验,建构世界。“末人”的美德——最大化快乐并最小化痛苦,在“超人”看来,恰恰是堕落的恶德。
人工智能的垄断结构及其以利润为导向的模式,正在推动“末人”的出现;而开源则是在为“超人”保留空间。随着人工智能被集中于少数强权之手,并通过这些权力机构设定的参数向市场大量输出商品与服务,整个信息景观及其传播网络将被精心策划成一种伦理结构——这种伦理以最大满足与持续消费所带来的舒适感为核心。在这样的结构中,个体所接触到的机会与环境将不再是“质感质性丰富”的;它们不会激发人们内在的主动能力,而只会使人变得能够追求一种消费社会所设定的终极目标——即最大化产出与回报的路径。
而开源生态系统,则保留了一个人类能动性仍能找到出口的空间。在那里,创造力与创新的目标不再仅仅是为了逐利,而是为了实现一种更完整的人类生活。
现在,本文开篇提出的一个问题是:自动化是否能带来足够多的机会,使被替代的劳动力能够重新获得工作?到现在我们已经看到,黑客范式与开源生态系统的确让这一目标更为可行。彼得·蒂尔的《从零到一》可以说是一本创业者指南。而他在书中明确指出:创业的目标应当是至少模仿,并努力实现垄断。所谓“成功”,就是在某一市场领域内占据主导地位,排除其他进入者,并通过专属供应尚未满足的需求来实现利润最大化。但成功初创企业的统计数据[55]却令人沮丧。初创企业的失败率高达90%。在那些成功者中,首次创业者只占18%。获得风险投资资金的初创企业不到1%;获得天使投资的比例也不到1%;约有75%的初创公司依赖“信用卡债务、商业贷款与信用额度”来筹集资金。成功的几率微乎其微,而对那些敢于创业,尤其是技术驱动型创业者(这是失败率最高的一类)所需承担的门槛与风险,往往近乎不可逾越。蒂尔之所以鼓励初创企业采用垄断策略,部分原因正是因为唯有在获得足够稳固的市场地位之后,公司才终于能够喘息、拓展与创新。一旦达到垄断标准,企业便能掌控其特定领域(甚至是整个)市场中的价值输出——理论上,这会给企业与消费者双方带来好处。
[55] https://explodingtopics.com/blog/startup-failure-stats
然而,这种能力最终被集中在极少数能够侥幸成功的公司手中。一旦掌握了这种能力,它们便没有自利的动机去放手。而当某家企业依靠其垄断地位终于获得创新的自由之时,这种专属能力却也意味着其他拥有创造潜力的人被排除在外,仅仅因为他们没有获得那唯一的机会。
如果企业的成功几率更高,那无疑会更具吸引力。但传统的融资方式以及作为成功创业者所需经历的艰难过程,往往会打击甚至扼杀那些本有能力提出改变世界的强大创意的人们。而黑客范式之所以具有深远意义,正是因为它能够提供丰富的机会,让人们得以创造价值,而无需承担传统创业所附带的高风险。黑客范式的“北极星”之一,就是致力于打造一个开放的、无需许可的生态系统——一个充满机会、人们可以自由进入、自由利用关键技术信息,并能够与成熟企业协作,从而共同创造出更好、更具创新性的产品的环境。开放的生态系统能够赋予人们创造价值的可能,而封闭系统则将他人排除在外,关闭了协作的大门。
按照蒂尔模式的创业路径,那是一条崎岖不平的道路。它需要强烈的意志、非凡的创造力,当然还需要一定的运气。而这三者的完美契合,是极其罕见的。因此,真正能在创业中成功的人少之又少。通过一个无需许可的开源生态系统,通过减轻人们在创造有价值事物时所承受的沉重负担,我们可以释放出大量机会——这些机会无需你拥有成为乔布斯或贝索斯那样的雄心与资源,也不要求你必须独力成就一番技术帝国。事实上,那些科技巨头的成功,早已远远超越了他们当初想要创造创新科技的初衷。开源生态系统将推动科技进步的机会民主化,使人们能够真正参与其中,不必成为少数天才企业家的复制品。创新,理应是更具协作性、更广泛分布的,也应当距离普通人更近。黑客范式正在使这成为可能,它正在重构赛场的平衡。
或许,并不是每个人都想成为一名“黑客”。但开源为我们保留并拓展了一种最佳的原型模式,通过它,可以将具体的机会持续地、公平地分配给人们,让他们得以实践自己的能动性。正是通过拥有这类机会,人们仍能发现和体验到那种强烈的召唤感——“我必须去做某事”——即,一个目标的存在,使个体不得不相信,若忽视它,人生就将失去意义与目标。如果我们生活的世界中,人们能接触到的、最显眼且最具吸引力的事物,仅仅是尼采所说的那种“幸福”——那种不涉及个人牺牲、不包含作为德性的献身(devotion)、也无需为艰难而变革性的事业奋斗的意愿的“幸福”——那么这样的世界无疑比不上另一个世界:在那里,人们拥有真正的机会去成就伟大的事业,只要他们愿意去追求。
结语
当 IBM 的“深蓝”在 1997 年击败国际象棋冠军卡斯帕罗夫(Garry Kasparov)时,象棋并未因此被淘汰。人们依旧继续比赛,并不断变得更强。这一事实——即从那以后任何人类棋手都不可能战胜 AI 程序——并未动摇那些热爱象棋之人的热情与动力。那些献身于象棋的人依旧渴望打磨自己的技艺,学习更复杂的策略,在不断成长的过程中超越其他选手。象棋选手依然渴望变得更优秀,仅仅是为了变得更优秀。通过意志与投入实现成长,当他们登上新的水平时,那种深刻的成就感依旧真实而宝贵,尽管一台机器将永远是更强的选手。
在一部关于李世石(Lee Sedol)在 2016 年败给 AlphaGo 的纪录片中,有人说:“他在这台机器的对弈中获得了成长。他的人性在与这台无生命的创造物对局之后得到了拓展。而我们的希望,是这种机器,尤其是背后的技术,也能对我们所有人产生同样的作用。”还有人说:“或许 AlphaGo 能向人类展示一些我们从未发现过的东西。或许那是一种美。”如果被正确使用,人工智能可以拓展个体影响与改变世界的能力。它可以提供创造的机会,而非只是劳作的义务;可以唤起意义的体验,而非冷漠与疏离;可以使人获得一种有价值的自由,而非无所依托的自由。但这一切都取决于社会写作和去推动人们向值得努力实现的目标前进的环境;它也要求我们以不同的方式理解竞争。
Agency/Agent/Agentic/… 能动性 Being (以…方式)存在 Qualitatively Rich 质性(上)丰富 Open Source Ecosystem 开源生态系统 Proprietary 专有 Pleasure 快乐 Happiness 幸福 所有著作、节目与人物名称第一次出现标记英文原文。 除网站链接之外的脚注,均为译者补充;脚注中的外部链接为原文超链接的对应标记。 原文中的特殊格式均保留在中文对应词项中。
-
@ 51faaa77:2c26615b
2025-05-12 17:34:37My goal is to share a concise list of questions about OP_RETURN limits that we've answered on Stacker News, as the original thread has become unwieldy with over 200 comments. We began compiling this list about a week ago. I've frequently shared individual links and received very positive feedback. I hope this resource helps us work from a common set of facts and reduces misinformation. I hope you find this as a valuable resource.
I'll list the questions in order of activity and tips received. I've removed duplicates, rephrased some statements as questions, and ignored completely irrelevant questions.
- Users should be given clear configurable options to decide what's in their mempool, why were these options taken away? link
- Won't spammers abuse large OP_RETURNs to bloat the blockchain and make IBD take longer? link
- A similar PR was proposed by Peter Todd 2 years ago, why was it rejected then? What has changed since then, why would this get approved now? link
- Shouldn't we be fighting spam, why are we making policies less strict, shouldn't we be making them more strict? link
- How would someone get around the standardness policy currently for OP_RETURN size? link
- What does "standardness mean" in reference to OP_RETURNs? link
- Will more than 1 OP_RETURN per transaction be possible if this PR gets merged? link
- What are the current OP_RETURN limits and what restrictions are being lifted? link
- Are current relay and mempool policies effective for filtering out spam transactions? link
- Is it true that this type of update could affect Bitcoin's decentralization? link
- Is it possible to stop the abuse of payment outputs (i.e., bare multisig, fake pubkeys, and fake pubkey hashes) that are used to embed data, thereby creating unprunable UTXOs that bloat the UTXO set? link
- What was the main reason /concern to add this PR? ... What will happen if we do nothing? link
- If OP_RETURN still cannot stop all the garbage, why is so important to remove it? Does it affect future development / improvements for LN? link
- What will be the worst case scenario if users still could set their own limits for OP_RETURN? link
- Shouldn't we debate the controversy of this PR on Github since it's where the code gets merged to make these changes? link
- What does it mean when someone says "Fix the Filters"? link
- Will this open the flood gates and drown out all legitimate onchain activity? link
- What can we do to stop spam at the consensus layer of Bitcoin? link
- Will Taproot wizards and other spam companies and projects start using OP_RETURN to put jpegs on the blockchain? link
- If we prevent these transaction from going into our mempools doesn't that prevent or delay these spam transactions from being mined therefore discouraging the spammers? link
- Is it possible to stop abuse of witness data? If so, how? (i.e ordinal theory inscriptions, "jpegs"). link
- Is there any conflict of interest with Bitcoin Core and companies like Citrea, in ref to this PR? link
- Is there any estimation on how much would this affect fees for the average user, considering external projects (like Citrea) using it? Any possibility that this could saturate the mempool and boost fees beyond reasonable? link
- Was this PR initially proposed because of Citrea BitVM needs? If so don't they only need a slight bump in OP_RETURN size, why is it being proposed to make the size unrestricted? link
- What makes a UTXO unprunable? Which projects are making unprunable UTXOs? link
- Why would a spammer use OP_RETURN if it's cheaper to use Witness data to store arbitrary data? link
- Won't large OP_RETURNs allow people to spam the mempool with 100kb transactions and mess up bitcoin for everyone by bloating the mempool and not allowing legitimate transactions in the mempool? link
- If relaxing op_return standardness limit seeks to make 'spam' prunable, then what are proponents of this change assuming about the long-term feasibility of running a 'full' (unpruned) bitcoin node? link
- Is allowing standardness for larger OP_RETURNs a slippery slope? If we allow this won't we continue to allow things that make bitcoin less for money and more for arbitrary data? link
- Won't removing the OP_RETURN cap reduce fee market pressure by allowing senders to consolidate arbitrary data into a single transaction? link
- Could this PR be the beginning of reducing other mempool restrictions? link
- Culture is what protects Bitcoin from external forces, shouldn't non-technical arguments be valid when considering these types of changes? link
- What's the difference between UTXO set, mempool, and blockchain, and how do larger OP_RETURN or witness data affect node resource usage? link
- What is the difference in defining a transaction as valid versus defining a transaction as standard and why do we need this difference? link
- If you're happy with your viewpoint on consensus and mempool rules, is not upgrading Bitcoin Core until it makes sense to you a valid action to take right now? link
- Why didn't this PR get a BIP number? link
- Why is core rushing this change? link
- If there will be a hard fork resulted from this PR (split chain like in 2017), what will happen with existing LN channels? Will exist on both chains with 2 LNs? link
- Isn't this all moot in a (almost guaranteed) future where fees are very high? link
- What is this controversy about, and what is it really about? link
originally posted at https://stacker.news/items/978404
-
@ 6be5cc06:5259daf0
2025-03-31 03:39:07Introdução
Uma sociedade não deve ser construída sobre coerção, mas sim sobre associações voluntárias e interações espontâneas entre indivíduos. A sociedade de condomínios privados surge como uma alternativa natural ao modelo atual de centros urbanos, substituindo a imposição centralizada por estruturas baseadas em contratos e livre associação. Cada condomínio é uma unidade autônoma, gerida por aqueles que ali residem, onde os critérios de entrada, as regras internas e o comércio são definidos pelos próprios participantes. Essa estrutura permite que indivíduos se agrupem com base em valores compartilhados, eliminando os conflitos artificiais impostos por estados e legislações homogêneas que não respeitam a diversidade de preferências e estilos de vida.
O objetivo dessa sociedade é simples: permitir que as pessoas vivam de acordo com seus princípios sem interferência externa. Em um mundo onde a coerção estatal distorce incentivos, os condomínios privados oferecem uma alternativa onde a ordem surge do livre mercado e da cooperação voluntária. Os moradores escolhem seus vizinhos, definem suas próprias normas e interagem economicamente conforme suas necessidades e interesses. O modelo elimina a necessidade de um controle central, pois os incentivos derivados do livre mercado levam ao desenvolvimento de comunidades prósperas, onde a reputação e a confiança mútua são mais eficazes do que qualquer imposição estatal. Assim, essa sociedade representa a evolução lógica do conceito de liberdade individual e propriedade privada como pilares fundamentais da ordem social.
Público-Alvo e Identidade
Os condomínios privados refletem o princípio da livre associação, permitindo que indivíduos escolham viver em comunidades alinhadas com seus valores e necessidades sem interferência estatal. Cada condomínio possui uma identidade própria, moldada pelos moradores e seus interesses, criando ambientes onde afinidades culturais, filosóficas ou profissionais são preservadas e incentivadas. Enquanto alguns podem ser voltados para famílias numerosas, oferecendo amplos espaços e infraestrutura adequada, outros podem priorizar solteiros e jovens profissionais, com áreas de coworking e espaços de lazer voltados para networking e socialização. Da mesma forma, comunidades religiosas podem estabelecer seus próprios espaços de culto e eventos, enquanto condomínios para idosos podem ser projetados com acessibilidade e serviços médicos especializados.
Críticos podem afirmar que essa forma de organização resulta em pouca diversidade de habilidades e perspectivas, mas esse argumento ignora a dinâmica das interações humanas e o caráter evolutivo dos intercâmbios entre comunidades. Nenhum condomínio existe isolado; a troca entre diferentes comunidades ocorre naturalmente pelo mercado, incentivando o intercâmbio de conhecimento e serviços entre especialistas de diferentes áreas. Além disso, a ideia de que todos os grupos devem conter uma variedade aleatória de indivíduos desconsidera que a verdadeira diversidade nasce da liberdade de escolha, e não da imposição estatal de convivências forçadas.
Outra crítica possível é que a existência de critérios de entrada pode levar à segregação social. No entanto, essa preocupação deriva da concepção errônea de que todas as comunidades devem ser abertas e incluir qualquer pessoa indiscriminadamente. Porém, a liberdade de associação implica, necessariamente, a liberdade de exclusão. Se um grupo deseja manter determinada identidade cultural, religiosa ou profissional, isso não impede que outros grupos criem suas próprias comunidades conforme seus valores e recursos. Além disso, essa especialização leva a uma concorrência saudável entre condomínios, forçando-os a oferecer melhores condições para atrair moradores. Em vez de uma sociedade homogênea moldada por burocratas, temos um mosaico de comunidades autônomas, onde cada indivíduo pode encontrar ou criar o ambiente que melhor lhe convém.
Autossuficiência e Especialização
A força dos condomínios privados reside na capacidade de seus moradores de contribuírem ativamente para a comunidade, tornando-a funcional e autossuficiente sem a necessidade de intervenções estatais. Diferentes condomínios podem se especializar em áreas específicas ou ter diversos profissionais de diferentes setores, refletindo as competências e interesses de seus residentes. Essa descentralização do conhecimento e da produção permite que cada comunidade desenvolva soluções internas para suas demandas, reduzindo dependências externas e estimulando a prosperidade local.
Os moradores atuam como agentes econômicos, trocando bens e serviços dentro do próprio condomínio e entre diferentes comunidades. Um condomínio voltado para a saúde, por exemplo, pode contar com médicos, enfermeiros e terapeutas que oferecem consultas, aulas e assistência médica particular, remunerados diretamente por seus clientes, sem a intermediação de burocracias. Da mesma forma, um condomínio agrícola pode abrigar agricultores que cultivam alimentos orgânicos, compartilham técnicas de cultivo e comercializam excedentes com outros condomínios, garantindo um fluxo contínuo de suprimentos. Em um condomínio tecnológico, programadores, engenheiros e empreendedores desenvolvem soluções de TI, segurança digital e energia renovável, promovendo a inovação e ampliando as possibilidades de intercâmbio econômico.
A economia interna de cada condomínio se fortalece através de serviços oferecidos pelos próprios moradores. Professores podem ministrar aulas, técnicos podem prestar serviços de manutenção, artesãos podem vender seus produtos diretamente para os vizinhos. O mercado livre e voluntário é o principal regulador dessas interações, garantindo que a especialização surja naturalmente conforme a demanda e a oferta se ajustam. Essa estrutura elimina desperdícios comuns em sistemas centralizados, onde a alocação de recursos se dá por decisões políticas e não pelas necessidades reais da população.
Alguns argumentam que a especialização pode criar bolhas de conhecimento, tornando os condomínios excessivamente dependentes de trocas externas. Contudo, essa preocupação desconsidera a natureza espontânea do mercado, que incentiva a cooperação e o comércio entre comunidades distintas. Nenhum condomínio precisa produzir tudo internamente; ao contrário, a divisão do trabalho e a liberdade de escolha promovem interdependências saudáveis e vantajosas para todos. Assim, cada morador se insere em um ecossistema dinâmico, onde suas habilidades são valorizadas e sua autonomia preservada, sem coerções estatais ou distorções artificiais impostas por planejadores centrais.
Infraestrutura e Sustentabilidade
A solidez de uma sociedade baseada em condomínios privados depende de uma infraestrutura eficiente e sustentável, projetada para reduzir a dependência externa e garantir o máximo de autonomia. Sem um aparato estatal centralizador, cada comunidade deve estruturar seus próprios meios de obtenção de energia, água, alimentação e demais bens essenciais, garantindo que suas operações sejam viáveis a longo prazo. Essa abordagem, longe de ser um entrave, representa a verdadeira inovação descentralizada: um ambiente onde as soluções emergem da necessidade real e da engenhosidade humana, e não de diretrizes burocráticas e regulamentos ineficazes.
Cada condomínio pode investir em tecnologias sustentáveis e autônomas, como energia solar e eólica, reduzindo custos e minimizando a vulnerabilidade às flutuações do mercado energético tradicional. Sistemas de captação e filtragem de água da chuva, bem como a reutilização eficiente dos recursos hídricos, garantem independência em relação a empresas monopolistas e governos que frequentemente administram esse bem de forma ineficaz. Hortas comunitárias e fazendas verticais podem suprir grande parte da demanda alimentar, permitindo que cada condomínio mantenha sua própria reserva de alimentos, aumentando a resiliência contra crises externas e instabilidades de mercado.
Além dos recursos naturais, os espaços compartilhados desempenham um papel fundamental na integração e no fortalecimento dessas comunidades. Bibliotecas, ginásios, creches e salas de aula permitem que o conhecimento e os serviços circulem internamente, criando um ambiente onde a colaboração ocorre de maneira orgânica. A descentralização também se aplica ao uso da tecnologia, plataformas digitais privadas podem ser utilizadas para conectar moradores, facilitar a troca de serviços e produtos, além de coordenar agendamentos e eventos dentro dos condomínios e entre diferentes comunidades.
O Bitcoin surge como uma ferramenta indispensável nesse ecossistema, eliminando a necessidade de bancos estatais ou sistemas financeiros controlados. Ao permitir transações diretas, transparentes e resistentes à censura, o Bitcoin se torna o meio de troca ideal entre os condomínios, garantindo a preservação do valor e possibilitando um comércio ágil e eficiente. Além disso, contratos inteligentes e protocolos descentralizados podem ser integrados para administrar serviços comuns, fortalecer a segurança e reduzir a burocracia, tornando a governança desses condomínios cada vez mais autônoma e imune a intervenções externas.
Alguns podem argumentar que a falta de um aparato estatal para regulamentar a infraestrutura pode resultar em desigualdade no acesso a recursos essenciais, ou que a descentralização completa pode gerar caos e ineficiência. No entanto, essa visão ignora o fato de que a concorrência e a inovação no livre mercado são os maiores motores de desenvolvimento sustentável. Sem monopólios ou subsídios distorcendo a alocação de recursos, a busca por eficiência leva naturalmente à adoção de soluções melhores e mais acessíveis. Condomínios que oferecem infraestrutura de qualidade tendem a atrair mais moradores e investimentos, o que impulsiona a melhoria contínua e a diversificação dos serviços. Em vez de depender de um sistema centralizado falho, as comunidades se tornam responsáveis por sua própria prosperidade, criando uma estrutura sustentável, escalável e adaptável às mudanças do futuro.
Governança e Administração
Em uma sociedade descentralizada, não se deve depender de uma estrutura estatal ou centralizada para regular e tomar decisões em nome dos indivíduos. Cada condomínio, portanto, deve ser gerido de maneira autônoma, com processos claros de tomada de decisão, resolução de conflitos e administração das questões cotidianas. A gestão pode ser organizada por conselhos de moradores, associações ou sistemas de governança direta, conforme as necessidades locais.
Conselhos de Moradores e Processos de Tomada de Decisão
Em muitos casos, a administração interna de um condomínio privado pode ser realizada por um conselho de moradores, composto por representantes eleitos ou indicados pela própria comunidade. A ideia é garantir que as decisões importantes, como planejamento urbano, orçamento, manutenção e serviços, sejam feitas de forma transparente e que os interesses de todos os envolvidos sejam considerados. Isso não significa que a gestão precise ser completamente democrática, mas sim que as decisões devem ser tomadas de forma legítima, transparente e acordadas pela maior parte dos membros.
Em vez de um processo burocrático e centralizado, onde uma liderança impõe suas vontades sobre todos a muitas vezes suas decisões ruins não o afetam diretamente, a gestão de um condomínio privado deve ser orientada pela busca de consenso, onde os próprios gestores sofrerão as consequências de suas más escolhas. O processo de tomada de decisão pode ser dinâmico e direto, com os moradores discutindo e acordando soluções baseadas no mercado e nas necessidades locais, em vez de depender de um sistema impessoal de regulamentação. Além disso, a utilização de tecnologias descentralizadas, como plataformas de blockchain, pode proporcionar maior transparência nas decisões e maior confiança na gestão.
Resolução de Conflitos
A resolução de disputas dentro dos condomínios pode ocorrer de forma voluntária, através de negociação direta ou com o auxílio de mediadores escolhidos pelos próprios moradores por meio de um sistema de reputação. Em alguns casos, podem ser criados mecanismos para resolução de disputas mais formais, com árbitros ou juízes independentes que atuam sem vínculos com o condomínio. Esses árbitros podem ser escolhidos com base em sua experiência ou especialização em áreas como direito, mediação e resolução de conflitos, com uma reputação para zelar. Ao contrário de um sistema judicial centralizado, onde a parte envolvida depende do Estado para resolver disputas, os moradores possuem a autonomia para buscar soluções que atendam aos seus próprios interesses e necessidades. A diversidade de abordagens em um sistema de governança descentralizado cria oportunidades para inovações que atendem diferentes cenários, sem a interferência de burocratas distantes dos próprios problemas que estão "tentando resolver".
Planejamento Urbano e Arquitetura
A questão do design dos condomínios envolve não apenas a estética das construções, mas também a funcionalidade e a sustentabilidade a longo prazo. O planejamento urbano deve refletir as necessidades específicas da comunidade, onde ela decide por si mesma como construir e organizar seu ambiente.\ Arquitetos e urbanistas, muitas vezes moradores especializados, serão responsáveis pela concepção de espaços que atendam a esses critérios, criando ambientes agradáveis, com áreas para lazer, trabalho e convivência que atendam às diversas necessidades de cada grupo.\ Além disso, condomínios com nessecidades semelhantes poderão adotar ideias que deram certo em outros e certamente também dará no seu.
Segurança e Vigilância
Em relação à segurança, cada condomínio pode adotar sistemas de vigilância e proteção que atendam à sua realidade específica. Algumas comunidades podem optar por sistemas de câmeras de segurança, armamento pleno de seus moradores, patrulhamento privado ou até mesmo formas alternativas de garantir a proteção, como vigilância por meio de criptografia e monitoramento descentralizado. A chave para a segurança será a confiança mútua e a colaboração voluntária entre os moradores, que terão a liberdade de definir suas próprias medidas.
Comércio entre Condomínios
A troca de bens e serviços entre as diferentes comunidades é essencial para o funcionamento da rede. Como cada condomínio possui um grau de especialização ou uma mistura de profissionais em diversas áreas, a interdependência entre eles se torna crucial para suprir necessidades e promover a colaboração.
Embora alguns condomínios sejam especializados em áreas como saúde, agricultura ou tecnologia, outros podem ter um perfil mais diversificado, com moradores que atuam em diferentes campos de conhecimento. Por exemplo, um condomínio agrícola pode produzir alimentos orgânicos frescos, enquanto um condomínio de saúde oferece consultas médicas, terapias e cuidados especializados. Já um condomínio tecnológico pode fornecer inovações em software ou equipamentos de energia. Podem haver condomínios universitários que oferecem todo tipo de solução no campo de ensino. Ao mesmo tempo, um condomínio misto, com moradores de diversas áreas, pode oferecer uma variedade de serviços e produtos, tornando-se um centro de intercâmbio de diferentes tipos de expertise.
Essa divisão de trabalho, seja especializada ou diversificada, permite que os condomínios ofereçam o melhor de suas áreas de atuação, ao mesmo tempo em que atendem às demandas de outros. Um condomínio que não se especializa pode, por exemplo, buscar um acordo de troca com um condomínio agrícola para obter alimentos frescos ou com um condomínio tecnológico para adquirir soluções inovadoras.
Embora os condomínios busquem a autossuficiência, alguns recursos essenciais não podem ser produzidos internamente. Itens como minérios para construção, combustíveis ou até mesmo água, em regiões secas, não estão disponíveis em todas as áreas. A natureza não distribui os recursos de maneira uniforme, e a capacidade de produção local pode ser insuficiente para suprir todas as necessidades dos moradores. Isso implica que, para garantir a qualidade de vida e a continuidade das operações, os condomínios precisarão estabelecer relações comerciais e de fornecimento com fontes externas, seja através de mercados, importações ou parcerias com outras comunidades ou fornecedores fora do sistema de condomínios. O comércio intercondomínios e com o exterior será vital para a complementaridade das necessidades, assegurando que os moradores tenham acesso a tudo o que não pode ser produzido localmente.
O sistema econômico entre os condomínios pode ser flexível, permitindo o uso de uma moeda comum (como o Bitcoin) ou até mesmo um sistema de troca direta. Por exemplo, um morador de um condomínio misto pode oferecer serviços de design gráfico em troca de alimentos ou cuidados médicos. Esse tipo de colaboração estimula a produtividade e cria incentivos para que cada condomínio ofereça o melhor de seus recursos e habilidades, garantindo acesso aos bens e serviços necessários.
Relações Externas e Diplomacia
O isolamento excessivo pode limitar o acesso a inovações, avanços culturais e tecnológicos, e até mesmo dificultar o acesso a mercados externos. Por isso, é importante que haja canais de comunicação e métodos de diplomacia para interagir com outras comunidades. Os condomínios podem, por exemplo, estabelecer parcerias com outras regiões, seja para troca de produtos, serviços ou até para inovação. Isso garante que a rede de condomínios não se torne autossuficiente ao ponto de se desconectar do resto do mundo, o que pode resultar em estagnação.
Feiras, mercados intercondomínios e até eventos culturais e educacionais podem ser organizados para promover essas interações. A colaboração entre as comunidades e o exterior não precisa ser baseada em uma troca de dependência, mas sim numa rede de oportunidades que cria benefícios para todas as partes envolvidas. Uma boa reputação atrai novos moradores, pode valorizar propriedades e facilitar parcerias. A diplomacia entre as comunidades também pode ser exercida para resolver disputas ou desafios externos.
A manutenção de boas relações entre condomínios é essencial para garantir uma rede de apoio mútuo eficiente. Essas relações incentivam a troca de bens e serviços, como alimentos, assistência médica ou soluções tecnológicas, além de fortalecer a autossuficiência regional. Ao colaborar em segurança, infraestrutura compartilhada, eventos culturais e até mesmo na resolução de conflitos, os condomínios se tornam mais resilientes e eficientes, reduzindo a dependência externa e melhorando a qualidade de vida dos moradores. A cooperação contínua cria um ambiente mais seguro e harmonioso.
Educação e Desenvolvimento Humano
Cada comunidade pode criar escolas internas com currículos adaptados às especializações de seus moradores. Por exemplo, em um condomínio agrícola, podem ser ensinadas práticas agrícolas sustentáveis, e em um condomínio tecnológico, cursos de programação e inovação. Isso permite que crianças e jovens cresçam em ambientes que reforçam as competências valorizadas pela comunidade.
Além das escolas internas, o conceito de homeschooling pode ser incentivado, permitindo que os pais eduquem seus filhos conforme seus próprios valores e necessidades, com o apoio da comunidade. Esse modelo oferece uma educação mais flexível e personalizada, ao contrário do currículo tradicional oferecido pelo sistema público atual.
Os condomínios universitários também podem surgir, criando ambientes dedicados ao desenvolvimento acadêmico, científico e profissional, onde estudantes vivem e aprendem. Além disso, programas de capacitação contínua são essenciais, com oficinas e cursos oferecidos dentro do condomínio para garantir que os moradores se atualizem com novas tecnologias e práticas.
Para ampliar os horizontes educacionais, os intercâmbios estudantis entre diferentes condomínios podem ser incentivados. Esses intercâmbios não se limitam apenas ao ambiente educacional, mas também se estendem ao aprendizado de práticas de vida e habilidades técnicas. Os jovens de diferentes condomínios podem viajar para outras comunidades para estudar, trabalhar ou simplesmente trocar ideias. Isso pode ocorrer de diversas formas, como programas de curto e longo prazo, através de acordos entre os próprios condomínios, permitindo que os estudantes se conectem com outras comunidades, aprendam sobre diferentes especializações e desenvolvam uma compreensão mais ampla.
Essa abordagem descentralizada permite que cada comunidade desenvolva as competências essenciais sem depender de estruturas limitantes do estado ou sistemas educacionais centralizados. Ao proporcionar liberdade de escolha e personalização, os condomínios criam ambientes propícios ao crescimento humano, alinhados às necessidades e interesses de seus moradores.
A sociedade dos condomínios privados propõe uma estrutura alternativa de convivência onde as pessoas podem viver de acordo com seus próprios valores e necessidades. Esses condomínios oferecem um modelo de organização que desafia a centralização estatal, buscando criar comunidades adaptáveis e inovadoras. A liberdade garante que as habilidades necessárias para o sustento e crescimento das comunidades sejam mantidas ao longo do tempo.
A troca de bens, serviços e conhecimentos entre os condomínios, sem a imposição de forças externas, cria uma rede de boas relações, onde o comércio e a colaboração substituem a intervenção estatal. Em vez de depender de sistemas coercitivos, cada condomínio funciona como um microcosmo autônomo que, juntos, formam um ecossistema dinâmico e próspero. Este modelo propõe que, por meio de trocas voluntárias, possamos construir uma sociedade mais saudável. Lembre-se: Ideias e somente ideias podem iluminar a escuridão.
-
@ 7e8ca676:b6a7569f
2025-05-13 01:47:06There was a time when Bitcoin smelled like ozone and rebellion. When men wore hoodies because they meant it. When software didn’t come with a mission statement or a DAO-approved pronoun guide. When the only thing a Bitcoin dev feared was being wrong, not being unpopular. \ \ That time is dead. \ \ It died somewhere between the fifth Twitter thread explaining why putting JPEGs on the base layer was “valid use,” and the fiftieth PR that added complexity to the engine in order to simplify the cupholders. Now we’re here, ankle-deep in a pool of our own mediocrity, arguing over whether we should triple the OP_RETURN limit so a VC-backed sidechain company can offload its plumbing costs onto your Raspberry Pi. \ \ Welcome to the future. It’s paved in GitHub comments and smells like a WeWork bathroom. \ \ Let’s speak plainly. This whole drama is not about OP_RETURN. It’s about power. Not electrical power. Not hash power. Soft power. The power to redefine what Bitcoin is for, one pull request at a time. It is the power to turn the protocol from a blunt, uncompromising monetary weapon into a polite corporate middleware bus for protocol startups that couldn’t raise a Series B without a little help from their friends in Core. \ \ Jameson Lopp wants to increase the OP_RETURN limit. Why? Because his company, Citrea, needs to squeeze a few more bytes into every transaction. It's not a crime. It’s not even dishonest. It's just pathetically on the nose. They don’t want to pay miners directly. They want the mempool to be their free emergency broadcast system. They want to lean on the public infrastructure without sending flowers or even a thank-you note. \ \ And what does Core say? \ \ They say yes. \ \ Because of “technical merit.” \ \ Because it’s “more efficient.” \ \ Because the devs have long since stopped being guardians of the protocol and started being unpaid product managers for whoever can string enough buzzwords together in a conference talk. \ \ You can see it in their eyes. You can hear it in their interviews. The Core devs aren’t building Bitcoin anymore. They’re managing Bitcoin. They’re curating it. Polishing it. Nerfing it for mass adoption. Like a bunch of Brooklyn baristas trying to make espresso kid-friendly. Bitcoin used to be an espresso shot poured directly into the mouth of the Federal Reserve. Now it’s a lukewarm latte with oat milk and consensus-breaking sprinkles. \ \ The worst part? The refusal to acknowledge that this is not about UTXO bloat. It's not about cleaner mempools. It’s about upstreaming corporate convenience into the base layer under the halo of neutrality. It’s about giving polite names to ugly compromises. “Policy adjustment.” “Ergonomic improvement.” “Relay optimization.” They speak in this weird dialect of bureaucratic techspeak that means nothing and does less. \ \ Meanwhile, the only thing that actually matters gets lost: ossification. \ \ The holy grail of this protocol is ossification. Not stagnation. Not laziness. Not gridlock. Just stability. The longer Bitcoin can go without consensus changes, the more credible it becomes. The more unchangeable it becomes. Like gravity. Like rust. It doesn’t matter how good your argument is. The system won’t budge. That’s the point. The value of Bitcoin isn’t in how clever the devs are. It’s in how irrelevant they become. \ \ But ossification isn't something you declare. You sneak up on it. You approach it sideways, like a wild animal. You do less and less until eventually you’re doing nothing at all, and nobody even remembers how to change the code anymore. That is the goal. To make the protocol so boring, so petrified, that no one can move it. Not Lopp. Not Luke. Not even Larry from Legal. \ \ To get there, we need something devs hate: client balkanization. \ \ That means splitting the client into pieces. Break the codebase. Separate the consensus engine from the policy fluff. Let people run different implementations. Let the free market decide what filters they want, what mempool rules they tolerate, what behavior they’re willing to relay. You want a node that bans inscriptions? Run it. You want a client that auto-forwards every transaction with a JPEG of your left toe? Go for it. Just don’t make it my problem. \ \ Right now, Bitcoin Core is a monoculture. It’s the cathedral and the altar and the pamphlet all rolled into one. That’s not healthy. That’s a single point of failure. That’s a priesthood. \ \ And no, Bitcoin isn’t a religion. It’s worse. It’s a culture. Religion has rituals. Culture has habits. And habits are harder to break. Especially when your dev team gets drunk on the idea that their opinions are features. \ \ If you want to fix this mess, you need to kill the idea that Bitcoin Core is the final word. Strip it down. Remove every line of non-consensus code. Make it boring. Make it dumb. Let the client rot in peace, and let a thousand weird little nodes bloom. \ \ Let the spammers spam themselves into oblivion. Let the free-riders find someone else to subsidize their infrastructure. Let every operator set their own damn filters. \ \ You’ll know ossification is working when the devs start getting bored. When they stop showing up. When there are no more debates. When the politics dry up. When Jameson Lopp finally logs off. \ \ Until then, every line of code you don’t remove is a future argument you’ll be forced to have with someone who thinks “data availability” is more important than keeping the protocol boring. \ \ Bitcoin does not need to be exciting. It needs to be a brick. A self-righteous, opinionated, uncompromising, utterly stubborn monetary brick. \ \ Keep your hands off it. \ \ And take your startup with you.OP_RETURN and the Cult of Cleverness: Or, How Bitcoin Core Learned to Love the Smell of Its Own Farts
There was a time when Bitcoin smelled like ozone and rebellion. When men wore hoodies because they meant it. When software didn’t come with a mission statement or a DAO-approved pronoun guide. When the only thing a Bitcoin dev feared was being wrong, not being unpopular.
That time is dead.
It died somewhere between the fifth Twitter thread explaining why putting JPEGs on the base layer was “valid use,” and the fiftieth PR that added complexity to the engine in order to simplify the cupholders. Now we’re here, ankle-deep in a pool of our own mediocrity, arguing over whether we should triple the OP_RETURN limit so a VC-backed sidechain company can offload its plumbing costs onto your Raspberry Pi.
Welcome to the future. It’s paved in GitHub comments and smells like a WeWork bathroom.
Let’s speak plainly. This whole drama is not about OP_RETURN. It’s about power. Not electrical power. Not hash power. Soft power. The power to redefine what Bitcoin is for, one pull request at a time. It is the power to turn the protocol from a blunt, uncompromising monetary weapon into a polite corporate middleware bus for protocol startups that couldn’t raise a Series B without a little help from their friends in Core.
Jameson Lopp wants to increase the OP_RETURN limit. Why? Because his company, Citrea, needs to squeeze a few more bytes into every transaction. It's not a crime. It’s not even dishonest. It's just pathetically on the nose. They don’t want to pay miners directly. They want the mempool to be their free emergency broadcast system. They want to lean on the public infrastructure without sending flowers or even a thank-you note.
And what does Core say?
They say yes.
Because of “technical merit.”
Because it’s “more efficient.”
Because the devs have long since stopped being guardians of the protocol and started being unpaid product managers for whoever can string enough buzzwords together in a conference talk.
You can see it in their eyes. You can hear it in their interviews. The Core devs aren’t building Bitcoin anymore. They’re managing Bitcoin. They’re curating it. Polishing it. Nerfing it for mass adoption. Like a bunch of Brooklyn baristas trying to make espresso kid-friendly. Bitcoin used to be an espresso shot poured directly into the mouth of the Federal Reserve. Now it’s a lukewarm latte with oat milk and consensus-breaking sprinkles.
The worst part? The refusal to acknowledge that this is not about UTXO bloat. It's not about cleaner mempools. It’s about upstreaming corporate convenience into the base layer under the halo of neutrality. It’s about giving polite names to ugly compromises. “Policy adjustment.” “Ergonomic improvement.” “Relay optimization.” They speak in this weird dialect of bureaucratic techspeak that means nothing and does less.
Meanwhile, the only thing that actually matters gets lost: ossification.
The holy grail of this protocol is ossification. Not stagnation. Not laziness. Not gridlock. Just stability. The longer Bitcoin can go without consensus changes, the more credible it becomes. The more unchangeable it becomes. Like gravity. Like rust. It doesn’t matter how good your argument is. The system won’t budge. That’s the point. The value of Bitcoin isn’t in how clever the devs are. It’s in how irrelevant they become.
But ossification isn't something you declare. You sneak up on it. You approach it sideways, like a wild animal. You do less and less until eventually you’re doing nothing at all, and nobody even remembers how to change the code anymore. That is the goal. To make the protocol so boring, so petrified, that no one can move it. Not Lopp. Not Luke. Not even Larry from Legal.
To get there, we need something devs hate: client balkanization.
That means splitting the client into pieces. Break the codebase. Separate the consensus engine from the policy fluff. Let people run different implementations. Let the free market decide what filters they want, what mempool rules they tolerate, what behavior they’re willing to relay. You want a node that bans inscriptions? Run it. You want a client that auto-forwards every transaction with a JPEG of your left toe? Go for it. Just don’t make it my problem.
Right now, Bitcoin Core is a monoculture. It’s the cathedral and the altar and the pamphlet all rolled into one. That’s not healthy. That’s a single point of failure. That’s a priesthood.
And no, Bitcoin isn’t a religion. It’s worse. It’s a culture. Religion has rituals. Culture has habits. And habits are harder to break. Especially when your dev team gets drunk on the idea that their opinions are features.
If you want to fix this mess, you need to kill the idea that Bitcoin Core is the final word. Strip it down. Remove every line of non-consensus code. Make it boring. Make it dumb. Let the client rot in peace, and let a thousand weird little nodes bloom.
Let the spammers spam themselves into oblivion. Let the free-riders find someone else to subsidize their infrastructure. Let every operator set their own damn filters.
You’ll know ossification is working when the devs start getting bored. When they stop showing up. When there are no more debates. When the politics dry up. When Jameson Lopp finally logs off.
Until then, every line of code you don’t remove is a future argument you’ll be forced to have with someone who thinks “data availability” is more important than keeping the protocol boring.
Bitcoin does not need to be exciting. It needs to be a brick. A self-righteous, opinionated, uncompromising, utterly stubborn monetary brick.
Keep your hands off it.
And take your startup with you.
-
@ d360efec:14907b5f
2025-05-10 03:57:17Disclaimer: * การวิเคราะห์นี้เป็นเพียงแนวทาง ไม่ใช่คำแนะนำในการซื้อขาย * การลงทุนมีความเสี่ยง ผู้ลงทุนควรตัดสินใจด้วยตนเอง
-
@ db11b320:05c5f7af
2025-03-29 19:04:19magnet:?xt=urn:btih:9BAC9A3F98803AEA1EB28A0B60A562D7E3779710
-
@ 7e8ca676:b6a7569f
2025-05-13 01:08:28There was a time when mining meant something. Not just the noise of fans and the stink of ozone, but a political act. An act of rebellion, like smuggling pamphlets under the nose of the king. You mined in the basement. You mined with pride. You mined because you could. Not because Fidelity wrote a whitepaper on it. Not because a hosting provider in Iceland offered you a bulk discount. But because you believed.
That miner is dead.
He didn’t die in a blaze of glory. He didn’t go down swinging. He was euthanized. Slowly, over years, by spreadsheets, subsidies, and a thousand tiny concessions. Killed off by a culture that said, “Why do it yourself when you can outsource the soul of Bitcoin to a pool in Singapore?”
Welcome to the age of industrial Bitcoin: a world where miners don’t mine, pools don’t just process. They rule. And the only thing sovereign anymore is the dividend.
The Sovereign Miner is Dead, And No One Mourned
The sovereign miner, the madman with a dusty rack, a full node, and a middle finger pointed squarely at the Eccles Building, is extinct. He’s gone the way of the dodo, the blacksmith, the outlaw. And in his place? A fleet of khaki-wearing ASIC clerks uploading hashrate reports to their VC lords like dutiful little interns. These are not revolutionaries. They are box operators. Corporate larvae wiggling around in server farms financed by pension funds.
Once upon a time, mining was an act of insubordination. You ran a rig to say "no" to Janet Yellen. You ran a node because you meant it. You didn’t need permission. You didn’t ask for subsidies. You didn’t file paperwork. You fought for consensus by living it. Every block was a punch thrown in a quiet, bloodless rebellion. Now? Now you’ve got KPMG-certified mining outfits measuring ESG impact and tweeting about carbon offsets like they’re trying to win a grant from the UN.
The eulogies for that old miner are full of oily euphemisms. They drone on about "efficiency," as if selling your vote for a cheaper power bill is some kind of virtue. "Economies of scale," they whisper, as though scale were some holy sacrament instead of the Trojan horse that delivered centralization to our doorstep. What they call progress, I call a back-alley mugging of Bitcoin’s soul.
The modern miner isn’t mining. He’s leasing his dignity to a pool that doesn’t know his name. He’s plugging in Bitmain boxes like a hotel maintenance worker changing light bulbs. The only heat he generates is for the benefit of someone else's node. Someone else's mempool. Someone else's idea of consensus. He doesn’t build the block. He just pays the electric bill.
And the worst part? He likes it. He thinks it’s normal. He thinks it’s “smart business.” He’s internalized the defeat so completely he brags about it on social media. He’ll tweet about uptime, about efficiency ratios, about hashprice curves—as if he were describing a well-run gulag. He’s the obedient prisoner who polishes the chains and calls it freedom.
The sovereign miner didn’t die in a blaze of glory. He died quietly, smothered under a fleece blanket of comfort and yield optimization. And no one mourned. No one wept. Because everyone was too busy benchmarking their ROI and counting fiat. The revolution didn’t end in a shootout. It ended in quarterly earnings calls.
Power Reversed: Pools Run Nodes, Miners Run Cable
Let’s be crystal clear: The pools run the nodes. The miners do not. This is not a subtle shift. It is a total inversion of power. A coup d'état wrapped in JSON-RPC and relayed with a smile. The pool clerks have become the governors of consensus, and the miners? They’re errand boys. They might control the heat, but they don’t control the protocol. They’re like engine pistons in a car they’ll never be allowed to drive.
Pointing hash at a pool and calling yourself sovereign is like renting a tux and declaring yourself royalty. It’s cosplay. At best. Pools decide what transactions are valid. Pools enforce the rules. Pools interpret consensus, not the miners, not the miners, and certainly not the plebs stacking sats on Raspberry Pis, who, through their economic activity and validation, still enforce the rules but are powerless to stop this creeping centralization in the mining layer. In a world obsessed with decentralization theater, pools are the centralized prop masters pulling the strings.
And when the curtain pulled back in 2021, it wasn’t some secret backroom scandal. No. Marathon Digital bragged about OFAC-compliant mining. They filtered transactions with state-sanctioned precision. They announced it like a new feature rollout. “Censorship-as-a-Service, now in beta!” The mining pool became an extension of the U.S. Treasury—while still waving the Bitcoin banner.
That wasn’t a red flag. That was a blood-soaked banner waved from the parapets of captured consensus. And the response? Nothing. No mass exit. No fork. No slash-and-burn rebellion. Just soft mewling from miners who’d already convinced themselves this was “pragmatic.”
Miners didn’t revolt. They shrugged. They shrugged because they didn’t feel it in their bones anymore. They’d been domesticated. Fattened on subsidies and mining-as-a-service. Pacified by dashboards and yield spreadsheets. When the pools took the steering wheel, the miners reached for the air conditioning controls.
This is the hard truth: sovereignty cannot be delegated. You don’t get to outsource rebellion. You don’t get to file a ticket and request autonomy. If someone else runs the node, someone else owns the power. And if you’re pointing hash at their rules, you’re not free. You’re furniture. Industrial-grade silicon furniture humming in tune with someone else’s politics.
ASICs Are Treadmills, Not Weapons
Here’s a bitter pill: plugging in an ASIC doesn’t make you a participant in Bitcoin. It makes you a battery. Yes, economic nodes still set the rules through their validation and transaction activity. But what happens when the mining layer, the muscle that enforces those rules on-chain, goes rogue? What happens when the mempool you built gets ignored because your hashpower is pointed at someone else's filter?
A node might define validity, but without aligned mining, it’s a lion without teeth. If economic consensus is the blueprint, mining is the builder. And right now, most builders are following someone else's floor plan. The node might say, "this is how we build," but the pool, with its centralized relay and selective enforcement, says, "this is what we’re willing to build."
Without a node, without building your own block, without choosing your own mempool, you’re a hamster in a high-voltage wheel. All that heat and noise? It’s not rebellion. It’s treadmill sweat.
Without a node, without building your own block, without choosing your own mempool, you’re a hamster in a high-voltage wheel. All that heat and noise? It’s not rebellion. It’s treadmill sweat.
You are not a general. You are a grunt. A CPU on contract to someone else’s war.
Fiat Habits: The Culture of Convenience
Bitcoin was supposed to be the great divorce from fiat thinking, a severance from the debt-ridden clown world where every moral principle is for sale if the yield’s high enough. But lo and behold, the fiat habits came slithering in through the miner’s back door. It started small. “Just a hosting service,” they said. “Just outsourcing the firmware,” they claimed. “Just using a pool for efficiency.” And before you knew it, the average miner was indistinguishable from a middle manager at an Enron reunion. Optimizing, spreadsheeting, begging for subsidies like a lobbyist on his third bourbon.
The culture is poison. It rewards cowardice, convenience, and cost-shifting. Small miners moan about volatility like day traders with arthritis. Big miners wine and dine regulators, sniffing after tax incentives and ESG badges like some filthy dog begging at the World Economic Forum’s dinner table. We’re no longer talking about building a sovereign financial system—we’re talking about quarterly earnings, power purchase agreements, and whether your server farm meets carbon neutrality guidelines. What the hell happened?
Take a look back at the New York Agreement in 2017. That wasn’t a negotiation. It was a ransom note. The largest mining outfits, including BTC.Top and ViaBTC, held SegWit hostage because it didn’t butter their bread. The principles didn’t matter. The technical merit didn’t matter. All that mattered was leverage, yield, and preserving their own stranglehold. They tried to shove a hard fork down Bitcoin’s throat like a goose being force-fed for foie gras. And if not for the sheer stubbornness of the user base, real economic nodes who still gave a damn, Bitcoin would’ve gone full Frankenstein.
But did those miners learn? No. They just shifted tactics. Today they ask for different forms of convenience: not block size increases, but subsidies, regulations tailored to their rigs, public-private partnerships. The song remains the same. It’s the fiat mindset dressed up in ASIC drag. Instead of defending neutrality, they demand special treatment. Instead of embracing the responsibility of consensus participation, they’d rather hand it off to a pool that promises good customer service and a Discord server with emojis.
What we’re seeing is the spiritual sequel to fiat monetary policy—moral hazard in overclocked silicon. Miners begging for insulation from the market, protection from volatility, and someone else to carry the political weight of consensus. That’s not sovereignty. That’s serfdom with a spreadsheet. These aren't rebels. They’re corporate supplicants doing yield gymnastics while the heart of Bitcoin withers under the fluorescent lights of their co-location facility.
Bitcoin doesn’t need more efficient parasites. It needs fewer of them. The culture must shift from comfort to combat. From optimization to obligation. A miner who outsources consensus is no better than a fiat printer optimizing bond auctions. The minute you make convenience your god, you become indistinguishable from the system Bitcoin was meant to destroy.
The Culture of Convenience
Bitcoin was born as a rejection of fiat habits. So naturally, miners dragged every last fiat habit into the server farm like rats carrying plague. Outsource the firmware. Outsource the hosting. Outsource the power contract. Outsource the node. Outsource the sovereignty. What’s left?
Mining today looks like Goldman Sachs cosplay. ESG reports. Carbon credits. Webinars on regulatory compliance. Bitcoin isn't being mined anymore. It's being monetized. It's being lobotomized by yield-chasers and spreadsheet cultists.
The New York Agreement was the test. The miners failed. They held the protocol hostage for a slightly thicker block and a fat slice of yield. They were willing to hard fork Bitcoin into a Frankenstein fiat-friendly platform if it meant a better power purchase agreement.
They haven't changed. They’ve just gotten better at disguising their cowardice as competence.
Software Will Not Save You (But Cowards Sure Will Sell You the Illusion)
Let me tell you a ghost story. A tale of silicon treachery dressed up as innovation. It was 2017. The air stank of backroom deals and nervous sweat. Bitmain, the ASIC kingpin of the age, had quietly embedded a little something into its hardware. A cheat code. A hidden rake. A parasitic exploit called ASICBoost, but not the honest kind. No, this was the covert variant, slinking beneath the protocol’s floorboards, exploiting transaction ordering for a tidy little edge. It wasn’t disclosed. It wasn’t debated. It was used. Quietly. Gleefully. While the rest of the ecosystem was busy arguing about scaling like philosophers in a house fire.
Bitmain wasn't interested in consensus. It was interested in arbitrage. They saw Bitcoin not as a commons, but as a slot machine they had rigged. And when SegWit appeared, when it offered scaling and immunity to covert ASICBoost in one surgical tweak, Bitmain panicked. Because SegWit would end the grift. Not softly. Not eventually. Immediately.
So they did what every entrenched parasite does when exposed. They lied. They stalled. They "compromised." They ginned up support for SegWit2x, not to scale Bitcoin, but to preserve their exploit. A hard fork with extension blocks would keep the legacy block structure alive and well, tucked into a cozy parallel track where covert ASICBoost could still thrive. It was a bait-and-switch. A con. A trojan upgrade smuggled in under the banner of progress.
But this time, the hosts fought back.
Node runners saw the ploy. They didn’t need fancy tooling. They needed guts. They didn’t negotiate. They didn’t flinch. They ran SegWit. They activated UASF. They drew a line—not in sand, but in bedrock. Bitcoin would not be held hostage by ASIC cartels. It would not bend for Bitmain. It would not become an extension block casino for rent-seekers in Shenzhen.
So no, software didn’t save Bitcoin. Men did.
Ordinary plebs with full nodes and no backdoor. They used the tool, yes, but what mattered is that they refused. Refused the scam. Refused the deal. Refused to bend the knee to an ASIC cartel dressed in business-casual and lies.
SegWit didn’t win because it was elegant. It won because enough people had the guts to jam it through in spite of sabotage. The protocol gave them a knife, and they had the moral clarity to use it. That’s the lesson. Not that we need better code, but that we need sharper men.
Because in the end, every exploit is possible when the culture is weak. And every fix is worthless if the people implementing it don’t care. The problem was never ASICBoost. The problem was what miners were willing to do to keep it.
The Pool Cartel is the New Central Bank
Middlemen were supposed to die in 2009. That’s the entire reason Bitcoin exists. To gut them. To render them obsolete. To salt the earth behind them so nothing like them could ever grow again. But here they are, reborn, not as banks, but as pools. Not in suits, but in server racks. They wear the garb of "infrastructure providers," but they function as gatekeepers, choke points wrapped in API documentation.
Pools don’t just process, they decide. They decide what gets into the chain. They decide whose transactions are valid. They decide what software matters, and what consensus looks like. They’ve become the central banks of the hashrate economy: unaccountable, invisible, and too boring to fear until it’s too late.
They don’t win power. They absorb it. They don’t need legislation or signatures. They just need you to keep pointing your hash in their direction. That’s the magic trick of middlemen: their power lies in being taken for granted. And in that, they’re the perfect parasite, one that feeds on your energy and then tells you they’re helping you digest it.
Every time you optimize for pool payout efficiency, every time you default to the biggest provider, every time you accept their mempool instead of building your own, you’re kneeling. You’re pledging allegiance to a cartel of block-builders whose loyalty isn’t to Bitcoin, it’s to operational ease and regulatory appeasement.
These aren’t neutral actors. They’re political animals. They hold the levers of consensus without bearing any of its weight. They’re the mortgage-backed securities of Bitcoin: abstracted, opaque, and one market panic away from becoming a systemic risk. We have, once again, created a class of intermediaries who profit by extracting value from a system they didn’t build and no longer understand.
Bitcoin didn’t kill the middlemen. It fed them. It made them smarter. It made them less visible. But their hunger hasn’t changed. And until we name them for what they are—cartels in priestly robes—we will keep mistaking the cage for the cathedral.
Stratum v2: A Rifle, Not a Revolution
Stratum v2 is the closest thing to a loaded weapon Bitcoin miners have been handed in a decade. It is, quite literally, the mechanism by which miners can wrench their dignity back from the clenched fists of the pool cartel. And what have they done with it? Mostly shrugged. A few pilot programs, some halfhearted integrations, and a handful of blog posts filled with the kind of cautious optimism you’d expect from a risk-averse actuary.
This isn’t a critique of the protocol. Stratum v2 is beautifully ugly. It’s messy, technical, and dense enough to scare away the very consultants who want to repackage Bitcoin into polite compliance middleware. But none of that matters if no one has the guts to use it. You don’t win wars by stockpiling weapons you refuse to fire.
Stratum v2 gives miners the power to construct their own blocks. Not just vote with hash, but wield it. Choose transactions. Set mempool policy. Actually participate in consensus instead of spectating like a retiree watching a soap opera. It is the rifle hanging over the mantelpiece. The one Chekhov warned us about. And right now it’s gathering dust.
The tragedy here isn’t technical. It’s cultural. Because this tool, this literal key to sovereignty, is being treated like a library dependency. Something for someone else to test, to vet, to implement. Meanwhile, miners continue to act like it’s 2015 and their biggest concern is firmware compatibility and finding a better power rate in Kazakhstan.
Ignore Stratum v2, and it becomes protocol theater. A museum piece. A tragic artifact of what could have been. But use it, and it becomes a wedge. A crowbar in the gears of centralized mining. A bright, shining middle finger to the entire architecture of compliance-friendly consensus.
But don’t fool yourself. Stratum v2 won’t make you sovereign any more than buying a gun makes you a revolutionary. It won’t beam liberty into your soul via Tor, won’t whisper “freedom” into your hashboard, won’t bathe your rack in the holy light of decentralization. It’s not salvation. It’s a tool. And tools don’t care who uses them—they serve the hand that holds them.
Stratum v2 is a rifle, yes—but even a rifle requires guts, aim, and the clarity to know what you're shooting at. In the hands of a coward, it’s a paperweight. In the hands of a rent-seeker, it’s a bargaining chip. But in the hands of a miner with fire in his gut and sovereignty in his blood? It’s a revolution.
This isn’t about technology. It’s about spine. About picking up the one weapon you’ve been given and refusing to keep it locked in the safe while tyrants build your blocks. Stratum v2 offers freedom, but it demands ferocity. You have to load it with your own mempool. You have to chamber every transaction. And then you have to fire.
No protocol, no BIP, no whitepaper will ever substitute for moral will. And if you’re too polite to use the weapon, too busy maximizing uptime to get your hands dirty with real consensus, then you deserve whatever filtered, censored, OFAC-compliant future you inherit.
Stratum v2 is not your savior. You are. And until miners act like it, until they treat this protocol like a weapon and not a toy, the pools will rule, and the timechain will continue to serve the highest bidder.
It’s just a rifle. But rifles have rewritten history when wielded by men who knew they weren’t free.
Ossification Without Decentralization Is Death
Everyone loves ossification, until they realize they missed their chance to do it when it mattered. We had a window. A golden, fleeting window to freeze Bitcoin in a state of clarity, minimalism, and neutrality. Instead, we blinked. We let upgrades seep in. Complexity crept through the back door, and with it came unintended consequences. Among the earliest and most corrosive: the rise of centralized mining pools. A structural outcome embedded in Satoshi’s original design, born from the brutal variance of solo mining. But if that centralization was unforeseen, imagine how many more we’ve introduced since, through every soft fork, every upgrade, every decision to keep tinkering instead of locking the vault when we had the chance.
Ossification isn’t just about code. It’s about culture. It’s a posture. A refusal. And we failed to assume it when it counted. We chose tinkering over tenacity. We chose cleverness over caution. And now the fruits of our hubris hang heavy on the vine: a mining layer riddled with capture points, a mempool hijacked by middlemen, and a user base quietly wondering why their transactions feel like applications.
Yes, economic nodes enforce the rules through validation and usage. But that power has a prerequisite: inclusion. If the only blocks being built are by pools with selective relay policies and a fondness for government compliance, then your economic activity is a shout into a soundproof room. The validation rules may be perfect, but if your transaction never hits the chain, it’s as good as invalid.
The trap we set for ourselves was gilded with good intentions. Soft forks meant to improve scalability. Relay policies meant to minimize bloat. Fee markets meant to incentivize good behavior. And now? Now we find ourselves staring at a timechain that functions—but no longer feels inviolable. The foundation wasn’t corrupted in a day. It was eroded, line by line, by developers trying to be helpful.
Freeze Bitcoin now, and we don’t immortalize virtue—we immortalize vulnerability. We lock in the flaws. We preserve a snapshot where the power has already been ceded to those least equipped to wield it justly. It’s like slamming the vault door shut just as the thieves finish loading the bags.
That’s not ossification. That’s embalming. That’s turning the timechain into a museum exhibit of the ideals we almost lived up to, before we traded principle for pragmatism and thought we could always fix it later.
Ossification is not neutral. It’s not some universal good. It is power, fixed in time. And if that power belongs to the wrong class of actors, the OFAC miners, the hosting conglomerates, the Silicon Valley startups that mine with ESG consultants on speed dial, then ossification doesn’t lock in liberty. It locks in them. It fossilizes a regime that already serves someone else’s interests.
We speak of ossification like it’s an event. One final commit. One last hardening. But in truth, it’s asymptotic. You don’t slam the door shut in one dramatic gesture. You inch toward it. You tighten the bolts over time until change becomes culturally, politically, and economically impossible. And that means we’re ossifying right now.
Picture it: a frozen Bitcoin where the rules can’t change, but the blockspace is filtered, the miners are compliant, and the pools relay transactions based on a government-approved blacklist. That’s not sound money. That’s a digital leash. A ledger of obedience masquerading as freedom.
If Bitcoin ossifies after it has been captured, it does not become incorruptible. It becomes irredeemable. Like sealing a vault before checking what’s inside, you don’t get resilience, you get entombment. You get permanence without virtue. You get consensus without sovereignty.
That’s not ossification. That’s embalming. That’s turning the timechain into Lenin’s corpse: glassy-eyed, sterile, and meticulously preserved in service of a state it was meant to outlive.
We may only have one chance to rescue bitcoin from the clutches of the fiat maximalists, before it is impossible to do so.
Core's Quiet Capitulation
Bitcoin Core was once the temple guard. Militant minimalism. Ruthless conservatism. The last line of defense against creeping bloat and protocol erosion. You didn’t have to agree with them, but by God, you respected the trench they were willing to die in.
Now? They’re white-gloving the stretcher for a dying protocol. Hospice caretakers tending to consensus rot with polite documentation and GitHub tickets labeled "enhancement." The keepers of the flame have become interior decorators for a collapsing cathedral.
They removed filters, the thin defensive crust that kept bad-faith actors at bay. They weakened defaults, the backbone settings that preserved network sanity. They bend policies not to protect consensus, but to please mining cartels and PR-sensitive operators. Every decision smells like appeasement baked in a think tank.
This isn’t some grand betrayal of principle for power or riches. It’s worse. It’s resignation. Exhaustion wrapped in technocratic humility. They didn’t sell out to the highest bidder, they just ran out of fire.
Where once they chanted ossification, now they mumble "flexibility." Where once they enforced sanity with zero tolerance for grift, now they entertain proposals that would’ve been laughed out of the room a decade ago. They say yes out of fatigue. They say no with asterisks. They commit code like bureaucrats signing off on a slow-motion demolition.
Core didn’t just get captured. It got comfortable. And comfort, in protocol stewardship, is fatal. The war for Bitcoin's soul isn’t being lost in some smoky backroom. It’s being forfeited in polite silence by maintainers who forgot the protocol doesn’t just need to run. It needs to refuse.
The Call: Rewild the Hash
This is the fork in the road. This is the final flare fired into the sky before the trench goes quiet forever. You either take back the hash, or you become a dependent serf in a digital fiefdom run by pool lords and relay priests. No more excuses. No more polite appeals. No more PRs begging middlemen to do the right thing.
Run your own node. Build your own block, even if it takes a lifetime. Not tomorrow. Not after the next bull run. Not when it’s convenient. Now. Because if you don’t, someone else will do it for you, and they will not share your values.
Stop waiting for permission. Stop tweeting at pool operators like they’re public servants. Stop optimizing for latency like it’s a sacrament. You are not here to impress compliance officers. You are here to enforce your damn sovereignty.
Don’t beg the cartel to behave. Starve it. Cut it off. Build the mempool you want to see in the world and let their VC primed and bloated relay network choke on their own paperwork. Let their blocks fill with NFT spam and chain analysis reports. You are not required to participate in their theater.
Use Stratum v2. Not because it’s clever, not because it’s next-gen, but because it puts the steering wheel back in your hands. It lets you carve your transactions from granite instead of begging for a line on someone else's spreadsheet. It is not optional. It is not academic. It is your rifle, and the target is consensus capture.
Rewilding the hash isn’t about nostalgia. It’s about survival. It’s about tearing up the artificial turf of corporate convenience and letting the hard, messy, glorious chaos of sovereign mining grow back. Every node a fortress. Every block a declaration. Every miner a free man with dirt under his fingernails and fire in his chest.
This is the line. Pick up your weapon. Run your own node. Build your own block. Or die watching someone else sell your freedom by the byte.
Murder the pools. Rewild the hash. And mine like it means something... because it does.
-
@ 005bc4de:ef11e1a2
2025-05-12 14:00:42Hostr
Hive + Nostr = Hostr, a bidirectional bridge.
Hostr is a bidirectional bridge between Nostr and Hive. What you post on one is automatically cross-posted to the other. (See SETUP.md if you want to jump right in and run it.)
This is experimental. Expect that there will be glitches, errors, and corrections to be made. So, consider it very beta, with no guarantees, and use at your own risk.
Nostr and Hive have differences, mainly, Nostr is a protocol and Hive is a blockchain. Nostr does not have a token, although bitcoin is much-loved and used across Nostr. Hive has two main tokens: HIVE and the HBD stablecoin. More importantly, Nostr and Hive have similarities. Both are decentralized and censorship resistant thanks to users owning and controlling their own private keys.
Nostr users - why you might want to bridge to Hive
I feel the #1 reason a Nostr user might wish to use this bridge is to permanently store and chronicle your Nostr notes.
-
Immutability for your Nostr notes. Your notes on Nostr are held on relays; if they go away, your notes go away. (There was a “nosdrive.app” backup, however I do not believe it’s still working.) Hive is immutable. There is no "delete" and even an “edit” on Hive does not erase the original. Like with a wiki page, a Hive edit shows the most recent version, but the original still remains historically. This would give Nostr users a permanent record of their notes in chronological order.
-
Hive is an excellent long form blogging platform with stable and persistent links. Finding old Nostr notes can be difficult.
-
Increase your reach and potentially gain followers. Your content will bridge off of the Nostr island and be opened to 10-30,000 daily Hive users. Go to https://peakd.com/c/hive-133987 and look for “Hive statistics” to see numbers.
-
Earn rewards in HIVE and HBD. “Likes” on Nostr do not reward you monetarily, but every upvote on Hive yields rewards. For bitcoin maxis, these tokens can easily be swapped into sats with tools like the https://v4v.app web app, or others.
-
Help grow Nostr. Every note that bridges over to Hive will have a footer saying something like, “This note originated on Nostr,” with a link back to your Nostr note on njump.me. On that page, a "Join Nostr" button is prominent.
Hive users - why you might want to bridge to Nostr
-
Increase your reach and potentially gain followers. Your content will be bridged off the Hive island and be opened to 17-18,000 daily users. See https://stats.nostr.band for Nostr stats.
-
Earn bitcoin sats in the form of “zaps.” Nostr does not have a token. But, it has a strong culture of zapping (tipping) bitcoin satoshis to other users to reward quality content. Memes are loved and often zapped too.
-
Unlimited posting. Nostr is not held back by posting or activity limitations, such as with Resource Credits or community norms that frown on posting too often.
-
Even more censorship resistance. Hive is truly censorship-free in that posted content, no matter the content, does indeed posted. However, front ends can choose to show or not show content that the community has downvoted. Nostr is more free speech or censorship resistant...you post it, it's posted. (Relays can choose to relay it or not, accept it or reject it, but you could run your own relay.)
-
Help grow Hive. Every post that bridges over to Nostr will have a footer saying something like, “This post originated on Hive,” with a link back to your Hive blockchain post. This brings wider exposure to Hive.
Quirks about Nostr and Hive
If you’re unfamiliar with Nostr, it has a few quirks:
-
You have one private key, called an “nsec”. It goes along with your “npub”, your public key. Your npub is your username, your nsec IS your account.
-
You simply need an nsec, then a “client” which is a front end.
- You need to add “relays” to your client in order to connect. This is very easy, but how to do it depends on the client. Client's usually walk you through this when you start.
- Short form content (like the old "Tweets") are called kind 1 notes. Long form notes, like most Hive posts, are called kind 30023.
If you’re unfamiliar with Hive, it has more quirks:
-
Hive has five private keys, yes, five. Each has a specific purpose. From least powerful to most powerful, they are: posting key (to post), active key (to move tokens), owner key (to do anything), memo key (to dm/pm), and backup/master private key (to totally restore all keys). Don’t worry about all the keys. For Hostr, we only deal with posting notes/posts, so the posting key is all we deal with.
-
Hive has a culture of frowning on posting too often. Doing so can be seen as trying to milk the HIVE/HBD rewards that you gain from upvotes. Too much posting can be viewed as spamming and result in downvotes (this hurts your Web-of-Trust score, called “reputation” on Hive, and is shown alongside your username; you want to grow and keep your reputation up). The chain also has a 5-minute cool-down rule coded in: after posting, you cannot post for another five minutes.
-
Additionally, to avoid spam, Hive actions burn “Resource Credits” or RCs. Think of RCs as the charge % in your phone battery. Every action on Hive uses RCs, so they dwindle with every use. Posting is high in RC cost. Bad news: if you run out of RCs, you’re unable to do things on Hive. Good news: RCs also recharge. If out of RCs, you can wait and then do things later. For the Hostr script, over-posting means the script will post until RCs are exhausted, then it will stall until RCs are recharged, post again, stall, etc. You can check your RCs in many places, such as a Hive explorer like https://hivescan.info and entering your Hive username. If you have RC issues, reach out for help.
You don't want to over-post on Hive. To avoid over-posting, Hostr has two versions of the script:
-
bidirectional-longform30023.js
- Nostr ➡️ Hive - Listens only for kind 30023 (long form) Nostr notes to bridge over to Hive. Kind 1 short form notes are ignored.
- Hive ➡️ Nostr - Any Hive post over 380 characters gets truncated as a kind 1 (short form) Nostr note (with a link back to the full Hive post).
-
bidirectional-bridge.js
- Nostr➡️Hive - This script listens for both kind 1 (short form) and kind 30023 (long form) Nostr notes and bridges both over to Hive.
- Hive ➡️ Nostr - Same as above (380+ is truncated).
Which script version should I use?
- If you post frequently on Nostr (more than 2 times per day?), the bidirectional-longform30023.js script is likely best. Per Hive community norms, you don't want to post too often on there. With this script version, only long form notes will bridge over from Nostr to Hive.
- For newcomers to Hive, I would start with this script to be safe.
-
If in doubt, use this script.
-
If you post infrequently on Nostr (2 times per day or fewer?), the bidirectional-bridge.js (both kinds 1 and 30023) might work fine for you.
Nostr users - how to begin
You’ll need a Hive account. You can see sign-up options at https://signup.hive.io. Some options are free, others are not. I (crrdlx) have some free “VIP tickets” to sign up with and you are welcome to use one if you wish, see https://crrdlx.vercel.app/hive-vip-ticket.html. If the tickets there are already spent, contact me and I'll get you set up.
As with Nostr, the critical thing with a Hive account is saving your keys. Hive has multiple keys, just save them all. We’ll only use the “posting key” for the Hostr bridge, however. The other keys can be used on Hive if you wish. (For instance, the "active key" is used to handle your HIVE/HBD rewards earned, the "memo key" for private messages.)
Once signed up (and keys are safe), you can adjust your Hive account/profile using any Hive front end like https://peakd.com/username, https://ecency.com/username, or https://hive.blog/username. Just remember, every action on Hive burns RCs, keep an eye on that.
You can learn more about Hive at https://hivewiki.vercel.app if you wish.
See the "Setting up..." section below to set up the bridge.
Hive users - how to begin
You’ll need a Nostr account. Getting a Nostr "account" is nothing more than generating keys. A simple way to do this is at https://nstart.me If you wish to dig into details, take a look at http://nostrwiki.crrdlx.infinityfreeapp.com/doku.php?id=wiki:get-started
As with Hive, you simply need to safely store your private keys. On Nostr, your private key is called your “nsec” (sec, as in “secret”). Your public key is your “npub” (pub, as in "public"). Your nsec is all you need, but just so you know, your private key comes in two formats: (a) your nsec, and (b) the “hex” form (same key, just different forms). With the Hostr bridge, we’ll use the hex private key. Depending on how you join Nostr, your hex key may be given to you at sign up. But, even if it's not, you can always check back-and-forth between nsec and hex keys using a tool like https://nostrtool.com and choosing "Load a privkey from nsec/hex".
Again, just save your nsec and/or hex private key and you’re set.
You can learn more about Nostr at https://nostrwiki.vercel.app if you wish.
See the "Setting up..." section below to set up the bridge.
Setting up the Hostr bridge
To set up the bridge, see SETUP.md in the repo below. The Hostr bridge has a bit of technicals behind it, but don't get intimidated. Because technical things change, I’ll keep the technical how-to instructions housed at https://github.com/crrdlx/hostr
Disclaimer
This is an experimental bridge. Expect that there will be glitches, errors, and corrections to be made. So, consider it very beta, with no guarantees, and use at your own risk. Source code: https://github.com/crrdlx/hostr
Built with ❤️ by crrdlx
Connect on Hive: @crrdlx
Connect on Nostr: nostr:npub1qpdufhjpel94srm3ett2azgf49m9dp3n5nm2j0rt0l2mlmc3ux3qza082j
All contacts: https://linktr.ee/crrdlx
-
-
@ 502ab02a:a2860397
2025-05-13 01:07:59มีคนเคยพูดเล่นว่า “ถ้าคุณอยากเปลี่ยนโลก ไม่ต้องปฏิวัติ แค่เปลี่ยนอาหารคนซะ" บรรดาเจ้าพ่อเทคโนโลยีชีวภาพก็เลยเริ่มจับมือกับกลุ่มทุนระดับโลก สร้าง “อาหารแห่งอนาคต” ที่แม้จะไม่งอกจากธรรมชาติ แต่งอกมาจากถังหมักในโรงงานได้แทน
หลังจากที่เราเริ่มมองเห็นแล้วว่า ช่องทางแทรกซึมเข้าสู่อาหารโลกอนาคตนั้น ตั้งอยู่บนพื้นฐาน "โปรตีน" ซึ่งถ้าใครตามซีรีส์นี้กันมาตลอด คงจำโพสเรื่อง "เรากินนมเพราะความกลัว?" กันได้ดีนะครับ ไวรัล และ ตีความหลุด theme กันกระจาย ซึ่งเป็นธรรมดาของ social media ที่มันจะโผล่ไปหาขาจรแค่ครั้งเดียว ดังนั้น ก้าวข้ามมันไปครับ
สิ่งที่ปูทางไว้แล้วก่อนจะแบไต๋ว่า เป้าหลักของโลกคือ โปรตีน นั่นคือ นมทางเลือก มาสู่การยึดพื้นที่นมโรงเรียน การเข้าตลาดของ Perfect Day โปรตีนนมที่อยู่ในทั้งนม ขนม ไอศกรีม แล้วทั้งหมดจะถูกปรับภาพล้างไพ่ใหม่ ในนามของ milk 2.0 ครับ เรามาต่อซีรีส์ของเราด้วยการทำความรู้จัก ผู้เล่น กันทีละตัวนะครับ หลังจากเราได้ เวย์นมตั้งบนชั้นบนเชลฟ์กันไปแล้ว
New Culture เป็นบริษัทสตาร์ทอัปจากซานลีอันโดร รัฐแคลิฟอร์เนีย ที่ก่อตั้งขึ้นในปี 2018 โดย Matt Gibson และ Inja Radman โดยมีเป้าหมายในการผลิตโปรตีนเคซีน (casein) ซึ่งเป็นโปรตีนหลักในนมวัว โดยไม่ใช้สัตว์ ผ่านกระบวนการ precision fermentation หรือการหมักด้วยจุลินทรีย์ที่ได้รับการดัดแปลงพันธุกรรม โดยการฝึกจุลินทรีย์ให้ผลิตโปรตีนเคซีนในห้องปฏิบัติการ เพื่อสร้างผลิตภัณฑ์ชีสที่ปราศจากสัตว์ ซึ่งโปรตีนนี้สามารถนำมาใช้ในการผลิตชีสที่มีคุณสมบัติใกล้เคียงกับชีสจากนมวัว แต่ยังคงคุณสมบัติของชีสแท้ๆ เช่น การยืดหยุ่น การละลาย และรสชาติที่คุ้นเคย เปลี่ยนนิยามของคำว่า “ชีส” ให้กลายเป็นโปรตีนเคซีนจากจุลินทรีย์ ไม่ใช่จากน้ำนมวัวอีกต่อไป
Matt Gibson ชายชาวนิวซีแลนด์ ผู้ก่อตั้ง New Culture ไม่ใช่นักวิทยาศาสตร์ แต่เป็นคนหัวธุรกิจที่มีปมบางอย่างกับการกินชีสแบบดั้งเดิม เขาร่วมมือกับ Dr. Inja Radman นักชีววิทยา แล้วตั้งเป้าผลิต “เคซีน” โปรตีนหลักในนมโดยไม่ใช้สัตว์เลยสักตัว
การที่เขาเลือกใช้ precision fermentation หรือการหมักจุลินทรีย์ที่ตัดต่อพันธุกรรม ให้ผลิตเคซีนออกมาจากถังหมัก ซึ่งไม่ใช่เทคโนโลยีใหม่ในโลกแล้ว (แม้บ้านเราหลายคนจะเพิ่งเคยได้ยิน และ ตกใจกันอยู่) บริษัทคู่แข่งอย่าง Perfect Day ก็ใช้แนวทางเดียวกัน ผลิต “เวย์โปรตีนไร้สัตว์” ไปก่อนแล้ว และตอนนี้ มหาเศรษฐีสายลงทุนยั่งยืนก็กำลังรุมแห่ใส่เงินสนับสนุนแขนงนี้เหมือนเห็นโอกาสใหม่ในโลก Fiat ทำให้ New Culture ปรับทิศไปที่ "ชีส"
ผลิตภัณฑ์หลักของ New Culture คือ มอสซาเรลล่าปราศจากสัตว์ ที่มีคุณสมบัติใกล้เคียงกับมอสซาเรลล่าจากนมวัว โดยสามารถละลายและยืดหยุ่นได้เหมือนชีสแท้ๆ และยังมีปริมาณโปรตีนเคซีนเพียง 50% ของชีสทั่วไป ซึ่ง "ช่วยลดต้นทุนการผลิตและผลกระทบต่อสิ่งแวดล้อม"
New Culture ได้รับการสนับสนุนทางการเงินจากนักลงทุนรายใหญ่ เช่น Kraft Heinz, ADM, CJ CheilJedang, และ Dr. Oetker โดยในปี 2021 บริษัทได้ระดมทุนรอบ Series A จำนวน 25 ล้านดอลลาร์สหรัฐ เพื่อขยายการผลิตและนำผลิตภัณฑ์ออกสู่ตลาด นอกจากนี้ New Culture ยังได้ร่วมมือกับ CJ CheilJedang บริษัทผู้ผลิตผลิตภัณฑ์จากการหมักที่ใหญ่ที่สุดในโลก เพื่อเข้าถึงโรงงานการหมักที่ทันสมัยและลดต้นทุนการผลิตโปรตีนเคซีน
และแน่นอนเลยครับว่า ผลิตภัณฑ์ของ New Culture ต้องมาพร้อมกับการโหมประกาศว่า ปราศจากแลคโตส คอเลสเตอรอล ฮอร์โมน และยาปฏิชีวนะที่พบในนมวัว นอกจากนี้ การผลิตโปรตีนเคซีนผ่านการหมักยังช่วยลดการปล่อยก๊าซเรือนกระจกและการใช้ทรัพยากรน้ำและที่ดินเมื่อเทียบกับการผลิตนมวัวแบบดั้งเดิม เพื่อรับความดีงามจากประชากรโลกไปตามระเบียบ
มาดูรอบการระดมทุนกันครับ ยอดเงินทุนรวมที่ได้รับ จนถึงเดือนมีนาคม 2025 New Culture ได้รับเงินทุนรวมประมาณ $35 ล้านดอลลาร์สหรัฐ จากการระดมทุนทั้งหมด 8 รอบ ที่น่าจับตามองคือ Series A ในเดือนพฤศจิกายน 2021 บริษัทได้รับเงินทุน $25 ล้านดอลลาร์สหรัฐ จากนักลงทุนรวมถึง ADM Ventures และ Evolv Ventures ซึ่งเป็นหน่วยงานร่วมลงทุนของ Kraft Heinz
นอกจาก Evolv Ventures จาก Kraft Heinz แล้ว อย่าคิดว่ามันไกลเกินนะครับ CJ CheilJedang บริษัทจากเกาหลีใต้ที่เป็นผู้นำด้านเทคโนโลยีการหมัก ได้เข้าร่วมลงทุนในรอบ Series A เมื่อเดือนพฤศจิกายน 2022 แล้วเจ้านี้นี่บอกได้เลยครับ บิ๊กเนม CJ CheilJedang เป็นผู้นำด้านเทคโนโลยีการหมักและมีส่วนแบ่งตลาด 25% ในตลาดพิซซ่าแช่แข็งของสหรัฐฯ เป้าหมายการเข้าร่วมลงทุนใน New Culture ก็เพื่อสนับสนุนการพัฒนาผลิตภัณฑ์และการขยายกำลังการผลิตของชีสปราศจากสัตว์ของบริษัท
New Culture ยังได้ร่วมมือกับเชฟชื่อดัง Nancy Silverton เพื่อเปิดตัวผลิตภัณฑ์ชีสในร้านอาหารระดับเชฟชื่อดังในสหรัฐฯ กลางปี 2025 โดยเริ่มที่ร้าน Pizzeria Mozza ในลอสแอนเจลิส ซึ่งถือเป็นการเปิดตัวผลิตภัณฑ์สู่ตลาดผู้บริโภคครั้งแรกของบริษัท
การเข้ามาลงทุนของ Evolv Ventures กองทุนร่วมลงทุนของ Kraft Heinz ทำให้เจ้าพ่อชีสโปรเซสในตำนาน มีโอกาสเข้ามาร่วมมือเปิดร้านอาหารนำร่องกับ New Culture
น่าสนใจไหม เงินทุนใหญ่ๆมาจากหน่วยลงทุนที่มีผลิตภัณฑ์เป็น พิซซ่า #pirateketo #กูต้องรู้มั๊ย #ม้วนหางสิลูก #siamstr
-
@ 55f04590:2d385185
2025-05-12 12:34:10Behind the scenes, a lot has happened over the past weeks.
The design of the book’s pages is nearly finished. I’ve selected and placed the illustrations and sketches I’ll feature and I’m close to finalising the Introduction section. All that’s left to do is a small photo shoot of some things from my archives, selecting one or two more articles for the Context section, and illustrating the articles.
After that I’ll print a dummy and kick off the second round of iteration—crossing T’s, dotting I’s. (And then I’ll cross those T’s and dot those I’s again and again because, surely, more things will arise.)
In parallel, and perhaps most importantly, I’m working on the design of the cover. I have a few ideas I’d like to discuss with the printer to learn more about the various possibilities and costs.
Book site
The book is now also available for pre-order through its own website, where you can pay for it in euros or dollars, if you prefer. BTC payments are still possible, too.
Originally I only offered one pre-order option that included rewards, like a print and a sticker pack. I’ve now named that the Collectors Edition, and added a separate option to order just the book (without additional rewards) at a reduced price.
Once the book is out in the world, this site is where I’ll have it up for sale. I’ll make the articles and illustrations from the Context section available there too. They’ll be published, in their entirety, under the Creative Commons Share-alike license.
Promo video
My friend Lilia shot and edited a short promotional video that provides a glimpse behind the scenes in my studio in Amsterdam, a peek at the book’s production process, and a sneak preview of the first spreads. While the process was new to me, this video was a lot of fun to make and I’m proud of the result.
Pre-orders
The total number of pre-orders has grown to 76—12 of which came through the new website. I initially thought I’d be selling 50 pre-orders at most, so things are definitely exceeding my expectations.
Feel free to place your pre-order through the new site, or use the Geyser crowdfund campaign to secure your copy.
Up next
In my next blog I’ll dive a little deeper into the technical side of the book. I’ll take you through the different kinds of paper I’ll use, the printing methods we’ll employ, and how the book will be bound and finished.
Keep your eyes peeled! Thomas
Previous updates
The NoGood art book announcement Update 01 – Humble beginnings Update 02 – Throwback Update 03 – Loops
Pre-order a book
The NoGood art book is available as a pre-order on book.nogood.studio, where you can pay for it in euros or dollars, if you prefer. BTC payments are still possible, too.
Alternatively, visit the Geyser crowdfund campaign to secure your copy.
originally posted at https://stacker.news/items/978096
-
@ 04c915da:3dfbecc9
2025-03-26 20:54:33Capitalism is the most effective system for scaling innovation. The pursuit of profit is an incredibly powerful human incentive. Most major improvements to human society and quality of life have resulted from this base incentive. Market competition often results in the best outcomes for all.
That said, some projects can never be monetized. They are open in nature and a business model would centralize control. Open protocols like bitcoin and nostr are not owned by anyone and if they were it would destroy the key value propositions they provide. No single entity can or should control their use. Anyone can build on them without permission.
As a result, open protocols must depend on donation based grant funding from the people and organizations that rely on them. This model works but it is slow and uncertain, a grind where sustainability is never fully reached but rather constantly sought. As someone who has been incredibly active in the open source grant funding space, I do not think people truly appreciate how difficult it is to raise charitable money and deploy it efficiently.
Projects that can be monetized should be. Profitability is a super power. When a business can generate revenue, it taps into a self sustaining cycle. Profit fuels growth and development while providing projects independence and agency. This flywheel effect is why companies like Google, Amazon, and Apple have scaled to global dominance. The profit incentive aligns human effort with efficiency. Businesses must innovate, cut waste, and deliver value to survive.
Contrast this with non monetized projects. Without profit, they lean on external support, which can dry up or shift with donor priorities. A profit driven model, on the other hand, is inherently leaner and more adaptable. It is not charity but survival. When survival is tied to delivering what people want, scale follows naturally.
The real magic happens when profitable, sustainable businesses are built on top of open protocols and software. Consider the many startups building on open source software stacks, such as Start9, Mempool, and Primal, offering premium services on top of the open source software they build out and maintain. Think of companies like Block or Strike, which leverage bitcoin’s open protocol to offer their services on top. These businesses amplify the open software and protocols they build on, driving adoption and improvement at a pace donations alone could never match.
When you combine open software and protocols with profit driven business the result are lean, sustainable companies that grow faster and serve more people than either could alone. Bitcoin’s network, for instance, benefits from businesses that profit off its existence, while nostr will expand as developers monetize apps built on the protocol.
Capitalism scales best because competition results in efficiency. Donation funded protocols and software lay the groundwork, while market driven businesses build on top. The profit incentive acts as a filter, ensuring resources flow to what works, while open systems keep the playing field accessible, empowering users and builders. Together, they create a flywheel of innovation, growth, and global benefit.
-
@ c1e6505c:02b3157e
2025-05-13 00:58:11I rarely make black and white photographs. I usually find color more interesting. But sometimes, it’s wise to strip it away.
Color can be distracting. It can pull attention from what matters. Beauty, I believe, should be simple - something that’s felt, not overthought.
Removing the excessive, the superfluous, can do a lot. It reduces noise. It reveals what’s often hidden. What’s elusive becomes clear.
-
@ c9badfea:610f861a
2025-05-13 00:43:22ℹ️ FMHY is the largest collection of free stuff on the internet - regularly mirrored from the original source
💡️ Content is updated automatically; bookmark this article to stay up to date
Getting Started
Wiki
- 📛️ Adblocking / Privacy
- 🤖️ Artificial Intelligence
- 📺️ Movies / TV / Anime
- 🎵️ Music / Podcasts / Radio
- 🎮️ Gaming / Emulation
- 📗️ Books / Comics / Manga
- 💾️ Downloading
- 🌀️ Torrenting
- 🧠️ Educational
- 📱️ Android / iOS
- 🐧️ Linux / macOS
- 🌏️ Non-English
- 📂️ Miscellaneous
Tools
-
@ 04c915da:3dfbecc9
2025-03-25 17:43:44One of the most common criticisms leveled against nostr is the perceived lack of assurance when it comes to data storage. Critics argue that without a centralized authority guaranteeing that all data is preserved, important information will be lost. They also claim that running a relay will become prohibitively expensive. While there is truth to these concerns, they miss the mark. The genius of nostr lies in its flexibility, resilience, and the way it harnesses human incentives to ensure data availability in practice.
A nostr relay is simply a server that holds cryptographically verifiable signed data and makes it available to others. Relays are simple, flexible, open, and require no permission to run. Critics are right that operating a relay attempting to store all nostr data will be costly. What they miss is that most will not run all encompassing archive relays. Nostr does not rely on massive archive relays. Instead, anyone can run a relay and choose to store whatever subset of data they want. This keeps costs low and operations flexible, making relay operation accessible to all sorts of individuals and entities with varying use cases.
Critics are correct that there is no ironclad guarantee that every piece of data will always be available. Unlike bitcoin where data permanence is baked into the system at a steep cost, nostr does not promise that every random note or meme will be preserved forever. That said, in practice, any data perceived as valuable by someone will likely be stored and distributed by multiple entities. If something matters to someone, they will keep a signed copy.
Nostr is the Streisand Effect in protocol form. The Streisand effect is when an attempt to suppress information backfires, causing it to spread even further. With nostr, anyone can broadcast signed data, anyone can store it, and anyone can distribute it. Try to censor something important? Good luck. The moment it catches attention, it will be stored on relays across the globe, copied, and shared by those who find it worth keeping. Data deemed important will be replicated across servers by individuals acting in their own interest.
Nostr’s distributed nature ensures that the system does not rely on a single point of failure or a corporate overlord. Instead, it leans on the collective will of its users. The result is a network where costs stay manageable, participation is open to all, and valuable verifiable data is stored and distributed forever.
-
@ e3ba5e1a:5e433365
2025-04-15 11:03:15Prelude
I wrote this post differently than any of my others. It started with a discussion with AI on an OPSec-inspired review of separation of powers, and evolved into quite an exciting debate! I asked Grok to write up a summary in my overall writing style, which it got pretty well. I've decided to post it exactly as-is. Ultimately, I think there are two solid ideas driving my stance here:
- Perfect is the enemy of the good
- Failure is the crucible of success
Beyond that, just some hard-core belief in freedom, separation of powers, and operating from self-interest.
Intro
Alright, buckle up. I’ve been chewing on this idea for a while, and it’s time to spit it out. Let’s look at the U.S. government like I’d look at a codebase under a cybersecurity audit—OPSEC style, no fluff. Forget the endless debates about what politicians should do. That’s noise. I want to talk about what they can do, the raw powers baked into the system, and why we should stop pretending those powers are sacred. If there’s a hole, either patch it or exploit it. No half-measures. And yeah, I’m okay if the whole thing crashes a bit—failure’s a feature, not a bug.
The Filibuster: A Security Rule with No Teeth
You ever see a firewall rule that’s more theater than protection? That’s the Senate filibuster. Everyone acts like it’s this untouchable guardian of democracy, but here’s the deal: a simple majority can torch it any day. It’s not a law; it’s a Senate preference, like choosing tabs over spaces. When people call killing it the “nuclear option,” I roll my eyes. Nuclear? It’s a button labeled “press me.” If a party wants it gone, they’ll do it. So why the dance?
I say stop playing games. Get rid of the filibuster. If you’re one of those folks who thinks it’s the only thing saving us from tyranny, fine—push for a constitutional amendment to lock it in. That’s a real patch, not a Post-it note. Until then, it’s just a vulnerability begging to be exploited. Every time a party threatens to nuke it, they’re admitting it’s not essential. So let’s stop pretending and move on.
Supreme Court Packing: Because Nine’s Just a Number
Here’s another fun one: the Supreme Court. Nine justices, right? Sounds official. Except it’s not. The Constitution doesn’t say nine—it’s silent on the number. Congress could pass a law tomorrow to make it 15, 20, or 42 (hitchhiker’s reference, anyone?). Packing the court is always on the table, and both sides know it. It’s like a root exploit just sitting there, waiting for someone to log in.
So why not call the bluff? If you’re in power—say, Trump’s back in the game—say, “I’m packing the court unless we amend the Constitution to fix it at nine.” Force the issue. No more shadowboxing. And honestly? The court’s got way too much power anyway. It’s not supposed to be a super-legislature, but here we are, with justices’ ideologies driving the bus. That’s a bug, not a feature. If the court weren’t such a kingmaker, packing it wouldn’t even matter. Maybe we should be talking about clipping its wings instead of just its size.
The Executive Should Go Full Klingon
Let’s talk presidents. I’m not saying they should wear Klingon armor and start shouting “Qapla’!”—though, let’s be real, that’d be awesome. I’m saying the executive should use every scrap of power the Constitution hands them. Enforce the laws you agree with, sideline the ones you don’t. If Congress doesn’t like it, they’ve got tools: pass new laws, override vetoes, or—here’s the big one—cut the budget. That’s not chaos; that’s the system working as designed.
Right now, the real problem isn’t the president overreaching; it’s the bureaucracy. It’s like a daemon running in the background, eating CPU and ignoring the user. The president’s supposed to be the one steering, but the administrative state’s got its own agenda. Let the executive flex, push the limits, and force Congress to check it. Norms? Pfft. The Constitution’s the spec sheet—stick to it.
Let the System Crash
Here’s where I get a little spicy: I’m totally fine if the government grinds to a halt. Deadlock isn’t a disaster; it’s a feature. If the branches can’t agree, let the president veto, let Congress starve the budget, let enforcement stall. Don’t tell me about “essential services.” Nothing’s so critical it can’t take a breather. Shutdowns force everyone to the table—debate, compromise, or expose who’s dropping the ball. If the public loses trust? Good. They’ll vote out the clowns or live with the circus they elected.
Think of it like a server crash. Sometimes you need a hard reboot to clear the cruft. If voters keep picking the same bad admins, well, the country gets what it deserves. Failure’s the best teacher—way better than limping along on autopilot.
States Are the Real MVPs
If the feds fumble, states step up. Right now, states act like junior devs waiting for the lead engineer to sign off. Why? Federal money. It’s a leash, and it’s tight. Cut that cash, and states will remember they’re autonomous. Some will shine, others will tank—looking at you, California. And I’m okay with that. Let people flee to better-run states. No bailouts, no excuses. States are like competing startups: the good ones thrive, the bad ones pivot or die.
Could it get uneven? Sure. Some states might turn into sci-fi utopias while others look like a post-apocalyptic vidya game. That’s the point—competition sorts it out. Citizens can move, markets adjust, and failure’s a signal to fix your act.
Chaos Isn’t the Enemy
Yeah, this sounds messy. States ignoring federal law, external threats poking at our seams, maybe even a constitutional crisis. I’m not scared. The Supreme Court’s there to referee interstate fights, and Congress sets the rules for state-to-state play. But if it all falls apart? Still cool. States can sort it without a babysitter—it’ll be ugly, but freedom’s worth it. External enemies? They’ll either unify us or break us. If we can’t rally, we don’t deserve the win.
Centralizing power to avoid this is like rewriting your app in a single thread to prevent race conditions—sure, it’s simpler, but you’re begging for a deadlock. Decentralized chaos lets states experiment, lets people escape, lets markets breathe. States competing to cut regulations to attract businesses? That’s a race to the bottom for red tape, but a race to the top for innovation—workers might gripe, but they’ll push back, and the tension’s healthy. Bring it—let the cage match play out. The Constitution’s checks are enough if we stop coddling the system.
Why This Matters
I’m not pitching a utopia. I’m pitching a stress test. The U.S. isn’t a fragile porcelain doll; it’s a rugged piece of hardware built to take some hits. Let it fail a little—filibuster, court, feds, whatever. Patch the holes with amendments if you want, or lean into the grind. Either way, stop fearing the crash. It’s how we debug the republic.
So, what’s your take? Ready to let the system rumble, or got a better way to secure the code? Hit me up—I’m all ears.
-
@ 91bea5cd:1df4451c
2025-04-15 06:27:28Básico
bash lsblk # Lista todos os diretorios montados.
Para criar o sistema de arquivos:
bash mkfs.btrfs -L "ThePool" -f /dev/sdx
Criando um subvolume:
bash btrfs subvolume create SubVol
Montando Sistema de Arquivos:
bash mount -o compress=zlib,subvol=SubVol,autodefrag /dev/sdx /mnt
Lista os discos formatados no diretório:
bash btrfs filesystem show /mnt
Adiciona novo disco ao subvolume:
bash btrfs device add -f /dev/sdy /mnt
Lista novamente os discos do subvolume:
bash btrfs filesystem show /mnt
Exibe uso dos discos do subvolume:
bash btrfs filesystem df /mnt
Balancea os dados entre os discos sobre raid1:
bash btrfs filesystem balance start -dconvert=raid1 -mconvert=raid1 /mnt
Scrub é uma passagem por todos os dados e metadados do sistema de arquivos e verifica as somas de verificação. Se uma cópia válida estiver disponível (perfis de grupo de blocos replicados), a danificada será reparada. Todas as cópias dos perfis replicados são validadas.
iniciar o processo de depuração :
bash btrfs scrub start /mnt
ver o status do processo de depuração Btrfs em execução:
bash btrfs scrub status /mnt
ver o status do scrub Btrfs para cada um dos dispositivos
bash btrfs scrub status -d / data btrfs scrub cancel / data
Para retomar o processo de depuração do Btrfs que você cancelou ou pausou:
btrfs scrub resume / data
Listando os subvolumes:
bash btrfs subvolume list /Reports
Criando um instantâneo dos subvolumes:
Aqui, estamos criando um instantâneo de leitura e gravação chamado snap de marketing do subvolume de marketing.
bash btrfs subvolume snapshot /Reports/marketing /Reports/marketing-snap
Além disso, você pode criar um instantâneo somente leitura usando o sinalizador -r conforme mostrado. O marketing-rosnap é um instantâneo somente leitura do subvolume de marketing
bash btrfs subvolume snapshot -r /Reports/marketing /Reports/marketing-rosnap
Forçar a sincronização do sistema de arquivos usando o utilitário 'sync'
Para forçar a sincronização do sistema de arquivos, invoque a opção de sincronização conforme mostrado. Observe que o sistema de arquivos já deve estar montado para que o processo de sincronização continue com sucesso.
bash btrfs filsystem sync /Reports
Para excluir o dispositivo do sistema de arquivos, use o comando device delete conforme mostrado.
bash btrfs device delete /dev/sdc /Reports
Para sondar o status de um scrub, use o comando scrub status com a opção -dR .
bash btrfs scrub status -dR / Relatórios
Para cancelar a execução do scrub, use o comando scrub cancel .
bash $ sudo btrfs scrub cancel / Reports
Para retomar ou continuar com uma depuração interrompida anteriormente, execute o comando de cancelamento de depuração
bash sudo btrfs scrub resume /Reports
mostra o uso do dispositivo de armazenamento:
btrfs filesystem usage /data
Para distribuir os dados, metadados e dados do sistema em todos os dispositivos de armazenamento do RAID (incluindo o dispositivo de armazenamento recém-adicionado) montados no diretório /data , execute o seguinte comando:
sudo btrfs balance start --full-balance /data
Pode demorar um pouco para espalhar os dados, metadados e dados do sistema em todos os dispositivos de armazenamento do RAID se ele contiver muitos dados.
Opções importantes de montagem Btrfs
Nesta seção, vou explicar algumas das importantes opções de montagem do Btrfs. Então vamos começar.
As opções de montagem Btrfs mais importantes são:
**1. acl e noacl
**ACL gerencia permissões de usuários e grupos para os arquivos/diretórios do sistema de arquivos Btrfs.
A opção de montagem acl Btrfs habilita ACL. Para desabilitar a ACL, você pode usar a opção de montagem noacl .
Por padrão, a ACL está habilitada. Portanto, o sistema de arquivos Btrfs usa a opção de montagem acl por padrão.
**2. autodefrag e noautodefrag
**Desfragmentar um sistema de arquivos Btrfs melhorará o desempenho do sistema de arquivos reduzindo a fragmentação de dados.
A opção de montagem autodefrag permite a desfragmentação automática do sistema de arquivos Btrfs.
A opção de montagem noautodefrag desativa a desfragmentação automática do sistema de arquivos Btrfs.
Por padrão, a desfragmentação automática está desabilitada. Portanto, o sistema de arquivos Btrfs usa a opção de montagem noautodefrag por padrão.
**3. compactar e compactar-forçar
**Controla a compactação de dados no nível do sistema de arquivos do sistema de arquivos Btrfs.
A opção compactar compacta apenas os arquivos que valem a pena compactar (se compactar o arquivo economizar espaço em disco).
A opção compress-force compacta todos os arquivos do sistema de arquivos Btrfs, mesmo que a compactação do arquivo aumente seu tamanho.
O sistema de arquivos Btrfs suporta muitos algoritmos de compactação e cada um dos algoritmos de compactação possui diferentes níveis de compactação.
Os algoritmos de compactação suportados pelo Btrfs são: lzo , zlib (nível 1 a 9) e zstd (nível 1 a 15).
Você pode especificar qual algoritmo de compactação usar para o sistema de arquivos Btrfs com uma das seguintes opções de montagem:
- compress=algoritmo:nível
- compress-force=algoritmo:nível
Para obter mais informações, consulte meu artigo Como habilitar a compactação do sistema de arquivos Btrfs .
**4. subvol e subvolid
**Estas opções de montagem são usadas para montar separadamente um subvolume específico de um sistema de arquivos Btrfs.
A opção de montagem subvol é usada para montar o subvolume de um sistema de arquivos Btrfs usando seu caminho relativo.
A opção de montagem subvolid é usada para montar o subvolume de um sistema de arquivos Btrfs usando o ID do subvolume.
Para obter mais informações, consulte meu artigo Como criar e montar subvolumes Btrfs .
**5. dispositivo
A opção de montagem de dispositivo** é usada no sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs.
Em alguns casos, o sistema operacional pode falhar ao detectar os dispositivos de armazenamento usados em um sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs. Nesses casos, você pode usar a opção de montagem do dispositivo para especificar os dispositivos que deseja usar para o sistema de arquivos de vários dispositivos Btrfs ou RAID.
Você pode usar a opção de montagem de dispositivo várias vezes para carregar diferentes dispositivos de armazenamento para o sistema de arquivos de vários dispositivos Btrfs ou RAID.
Você pode usar o nome do dispositivo (ou seja, sdb , sdc ) ou UUID , UUID_SUB ou PARTUUID do dispositivo de armazenamento com a opção de montagem do dispositivo para identificar o dispositivo de armazenamento.
Por exemplo,
- dispositivo=/dev/sdb
- dispositivo=/dev/sdb,dispositivo=/dev/sdc
- dispositivo=UUID_SUB=490a263d-eb9a-4558-931e-998d4d080c5d
- device=UUID_SUB=490a263d-eb9a-4558-931e-998d4d080c5d,device=UUID_SUB=f7ce4875-0874-436a-b47d-3edef66d3424
**6. degraded
A opção de montagem degradada** permite que um RAID Btrfs seja montado com menos dispositivos de armazenamento do que o perfil RAID requer.
Por exemplo, o perfil raid1 requer a presença de 2 dispositivos de armazenamento. Se um dos dispositivos de armazenamento não estiver disponível em qualquer caso, você usa a opção de montagem degradada para montar o RAID mesmo que 1 de 2 dispositivos de armazenamento esteja disponível.
**7. commit
A opção commit** mount é usada para definir o intervalo (em segundos) dentro do qual os dados serão gravados no dispositivo de armazenamento.
O padrão é definido como 30 segundos.
Para definir o intervalo de confirmação para 15 segundos, você pode usar a opção de montagem commit=15 (digamos).
**8. ssd e nossd
A opção de montagem ssd** informa ao sistema de arquivos Btrfs que o sistema de arquivos está usando um dispositivo de armazenamento SSD, e o sistema de arquivos Btrfs faz a otimização SSD necessária.
A opção de montagem nossd desativa a otimização do SSD.
O sistema de arquivos Btrfs detecta automaticamente se um SSD é usado para o sistema de arquivos Btrfs. Se um SSD for usado, a opção de montagem de SSD será habilitada. Caso contrário, a opção de montagem nossd é habilitada.
**9. ssd_spread e nossd_spread
A opção de montagem ssd_spread** tenta alocar grandes blocos contínuos de espaço não utilizado do SSD. Esse recurso melhora o desempenho de SSDs de baixo custo (baratos).
A opção de montagem nossd_spread desativa o recurso ssd_spread .
O sistema de arquivos Btrfs detecta automaticamente se um SSD é usado para o sistema de arquivos Btrfs. Se um SSD for usado, a opção de montagem ssd_spread será habilitada. Caso contrário, a opção de montagem nossd_spread é habilitada.
**10. descarte e nodiscard
Se você estiver usando um SSD que suporte TRIM enfileirado assíncrono (SATA rev3.1), a opção de montagem de descarte** permitirá o descarte de blocos de arquivos liberados. Isso melhorará o desempenho do SSD.
Se o SSD não suportar TRIM enfileirado assíncrono, a opção de montagem de descarte prejudicará o desempenho do SSD. Nesse caso, a opção de montagem nodiscard deve ser usada.
Por padrão, a opção de montagem nodiscard é usada.
**11. norecovery
Se a opção de montagem norecovery** for usada, o sistema de arquivos Btrfs não tentará executar a operação de recuperação de dados no momento da montagem.
**12. usebackuproot e nousebackuproot
Se a opção de montagem usebackuproot for usada, o sistema de arquivos Btrfs tentará recuperar qualquer raiz de árvore ruim/corrompida no momento da montagem. O sistema de arquivos Btrfs pode armazenar várias raízes de árvore no sistema de arquivos. A opção de montagem usebackuproot** procurará uma boa raiz de árvore e usará a primeira boa que encontrar.
A opção de montagem nousebackuproot não verificará ou recuperará raízes de árvore inválidas/corrompidas no momento da montagem. Este é o comportamento padrão do sistema de arquivos Btrfs.
**13. space_cache, space_cache=version, nospace_cache e clear_cache
A opção de montagem space_cache** é usada para controlar o cache de espaço livre. O cache de espaço livre é usado para melhorar o desempenho da leitura do espaço livre do grupo de blocos do sistema de arquivos Btrfs na memória (RAM).
O sistema de arquivos Btrfs suporta 2 versões do cache de espaço livre: v1 (padrão) e v2
O mecanismo de cache de espaço livre v2 melhora o desempenho de sistemas de arquivos grandes (tamanho de vários terabytes).
Você pode usar a opção de montagem space_cache=v1 para definir a v1 do cache de espaço livre e a opção de montagem space_cache=v2 para definir a v2 do cache de espaço livre.
A opção de montagem clear_cache é usada para limpar o cache de espaço livre.
Quando o cache de espaço livre v2 é criado, o cache deve ser limpo para criar um cache de espaço livre v1 .
Portanto, para usar o cache de espaço livre v1 após a criação do cache de espaço livre v2 , as opções de montagem clear_cache e space_cache=v1 devem ser combinadas: clear_cache,space_cache=v1
A opção de montagem nospace_cache é usada para desabilitar o cache de espaço livre.
Para desabilitar o cache de espaço livre após a criação do cache v1 ou v2 , as opções de montagem nospace_cache e clear_cache devem ser combinadas: clear_cache,nosapce_cache
**14. skip_balance
Por padrão, a operação de balanceamento interrompida/pausada de um sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs será retomada automaticamente assim que o sistema de arquivos Btrfs for montado. Para desabilitar a retomada automática da operação de equilíbrio interrompido/pausado em um sistema de arquivos Btrfs de vários dispositivos ou RAID Btrfs, você pode usar a opção de montagem skip_balance .**
**15. datacow e nodatacow
A opção datacow** mount habilita o recurso Copy-on-Write (CoW) do sistema de arquivos Btrfs. É o comportamento padrão.
Se você deseja desabilitar o recurso Copy-on-Write (CoW) do sistema de arquivos Btrfs para os arquivos recém-criados, monte o sistema de arquivos Btrfs com a opção de montagem nodatacow .
**16. datasum e nodatasum
A opção datasum** mount habilita a soma de verificação de dados para arquivos recém-criados do sistema de arquivos Btrfs. Este é o comportamento padrão.
Se você não quiser que o sistema de arquivos Btrfs faça a soma de verificação dos dados dos arquivos recém-criados, monte o sistema de arquivos Btrfs com a opção de montagem nodatasum .
Perfis Btrfs
Um perfil Btrfs é usado para informar ao sistema de arquivos Btrfs quantas cópias dos dados/metadados devem ser mantidas e quais níveis de RAID devem ser usados para os dados/metadados. O sistema de arquivos Btrfs contém muitos perfis. Entendê-los o ajudará a configurar um RAID Btrfs da maneira que você deseja.
Os perfis Btrfs disponíveis são os seguintes:
single : Se o perfil único for usado para os dados/metadados, apenas uma cópia dos dados/metadados será armazenada no sistema de arquivos, mesmo se você adicionar vários dispositivos de armazenamento ao sistema de arquivos. Assim, 100% do espaço em disco de cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos pode ser utilizado.
dup : Se o perfil dup for usado para os dados/metadados, cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos manterá duas cópias dos dados/metadados. Assim, 50% do espaço em disco de cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos pode ser utilizado.
raid0 : No perfil raid0 , os dados/metadados serão divididos igualmente em todos os dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, não haverá dados/metadados redundantes (duplicados). Assim, 100% do espaço em disco de cada um dos dispositivos de armazenamento adicionados ao sistema de arquivos pode ser usado. Se, em qualquer caso, um dos dispositivos de armazenamento falhar, todo o sistema de arquivos será corrompido. Você precisará de pelo menos dois dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid0 .
raid1 : No perfil raid1 , duas cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, a matriz RAID pode sobreviver a uma falha de unidade. Mas você pode usar apenas 50% do espaço total em disco. Você precisará de pelo menos dois dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid1 .
raid1c3 : No perfil raid1c3 , três cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, a matriz RAID pode sobreviver a duas falhas de unidade, mas você pode usar apenas 33% do espaço total em disco. Você precisará de pelo menos três dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid1c3 .
raid1c4 : No perfil raid1c4 , quatro cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos. Nesta configuração, a matriz RAID pode sobreviver a três falhas de unidade, mas você pode usar apenas 25% do espaço total em disco. Você precisará de pelo menos quatro dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid1c4 .
raid10 : No perfil raid10 , duas cópias dos dados/metadados serão armazenadas nos dispositivos de armazenamento adicionados ao sistema de arquivos, como no perfil raid1 . Além disso, os dados/metadados serão divididos entre os dispositivos de armazenamento, como no perfil raid0 .
O perfil raid10 é um híbrido dos perfis raid1 e raid0 . Alguns dos dispositivos de armazenamento formam arrays raid1 e alguns desses arrays raid1 são usados para formar um array raid0 . Em uma configuração raid10 , o sistema de arquivos pode sobreviver a uma única falha de unidade em cada uma das matrizes raid1 .
Você pode usar 50% do espaço total em disco na configuração raid10 . Você precisará de pelo menos quatro dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid10 .
raid5 : No perfil raid5 , uma cópia dos dados/metadados será dividida entre os dispositivos de armazenamento. Uma única paridade será calculada e distribuída entre os dispositivos de armazenamento do array RAID.
Em uma configuração raid5 , o sistema de arquivos pode sobreviver a uma única falha de unidade. Se uma unidade falhar, você pode adicionar uma nova unidade ao sistema de arquivos e os dados perdidos serão calculados a partir da paridade distribuída das unidades em execução.
Você pode usar 1 00x(N-1)/N % do total de espaços em disco na configuração raid5 . Aqui, N é o número de dispositivos de armazenamento adicionados ao sistema de arquivos. Você precisará de pelo menos três dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid5 .
raid6 : No perfil raid6 , uma cópia dos dados/metadados será dividida entre os dispositivos de armazenamento. Duas paridades serão calculadas e distribuídas entre os dispositivos de armazenamento do array RAID.
Em uma configuração raid6 , o sistema de arquivos pode sobreviver a duas falhas de unidade ao mesmo tempo. Se uma unidade falhar, você poderá adicionar uma nova unidade ao sistema de arquivos e os dados perdidos serão calculados a partir das duas paridades distribuídas das unidades em execução.
Você pode usar 100x(N-2)/N % do espaço total em disco na configuração raid6 . Aqui, N é o número de dispositivos de armazenamento adicionados ao sistema de arquivos. Você precisará de pelo menos quatro dispositivos de armazenamento para configurar o sistema de arquivos Btrfs no perfil raid6 .
-
@ 21335073:a244b1ad
2025-03-18 20:47:50Warning: This piece contains a conversation about difficult topics. Please proceed with caution.
TL;DR please educate your children about online safety.
Julian Assange wrote in his 2012 book Cypherpunks, “This book is not a manifesto. There isn’t time for that. This book is a warning.” I read it a few times over the past summer. Those opening lines definitely stood out to me. I wish we had listened back then. He saw something about the internet that few had the ability to see. There are some individuals who are so close to a topic that when they speak, it’s difficult for others who aren’t steeped in it to visualize what they’re talking about. I didn’t read the book until more recently. If I had read it when it came out, it probably would have sounded like an unknown foreign language to me. Today it makes more sense.
This isn’t a manifesto. This isn’t a book. There is no time for that. It’s a warning and a possible solution from a desperate and determined survivor advocate who has been pulling and unraveling a thread for a few years. At times, I feel too close to this topic to make any sense trying to convey my pathway to my conclusions or thoughts to the general public. My hope is that if nothing else, I can convey my sense of urgency while writing this. This piece is a watchman’s warning.
When a child steps online, they are walking into a new world. A new reality. When you hand a child the internet, you are handing them possibilities—good, bad, and ugly. This is a conversation about lowering the potential of negative outcomes of stepping into that new world and how I came to these conclusions. I constantly compare the internet to the road. You wouldn’t let a young child run out into the road with no guidance or safety precautions. When you hand a child the internet without any type of guidance or safety measures, you are allowing them to play in rush hour, oncoming traffic. “Look left, look right for cars before crossing.” We almost all have been taught that as children. What are we taught as humans about safety before stepping into a completely different reality like the internet? Very little.
I could never really figure out why many folks in tech, privacy rights activists, and hackers seemed so cold to me while talking about online child sexual exploitation. I always figured that as a survivor advocate for those affected by these crimes, that specific, skilled group of individuals would be very welcoming and easy to talk to about such serious topics. I actually had one hacker laugh in my face when I brought it up while I was looking for answers. I thought maybe this individual thought I was accusing them of something I wasn’t, so I felt bad for asking. I was constantly extremely disappointed and would ask myself, “Why don’t they care? What could I say to make them care more? What could I say to make them understand the crisis and the level of suffering that happens as a result of the problem?”
I have been serving minor survivors of online child sexual exploitation for years. My first case serving a survivor of this specific crime was in 2018—a 13-year-old girl sexually exploited by a serial predator on Snapchat. That was my first glimpse into this side of the internet. I won a national award for serving the minor survivors of Twitter in 2023, but I had been working on that specific project for a few years. I was nominated by a lawyer representing two survivors in a legal battle against the platform. I’ve never really spoken about this before, but at the time it was a choice for me between fighting Snapchat or Twitter. I chose Twitter—or rather, Twitter chose me. I heard about the story of John Doe #1 and John Doe #2, and I was so unbelievably broken over it that I went to war for multiple years. I was and still am royally pissed about that case. As far as I was concerned, the John Doe #1 case proved that whatever was going on with corporate tech social media was so out of control that I didn’t have time to wait, so I got to work. It was reading the messages that John Doe #1 sent to Twitter begging them to remove his sexual exploitation that broke me. He was a child begging adults to do something. A passion for justice and protecting kids makes you do wild things. I was desperate to find answers about what happened and searched for solutions. In the end, the platform Twitter was purchased. During the acquisition, I just asked Mr. Musk nicely to prioritize the issue of detection and removal of child sexual exploitation without violating digital privacy rights or eroding end-to-end encryption. Elon thanked me multiple times during the acquisition, made some changes, and I was thanked by others on the survivors’ side as well.
I still feel that even with the progress made, I really just scratched the surface with Twitter, now X. I left that passion project when I did for a few reasons. I wanted to give new leadership time to tackle the issue. Elon Musk made big promises that I knew would take a while to fulfill, but mostly I had been watching global legislation transpire around the issue, and frankly, the governments are willing to go much further with X and the rest of corporate tech than I ever would. My work begging Twitter to make changes with easier reporting of content, detection, and removal of child sexual exploitation material—without violating privacy rights or eroding end-to-end encryption—and advocating for the minor survivors of the platform went as far as my principles would have allowed. I’m grateful for that experience. I was still left with a nagging question: “How did things get so bad with Twitter where the John Doe #1 and John Doe #2 case was able to happen in the first place?” I decided to keep looking for answers. I decided to keep pulling the thread.
I never worked for Twitter. This is often confusing for folks. I will say that despite being disappointed in the platform’s leadership at times, I loved Twitter. I saw and still see its value. I definitely love the survivors of the platform, but I also loved the platform. I was a champion of the platform’s ability to give folks from virtually around the globe an opportunity to speak and be heard.
I want to be clear that John Doe #1 really is my why. He is the inspiration. I am writing this because of him. He represents so many globally, and I’m still inspired by his bravery. One child’s voice begging adults to do something—I’m an adult, I heard him. I’d go to war a thousand more lifetimes for that young man, and I don’t even know his name. Fighting has been personally dark at times; I’m not even going to try to sugarcoat it, but it has been worth it.
The data surrounding the very real crime of online child sexual exploitation is available to the public online at any time for anyone to see. I’d encourage you to go look at the data for yourself. I believe in encouraging folks to check multiple sources so that you understand the full picture. If you are uncomfortable just searching around the internet for information about this topic, use the terms “CSAM,” “CSEM,” “SG-CSEM,” or “AI Generated CSAM.” The numbers don’t lie—it’s a nightmare that’s out of control. It’s a big business. The demand is high, and unfortunately, business is booming. Organizations collect the data, tech companies often post their data, governments report frequently, and the corporate press has covered a decent portion of the conversation, so I’m sure you can find a source that you trust.
Technology is changing rapidly, which is great for innovation as a whole but horrible for the crime of online child sexual exploitation. Those wishing to exploit the vulnerable seem to be adapting to each technological change with ease. The governments are so far behind with tackling these issues that as I’m typing this, it’s borderline irrelevant to even include them while speaking about the crime or potential solutions. Technology is changing too rapidly, and their old, broken systems can’t even dare to keep up. Think of it like the governments’ “War on Drugs.” Drugs won. In this case as well, the governments are not winning. The governments are talking about maybe having a meeting on potentially maybe having legislation around the crimes. The time to have that meeting would have been many years ago. I’m not advocating for governments to legislate our way out of this. I’m on the side of educating and innovating our way out of this.
I have been clear while advocating for the minor survivors of corporate tech platforms that I would not advocate for any solution to the crime that would violate digital privacy rights or erode end-to-end encryption. That has been a personal moral position that I was unwilling to budge on. This is an extremely unpopular and borderline nonexistent position in the anti-human trafficking movement and online child protection space. I’m often fearful that I’m wrong about this. I have always thought that a better pathway forward would have been to incentivize innovation for detection and removal of content. I had no previous exposure to privacy rights activists or Cypherpunks—actually, I came to that conclusion by listening to the voices of MENA region political dissidents and human rights activists. After developing relationships with human rights activists from around the globe, I realized how important privacy rights and encryption are for those who need it most globally. I was simply unwilling to give more power, control, and opportunities for mass surveillance to big abusers like governments wishing to enslave entire nations and untrustworthy corporate tech companies to potentially end some portion of abuses online. On top of all of it, it has been clear to me for years that all potential solutions outside of violating digital privacy rights to detect and remove child sexual exploitation online have not yet been explored aggressively. I’ve been disappointed that there hasn’t been more of a conversation around preventing the crime from happening in the first place.
What has been tried is mass surveillance. In China, they are currently under mass surveillance both online and offline, and their behaviors are attached to a social credit score. Unfortunately, even on state-run and controlled social media platforms, they still have child sexual exploitation and abuse imagery pop up along with other crimes and human rights violations. They also have a thriving black market online due to the oppression from the state. In other words, even an entire loss of freedom and privacy cannot end the sexual exploitation of children online. It’s been tried. There is no reason to repeat this method.
It took me an embarrassingly long time to figure out why I always felt a slight coldness from those in tech and privacy-minded individuals about the topic of child sexual exploitation online. I didn’t have any clue about the “Four Horsemen of the Infocalypse.” This is a term coined by Timothy C. May in 1988. I would have been a child myself when he first said it. I actually laughed at myself when I heard the phrase for the first time. I finally got it. The Cypherpunks weren’t wrong about that topic. They were so spot on that it is borderline uncomfortable. I was mad at first that they knew that early during the birth of the internet that this issue would arise and didn’t address it. Then I got over it because I realized that it wasn’t their job. Their job was—is—to write code. Their job wasn’t to be involved and loving parents or survivor advocates. Their job wasn’t to educate children on internet safety or raise awareness; their job was to write code.
They knew that child sexual abuse material would be shared on the internet. They said what would happen—not in a gleeful way, but a prediction. Then it happened.
I equate it now to a concrete company laying down a road. As you’re pouring the concrete, you can say to yourself, “A terrorist might travel down this road to go kill many, and on the flip side, a beautiful child can be born in an ambulance on this road.” Who or what travels down the road is not their responsibility—they are just supposed to lay the concrete. I’d never go to a concrete pourer and ask them to solve terrorism that travels down roads. Under the current system, law enforcement should stop terrorists before they even make it to the road. The solution to this specific problem is not to treat everyone on the road like a terrorist or to not build the road.
So I understand the perceived coldness from those in tech. Not only was it not their job, but bringing up the topic was seen as the equivalent of asking a free person if they wanted to discuss one of the four topics—child abusers, terrorists, drug dealers, intellectual property pirates, etc.—that would usher in digital authoritarianism for all who are online globally.
Privacy rights advocates and groups have put up a good fight. They stood by their principles. Unfortunately, when it comes to corporate tech, I believe that the issue of privacy is almost a complete lost cause at this point. It’s still worth pushing back, but ultimately, it is a losing battle—a ticking time bomb.
I do think that corporate tech providers could have slowed down the inevitable loss of privacy at the hands of the state by prioritizing the detection and removal of CSAM when they all started online. I believe it would have bought some time, fewer would have been traumatized by that specific crime, and I do believe that it could have slowed down the demand for content. If I think too much about that, I’ll go insane, so I try to push the “if maybes” aside, but never knowing if it could have been handled differently will forever haunt me. At night when it’s quiet, I wonder what I would have done differently if given the opportunity. I’ll probably never know how much corporate tech knew and ignored in the hopes that it would go away while the problem continued to get worse. They had different priorities. The most voiceless and vulnerable exploited on corporate tech never had much of a voice, so corporate tech providers didn’t receive very much pushback.
Now I’m about to say something really wild, and you can call me whatever you want to call me, but I’m going to say what I believe to be true. I believe that the governments are either so incompetent that they allowed the proliferation of CSAM online, or they knowingly allowed the problem to fester long enough to have an excuse to violate privacy rights and erode end-to-end encryption. The US government could have seized the corporate tech providers over CSAM, but I believe that they were so useful as a propaganda arm for the regimes that they allowed them to continue virtually unscathed.
That season is done now, and the governments are making the issue a priority. It will come at a high cost. Privacy on corporate tech providers is virtually done as I’m typing this. It feels like a death rattle. I’m not particularly sure that we had much digital privacy to begin with, but the illusion of a veil of privacy feels gone.
To make matters slightly more complex, it would be hard to convince me that once AI really gets going, digital privacy will exist at all.
I believe that there should be a conversation shift to preserving freedoms and human rights in a post-privacy society.
I don’t want to get locked up because AI predicted a nasty post online from me about the government. I’m not a doomer about AI—I’m just going to roll with it personally. I’m looking forward to the positive changes that will be brought forth by AI. I see it as inevitable. A bit of privacy was helpful while it lasted. Please keep fighting to preserve what is left of privacy either way because I could be wrong about all of this.
On the topic of AI, the addition of AI to the horrific crime of child sexual abuse material and child sexual exploitation in multiple ways so far has been devastating. It’s currently out of control. The genie is out of the bottle. I am hopeful that innovation will get us humans out of this, but I’m not sure how or how long it will take. We must be extremely cautious around AI legislation. It should not be illegal to innovate even if some bad comes with the good. I don’t trust that the governments are equipped to decide the best pathway forward for AI. Source: the entire history of the government.
I have been personally negatively impacted by AI-generated content. Every few days, I get another alert that I’m featured again in what’s called “deep fake pornography” without my consent. I’m not happy about it, but what pains me the most is the thought that for a period of time down the road, many globally will experience what myself and others are experiencing now by being digitally sexually abused in this way. If you have ever had your picture taken and posted online, you are also at risk of being exploited in this way. Your child’s image can be used as well, unfortunately, and this is just the beginning of this particular nightmare. It will move to more realistic interpretations of sexual behaviors as technology improves. I have no brave words of wisdom about how to deal with that emotionally. I do have hope that innovation will save the day around this specific issue. I’m nervous that everyone online will have to ID verify due to this issue. I see that as one possible outcome that could help to prevent one problem but inadvertently cause more problems, especially for those living under authoritarian regimes or anyone who needs to remain anonymous online. A zero-knowledge proof (ZKP) would probably be the best solution to these issues. There are some survivors of violence and/or sexual trauma who need to remain anonymous online for various reasons. There are survivor stories available online of those who have been abused in this way. I’d encourage you seek out and listen to their stories.
There have been periods of time recently where I hesitate to say anything at all because more than likely AI will cover most of my concerns about education, awareness, prevention, detection, and removal of child sexual exploitation online, etc.
Unfortunately, some of the most pressing issues we’ve seen online over the last few years come in the form of “sextortion.” Self-generated child sexual exploitation (SG-CSEM) numbers are continuing to be terrifying. I’d strongly encourage that you look into sextortion data. AI + sextortion is also a huge concern. The perpetrators are using the non-sexually explicit images of children and putting their likeness on AI-generated child sexual exploitation content and extorting money, more imagery, or both from minors online. It’s like a million nightmares wrapped into one. The wild part is that these issues will only get more pervasive because technology is harnessed to perpetuate horror at a scale unimaginable to a human mind.
Even if you banned phones and the internet or tried to prevent children from accessing the internet, it wouldn’t solve it. Child sexual exploitation will still be with us until as a society we start to prevent the crime before it happens. That is the only human way out right now.
There is no reset button on the internet, but if I could go back, I’d tell survivor advocates to heed the warnings of the early internet builders and to start education and awareness campaigns designed to prevent as much online child sexual exploitation as possible. The internet and technology moved quickly, and I don’t believe that society ever really caught up. We live in a world where a child can be groomed by a predator in their own home while sitting on a couch next to their parents watching TV. We weren’t ready as a species to tackle the fast-paced algorithms and dangers online. It happened too quickly for parents to catch up. How can you parent for the ever-changing digital world unless you are constantly aware of the dangers?
I don’t think that the internet is inherently bad. I believe that it can be a powerful tool for freedom and resistance. I’ve spoken a lot about the bad online, but there is beauty as well. We often discuss how victims and survivors are abused online; we rarely discuss the fact that countless survivors around the globe have been able to share their experiences, strength, hope, as well as provide resources to the vulnerable. I do question if giving any government or tech company access to censorship, surveillance, etc., online in the name of serving survivors might not actually impact a portion of survivors negatively. There are a fair amount of survivors with powerful abusers protected by governments and the corporate press. If a survivor cannot speak to the press about their abuse, the only place they can go is online, directly or indirectly through an independent journalist who also risks being censored. This scenario isn’t hard to imagine—it already happened in China. During #MeToo, a survivor in China wanted to post their story. The government censored the post, so the survivor put their story on the blockchain. I’m excited that the survivor was creative and brave, but it’s terrifying to think that we live in a world where that situation is a necessity.
I believe that the future for many survivors sharing their stories globally will be on completely censorship-resistant and decentralized protocols. This thought in particular gives me hope. When we listen to the experiences of a diverse group of survivors, we can start to understand potential solutions to preventing the crimes from happening in the first place.
My heart is broken over the gut-wrenching stories of survivors sexually exploited online. Every time I hear the story of a survivor, I do think to myself quietly, “What could have prevented this from happening in the first place?” My heart is with survivors.
My head, on the other hand, is full of the understanding that the internet should remain free. The free flow of information should not be stopped. My mind is with the innocent citizens around the globe that deserve freedom both online and offline.
The problem is that governments don’t only want to censor illegal content that violates human rights—they create legislation that is so broad that it can impact speech and privacy of all. “Don’t you care about the kids?” Yes, I do. I do so much that I’m invested in finding solutions. I also care about all citizens around the globe that deserve an opportunity to live free from a mass surveillance society. If terrorism happens online, I should not be punished by losing my freedom. If drugs are sold online, I should not be punished. I’m not an abuser, I’m not a terrorist, and I don’t engage in illegal behaviors. I refuse to lose freedom because of others’ bad behaviors online.
I want to be clear that on a long enough timeline, the governments will decide that they can be better parents/caregivers than you can if something isn’t done to stop minors from being sexually exploited online. The price will be a complete loss of anonymity, privacy, free speech, and freedom of religion online. I find it rather insulting that governments think they’re better equipped to raise children than parents and caretakers.
So we can’t go backwards—all that we can do is go forward. Those who want to have freedom will find technology to facilitate their liberation. This will lead many over time to decentralized and open protocols. So as far as I’m concerned, this does solve a few of my worries—those who need, want, and deserve to speak freely online will have the opportunity in most countries—but what about online child sexual exploitation?
When I popped up around the decentralized space, I was met with the fear of censorship. I’m not here to censor you. I don’t write code. I couldn’t censor anyone or any piece of content even if I wanted to across the internet, no matter how depraved. I don’t have the skills to do that.
I’m here to start a conversation. Freedom comes at a cost. You must always fight for and protect your freedom. I can’t speak about protecting yourself from all of the Four Horsemen because I simply don’t know the topics well enough, but I can speak about this one topic.
If there was a shortcut to ending online child sexual exploitation, I would have found it by now. There isn’t one right now. I believe that education is the only pathway forward to preventing the crime of online child sexual exploitation for future generations.
I propose a yearly education course for every child of all school ages, taught as a standard part of the curriculum. Ideally, parents/caregivers would be involved in the education/learning process.
Course: - The creation of the internet and computers - The fight for cryptography - The tech supply chain from the ground up (example: human rights violations in the supply chain) - Corporate tech - Freedom tech - Data privacy - Digital privacy rights - AI (history-current) - Online safety (predators, scams, catfishing, extortion) - Bitcoin - Laws - How to deal with online hate and harassment - Information on who to contact if you are being abused online or offline - Algorithms - How to seek out the truth about news, etc., online
The parents/caregivers, homeschoolers, unschoolers, and those working to create decentralized parallel societies have been an inspiration while writing this, but my hope is that all children would learn this course, even in government ran schools. Ideally, parents would teach this to their own children.
The decentralized space doesn’t want child sexual exploitation to thrive. Here’s the deal: there has to be a strong prevention effort in order to protect the next generation. The internet isn’t going anywhere, predators aren’t going anywhere, and I’m not down to let anyone have the opportunity to prove that there is a need for more government. I don’t believe that the government should act as parents. The governments have had a chance to attempt to stop online child sexual exploitation, and they didn’t do it. Can we try a different pathway forward?
I’d like to put myself out of a job. I don’t want to ever hear another story like John Doe #1 ever again. This will require work. I’ve often called online child sexual exploitation the lynchpin for the internet. It’s time to arm generations of children with knowledge and tools. I can’t do this alone.
Individuals have fought so that I could have freedom online. I want to fight to protect it. I don’t want child predators to give the government any opportunity to take away freedom. Decentralized spaces are as close to a reset as we’ll get with the opportunity to do it right from the start. Start the youth off correctly by preventing potential hazards to the best of your ability.
The good news is anyone can work on this! I’d encourage you to take it and run with it. I added the additional education about the history of the internet to make the course more educational and fun. Instead of cleaning up generations of destroyed lives due to online sexual exploitation, perhaps this could inspire generations of those who will build our futures. Perhaps if the youth is armed with knowledge, they can create more tools to prevent the crime.
This one solution that I’m suggesting can be done on an individual level or on a larger scale. It should be adjusted depending on age, learning style, etc. It should be fun and playful.
This solution does not address abuse in the home or some of the root causes of offline child sexual exploitation. My hope is that it could lead to some survivors experiencing abuse in the home an opportunity to disclose with a trusted adult. The purpose for this solution is to prevent the crime of online child sexual exploitation before it occurs and to arm the youth with the tools to contact safe adults if and when it happens.
In closing, I went to hell a few times so that you didn’t have to. I spoke to the mothers of survivors of minors sexually exploited online—their tears could fill rivers. I’ve spoken with political dissidents who yearned to be free from authoritarian surveillance states. The only balance that I’ve found is freedom online for citizens around the globe and prevention from the dangers of that for the youth. Don’t slow down innovation and freedom. Educate, prepare, adapt, and look for solutions.
I’m not perfect and I’m sure that there are errors in this piece. I hope that you find them and it starts a conversation.
-
@ 8d34bd24:414be32b
2025-05-11 02:47:03What does it say about us that believers don’t listen as well as unbelievers? Let’s investigate some scripture verses and see what we can discover.
An Object Lesson:
Jesus warned His disciples several times that He would be killed and rise from the dead on the third day. Right after Jesus asked them who they thought He was and Peter replied that He was the Christ (Messiah), Jesus told them what would happen.
From that time Jesus began to show His disciples that He must go to Jerusalem, and suffer many things from the elders and chief priests and scribes, and be killed, and be raised up on the third day. (Matthew 16:21)
We know the disciples heard and understood what Jesus was saying because Peter immediately rebuked Jesus.
Peter took Him aside and began to rebuke Him, saying, “God forbid it, Lord! This shall never happen to You.” But He turned and said to Peter, “Get behind Me, Satan! You are a stumbling block to Me; for you are not setting your mind on God’s interests, but man’s.” (Matthew 16:22-23)
You’d think that Peter would have this moment locked in his mind after being rebuked so harshly for questioning Jesus’s prediction of what would happen.
A while later, Jesus again told His disciples what was about to happen.
And while they were gathering together in Galilee, Jesus said to them, “The Son of Man is going to be delivered into the hands of men; and they will kill Him, and He will be raised on the third day.” And they were deeply grieved. (Matthew 17:22-23)
They again heard what was said because they were “deeply grieved.” They didn’t like what they heard.
Then a third time, as they were approaching Jerusalem, He made certain they knew what was coming:
As Jesus was about to go up to Jerusalem, He took the twelve disciples aside by themselves, and on the way He said to them, “Behold, we are going up to Jerusalem; and the Son of Man will be delivered to the chief priests and scribes, and they will condemn Him to death, and will hand Him over to the Gentiles to mock and scourge and crucify Him, and on the third day He will be raised up.” (Matthew 20:17-19)
The disciples should have known that Jesus’s crucifixion and death were not the end. He told them repeatedly that He would die and be raised from the dead on the third day. They should have been diligently waiting with expectation, but instead they immediately hid, gave up, and headed back to their old lives.
His female followers still cared enough to try to prepare Jesus’s body for burial, but even they did not expect Him to rise as He said.
The angel said to the women, “Do not be afraid; for I know that you are looking for Jesus who has been crucified. He is not here, for He has risen, just as He said. Come, see the place where He was lying. Go quickly and tell His disciples that He has risen from the dead; and behold, He is going ahead of you into Galilee, there you will see Him; behold, I have told you.” (Matthew 28:5-7) {emphasis mine}
Even when the woman came and told the disciples that they had seen Jesus as He had said, none believed them, although Peter and John did have a glimmer of hope and went to look for themselves.
In contrast, the Pharisees, the very people who hated Jesus so much that they fought to have Him crucified, remembered Jesus’s statements.
Now on the next day, the day after the preparation, the chief priests and the Pharisees gathered together with Pilate, and said, “Sir, we remember that when He was still alive that deceiver said, ‘After three days I am to rise again.’ Therefore, give orders for the grave to be made secure until the third day, otherwise His disciples may come and steal Him away and say to the people, ‘He has risen from the dead,’ and the last deception will be worse than the first.” Pilate said to them, “You have a guard; go, make it as secure as you know how.” And they went and made the grave secure, and along with the guard they set a seal on the stone. (Matthew 27:62-66) {emphasis mine}
The Pharisees acted in response to Jesus’s claims. The disciples ignored or forgot Jesus’s claims.
KNOW:
How often do we ignore or forget Jesus’s promises? How often do we despair when we should hold tightly to the promises given to us in the Bible? Are there times that our opponents, unbelievers, are better at quoting the Bible back at us than we are at using the Bible to defend the truth and our faith?
but sanctify Christ as Lord in your hearts, always being ready to make a defense to everyone who asks you to give an account for the hope that is in you, yet with gentleness and reverence (1 Peter 3:15)
We need to know God’s word so we can “give an account for the hope that is in” us. First we need to read the whole Bible. We can’t know who God is, what He has done, and what He commands for us without knowing God’s word.
After we have gotten the big picture by reading through the Bible once, we need to really get to know it well. This not only includes reading the Bible continually, but also include memorizing key verses, so we can bring them to remembrance when we need them.
Some people can repeat a verse multiple times and just know it. Some of us have trouble memorizing things. We have to go to extraordinary measures to memorize God’s word. Some techniques I have used:
-
WHITEBOARD APPROACH:
-
Write the verse on the white board.
-
Read out loud.
-
Erase one word. (You can underline where the word is if that helps you remember that a word goes there)
-
Read out loud saying verse including missing word.
-
Continue erasing words, one at a time, saying the verse until all of the words are gone.
-
I haven’t used it personally, but Verse Locker was recommended by another substacker and seems to use a similar technique.
-
MUSICAL VERSES:
-
Make up a tune and sing the verse or put the verse to a tune you already know.
-
If you aren’t good at making up songs, there are sites that have verses to songs, but I haven’t used them personally other than a few from Awana years ago.
-
FIRST LETTER:
-
Write down the first letter of each word of the verse you want to memorize This gives hints and helps you not accidentally miss words.
-
I’ve also made a necklace (it was supposed to be a bracelet, but the verse, 1 Peter 3:15 above, I picked was too long) made of beads with the letters of the words of the verse. By wearing it, you have a reminder to memorize and rememorize the verse till it sticks stronger.
-
This is my version of 1 Peter 3:15
-
APPS:
-
There are multiple apps that can help you memorize verses. 5 Best Bible Memory Apps for 2025
We are all different and have different learning styles. Pick the version that works best for you, but be intentional. For so long I wasn’t. Having a child with Down Syndrome in Awana who needed help led me to finding ways to help him and me to memorize the hundreds (or thousands) of verses that are required to finish the program. Keep in mind that you need to keep reviewing them or the memories will fade. The more times you memorize the verse, the longer it will stick with you. You just never know when you will need a Scripture verse and you may not have your Bible or phone (with Bible app) handy.
APPLY:
Knowing the Bible is critical for the Christian life, but knowing the Bible and God’s commands is not enough. We have to live according to this knowledge. We have to apply it in our lives. It needs to change the way we view the world and change the way we live our lives and interact with others.
for it is not the hearers of the Law who are just before God, but the doers of the Law will be justified. (Romans 2:13) {emphasis mine}
Our faith needs to be exhibited through action.
But someone may well say, “You have faith and I have works; show me your faith without the works, and I will show you my faith by my works.” (James 2:18) {emphasis mine}
There is nothing we need to do to be saved besides believe, but if we have saving faith, we should desire God’s word like the author of Psalm 119. Our lives should also change to be conformed to Jesus.
And do not be conformed to this world, but be transformed by the renewing of your mind, so that you may prove what the will of God is, that which is good and acceptable and perfect. (Romans 12:12) {emphasis mine}
There must be works as evidence of our faith.
You believe that God is one. You do well; the demons also believe, and shudder. But are you willing to recognize, you foolish fellow, that faith without works is useless? Was not Abraham our father justified by works when he offered up Isaac his son on the altar? You see that faith was working with his works, and as a result of the works, faith was perfected; (James 2:19-22) {emphasis mine}
The disciples heard Jesus tell them what was going to happen to Him. They knew what He had said because they reacted to it negatively. The problem was they didn’t believe it and didn’t live according to Jesus’s plain words. As important as it is to read and understand the Bible, none of that matters if we don’t believe it and live it.
But I Can’t Do It Myself:
Jesus knew that we could not know and do what we were commanded to know and do, at least not in our own power.
Then He opened their minds to understand the Scriptures, and He said to them, “Thus it is written, that the Christ would suffer and rise again from the dead the third day, and that repentance for forgiveness of sins would be proclaimed in His name to all the nations, beginning from Jerusalem. You are witnesses of these things. And behold, I am sending forth the promise of My Father upon you; but you are to stay in the city until you are clothed with power from on high.” (Luke 24:45-49)
Jesus not only sent the disciples (and all believers) out into the world to tell of what He has done for us, but He told the disciples to “stay in the city until you are clothed with power from on high.” Jesus told them to wait until they had received the Holy Spirit to guide and empower them in the work He had designed them to complete. We also have the Holy Spirit to change our hearts and minds, so we can fulfill the commandments and plans He has for us.
I’m sorry if this post had a little too much overlap with my last post, but knowing God’s word has become a passion of mine and it is where I felt led to go.
May the God of Heaven give you a hunger for His word, help you to understand His word, believe His word, and live His word. May your understanding of the word of God guide you in everything you think, speak, and do. May you never doubt God’s word or discount God’s word because it isn’t according to your preference. God bless you and keep you.
Trust Jesus.
-
-
@ c3e23eb5:03d7caa9
2025-04-10 00:41:12The issue I have with the term "mesh networks" is that it is associated with a flat network topology. While I love the idea of avoiding hierarchy, this simply doesn't scale.
Data Plane: How the Internet Scales
The internet on the scales because it has a tree like structure. As you can see in the diagram below, global (tier 1) ISPs branch out to national (tier 2) ISPs who in turn branch out to local (tier 3) ISPs. ``` ,-[ Tier 1 ISP (Global) ]─-───────[ Tier 1 ISP (Global) ] / |
/ ▼
[IXP (Global)]═══╦═══[IXP (Global)]
║
Tier 2 ISP (National)◄──────────╗
/ \ ║
▼ ▼ ║
[IXP (Regional)]════╬══[IXP (Regional)] ║
/ \ ║
▼ ▼ ║
Tier 3 ISP (Local) Tier 3 ISP (Local) ║
| | ║
▼ ▼ ▼
[User] [User] [Enterprise]▲ IXPs are physical switch fabrics - members peer directly ▲ Tier 1/2 ISPs provide transit through IXPs but don't control them ```
This structure also reflects in IP addresses, where regional traffic gets routed by regional tiers and global traffic keeps getting passed up through gateways till it reaches the root of the tree. The global ISP then routes the traffic into the correct branch so that it can trickle down to the destination IP at the bottom.
12.0.0.0/8 - Tier 1 manages routing (IANA-allocated) └─12.34.0.0/16 - Tier 2 allocated block (through RIR) └─12.34.56.0/24 - Tier 3 subnet via upstream provider ├─12.34.56.1 Public IP (CGNAT pool) └─192.168.1.1 Private IP (local NAT reuse)
Balancing idealism with pragmatism
This approach to scaling is much less idealistic than a flat hierarchy, because it relies on an authority (IANA) to assign the IP ranges to ISPs through Regional Internet Registries (RIRs). Even if this authority wasn't required, the fact that many users rely on few Tier 1 ISPs means that the system is inherently susceptible to sabotage (see 2019 BGP leak incident).
Control Plane: the internet is still described as decentralised
The internet is still described as decentralised because there is a flat hierarchy between
tier 1
ISPs at the root of the tree. ``` INTERNET CORE (Tier 1 ISPs)
AT&T (AS7018) <══════════> Deutsche Telekom (AS3320) ║ ╔════════════════════╗ ║ ║ ║ ║ ║ ╚══>║ NTT (AS2914) ║<══╝ ║ ║ ║ ║ ║ ║ ╚═══════> Lumen (AS3356) ║ ║ ╚════╩════════════> Telia (AS1299) ```
The border gateway protocol (BGP) is used to exchange routing information between autonomous systems (ISPs). Each autonomous system is a branch of the "internet tree" and each autonomous system advertises routes to downstream autonomous systems (branches). However, the autonomous systems at the root of the tree also maintain a record of their piers, so that they can forward traffic to the correct peer. Hence, the following is a more complete diagram of the internet:
INTERNET CORE (TIER 1 MESH) ╔══════════════╦═════════════╦════════╦═════════════╗ ║ ║ ║ ║ ║ AT&T (AS7018) <══╬══> Lumen (AS3356) <══╬══> NTT (AS2914) ║ ║ ║ ║ ║ ║ ║ ╚══> Telia (AS1299) <══╝ ║ ║ ╚═══════════════════════════════╝ ║ ║ ╚═> Deutsche Telekom (AS3320) <═╝ ║ TREE HIERARCHY BELOW - MESH ABOVE ║ ▼ [ Tier 1 ISP ]───────────────────┐ / | | / ▼ ▼ [IXP]═══╦═══[IXP] [IXP] ║ ║ ▼ ▼ Tier 2 ISP◄──────────╗ Tier 2 ISP◄───────╗ / \ ║ / \ ║ ▼ ▼ ║ ▼ ▼ ║ [IXP]═╦[IXP] ║ [IXP]═╦[IXP] ║ / \ ║ / \ ║ ▼ ▼ ▼ ▼ ▼ ▼ Tier 3 ISP User Tier 3 ISP Enterprise
So its a mesh network - whats wrong with that?
In the example above, NTT can only send traffic to Deutsche Telekom via Lumen or AT&T. NTT relies on its peers to maintain a correct record of the IP range that they are responsible for, so that traffic that was intended for Deutsche Telekom doesn't end up in the wrong network. An intentional or even accidental error in an autonomous system's routing tables can be detrimental to the flow of traffic through the network.
Hence, mesh networks require: * Reliability: peers rely on each-other not to fail (e.g., 2019 AWS US-East-1 availability) * Trust: peers must be honest about address ranges (e.g., 2018 BGP hijacking incident) * Central planning: BGP traffic engineering determines which route a packet takes
Application Layer Innovations
Now that we have a rough overview of how the internet is broken, lets think about what can still be done. The flat hierarchy that we associate with mesh networks sounds beautiful, but it doesn't scale. However, the tree-like structure assumes that most participants in the network rely on an authority to give them an address or a range of addresses so that they can communicate.
Overlay networks
Fortunately all it takes to interact with someone on nostr is their public key. The recipients client will render your signed and/or encrypted event no matter how it reaches them. Whether your note reaches them over the internet, over some other network or via a carrier pigeon doesn't matter. nostr:npub1hw6amg8p24ne08c9gdq8hhpqx0t0pwanpae9z25crn7m9uy7yarse465gr is working on a NIP for that and I'm sure he will share an explanation of how it works.
Bitcoin Instead of a Routing Algorithm
Now that we have digital bearer assets (e-cash), users can pay their internet gateway (TollGate) for access to the internet even though they are still offline. Once the TollGate has redeemed the e-cash, it gives the user access to the internet.
Frictionless Switching between ISPs (TollGates)
Legacy internet service providers use KYC money (fiat) to transfer the cost of the infrastructure to their users. However, this means that they are able to identify which packet belongs to which user. The KYC nature of their interaction with the users also makes it difficult for users to switch ISPs when service providers undercut each-other. Internet users who are on e-cash rails can hop between ISPs frictionlessly since they buy small amounts of data frequently in a granular manner.
Users that have access to independent competing TollGates can switch between them freely, so its impossible for any one TollGate to prevent a user from connecting to the internet. The only thing a TollGate can do is attract traffic by providing cheaper and/or faster internet access.
Anyone can arbitrage connectivity
Now that users have non KYC internet, there is nothing stopping them from reselling access to their internet connection. Anyone who has a WiFi router and access to a cheap internet connection can act as a range extender by re-selling access to that gateway for people who aren't able to connect directly.
Now the route that the traffic takes through the network is determined dynamically by the markets. The individual TollGate operators select their gateways and set their prices when they create a business model. The customers select the route that best meets their needs by selecting a gateway for their next purchase.
-
@ 84b0c46a:417782f5
2025-05-10 10:41:20https://long-form-editor.vercel.app/
β版のため予期せぬ動作が発生する可能性があります。記事を修正する際は事前にバックアップを取ることをおすすめします
機能
-
nostr:npub1sjcvg64knxkrt6ev52rywzu9uzqakgy8ehhk8yezxmpewsthst6sw3jqcw や、 nostr:nevent1qvzqqqqqqypzq4jsz7zew5j7jr4pdfxh483nwq9vyw9ph6wm706sjwrzj2we58nqqyxhwumn8ghj77tpvf6jumt9qys8wumn8ghj7un9d3shjtt2wqhxummnw3ezuamfwfjkgmn9wshx5uqpr4mhxue69uhhyetvv9ujumn0wd68ytnhd9ex2erwv46zu6nsqyxhwumn8ghj7mn0wvhxcmmvqqsgcn99jyn5tevxz5zxsrkd7h0sx8fwnqztula423xh83j9wau7cms3vg9c7 のようにnostr:要素を挿入できる
-
:monoice:のようにカスタム絵文字を挿入できる(メニューの😃アイコンから←アイコン変えるかも)
:monopaca_kao:
:kubipaca_karada:
- 新規記事作成と、既存記事の修正ができる
やることやったこと
-
[x] nostr:を投稿するときにtagにいれる
-
[x] 画像をアップロードできるようにする
できる
- [x] 投稿しましたログとかをトースト的なやつでだすようにする
- [ ] レイアウトを整える
- [ ] あとなんか
-
-
@ 21335073:a244b1ad
2025-03-15 23:00:40I want to see Nostr succeed. If you can think of a way I can help make that happen, I’m open to it. I’d like your suggestions.
My schedule’s shifting soon, and I could volunteer a few hours a week to a Nostr project. I won’t have more total time, but how I use it will change.
Why help? I care about freedom. Nostr’s one of the most powerful freedom tools I’ve seen in my lifetime. If I believe that, I should act on it.
I don’t care about money or sats. I’m not rich, I don’t have extra cash. That doesn’t drive me—freedom does. I’m volunteering, not asking for pay.
I’m not here for clout. I’ve had enough spotlight in my life; it doesn’t move me. If I wanted clout, I’d be on Twitter dropping basic takes. Clout’s easy. Freedom’s hard. I’d rather help anonymously. No speaking at events—small meetups are cool for the vibe, but big conferences? Not my thing. I’ll never hit a huge Bitcoin conference. It’s just not my scene.
That said, I could be convinced to step up if it’d really boost Nostr—as long as it’s legal and gets results.
In this space, I’d watch for social engineering. I watch out for it. I’m not here to make friends, just to help. No shade—you all seem great—but I’ve got a full life and awesome friends irl. I don’t need your crew or to be online cool. Connect anonymously if you want; I’d encourage it.
I’m sick of watching other social media alternatives grow while Nostr kinda stalls. I could trash-talk, but I’d rather do something useful.
Skills? I’m good at spotting social media problems and finding possible solutions. I won’t overhype myself—that’s weird—but if you’re responding, you probably see something in me. Perhaps you see something that I don’t see in myself.
If you need help now or later with Nostr projects, reach out. Nostr only—nothing else. Anonymous contact’s fine. Even just a suggestion on how I can pitch in, no project attached, works too. 💜
Creeps or harassment will get blocked or I’ll nuke my simplex code if it becomes a problem.
https://simplex.chat/contact#/?v=2-4&smp=smp%3A%2F%2FSkIkI6EPd2D63F4xFKfHk7I1UGZVNn6k1QWZ5rcyr6w%3D%40smp9.simplex.im%2FbI99B3KuYduH8jDr9ZwyhcSxm2UuR7j0%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAS9C-zPzqW41PKySfPCEizcXb1QCus6AyDkTTjfyMIRM%253D%26srv%3Djssqzccmrcws6bhmn77vgmhfjmhwlyr3u7puw4erkyoosywgl67slqqd.onion
-
@ b8851a06:9b120ba1
2025-05-09 22:54:43The global financial system is creaking under its own weight. The IMF is urging banks to shore up capital, cut risk, and brace for impact. Basel III is their answer, a last-ditch effort to reinforce a brittle foundation.
But behind the scenes, a quieter revolution is under way.
Bitcoin, the world’s first stateless digital asset, is no longer on the sidelines. It’s entering the Basel conversation: not by invitation, but by inevitability.
Basel III: The System’s Self-Diagnosis
Basel III is more than a technical rulebook. It’s a confession: an admission that the global banking system is vulnerable. Created in the aftermath of 2008, it calls for: • Stronger capital reserves: So banks can survive losses. • Lower leverage: To reduce the domino effect of overexposure. • Liquidity buffers: To weather short-term shocks without collapsing.
But here’s the kicker: these rules are hostile to anything outside the fiat system. Bitcoin gets hit with a punitive 1,250% risk weight. That means for every $1 of exposure, banks must hold $1 in capital. The message from regulators? “You can hold Bitcoin, but you’ll pay for it.”
Yet that fear: based framing misses a bigger truth: Bitcoin doesn’t just survive in this environment. It thrives in it.
Bitcoin: A Parallel System, Built on Hard Rules
Where Basel III imposes “fiat discipline” from the top down, Bitcoin enforces it from the bottom up: with code, math, and transparency.
Bitcoin is not just a hedge. It’s a structural antidote to systemic fragility.
Volatility: A Strategic Asset
Yes, Bitcoin is volatile. But in a system that devalues fiat on a schedule, volatility is simply the cost of freedom. Under Basel III, banks are expected to build capital buffers during economic expansions.
What asset allows you to build those buffers faster than Bitcoin in a bull market?
When the cycle turns, those reserves act as shock absorbers: converting volatility into resilience. It’s anti-fragility in motion.
Liquidity: Real, Deep, and Global
Bitcoin settled over $19 trillion in transactions in 2024. That’s not hypothetical liquidity. it’s real, measurable flow. Unlike traditional high-quality liquid assets (HQLAs), Bitcoin is: • Available 24/7 • Borderless • Not dependent on central banks
By traditional definitions, Bitcoin is rapidly qualifying for HQLA status. Even if regulators aren’t ready to admit it.
Diversification: Breaking the Fiat Dependency
Basel III is designed to pull banks back into the fiat matrix. But Bitcoin offers an escape hatch. Strategic Bitcoin reserves are not about speculation, they’re insurance. For family offices, institutions, and sovereign funds, Bitcoin is the lifeboat when the fiat ship starts taking on water.
Regulatory Realignment: The System Reacts
The Basel Committee’s new rules on crypto exposures went live in January 2025. Around the world, regulators are scrambling to define their stance. Every new restriction placed on Bitcoin only strengthens its legitimacy, as more institutions ask: Why so much resistance, if it’s not a threat?
Bitcoin doesn’t need permission. It’s already being adopted by over 150 public companies, forward-looking states, and a new class of self-sovereign individuals.
Conclusion: The Real Question
This isn’t just about Bitcoin fitting into Basel III.
The real question is: How long can Basel III remain relevant in a world where Bitcoin exists?
Bitcoin is not the risk. It’s the reality check. And it might just be the strongest capital buffer the system has ever seen.
Gradually then suddenly.
-
@ 000002de:c05780a7
2025-05-09 18:33:06I've been eager to share my thoughts on "Return of the Strong Gods" by R.R. Reno since I finished it a week ago.
I found this book incredibly insightful. @SimpleStacker's excellent review prompted me to pick it up, and I'm glad I did. While I won't be providing a full review, I will share some of the key insights and thoughts that resonated with me.
Reno masterfully dissects the sociological underpinnings of the political shifts in the US and the Western world over the past decade and a half. His analysis of the rise of populism and nationalism is compelling and rings true to my personal observations. Reno's central thesis is that post-WW2, the West embraced "weaker gods"—ideals like democracy, pluralism, and liberalism—fearing a repeat of the strong nationalistic sentiments that led to Hitler's rise. He argues that this shift has left many people feeling culturally homeless and desperate for strong leadership that listens to their grievances.
A significant portion of Reno's argument is built on the ideas of Karl Popper, a philosopher I was unfamiliar with before reading this book. Popper's work "The Open Society and Its Enemies" has significantly influenced post-war consensus, which Reno argues has led to a disconnect between the political elite and the common people. This disconnect, he posits, is a primary driver of populist sentiments.
Reno also delves into economics, discussing Friedrich Hayek and his agreement with some of Popper's positions. This intersection of philosophy and economics provides a unique lens through which to view the political landscape. Reno's mention of the Treaty of Versailles as a catalyst for Hitler's rise is a point often overlooked in discussions about WW2. He argues that the punitive measures imposed on Germany created an environment ripe for a strongman to emerge.
One of the most compelling aspects of Reno's argument is his explanation of how the political elite often lose touch with the values and wishes of the people they represent. He draws a powerful analogy between cultural homelessness and the desperation that drives people to seek strong leadership. This section of the book particularly resonated with me, as it aligns with my own observations of the political climate.
I would have liked Reno to start his analysis with Woodrow Wilson, whose "making the world safe for democracy" slogan embodied a form of Christian nationalism. Wilson's ideals and the post-WW1 environment laid the groundwork for the open society movement, which Reno critiques. Exploring this historical context could have strengthened Reno's argument.
Reno occasionally conflates economic liberalism with libertinism, which I found to be a minor flaw in an otherwise strong argument. He rightly points out the need for moral ethics in society but seems to overlook the distinction between economic freedom and moral laxity. Reno's discussion of Milton Friedman's ideas further highlights this confusion. While Reno argues that free trade has contributed to many of our modern ills, I believe the issue lies more with nation-state trade agreements like NAFTA, which are not true examples of free trade.
Another area where I disagree with Reno is his conflation of the nation with the state. Nations are cultural entities that predate and can exist independently of states. Reno's argument would be stronger if he acknowledged this distinction, as it would clarify his points about national pride and cultural heritage.
Reno's final chapters offer a cautionary tale about the return of strong gods and the danger of making them idols. He warns against authoritarianism and the overreach of the state, advocating for a balance that respects cultural heritage without succumbing to nationalism.
In conclusion, "Return of the Strong Gods" is a thought-provoking exploration of the political and cultural shifts of our time. Reno's insights are valuable, and his arguments, while not without flaws, provide a fresh perspective on the rise of populism and nationalism. I recommend this book to anyone seeking a deeper understanding of the forces shaping our world today.
originally posted at https://stacker.news/items/975849
-
@ 04c915da:3dfbecc9
2025-03-10 23:31:30Bitcoin has always been rooted in freedom and resistance to authority. I get that many of you are conflicted about the US Government stacking but by design we cannot stop anyone from using bitcoin. Many have asked me for my thoughts on the matter, so let’s rip it.
Concern
One of the most glaring issues with the strategic bitcoin reserve is its foundation, built on stolen bitcoin. For those of us who value private property this is an obvious betrayal of our core principles. Rather than proof of work, the bitcoin that seeds this reserve has been taken by force. The US Government should return the bitcoin stolen from Bitfinex and the Silk Road.
Usually stolen bitcoin for the reserve creates a perverse incentive. If governments see a bitcoin as a valuable asset, they will ramp up efforts to confiscate more bitcoin. The precedent is a major concern, and I stand strongly against it, but it should be also noted that governments were already seizing coin before the reserve so this is not really a change in policy.
Ideally all seized bitcoin should be burned, by law. This would align incentives properly and make it less likely for the government to actively increase coin seizures. Due to the truly scarce properties of bitcoin, all burned bitcoin helps existing holders through increased purchasing power regardless. This change would be unlikely but those of us in policy circles should push for it regardless. It would be best case scenario for American bitcoiners and would create a strong foundation for the next century of American leadership.
Optimism
The entire point of bitcoin is that we can spend or save it without permission. That said, it is a massive benefit to not have one of the strongest governments in human history actively trying to ruin our lives.
Since the beginning, bitcoiners have faced horrible regulatory trends. KYC, surveillance, and legal cases have made using bitcoin and building bitcoin businesses incredibly difficult. It is incredibly important to note that over the past year that trend has reversed for the first time in a decade. A strategic bitcoin reserve is a key driver of this shift. By holding bitcoin, the strongest government in the world has signaled that it is not just a fringe technology but rather truly valuable, legitimate, and worth stacking.
This alignment of incentives changes everything. The US Government stacking proves bitcoin’s worth. The resulting purchasing power appreciation helps all of us who are holding coin and as bitcoin succeeds our government receives direct benefit. A beautiful positive feedback loop.
Realism
We are trending in the right direction. A strategic bitcoin reserve is a sign that the state sees bitcoin as an asset worth embracing rather than destroying. That said, there is a lot of work left to be done. We cannot be lulled into complacency, the time to push forward is now, and we cannot take our foot off the gas. We have a seat at the table for the first time ever. Let's make it worth it.
We must protect the right to free usage of bitcoin and other digital technologies. Freedom in the digital age must be taken and defended, through both technical and political avenues. Multiple privacy focused developers are facing long jail sentences for building tools that protect our freedom. These cases are not just legal battles. They are attacks on the soul of bitcoin. We need to rally behind them, fight for their freedom, and ensure the ethos of bitcoin survives this new era of government interest. The strategic reserve is a step in the right direction, but it is up to us to hold the line and shape the future.
-
@ 21335073:a244b1ad
2025-05-09 13:56:57Someone asked for my thoughts, so I’ll share them thoughtfully. I’m not here to dictate how to promote Nostr—I’m still learning about it myself. While I’m not new to Nostr, freedom tech is a newer space for me. I’m skilled at advocating for topics I deeply understand, but freedom tech isn’t my expertise, so take my words with a grain of salt. Nothing I say is set in stone.
Those who need Nostr the most are the ones most vulnerable to censorship on other platforms right now. Reaching them requires real-time awareness of global issues and the dynamic relationships between governments and tech providers, which can shift suddenly. Effective Nostr promoters must grasp this and adapt quickly.
The best messengers are people from or closely tied to these at-risk regions—those who truly understand the local political and cultural dynamics. They can connect with those in need when tensions rise. Ideal promoters are rational, trustworthy, passionate about Nostr, but above all, dedicated to amplifying people’s voices when it matters most.
Forget influencers, corporate-backed figures, or traditional online PR—it comes off as inauthentic, corny, desperate and forced. Nostr’s promotion should be grassroots and organic, driven by a few passionate individuals who believe in Nostr and the communities they serve.
The idea that “people won’t join Nostr due to lack of reach” is nonsense. Everyone knows X’s “reach” is mostly with bots. If humans want real conversations, Nostr is the place. X is great for propaganda, but Nostr is for the authentic voices of the people.
Those spreading Nostr must be so passionate they’re willing to onboard others, which is time-consuming but rewarding for the right person. They’ll need to make Nostr and onboarding a core part of who they are. I see no issue with that level of dedication. I’ve been known to get that way myself at times. It’s fun for some folks.
With love, I suggest not adding Bitcoin promotion with Nostr outreach. Zaps already integrate that element naturally. (Still promote within the Bitcoin ecosystem, but this is about reaching vulnerable voices who needed Nostr yesterday.)
To promote Nostr, forget conventional strategies. “Influencers” aren’t the answer. “Influencers” are not the future. A trusted local community member has real influence—reach them. Connect with people seeking Nostr’s benefits but lacking the technical language to express it. This means some in the Nostr community might need to step outside of the Bitcoin bubble, which is uncomfortable but necessary. Thank you in advance to those who are willing to do that.
I don’t know who is paid to promote Nostr, if anyone. This piece isn’t shade. But it’s exhausting to see innocent voices globally silenced on corporate platforms like X while Nostr exists. Last night, I wondered: how many more voices must be censored before the Nostr community gets uncomfortable and thinks creatively to reach the vulnerable?
A warning: the global need for censorship-resistant social media is undeniable. If Nostr doesn’t make itself known, something else will fill that void. Let’s start this conversation.
-
@ 04c915da:3dfbecc9
2025-03-07 00:26:37There is something quietly rebellious about stacking sats. In a world obsessed with instant gratification, choosing to patiently accumulate Bitcoin, one sat at a time, feels like a middle finger to the hype machine. But to do it right, you have got to stay humble. Stack too hard with your head in the clouds, and you will trip over your own ego before the next halving even hits.
Small Wins
Stacking sats is not glamorous. Discipline. Stacking every day, week, or month, no matter the price, and letting time do the heavy lifting. Humility lives in that consistency. You are not trying to outsmart the market or prove you are the next "crypto" prophet. Just a regular person, betting on a system you believe in, one humble stack at a time. Folks get rekt chasing the highs. They ape into some shitcoin pump, shout about it online, then go silent when they inevitably get rekt. The ones who last? They stack. Just keep showing up. Consistency. Humility in action. Know the game is long, and you are not bigger than it.
Ego is Volatile
Bitcoin’s swings can mess with your head. One day you are up 20%, feeling like a genius and the next down 30%, questioning everything. Ego will have you panic selling at the bottom or over leveraging the top. Staying humble means patience, a true bitcoin zen. Do not try to "beat” Bitcoin. Ride it. Stack what you can afford, live your life, and let compounding work its magic.
Simplicity
There is a beauty in how stacking sats forces you to rethink value. A sat is worth less than a penny today, but every time you grab a few thousand, you plant a seed. It is not about flaunting wealth but rather building it, quietly, without fanfare. That mindset spills over. Cut out the noise: the overpriced coffee, fancy watches, the status games that drain your wallet. Humility is good for your soul and your stack. I have a buddy who has been stacking since 2015. Never talks about it unless you ask. Lives in a decent place, drives an old truck, and just keeps stacking. He is not chasing clout, he is chasing freedom. That is the vibe: less ego, more sats, all grounded in life.
The Big Picture
Stack those sats. Do it quietly, do it consistently, and do not let the green days puff you up or the red days break you down. Humility is the secret sauce, it keeps you grounded while the world spins wild. In a decade, when you look back and smile, it will not be because you shouted the loudest. It will be because you stayed the course, one sat at a time. \ \ Stay Humble and Stack Sats. 🫡
-
@ 5d4b6c8d:8a1c1ee3
2025-05-09 13:25:40The second round of the NBA Playoffs is historically weird. We'll try to figure out what's going wrong for all three of the presumed contenders. Which of the other East teams need to be considered contenders now? With how bad the Warriors look without Steph (just how underrated is he?), do the Warriors still have any chance?
In Blok'd Shots, we'll talk about the NHL Star who got traded midseason and then beat his former team in the playoffs.
There was a big trade in the NFL. Plus, @grayruby wants to start a media beef with Colin Cowherd.
The MLB introduced a new stat. I have no idea what it is, but I'm looking forward to trying to understand it live on air.
And, of course, lots of contest and betting updates.
What do you want us to talk about?
originally posted at https://stacker.news/items/975474
-
@ 5d4b6c8d:8a1c1ee3
2025-05-08 22:57:55Using a discussion style post to get better formatting on the nostr cross-post.
The Fed Leaves Fed Funds Rate at 4.5% as Economic Storm Clouds Gather
by Ryan McMaken
The Fed is now hemmed in by a rising risk of stagflation. It doesn’t know where the economy is headed, or is unwilling to take a position. At this point, “hope for the best” is Fed policy.
originally posted at https://stacker.news/items/975059
-
@ bbb5dda0:f09e2747
2025-02-04 03:58:50This past week got me a lot of frustration with the GitHub actions runner and debugging it. Really testing my patience, but at least i saw a bit of progress. TollGate's had a nice wrap-up for the Proof Of Concept app, which some great new ideas on how to make the user experience even better! Let's dive in!
GitHub Actions
I've been having a low-key fight with the github actions runner containers. I have spent a lot of time trying to figure out WHY the blossom upload action would just not work. I was quick to find out that the action is being ran with an older version of NodeJS (v18) while the blossom uploader requires v20. Not a big deal you'd say as i just set the version to 20 in the pipeline. However, doing that explicitly had zero impact, and after diving down the github runner rabbit hole i concluded that the Actions that are imported (from marketplace) will just run with whatever node version is already installed in the runner's docker image. Which in the case of the act runner is Node 18. I tried updating to the latest images but I haven't been able to find a compatible one yet...
Payments
I've been working on getting the money aspect working in the ci-cd runner. I added a wallet and a scheduled payout. I took this from the nostr-epoxy project and did some updates to upgrade to cashu-ts v2.
I added some advertisement info like the specs of the machine that the runner is on. I've been pondering how the payment flow should work though. See the problem is that because of the nature of this DVM, it cannot predict how long a job will take to execute, a customer can literally do anything in their pipeline that will make a job last forever. I think for that reason there has to be some kind of deposit/credit or stream besides the one-off payment. I made a post asking what the best way would be: nostr:note17apw8unznvwx2k3z48t7qz6cq26tk077w83qh3f7zxukfrrfukhs7mpcsn
I currently feel best about the option of just sending a bunch of ecash that will sure be enough to execute the job (and otherwise act as the time-out) and that if the DVM uses less of that money, it will send it back as pubkey locked cashu tokens, to a given npub. Maybe NIP-60 can be a great way to handle returning the 'change' to the user.
Some ideas i have now: - Billing should be per second - Advertising should: - advertise as sats/minute - include specs of the machine, ideally searchable by tag
Job request
So the flow i'm thinking of is:
-
User posts request
- repository
- branch
- yaml path
- bid (max price per minute)
- min_vcpu
- min_ram
- min_storage
-
DVM responds with
- price per minute
- vcpu
- ram
- storage
- runner-types
- price per minute
-
User posts request:
- ... [same as above]
- cashu payment
- cashu return pubkey + relay
User Interface
I also worked on building out a very basic user interface to run the GitHub Actions dvm.
The UI then shows all feedback to the job, where the first feedback event you can see gives back a status processing, and the next one gives back the console output of the pipeline run.
nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr and I agreed he'll copy over this basic setup into his upcoming version of gitWorkshop.dev which I can then build upon so we can experiment with the User Experience (how to handle competing Runners, display results, payments, etc...)
Tollgate
There's also been the issue that has been bothering me since last week: Being able to dismiss a captive portal programatically in the Android app.
During a weekly check-in that nostr:npub1k03rader0vm94j5ee8fg7pc2x9xkr2phu77sljas7qu5mh8mvgvqpe8rty and I set up we discussed the issue. To me, it's a problem having the user to jump through all these hoops to connect, which should be as much automated as possible.
We discussed what if we'd ditch the open network and go with a WPA2 (password) protected one and have no captive portal. But then we lose the ability to do onboarding / expose users to Tollgate through the captive portal. Then the idea came up to create an extra (hidden) network for the app to use, while keeping the open one with the captive portal. I did not know it was possible to create multiple networks on the same (physical) radio, but apparently it's quite common. You lose a bit on efficiency but it shouldn't be too bad. The only challenge would be to exempt this network from getting a captive portal while still using the OpenNDS software to manage user's sessions. We'll see but this gives me a lot of hope for a seamless user experience!
After this call, despite our possible new direction I did want to try and get the full app flow working, to validate if it's possible at all. And after some digging int the Tauri docs and even their discord community i finally found what the issue was with me not receiving the android event for the captive portal. I'd ben adding the listener for this event to the
androidmanifest.xml
file for the Tauri Android plugin, while I had to put it into the tauri app one's itself -one level higher- if you will...Anyway, that worked and I was FINALLY able to create the following full flow! (video)
nostr:nevent1qvzqqqqqqypzpwa4mkswz4t8j70s2s6q00wzqv7k7zamxrmj2y4fs88aktcfuf68qy88wumn8ghj7mn0wvhxcmmv9uq3zamnwvaz7tmwdaehgu3wwa5kuef0qydhwumn8ghj7un9d3shjtnwdaehgunsd3jkyuewvdhk6tcqyqyvs2js3x6ldpm2kkmqyf8d3lvrcezjk2eg26p2tvfxd2p6lkeqzn7l66t
-
-
@ 21335073:a244b1ad
2025-03-18 14:43:08Warning: This piece contains a conversation about difficult topics. Please proceed with caution.
TL;DR please educate your children about online safety.
Julian Assange wrote in his 2012 book Cypherpunks, “This book is not a manifesto. There isn’t time for that. This book is a warning.” I read it a few times over the past summer. Those opening lines definitely stood out to me. I wish we had listened back then. He saw something about the internet that few had the ability to see. There are some individuals who are so close to a topic that when they speak, it’s difficult for others who aren’t steeped in it to visualize what they’re talking about. I didn’t read the book until more recently. If I had read it when it came out, it probably would have sounded like an unknown foreign language to me. Today it makes more sense.
This isn’t a manifesto. This isn’t a book. There is no time for that. It’s a warning and a possible solution from a desperate and determined survivor advocate who has been pulling and unraveling a thread for a few years. At times, I feel too close to this topic to make any sense trying to convey my pathway to my conclusions or thoughts to the general public. My hope is that if nothing else, I can convey my sense of urgency while writing this. This piece is a watchman’s warning.
When a child steps online, they are walking into a new world. A new reality. When you hand a child the internet, you are handing them possibilities—good, bad, and ugly. This is a conversation about lowering the potential of negative outcomes of stepping into that new world and how I came to these conclusions. I constantly compare the internet to the road. You wouldn’t let a young child run out into the road with no guidance or safety precautions. When you hand a child the internet without any type of guidance or safety measures, you are allowing them to play in rush hour, oncoming traffic. “Look left, look right for cars before crossing.” We almost all have been taught that as children. What are we taught as humans about safety before stepping into a completely different reality like the internet? Very little.
I could never really figure out why many folks in tech, privacy rights activists, and hackers seemed so cold to me while talking about online child sexual exploitation. I always figured that as a survivor advocate for those affected by these crimes, that specific, skilled group of individuals would be very welcoming and easy to talk to about such serious topics. I actually had one hacker laugh in my face when I brought it up while I was looking for answers. I thought maybe this individual thought I was accusing them of something I wasn’t, so I felt bad for asking. I was constantly extremely disappointed and would ask myself, “Why don’t they care? What could I say to make them care more? What could I say to make them understand the crisis and the level of suffering that happens as a result of the problem?”
I have been serving minor survivors of online child sexual exploitation for years. My first case serving a survivor of this specific crime was in 2018—a 13-year-old girl sexually exploited by a serial predator on Snapchat. That was my first glimpse into this side of the internet. I won a national award for serving the minor survivors of Twitter in 2023, but I had been working on that specific project for a few years. I was nominated by a lawyer representing two survivors in a legal battle against the platform. I’ve never really spoken about this before, but at the time it was a choice for me between fighting Snapchat or Twitter. I chose Twitter—or rather, Twitter chose me. I heard about the story of John Doe #1 and John Doe #2, and I was so unbelievably broken over it that I went to war for multiple years. I was and still am royally pissed about that case. As far as I was concerned, the John Doe #1 case proved that whatever was going on with corporate tech social media was so out of control that I didn’t have time to wait, so I got to work. It was reading the messages that John Doe #1 sent to Twitter begging them to remove his sexual exploitation that broke me. He was a child begging adults to do something. A passion for justice and protecting kids makes you do wild things. I was desperate to find answers about what happened and searched for solutions. In the end, the platform Twitter was purchased. During the acquisition, I just asked Mr. Musk nicely to prioritize the issue of detection and removal of child sexual exploitation without violating digital privacy rights or eroding end-to-end encryption. Elon thanked me multiple times during the acquisition, made some changes, and I was thanked by others on the survivors’ side as well.
I still feel that even with the progress made, I really just scratched the surface with Twitter, now X. I left that passion project when I did for a few reasons. I wanted to give new leadership time to tackle the issue. Elon Musk made big promises that I knew would take a while to fulfill, but mostly I had been watching global legislation transpire around the issue, and frankly, the governments are willing to go much further with X and the rest of corporate tech than I ever would. My work begging Twitter to make changes with easier reporting of content, detection, and removal of child sexual exploitation material—without violating privacy rights or eroding end-to-end encryption—and advocating for the minor survivors of the platform went as far as my principles would have allowed. I’m grateful for that experience. I was still left with a nagging question: “How did things get so bad with Twitter where the John Doe #1 and John Doe #2 case was able to happen in the first place?” I decided to keep looking for answers. I decided to keep pulling the thread.
I never worked for Twitter. This is often confusing for folks. I will say that despite being disappointed in the platform’s leadership at times, I loved Twitter. I saw and still see its value. I definitely love the survivors of the platform, but I also loved the platform. I was a champion of the platform’s ability to give folks from virtually around the globe an opportunity to speak and be heard.
I want to be clear that John Doe #1 really is my why. He is the inspiration. I am writing this because of him. He represents so many globally, and I’m still inspired by his bravery. One child’s voice begging adults to do something—I’m an adult, I heard him. I’d go to war a thousand more lifetimes for that young man, and I don’t even know his name. Fighting has been personally dark at times; I’m not even going to try to sugarcoat it, but it has been worth it.
The data surrounding the very real crime of online child sexual exploitation is available to the public online at any time for anyone to see. I’d encourage you to go look at the data for yourself. I believe in encouraging folks to check multiple sources so that you understand the full picture. If you are uncomfortable just searching around the internet for information about this topic, use the terms “CSAM,” “CSEM,” “SG-CSEM,” or “AI Generated CSAM.” The numbers don’t lie—it’s a nightmare that’s out of control. It’s a big business. The demand is high, and unfortunately, business is booming. Organizations collect the data, tech companies often post their data, governments report frequently, and the corporate press has covered a decent portion of the conversation, so I’m sure you can find a source that you trust.
Technology is changing rapidly, which is great for innovation as a whole but horrible for the crime of online child sexual exploitation. Those wishing to exploit the vulnerable seem to be adapting to each technological change with ease. The governments are so far behind with tackling these issues that as I’m typing this, it’s borderline irrelevant to even include them while speaking about the crime or potential solutions. Technology is changing too rapidly, and their old, broken systems can’t even dare to keep up. Think of it like the governments’ “War on Drugs.” Drugs won. In this case as well, the governments are not winning. The governments are talking about maybe having a meeting on potentially maybe having legislation around the crimes. The time to have that meeting would have been many years ago. I’m not advocating for governments to legislate our way out of this. I’m on the side of educating and innovating our way out of this.
I have been clear while advocating for the minor survivors of corporate tech platforms that I would not advocate for any solution to the crime that would violate digital privacy rights or erode end-to-end encryption. That has been a personal moral position that I was unwilling to budge on. This is an extremely unpopular and borderline nonexistent position in the anti-human trafficking movement and online child protection space. I’m often fearful that I’m wrong about this. I have always thought that a better pathway forward would have been to incentivize innovation for detection and removal of content. I had no previous exposure to privacy rights activists or Cypherpunks—actually, I came to that conclusion by listening to the voices of MENA region political dissidents and human rights activists. After developing relationships with human rights activists from around the globe, I realized how important privacy rights and encryption are for those who need it most globally. I was simply unwilling to give more power, control, and opportunities for mass surveillance to big abusers like governments wishing to enslave entire nations and untrustworthy corporate tech companies to potentially end some portion of abuses online. On top of all of it, it has been clear to me for years that all potential solutions outside of violating digital privacy rights to detect and remove child sexual exploitation online have not yet been explored aggressively. I’ve been disappointed that there hasn’t been more of a conversation around preventing the crime from happening in the first place.
What has been tried is mass surveillance. In China, they are currently under mass surveillance both online and offline, and their behaviors are attached to a social credit score. Unfortunately, even on state-run and controlled social media platforms, they still have child sexual exploitation and abuse imagery pop up along with other crimes and human rights violations. They also have a thriving black market online due to the oppression from the state. In other words, even an entire loss of freedom and privacy cannot end the sexual exploitation of children online. It’s been tried. There is no reason to repeat this method.
It took me an embarrassingly long time to figure out why I always felt a slight coldness from those in tech and privacy-minded individuals about the topic of child sexual exploitation online. I didn’t have any clue about the “Four Horsemen of the Infocalypse.” This is a term coined by Timothy C. May in 1988. I would have been a child myself when he first said it. I actually laughed at myself when I heard the phrase for the first time. I finally got it. The Cypherpunks weren’t wrong about that topic. They were so spot on that it is borderline uncomfortable. I was mad at first that they knew that early during the birth of the internet that this issue would arise and didn’t address it. Then I got over it because I realized that it wasn’t their job. Their job was—is—to write code. Their job wasn’t to be involved and loving parents or survivor advocates. Their job wasn’t to educate children on internet safety or raise awareness; their job was to write code.
They knew that child sexual abuse material would be shared on the internet. They said what would happen—not in a gleeful way, but a prediction. Then it happened.
I equate it now to a concrete company laying down a road. As you’re pouring the concrete, you can say to yourself, “A terrorist might travel down this road to go kill many, and on the flip side, a beautiful child can be born in an ambulance on this road.” Who or what travels down the road is not their responsibility—they are just supposed to lay the concrete. I’d never go to a concrete pourer and ask them to solve terrorism that travels down roads. Under the current system, law enforcement should stop terrorists before they even make it to the road. The solution to this specific problem is not to treat everyone on the road like a terrorist or to not build the road.
So I understand the perceived coldness from those in tech. Not only was it not their job, but bringing up the topic was seen as the equivalent of asking a free person if they wanted to discuss one of the four topics—child abusers, terrorists, drug dealers, intellectual property pirates, etc.—that would usher in digital authoritarianism for all who are online globally.
Privacy rights advocates and groups have put up a good fight. They stood by their principles. Unfortunately, when it comes to corporate tech, I believe that the issue of privacy is almost a complete lost cause at this point. It’s still worth pushing back, but ultimately, it is a losing battle—a ticking time bomb.
I do think that corporate tech providers could have slowed down the inevitable loss of privacy at the hands of the state by prioritizing the detection and removal of CSAM when they all started online. I believe it would have bought some time, fewer would have been traumatized by that specific crime, and I do believe that it could have slowed down the demand for content. If I think too much about that, I’ll go insane, so I try to push the “if maybes” aside, but never knowing if it could have been handled differently will forever haunt me. At night when it’s quiet, I wonder what I would have done differently if given the opportunity. I’ll probably never know how much corporate tech knew and ignored in the hopes that it would go away while the problem continued to get worse. They had different priorities. The most voiceless and vulnerable exploited on corporate tech never had much of a voice, so corporate tech providers didn’t receive very much pushback.
Now I’m about to say something really wild, and you can call me whatever you want to call me, but I’m going to say what I believe to be true. I believe that the governments are either so incompetent that they allowed the proliferation of CSAM online, or they knowingly allowed the problem to fester long enough to have an excuse to violate privacy rights and erode end-to-end encryption. The US government could have seized the corporate tech providers over CSAM, but I believe that they were so useful as a propaganda arm for the regimes that they allowed them to continue virtually unscathed.
That season is done now, and the governments are making the issue a priority. It will come at a high cost. Privacy on corporate tech providers is virtually done as I’m typing this. It feels like a death rattle. I’m not particularly sure that we had much digital privacy to begin with, but the illusion of a veil of privacy feels gone.
To make matters slightly more complex, it would be hard to convince me that once AI really gets going, digital privacy will exist at all.
I believe that there should be a conversation shift to preserving freedoms and human rights in a post-privacy society.
I don’t want to get locked up because AI predicted a nasty post online from me about the government. I’m not a doomer about AI—I’m just going to roll with it personally. I’m looking forward to the positive changes that will be brought forth by AI. I see it as inevitable. A bit of privacy was helpful while it lasted. Please keep fighting to preserve what is left of privacy either way because I could be wrong about all of this.
On the topic of AI, the addition of AI to the horrific crime of child sexual abuse material and child sexual exploitation in multiple ways so far has been devastating. It’s currently out of control. The genie is out of the bottle. I am hopeful that innovation will get us humans out of this, but I’m not sure how or how long it will take. We must be extremely cautious around AI legislation. It should not be illegal to innovate even if some bad comes with the good. I don’t trust that the governments are equipped to decide the best pathway forward for AI. Source: the entire history of the government.
I have been personally negatively impacted by AI-generated content. Every few days, I get another alert that I’m featured again in what’s called “deep fake pornography” without my consent. I’m not happy about it, but what pains me the most is the thought that for a period of time down the road, many globally will experience what myself and others are experiencing now by being digitally sexually abused in this way. If you have ever had your picture taken and posted online, you are also at risk of being exploited in this way. Your child’s image can be used as well, unfortunately, and this is just the beginning of this particular nightmare. It will move to more realistic interpretations of sexual behaviors as technology improves. I have no brave words of wisdom about how to deal with that emotionally. I do have hope that innovation will save the day around this specific issue. I’m nervous that everyone online will have to ID verify due to this issue. I see that as one possible outcome that could help to prevent one problem but inadvertently cause more problems, especially for those living under authoritarian regimes or anyone who needs to remain anonymous online. A zero-knowledge proof (ZKP) would probably be the best solution to these issues. There are some survivors of violence and/or sexual trauma who need to remain anonymous online for various reasons. There are survivor stories available online of those who have been abused in this way. I’d encourage you seek out and listen to their stories.
There have been periods of time recently where I hesitate to say anything at all because more than likely AI will cover most of my concerns about education, awareness, prevention, detection, and removal of child sexual exploitation online, etc.
Unfortunately, some of the most pressing issues we’ve seen online over the last few years come in the form of “sextortion.” Self-generated child sexual exploitation (SG-CSEM) numbers are continuing to be terrifying. I’d strongly encourage that you look into sextortion data. AI + sextortion is also a huge concern. The perpetrators are using the non-sexually explicit images of children and putting their likeness on AI-generated child sexual exploitation content and extorting money, more imagery, or both from minors online. It’s like a million nightmares wrapped into one. The wild part is that these issues will only get more pervasive because technology is harnessed to perpetuate horror at a scale unimaginable to a human mind.
Even if you banned phones and the internet or tried to prevent children from accessing the internet, it wouldn’t solve it. Child sexual exploitation will still be with us until as a society we start to prevent the crime before it happens. That is the only human way out right now.
There is no reset button on the internet, but if I could go back, I’d tell survivor advocates to heed the warnings of the early internet builders and to start education and awareness campaigns designed to prevent as much online child sexual exploitation as possible. The internet and technology moved quickly, and I don’t believe that society ever really caught up. We live in a world where a child can be groomed by a predator in their own home while sitting on a couch next to their parents watching TV. We weren’t ready as a species to tackle the fast-paced algorithms and dangers online. It happened too quickly for parents to catch up. How can you parent for the ever-changing digital world unless you are constantly aware of the dangers?
I don’t think that the internet is inherently bad. I believe that it can be a powerful tool for freedom and resistance. I’ve spoken a lot about the bad online, but there is beauty as well. We often discuss how victims and survivors are abused online; we rarely discuss the fact that countless survivors around the globe have been able to share their experiences, strength, hope, as well as provide resources to the vulnerable. I do question if giving any government or tech company access to censorship, surveillance, etc., online in the name of serving survivors might not actually impact a portion of survivors negatively. There are a fair amount of survivors with powerful abusers protected by governments and the corporate press. If a survivor cannot speak to the press about their abuse, the only place they can go is online, directly or indirectly through an independent journalist who also risks being censored. This scenario isn’t hard to imagine—it already happened in China. During #MeToo, a survivor in China wanted to post their story. The government censored the post, so the survivor put their story on the blockchain. I’m excited that the survivor was creative and brave, but it’s terrifying to think that we live in a world where that situation is a necessity.
I believe that the future for many survivors sharing their stories globally will be on completely censorship-resistant and decentralized protocols. This thought in particular gives me hope. When we listen to the experiences of a diverse group of survivors, we can start to understand potential solutions to preventing the crimes from happening in the first place.
My heart is broken over the gut-wrenching stories of survivors sexually exploited online. Every time I hear the story of a survivor, I do think to myself quietly, “What could have prevented this from happening in the first place?” My heart is with survivors.
My head, on the other hand, is full of the understanding that the internet should remain free. The free flow of information should not be stopped. My mind is with the innocent citizens around the globe that deserve freedom both online and offline.
The problem is that governments don’t only want to censor illegal content that violates human rights—they create legislation that is so broad that it can impact speech and privacy of all. “Don’t you care about the kids?” Yes, I do. I do so much that I’m invested in finding solutions. I also care about all citizens around the globe that deserve an opportunity to live free from a mass surveillance society. If terrorism happens online, I should not be punished by losing my freedom. If drugs are sold online, I should not be punished. I’m not an abuser, I’m not a terrorist, and I don’t engage in illegal behaviors. I refuse to lose freedom because of others’ bad behaviors online.
I want to be clear that on a long enough timeline, the governments will decide that they can be better parents/caregivers than you can if something isn’t done to stop minors from being sexually exploited online. The price will be a complete loss of anonymity, privacy, free speech, and freedom of religion online. I find it rather insulting that governments think they’re better equipped to raise children than parents and caretakers.
So we can’t go backwards—all that we can do is go forward. Those who want to have freedom will find technology to facilitate their liberation. This will lead many over time to decentralized and open protocols. So as far as I’m concerned, this does solve a few of my worries—those who need, want, and deserve to speak freely online will have the opportunity in most countries—but what about online child sexual exploitation?
When I popped up around the decentralized space, I was met with the fear of censorship. I’m not here to censor you. I don’t write code. I couldn’t censor anyone or any piece of content even if I wanted to across the internet, no matter how depraved. I don’t have the skills to do that.
I’m here to start a conversation. Freedom comes at a cost. You must always fight for and protect your freedom. I can’t speak about protecting yourself from all of the Four Horsemen because I simply don’t know the topics well enough, but I can speak about this one topic.
If there was a shortcut to ending online child sexual exploitation, I would have found it by now. There isn’t one right now. I believe that education is the only pathway forward to preventing the crime of online child sexual exploitation for future generations.
I propose a yearly education course for every child of all school ages, taught as a standard part of the curriculum. Ideally, parents/caregivers would be involved in the education/learning process.
Course: - The creation of the internet and computers - The fight for cryptography - The tech supply chain from the ground up (example: human rights violations in the supply chain) - Corporate tech - Freedom tech - Data privacy - Digital privacy rights - AI (history-current) - Online safety (predators, scams, catfishing, extortion) - Bitcoin - Laws - How to deal with online hate and harassment - Information on who to contact if you are being abused online or offline - Algorithms - How to seek out the truth about news, etc., online
The parents/caregivers, homeschoolers, unschoolers, and those working to create decentralized parallel societies have been an inspiration while writing this, but my hope is that all children would learn this course, even in government ran schools. Ideally, parents would teach this to their own children.
The decentralized space doesn’t want child sexual exploitation to thrive. Here’s the deal: there has to be a strong prevention effort in order to protect the next generation. The internet isn’t going anywhere, predators aren’t going anywhere, and I’m not down to let anyone have the opportunity to prove that there is a need for more government. I don’t believe that the government should act as parents. The governments have had a chance to attempt to stop online child sexual exploitation, and they didn’t do it. Can we try a different pathway forward?
I’d like to put myself out of a job. I don’t want to ever hear another story like John Doe #1 ever again. This will require work. I’ve often called online child sexual exploitation the lynchpin for the internet. It’s time to arm generations of children with knowledge and tools. I can’t do this alone.
Individuals have fought so that I could have freedom online. I want to fight to protect it. I don’t want child predators to give the government any opportunity to take away freedom. Decentralized spaces are as close to a reset as we’ll get with the opportunity to do it right from the start. Start the youth off correctly by preventing potential hazards to the best of your ability.
The good news is anyone can work on this! I’d encourage you to take it and run with it. I added the additional education about the history of the internet to make the course more educational and fun. Instead of cleaning up generations of destroyed lives due to online sexual exploitation, perhaps this could inspire generations of those who will build our futures. Perhaps if the youth is armed with knowledge, they can create more tools to prevent the crime.
This one solution that I’m suggesting can be done on an individual level or on a larger scale. It should be adjusted depending on age, learning style, etc. It should be fun and playful.
This solution does not address abuse in the home or some of the root causes of offline child sexual exploitation. My hope is that it could lead to some survivors experiencing abuse in the home an opportunity to disclose with a trusted adult. The purpose for this solution is to prevent the crime of online child sexual exploitation before it occurs and to arm the youth with the tools to contact safe adults if and when it happens.
In closing, I went to hell a few times so that you didn’t have to. I spoke to the mothers of survivors of minors sexually exploited online—their tears could fill rivers. I’ve spoken with political dissidents who yearned to be free from authoritarian surveillance states. The only balance that I’ve found is freedom online for citizens around the globe and prevention from the dangers of that for the youth. Don’t slow down innovation and freedom. Educate, prepare, adapt, and look for solutions.
I’m not perfect and I’m sure that there are errors in this piece. I hope that you find them and it starts a conversation.
-
@ 3f770d65:7a745b24
2025-01-19 21:48:49The recent shutdown of TikTok in the United States due to a potential government ban serves as a stark reminder how fragile centralized platforms truly are under the surface. While these platforms offer convenience, a more polished user experience, and connectivity, they are ultimately beholden to governments, corporations, and other authorities. This makes them vulnerable to censorship, regulation, and outright bans. In contrast, Nostr represents a shift in how we approach online communication and content sharing. Built on the principles of decentralization and user choice, Nostr cannot be banned, because it is not a platform—it is a protocol.
PROTOCOLS, NOT PLATFORMS.
At the heart of Nostr's philosophy is user choice, a feature that fundamentally sets it apart from legacy platforms. In centralized systems, the user experience is dictated by a single person or governing entity. If the platform decides to filter, censor, or ban specific users or content, individuals are left with little action to rectify the situation. They must either accept the changes or abandon the platform entirely, often at the cost of losing their social connections, their data, and their identity.
What's happening with TikTok could never happen on Nostr. With Nostr, the dynamics are completely different. Because it is a protocol, not a platform, no single entity controls the ecosystem. Instead, the protocol enables a network of applications and relays that users can freely choose from. If a particular application or relay implements policies that a user disagrees with, such as censorship, filtering, or even government enforced banning, they are not trapped or abandoned. They have the freedom to move to another application or relay with minimal effort.
THIS IS POWERFUL.
Take, for example, the case of a relay that decides to censor specific content. On a legacy platform, this would result in frustration and a loss of access for users. On Nostr, however, users can simply connect to a different relay that does not impose such restrictions. Similarly, if an application introduces features or policies that users dislike, they can migrate to a different application that better suits their preferences, all while retaining their identity and social connections.
The same principles apply to government bans and censorship. A government can ban a specific application or even multiple applications, just as it can block one relay or several relays. China has implemented both tactics, yet Chinese users continue to exist and actively participate on Nostr, demonstrating Nostr's ability to resistant censorship.
How? Simply, it turns into a game of whack-a-mole. When one relay is censored, another quickly takes its place. When one application is banned, another emerges. Users can also bypass these obstacles by running their own relays and applications directly from their homes or personal devices, eliminating reliance on larger entities or organizations and ensuring continuous access.
AGAIN, THIS IS POWERUFL.
Nostr's open and decentralized design makes it resistant to the kinds of government intervention that led to TikTok's outages this weekend and potential future ban in the next 90 days. There is no central server to target, no company to regulate, and no single point of failure. (Insert your CEO jokes here). As long as there are individuals running relays and applications, users continue creating notes and sending zaps.
Platforms like TikTok can be silenced with the stroke of a pen, leaving millions of users disconnected and abandoned. Social communication should not be silenced so incredibly easily. No one should have that much power over social interactions.
Will we on-board a massive wave of TikTokers in the coming hours or days? I don't know.
TikTokers may not be ready for Nostr yet, and honestly, Nostr may not be ready for them either. The ecosystem still lacks the completely polished applications, tools, and services they’re accustomed to. This is where we say "we're still early". They may not be early adopters like the current Nostr user base. Until we bridge that gap, they’ll likely move to the next centralized platform, only to face another government ban or round of censorship in the future. But eventually, there will come a tipping point, a moment when they’ve had enough. When that time comes, I hope we’re prepared. If we’re not, we risk missing a tremendous opportunity to onboard people who genuinely need Nostr’s freedom.
Until then, to all of the Nostr developers out there, keep up the great work and keep building. Your hard work and determination is needed.
-
@ c9badfea:610f861a
2025-05-13 00:24:49► Dev Communities
- 🌐 Programming-Telegram-Group - Telegram Communities
- ⭐ StackOverflow - Developer Forum
- ⭐ XDA - App Development Forum
- CodeProject - Developer Forum
- Spiceworks Community - Developer Forum
- DEV Community - Developer Forum
- Blind - Developer Forum
- IndieHackers - Developer Forum
- CyberArsenal - Cybersecurity Forums
- TheSecMaster - Cybersecurity Blog
- Tech-Blogs or HN Popularity - Blogs for Developers
- The Devs Network - Developer Chat
- DevBuddies - Search for Programming Partners
- StackShare - Tech Stack Collaboration
► Dev News
- ⭐ KrebsOnSecurity - Cybersecurity News
- ⭐ Lobsters - Dev News / Highlighter
- TechURLs - Dev / Tech News
- DevURLs - Dev News
- Techmeme - Dev News
- The Brutalist Report - Dev News
- jimmyr - Dev News
- daily.dev - Dev News
- Talos Blog - Cybersecurity News
- IT Security Guru - Cybersecurity News
- This Week in Rust - Rust News / Updates
- hackertab.dev or daily.dev - Dev Browser Startpages
► Developer Learning
► Developer Tools
- ↪️ Data Visualization Tools
- ⭐ DevToys - Dev Multi-Tool App / GitHub
- ⭐ DevDocs / GitHub or ZealDocs - Dev Documentation
- ⭐ ImHex / Web Version / GitHub or HexEd.it - Hex Editors
- Slidev - Developer Presentation Slides / GitHub
- Devhints - Developer Cheat Sheets
- Dev Emoji List - Emoji-List with Names, Shortcodes, Unicode & HTML Entities
- Student Developer Pack - Free Developer Tools for Students
- choose-a-license or ChooseALicense - How to pick a license
- PrivacyPolicyTemplate - Generate Privacy Policies
- Eternal Terminal or NxShell - SSH Clients / Servers
- PuTTY - SSH & Telnet Client / Multi-Tab / Fork / GitHub
- Penpot - Cross Domain Design & Prototyping Platform
- Webhook.site - Webhook Tools
- Libraries.io - Package, Framework & Tool Search
- Deps.dev - Open Source Package Search
- Bardeen or N8N - Workflow Automation
- UI.Vision RPA - Workflow Automation Extension
- Hajimari - Kubernetes Startpage / Discord
- discord-api-libs - Community Libraries for Discord API
- botwiki - Learn How to Make Bots
- reddit-moderator-toolbox - Toolbox for Reddit Extension Development
- devSwag - Developer Giveaways
- Commands.dev - Terminal Commands
- Linear, AirBroke or Glitchtip - Error Tracking Platforms
- UMLet or JDL Studio - Create UML Diagrams
- Mockaroo - Generate Mock Data
- Mockium - Generate Test Data
- Globster - Test Glob Patterns
- Big List of Naughty Strings - Check for Edge Case Inputs
- overmind - Process Managers
- sed.js - GNU sed Live Editor
- PlantText - UML Editor
- Code::Stats or Wakatime - Programmer Stat Tracking
- WiredJS - Wireframe Designer
- KeyCheck - Dev Tool Hotkeys
- NBviewer - Jupyter Notebook Sharing
▷ Dev Tool Indexes
- ⭐ Free for Developers / GitHub
- Useful Tools / GitHub
- Best-Websites
- Tiny Helpers / GitHub
- Tiny Tools
- Free For Life / GitHub
- WebdevHome
- Free Developer Stuff
- Addy
- Prototypr
- Awesome Sys Admin - System Admin Resources
- Awesome Design Patterns - Design Pattern Resources
▷ Online Toolkits
- ⭐ AppDevTools
- IT Tools
- Web Toolbox
- devina
- wangchujiang
- SmallDev.tools
- Coders Tool
- Utilities and Tools
- Clean CSS
- FreeFormatter.com
- Online String Tools
▷ Software Dev Tools
- 🌐 Awesome Software Quality - Software Quality Testing Resources
- 🌐 Awesome DOS - DOS App Development Resources
- ⭐ Every-programmer-should-know, raylib technologie or bookmarks - Software Development Tools
- ⭐ Electron Tools - App Store / Debugger / Mod Loader / Builder
- ⭐ new(releases) - Software Release Notifications
- Budibase, ToolJet or Appsmith - Internal Tool Builders
- Theos - Program Build System / GitHub / Jailed Tweaks
- New Software - Project Decision Checklist
- Open Source Guides - Open Source Software Tips / GitHub
- Dokploy - App Deployment
- Gaultier Blog - Learn x86-64 Assembly
- dnSpyEx - .NET Debugger and Assembly Editor
- Crontab Guru - Crontab Editor / Job Scheduler
- Crontab Generator - Generate Crontab Syntax
- Slint - GUI Development Tools / GitHub
- Inno Setup or InstallForge - Create Installation Programs
- Etebase - Encrypted App Backend
- tl;drLegal - Software License Summaries
- minisign - Sign Files / Verify Digital Signatures / GitHub
- VirtualBuddy - Virtualize macOS 12 and later on Apple Silicon
- Pencil - Software Mockup Tool / GitHub
▷ Mobile Dev Tools
- 🌐 AndroidRepo - Android Development Resources
- 🌐 Awesome iOS - iOS Development Resources
- 🌐 UXArchive, Mobbin or UISources - Mobile UI Resources
- ↪️ App Mockups
- ⭐ Android Developer Roadmap
- App ideas - Collection of App Ideas
- IconKitchen or AppIcon - App Icon Generator
- namae - App Name Availability Check
- XDGuru - Adobe XD Resources
- Media Kit - Video / Audio Library for Flutter and Dart
- ADB or Appium / GitHub - Automated App Testing
- Privado - Generate App Privacy Reports / GitHub
- PM2 - Process Manager
- Andure - Android Chrome Dev Tools
- useAnimations - Animated Icon Pack
- Official Android Courses - Android Training Courses
- Android Libhunt - Android Packages
- Android-Iconics - Use Any Icon / Font as Your Drawable App
- AndroidAssetStudio - Android App Assets
- Contacts Android - Android Contacts APIs
- Push Notifications API - Push Notifications API
- React Native Apps - React App Examples
- TV Samples - Android TV App Samples
- iOS Icon Gallery - iOS Icon Examples
- PrivacyFlash-Pro - Generate iOS Privacy Policies
▷ Database Tools
- 🌐 DB Engines or DBDB - Database Rankings
- 🌐 Awesome Opensource Data Engineering - Data Engineering Tools
- 🌐 Awesome Big Data - Big Data Resources
- ⭐ DB Browser, SQLook, DuckDB, SQL Lite Studio or HeidiSQL - SQL Managers
- Sqlable - SQL Tools
- Grafana or Beszel - Dev Data Dashboards
- DBeaver - Universal Database Tool
- ChartDB - Database Visualization / GitHub
- Ingestr - Transfer Data between Databases
- NocoDB - Turn Database into Smart Spreadsheet / GitHub
- Generate Fake Data - Ruby / Swift
- Qdrant - Vector Database
- SQL Cheat Sheet - SQL Cheat Sheet
- Gel - SQL Alternative
- QueryStorm - SQL and .NET programming in Excel
- SQLizer - Convert Files To SQL Databases
- franchise - SQL Notebook
▷ Git Tools
- 🌐 Console - Search Projects on OpenSourceHub.io
- 🌐 Awesome README - GitHub Readme Resources
- 🌐 Forge Comparison, Forgejo or Forgeperf.org - Git Collab Tool Comparison
- ↪️ Git Project Indexes
- ⭐ Git-Fork, GitButler or GitQlient - Git Desktop Clients
- ⭐ Codeberg, Drift, Gitea, GitLab.com or sourcehut - GitHub Alts / Version Control Systems
- Git - Version Control System
- searchcode or PublicWWW - Source Code Search
- git-sim - Visually Simulate Git Operations Before Running
- Gittea.dev, Savannah, FSFE, git.sr.ht, GitGud or Notabug - Git Hosting / Software Forge
- Forgejo or Gogs - Self-Hosted Git Services / Forge
- posh-git - Git Powershell Environment
- up-for-grabs - Curated List of Tasks for New Contributes
- GitKraken, RelaGit, Sourcetree, lazygit or gitui - Git GUIs
- Gut, Jujutsu, GitHub Cli or gitu - Git CLI / TUI
- git-pr - Git Collab Tools
- Git-notify - Embed Announcements into Git Commit Messages
- Allstar - Git Repository Security App
- git-bug - Git Embedded Bug Tracker
- Plane / Discord, Git Extensions or Thermal - Git Project / Repo Managers
- git-annex - Manage Large Git Files (without Git)
- GitList - Elegant Git Repository Viewer / GitHub
- Gittyup - Git Source Code History / GitHub
- Gource - Git Project Visualizer
- multi-gitter - Bulk Repository Updater
- Delta or Git-Split-Diffs - Syntax Highlighting / Comparison
- Onefetch - Command-line Git information tool / GitHub
- commitlint - Lint Commit Messages / GitHub
- Git Cliff - Changelog Generator
- github-readme-terminal - Terminal Style Readme
- GIT Quick Stats - View Git Statistics / GitHub
- gitignore.io - Gitignore Templates / GitHub
▷ GitHub Tools
- 🌐 OSS Insight - GitHub Project Index
- 🌐 Awesome First PR Opportunities - Beginner FOSS Project Index
- 🌐 Awesome Actions - GitHub Action Resources
- 🌐 Awesome Browser Extensions - GitHub Browser Extensions
- 🌐 Awesome Badges - GitHub Badge Resources
- 🌐 GitHub-Userscripts - GitHub Userscripts
- ⭐ GitHub Desktop / Linux - GitHub Desktop Client
- ⭐ GitHub.Dev - GitHub Web Apps
- Gothub - GitHub Frontend
- GitHub Cheat Sheet - GitHub Cheat Sheet
- GitHubStatus - GitHub Outage Status
- Languish - GitHub Programming Language Stats
- Langits - View Your Most Used Languages on GitHub
- refined-github or Ungit - Improved GitHub Interface
- GitHub Dorks - GitHub Search Tool
- Imgbot - GitHub Image Compression
- ActionServerless - Create Serverless Service
- Rahularity - Use Multiple Git Accounts at Once
- dotfiles - GitHub Dotfiles
- GitHub Web IDE - Web IDE / GitHub
- Octobox, Gitify, advanced-github-notifier, PR Monitor, Gitification or CatLight - GitHub Notifications
- github1s - GitHub Code Viewer / GUI: do
gitk
in Repo Folder - Pages CMS - Content Managment System / GitHub
- KeyManager - GitHub SSH / GPG Key Manager
- Serctl - Backup GitHub Projects
- Pew Pew - Cleanup Unused Repos
- No Secrets - Cleanup Sensitive Files in Repos
- DownGit, GitHub2File, Gitzip or Download Directory - Download GitHub Repo Sub-Folders / Files
- Install from GitHub or Eget - Install Packages / Binaries Directly from GitHub
- useful-forks or GitPop3 - GitHub Fork Search
- Active-Forks - Find Active GitHub Forks / GitHub
- Graphite or Stacking - Improve Pull Request Workflow
- PR-Agent - Automated Pull Requests
- SemanticDiff - Review Pull Requests using Language Aware Diff
- StarGrab - Mirror GitHub Repositories
- Repo2Txt - Convert Repos to Text Formatted Files / GitHub
- Gitingest or Repomix / GitHub - Convert Repos to Prompt-Friendly Text
- OctoLinker - Make GitHub Code References Clickable
- Octotree - GitHub Repo File Tree View
- Nightly.link - GitHub Sharable Nightly Links
- ActionFlow - Action Workflow Automation
- shot-scraper-template - Take Automated Screenshots of Web Pages
- Star History - Repository Star History Graph
- GitWhoIs - GitHub Repo History / Info
- Gitstar Ranking - Git Repo Star Rankings
- GithubReleasesBot - Repository Change Feeds
- GitHub Markdown Preview - Preview GH Markdown
- ReadmeGallery - GitHub Readme Gallery Creator
- GitHub Readme Stats - Dynamically Generated GitHub Readme Stats
- GitHub Contribution Graph - Add GitHub ReadMe Contribution / Commit Graph
- GitHub Readme Quotes - GitHub Readme Quote Generator / GitHub
- Shields.io - Metadata Badges for GitHub Readme
- SkillIcons, Badgers, SpaceBadgers or SimpleBadges / GitHub - Skill Badges for GitHub Readme / Resumes
- For the Badge - Custom GitHub Badges
- GitHub Spray - Draw on GitHub Contribution Page
- GitHub Snake - Enable Snake Game on GitHub Readme
- GitHub Profile Readme Generator or GPRM - Generate Git Profile Readme
- GitStalk - GitHub Profile Info Search
- ProfileMe.dev - Create GitHub Profile
- Beautify GitHub Profile - Custom GitHub Profile Resources
- Discord MD Badge - Add Discord Badge to GitHub
- github-material-icons-extension - Material Icons
- gist.io - Git Blog Platform
▷ Docker Tools
- 🌐 Awesome Docker - Docker Services Index
- 🌐 Selfhosted-Apps-Docker - Self-hosted Docker Apps / Guides
- ⭐ Docker - Build, Manage and Run Apps in Containers
- ⭐ portainer, yacht, DockGE, moncho or podman / 2 - Container Managers
- ⭐ Composerize, 2 - Compose Docker Files
- ⭐ Hub Docker, 2, 3 - Docker Images
- Docker Desktop - Docker Desktop App
- LazyDocker, oxker or Isaiah - Docker Managers / TUIs
- Dockerized - Docker Command-Line
- Dockle - Image Linter
- Dive - Analyze Images
- WatchTower - Container Automation
- autoportforward - Port Forwarding
- Dozzle - Log Viewer
- Docker AutoHeal - Container Monitor
- Diun - Docker Notifications
- Podman Compose / Playground - Podman Compose
- Termible - Docker Powered Site Terminals
▷ CLI Tools
- ↪️ CLI Cheat Sheets
- Awesome CLI - CLI Interface for Searching Awesome Lists
- Charm - Add Backend to Terminal Based Apps
- OhMyPosh - Terminal Theme Engines
- Lip Gloss - Style Definitions for Terminal Layouts
- sshx - Share Terminal Screen / GitHub
- cURL - Transfer Data with URLs / Converter / IP Lookup
- ripgrep or Sift - grep Alternatives
- Edbrowse - Command Line Editor / Browser / Mail Client
- Command Not Found - Install Missing Commands
- Atuin - Sync, search and backup shell history
- pueue - Shell Command Manager
- Zoxide - Improved CD Command
- yoctocolors - Command Line Coloring Package
- open - Open URLs, Files, Executables in CLI or Scripts
- VisiData - Spreadsheet CLI Editor
▷ API Tools
- 🌐 Public APIs, API List, Public APIs, APIsList, APIs Guru, FreePublicAPIs, Public API Lists, APIVault or Any API - API Indexes
- 🌐 Awesome API Security or APIKit - API Security Resources
- 🌐 Streaming Site APIs
- 🌐 List of Providers - Piracy Site APIs
- 🌐 Free AI Stuff / 2, Respy, FreeAPIProviders or API Together - LLM / AI API Indexes
- 🌐 Countless - AI API Price Comparisons
- ⭐ hoppscotch, Firecamp, Strapi or Postman - API Builders
- ⭐ Shizuku or Dhizuku - Let Apps Use System API (Android)
- Wyzie Subs - Subtitle Scraping API / NPM Package / Docs
- HTTPie - Test REST, GraphQL, and HTTP APIs
- Rest Test Test - Test REST / CORS Services
- Beeceptor - Mock REST APIs
- Pipedream - Connect APIs / Tutorial
- FastAPI - API Framework
- Posting / GitHub, Insomnia or Yaak - API Clients
- Bruno - API Testing Client
- ReDoc - Generate API Documentation
- Mockable, {JSON} Placeholder, jsoning, Mocky or MockLab - Mock APIs
- Mockae - Mock APIs with Lua Execution
- InstantAPIs - API Endpoint Generator
- Stein - Turn Google Sheets into Database API
- Lanyard - Export Discord Rich Presence to API Endpoint / Websocket / Discord
- Telegram Bot API / GitHub or PHP Telegram Bot - Telegram Bot API
- cf-workers-telegram-bot - Serverless Telegram Bot / GitHub
- Perspective API - Toxicity Reduction API
- Plaid - Financial Account API / GitHub
- PDF Bot - A Node queue API for generating PDFs
▷ Machine Learning
- 🌐 Awesome Machine Learning - Machine Learning Framework Index
- 🌐 Awesome ML or ML Resources - Machine Learning Resources
- ⭐ Hugging Face, LLM Papers or OpenML - Machine Learning Datasets / Papers
- ⭐ Deep playground - Neural Networks Playground
- ⭐ LLM Visualization - Learn how LLMs Work
- Awesome Generative AI Guide - LLM Research Resources
- Machine Learning Roadmap, SAAYN, machine-learning-zoomcamp, ML Engineering or LLM Course - Learn Machine Learning
- LLM Text Complation - LLM Finetuning / Text Complation
- DeepSpeed - Deep Learning Optimization Library
- Netron - Visualizer for Neural Network, Deep Learning, and Machine Learning Models
- MMDeploy - Deep Learning Model Deployment Toolset / GitHub
- ChatGPT-Next-Web - Cross-Platform ChatGPT / Gemini UI
- Nixified - Nix Flake for AI Projects
- Cyberbotics - Robot Simulator
► Game Dev Tools
- 🌐 List of Game Engines, Awesome Game Engine or Game-Engines - Game Engine Development Resources
- 🌐 EnginesDatabase - Game Engines Database
- 🌐 Awesome Game Dev or /AGDG/ Resources - Game Dev Resources
- 🌐 Awesome Game Production - Game Production Resources
- ↪️ Learn Game Development
- ↪️ Sound Effect Sites
- HiddenPalace - Game Development Media Archive
- Tommti Systems - 3D Benchmark Tools
- Tracy Profiler - Frame Profiler
- Doshaven Programming List - DOS Game Creator Tools
- Fantasy Consoles / Computers - List of Fantasy Consoles and Computers
- Xelu's Controller Prompts - Free Game Prompts / Video
- Basic Computer Games - Basic Computer Game Examples
▷ Asset Creation
- ↪️ Download Game Assets
- ↪️ 3D Models / Modeling Tools
- ↪️ Design Tools / Resources
- ↪️ Art Resources
- ↪️ Animation Resources
- ↪️ Writing Tools
- Nuklear - Game GUI Creator
- HUDSxGUIS - UI Design Concepts
- SPARTAN Procedural - Procedural Tile Generator
- Game Sounds - Royalty Free Game Sounds
- Bleeper or jfxr - Game Sound Effects Creators
- Engine Simulator - Engine Sound Simulator / GitHub
- The Sounds Resource - Game Sounds Examples
- EZ Conversion - Game Audio Converter
▷ Map Creators / Editors
- ⭐ SpriteFusion - Tilemap Editor / Discord
- MapEditor or Tilesetter - Level Editors
- LDtk or Ogmo Editor - 2D Level Editors
- CharPad - Commodore 64 Graphics Editor
- Fantasy Map Generator - Fantasy Map Generator
- Inkarnate - Fantasy Map Editor
- HexHTML - Hexagon Fantasy Map Editor
- ProFantasy - Fantasy Map Tutorials
- Medieval Fantasy City Generator - Medieval Fantasy City Generator
- donjon - RPG Resources / Tools
- RPG Map II - RPG Map Editor
- MapTool - Virtual Tabletop for RPG Games
- Inkwell Ideas - Free Map Tools
- Neighbourhood - Neighborhood Map Generator
- Laigter - Map Generator for 2D Sprites
- Dungeon Scrawl - Dungeon Mapmaking Tool / Subreddit / Discord / GitHub
- Dungeon Map Doodler - Draw Dungeon & Terrain Maps
- One Page Dungeon - Single-page Dungeon Map Generator
► IDEs / Code Editors
- ↪️ Text Editors / Notes
- ⭐ VSCodium or Visual Studio Code, 2, 3 - Code Editor / Extensions
- ⭐ JetBrains / Unlock / License Server
- ⭐ Neovim - Code Editor
- ⭐ Lite XL or Pragtical - Code Editor / Plugin Manager / Plugins / Themes
- ⭐ Emacs - Code Editor / Docs / Resources
- ⭐ WebDen, Sharplab, tech.io or CodingGround - Code Playgrounds
- ⭐ Android Studio / Guide, SupaBase or Plasmic - App Creators / Builders
- Heynote - Code Editor / Notepad
- Edna - Web App / Code Editor / Notepad
- Trinket - Web App / Live Preview / Sign-Up Required / Online Workspace
- Firebase - Gemini AI Cloud Webapp
- Helix - Kakuone / Neovim-Based Code Editor
- HaystackEditor - Canvas-Based Code Editor
- Brackets - Webapp / Live Preview
- Bluefish - Code Editor / Templates
- CudaText - Code Editor
- Lapce - Code Editor
- ecode - Code Editor
- Competitive Editor - Competitive Programming Editor
- JSON Hero - JSON Viewer / Editor
- Apache NetBeans, KDevelop, Mitosis, Lazarus or OpenShift - Cross Platform IDEs
- TidalCycles - Live Algorithmic Coding Environment / Discord
- SciTE - Source Code Editor for Win32 and X
▷ Cloud IDEs / Collab
- 🌐 cloud - Cloud Platform Index
- 🌐 Heroku-Alt or heroku-free-alternatives - Heroku Alternatives
- ↪️ Code Collaboration Platforms
- ⭐ goormIDE - Cloud IDE
- ⭐ Google Colaboratory - Cloud IDE
- ⭐ CodeSandbox, StackBlitz or GitPod - VSCode Cloud IDE
- ⭐ judge0 - Online Code Editor / Discord
- Fleet - Cloud IDE
- CodeTasty - Cloud IDE
- Atheos - Server Required / Cloud IDE / GitHub
- Datalore - Cloud IDE
- JSFiddle - Cloud IDE
- html-css-js - Cloud IDE
- Collabedit - Cloud IDE
- CoderPad - Cloud IDE
- zed - Cloud IDE
- Ideone - Cloud IDE
- PlayCode - Cloud IDE
- pad.ws - Whiteboard Style Cloud IDE / GitHub
- Openshift - Cloud IDE / Eclipse Che
- Arduino - Cloud IDE for Arduino
- Shell Cloud - Google Cloud Shell Environment
- Blazepack, Flox or DevPod - Development Environments
- bloop - IDE AI Suggestion Extension
- glot.io - Pastebin with Runnable Snippets, API & Compiler
- Notebooks.azure - Access Jupyter Notebooks in VS Code
- Jupyter Server - Jupyter Services / APIs
- Anywidget - Create Jupyter Widgets / GitHub
- CoCalc - Virtual online workspace
- CodePen, Web Maker or Liveweave - Code Sandbox
- Platform.uno or Enact - App Frameworks
- InstantDB - Collaborative App Framework
- Codeface, Monaspace, Programming Fonts or Dev Fonts - Fonts for Coding / Comparison
▷ Android Code Editors
- ⭐ Acode - Android Code Editor / GitHub
- Sora - Android Code Editor
- Squircle-CE - Android Code Editor
- Visual Code Space - Android Code Editor
- Spck Editor - Android Code Editor
- droidvim - Vim Code Editor
- VHEditor - VSCode Editor
- diohub, PuppyGit or OctoDroid - Android Git Clients
- GitSync - Android Git Remote Repo Sync
- Gidget - GitHub Notifications / Android
- FlutterMarkdownEditor - Markdown Editor
▷ Coding Tools
- 🌐 Awesome Creative Coding - Creative Coding Resources
- Prettier or codebeautify - Code Formatting Tools
- editorcornfig - Maintain Code Styles Across Editors
- ThemesElection or Dracula - Code Editor Themes
- Freeze - Generate Images of Code / Terminal Output
- myCompiler, Compiler Explorer, OneCompiler, GodBolt, ryugod or Wandbox - Online Compilers / Explorers
- DogBolt - Decompiler Explorers / GitHub
- Code2Flow or Flowchart.js - Code to Flowchart Converter
- tuc - Improved Code Cut
- massCode - Code Snippet Manager
- Meld / 2, Beyond Compare / Pro or WinMerge - File / Directory Comparison Tools
- 0xacab - Code Host
- OctoLinker - Turn Code Statements into Links / GitHub
- RTutor - Translate Natural Language to R code / No Sign-Up
- BrickHub - Share Code Brick Templates
- Sourcegraph or SeaGOAT - Code Searching
- Sourcecodester, Code Projects, Codastro, Kashipara or ItSourceCode - Source Code Projects
- ShortCode or CodeList - Script / Code Indexes
- AnimateCode - Create Code Animations
- DelphiTools - Code Profiler / Delphi Tools
- Adrenaline or Console Ninja - Code Debugging
- JBin or Replay - Collaborative Code Debugging
- Winddown or Sandman - Coding Break Reminders
- Decompiler - Online Decompiler
▷ Vim / Neovim Tools
- 🌐 Awesome Neovim or NeoVimCraft - NeoVim Plugins Collections
- ⭐ Vim Bootstrap - Bootstrap Config for Vim
- SpaceVim, NeoVim Kickstart, AstroNvim, LazyVim, NvChad or LunarVim - Neovim Configs
- DotFyle - Neovim Config Search
- Lazy.nvim or packer.nvim - Neovim Plugin Managers
- FireNVim - Neovim in Browser
- neovide, gnvim, nvui, Neovim wiki##gui - Neovim GUIs
- instant.nvim - Collaborative Neovim Editing
- chatgpt.nvim - ChatGPT in Neovim
- Vim Plug, vim-pathogen / GitHub or Shougo - Vim Plugin Managers
- VimAwesome - Vim Plugins
- nerdtree - Vim Tree Explorer
- VimColorSchemes - Vim Color Schemes
- The Ultimate vimrc - Vim Config
- Vim Markdown or Markdown Preview - Vim Markdown Plugins
▷ VSCode Tools
- 🌐 Awesome VSC Extensions, 2 - VSCode Extensions
- github-vscode-icons - VSCode Icons
- chatgpt-vscode - VSCode ChatGPT
- Open VSX - Open VSX Registry
- snippet-generator - Snippet Generator
- Dendron - Knowledge Managment
- Discord Tools
- vscode-smart-clicks - Smart Clicks
- code-server - Web Server / GitHub
- vscode-settings - VSCode Settings
- insiders.vscode - Insider Build
- VSCodeThemes or VSColors - VSCode Themes
- oslo - Theme Generator
▷ Coding AIs
► Programming Languages
- 🌐 Awesome Cheatsheets, QuickRef.me, HowDoI, OverApi, Reference / GitHub or Cheat Sheets - Programming Cheat Sheets
- 🌐 Awesome Go or Go Recipes - Go Resources
- 🌐 TheAlgorithms - Coding Algorithms / GitHub
- ↪️ Learn Programming
- ⭐ Benchmarks Game - Measure PL Speeds
- ⭐ Language Benchmarks - Benchmarks for PLs & Compilers
- ⭐ 30 Seconds of Code or FreeFrontend - Find Code Snippets
- ⭐ generatedata.com - Generate Test Data in Different Languages
- Try It Online - Programming Language Interpreters
- nunu - Build Go Programs
- Learn X in Y minutes - Programming Language Rundowns / GitHub
- OneLang - Convert Code to Multiple Languages
- Crystalline - Crystal Language Server
- icr - REPL for Crystal
- explaine.rs - Rust Syntax Explanation
▷ Python
- 🌐 Awesome Python - Python Resources
- ⭐ Automate The Boring Stuff - Python Automation Book
- Python Cheatsheet or SpeedSheet - Python Cheat Sheets
- Python Patterns - Python Design Patterns
- Clean Code Python - Clean Up Python Code
- RustPython - Python Interpreter
- uv - Python Package / Project Manager
- Thonny - Python IDE
- pylyzer - Static Code Analyzer
- Online Python Compiler - Online Python Editor & Tester
- ClipRun - Run Python Code in Browser / Chrome Extension
▷ C Languages
- 🌐 Awesome C++ - C++ Resources
- RoslynPad - C# Editor
- RoslynQuoter - C# Syntax Tree API Viewer
- The Algorithms - C++ - C++ Algorithms
- cpp.sh - Online C++ Compiler
- CP-Algorithms - C++ Algorithms
- cppreference - C++ Cheat Sheets
▷ Java / Kotlin
- 🌐 Awesome Kotlin - Kotlin Resources / GitHub
- 🌐 Obfuscator List - Java Obfuscator Index
- Recaf - Java Bytecode Editor
- bytecode-viewer, jd-gui, Krakatau, Luyten, Vineflower or Fernflower - Java Decompilers
- JEnv For Windows - Change Java Version
- jadx - Dex to Java Decompiler
- GraalVM - Advanced Multi-language JVM
- Adoptium - Download OpenJDK Binaries
► Web Development
▷ HTML
- 🌐 Awesome HTML5 - HTML5 Resources
- ⭐ HTML Reference, HTML Cheat Sheet or HTML.com - HTML Guides / Cheat Sheets
- HTML-Minifier - HTML Minifier
- HTMLRev - Free HTML Templates
- Markdown to HTML - Markdown to HTML Converter
- APlayer, DPlayer or xgplayer - HTML5 Video Players
▷ CSS
- 🌐 Awesome CSS - CSS Resources
- ↪️ CSS Framework Tools
- ⭐ You Don't Need JavaScript - CSS Demos
- CSS Cheat Sheet or CSS Tricks - CSS Cheat Sheets
- Easings - CSS Animation Cheat Sheet
- CSSLayout or CSS Layout Generator - CSS Layout / Grid Generators
- CSSPeeper - Smart CSS Viewer
- Project Wallace - CSS Analyzer
- CSS Protips, Modern CSS or CSS Reference - CSS Guides
- Water.css - CSS Styles
- Style Stage - Modern CSS Styles
- Glass UI - Glassmorphism CSS Generator
- Hover.CSS - CSS Hover Effects
- PixelArtCSS - Pixel Art to CSS
- Buttons.cool - Copy CSS Buttons
- CSS Doodle - CSS Pattern Generator
- CSS3 Transform - 2D & 3D CSS Transform Functions Visualizer
- css3patterns, gradienta, GradientMagic or heropatterns - CSS Patterns / Gradients
- FilterBlend - CSS Blend Modes
- Animista - CSS Animations
▷ JavaScript
- 🌐 Awesome JavaScript - JavaScript Resources
- ↪️ TypeScript Tools
- Vanilla List - Vanilla JavaScript Repository
- RunKit - Browser JavaScript Sandbox
- Component Party - Web Component JS Frameworks Overview / GitHub
- jsdfe, de4js, Deobfuscator, WebCrack, Deobfuscate or deobfuscate.io - JavaScript Deobfuscators
- Minify JS or JS Compressor - JavaScript Minifiers
- 1loc or Underdash - JavaScript Snippets
- Node.js Best Practices - Node.js Style Guide
- Airbnb JavaScript Style Guide or StandardJS - JavaScript Style Guides
- Discord.js Guide or An Idiot's Guide - Discord.js Bot Guides
▷ React
- OpenChakra or Plate - React Code Editors
- ReactBits, React Suite / GitHub, 21st / GitHub or Radix UI / GitHub - React Components
- Mantine - Components and Templates / GitHub
- Bulletproof React - React App Architecture
- Refine - React App Builders
- Alright - Generate React Apps
- Codux - Visual IDE for React
- React SVG - Convert SVG to React Components
- Zorm - Type-Safe Form for React
- Million - React Replacement
- novu - Real-Time React Notifications / GitHub
- React Use or UseHooks - React Hooks
- React Query - Fetch, Cache and Update React Data / GitHub
- MMKV - React Key / Value Storage
- Vision Camera - React Camera Support / GitHub
- React PDF - Create PDFs in React
- react-spring - React Spring Animations
- Create React App - Set Up React Web Apps / GitHub
- Codebases - Collection of Projects Written in React
▷ PHP
- 🌐 Awesome PHP - PHP Resources
- XAMPP - PHP Development Environment
- Clean Code PHP - Clean Code for PHP
- Valinor / GitHub - PHP Object Mapper
- Spatie / GitHub or 3v4l - Run PHP Concurrently
► Web Dev Tools
- 🌐 Website Creation Resources - Web Dev Resources
- 🌐 Awesome Tunneling - Tunneling Resources
- 🌐 Awesome list of secrets in environment variables - Environment Variables Secrets
- 🌐 Frontend Developers or Web Dev / Programming YouTube Channels - Web Dev YouTube Channel Indexes
- ↪️ Site Mockups
- ↪️ Archive / Scrape / Crawl Web Pages
- ⭐ Ray.st or Wappalyzer - Identify Technologies on Websites / Addons
- ⭐ GoAccess - Web Log Analyzer / GitHub
- ⭐ Formulaer, Tally, FormBricks, Formshare, Deformity or Stylr - Form Builders
- DataNodes - Webmasters Only File Host / Discord
- Website Planet Tools, Browserling Tools or WebCode - Site Development Tools
- shadcn-ui or shadcn-svelte - Web Component Libraries
- Web Developer - Web Developer Toolbar Extension
- GoatCounter, Rybbit or Umami - Site Analytics
- ElasticSearch - Search & Analytics Engine / GitHub
- Tabler - Site Admin Dashboard
- Octopus - Site Planning Tool
- WireFlow - Flow Prototype Maker
- Web Dev Checklist - Things to Remember for Web Devs
- Dagu - WebUI Job Manager / GitHub
- QuickEmailVerification, Email Marker or ZeroBounce - Email Validation Services
- Plow - HTTP Benchmarking
- http-server - No Config HTTP Server
- Apache - HTTP Server
- Observatory - HTTP Header Security Test
- Transform - Polyglot Web Converter
- BuiltWith - Find Out What Sites are Built With
- LibreCaptcha or mCaptcha - Privacy-Based Captcha Systems
- Media Chrome - Media Player Elements / GitHub
- OneLinePlayer - Vimeo / Dropbox Video Player
- Motion - Animation Library
- LDRS - Loading Animations
- Medusa - Digital Commerce Development Tool
- Can I Use? - Browser Support Tables
- Shuttle / GitHub or PocketBase / GitHub - Open-Source Backend Platforms
- Cloudflare Radar - Cloudflare Insights
- Check for Cloudflare - Check Sites for Cloudflare
- Caddy - Web Server
- Directory Lister - Web-based Directory Listing
- BawkBox - Website Widgets
- The SSO Wall of Shame - Vendors without Built-in SSO
- Remarkbox or HTML Comment Box - Site Comment Systems
- Typebot - Embedded Chat App
- Microlink SDK / GitHub, React Tiny Link / GitHub or Link Preview JS - Create Link Previews
- CORS Proxy - Free CORS Proxy
- frp, GoDoxy or YARP - Reverse Proxies
- WhatPWACanDo - PWA Examples
- Selenium, CopyCat, PlayWright or Huginn - Browser Automation
- Automa or Browserflow - Browser Automation Extensions
- PWABuilder - Turn Site into Progressive Web App
- Chaos Frontend Toolkit - Break Your Web Apps to Improve Them
- LocalHost - Connect Web Apps to Internet
- Shiki, tailspin or Sight - Syntax Highlighters
- ngrok - Introspectable Tunnels to Localhost Tools
- Bore - TCP Tunnel to Expose Servers Local Ports
- NConfig - Server Config
- Nginx-Admins-Handbook - Improve NGINX Performance
- Null PHP Script - Nulled Scripts
▷ Website Generators
- 🌐 Awesome Static Generators / GitHub or Jamstack Generators - Lists of Static Website Generators / Frameworks
- ⭐ Hugo or vitepress - Static Website Generators
- ⭐ Docusaurus, retype / GitHub, Zola, Jekyll or docsify - Static Markdown Website Generators
- Feather Wiki - Extensible Website Generator
- SouPalt - Static Website Generator with HTML Element Tree
- Barely - Python Static Website Generator
- Vvveb, Universe, Google Sites, GrapeDrop or Odoo - Drag & Drop Website Builders
- Tails - Tailwind CSS Website Builder
- 8b - Simple Online Website Builder
- Potion - Notion Website Builder
- Odie - Make Webpages out of Google Docs
- ProjectVisBug - Webpage Editor
- Anvil or Lowdefy - Web App Creators
▷ Color Schemes
- 🌐 Colorful - Color Scheme Resources
- ↪️ Color Palette Generators
- ↪️ Color Pickers
- ⭐ ColorHexa - Color Hex Encyclopedia
- ⭐ Realtime Colors - Preview Color Palettes
- ⭐ Color & Contrast - Color / Contrast Guide
- Colors & Fonts - Quickly Copy Colors
- Khroma or Paletton - Color Scheme Designers
- Palettte - Color Palette Editor
- Colouris - Color Model Conversions
- PaletteGenerator or Alwane - Color Palette Extractor
- Colorable / GitHub, color.review, accessible-color-matrix or Accessible Brand Colors - Accessible Color Pallette Builders
- Color Oracle, WhoCanUse or Toptal - Color Blindness Simulator / Tests
- Simpler Color - Create Web Color System
- Stylify Me - Extract Webpage Colors
- ColorZilla - Color Picker, Gradient Generator & more
- uiGradients - Hex Gradients
- MakeTintAndShade - Tint and Shade Generator
- Alphredo - Create Translucent Colors
- Contrast Checker or Colour Contrast - Background / Text Contrast Checkers
▷ Frontend Tools
- 🌐 Awesome Design Systems - UI Design Systems / Libraries
- 🌐 Awesome Web Animation - Web Animation Resources
- ↪️ Design Resources or Open Source Design
- ⭐ Design Checklist, Performance Checklist or Front-End Checklist - Frontend Development Checklist
- ⭐ ThemeWagon or Tooplate - Free HTML Templates
- ⭐ Boilerplate, html5up or TEMPLATED - Custom HTML Templates
- Templatemo or Free CSS - Free CSS Templates
- Repth Themes - Y2K Anime Themes
- Aspect or OpenUI - Make UI with AI
- Contentdrips or CreatorKit - Brand Design Tools
- SuperNova - Design System Manager
- Interplay - Product Design Tool
- CollectUI, Hoverstat, httpster, Wave Guide, Godly Website, ReallyGoodUX or Pageflows - UI / Site Design Ideas
- StoryBook, Akira or Mockend - UI Development Tools
- UI Design Daily or UIVerse - Free UI Design Resources
- Open UI - Open Standard UI
- Same.dev - Copy Sites User-Interface Code
- CodeMyUI or Semantic UI - User Interface Code Snippets
- Icon Shelf - Icon Manager
- Favicon Maker or Favicon Generator - Create Favicons
- Icon Horse, favicon-hash or Favicone - Download a Sites Favicon / Note
- Meta-Mapper - Website Metadata Thumbnails
- SREWorks - Operation & Maintenance Platform
- the component gallery - Design Components Gallery
- Scrollbar.app - Design Custom Scrollbars
- LogoTaco - Project Logos
- Emanote - Create Sites from Plain-Text Notes / GitHub
- Plunker or Bloo - Prototype / Test Websites Idea
- WebDesignMuseum - Website Designs Over Time
- Bootstrap - Mobile Site Creator / Icons / Snippets / UI Components / Templates, 2
- PsdRepo - Templates, Mockups, Logos, Videos
- Daft Page - Landing Page Creator
- LandingPage - Landing Page Tool Index
- SaaS Pages, SaaS Landing Page or lapa - Landing Page Templates / Ideas
- Zeplin - Design Templates / Editor
- vite or layoutit - Frontend Development Tools
- Frontend Development - Frontend Development Resources
- BoxCoding, UI Beats or MagicUI - UI Components
- Hydrogen - Online Store Templates
- CSS Bed - Classless CSS Templates / GitHub
- Beer CSS - Lightweight CSS Framework / GitHub
- RoughAnnotations - Webpage Annotations / Animations
- Lorem.space, dummyimage, Placeholdifier, PlaceHolder, PicSum or FakeIMG - Site Placeholder Images
- Visiwig - Copy / Paste Site Graphics
- WebDesigner, T3, Theatre.js / GitHub, GSAP, Stylie, RenderForest, Mantra or Lottielab - Create Motion Graphics
- useAnimations or LordIcon - Animated Icons
- NakerApp - Interactive Background Maker
- HTTP Cats - Put Cat Pictures in Your Status Codes
▷ Hosting Tools
- 🌐 Awesome Cloudflare - Cloudflare Resources
- 🌐 VPS Comparison Chart or Bitcoin VPS - VPS Comparisons
- ↪️ Free Webhosting Sites
- ↪️ Domain Tools
- ⭐ Check-Host, StatPing, Uptime, Uptime Kuma, Highlight, AreWeDown?, UptimeRobot or 24x7 - Site / Server Uptime Monitors
- ⭐ TLD-List, TLDES or SitePriace - Domain Price Comparisons
- GoodBadISPs - Best ISPs for Tor Hosting
- Server Hunter or ServerSearcher - Search / Compare Servers
- srvrlss - Search / Compare Serverless Platforms
- Host-Tracker or OONI - Check Site Location Availability / Bypass Paywall
- OpenPanel / GitHub, Sentora or Moonlight - Web Hosting Panels
- GetDeploying - Compare Cloud Providers
- Meta Tag Gen, OpenGraph or MetaTags - Meta Tag Generators
- DNForum - Domain Name Forum
- HaveIBeenSquatted - Typosquatting Discovery Tool
- iana, arin, lacnic, afrinic or apnic - Internet Registry Sites
- takingnames, GetFreeDomain or EU.org / 2 - Free Subdomains
- TheDev - Free Developer Subdomains
- is-a.dev or JS.ORG - Developer Homepages
- Homepage / GitHub, CasaOS / GitHub, Flame, Homer or Dashy / GitHub - Home Server Startpages
- redirect.name - URL Forwarding
- Kener or cstate - Self-Hosted Status Pages
- Sandstorm, Cosmos or CloudRon - Web App Hosts
- vichan / GitHub or overscript - Imageboard Hosting
- ProBoards - Forum & Imageboard Hosting
- MyBB, FreeFlarum or PHPBB - Forum Hosting
- WikiDocs / GitHub, Media Wiki, xWiki, DokuWiki, Miraheze, wikmd or Fandom - Host Free Wiki
- HumHub, HubZilla or scuttlebutt - Self-Hosted Social Network
- UNIT3D Community Edition - Private Tracker Hosting
▷ WordPress Tools
- ↪️ Wordpress Themes
- ⭐ GPLDL - Premium Themes / Plugins / 25 Monthly / Sign-Up Required
- ⭐ WPLocker or Weadown - Premium Themes / Plugins
- Babiato - Themes / Plugins Forum / Sign-Up Required
- WordPress Themes & Plugins - Themes / Telegram
- Visual CSS Editor - WordPress Site Designer
- LocalWP - WordPress Site Deployment Tools
- faustjs - WordPress Framework
- Timber - WordPress Theme Creator / GitHub
- KokoAnalytics - WordPress Analytics
- UUID Tools - UUID Generator
▷ Regex Tools
- Note - You can use AI chatbots like ChatGPT to create complex regex patterns more easily.
- 🌐 Awesome Regex - Regex Resources
- ⭐ Regex Vis, Regulex, Regexper - Regex Visualizer
- ⭐ RegexLearn, refrf.dev or learn-regex - Learn Regex
- ⭐ RegExr, Rubular or Regex101 - Regex Editors
- ⭐ grex or Regex Generator - Regex Generators
- RegexOne - Regex Practice
- iHateRegex - Regex Patterns
- Melody - Compile to Regex / GitHub
- PyRegex - Python Regex Playground
▷ Benchmark Tools
- 🌐 Awesome Accessibility - Accessibility Tools Index
- ⭐ LightTest, Yellow Lab Tools, PageSpeed, SpeedVitals, Geofetcher, GTmetrix or Websu - Test Webpage Speed
- ⭐ Geekflare Tools or Frontend Dogma - Site Benchmarking Tools
- LambDatest - Cross Browser Testing Cloud
- Accessibility Guide, Pa11y, Wave, Andi or A11ygator - Accessibility Evaluation Tools
- Accessibility Insights - Fix Accessibility Issues
- Accessibility Cheatsheet or A11Project - Site Accessibility Guidelines
- Web Vitals Leaderboard, CodSpeed or Lighthouse Metrics - Website Performance Tests
- Prometheus - Site Metrics / Setup
- Carbon Calculator - Estimate Sites Carbon Footprint
- UX Check - Site Heuristic Evaluation
- Testmail - Site Signup Test
- Responsive Viewer - Test Site on Multiple Screen Types / Chrome
- Responsively, ResponsiveTestTool, Responsivize or Am I Responsive - Website Responsiveness Tests
- LightHouse - Web App Performance Test
▷ Image Optimization
- ⭐ ImageMagick - Image Optimization / Scripts
- RIOT - Image Optimization
- YOGA - Image Optimization
- ImageFoo - Image Optimization
- tiny.pictures - Image Optimization
- Ihancer - Image Optimization
- Waifu2x - Image Optimization
- OxiPNG - PNG Optimization
- Crunch - PNG Optimization / Self-Hosted / No Sign-Up
▷ SVG Tools
- ↪️ SVG / Vector Images
- Method, SVG.wtf, Boxy SVG, Mossaik or SVG Viewer - SVG Editors / Viewers
- SVGFilters - SVG Filter Builder
- Crayon or SVGArtista - SVG Animation Tools
- SVGO or SVGCrop - SVG Optimization / GUI
- SVG Tutorial - Learn How to Code SVG Images
- SVGX - SVG Assets Manager
- Vector Express or Vector Magic - Vector Converters
- svgco or IMG to SVG - Image to SVG Converter
- SVG2JSX - SVG to JSX Converter
- Pattern Monster - SVG Pattern Generator
- Blobs - SVG Shape Generator
- Broider - Create Border Designs
- ShapeDivider - Make SVG Shape Divider
- SVG Path - SVG Path Visualizer
- svg-path-editor - SVG Path Editor
- Get Waves, Wavelry, SVGWave / GitHub or SVG Wave - SVG Wave Generators
- Blobmaker - SVG Blob Generator
- AutoTracer - Image Vectorizer
- JSLogo - Logo Interpreter
► Cybersecurity Tools
- ⭐ pyWhat - File Analyzer
- Open Source Security Software - Cybersecurity Software
- osquery or Nmap / Results - Security Monitors
- Canarytokens - Network Breach Check
- Nuclei / GitHub, Synk or NVD - Vulnerability Tracking / Scanning
- Zeek, Kismet, ntop or Sniffnet - Network Monitors
- Crowdsec - Crowd-Sourced Intrusion Detection / Prevention / GitHub
- BBRadar or BugBountyHunting - Bug Bounty Trackers
- X-Force Exchange - Security Threat Intelligence Platform
- OpenSCA-CLI - Composition Analysis for Third Party Components
- Unblob - Extraction Suite
- Security Onion Solutions, Wazuh or Snyk / GitHub - Site Security Monitor
- spur.us - Block VPNs / Proxies
- Greenbone - Vulnerability Management
- Evervault - Security / Compliance Infrastructure
- DarkVisitors - Autonomous Chatbots / Data Scraper List
- Al-Khaser - Anti-Malware Stress Test
- CVE Details - CVE Details
- AllSafe - Intentionally Vulnerable Android App
▷ Cybersecurity Indexes
- 🌐 Awesome Cyber Security - Cybersecurity Resources
- 🌐 Awesome CI/CD Security - CI/CD Security Resources
- 🌐 Awesome GPT Agents - Cybersecurity GPT Agent Index
- Advisory Database, ThreatFox, Exploit DB or Att&ck - Cybersecurity Defense Databases
- VirusShare, Bazaar, MalShare, URLhaus, PulseDive or Malpedia - Malware Search / Indexes
- ThreatMap or CyberMap - Live Malware Distribution Maps
- The Void - Software Incident Reports
- Rawsec's CyberSecurity Inventory - Cybersecurity Resources
- CybersecResources - Cybersecurity Resources / GitHub
- Awesome List - Cybersecurity Resources
- Cybersecurity-Resources - Cybersecurity Resources
- Infosec Resources - Cybersecurity Resources
- CyberSecTools - Cybersecurity Resources
- My Infosec Awesome - Infosec Resources
▷ Pen Testing
- 🌐 Awesome Pen Testing - Penetration Testing Resources
- 🌐 Awesome Hacking - Pentesting / Security Index
- Metasploit / Cheatsheet - Pentesting Framework
- MobileApp-Pentest-Cheatsheet - App Pentesting Cheatsheet
- Pentest Contracts - Security Contract Templates
- OSCP-Exam-Report-Template-Markdown - Offensive Security Exam Report Markdown / GitHub
- Kali NetHunter or AndroGuard - Penetration Testing / Forensics Apps
▷ DNS Tools
- ↪️ Free DNS Resolvers
- ⭐ mess with dns - Experiment with DNS
- DNS over HTTPS - Encrypted DNS Providers & Resources
- DNSPerf - DNS Provider Rankings
- GRC DNSBench - DNS Benchmark
- DNS Propagation - DNS Checker
- MXToolBox - MX Record Lookup Tool
- DNSDumpster, DNS Watch, DNSHistory or WhatsMyDNS - DNS Lookup / Security
- Web Check, NSLookup or dog - DNS Information Tools
- DuckDNS, FreeDNS, dynu, NoIP, myaddr, nsupdate / GitHub or Desec - Dynamic DNS Services
▷ Web Security
- WebAuthn - Web Authentication API - Demo
- Hydra - OAuth 2.0 Server / OpenID Connect Provider
- SuperTokens or Lucia - User Authentication
- ZAP - Web App Security Testing
- IP Intelligence, AbuseIPDB or Proxy Check - Proxy / VPN / Bad IP Detection
- Fail2Ban - Protect Servers from Brute Force Attacks
- Tempesta FW - DDoS / Web Attack Protection
- IPv6 Leak Test, Test-IPv6 or IPv6 Test - IPv6 Test
- How To Turn off IPv6 - Prevent IPv6 Leaks
▷ Encryption / Certificates
- ⭐ Awesome Cryptography - Cryptography Resources
- mitmproxy - Analyze and modify HTTPS traffic / OpenAPI Converter / GitHub
- HTTPToolkit - Intercept, Debug, and Mock HTTP(S)
- Mozilla SSL - SSL Configuration Generator
- Tailscale - Secure Network VPN
- SSLLabs - SSL Testing
- BadSSL - Test Clients Against Bad SSL Configs
- Hitch - SSL / TLS Proxy / GitHub
- Let's Encrypt or Certbot - Free TLS Certificates
- SSL for Free or ZeroSSL - Free SSL Certificates
- CertAlert - TLS/SSL Certificate Expiration Alerts
- acme.sh - Auto Issues / Certificate Renewal
- mkcert - Locally Trusted Development Certificates
- SSLMate CAA - CAA Record Helper
▷ Reverse Engineering
- 🌐 Reverse Engineering Resources or ReversingBits / GitHub - Reverse Engineering Resources
- 🌐 Awesome Malware Analysis - Malware Analysis Resources
- ⭐ GHIDRA - Reverse Engineering
- ⭐ x64dbg - Debugger for Reverse Engineering
- Radare - Free Reversing Toolkit / GitHub / Discord
- Rizin or Cutter - Reverse Engineering Framework
- Frida - Reverse Engineering
- Flare VM - Reverse Engineering Environment Setup Script
- ROP Emporium - Learn Return-Oriented Programming
- MSTG or DVIA-v2 - App Security Testing / Reverse Engineering
- Malimite - iOS / macOS Decompiler
- challenges.re - Reverse Engineer Code
- horsicq - File Type Identification Tools / GitHub
► Markup Tools
- ⭐ Markdown Guide - Guide for Markdown (.md)
- ⭐ generatedata.com - Generate Test Data in Markup Formats
- markup.rocks - Online Markup Editor
- Markup Validation Service - Validate Your Markup Language Structure
- YAMLine - Online YAML Tools / Converters
- yq - Portable YAML Processor / GitHub
- readme.so - Create README.md Files
- Tableconvert - Markdown / Code Converter
- Linkspector - Check Markdown Files for Dead Links
- Table Magic - Table to Markdown Converters
- Clipboard2Markdown - Text to Markdown Converter
- gd2md-html - Convert Google Doc to Markdown
- MarkItDown or GetMarkdown - File to Markdown Converter
- Quartz, Perlite or FlowerShow - Publish Markdown
- Markdown Tutorial - Interactive Markdown Tutorial
- emoji-cheat-sheet - Emoji Markdown Cheatsheet
▷ Markdown Editors
-
@ 04c915da:3dfbecc9
2025-03-13 19:39:28In much of the world, it is incredibly difficult to access U.S. dollars. Local currencies are often poorly managed and riddled with corruption. Billions of people demand a more reliable alternative. While the dollar has its own issues of corruption and mismanagement, it is widely regarded as superior to the fiat currencies it competes with globally. As a result, Tether has found massive success providing low cost, low friction access to dollars. Tether claims 400 million total users, is on track to add 200 million more this year, processes 8.1 million transactions daily, and facilitates $29 billion in daily transfers. Furthermore, their estimates suggest nearly 40% of users rely on it as a savings tool rather than just a transactional currency.
Tether’s rise has made the company a financial juggernaut. Last year alone, Tether raked in over $13 billion in profit, with a lean team of less than 100 employees. Their business model is elegantly simple: hold U.S. Treasuries and collect the interest. With over $113 billion in Treasuries, Tether has turned a straightforward concept into a profit machine.
Tether’s success has resulted in many competitors eager to claim a piece of the pie. This has triggered a massive venture capital grift cycle in USD tokens, with countless projects vying to dethrone Tether. Due to Tether’s entrenched network effect, these challengers face an uphill battle with little realistic chance of success. Most educated participants in the space likely recognize this reality but seem content to perpetuate the grift, hoping to cash out by dumping their equity positions on unsuspecting buyers before they realize the reality of the situation.
Historically, Tether’s greatest vulnerability has been U.S. government intervention. For over a decade, the company operated offshore with few allies in the U.S. establishment, making it a major target for regulatory action. That dynamic has shifted recently and Tether has seized the opportunity. By actively courting U.S. government support, Tether has fortified their position. This strategic move will likely cement their status as the dominant USD token for years to come.
While undeniably a great tool for the millions of users that rely on it, Tether is not without flaws. As a centralized, trusted third party, it holds the power to freeze or seize funds at its discretion. Corporate mismanagement or deliberate malpractice could also lead to massive losses at scale. In their goal of mitigating regulatory risk, Tether has deepened ties with law enforcement, mirroring some of the concerns of potential central bank digital currencies. In practice, Tether operates as a corporate CBDC alternative, collaborating with authorities to surveil and seize funds. The company proudly touts partnerships with leading surveillance firms and its own data reveals cooperation in over 1,000 law enforcement cases, with more than $2.5 billion in funds frozen.
The global demand for Tether is undeniable and the company’s profitability reflects its unrivaled success. Tether is owned and operated by bitcoiners and will likely continue to push forward strategic goals that help the movement as a whole. Recent efforts to mitigate the threat of U.S. government enforcement will likely solidify their network effect and stifle meaningful adoption of rival USD tokens or CBDCs. Yet, for all their achievements, Tether is simply a worse form of money than bitcoin. Tether requires trust in a centralized entity, while bitcoin can be saved or spent without permission. Furthermore, Tether is tied to the value of the US Dollar which is designed to lose purchasing power over time, while bitcoin, as a truly scarce asset, is designed to increase in purchasing power with adoption. As people awaken to the risks of Tether’s control, and the benefits bitcoin provides, bitcoin adoption will likely surpass it.
-
@ bbb5dda0:f09e2747
2025-01-13 12:16:00This is my first attempt of regularly reviewing my week (currently, week 2) and I want to take you along for it.
This week was one where I was rebooting after all the festivities, personal obligations and a bit of travel! First, I worked on getting back on some comments on my proposals on NIP-42 and the Transport Method Announcement NIP.
NIP-42 proposal
The responses to the proposal of the NIP-42 exstension confused me a bit, my interpretation of nip42 AUTH was both authentication and authoriziation. But as it turns out people only want authentication to be part of this NIP, which is understandable. I'm wondering what other structure should be used for authorization then. I thought this would be a great place because of the similar allow/disallow mechanism that applies to both authentication and authorization.
I get the argument that authorization would need to be handled somewhere else. In my case i want authorization by payment. meaning there is no Authentication, we don't care who it is.
I worked out this comment, to see what other options would come up. https://github.com/nostr-protocol/nips/pull/1609#issuecomment-2577243988
Evaluating current state Epoxy
It's been a little bit since I made any progress on epoxy, but this week i'm picking it back up. So i'm trying to see what my next steps on it will be. I thought first maybe i need to add the random delays, but that's in the bigger scheme of things a 'nice to have'. I should probably first work on fixing the nightmare that is unencrypted traffic. And for that, i need pubkey addressing to work properly.
Evaluating current state CI/CD
This week i met up with Auggie, who's quite knowledgable into CI/CD stuff. I think a cool short-term goal for myself is to get an automated build and publish of the epoxy docker container. That shouldn't be too hard to attain, but I needed to refresh my memory on what I last worked on for a bit.
I realized that that was a very hacky approach and i really want to know Auggie's perspective on it. I came across his comment on my blogpost about it which i'd missed earlier. My doubt is wether i should try to rebuild what CI/CD is from scratch, but nostr-native. Or should I strive to have something backwards-compatible and use existing GitHub/Gitea runners?
In our call we settled on trying to get the runner approach working and see how we go from there. I'd work out a GitHub action so we could upload artifacts to Blossom and he'd look into the inner workings of Gittea as he had worked on the stack before.
Blossom uploads GitHub action
I tried to move forward on the Blossom uploads on friday but got stuck on imports that would just not resolve on the github action (
ERR_PACKAGE_PATH_NOT_EXPORTED
). Long story short, I was just not bundling my build properly and (spoiler) worked this out on Monday.In short
Quite an alright week, ramping up my efforts now and i'm exited for what's coming. See you next week!
-
@ 000002de:c05780a7
2025-05-08 16:14:37Just an observation that makes me chuckle.
originally posted at https://stacker.news/items/974829
-
@ 23b0e2f8:d8af76fc
2025-01-08 18:17:52Necessário
- Um Android que você não use mais (a câmera deve estar funcionando).
- Um cartão microSD (opcional, usado apenas uma vez).
- Um dispositivo para acompanhar seus fundos (provavelmente você já tem um).
Algumas coisas que você precisa saber
- O dispositivo servirá como um assinador. Qualquer movimentação só será efetuada após ser assinada por ele.
- O cartão microSD será usado para transferir o APK do Electrum e garantir que o aparelho não terá contato com outras fontes de dados externas após sua formatação. Contudo, é possível usar um cabo USB para o mesmo propósito.
- A ideia é deixar sua chave privada em um dispositivo offline, que ficará desligado em 99% do tempo. Você poderá acompanhar seus fundos em outro dispositivo conectado à internet, como seu celular ou computador pessoal.
O tutorial será dividido em dois módulos:
- Módulo 1 - Criando uma carteira fria/assinador.
- Módulo 2 - Configurando um dispositivo para visualizar seus fundos e assinando transações com o assinador.
No final, teremos:
- Uma carteira fria que também servirá como assinador.
- Um dispositivo para acompanhar os fundos da carteira.
Módulo 1 - Criando uma carteira fria/assinador
-
Baixe o APK do Electrum na aba de downloads em https://electrum.org/. Fique à vontade para verificar as assinaturas do software, garantindo sua autenticidade.
-
Formate o cartão microSD e coloque o APK do Electrum nele. Caso não tenha um cartão microSD, pule este passo.
- Retire os chips e acessórios do aparelho que será usado como assinador, formate-o e aguarde a inicialização.
- Durante a inicialização, pule a etapa de conexão ao Wi-Fi e rejeite todas as solicitações de conexão. Após isso, você pode desinstalar aplicativos desnecessários, pois precisará apenas do Electrum. Certifique-se de que Wi-Fi, Bluetooth e dados móveis estejam desligados. Você também pode ativar o modo avião.\ (Curiosidade: algumas pessoas optam por abrir o aparelho e danificar a antena do Wi-Fi/Bluetooth, impossibilitando essas funcionalidades.)
- Insira o cartão microSD com o APK do Electrum no dispositivo e instale-o. Será necessário permitir instalações de fontes não oficiais.
- No Electrum, crie uma carteira padrão e gere suas palavras-chave (seed). Anote-as em um local seguro. Caso algo aconteça com seu assinador, essas palavras permitirão o acesso aos seus fundos novamente. (Aqui entra seu método pessoal de backup.)
Módulo 2 - Configurando um dispositivo para visualizar seus fundos e assinando transações com o assinador.
-
Criar uma carteira somente leitura em outro dispositivo, como seu celular ou computador pessoal, é uma etapa bastante simples. Para este tutorial, usaremos outro smartphone Android com Electrum. Instale o Electrum a partir da aba de downloads em https://electrum.org/ ou da própria Play Store. (ATENÇÃO: O Electrum não existe oficialmente para iPhone. Desconfie se encontrar algum.)
-
Após instalar o Electrum, crie uma carteira padrão, mas desta vez escolha a opção Usar uma chave mestra.
- Agora, no assinador que criamos no primeiro módulo, exporte sua chave pública: vá em Carteira > Detalhes da carteira > Compartilhar chave mestra pública.
-
Escaneie o QR gerado da chave pública com o dispositivo de consulta. Assim, ele poderá acompanhar seus fundos, mas sem permissão para movimentá-los.
-
Para receber fundos, envie Bitcoin para um dos endereços gerados pela sua carteira: Carteira > Addresses/Coins.
-
Para movimentar fundos, crie uma transação no dispositivo de consulta. Como ele não possui a chave privada, será necessário assiná-la com o dispositivo assinador.
- No assinador, escaneie a transação não assinada, confirme os detalhes, assine e compartilhe. Será gerado outro QR, desta vez com a transação já assinada.
- No dispositivo de consulta, escaneie o QR da transação assinada e transmita-a para a rede.
Conclusão
Pontos positivos do setup:
- Simplicidade: Basta um dispositivo Android antigo.
- Flexibilidade: Funciona como uma ótima carteira fria, ideal para holders.
Pontos negativos do setup:
- Padronização: Não utiliza seeds no padrão BIP-39, você sempre precisará usar o electrum.
- Interface: A aparência do Electrum pode parecer antiquada para alguns usuários.
Nesse ponto, temos uma carteira fria que também serve para assinar transações. O fluxo de assinar uma transação se torna: Gerar uma transação não assinada > Escanear o QR da transação não assinada > Conferir e assinar essa transação com o assinador > Gerar QR da transação assinada > Escanear a transação assinada com qualquer outro dispositivo que possa transmiti-la para a rede.
Como alguns devem saber, uma transação assinada de Bitcoin é praticamente impossível de ser fraudada. Em um cenário catastrófico, você pode mesmo que sem internet, repassar essa transação assinada para alguém que tenha acesso à rede por qualquer meio de comunicação. Mesmo que não queiramos que isso aconteça um dia, esse setup acaba por tornar essa prática possível.
-
@ 000002de:c05780a7
2025-05-08 14:55:34There are so many projects in the bitcoin space that deserve praise but I just wanna shout out Cashu.me. Its a browser based cashu (eCash / Lighting) wallet. It can be very handy when you need a wallet but don't wanna download yet another app. I hadn't used it in a very long time and decided to try it out again the other day. Its really well done.
As with other Cashu wallets you need to select a mint and backup your key phrase but it is very simple the get started.
If you wanna learn more about Cashu check out Cashu.space
Two other good wallets that support Cashu.
originally posted at https://stacker.news/items/974759
-
@ 5d4b6c8d:8a1c1ee3
2025-05-08 01:22:05I've been thinking about how Predyx and other lightning based prediction markets might finance their operations, without undermining their core function of eliciting information from people.
The standard approach, of offering less-than-fair odds, guarantees long-run profitability (as long as you have enough customers), but it also creates a friction for participants that reduces the information value of their transactions. So, what are some less frictiony options for generating revenue?
Low hanging fruit
- Close markets in real-time: Rather than prespecifying a closing time for some markets, like sports, it's better to close the market at the moment the outcome is realized. This both prevents post hoc transactions and enables late stage transactions. This should be easily automatable (I say as someone with no idea how to do that), with the right resolution criteria.
- Round off shares: Shares and sats are discrete, so just make sure any necessary rounding is always in the house's favor.
- Set initial probabilities well: Use whatever external information is available to open markets as near to the "right" value as possible.
- Arbitrage: whenever markets are related to each other, make sure to resolve any illogical odds automatically
The point of these four is to avoid giving away free sats. None of them reduce productive use of the market. Keeping markets open up until the outcome is realized will probably greatly increase the number of transactions, since that's usually when the most information is coming in.
Third party support
- Ads are the most obvious form of third party revenue
- Sponsorships are the more interesting one: Allow sponsors to boost a market's visibility. This is similar to advertising, but it also capitalizes on the possibility of a market being of particular interest to someone.
- Charge for market creation: users should be able to create new markets (this will also enhance trade quantity and site traffic), but it should be costly to create a market. If prediction markets really provide higher quality information, then it's reasonable to charge for it.
- Arbitrage: Monitor external odds and whenever a gain can be locked in, place the bets (buy the shares) that guarantee a gain.
Bitcoin stuff
- Routing fees: The volume of sats moving into, out of, and being held in these markets will require a fairly large lightning node. Following some helpful tips to optimize fee revenue will generate some sats for logistical stuff that had to be done anyway.
- Treasury strategy: Take out loans against the revenue generated from all of the above and buy bitcoin: NGU -> repay with a fraction of the bitcoin, NGD -> repay with site revenue.
Bitcoin and Lightning Competitive Advantages
These aren't revenue ideas. They're just a couple of advantages lightning and bitcoin provide over fiat that should allow charging lower spreads than a traditional prediction market or sportsbook.
Traditional betting or prediction platforms are earning depreciating fiat, while a bitcoin based platform earns appreciating bitcoin. Traditional spreads must therefor be larger, in order to pull in the same real return. This also means the users' odds are worse on fiat platforms (again in real terms), even if the listed odds are the same, because their winnings will have depreciated by the time they receive them. Technically, this opens an opportunity to charge even higher spreads, but as mentioned in the intro, that would be bad for the information purposes of the market.
Lightning has much lower transactions costs than fiat transactions. So, even with tighter spreads, a lightning platform can net a better (nominal) return per transaction.
@mega_dreamer, I imagine most of those ideas were already on y'all's radar, and obviously you're already doing some, but I wanted to get them out of my head and onto digital paper. Hopefully, some of this will provide some useful food for thought.
originally posted at https://stacker.news/items/974372
-
@ 3f770d65:7a745b24
2024-12-31 17:03:46Here are my predictions for Nostr in 2025:
Decentralization: The outbox and inbox communication models, sometimes referred to as the Gossip model, will become the standard across the ecosystem. By the end of 2025, all major clients will support these models, providing seamless communication and enhanced decentralization. Clients that do not adopt outbox/inbox by then will be regarded as outdated or legacy systems.
Privacy Standards: Major clients such as Damus and Primal will move away from NIP-04 DMs, adopting more secure protocol possibilities like NIP-17 or NIP-104. These upgrades will ensure enhanced encryption and metadata protection. Additionally, NIP-104 MLS tools will drive the development of new clients and features, providing users with unprecedented control over the privacy of their communications.
Interoperability: Nostr's ecosystem will become even more interconnected. Platforms like the Olas image-sharing service will expand into prominent clients such as Primal, Damus, Coracle, and Snort, alongside existing integrations with Amethyst, Nostur, and Nostrudel. Similarly, audio and video tools like Nostr Nests and Zap.stream will gain seamless integration into major clients, enabling easy participation in live events across the ecosystem.
Adoption and Migration: Inspired by early pioneers like Fountain and Orange Pill App, more platforms will adopt Nostr for authentication, login, and social systems. In 2025, a significant migration from a high-profile application platform with hundreds of thousands of users will transpire, doubling Nostr’s daily activity and establishing it as a cornerstone of decentralized technologies.
-
@ e97aaffa:2ebd765d
2024-12-31 16:47:12Último dia do ano, momento para tirar o pó da bola de cristal, para fazer reflexões, previsões e desejos para o próximo ano e seguintes.
Ano após ano, o Bitcoin evoluiu, foi ultrapassando etapas, tornou-se cada vez mais mainstream. Está cada vez mais difícil fazer previsões sobre o Bitcoin, já faltam poucas barreiras a serem ultrapassadas e as que faltam são altamente complexas ou tem um impacto profundo no sistema financeiro ou na sociedade. Estas alterações profundas tem que ser realizadas lentamente, porque uma alteração rápida poderia resultar em consequências terríveis, poderia provocar um retrocesso.
Código do Bitcoin
No final de 2025, possivelmente vamos ter um fork, as discussões sobre os covenants já estão avançadas, vão acelerar ainda mais. Já existe um consenso relativamente alto, a favor dos covenants, só falta decidir que modelo será escolhido. Penso que até ao final do ano será tudo decidido.
Depois dos covenants, o próximo foco será para a criptografia post-quantum, que será o maior desafio que o Bitcoin enfrenta. Criar uma criptografia segura e que não coloque a descentralização em causa.
Espero muito de Ark, possivelmente a inovação do ano, gostaria de ver o Nostr a furar a bolha bitcoinheira e que o Cashu tivesse mais reconhecimento pelos bitcoiners.
Espero que surjam avanços significativos no BitVM2 e BitVMX.
Não sei o que esperar das layer 2 de Bitcoin, foram a maior desilusão de 2024. Surgiram com muita força, mas pouca coisa saiu do papel, foi uma mão cheia de nada. Uma parte dos projetos caiu na tentação da shitcoinagem, na criação de tokens, que tem um único objetivo, enriquecer os devs e os VCs.
Se querem ser levados a sério, têm que ser sérios.
“À mulher de César não basta ser honesta, deve parecer honesta”
Se querem ter o apoio dos bitcoiners, sigam o ethos do Bitcoin.
Neste ponto a atitude do pessoal da Ark é exemplar, em vez de andar a chorar no Twitter para mudar o código do Bitcoin, eles colocaram as mãos na massa e criaram o protocolo. É claro que agora está meio “coxo”, funciona com uma multisig ou com os covenants na Liquid. Mas eles estão a criar um produto, vão demonstrar ao mercado que o produto é bom e útil. Com a adoção, a comunidade vai perceber que o Ark necessita dos covenants para melhorar a interoperabilidade e a soberania.
É este o pensamento certo, que deveria ser seguido pelos restantes e futuros projetos. É seguir aquele pensamento do J.F. Kennedy:
“Não perguntem o que é que o vosso país pode fazer por vocês, perguntem o que é que vocês podem fazer pelo vosso país”
Ou seja, não fiquem à espera que o bitcoin mude, criem primeiro as inovações/tecnologia, ganhem adoção e depois demonstrem que a alteração do código camada base pode melhorar ainda mais o vosso projeto. A necessidade é que vai levar a atualização do código.
Reservas Estratégicas de Bitcoin
Bancos centrais
Com a eleição de Trump, emergiu a ideia de uma Reserva Estratégia de Bitcoin, tornou este conceito mainstream. Foi um pivot, a partir desse momento, foram enumerados os políticos de todo o mundo a falar sobre o assunto.
A Senadora Cynthia Lummis foi mais além e propôs um programa para adicionar 200 mil bitcoins à reserva ao ano, até 1 milhão de Bitcoin. Só que isto está a criar uma enorme expectativa na comunidade, só que pode resultar numa enorme desilusão. Porque no primeiro ano, o Trump em vez de comprar os 200 mil, pode apenas adicionar na reserva, os 198 mil que o Estado já tem em sua posse. Se isto acontecer, possivelmente vai resultar numa forte queda a curto prazo. Na minha opinião os bancos centrais deveriam seguir o exemplo de El Salvador, fazer um DCA diário.
Mais que comprar bitcoin, para mim, o mais importante é a criação da Reserva, é colocar o Bitcoin ao mesmo nível do ouro, o impacto para o resto do mundo será tremendo, a teoria dos jogos na sua plenitude. Muitos outros bancos centrais vão ter que comprar, para não ficarem atrás, além disso, vai transmitir uma mensagem à generalidade da população, que o Bitcoin é “afinal é algo seguro, com valor”.
Mas não foi Trump que iniciou esta teoria dos jogos, mas sim foi a primeira vítima dela. É o próprio Trump que o admite, que os EUA necessitam da reserva para não ficar atrás da China. Além disso, desde que os EUA utilizaram o dólar como uma arma, com sanção contra a Rússia, surgiram boatos de que a Rússia estaria a utilizar o Bitcoin para transações internacionais. Que foram confirmados recentemente, pelo próprio governo russo. Também há poucos dias, ainda antes deste reconhecimento público, Putin elogiou o Bitcoin, ao reconhecer que “Ninguém pode proibir o bitcoin”, defendendo como uma alternativa ao dólar. A narrativa está a mudar.
Já existem alguns países com Bitcoin, mas apenas dois o fizeram conscientemente (El Salvador e Butão), os restantes têm devido a apreensões. Hoje são poucos, mas 2025 será o início de uma corrida pelos bancos centrais. Esta corrida era algo previsível, o que eu não esperava é que acontecesse tão rápido.
Empresas
A criação de reservas estratégicas não vai ficar apenas pelos bancos centrais, também vai acelerar fortemente nas empresas em 2025.
Mas as empresas não vão seguir a estratégia do Saylor, vão comprar bitcoin sem alavancagem, utilizando apenas os tesouros das empresas, como uma proteção contra a inflação. Eu não sou grande admirador do Saylor, prefiro muito mais, uma estratégia conservadora, sem qualquer alavancagem. Penso que as empresas vão seguir a sugestão da BlackRock, que aconselha um alocações de 1% a 3%.
Penso que 2025, ainda não será o ano da entrada das 6 magníficas (excepto Tesla), será sobretudo empresas de pequena e média dimensão. As magníficas ainda tem uma cota muito elevada de shareholders com alguma idade, bastante conservadores, que têm dificuldade em compreender o Bitcoin, foi o que aconteceu recentemente com a Microsoft.
Também ainda não será em 2025, talvez 2026, a inclusão nativamente de wallet Bitcoin nos sistema da Apple Pay e da Google Pay. Seria um passo gigante para a adoção a nível mundial.
ETFs
Os ETFs para mim são uma incógnita, tenho demasiadas dúvidas, como será 2025. Este ano os inflows foram superiores a 500 mil bitcoins, o IBIT foi o lançamento de ETF mais bem sucedido da história. O sucesso dos ETFs, deve-se a 2 situações que nunca mais se vão repetir. O mercado esteve 10 anos à espera pela aprovação dos ETFs, a procura estava reprimida, isso foi bem notório nos primeiros meses, os inflows foram brutais.
Também se beneficiou por ser um mercado novo, não existia orderbook de vendas, não existia um mercado interno, praticamente era só inflows. Agora o mercado já estabilizou, a maioria das transações já são entre clientes dos próprios ETFs. Agora só uma pequena percentagem do volume das transações diárias vai resultar em inflows ou outflows.
Estes dois fenómenos nunca mais se vão repetir, eu não acredito que o número de inflows em BTC supere os número de 2024, em dólares vai superar, mas em btc não acredito que vá superar.
Mas em 2025 vão surgir uma infindável quantidade de novos produtos, derivativos, novos ETFs de cestos com outras criptos ou cestos com ativos tradicionais. O bitcoin será adicionado em produtos financeiros já existentes no mercado, as pessoas vão passar a deter bitcoin, sem o saberem.
Com o fim da operação ChokePoint 2.0, vai surgir uma nova onda de adoção e de produtos financeiros. Possivelmente vamos ver bancos tradicionais a disponibilizar produtos ou serviços de custódia aos seus clientes.
Eu adoraria ver o crescimento da adoção do bitcoin como moeda, só que a regulamentação não vai ajudar nesse processo.
Preço
Eu acredito que o topo deste ciclo será alcançado no primeiro semestre, posteriormente haverá uma correção. Mas desta vez, eu acredito que a correção será muito menor que as anteriores, inferior a 50%, esta é a minha expectativa. Espero estar certo.
Stablecoins de dólar
Agora saindo um pouco do universo do Bitcoin, acho importante destacar as stablecoins.
No último ciclo, eu tenho dividido o tempo, entre continuar a estudar o Bitcoin e estudar o sistema financeiro, as suas dinâmicas e o comportamento humano. Isto tem sido o meu foco de reflexão, imaginar a transformação que o mundo vai sofrer devido ao padrão Bitcoin. É uma ilusão acreditar que a transição de um padrão FIAT para um padrão Bitcoin vai ser rápida, vai existir um processo transitório que pode demorar décadas.
Com a re-entrada de Trump na Casa Branca, prometendo uma política altamente protecionista, vai provocar uma forte valorização do dólar, consequentemente as restantes moedas do mundo vão derreter. Provocando uma inflação generalizada, gerando uma corrida às stablecoins de dólar nos países com moedas mais fracas. Trump vai ter uma política altamente expansionista, vai exportar dólares para todo o mundo, para financiar a sua própria dívida. A desigualdade entre os pobres e ricos irá crescer fortemente, aumentando a possibilidade de conflitos e revoltas.
“Casa onde não há pão, todos ralham e ninguém tem razão”
Será mais lenha, para alimentar a fogueira, vai gravar os conflitos geopolíticos já existentes, ficando as sociedade ainda mais polarizadas.
Eu acredito que 2025, vai haver um forte crescimento na adoção das stablecoins de dólares, esse forte crescimento vai agravar o problema sistémico que são as stablecoins. Vai ser o início do fim das stablecoins, pelo menos, como nós conhecemos hoje em dia.
Problema sistémico
O sistema FIAT não nasceu de um dia para outro, foi algo que foi construído organicamente, ou seja, foi evoluindo ao longo dos anos, sempre que havia um problema/crise, eram criadas novas regras ou novas instituições para minimizar os problemas. Nestes quase 100 anos, desde os acordos de Bretton Woods, a evolução foram tantas, tornaram o sistema financeiro altamente complexo, burocrático e nada eficiente.
Na prática é um castelo de cartas construído sobre outro castelo de cartas e que por sua vez, foi construído sobre outro castelo de cartas.
As stablecoins são um problema sistémico, devido às suas reservas em dólares e o sistema financeiro não está preparado para manter isso seguro. Com o crescimento das reservas ao longo dos anos, foi se agravando o problema.
No início a Tether colocava as reservas em bancos comerciais, mas com o crescimento dos dólares sob gestão, criou um problema nos bancos comerciais, devido à reserva fracionária. Essas enormes reservas da Tether estavam a colocar em risco a própria estabilidade dos bancos.
A Tether acabou por mudar de estratégia, optou por outros ativos, preferencialmente por títulos do tesouro/obrigações dos EUA. Só que a Tether continua a crescer e não dá sinais de abrandamento, pelo contrário.
Até o próprio mundo cripto, menosprezava a gravidade do problema da Tether/stablecoins para o resto do sistema financeiro, porque o marketcap do cripto ainda é muito pequeno. É verdade que ainda é pequeno, mas a Tether não o é, está no top 20 dos maiores detentores de títulos do tesouros dos EUA e está ao nível dos maiores bancos centrais do mundo. Devido ao seu tamanho, está a preocupar os responsáveis/autoridades/reguladores dos EUA, pode colocar em causa a estabilidade do sistema financeiro global, que está assente nessas obrigações.
Os títulos do tesouro dos EUA são o colateral mais utilizado no mundo, tanto por bancos centrais, como por empresas, é a charneira da estabilidade do sistema financeiro. Os títulos do tesouro são um assunto muito sensível. Na recente crise no Japão, do carry trade, o Banco Central do Japão tentou minimizar a desvalorização do iene através da venda de títulos dos EUA. Esta operação, obrigou a uma viagem de emergência, da Secretaria do Tesouro dos EUA, Janet Yellen ao Japão, onde disponibilizou liquidez para parar a venda de títulos por parte do Banco Central do Japão. Essa forte venda estava desestabilizando o mercado.
Os principais detentores de títulos do tesouros são institucionais, bancos centrais, bancos comerciais, fundo de investimento e gestoras, tudo administrado por gestores altamente qualificados, racionais e que conhecem a complexidade do mercado de obrigações.
O mundo cripto é seu oposto, é naife com muita irracionalidade e uma forte pitada de loucura, na sua maioria nem faz a mínima ideia como funciona o sistema financeiro. Essa irracionalidade pode levar a uma “corrida bancária”, como aconteceu com o UST da Luna, que em poucas horas colapsou o projeto. Em termos de escala, a Luna ainda era muito pequena, por isso, o problema ficou circunscrito ao mundo cripto e a empresas ligadas diretamente ao cripto.
Só que a Tether é muito diferente, caso exista algum FUD, que obrigue a Tether a desfazer-se de vários biliões ou dezenas de biliões de dólares em títulos num curto espaço de tempo, poderia provocar consequências terríveis em todo o sistema financeiro. A Tether é grande demais, é já um problema sistémico, que vai agravar-se com o crescimento em 2025.
Não tenham dúvidas, se existir algum problema, o Tesouro dos EUA vai impedir a venda dos títulos que a Tether tem em sua posse, para salvar o sistema financeiro. O problema é, o que vai fazer a Tether, se ficar sem acesso às venda das reservas, como fará o redeem dos dólares?
Como o crescimento do Tether é inevitável, o Tesouro e o FED estão com um grande problema em mãos, o que fazer com o Tether?
Mas o problema é que o atual sistema financeiro é como um curto cobertor: Quanto tapas a cabeça, destapas os pés; Ou quando tapas os pés, destapas a cabeça. Ou seja, para resolver o problema da guarda reservas da Tether, vai criar novos problemas, em outros locais do sistema financeiro e assim sucessivamente.
Conta mestre
Uma possível solução seria dar uma conta mestre à Tether, dando o acesso direto a uma conta no FED, semelhante à que todos os bancos comerciais têm. Com isto, a Tether deixaria de necessitar os títulos do tesouro, depositando o dinheiro diretamente no banco central. Só que isto iria criar dois novos problemas, com o Custodia Bank e com o restante sistema bancário.
O Custodia Bank luta há vários anos contra o FED, nos tribunais pelo direito a ter licença bancária para um banco com full-reserves. O FED recusou sempre esse direito, com a justificativa que esse banco, colocaria em risco toda a estabilidade do sistema bancário existente, ou seja, todos os outros bancos poderiam colapsar. Perante a existência em simultâneo de bancos com reserva fracionária e com full-reserves, as pessoas e empresas iriam optar pelo mais seguro. Isso iria provocar uma corrida bancária, levando ao colapso de todos os bancos com reserva fracionária, porque no Custodia Bank, os fundos dos clientes estão 100% garantidos, para qualquer valor. Deixaria de ser necessário limites de fundos de Garantia de Depósitos.
Eu concordo com o FED nesse ponto, que os bancos com full-reserves são uma ameaça a existência dos restantes bancos. O que eu discordo do FED, é a origem do problema, o problema não está nos bancos full-reserves, mas sim nos que têm reserva fracionária.
O FED ao conceder uma conta mestre ao Tether, abre um precedente, o Custodia Bank irá o aproveitar, reclamando pela igualdade de direitos nos tribunais e desta vez, possivelmente ganhará a sua licença.
Ainda há um segundo problema, com os restantes bancos comerciais. A Tether passaria a ter direitos similares aos bancos comerciais, mas os deveres seriam muito diferentes. Isto levaria os bancos comerciais aos tribunais para exigir igualdade de tratamento, é uma concorrência desleal. Isto é o bom dos tribunais dos EUA, são independentes e funcionam, mesmo contra o estado. Os bancos comerciais têm custos exorbitantes devido às políticas de compliance, como o KYC e AML. Como o governo não vai querer aliviar as regras, logo seria a Tether, a ser obrigada a fazer o compliance dos seus clientes.
A obrigação do KYC para ter stablecoins iriam provocar um terramoto no mundo cripto.
Assim, é pouco provável que seja a solução para a Tether.
FED
Só resta uma hipótese, ser o próprio FED a controlar e a gerir diretamente as stablecoins de dólar, nacionalizado ou absorvendo as existentes. Seria uma espécie de CBDC. Isto iria provocar um novo problema, um problema diplomático, porque as stablecoins estão a colocar em causa a soberania monetária dos outros países. Atualmente as stablecoins estão um pouco protegidas porque vivem num limbo jurídico, mas a partir do momento que estas são controladas pelo governo americano, tudo muda. Os países vão exigir às autoridades americanas medidas que limitem o uso nos seus respectivos países.
Não existe uma solução boa, o sistema FIAT é um castelo de cartas, qualquer carta que se mova, vai provocar um desmoronamento noutro local. As autoridades não poderão adiar mais o problema, terão que o resolver de vez, senão, qualquer dia será tarde demais. Se houver algum problema, vão colocar a responsabilidade no cripto e no Bitcoin. Mas a verdade, a culpa é inteiramente dos políticos, da sua incompetência em resolver os problemas a tempo.
Será algo para acompanhar futuramente, mas só para 2026, talvez…
É curioso, há uns anos pensava-se que o Bitcoin seria a maior ameaça ao sistema ao FIAT, mas afinal, a maior ameaça aos sistema FIAT é o próprio FIAT(stablecoins). A ironia do destino.
Isto é como uma corrida, o Bitcoin é aquele atleta que corre ao seu ritmo, umas vezes mais rápido, outras vezes mais lento, mas nunca pára. O FIAT é o atleta que dá tudo desde da partida, corre sempre em velocidade máxima. Só que a vida e o sistema financeiro não é uma prova de 100 metros, mas sim uma maratona.
Europa
2025 será um ano desafiante para todos europeus, sobretudo devido à entrada em vigor da regulamentação (MiCA). Vão começar a sentir na pele a regulamentação, vão agravar-se os problemas com os compliance, problemas para comprovar a origem de fundos e outras burocracias. Vai ser lindo.
O Travel Route passa a ser obrigatório, os europeus serão obrigados a fazer o KYC nas transações. A Travel Route é uma suposta lei para criar mais transparência, mas prática, é uma lei de controle, de monitorização e para limitar as liberdades individuais dos cidadãos.
O MiCA também está a colocar problemas nas stablecoins de Euro, a Tether para já preferiu ficar de fora da europa. O mais ridículo é que as novas regras obrigam os emissores a colocar 30% das reservas em bancos comerciais. Os burocratas europeus não compreendem que isto coloca em risco a estabilidade e a solvência dos próprios bancos, ficam propensos a corridas bancárias.
O MiCA vai obrigar a todas as exchanges a estar registadas em solo europeu, ficando vulnerável ao temperamento dos burocratas. Ainda não vai ser em 2025, mas a UE vai impor políticas de controle de capitais, é inevitável, as exchanges serão obrigadas a usar em exclusividade stablecoins de euro, as restantes stablecoins serão deslistadas.
Todas estas novas regras do MiCA, são extremamente restritas, não é para garantir mais segurança aos cidadãos europeus, mas sim para garantir mais controle sobre a população. A UE está cada vez mais perto da autocracia, do que da democracia. A minha única esperança no horizonte, é que o sucesso das políticas cripto nos EUA, vai obrigar a UE a recuar e a aligeirar as regras, a teoria dos jogos é implacável. Mas esse recuo, nunca acontecerá em 2025, vai ser um longo período conturbado.
Recessão
Os mercados estão todos em máximos históricos, isto não é sustentável por muito tempo, suspeito que no final de 2025 vai acontecer alguma correção nos mercados. A queda só não será maior, porque os bancos centrais vão imprimir dinheiro, muito dinheiro, como se não houvesse amanhã. Vão voltar a resolver os problemas com a injeção de liquidez na economia, é empurrar os problemas com a barriga, em de os resolver. Outra vez o efeito Cantillon.
Será um ano muito desafiante a nível político, onde o papel dos políticos será fundamental. A crise política na França e na Alemanha, coloca a UE órfã, sem um comandante ao leme do navio. 2025 estará condicionado pelas eleições na Alemanha, sobretudo no resultado do AfD, que podem colocar em causa a propriedade UE e o euro.
Possivelmente, só o fim da guerra poderia minimizar a crise, algo que é muito pouco provável acontecer.
Em Portugal, a economia parece que está mais ou menos equilibrada, mas começam a aparecer alguns sinais preocupantes. Os jogos de sorte e azar estão em máximos históricos, batendo o recorde de 2014, época da grande crise, não é um bom sinal, possivelmente já existe algum desespero no ar.
A Alemanha é o motor da Europa, quanto espirra, Portugal constipa-se. Além do problema da Alemanha, a Espanha também está à beira de uma crise, são os países que mais influenciam a economia portuguesa.
Se existir uma recessão mundial, terá um forte impacto no turismo, que é hoje em dia o principal motor de Portugal.
Brasil
Brasil é algo para acompanhar em 2025, sobretudo a nível macro e a nível político. Existe uma possibilidade de uma profunda crise no Brasil, sobretudo na sua moeda. O banco central já anda a queimar as reservas para minimizar a desvalorização do Real.
Sem mudanças profundas nas políticas fiscais, as reservas vão se esgotar. As políticas de controle de capitais são um cenário plausível, será interesse de acompanhar, como o governo irá proceder perante a existência do Bitcoin e stablecoins. No Brasil existe um forte adoção, será um bom case study, certamente irá repetir-se em outros países num futuro próximo.
Os próximos tempos não serão fáceis para os brasileiros, especialmente para os que não têm Bitcoin.
Blockchain
Em 2025, possivelmente vamos ver os primeiros passos da BlackRock para criar a primeira bolsa de valores, exclusivamente em blockchain. Eu acredito que a BlackRock vai criar uma própria blockchain, toda controlada por si, onde estarão os RWAs, para fazer concorrência às tradicionais bolsas de valores. Será algo interessante de acompanhar.
Estas são as minhas previsões, eu escrevi isto muito em cima do joelho, certamente esqueci-me de algumas coisas, se for importante acrescentarei nos comentários. A maioria das previsões só acontecerá após 2025, mas fica aqui a minha opinião.
Isto é apenas a minha opinião, Don’t Trust, Verify!
-
@ 21335073:a244b1ad
2025-03-12 00:40:25Before I saw those X right-wing political “influencers” parading their Epstein binders in that PR stunt, I’d already posted this on Nostr, an open protocol.
“Today, the world’s attention will likely fixate on Epstein, governmental failures in addressing horrific abuse cases, and the influential figures who perpetrate such acts—yet few will center the victims and survivors in the conversation. The survivors of Epstein went to law enforcement and very little happened. The survivors tried to speak to the corporate press and the corporate press knowingly covered for him. In situations like these social media can serve as one of the only ways for a survivor’s voice to be heard.
It’s becoming increasingly evident that the line between centralized corporate social media and the state is razor-thin, if it exists at all. Time and again, the state shields powerful abusers when it’s politically expedient to do so. In this climate, a survivor attempting to expose someone like Epstein on a corporate tech platform faces an uphill battle—there’s no assurance their voice would even break through. Their story wouldn’t truly belong to them; it’d be at the mercy of the platform, subject to deletion at a whim. Nostr, though, offers a lifeline—a censorship-resistant space where survivors can share their truths, no matter how untouchable the abuser might seem. A survivor could remain anonymous here if they took enough steps.
Nostr holds real promise for amplifying survivor voices. And if you’re here daily, tossing out memes, take heart: you’re helping build a foundation for those who desperately need to be heard.“
That post is untouchable—no CEO, company, employee, or government can delete it. Even if I wanted to, I couldn’t take it down myself. The post will outlive me on the protocol.
The cozy alliance between the state and corporate social media hit me hard during that right-wing X “influencer” PR stunt. Elon owns X. Elon’s a special government employee. X pays those influencers to post. We don’t know who else pays them to post. Those influencers are spurred on by both the government and X to manage the Epstein case narrative. It wasn’t survivors standing there, grinning for photos—it was paid influencers, gatekeepers orchestrating yet another chance to re-exploit the already exploited.
The bond between the state and corporate social media is tight. If the other Epsteins out there are ever to be unmasked, I wouldn’t bet on a survivor’s story staying safe with a corporate tech platform, the government, any social media influencer, or mainstream journalist. Right now, only a protocol can hand survivors the power to truly own their narrative.
I don’t have anything against Elon—I’ve actually been a big supporter. I’m just stating it as I see it. X isn’t censorship resistant and they have an algorithm that they choose not the user. Corporate tech platforms like X can be a better fit for some survivors. X has safety tools and content moderation, making it a solid option for certain individuals. Grok can be a big help for survivors looking for resources or support! As a survivor, you know what works best for you, and safety should always come first—keep that front and center.
That said, a protocol is a game-changer for cases where the powerful are likely to censor. During China's # MeToo movement, survivors faced heavy censorship on social media platforms like Weibo and WeChat, where posts about sexual harassment were quickly removed, and hashtags like # MeToo or "woyeshi" were blocked by government and platform filters. To bypass this, activists turned to blockchain technology encoding their stories—like Yue Xin’s open letter about a Peking University case—into transaction metadata. This made the information tamper-proof and publicly accessible, resisting censorship since blockchain data can’t be easily altered or deleted.
I posted this on X 2/28/25. I wanted to try my first long post on a nostr client. The Epstein cover up is ongoing so it’s still relevant, unfortunately.
If you are a survivor or loved one who is reading this and needs support please reach out to: National Sexual Assault Hotline 24/7 https://rainn.org/
Hours: Available 24 hours
-
@ 000002de:c05780a7
2025-05-06 20:24:08https://www.youtube.com/watch?v=CIMZH7DEPPQ
I really enjoy listening to non-technical people talk about technology when they get the bigger picture impacts and how it relates to our humanity.
I was reminded of this video by @k00b's post about an AI generated video of a victim forgiving his killer.
Piper says, "Computers are better at words than you. Than I". But they are machines. They cannot feel. They cannot have emotion.
This people honors me with their lips, but their heart is far from me
~ Matthew 15:8
Most of us hate it when people are fake with us. When they say things they don't mean. When they say things just to get something they want from us. Yet, we are quickly falling into this same trap with technology. Accepting it as real and human. I'm not suggesting we can't use technology but we have to be careful that we do not fall into this mechanical trap and forget what makes humans special.
We are emotional and spiritual beings. Though AI didn't exist during the times Jesus walked the earth read the verse above in a broader context.
Then Pharisees and scribes came to Jesus from Jerusalem and said, “Why do your disciples break the tradition of the elders? For they do not wash their hands when they eat.” He answered them, “And why do you break the commandment of God for the sake of your tradition? For God commanded, ‘Honor your father and your mother,’ and, ‘Whoever reviles father or mother must surely die.’ But you say, ‘If anyone tells his father or his mother, “What you would have gained from me is given to God,” he need not honor his father.’ So for the sake of your tradition you have made void the word of God. You hypocrites! Well did Isaiah prophesy of you, when he said:
“‘This people honors me with their lips,
but their heart is far from me;
in vain do they worship me,
teaching as doctrines the commandments of men.’”
Empty words. Words without meaning because they are not from a pure desire and love. You may not be a Christian but don't miss the significance of this. There is a value in being real. Sharing true emotion and heart. Don't fall into the trap of the culture of lies that surrounds us. I would rather hear true words with mistakes and less eloquence any day over something fake. I would rather share a real moment with the ones I love than a million fake moments. Embrace the messy imperfect but real world.
originally posted at https://stacker.news/items/973324
-
@ 4857600b:30b502f4
2025-03-10 12:09:35At this point, we should be arresting, not firing, any FBI employee who delays, destroys, or withholds information on the Epstein case. There is ZERO explanation I will accept for redacting anything for “national security” reasons. A lot of Trump supporters are losing patience with Pam Bondi. I will give her the benefit of the doubt for now since the corruption within the whole security/intelligence apparatus of our country runs deep. However, let’s not forget that probably Trump’s biggest mistakes in his first term involved picking weak and easily corruptible (or blackmailable) officials. It seemed every month a formerly-loyal person did a complete 180 degree turn and did everything they could to screw him over, regardless of the betrayal’s effect on the country or whatever principles that person claimed to have. I think he’s fixed his screening process, but since we’re talking about the FBI, we know they have the power to dig up any dirt or blackmail material available, or just make it up. In the Epstein case, it’s probably better to go after Bondi than give up a treasure trove of blackmail material against the long list of members on his client list.
-
@ 5d4b6c8d:8a1c1ee3
2025-05-06 19:49:39One of the best first rounds in recent memory just concluded. Let's recap our playoff contests.
Bracket Challenge
In our joint contest with Global Sports Central, @WeAreAllSatoshi is leading the way with 85 points, while me and some nostr jabroni are tied for second with 80 points.
The bad news is that they are slightly ahead of us, with an average score of 62 to our 60.8. We need to go back in time and make less stupid picks.
Points Challenge
With the Warriors victory, I jumped into a commanding lead over @grayruby. LA sure let most of you down. I say you hold @realBitcoinDog responsible for his beloved hometown's failures.
I still need @Car and @Coinsreporter to make their picks for this round. The only matchup they can choose from is Warriors (7) @ Timberwolves (6). Lucky for them, that's probably the best one to choose from.
| Stacker | Points | |---------|--------| | @Undisciplined | 25| | @grayruby | 24| | @Coinsreporter | 19 | | @BlokchainB | 19| | @Carresan | 18 | | @gnilma | 18 | | @WeAreAllSatoshi | 12 | | @fishious | 11 | | @Car | 1 |
originally posted at https://stacker.news/items/973284
-
@ 4925ea33:025410d8
2025-03-08 00:38:481. O que é um Aromaterapeuta?
O aromaterapeuta é um profissional especializado na prática da Aromaterapia, responsável pelo uso adequado de óleos essenciais, ervas aromáticas, águas florais e destilados herbais para fins terapêuticos.
A atuação desse profissional envolve diferentes métodos de aplicação, como inalação, uso tópico, sempre considerando a segurança e a necessidade individual do cliente. A Aromaterapia pode auxiliar na redução do estresse, alívio de dores crônicas, relaxamento muscular e melhora da respiração, entre outros benefícios.
Além disso, os aromaterapeutas podem trabalhar em conjunto com outros profissionais da saúde para oferecer um tratamento complementar em diversas condições. Como já mencionado no artigo sobre "Como evitar processos alérgicos na prática da Aromaterapia", é essencial ter acompanhamento profissional, pois os óleos essenciais são altamente concentrados e podem causar reações adversas se utilizados de forma inadequada.
2. Como um Aromaterapeuta Pode Ajudar?
Você pode procurar um aromaterapeuta para diferentes necessidades, como:
✔ Questões Emocionais e Psicológicas
Auxílio em momentos de luto, divórcio, demissão ou outras situações desafiadoras.
Apoio na redução do estresse, ansiedade e insônia.
Vale lembrar que, em casos de transtornos psiquiátricos, a Aromaterapia deve ser usada como terapia complementar, associada ao tratamento médico.
✔ Questões Físicas
Dores musculares e articulares.
Problemas respiratórios como rinite, sinusite e tosse.
Distúrbios digestivos leves.
Dores de cabeça e enxaquecas. Nesses casos, a Aromaterapia pode ser um suporte, mas não substitui a medicina tradicional para identificar a origem dos sintomas.
✔ Saúde da Pele e Cabelos
Tratamento para acne, dermatites e psoríase.
Cuidados com o envelhecimento precoce da pele.
Redução da queda de cabelo e controle da oleosidade do couro cabeludo.
✔ Bem-estar e Qualidade de Vida
Melhora da concentração e foco, aumentando a produtividade.
Estímulo da disposição e energia.
Auxílio no equilíbrio hormonal (TPM, menopausa, desequilíbrios hormonais).
Com base nessas necessidades, o aromaterapeuta irá indicar o melhor tratamento, calculando doses, sinergias (combinação de óleos essenciais), diluições e técnicas de aplicação, como inalação, uso tópico ou difusão.
3. Como Funciona uma Consulta com um Aromaterapeuta?
Uma consulta com um aromaterapeuta é um atendimento personalizado, onde são avaliadas as necessidades do cliente para a criação de um protocolo adequado. O processo geralmente segue estas etapas:
✔ Anamnese (Entrevista Inicial)
Perguntas sobre saúde física, emocional e estilo de vida.
Levantamento de sintomas, histórico médico e possíveis alergias.
Definição dos objetivos da terapia (alívio do estresse, melhora do sono, dores musculares etc.).
✔ Escolha dos Óleos Essenciais
Seleção dos óleos mais indicados para o caso.
Consideração das propriedades terapêuticas, contraindicações e combinações seguras.
✔ Definição do Método de Uso
O profissional indicará a melhor forma de aplicação, que pode ser:
Inalação: difusores, colares aromáticos, vaporização.
Uso tópico: massagens, óleos corporais, compressas.
Banhos aromáticos e escalda-pés. Todas as diluições serão ajustadas de acordo com a segurança e a necessidade individual do cliente.
✔ Plano de Acompanhamento
Instruções detalhadas sobre o uso correto dos óleos essenciais.
Orientação sobre frequência e duração do tratamento.
Possibilidade de retorno para ajustes no protocolo.
A consulta pode ser realizada presencialmente ou online, dependendo do profissional.
Quer saber como a Aromaterapia pode te ajudar? Agende uma consulta comigo e descubra os benefícios dos óleos essenciais para o seu bem-estar!
-
@ c9badfea:610f861a
2025-05-13 00:23:34► Video Tools
- 🌐 Digital Video Intro - Digital Video Guides / Resources
- ↪️ AI Video Generators
- ⭐ Reincubate Camo - Use Any Camera as Webcam
- Deep-Live-Cam, Rope, SimSwap or Roop - Video Face Swap Tools
- VideoHelp Forum - All Things Media / Video
- ICAT - Video Quality Comparison & Analysis Tool
- videoduplicatefinder - Duplicate Video Finder
- VHS Decode - VHS Decoder
- VidClue - Short Form Video Inspiration
▷ Disc Utilities
- ImgBurn, DVDStyler, DeepBurner or Alcohol Soft - CD / DVD Burning
- MakeMKV - Create MKV From Blu-ray / DVD / Beta Keys
- VidCoder or DVDDecrypter - DVD / Blu-ray Ripping
- DGDemux - Blu-Ray/UHD Disk Demuxer
- PgcDemux - DVD Disk Demuxer
- BatchGuy - Blu-Ray Ripping
▷ Video File Hosts
- Note - Most file hosts remove files after inactivity, while some delete them regardless. Check each host if you're concerned about file expiry.
- ⭐ DoodStream - 5GB / 60 Days / Account Required
- ⭐ Litterbox - 1GB / 3 Days
- ⭐ Catbox - 200MB / Forever / Allows Hotlinking
- ⭐ Gofile - 100GB Monthly / 10 Days
- ⭐ Send.now - Unlimited / 30 Days
- Files.vc - Unlimited / 10GB / Forever / Discord
- VOE - Unlimited / 60 Days / 720p / Account Required
- MixDrop - Unlimited / 60 Days / 720p / Account Required
- FEX.NET - 100GB / 10GB Guest / 7 Days
- FileMoon, 2, 3 - 50GB / 40TB per account / Forever / Account Required
- Hexupload or AnonTransfer - 15GB / 30 Days
- Fastupload.io - 10GB / 30 Days (60 Days with Account)
- Vidoza - 15GB / 15 Days / Account Required
- Streamtape - 15GB / Account Required / .to
- Dubz - 100MB / Forever
- EarnVids
- Streamable - 250MB / 2 Days (90 Days with Account)
- uguu - 128MB / 3 Hours
- webmshare - WebM & GIF Hosting / 20MB / Forever
- Videy - 100MB / MP4 Only
▷ Screen Recording
- ⭐ OBS
- gifcap - Turn Screencasts into GIFs / GitHub
- Shinobi - Network Video Recorder
- MythTV - Digital Video Recorder (DVR)
- tldv or ZoomRec - Record Google Meets / Zoom Calls
- FFmpeg / Tools
- Vileo
- ShareX
- Screen Recorder
- vokoscreenNG
- Cap / GitHub
- Shar.ec - Online
- ScreenREC - Online
- ScreenRecorder.me - Online
- KazCap - Online
- RecordScreen - Online
- Google Screen Recorder - Online
▷ Processing / Encoding
- ⭐ HandBrake - Video Encoding Software / Guide
- ⭐ FFmpeg - Multimedia Processors / Converters / Tools
- ⭐ Shutter Encoder - Video Encoding Software / GitHub
- ⭐ MKVToolNix - MKV Editing Tools
- ⭐ archived-things, The Encoding Guide or Silentaperture - Video Encoding Guides
- ⭐ Disc Rip - Disc Ripping Guide / Mirror
- ⭐ Basics to the Art of Remuxing - Learn How to Remux Videos
- DDVT - Dolby Vision RPU Demuxing / Injecting / Editing
- MKV Muxing Batch GUI - Mux Videos
- staxrip - Video Encoding / Contact Sheet + Thumbnails Creator
- IFME - Video Encoding
- XMedia Recode - Video Conversion
- FastFlix - Video Conversion / GitHub
- NEAV1E or Av1an - AV1 Encoding
- Winnydows - Video Conversion Software
- sickbeard_mp4_automator - Automate Video Processing
- Seven Converter - Video Conversion / GitHub
- nmkoder - Media Encoding / Muxing
- selur - Video Encoding
- vvenc, vvdec or VVCEasy - VVC Encode / Decode
- Ingex - Tapeless (Uncompressed) Recording / Digital Tape Converter
▷ Online Processing
- Compress Video Online - Compress / Unlimited
- 8mb.video - Compress / 2GB
- autocompressor - Compress / 2GB
- Rotato - Compress / 2GB
- VideoSmaller - Compress / 500MB
- YouCompress - Compress / 500MB
- MP4Compress - Compress / 500MB
- VERT - Converter / Discord / GitHub
- Video Express Converter
- VideoConverter - Converter
- Restream Tools - Converter
▷ FFmpeg Tools
- FFmpeg-Builds or media-autobuild_suite - Autobuild Tools
- ffmpeg-web - FFmpeg Web App / GitHub
- FFmpeg Libav or ffmprovisr - FFmpeg Guides
- ASM Lessons - FFmpeg Assembly Language Lessons
- FFmpeg Cheat Sheet, FFmpeg Commander or FFmpeg Buddy - Command Lists
- WebMConverter - WebM Converter
- PureMPV - Info Copy Tool
- ffmpeg.lav - Preview Filters
- LLmpeg or idli - AI Commands
- FFmpeg Batch - Bulk Conversion Tools
▷ Live Streaming
- 🌐 Awesome Streaming or StreamerFreebies - Live Streaming Resources
- ⭐ OBS - Live Stream Manager
- ⭐ OBS Tools - Virtual Cam / Tweaks / Effects / Keyboard Visualiser / Background Remover / Web App / Phone Controller / Dock Layouts / WebRTC Server / Plugin Updater / Guide
- Stream Elements - Streaming Service Manager
- Streamlabs-OBS - Live Stream Manager
- StreamLabs - Live Stream Manager
- Restream - Live Stream Manager
- FBX - Live Stream Manager
- XSplit - Live Stream Manager
- TwitchChat - Live Stream Manager / Discord
- VDO Ninja - Live Stream Colab Tool
- LiveStreamDVR / Display Chat - Live Stream Recorders
- NVIDIA Broadcast - Stream Audio / Video Enhancer
- Owncast or Restreamer - Self-Hosted Live Streaming
- WDFlat - Stream Elements
- Twelve47Studios - Stream Overlays
- Strem - Stream Automation
- ppInk, glnk, Annotate Screen or Live Draw - Screen Annotation
- Amuse or Songify - Now Playing Overlays
- StreamPi or ODeck - ElGato Streamdeck Alternatives
- real-url - Copy Live Stream URLs
- Chat-Downloader - Retrieve Chat Messages from Livestreams
▷ VTuber Tools
- 🌐 Runa's Archive - VTuber Resources / Discord
- Best VTuber - VTuber Resources
- VTResources - VTuber Resources
- VTuber Assets - VTuber Resources
- VTuber Kit - VTuber App
- Inochi2D - VTuber App / Discord
- Vtube Studio - VTuber App
- Kalidoface 3D, VRoid, Animaze or TransTube - VTuber Characters
- avatarify-python or veadotube - Video Call Avatars
- VTuberized Logos - VTuber Style Logos
▷ Subtitle Tools
▷ Linux Video Tools
▷ Mac Video Tools
► Video Players
- 🌐 Awesome Video - Video Streaming Resources
- 🌐 Video Help - Video Player Index
- ⭐ MPC-HC, MPC-QT or MPC-BE - Video Player / YT-DL Support
- ⭐ MPV - Video Player / Frontends
- ⭐ VLC - Video Player
- Screenbox - Video Player
- AVPlayer, ICAT or GridPlayer - Multi-Video Players
- SPlayer - Video Player with Smart Translation
- PotPlayer - Video Player / Twitch Addon / YouTube Addon
- ImPlay - Video Player
- SMPlayer / 2 - Video Player / YouTube
- uView - Video Player
- Rise Media Player - Video Player
- Flyleaf - Video Player
- MoonPlayer - Video Player
- KikoPlay - Video Player
- Plyr - Online HTML5, YouTube and Vimeo Player / GitHub
- PiP-Tool - Use Picture-in-Picture on All Videos
- PlayVideo - Google Drive Video Player
- MotionMonkey - Stream Online Videos in Player
- StreamLink - Extract Videos from Sites to Players / Twitch Adblock / GitHub
- Hohoema - Nico Nico Video Player
- polsy.org.uk - Alt Players for Video Sites
▷ Stream Sync
- ⭐ SyncPlay - App
- ⭐ Watch2Gether - Online Player
- ⭐ SyncWatch - Online Extension
- ⭐ Kosmi - Online Player
- ⭐ WatchParty - Online / Virtual Browser
- ⭐ neko / GitHub - Docker Virtual Browser
- HyperBeam / VIP - Virtual Computer Embed
- Trast, OpenTogetherTube, TurtleTV or twoseven - Online Player
- bear.cat - Online Virtual Machine / Allows NSFW
- Metastream - Online Extension / Discord / GitHub / X
- Caracal Club - Online Video Player
- CyTube - Online Video Player
- VideoTogether - App
- baked.live - Online Video Player
- Rave.io - Online Extension
- MovieNight / Discord - Docker
- Kast - Screen Share
- Screen Share Party - Online Screen Share
▷ MPV Tools
- ↪️ MPV Shaders
- MPV Config Guide, 2, 3
- ModernX, tethys or uosc - Alt User Interfaces
- Simple MPV WebUI - WebUI Controller
- MPV Context Menu
- MPV Scripts - Userscripts
- VideoClip, 2 - Clip Tool
- MPV WebM - WebM Tool
- Play With MPV or ff2mpv - Open Videos with MPV
- MPV WebTorrent Hook - Torrent Streaming
- AutoSubSync MPV - Sub Sync
- MPV SponsorBlock, 2 - SponsorBlock for MPV
- ThumbFast - MPV Thumbnails
▷ VLC Tools
- 🌐 Awesome VLC - VLC Resources
- VLSub - Sub Downloader
- VLC Skin - VLC Skins
- VLC Slow Seek Fix
► Media Servers
- 🌐 Auto Download Tool Index
- ⭐ Jellyfin - Media Server
- ⭐ Kodi - Media Server
- TRaSH Guides / Discord or The Complete Guide - Server Setup Guides
- Self-hosted Anime - Anime Server Setup Guides
- Prowlarr, FlexGet or /r/softwarr - Autodownload Tools
- Organizr, Reiverr or Homarr - Media Server Managers
- Fixarr - Media Server File Renamer
- HTPC Download Box - Media Server Automation
- Emby - Media Server
- Plex - Media Server
- Universal Media Server - Media Server
- OSMC - Media Server
- Kawaii-Player - Media Server
- Streama - Media Server
- Gerbera - Media Server
- Homehost - Media Server
- Dim - Media Server
- Kyoo - Media Server
- WatchIt / GitHub / Discord - Media Server
- SimpleDLNA - Media Server
- Chocolate - Media Server
- Media-Hoarder - Media Catalog Frontend
- Seanime - Anime Server
- Frames - Google Drive Server
- HTPC - Home Theater PC guides / Subreddit
- MSX - Web App
- ErsatzTV or dizqueTV - Live Channel Media Servers
- YTDL-Sub - Add YouTube Channels to Media Servers / GitHub
- xTeVe - Plex / Emby M3U Proxy
- Ombi - Plex / Emby User Request Management
▷ Plex Tools
- Reddit Guide - Plex Setup Guides
- Tautulli - Server Monitor / Note
- SuperPlex - Plex Plugins
- Kitana - Plugin Frontend
- Plex Ripper - Merge Plex Libraries w/ Your Own
- PlexDrive or mergerfs - Mount Google Drive
- SyncLounce - Media Sync
- PseudoTV - Create TV Channels
- Overseerr - User Requests / IMDb Extension
- Pasta Tool - Audio / Sub Changer
▷ Jellyfin Tools
- 🌐 Awesome Jellyfin - Jellyfin Resources
- ⭐ Blink, Fladder or jellyfin-media-player - Desktop Clients
- /r/JellyfinShare - Jellyfin Server Sharing
- Jellyfin Forum - Official Jellyfin Forum
- Jellyfin Vue - Jellyfin Web Client
- Jellyfin "arr" Setup Guide
- Jellyfin Customization Guide
- Jellyfin Themes
- Jellyseerr - User Requests
- Jellyfin RPC - Jellyfin Discord Rich Presence
▷ Kodi Tools
- ⭐ Elementum - Torrent Streaming / Trakt Sync / Similar to Stremio + Torrentio
- EverythingKodi - Kodi Addon Tutorials
- Kodi Builds Chart
- /r/Addons4Kodi / Tracker / Trending - Kodi Addons
- Kodi Skins or WIP Skins - Kodi Skins
- Synko - Kodi Stream Sync
- Plex Kodi Connect or plex-for-kodi - Plex for Kodi
- quasar - Torrent Plugin
- IPTV Client
- Simkl - Media Tracker
- tinyMediaManager or MediaElch - Media Collection Managers
► Video Download
- ↪️ YouTube Video Downloaders
- ↪️ Twitch Video Downloaders
- ↪️ Download Managers
- ⭐ yt-dlp or YTDL-PATCHED - Multi-Site / Commands / Zoom Fix / Discord
- ⭐ cobalt - Multi-Site / Online / Instances / Playlist Support, 2
- ⭐ 9xbuddy, 2, 3 - Multi-Site / Online
- ⭐ Download Helper, FetchV or MPMux - Extensions
- CD(R)M-Project - DRM Tools / Discord
- VideoFK - Multi-Site / Online
- you-get - Multi-Site / CLI
- Hitomi Downloader - Multi-Site / Software
- SCrawler - Multi-Site / Software / Discord
- Musvkrobot - Multi-Site / Telegram Bot
- myfaveTT, SnapTik or tiktok-to-ytdlp - TikTok
- Threads Downloader - Threads
- Piner - Pinterest / Online
- hls-downloader, hls extension or hlsloader - HLS Downloaders
- GetWVKeys - Send Widevine Requests / GitHub
► Video Editing
- ⭐ /r/VideoEditing - Video Editing Subreddit / Wiki
- ⭐ Eyecandy - Visual Technique Examples
- ⭐ Waifu2x GUI, Video2x, Enhancr, Lossless Scaling or Dandere2x - Video Upscaling
- Codecs and Containers - Info on Codecs & Containers
- ALF FreeWare VideoCODECs, Codec Guide or Free-Codecs - Video Codec Collections
- VideoHelp Forum - Video Editing Forums
▷ Video Editors
- ⭐ LosslessCut - Video Editor
- ⭐ kdenlive - Video Editor / GitHub
- ⭐ DaVinci Resolve - Video Editor / Sign-Up Required
- ⭐ Shotcut - Video Editor
- Auto-Editor - CLI Editor
- MoviePy - Python Editor
- Webm Generator - Webm Editor
- avisynth or VapourSynth - Video Processors
- Source Filmmaker - Steam Movie-Making Tool / Resources
- OpenRV - Image / Sequence Playback Review
- Remotion - Video Editor
- Olive - Video Editor
- EZVid - Video Editor
- OpenShot - Video Editor
- Lightworks - Video Editor
- VSDC - Video Editor
- Pitivi - Video Editor
- Visla - Video Editor
- Windows Movie Maker, 2, 3 - Video Editor
- Avidemux - Cut / Filter / Encode
- suckless-cut or vidcutter - Cut / Trim Videos
- Opus - Clip Creator
- Kurku or FreeMoCap - Motion Tracking Tools
- VSeeFace - Face / Hand Tracking VRM
▷ Online Editors
- ⭐ wide.video - Discord
- ⭐ Pikimov - Use Edge or Chrome
- ⭐ Mastershot - Sign-Up Required
- VideoToolbox - Sign-Up Required
- VideoInu - Works Offline
- Panzoid
- vidmix
- Video Cutter
- Omniclip - GitHub / Discord
- Vididoo - Multitool
- VideoCandy - Multitool
- Video2Edit - Multitool
- Crop Video - Crop Videos
- LoopVid - Loop Videos
- Crossfade - Video / Audio Crossfading
- VidLouder - Increase Video Volume
- Convert2Video - Image / Audio to Video
▷ Video Enhancement / Effects
- Video Enhance AI - Video Enhancement Tool / Search "Topaz" on LR
- Gyroflow - Video Stabilization / GitHub
- Flowframes / Beta or SVP / Guide - Video Interpolation / Increase FPS
- VideoColorizerColab - Video Colorization Colab
- OpenColorIO - Video Color Manager
- FreshLUTs - Free LUTs (Color Filters)
- blur or Smoothie - Add Motion Blur to Videos / Tutorial
- ProPainter - Video Inpainting
▷ VFX Sites
- FootageCrate
- FreeVideoEffect
- VideoCoPilot
- VFXmed
- Team V.R releases
- flex_cg_vfx
- VFXLoot
- Download Pirate - Use Adblock / Avoid Fake Download Buttons / Discord
- ShareAE - After Effects
- HunterAE - After Effects
- Visual Effects Pack - After Effects
- AERiver - After Effects
- AEDownloadPro - After Effects
- Intro HD - After Effects
▷ Animation Tools
- 🌐 Creator Resources - Art & Animation Resource Index
- ⭐ Unreal Engine, MoonRay, cgsoftbox, SketchUp or Twinmotion - 3D Creation Tools
- ⭐ Immersity AI - 2D Image to 3D Animation Tool
- OpenToonz, Wick Editor, Clipnote Studio or Pencil2D - Animation Tools
- Animaker - Animated Video Creator
- 3DThis - 3D Animation Tools
- Mega Scans - 3D Scans
- Mixer - 3D Texture Creation Tool
- PlanetSide - CG Environment Generator
- cgplugdump - CG Software Plugins
- Physically Based - RGB Values of Elements
- AnimeEffects, enve, Cavalry, TupiTube or Synfig - 2D Animation Tools
- ScribbleDiffusion - Turn Doodles into Artwork
- MonsterMash - Sketch-Based Modeling & Animation Tool
- Storyboarder - Quickly Visualize & Test Animations / GitHub
- LuxCoreRender - Rendering Engine
- RenderChan - 2D Animation Render Manager
- Mandelbulber or FragM - Fractal Rendering Software / 3D
- JWildfire, IFSRenderer or Fractorium - Flame Fractal Rendering Software
- BestSnip, Sketch Machine, Plask or Rive - Online Animation Tools
- Glaxnimate or Trangram - Vector Animation Tools
- LibreSprite, GraphicsGale, Pixel Compresor, JPixel, Aseprite / Guide or SpookyGhost - Pixel Art Animation Tools
- Spritesheet Generator - Spritesheet Generator / Gitea
- Animated Drawings, FAIR Animated Drawings or MotorPen - Animate Drawings
- FlipAnim - Create Animated Flipbooks
- Viggle / Discord or Picrew - Animated Character Creators
- Mixamo or Cascadeur - 3D Character Animation Tools
- MMHuman3D - 3D Human Model Creator
- Talking Face Avatar - Talking Avatar Generator
- Blender Open Movies - CGI Assets
▷ Stock Videos
- 🌐 Awesome Stock Resources or CuteStockFootage - Stock Video Indexes
- Pexels - Stock Videos
- 4K Media - 4K Stock Videos
- Dareful - 4K Stock Videos
- Monzoom - 4K Stock Videos
- BeachFrontBroll - Stock Videos
- Videvo - Stock Videos
- veed.io - Stock Videos
- VidsPlay - Stock Videos
- MitchMartinez - Stock Videos
- MixKit - Stock Videos
- ineedfx - Stock Videos
- MotionPlaces - Worldwide Stock Videos
- DroneStock - Drone Video Footage
- MovieTools - Video Loops
-
@ 6389be64:ef439d32
2024-12-09 23:50:41Resilience is the ability to withstand shocks, adapt, and bounce back. It’s an essential quality in nature and in life. But what if we could take resilience a step further? What if, instead of merely surviving, a system could improve when faced with stress? This concept, known as anti-fragility, is not just theoretical—it’s practical. Combining two highly resilient natural tools, comfrey and biochar, reveals how we can create systems that thrive under pressure and grow stronger with each challenge.
Comfrey: Nature’s Champion of Resilience
Comfrey is a plant that refuses to fail. Once its deep roots take hold, it thrives in poor soils, withstands drought, and regenerates even after being cut down repeatedly. It’s a hardy survivor, but comfrey doesn’t just endure—it contributes. Known as a dynamic accumulator, it mines nutrients from deep within the earth and brings them to the surface, making them available for other plants.
Beyond its ecological role, comfrey has centuries of medicinal use, earning the nickname "knitbone." Its leaves can heal wounds and restore health, a perfect metaphor for resilience. But as impressive as comfrey is, its true potential is unlocked when paired with another resilient force: biochar.
Biochar: The Silent Powerhouse of Soil Regeneration
Biochar, a carbon-rich material made by burning organic matter in low-oxygen conditions, is a game-changer for soil health. Its unique porous structure retains water, holds nutrients, and provides a haven for beneficial microbes. Soil enriched with biochar becomes drought-resistant, nutrient-rich, and biologically active—qualities that scream resilience.
Historically, ancient civilizations in the Amazon used biochar to transform barren soils into fertile agricultural hubs. Known as terra preta, these soils remain productive centuries later, highlighting biochar’s remarkable staying power.
Yet, like comfrey, biochar’s potential is magnified when it’s part of a larger system.
The Synergy: Comfrey and Biochar Together
Resilience turns into anti-fragility when systems go beyond mere survival and start improving under stress. Combining comfrey and biochar achieves exactly that.
-
Nutrient Cycling and Retention\ Comfrey’s leaves, rich in nitrogen, potassium, and phosphorus, make an excellent mulch when cut and dropped onto the soil. However, these nutrients can wash away in heavy rains. Enter biochar. Its porous structure locks in the nutrients from comfrey, preventing runoff and keeping them available for plants. Together, they create a system that not only recycles nutrients but amplifies their effectiveness.
-
Water Management\ Biochar holds onto water making soil not just drought-resistant but actively water-efficient, improving over time with each rain and dry spell.
-
Microbial Ecosystems\ Comfrey enriches soil with organic matter, feeding microbial life. Biochar provides a home for these microbes, protecting them and creating a stable environment for them to multiply. Together, they build a thriving soil ecosystem that becomes more fertile and resilient with each passing season.
Resilient systems can withstand shocks, but anti-fragile systems actively use those shocks to grow stronger. Comfrey and biochar together form an anti-fragile system. Each addition of biochar enhances water and nutrient retention, while comfrey regenerates biomass and enriches the soil. Over time, the system becomes more productive, less dependent on external inputs, and better equipped to handle challenges.
This synergy demonstrates the power of designing systems that don’t just survive—they thrive.
Lessons Beyond the Soil
The partnership of comfrey and biochar offers a valuable lesson for our own lives. Resilience is an admirable trait, but anti-fragility takes us further. By combining complementary strengths and leveraging stress as an opportunity, we can create systems—whether in soil, business, or society—that improve under pressure.
Nature shows us that resilience isn’t the end goal. When we pair resilient tools like comfrey and biochar, we unlock a system that evolves, regenerates, and becomes anti-fragile. By designing with anti-fragility in mind, we don’t just bounce back, we bounce forward.
By designing with anti-fragility in mind, we don’t just bounce back, we bounce forward.
-
-
@ b6dcdddf:dfee5ee7
2025-05-06 15:58:23You can now fund projects on Geyser using Credit Cards, Apple Pay, Bank Transfers, and more.
The best part: 🧾 You pay in fiat and ⚡️ the creator receives Bitcoin.
You heard it right! Let's dive in 👇
First, how does it work? For contributors, it's easy! Once the project creator has verified their identity, anyone can contribute with fiat methods. Simply go through the usual contribution flow and select 'Pay with Fiat'. The first contribution is KYC-free.
Why does this matter? 1. Many Bitcoiners don't want to spend their Bitcoin: 👉 Number go up (NgU) 👉 Capital gains taxes With fiat contributions, there's no more excuse to contribute towards Bitcoin builders and creators! 2. Non-bitcoin holders want to support projects too. If someone loves your mission but only has a debit card, they used to be stuck. Now? They can back your Bitcoin project with familiar fiat tools. Now, they can do it all through Geyser!
So, why swap fiat into Bitcoin? Because Bitcoin is borderless. Fiat payouts are limited to certain countries, banks, and red tape. By auto-swapping fiat to Bitcoin, we ensure: 🌍 Instant payouts to creators all around the world ⚡️ No delays or restrictions 💥 Every contribution is also a silent Bitcoin buy
How to enable Fiat contributions If you’re a creator, it’s easy: - Go to your Dashboard → Wallet - Click “Enable Fiat Contributions” - Complete a quick ID verification (required by our payment provider) ✅ That’s it — your project is now open to global fiat supporters.
Supporting Bitcoin adoption At Geyser, our mission is to empower Bitcoin creators and builders. Adding fiat options amplifies our mission. It brings more people into the ecosystem while staying true to what we believe: ⚒️ Build on Bitcoin 🌱 Fund impactful initiatives 🌎 Enable global participation
**Support projects with fiat now! ** We've compiled a list of projects that currently have fiat contributions enabled. If you've been on the fence to support them because you didn't want to spend your Bitcoin, now's the time to do your first contribution!
Education - Citadel Dispatch: https://geyser.fund/project/citadel - @FREEMadeiraOrg: https://geyser.fund/project/freemadeira - @MyfirstBitcoin_: https://geyser.fund/project/miprimerbitcoin
Circular Economies - @BitcoinEkasi: https://geyser.fund/project/bitcoinekasi - Madagascar Bitcoin: https://geyser.fund/project/madagasbit - @BitcoinChatt : https://geyser.fund/project/bitcoinchatt - Uganda Gayaza BTC Market: https://geyser.fund/project/gayazabtcmarket
Activism - Education Bitcoin Channel: https://geyser.fund/project/streamingsats
Sports - The Sats Fighter Journey: https://geyser.fund/project/thesatsfighterjourney
Culture - Bitcoin Tarot Cards: https://geyser.fund/project/bitcointarotcard
originally posted at https://stacker.news/items/973003
-
@ 04c915da:3dfbecc9
2025-03-04 17:00:18This piece is the first in a series that will focus on things I think are a priority if your focus is similar to mine: building a strong family and safeguarding their future.
Choosing the ideal place to raise a family is one of the most significant decisions you will ever make. For simplicity sake I will break down my thought process into key factors: strong property rights, the ability to grow your own food, access to fresh water, the freedom to own and train with guns, and a dependable community.
A Jurisdiction with Strong Property Rights
Strong property rights are essential and allow you to build on a solid foundation that is less likely to break underneath you. Regions with a history of limited government and clear legal protections for landowners are ideal. Personally I think the US is the single best option globally, but within the US there is a wide difference between which state you choose. Choose carefully and thoughtfully, think long term. Obviously if you are not American this is not a realistic option for you, there are other solid options available especially if your family has mobility. I understand many do not have this capability to easily move, consider that your first priority, making movement and jurisdiction choice possible in the first place.
Abundant Access to Fresh Water
Water is life. I cannot overstate the importance of living somewhere with reliable, clean, and abundant freshwater. Some regions face water scarcity or heavy regulations on usage, so prioritizing a place where water is plentiful and your rights to it are protected is critical. Ideally you should have well access so you are not tied to municipal water supplies. In times of crisis or chaos well water cannot be easily shutoff or disrupted. If you live in an area that is drought prone, you are one drought away from societal chaos. Not enough people appreciate this simple fact.
Grow Your Own Food
A location with fertile soil, a favorable climate, and enough space for a small homestead or at the very least a garden is key. In stable times, a small homestead provides good food and important education for your family. In times of chaos your family being able to grow and raise healthy food provides a level of self sufficiency that many others will lack. Look for areas with minimal restrictions, good weather, and a culture that supports local farming.
Guns
The ability to defend your family is fundamental. A location where you can legally and easily own guns is a must. Look for places with a strong gun culture and a political history of protecting those rights. Owning one or two guns is not enough and without proper training they will be a liability rather than a benefit. Get comfortable and proficient. Never stop improving your skills. If the time comes that you must use a gun to defend your family, the skills must be instinct. Practice. Practice. Practice.
A Strong Community You Can Depend On
No one thrives alone. A ride or die community that rallies together in tough times is invaluable. Seek out a place where people know their neighbors, share similar values, and are quick to lend a hand. Lead by example and become a good neighbor, people will naturally respond in kind. Small towns are ideal, if possible, but living outside of a major city can be a solid balance in terms of work opportunities and family security.
Let me know if you found this helpful. My plan is to break down how I think about these five key subjects in future posts.
-
@ 40bdcc08:ad00fd2c
2025-05-06 14:24:22Introduction
Bitcoin’s
OP_RETURN
opcode, a mechanism for embedding small data in transactions, has ignited a significant debate within the Bitcoin community. Originally designed to support limited metadata while preserving Bitcoin’s role as a peer-to-peer electronic cash system,OP_RETURN
is now at the center of proposals that could redefine Bitcoin’s identity. The immutable nature of Bitcoin’s timechain makes it an attractive platform for data storage, creating tension with those who prioritize its monetary function. This discussion, particularly around Bitcoin Core pull request #32406 (GitHub PR #32406), highlights a critical juncture for Bitcoin’s future.What is
OP_RETURN
?Introduced in 2014,
OP_RETURN
allows users to attach up to 80 bytes of data to a Bitcoin transaction. Unlike other transaction outputs,OP_RETURN
outputs are provably unspendable, meaning they don’t burden the Unspent Transaction Output (UTXO) set—a critical database for Bitcoin nodes. This feature was a compromise to provide a standardized, less harmful way to include metadata, addressing earlier practices that embedded data in ways that bloated the UTXO set. The 80-byte limit and restriction to oneOP_RETURN
output per transaction are part of Bitcoin Core’s standardness rules, which guide transaction relay and mining but are not enforced by the network’s consensus rules (Bitcoin Stack Exchange).Standardness vs. Consensus Rules
Standardness rules are Bitcoin Core’s default policies for relaying and mining transactions. They differ from consensus rules, which define what transactions are valid across the entire network. For
OP_RETURN
: - Consensus Rules: AllowOP_RETURN
outputs with data up to the maximum script size (approximately 10,000 bytes) and multiple outputs per transaction (Bitcoin Stack Exchange). - Standardness Rules: LimitOP_RETURN
data to 80 bytes and one output per transaction to discourage excessive data storage and maintain network efficiency.Node operators can adjust these policies using settings like
-datacarrier
(enables/disablesOP_RETURN
relay) and-datacarriersize
(sets the maximum data size, defaulting to 83 bytes to account for theOP_RETURN
opcode and pushdata byte). These settings allow flexibility but reflect Bitcoin Core’s default stance on limiting data usage.The Proposal: Pull Request #32406
Bitcoin Core pull request #32406, proposed by developer instagibbs, seeks to relax these standardness restrictions (GitHub PR #32406). Key changes include: - Removing Default Size Limits: The default
-datacarriersize
would be uncapped, allowing largerOP_RETURN
data without a predefined limit. - Allowing Multiple Outputs: The restriction to oneOP_RETURN
output per transaction would be lifted, with the total data size across all outputs subject to a configurable limit. - Deprecating Configuration Options: The-datacarrier
and-datacarriersize
settings are marked as deprecated, signaling potential removal in future releases, which could limit node operators’ ability to enforce custom restrictions.This proposal does not alter consensus rules, meaning miners and nodes can already accept transactions with larger or multiple
OP_RETURN
outputs. Instead, it changes Bitcoin Core’s default relay policy to align with existing practices, such as miners accepting non-standard transactions via services like Marathon Digital’s Slipstream (CoinDesk).Node Operator Flexibility
Currently, node operators can customize
OP_RETURN
handling: - Default Settings: Relay transactions with oneOP_RETURN
output up to 80 bytes. - Custom Settings: Operators can disableOP_RETURN
relay (-datacarrier=0
) or adjust the size limit (e.g.,-datacarriersize=100
). These options remain in #32406 but are deprecated, suggesting that future Bitcoin Core versions might not support such customization, potentially standardizing the uncapped policy.Arguments in Favor of Relaxing Limits
Supporters of pull request #32406 and similar proposals argue that the current restrictions are outdated and ineffective. Their key points include: - Ineffective Limits: Developers bypass the 80-byte limit using methods like Inscriptions, which store data in other transaction parts, often at higher cost and inefficiency (BitcoinDev Mailing List). Relaxing
OP_RETURN
could channel data into a more efficient format. - Preventing UTXO Bloat: By encouragingOP_RETURN
use, which doesn’t affect the UTXO set, the proposal could reduce reliance on harmful alternatives like unspendable Taproot outputs used by projects like Citrea’s Clementine bridge. - Supporting Innovation: Projects like Citrea require more data (e.g., 144 bytes) for security proofs, and relaxed limits could enable new Layer 2 solutions (CryptoSlate). - Code Simplification: Developers like Peter Todd argue that these limits complicate Bitcoin Core’s codebase unnecessarily (CoinGeek). - Aligning with Practice: Miners already process non-standard transactions, and uncapping defaults could improve fee estimation and reduce reliance on out-of-band services, as noted by ismaelsadeeq in the pull request discussion.In the GitHub discussion, developers like Sjors and TheCharlatan expressed support (Concept ACK), citing these efficiency and innovation benefits.
Arguments Against Relaxing Limits
Opponents, including prominent developers and community members, raise significant concerns about the implications of these changes: - Deviation from Bitcoin’s Purpose: Critics like Luke Dashjr, who called the proposal “utter insanity,” argue that Bitcoin’s base layer should prioritize peer-to-peer cash, not data storage (CoinDesk). Jason Hughes warned it could turn Bitcoin into a “worthless altcoin” (BeInCrypto). - Blockchain Bloat: Additional data increases the storage and processing burden on full nodes, potentially making node operation cost-prohibitive and threatening decentralization (CryptoSlate). - Network Congestion: Unrestricted data could lead to “spam” transactions, raising fees and hindering Bitcoin’s use for financial transactions. - Risk of Illicit Content: The timechain’s immutability means data, including potentially illegal or objectionable content, is permanently stored on every node. The 80-byte limit acts as a practical barrier, and relaxing it could exacerbate this issue. - Preserving Consensus: Developers like John Carvalho view the limits as a hard-won community agreement, not to be changed lightly.
In the pull request discussion, nsvrn and moth-oss expressed concerns about spam and centralization, advocating for gradual changes. Concept NACKs from developers like wizkid057 and Luke Dashjr reflect strong opposition.
Community Feedback
The GitHub discussion for pull request #32406 shows a divided community: - Support (Concept ACK): Sjors, polespinasa, ismaelsadeeq, miketwenty1, TheCharlatan, Psifour. - Opposition (Concept NACK): wizkid057, BitcoinMechanic, Retropex, nsvrn, moth-oss, Luke Dashjr. - Other: Peter Todd provided a stale ACK, indicating partial or outdated support.
Additional discussions on the BitcoinDev mailing list and related pull requests (e.g., #32359 by Peter Todd) highlight similar arguments, with #32359 proposing a more aggressive removal of all
OP_RETURN
limits and configuration options (GitHub PR #32359).| Feedback Type | Developers | Key Points | |---------------|------------|------------| | Concept ACK | Sjors, ismaelsadeeq, others | Improves efficiency, supports innovation, aligns with mining practices. | | Concept NACK | Luke Dashjr, wizkid057, others | Risks bloat, spam, centralization, and deviation from Bitcoin’s purpose. | | Stale ACK | Peter Todd | Acknowledges proposal but with reservations or outdated support. |
Workarounds and Their Implications
The existence of workarounds, such as Inscriptions, which exploit SegWit discounts to embed data, is a key argument for relaxing
OP_RETURN
limits. These methods are costlier and less efficient, often costing more thanOP_RETURN
for data under 143 bytes (BitcoinDev Mailing List). Supporters argue that formalizing largerOP_RETURN
data could streamline these use cases. Critics, however, see workarounds as a reason to strengthen, not weaken, restrictions, emphasizing the need to address underlying incentives rather than accommodating bypasses.Ecosystem Pressures
External factors influence the debate: - Miners: Services like Marathon Digital’s Slipstream process non-standard transactions for a fee, showing that market incentives already bypass standardness rules. - Layer 2 Projects: Citrea’s Clementine bridge, requiring more data for security proofs, exemplifies the demand for relaxed limits to support innovative applications. - Community Dynamics: The debate echoes past controversies, like the Ordinals debate, where data storage via inscriptions raised similar concerns about Bitcoin’s purpose (CoinDesk).
Bitcoin’s Identity at Stake
The
OP_RETURN
debate is not merely technical but philosophical, questioning whether Bitcoin should remain a focused monetary system or evolve into a broader data platform. Supporters see relaxed limits as a pragmatic step toward efficiency and innovation, while opponents view them as a risk to Bitcoin’s decentralization, accessibility, and core mission. The community’s decision will have lasting implications, affecting node operators, miners, developers, and users.Conclusion
As Bitcoin navigates this crossroads, the community must balance the potential benefits of relaxed
OP_RETURN
limits—such as improved efficiency and support for new applications—against the risks of blockchain bloat, network congestion, and deviation from its monetary roots. The ongoing discussion, accessible via pull request #32406 on GitHub (GitHub PR #32406). Readers are encouraged to explore the debate and contribute to ensuring that any changes align with Bitcoin’s long-term goals as a decentralized, secure, and reliable system. -
@ 6389be64:ef439d32
2025-02-27 21:32:12GA, plebs. The latest episode of Bitcoin And is out, and, as always, the chicanery is running rampant. Let’s break down the biggest topics I covered, and if you want the full, unfiltered rant, make sure to listen to the episode linked below.
House Democrats’ MEME Act: A Bad Joke?
House Democrats are proposing a bill to ban presidential meme coins, clearly aimed at Trump’s and Melania’s ill-advised token launches. While grifters launching meme coins is bad, this bill is just as ridiculous. If this legislation moves forward, expect a retaliatory strike exposing how politicians like Pelosi and Warren mysteriously amassed their fortunes. Will it pass? Doubtful. But it’s another sign of the government’s obsession with regulating everything except itself.
Senate Banking’s First Digital Asset Hearing: The Real Target Is You
Cynthia Lummis chaired the first digital asset hearing, and—surprise!—it was all about control. The discussion centered on stablecoins, AML, and KYC regulations, with witnesses suggesting Orwellian measures like freezing stablecoin transactions unless pre-approved by authorities. What was barely mentioned? Bitcoin. They want full oversight of stablecoins, which is really about controlling financial freedom. Expect more nonsense targeting self-custody wallets under the guise of stopping “bad actors.”
Bank of America and PayPal Want In on Stablecoins
Bank of America’s CEO openly stated they’ll launch a stablecoin as soon as regulation allows. Meanwhile, PayPal’s CEO paid for a hat using Bitcoin—not their own stablecoin, Pi USD. Why wouldn’t he use his own product? Maybe he knows stablecoins aren’t what they’re hyped up to be. Either way, the legacy financial system is gearing up to flood the market with stablecoins, not because they love crypto, but because it’s a tool to extend U.S. dollar dominance.
MetaPlanet Buys the Dip
Japan’s MetaPlanet issued $13.4M in bonds to buy more Bitcoin, proving once again that institutions see the writing on the wall. Unlike U.S. regulators who obsess over stablecoins, some companies are actually stacking sats.
UK Expands Crypto Seizure Powers
Across the pond, the UK government is pushing legislation to make it easier to seize and destroy crypto linked to criminal activity. While they frame it as going after the bad guys, it’s another move toward centralized control and financial surveillance.
Bitcoin Tools & Tech: Arc, SatoChip, and Nunchuk
Some bullish Bitcoin developments: ARC v0.5 is making Bitcoin’s second layer more efficient, SatoChip now supports Taproot and Nostr, and Nunchuk launched a group wallet with chat, making multisig collaboration easier.
The Bottom Line
The state is coming for financial privacy and control, and stablecoins are their weapon of choice. Bitcoiners need to stay focused, keep their coins in self-custody, and build out parallel systems. Expect more regulatory attacks, but don’t let them distract you—just keep stacking and transacting in ways they can’t control.
🎧 Listen to the full episode here: https://fountain.fm/episode/PYITCo18AJnsEkKLz2Ks
💰 Support the show by boosting sats on Podcasting 2.0! and I will see you on the other side.
-
@ f72e682e:c51af867
2025-05-06 10:35:01All across the Lightning Network we can detect quite a lot of nodes, specially new nodes but also old nodes, that show a concerning lack of good node operation which impedes proper routing. I’ve seen nodes with a variable capacity whose channels are stagnant and non performant, which raises a question: what is the point on maintaining a public node if you are not able to route and dynamically assign resources as needed? Certainly it is a useless node, and channels of those nodes with other nodes better maintained are also useless, not because the fault of the good ones, but because the fault of the bad ones, which makes the whole network not as performant and great as it should be.
For the shake of improving the Lightning Network, I have created this guide, so every node out there can become useful, and, also, will greatly improve gains in routing for itself. Do not expect to become rich or even live out of routing fees, that is impossible unless you have a node with 100 or more BTC in 2025, but at least, a node should be able to cover its own maintenance costs; its the idea. Problem is that, currently, most nodes run on a loss, and that is highly related with the fee policy and the choice of nodes that they connect to. Let’s put an end to this. Here you will learn how to, at least, earn enough to cover electricity of your node, and with luck, a bit more.
Current earnings cover electricity and the payment of my node:
3K sats per day might not seem much for a 5 BTC capacity (2.5 BTC real outbound) node, but the screenshot was taken in a bad day, when the mempool was empty. I took the screenshot of a bad day on purpose, to prove my point. Some other days, specially when Bitcoin is going bullish and it is used a lot, I have seen 20K per day. A quick calculation brings around 1M sats per year at a minimum, more than enough to pay electricity, the machine, and even a bit more for beers and fun! Real gains across the year could be closer to around 5M in my case, which is not bad. And what is incredible, I maintain general low fees for most of the cases, except when I have no liquidity in the channel which must be high, as you will understand later in this article. So if you double or triple my recommended fees I would expect quite a lot more earnings. So expect gains of around 2% of the total capacity (4% for the amount you put in) per year minimum, and any extra beyond that by fine-tuning my recommendations I'm sure it will be very welcomed by you!
Step 1: put the node in a good machine
Please, don’t use an old computer or laptop, unless you change the SSD for a new one. Bitcoin and lightning uses the SSD heavily, which means it will fry it sooner or later. That is so that I recommend changing the SSD every 2 years even it it still feels good. If your SSD dies during operation, expect big loses. I’ve seen this so many times, and it also happened to me, that I am very serious about recommending it. Also, please use only Linux with ext4 file format, other formats, including ZFS, I’ve seen failing badly. If your filesystem fails, the sqlite db that LND or CLN uses will fail and you will force close many if not most channels, with big fees for onchain closings, which will totally ruin all your gains. You have been warned!
Also, please take your time to configure a clearnet (ipv4) address. Do not rely only on Tor, because Tor is slow and unreliable, specially when updating channel states on the gossip, which you will be doing a lot. Of course, configure Tor also, but as secondary, because too many nodes are Tor only, which is unfortunate.
Step 2: connect to good nodes
As a public node operator, your duty is to connect to as many nodes as possible, but first, to good reputable nodes. Your first 10 channels should be with big nodes and service providers, like exchanges, wallets, but also to very well positioned big nodes. Take your time to select these 10 first nodes and connect to the ones you think will improve your position in the network. Don’t choose the first 10 biggest, take your time to study the fees. Select nodes that use a wide range of fees, from 0 to 1000ppm. Don’t discard a node because you see some channels with high fees, it could only mean that they have no liquidity right now in that channel. But if all its channels have high fees, or at least all small channels have high fees, then discard it.
Then, when you have your first 10 big nodes connected, go ahead and go to https://lightningnetwork.plus/ to choose less popular ones. You need them, because you seek to fill the voids between smaller nodes, it is what most of your revenue will come from. Always try to do swaps, use the liquidity pool later when you have enough total inbound liquidity. Remember that total capacity is not total outbound. Total capacity is total outbound + total inbound. So you can start with 0.25BTC of your own, but total capacity could be much higher if other peers have open channels to you.
A proper public node should have a minimum of 50 channels at its peak. It doesn’t matter much the size of the channels, but the quantity and the quality. A node with 50x500k sized channels will usually perform 10x better than a node with 5x5M sized channels, even if they have the same total capacity. This is because more opportunities to route will be found if you have more channels, which means you are much better positioned.
Anyway, the minimum recommended is 1M per channel because most HTCLs are 100k to 500k and less than 1M will wipe out all your liquidity in the channels in one or two routings. This could change in the future because of the Bitcoin price, but in 2025 this is the state of things. But if you don’t have 0.25 BTC to open 50 channels (25 open by you, 25 by others using swaps), just use smaller channels, don't let your available liquidity to crush your excitement, who knows what is the future ahead us! Remember that we are just at the beginning of this technology and there is nothing that impides your channels to be open for the next 20 years when 1BTC=$1M! I would put the ultra minimum at 250k per channel, which means a 12.5M node (6.25M required sats to start with), but even that is too precarious in 2025. But hopefully not in the future! If you have less than that my honest recommendation is to run a private node and open private channels only, and only if you absolutely need a node because you have to provide a service for multiple people and you can't conform to use simpler wallets. Right now, I can think of only one example of requiring an ultra-small node instead of wallets, which is using LNBits to service your small business or family. Be aware, anyway, that a 12.5M node will definitely not cover your node running costs in 2025, it is just an investment and positioning for a future!
In any case, never, ever, put all your BTC in a LN node, at most one third of your bitcoins and only when you are confident.
Also remember you have to be online 24/7. Please, don’t setup a node if you can’t. Remember you are providing a constant service, not an intermittent one. This guide won’t work if you are not committed to this rule.
Step 3: understand the flow
I’ve seen too many node operators that do not understand how payments are routed, and this is a big problem, because this is the base of everything we do with a LN node.
Payments go from one node to another to another to another until it reaches destination. Each node has what is called an outbound fee. This fee controls how much does it cost to route a payment through that node. If the fee is low it is considered attractive and other nodes will prefer to use that route. If the fee is high, it is obvious that nodes will not choose that route unless there is no other way.
But there is a problem here: all channels have a liquidity limit. If a channel has 1M liquidity and a payment of 500k comes through it, then now the channel has 500k liquidity, that is, a ratio of 0.5. If another 400k comes through, now it has 100k liquidity and a ratio of 0.1. If now somebody tries to route a 200k payment through that channel, and error will happen, because it doesn’t have enough liquidity. It is called an HTCL failure, and this are quite normal. Liquidity can come backwards, which means that now that channel becomes the income instead of the outcome, so if 300k comes in, in the example above, now the liquidity ratio is 0.4 (100k already there plus 300k that just came in). So it is easy to understand that liquidity is very volatile: it will come in and out with any successful in or out HTLC.
The problem is: how do you know if a channel has liquidity? For privacy reasons, the liquidity of a channel is never announced, and only the two connected nodes know it. This is logical, to avoid bad actors to figure out which payments have been done by other people. So the only possible solution is to try all connected channels you have until one lets you go through because it has enough liquidity. And it is going to be done, always, in the order of outbound fees, from low to high. So the channel that has the lowest fee with enough liquidity, will catch the prize.
There is a way to signal that you have liquidity or you don’t, and it is based on scarcity: if you don’t have much liquidity, you increase the outbound fee, so other nodes will not find attractive to route through you in that direction. You don't have much liquidity, so why bother to allow routing? But, when you have again outbound liquidity, because other nodes have taken the opposite direction (inbound) using another channel of yours which has liquidity (as outbound), you intelligently lower the fees to signal your new updated increased liquidity in the channel. So, the idea is simple: if you have liquidity in the channel, you put low fees, if you don’t have liquidity, you put high fees. Please read that again until you fully understand it, it is extremely important.
There is another concept introduced by LND which is negative inbound fees: if you put negative inbound fees, for example -100ppm, it means that any payment going from that inbound channel to another of your outbound channels, will have a maximum discount of 100ppm. (Don’t worry, you will never lose because LND forbids to route losing money, so 100ppm is the maximum, but it could be less if the outgoing channel has less than 100ppm fees.) What this does is to encourage the filling of empty channels at the cost of earning less in channels with plenty of liquidity. This is very good, because it will automatically rebalance your extremes: channels with no liquidity will be filled up, channels with plenty of liquidity will be emptied down, creating a balance.
It is obvious that the total ratio, including all your channels, should be around 100%. That means that the total amount summing all channels of inbound and outbound should be approximately the same. Don’t get obsessed with this, 80% or 120% is ok too, but if it is lower or higher than that you should take measures to open or close channels, or even swap out or in using boltz.exchange or LOOP.
Step 4: managing fees
So, in order to make proper routing, you will have to constantly monitor all your channels on a regular basis. Minimum recommended frequency is once a day. You can do this automatically or manually. Some people prefer to do it manually because each channel has its own characteristics and some fees work better than others, which is something you learn with time observing the flow. But some other people, like me, don’t want to spend so much time doing so, and do automatic fee management using charge-lnd or lndg automators. A mixture of both styles is possible by disabling automatic fee management for selected channels.
Every node operator has his/her own preferences, but here are some basic recommendations that you can tweak over time as you acquire experience:
ratio > 0.98: fees 0 (or less than 10) 0.2 < ratio < 0.98: fees proportional max 128, min 16 0.2 > ratio > 0.05: fees 500, inbound -16 ratio < 0.05: fees 1000, inbound -64 ratio = 0: fees more than 1000, inbound -128
So, as you can see, when the channel is full we encourage routing, when the channel is more balanced is when the earnings will occur (from 16 to 128ppm), when the channel is mostly empty we discourage forward routing (500ppm) but encourage backwards routing (inbound -16) and when it is almost empty we clearly totally discourage forward routing (1000ppm) but encourage backwards routing (inbound -64). And when someone just opened a channel with us, all liquidity is theirs so we aggressively encourage inbound routing by putting ultra high outbound fees and ultra inbound discounts. Simple, eh?Step 5: automatic fee management
As stated before, you can automate this using charge-lnd or lndg or Lightning Terminal if you use LND. If you use CLN you are probably limited to create a personalized script, because I don’t know of any similar tool for it, apart from CL-BOSS which is unmaintained and non-customizable.
You will run this configuration a maximum of once per hour, and a minimum of once per day. You should not try to run it more frequent than once per hour because of two reasons: 1. The channel states stored in the gossip take from some minutes to some hours to properly propagate. 2. Some nodes will ban you if you try to update more than once per hour. What I recommend is once every 2 hours for big nodes with more than 50 channels. If you have less than 50 channels, your gossip will be slow to propagate so run it once a day. If you get many “Insufficient Fee” errors is because you are trying to update channel states too frequently. Also, some people report that increasing the variable numgraphsyncpeers in the LND configuration file helps with better propagation, but be aware that this will increase bandwidth usage.
I’ve been using lndg for some time, but I switched to charge-lnd because it is clearly superior and faster and more customizable. Lndg is still great for rebalancing (which I use a lot) and as a general interface, but I have disabled the fee management, which I now do with charge-lnd. If you can’t access charge-lnd then just use lndg with the frequency chosen above, but be aware that the configuration parameters are very limited, as you will soon realize (you are limited to just one strategy which is proportional, and it is very slow as it changes the fee in incremental steps). Yet it is better using lndg than nothing.
Lightning Terminal from Lightning Labs I have not tested. So I can’t say anything about it.
But here is a good starting configuration for charge-lnd that you can customize to your preferences:
``` [default]
'default' is special, it is used if no other policy matches a channel
strategy = static base_fee_msat = 128 fee_ppm = 96 inbound_base_fee_msat = 0 inbound_fee_ppm = 0 min_fee_ppm_delta=20
[mydefaults]
no strategy, so this only sets some defaults
base_fee_msat = 128 min_fee_ppm_delta = 0
[lost-onchain-sync]
The fact that lnd was not synchronized with the chain for more than 5 minutes
was an indicator of a severe problem in the past.
onchain.synced_to_chain = false base_fee_msat = 210_000 fee_ppm = 210_000
[expensive]
match channels where the peer node has set a high (>=8_000 ppm) fee rate
and set the same fee rate on our side (strategy=match_peer)
chan.min_fee_ppm = 8000 strategy = match_peer
[leafnode]
charge non-routing (private=true) peers a bit more for our service
chan.private = true strategy = static fee_ppm = 1000
[encourage-routing]
'autobalance' (lower fees so using outbound is more attractive)
chan.min_ratio = 0.98 inbound_base_fee_msat = 0 inbound_fee_ppm = 0 strategy = static base_fee_msat = 64 fee_ppm = 16
[discourage-routing]
'autobalance' (higher fees so using outbound is less attractive)
chan.max_ratio = 0.2 chan.min_ratio = 0.05 strategy = proportional inbound_base_fee_msat = -64 inbound_fee_ppm = -16 min_fee_ppm = 32 max_fee_ppm = 700 base_fee_msat = 1_000
[all-liquidity-is-theirs] chan.max_ratio = 0.00 inbound_base_fee_msat = -128 inbound_fee_ppm = -128 strategy = static base_fee_msat = 1_000 fee_ppm = 1000
[discourage-routing-extreme] chan.max_ratio = 0.05 inbound_base_fee_msat = -128 inbound_fee_ppm = -32 strategy = proportional min_fee_ppm = 32 max_fee_ppm = 1000 base_fee_msat = 1_000
[proportional]
'proportional' can also be used to auto balance (lower fee rate when low remote balance & higher rate when higher remote balance)
fee_ppm decreases linearly with the channel balance ratio (min_fee_ppm when ratio is 1, max_fee_ppm when ratio is 0)
20% excess:
chan.min_ratio = 0.2 chan.max_ratio = 0.98 strategy = proportional min_fee_ppm = 32
20% excess, so for a max of 128, it’s calculated 128/(1-0.20)=160
max_fee_ppm = 160 inbound_base_fee_msat = 0 inbound_fee_ppm = 0 base_fee_msat = 128 min_fee_ppm_delta=16 ```
So you might run this config in a crontab or with your node distribution script if it is provided. I think Umbrel has this app in their portfolio, so just use it if you have Umbrel and ignore the following. If you run it manually or with a distro that doesn’t have charge-lnd, you can configure a crontab. This is just an example, please ask support for proper configuration on your distro. And if you distro do not include charge-lnd, ask support to include it, at this point it’s quite a necessity. Anyway here is the manual configuration: ``` $ crontab -e
0 */2 * * * echo "=======>"
date
>> /home/nodo/charge-lnd/log && /home/nodo/charge-lnd/env/bin/charge-lnd -c /home/nodo/charge-lnd/my.config >> /home/nodo/charge-lnd/log ```That is supposing charge-lnd executable is installed under /home/nodo/charge-lnd/env/bin/charge-lnd and config is in /home/nodo/charge-lnd/my.config and LND is running without docker. If it is running under docker, you will have to ask support of your distro.
Step 6: help your peers
Remember that your peers are not only your competition, they are also your customers. So it is a strange symbiosis: you compete with them, but they also help you (and you help them).
If your peers are not well informed and have a bad maintained node, you are in a loss, because your channels with them will get stagnant and will not route. If they are well informed and know how to manage a node, then the channels will not be stagnant and they will route through you.
So it is stupid to keep this information as a secret. Every node operator should know it. And the more people know it, the better for everybody.
So, please, if you detect stagnant channels and bad maintained peers connected to you, just lead them to this guide, or guide them yourself. It’s a good idea to bookmark this guide so you have it prepared for the future.
And that’s it!! Happy routing!!
originally posted at https://stacker.news/items/972730
-
@ 460c25e6:ef85065c
2025-02-25 15:20:39If you don't know where your posts are, you might as well just stay in the centralized Twitter. You either take control of your relay lists, or they will control you. Amethyst offers several lists of relays for our users. We are going to go one by one to help clarify what they are and which options are best for each one.
Public Home/Outbox Relays
Home relays store all YOUR content: all your posts, likes, replies, lists, etc. It's your home. Amethyst will send your posts here first. Your followers will use these relays to get new posts from you. So, if you don't have anything there, they will not receive your updates.
Home relays must allow queries from anyone, ideally without the need to authenticate. They can limit writes to paid users without affecting anyone's experience.
This list should have a maximum of 3 relays. More than that will only make your followers waste their mobile data getting your posts. Keep it simple. Out of the 3 relays, I recommend: - 1 large public, international relay: nos.lol, nostr.mom, relay.damus.io, etc. - 1 personal relay to store a copy of all your content in a place no one can delete. Go to relay.tools and never be censored again. - 1 really fast relay located in your country: paid options like http://nostr.wine are great
Do not include relays that block users from seeing posts in this list. If you do, no one will see your posts.
Public Inbox Relays
This relay type receives all replies, comments, likes, and zaps to your posts. If you are not getting notifications or you don't see replies from your friends, it is likely because you don't have the right setup here. If you are getting too much spam in your replies, it's probably because your inbox relays are not protecting you enough. Paid relays can filter inbox spam out.
Inbox relays must allow anyone to write into them. It's the opposite of the outbox relay. They can limit who can download the posts to their paid subscribers without affecting anyone's experience.
This list should have a maximum of 3 relays as well. Again, keep it small. More than that will just make you spend more of your data plan downloading the same notifications from all these different servers. Out of the 3 relays, I recommend: - 1 large public, international relay: nos.lol, nostr.mom, relay.damus.io, etc. - 1 personal relay to store a copy of your notifications, invites, cashu tokens and zaps. - 1 really fast relay located in your country: go to nostr.watch and find relays in your country
Terrible options include: - nostr.wine should not be here. - filter.nostr.wine should not be here. - inbox.nostr.wine should not be here.
DM Inbox Relays
These are the relays used to receive DMs and private content. Others will use these relays to send DMs to you. If you don't have it setup, you will miss DMs. DM Inbox relays should accept any message from anyone, but only allow you to download them.
Generally speaking, you only need 3 for reliability. One of them should be a personal relay to make sure you have a copy of all your messages. The others can be open if you want push notifications or closed if you want full privacy.
Good options are: - inbox.nostr.wine and auth.nostr1.com: anyone can send messages and only you can download. Not even our push notification server has access to them to notify you. - a personal relay to make sure no one can censor you. Advanced settings on personal relays can also store your DMs privately. Talk to your relay operator for more details. - a public relay if you want DM notifications from our servers.
Make sure to add at least one public relay if you want to see DM notifications.
Private Home Relays
Private Relays are for things no one should see, like your drafts, lists, app settings, bookmarks etc. Ideally, these relays are either local or require authentication before posting AND downloading each user\'s content. There are no dedicated relays for this category yet, so I would use a local relay like Citrine on Android and a personal relay on relay.tools.
Keep in mind that if you choose a local relay only, a client on the desktop might not be able to see the drafts from clients on mobile and vice versa.
Search relays:
This is the list of relays to use on Amethyst's search and user tagging with @. Tagging and searching will not work if there is nothing here.. This option requires NIP-50 compliance from each relay. Hit the Default button to use all available options on existence today: - nostr.wine - relay.nostr.band - relay.noswhere.com
Local Relays:
This is your local storage. Everything will load faster if it comes from this relay. You should install Citrine on Android and write ws://localhost:4869 in this option.
General Relays:
This section contains the default relays used to download content from your follows. Notice how you can activate and deactivate the Home, Messages (old-style DMs), Chat (public chats), and Global options in each.
Keep 5-6 large relays on this list and activate them for as many categories (Home, Messages (old-style DMs), Chat, and Global) as possible.
Amethyst will provide additional recommendations to this list from your follows with information on which of your follows might need the additional relay in your list. Add them if you feel like you are missing their posts or if it is just taking too long to load them.
My setup
Here's what I use: 1. Go to relay.tools and create a relay for yourself. 2. Go to nostr.wine and pay for their subscription. 3. Go to inbox.nostr.wine and pay for their subscription. 4. Go to nostr.watch and find a good relay in your country. 5. Download Citrine to your phone.
Then, on your relay lists, put:
Public Home/Outbox Relays: - nostr.wine - nos.lol or an in-country relay. -
.nostr1.com Public Inbox Relays - nos.lol or an in-country relay -
.nostr1.com DM Inbox Relays - inbox.nostr.wine -
.nostr1.com Private Home Relays - ws://localhost:4869 (Citrine) -
.nostr1.com (if you want) Search Relays - nostr.wine - relay.nostr.band - relay.noswhere.com
Local Relays - ws://localhost:4869 (Citrine)
General Relays - nos.lol - relay.damus.io - relay.primal.net - nostr.mom
And a few of the recommended relays from Amethyst.
Final Considerations
Remember, relays can see what your Nostr client is requesting and downloading at all times. They can track what you see and see what you like. They can sell that information to the highest bidder, they can delete your content or content that a sponsor asked them to delete (like a negative review for instance) and they can censor you in any way they see fit. Before using any random free relay out there, make sure you trust its operator and you know its terms of service and privacy policies.
-
@ d61f3bc5:0da6ef4a
2025-05-06 01:37:28I remember the first gathering of Nostr devs two years ago in Costa Rica. We were all psyched because Nostr appeared to solve the problem of self-sovereign online identity and decentralized publishing. The protocol seemed well-suited for textual content, but it wasn't really designed to handle binary files, like images or video.
The Problem
When I publish a note that contains an image link, the note itself is resilient thanks to Nostr, but if the hosting service disappears or takes my image down, my note will be broken forever. We need a way to publish binary data without relying on a single hosting provider.
We were discussing how there really was no reliable solution to this problem even outside of Nostr. Peer-to-peer attempts like IPFS simply didn't work; they were hopelessly slow and unreliable in practice. Torrents worked for popular files like movies, but couldn't be relied on for general file hosting.
Awesome Blossom
A year later, I attended the Sovereign Engineering demo day in Madeira, organized by Pablo and Gigi. Many projects were presented over a three hour demo session that day, but one really stood out for me.
Introduced by hzrd149 and Stu Bowman, Blossom blew my mind because it showed how we can solve complex problems easily by simply relying on the fact that Nostr exists. Having an open user directory, with the corresponding social graph and web of trust is an incredible building block.
Since we can easily look up any user on Nostr and read their profile metadata, we can just get them to simply tell us where their files are stored. This, combined with hash-based addressing (borrowed from IPFS), is all we need to solve our problem.
How Blossom Works
The Blossom protocol (Blobs Stored Simply on Mediaservers) is formally defined in a series of BUDs (Blossom Upgrade Documents). Yes, Blossom is the most well-branded protocol in the history of protocols. Feel free to refer to the spec for details, but I will provide a high level explanation here.
The main idea behind Blossom can be summarized in three points:
- Users specify which media server(s) they use via their public Blossom settings published on Nostr;
- All files are uniquely addressable via hashes;
- If an app fails to load a file from the original URL, it simply goes to get it from the server(s) specified in the user's Blossom settings.
Just like Nostr itself, the Blossom protocol is dead-simple and it works!
Let's use this image as an example:
If you look at the URL for this image, you will notice that it looks like this:
blossom.primal.net/c1aa63f983a44185d039092912bfb7f33adcf63ed3cae371ebe6905da5f688d0.jpg
All Blossom URLs follow this format:
[server]/[file-hash].[extension]
The file hash is important because it uniquely identifies the file in question. Apps can use it to verify that the file they received is exactly the file they requested. It also gives us the ability to reliably get the same file from a different server.
Nostr users declare which media server(s) they use by publishing their Blossom settings. If I store my files on Server A, and they get removed, I can simply upload them to Server B, update my public Blossom settings, and all Blossom-capable apps will be able to find them at the new location. All my existing notes will continue to display media content without any issues.
Blossom Mirroring
Let's face it, re-uploading files to another server after they got removed from the original server is not the best user experience. Most people wouldn't have the backups of all the files, and/or the desire to do this work.
This is where Blossom's mirroring feature comes handy. In addition to the primary media server, a Blossom user can set one one or more mirror servers. Under this setup, every time a file is uploaded to the primary server the Nostr app issues a mirror request to the primary server, directing it to copy the file to all the specified mirrors. This way there is always a copy of all content on multiple servers and in case the primary becomes unavailable, Blossom-capable apps will automatically start loading from the mirror.
Mirrors are really easy to setup (you can do it in two clicks in Primal) and this arrangement ensures robust media handling without any central points of failure. Note that you can use professional media hosting services side by side with self-hosted backup servers that anyone can run at home.
Using Blossom Within Primal
Blossom is natively integrated into the entire Primal stack and enabled by default. If you are using Primal 2.2 or later, you don't need to do anything to enable Blossom, all your media uploads are blossoming already.
To enhance user privacy, all Primal apps use the "/media" endpoint per BUD-05, which strips all metadata from uploaded files before they are saved and optionally mirrored to other Blossom servers, per user settings. You can use any Blossom server as your primary media server in Primal, as well as setup any number of mirrors:
## Conclusion
For such a simple protocol, Blossom gives us three major benefits:
- Verifiable authenticity. All Nostr notes are always signed by the note author. With Blossom, the signed note includes a unique hash for each referenced media file, making it impossible to falsify.
- File hosting redundancy. Having multiple live copies of referenced media files (via Blossom mirroring) greatly increases the resiliency of media content published on Nostr.
- Censorship resistance. Blossom enables us to seamlessly switch media hosting providers in case of censorship.
Thanks for reading; and enjoy! 🌸
-
@ 6538925e:571e55c3
2025-05-05 20:00:48It’s been a little while since we released a major design update, so we’re really excited to get this new version of the app into your hands. Here’s a breakdown of all the main updates included in Fountain 1.2:
#### Library Design Update
-
New content-type filters at the top of the page make it easier to navigate between podcasts and music in your library.
-
Recently Played is now the default view in your library, so it’s easier to jump back into podcasts you’ve already started.
-
The Music filter now makes it easier to find saved tracks and albums, and it also gives you a list of all the artists whose music you’ve saved.
-
We’ve refreshed the design of the content cards to make it easier to see how much time is remaining on episodes you’ve already started.
#### Content Pages Design Update
-
All of the different content pages have undergone an extensive redesign, including shows, episodes, artists, albums, tracks, clips and playlists
-
We’ve replaced the tab layout we were using on the content pages with one scrollable page, making it easier to access features like chapters and tracklists
-
We’ve sanitised the formatting of show notes too, and if there is no activity for a given episode, we now display the expanded show notes
#### Episode Summaries
Ever looked at a 4-hour Lex Fridman episode and wished you could just read a high-level summary? We certainly have, so we did something about it.
-
Every episode page now has a Summary button above the show notes.
-
Simply pay 500 sats to unlock a summary, or upgrade to Fountain Premium for $2.99/month to enjoy unlimited summaries.
-
Summaries and transcripts now come as a bundle — two for the price of one!
-
Thanks to major improvements, they’re now faster, cheaper, and more accurate than ever before.
#### Playback Improvements
We’ve completely rebuilt our audio engine from the ground up. Playback is now more robust and reliable — especially for music. Here are some of the key enhancements in Fountain 1.2:
-
Tracks now load and play instantly when tapped.
-
When playing a collection of tracks (e.g. from an artist, album, or playlist), you can now skip seamlessly between them.
-
We’ve replaced the scrollable player page with full-screen modals to make it easier to access show notes, comments, transcripts, chapters, tracklists, and your queue.
-
The new Smart Resume feature rewinds the episode by 5 seconds when you hit pause, so you don’t miss a beat.
-
You can now skip forward or backward by 60 seconds for faster navigation through episodes.
Other Bug Fixes & Improvements
-
Rebuilt payment stats for more complete and reliable transaction records.
-
Refreshed the design of the Settings pages for better usability.
-
Added new episode notification preferences in Settings.
-
Fixed several playback issues that were causing crashes or freezes.
-
Updated lock screen display and controls for livestreams.
-
Fixed issue where the next item in the queue paused unexpectedly.
-
Resolved playback stuttering on Android during livestreams.
-
Fixed disappearing playback controls on the lock screen.
-
Fixed playback speed not updating correctly.
-
Resolved issue where played episodes couldn’t be replayed.
-
Fixed playback not resuming correctly when listening in the car.
-
Synced car playback position with the device.
-
Fixed persistent car display refresh issue.
-
Fixed volume control via car controls.
-
Resolved issue with headphone controls after playing a transcript.
-
Fixed disappearing metadata on the lock screen.
-
Fixed bug where downloaded episodes stopped in airplane mode but showed as playing.
We would love to hear how you’re finding Fountain 1.2. Please submit your thoughts and feedback via the main menu in the app and we will take it on board as we continue to improve the app.
If you want to help test new features out before they get released, you can join Fountain Beta on Telegram. All iOS and Android users welcome.
-
-
@ 9e69e420:d12360c2
2025-02-14 18:07:10Vice President J.D. Vance addressed the Munich Security Conference, criticizing European leaders for undermining free speech and traditional values. He claimed that the biggest threat to Europe is not from external enemies but from internal challenges. Vance condemned the arrest of a British man for praying near an abortion clinic and accused European politicians of censorship.
He urged leaders to combat illegal immigration and questioned their democratic practices. “There is a new sheriff in town,” he said, referring to President Trump. Vance's remarks were unexpected, as many anticipated discussions on security or Ukraine. His speech emphasized the need for Europe to share the defense burden to ensure stability and security.
-
@ 51faaa77:2c26615b
2025-05-04 17:52:33There has been a lot of debate about a recent discussion on the mailing list and a pull request on the Bitcoin Core repository. The main two points are about whether a mempool policy regarding OP_RETURN outputs should be changed, and whether there should be a configuration option for node operators to set their own limit. There has been some controversy about the background and context of these topics and people are looking for more information. Please ask short (preferably one sentence) questions as top comments in this topic. @Murch, and maybe others, will try to answer them in a couple sentences. @Murch and myself have collected a few questions that we have seen being asked to start us off, but please add more as you see fit.
originally posted at https://stacker.news/items/971277
-
@ b2caa9b3:9eab0fb5
2025-05-04 08:20:46Hey friends,
Exciting news – I’m currently setting up my very first Discord server!
This space will be all about my travels, behind-the-scenes stories, photo sharing, and practical tips and insights from the road. My goal is to make it the central hub connecting all my decentralized social platforms where I can interact with you more directly, and share exclusive content.
Since I’m just starting out, I’d love to hear from you:
Do you know any useful RSS-feed integrations for updates?
Can you recommend any cool Discord bots for community engagement or automation?
Are there any tips or features you think I must include?
The idea is to keep everything free and accessible, and to grow a warm, helpful community around the joy of exploring the world.
It’s my first time managing a Discord server, so your experience and suggestions would mean a lot. Leave a comment – I’m all ears!
Thanks for your support, Ruben Storm
-
@ 52b4a076:e7fad8bd
2025-05-03 21:54:45Introduction
Me and Fishcake have been working on infrastructure for Noswhere and Nostr.build. Part of this involves processing a large amount of Nostr events for features such as search, analytics, and feeds.
I have been recently developing
nosdex
v3, a newer version of the Noswhere scraper that is designed for maximum performance and fault tolerance using FoundationDB (FDB).Fishcake has been working on a processing system for Nostr events to use with NB, based off of Cloudflare (CF) Pipelines, which is a relatively new beta product. This evening, we put it all to the test.
First preparations
We set up a new CF Pipelines endpoint, and I implemented a basic importer that took data from the
nosdex
database. This was quite slow, as it did HTTP requests synchronously, but worked as a good smoke test.Asynchronous indexing
I implemented a high-contention queue system designed for highly parallel indexing operations, built using FDB, that supports: - Fully customizable batch sizes - Per-index queues - Hundreds of parallel consumers - Automatic retry logic using lease expiration
When the scraper first gets an event, it will process it and eventually write it to the blob store and FDB. Each new event is appended to the event log.
On the indexing side, a
Queuer
will read the event log, and batch events (usually 2K-5K events) into one work job. This work job contains: - A range in the log to index - Which target this job is intended for - The size of the job and some other metadataEach job has an associated leasing state, which is used to handle retries and prioritization, and ensure no duplication of work.
Several
Worker
s monitor the index queue (up to 128) and wait for new jobs that are available to lease.Once a suitable job is found, the worker acquires a lease on the job and reads the relevant events from FDB and the blob store.
Depending on the indexing type, the job will be processed in one of a number of ways, and then marked as completed or returned for retries.
In this case, the event is also forwarded to CF Pipelines.
Trying it out
The first attempt did not go well. I found a bug in the high-contention indexer that led to frequent transaction conflicts. This was easily solved by correcting an incorrectly set parameter.
We also found there were other issues in the indexer, such as an insufficient amount of threads, and a suspicious decrease in the speed of the
Queuer
during processing of queued jobs.Along with fixing these issues, I also implemented other optimizations, such as deprioritizing
Worker
DB accesses, and increasing the batch size.To fix the degraded
Queuer
performance, I ran the backfill job by itself, and then started indexing after it had completed.Bottlenecks, bottlenecks everywhere
After implementing these fixes, there was an interesting problem: The DB couldn't go over 80K reads per second. I had encountered this limit during load testing for the scraper and other FDB benchmarks.
As I suspected, this was a client thread limitation, as one thread seemed to be using high amounts of CPU. To overcome this, I created a new client instance for each
Worker
.After investigating, I discovered that the Go FoundationDB client cached the database connection. This meant all attempts to create separate DB connections ended up being useless.
Using
OpenWithConnectionString
partially resolved this issue. (This also had benefits for service-discovery based connection configuration.)To be able to fully support multi-threading, I needed to enabled the FDB multi-client feature. Enabling it also allowed easier upgrades across DB versions, as FDB clients are incompatible across versions:
FDB_NETWORK_OPTION_EXTERNAL_CLIENT_LIBRARY="/lib/libfdb_c.so"
FDB_NETWORK_OPTION_CLIENT_THREADS_PER_VERSION="16"
Breaking the 100K/s reads barrier
After implementing support for the multi-threaded client, we were able to get over 100K reads per second.
You may notice after the restart (gap) the performance dropped. This was caused by several bugs: 1. When creating the CF Pipelines endpoint, we did not specify a region. The automatically selected region was far away from the server. 2. The amount of shards were not sufficient, so we increased them. 3. The client overloaded a few HTTP/2 connections with too many requests.
I implemented a feature to assign each
Worker
its own HTTP client, fixing the 3rd issue. We also moved the entire storage region to West Europe to be closer to the servers.After these changes, we were able to easily push over 200K reads/s, mostly limited by missing optimizations:
It's shards all the way down
While testing, we also noticed another issue: At certain times, a pipeline would get overloaded, stalling requests for seconds at a time. This prevented all forward progress on the
Worker
s.We solved this by having multiple pipelines: A primary pipeline meant to be for standard load, with moderate batching duration and less shards, and high-throughput pipelines with more shards.
Each
Worker
is assigned a pipeline on startup, and if one pipeline stalls, other workers can continue making progress and saturate the DB.The stress test
After making sure everything was ready for the import, we cleared all data, and started the import.
The entire import lasted 20 minutes between 01:44 UTC and 02:04 UTC, reaching a peak of: - 0.25M requests per second - 0.6M keys read per second - 140MB/s reads from DB - 2Gbps of network throughput
FoundationDB ran smoothly during this test, with: - Read times under 2ms - Zero conflicting transactions - No overloaded servers
CF Pipelines held up well, delivering batches to R2 without any issues, while reaching its maximum possible throughput.
Finishing notes
Me and Fishcake have been building infrastructure around scaling Nostr, from media, to relays, to content indexing. We consistently work on improving scalability, resiliency and stability, even outside these posts.
Many things, including what you see here, are already a part of Nostr.build, Noswhere and NFDB, and many other changes are being implemented every day.
If you like what you are seeing, and want to integrate it, get in touch. :)
If you want to support our work, you can zap this post, or register for nostr.land and nostr.build today.
-
@ e3ba5e1a:5e433365
2025-02-13 06:16:49My favorite line in any Marvel movie ever is in “Captain America.” After Captain America launches seemingly a hopeless assault on Red Skull’s base and is captured, we get this line:
“Arrogance may not be a uniquely American trait, but I must say, you do it better than anyone.”
Yesterday, I came across a comment on the song Devil Went Down to Georgia that had a very similar feel to it:
America has seemingly always been arrogant, in a uniquely American way. Manifest Destiny, for instance. The rest of the world is aware of this arrogance, and mocks Americans for it. A central point in modern US politics is the deriding of racist, nationalist, supremacist Americans.
That’s not what I see. I see American Arrogance as not only a beautiful statement about what it means to be American. I see it as an ode to the greatness of humanity in its purest form.
For most countries, saying “our nation is the greatest” is, in fact, twinged with some level of racism. I still don’t have a problem with it. Every group of people should be allowed to feel pride in their accomplishments. The destruction of the human spirit since the end of World War 2, where greatness has become a sin and weakness a virtue, has crushed the ability of people worldwide to strive for excellence.
But I digress. The fears of racism and nationalism at least have a grain of truth when applied to other nations on the planet. But not to America.
That’s because the definition of America, and the prototype of an American, has nothing to do with race. The definition of Americanism is freedom. The founding of America is based purely on liberty. On the God-given rights of every person to live life the way they see fit.
American Arrogance is not a statement of racial superiority. It’s barely a statement of national superiority (though it absolutely is). To me, when an American comments on the greatness of America, it’s a statement about freedom. Freedom will always unlock the greatness inherent in any group of people. Americans are definitionally better than everyone else, because Americans are freer than everyone else. (Or, at least, that’s how it should be.)
In Devil Went Down to Georgia, Johnny is approached by the devil himself. He is challenged to a ridiculously lopsided bet: a golden fiddle versus his immortal soul. He acknowledges the sin in accepting such a proposal. And yet he says, “God, I know you told me not to do this. But I can’t stand the affront to my honor. I am the greatest. The devil has nothing on me. So God, I’m gonna sin, but I’m also gonna win.”
Libertas magnitudo est
-
@ daa41bed:88f54153
2025-02-09 16:50:04There has been a good bit of discussion on Nostr over the past few days about the merits of zaps as a method of engaging with notes, so after writing a rather lengthy article on the pros of a strategic Bitcoin reserve, I wanted to take some time to chime in on the much more fun topic of digital engagement.
Let's begin by defining a couple of things:
Nostr is a decentralized, censorship-resistance protocol whose current biggest use case is social media (think Twitter/X). Instead of relying on company servers, it relies on relays that anyone can spin up and own their own content. Its use cases are much bigger, though, and this article is hosted on my own relay, using my own Nostr relay as an example.
Zap is a tip or donation denominated in sats (small units of Bitcoin) sent from one user to another. This is generally done directly over the Lightning Network but is increasingly using Cashu tokens. For the sake of this discussion, how you transmit/receive zaps will be irrelevant, so don't worry if you don't know what Lightning or Cashu are.
If we look at how users engage with posts and follows/followers on platforms like Twitter, Facebook, etc., it becomes evident that traditional social media thrives on engagement farming. The more outrageous a post, the more likely it will get a reaction. We see a version of this on more visual social platforms like YouTube and TikTok that use carefully crafted thumbnail images to grab the user's attention to click the video. If you'd like to dive deep into the psychology and science behind social media engagement, let me know, and I'd be happy to follow up with another article.
In this user engagement model, a user is given the option to comment or like the original post, or share it among their followers to increase its signal. They receive no value from engaging with the content aside from the dopamine hit of the original experience or having their comment liked back by whatever influencer they provide value to. Ad revenue flows to the content creator. Clout flows to the content creator. Sales revenue from merch and content placement flows to the content creator. We call this a linear economy -- the idea that resources get created, used up, then thrown away. Users create content and farm as much engagement as possible, then the content is forgotten within a few hours as they move on to the next piece of content to be farmed.
What if there were a simple way to give value back to those who engage with your content? By implementing some value-for-value model -- a circular economy. Enter zaps.
Unlike traditional social media platforms, Nostr does not actively use algorithms to determine what content is popular, nor does it push content created for active user engagement to the top of a user's timeline. Yes, there are "trending" and "most zapped" timelines that users can choose to use as their default, but these use relatively straightforward engagement metrics to rank posts for these timelines.
That is not to say that we may not see clients actively seeking to refine timeline algorithms for specific metrics. Still, the beauty of having an open protocol with media that is controlled solely by its users is that users who begin to see their timeline gamed towards specific algorithms can choose to move to another client, and for those who are more tech-savvy, they can opt to run their own relays or create their own clients with personalized algorithms and web of trust scoring systems.
Zaps enable the means to create a new type of social media economy in which creators can earn for creating content and users can earn by actively engaging with it. Like and reposting content is relatively frictionless and costs nothing but a simple button tap. Zaps provide active engagement because they signal to your followers and those of the content creator that this post has genuine value, quite literally in the form of money—sats.
I have seen some comments on Nostr claiming that removing likes and reactions is for wealthy people who can afford to send zaps and that the majority of people in the US and around the world do not have the time or money to zap because they have better things to spend their money like feeding their families and paying their bills. While at face value, these may seem like valid arguments, they, unfortunately, represent the brainwashed, defeatist attitude that our current economic (and, by extension, social media) systems aim to instill in all of us to continue extracting value from our lives.
Imagine now, if those people dedicating their own time (time = money) to mine pity points on social media would instead spend that time with genuine value creation by posting content that is meaningful to cultural discussions. Imagine if, instead of complaining that their posts get no zaps and going on a tirade about how much of a victim they are, they would empower themselves to take control of their content and give value back to the world; where would that leave us? How much value could be created on a nascent platform such as Nostr, and how quickly could it overtake other platforms?
Other users argue about user experience and that additional friction (i.e., zaps) leads to lower engagement, as proven by decades of studies on user interaction. While the added friction may turn some users away, does that necessarily provide less value? I argue quite the opposite. You haven't made a few sats from zaps with your content? Can't afford to send some sats to a wallet for zapping? How about using the most excellent available resource and spending 10 seconds of your time to leave a comment? Likes and reactions are valueless transactions. Social media's real value derives from providing monetary compensation and actively engaging in a conversation with posts you find interesting or thought-provoking. Remember when humans thrived on conversation and discussion for entertainment instead of simply being an onlooker of someone else's life?
If you've made it this far, my only request is this: try only zapping and commenting as a method of engagement for two weeks. Sure, you may end up liking a post here and there, but be more mindful of how you interact with the world and break yourself from blind instinct. You'll thank me later.
-
@ 5d4b6c8d:8a1c1ee3
2025-05-03 14:18:36Comments: 3395 (Top Territory!!!) Posts: 306 (3rd) Stacking: 198k (2nd)
We're really bouncing back from the post-Super Bowl lull, with lots of contests and discussion threads. I think we've really found our niche with those two things.
The rest of Stacker News is experiencing declining activity, so our steady growth since February really tells me that we're on the right track.
Thanks for being part of our growing sports community!
originally posted at https://stacker.news/items/970289
-
@ c9badfea:610f861a
2025-05-13 00:22:27► Image Editing
- ↪️ Background / Object Removers
- Croppola, AutoCropper, Bulk Image Crop or Avatar Cropper - Cropping Tools
- Scribus - Page Layout & Typesetting Program
- FilmDev - Film Development Recipes
- Images.weserv.nl - Image Editing Server
- GradientArt or TailBlend - Gradient Editor
- Canvas - Turn Simple Art into Photorealistic Landscapes
- Image Splitter - Split Images into Tiles
- PicFont - Add Text to Images
▷ Editing Software
- ⭐ m0nkrus / 2 or GenP / Revolt - Adobe Software Archive / Use VPN / Block Adobe / Search / Telegram
- ⭐ GIMP / Discord / Subreddit
- ⭐ GIMP Tools - Photoshop UI / Texture Synthesizer / Batch Editor / Text Effects
- ⭐ Pinta Project
- ⭐ ImageMagick / Scripts
- darktable - Virtual Lighttable & Darkroom
- RawTherapee - Raw Image Editor
- StitchTool - Image Stitcher, Splitter, Upscaler & more
- PhotoDemon
- Paint.net
- PhotoFiltre
- Gimel Studio
- Luna Paint - VS Code Extension
▷ Online Editors
- ⭐ Pixlr - Simple Editor / Hide Premium / Unlimited Saves, 2
- ⭐ Polarr - Multi-Tool
- ⭐ Lunapic - Multi-Tool
- ⭐ Photopea - Photoshop Alt
- BitMappery - Photoshop Alt
- iPiccy - Photoshop Alt
- Stet - Photoshop Alt
- Resize Pixel - Multi-Tool
- ImageOnline - Multi-Tool
- GifGit - Multi-Tool
- Tom's Editor - Multi-Tool
- Peko-Step - Multi-Tool
- photo.codes/ - Simple Editor w/ Shareable Colab Codes
- Photomate - Simple Editor
- MiNi Photo Editor - Simple Editor / GitHub
- BeFunky - Simple Editor
- Polotno Studio - Simple Editor
- OIE - Simple Editor
- ILoveImg - Simple Editor
- UpperPix - Simple Editor
- Online Photo Editor - Simple Editor
- Picverse - Simple Editor
- webp2jpg - Simple Editor
- edit.photo - Simple Editor
- Image Resizer - Simple Editor
- PicSynth - Multi-Tool
- Ribbet - Multi-Tool
- RedKetchup - Multi-Tool
- Img2Go - Multi-Tool
- fffuel - Multi-Tool
- Mara - Multi-Tool
▷ Upscale / Restore
- ⭐ Waifu2x - Anime Image Upscaling / WebUI, 2, 3 / Self-Host / No Sign-Up
- ⭐ WaifuXL - Anime Image Upscaling / Online / Self-Host / No Sign-Up
- ⭐ Upscayl - Image Upscaling / GitHub / Self-Host / No Sign-Up
- ⭐ chaiNNer - Image Upscaling / Self-Host / No Sign-Up
- ⭐ OpenModelDB - AI Upscaling Model Database / No Sign-Up
- Real-ESRGAN - Image Restoration Algorithms / Face Restoration / Online / Self-Host / No Sign-Up
- /r/estoration - Photo Restoration Requests
- image-upscaling.net - Image Upscaling / Online / No Sign-Up
- IMGUpscaler - Image Upscaling / Restoration / Video Upscaling / Online / No Sign-Up
- Bigjpg - Image Upscaling / Online / No Sign-Up
- Ilaria_Upscaler - Image Upscaling / Online / No Sign-Up
- Final2x - Image Upscaling / Self-Host / No Sign-Up
- Lossless Scaling - Image Upscaling
- imgupscaler - Image Upscaling / Online / No Sign-Up
- QualityScaler - Image Upscaling / Video Upscaling / Denoising / Self-Hosted / No Sign-Up
- resdet - Detect Source Resolution of Upscaled Images / Self-Host / No Sign-Up
- InColor or Colorizer - Online Image Colorization
▷ Image Effects
- ⭐ PhotoMosh, jpg-glitch-electron, glitch-this!, glitch2, Image Glitcher or GlitchyImage - Glitch Images
- PhotoFunia, Pixelizer, Image Mage or Designify - Photo Effects / Filters
- distort-grid - Grid-Based Image Distortion
- Change Image Hue or Tinter - Hue Editor
- ordered-dither-maker, Ditherista or Dither Me This - Image Dithering
- Fotosketcher or PhotoMaker, Stylized - Turn Photos into Artwork
- AnimeGAN - Image to Anime Style Converter
- AIDraw - Turn Photos into Line Art
- Rutt-Etra-Izer - Scanned-line Images
- Geometrize - Redraw Images with Geometric Shapes
- PBNify - Paint by Number Tool
- Shimmer - Oscillating Wave Images
- CollidingScopes - Kaleidoscope Images
- Party-ify - Party-ify Images
▷ Linux Image Editing
▷ Mac Image Editing
► Image Creation
- 🌐 PuccaNoodles' Sheet - Image Creation Resources
- ↪️ AI Image Generators
- ↪️ Art Education
- ⭐ TierMaker - Tier List Image Creator
- ⭐ Topsters - Make Taste / Recommendation Collages
- PanosFX or Fix the Photo - Photoshop Actions
- imgsli - Before & After Slider Generator
- Hugin - Panorama Image Generator
- FlipAnim - Animated Flipbook Creator
- CharacterCreator - Character Generator
- Picrew - Animated Character Maker
- Mimi - Create Coloring Pages from Photos
- Text-Image - Text Image Generator
- Photovisi or PhotoJoiner - Collage Generators
- Tiler - Mosaic Image Generator
- NoiseDeck - Art Generator
▷ Painting
- 🌐 Digital Art Brushes - Download Brushes
- ⭐ Krita - Painting App
- ⭐ Krita Tools - Custom Backend / AI Generation / Forums
- ⭐ miniPaint - Browser Painting
- SmoothDraw - Painting App
- FireAlpaca - Painting App
- LazPaint - Painting App
- PaintOnline - Browser Painting
- jspaint - Browser Painting
- PinTor - Browser Painting
- Tegaki - Browser Painting
- Milton - Infinite Canvas Painting
- IOGraphica - Turn Mouse Movement into Art
- HeavyPaint - Water Color Painting
- Mixbox Painter - Realistic Paint Mixing
- Vervette - Realistic Fluid Painting
- ArtistAssistApp - Useful Painting Tools
▷ Drawing
- ⭐ Excalidraw - Drawing / Sketching / Sharing
- ⭐ AutoDraw, Co-Drawing or Magic Sketchpad - AI Drawing Tools
- DrawTab - Drawing Tablet Info / Wiki
- Inscribed / GitHub - Sketch-Based Slides
- inkscape - Drawing / Sketching
- Inkdo - Drawing / Sketching
- Sketch Toy - Drawing / Sketching
- Webchemy - Drawing / Sketching
- tldraw - Drawing / Sketching
- Ok! So - Drawing / Sketching
- Sketchpad, 2 - Drawing / Sketching
- Sketchbook - Drawing / Sketching / Mobile Only
- Paper - Drawing / Sketching / iOS Only
- Fresco - Drawing / Windows / iOS
- Concepts - Drawing / Sketching
- Magma, Magma, HelloPaint, DrawPile, LockDraw, World Draw or malmal - Collaborative Drawing
- Ink Workspace - Pen App Launcher
- Perfect Freehand - Draw Free Hand Lines / GitHub
- Eschersket - Symmetry Drawing Tool
- TEv2 - Share Your Drawings
- Virtual Graph Paper or minimator - Create Grid-Based Drawings
- Gridzzly - Print Custom Grid Papers
- Crayon Town - Infinite Online Canvas
- Perspective Tools - Interactive Perspective Grids
- x6ud - Animal Drawing Reference Tool
- Noodle - 1-bit Sketch Tool
- Tiny Sketchbook - Create and Share Doodle Art
- ScribbleDiffusion - Turn Doodles into Artwork
- MonsterMash - Sketch-Based Modeling & Animation Tool
- Animated Drawings, FAIR Animated Drawings, MotorPen or Scratch - Animate Drawings
- Mutsuacen - Create Moving Drawings
▷ Pixel Art
- 🌐 Awesome Pixel Art - Pixel Art Resource Index
- ↪️ ASCII Art
- ⭐ rx - Pixel Art Editor
- Piskel - Pixel Art Editor
- Pixelated - Pixel Art Editor
- PyDPainter - Bitmap Graphics Editor
- PaintWith - Pixel Art Editor
- PixelCraft - Pixel Art Editor / GitHub
- Kleki - Pixel Art Editor
- CSprite - Pixel Art Editor
- PixilArt - Pixel Art Editor
- Strike - 1-bit Pixel Art Editor
- Pixel Painter or Pixel Paint - Paint with Pixels
- pixels.land, EveryoneDraw, pxls.space or World of Pixels - Infinite Online Pixel Art
- dpixel - Pixel Art Remastering Tool
- Paint Of Persia - Rotoscoping Pixel Art Tool
- Dither Machine - Pixel Art Dithering Creator
- PixelMe, Pixel It, Pixelator, Img8Bit or Pixelart Converter - Image to Pixelart Converters
- Pixelorama - 2D Sprite Editor
- pixeldudesmaker, Pixel Sprite or Creature Mixer - Sprite Generator
- Pixelicious or PixelartVillage - Image to Pixel Art Converter
- Nasu - Spritesheet Editor
- Pixel Art Scaler - Scale Pixel Art without Quality Loss
▷ GIF Tools
- 🌐 Awesome GIF - GIF Resources / GitHub
- 🌐 Online GIF Tools - GIF Tools
- ⭐ Gifski - GIF Encoder / GitHub
- ⭐ EZGif, GIFCurry / GitHub, Giflr, GIFMemes, GIFnText, makeagif, Gifsicle or Pixteller - GIF Creators / Editors
- Giphy, Tenor, Gifer, Curlie GIFs, GifCities, Animations or GIFBin - View / Download GIFs
- /r/animegifs - View / Download Anime GIFs
- EatMyArt, DrawIsland or Sketch Machine - Create GIFs from Drawings
- Kinegram - Kinegram GIF Creator
- GifRun - Make GIFs from Online Videos
- ScreenToGif or Peek - GIF Recorder
- ugiffer or licecap - Create GIFs via Screencasts
- TokkingHeads - Face Movement GIFs
- petpet - Headpatting GIF Maker
▷ Meme Tools
- ⭐ Know Your Meme or FindThatMeme - Meme Databases
- ImgFlip, Meme Generator, Meme Town, MemeBetter, meme-generator, Classic Memes or Emacs Meme Generator - Meme Creators
- MemeCam - AI Meme Generator
- Memegine - Meme Search Engine
- MemeAtlas or Templates - Meme Templates
- GreenScreenMemes - Green Screen Memes
- iFake - Fake Text Conversation Creator
- Wojak Studio - Wojak Meme Creator
- Pokémon Battle Creator - Pokémon Battle Scene Meme Generator
- Master of all Science - Rick and Morty Meme Generator
- Frinkiac - Simpsons Meme Generator
- Morbotron - Futurama Meme Generator
- LowQualitymemes - Low Quality / Cursed Meme Generator
- YouWouldntStealAWebsite - "You Wouldn't Steal" Meme Generator
- BreakYourOwnNews - Breaking News Meme Generator
- AnimorphGenerator - Animorph Image Generator
- AwesomeCars - Drip Car Memes
▷ Animation
► Design Resources
- 🌐 Awesome Design, Design Resources or pilssken - Design Resources
- 🌐 archives.design - Graphic Design Books
- calltoidea, onepagelove, awwwards, thedesigninspiration, SMPoster, AnotherGraphic, theinspirationgrid or inspirationde - Graphic Design Examples / Inspiration
- PSDcovers, mockups-design, zippypixels, Mockups, medialoot or MockupsForFree - Product Mockups
- The Boolean Game - Learn Boolean Operations in Vector Editors
▷ Design Apps
- ⭐ Figma - Design Collab App
- ⭐ Canva - Design App / Giveaways
- lunacy - Design App
- ArtBoard - Design App
- VistaCreate - Design App
- PosterMyWall - Design App
- Kittl - Design App
- Kosmik - Design Asset Manager
- Venngage - Infographic Design
- CoverView - Blog Banner Design
- blush or IRA Design - Illustration Design
- SuperDesigner or Pattern Ninja - Background / Pattern Design
- Pixelied - Online Design Tool
- Evernote.Design - Online Design Tools
- Graphite or Recraft - Vector Editors
- MagicaVoxel or Goxel - Voxel Art Editor / Interactive Path Tracing Renderer
- Vectr or VectorInk - Vector Graphics Editor
▷ Icons / Avatars
- ↪️ Avatar / Logo Creators
- ↪️ Icon Drives - Icon Drives
- ↪️ SVG Icons / SVG Tools
- ⭐ Alphacoders Avatars - PFPs / Avatars
- PFP Finder - PFPs / Avatars
- Random Avatars - PFPs / Avatars
- pfps.gg - Profile Picture Index
- Innocenzi - Round Avatar Creator
- RealFaviconGenerator - Favicon Generator
▷ Textures / Patterns
- AmbientCG - Textures
- TextureTown - Textures
- 3D textures - Textures
- Textureking - Textures
- Texture Labs - Textures
- Transparent Textures - Textures
- Texture Club - Textures
- TexturesForFree - Textures
- texture4photoshop - Textures
- MatLib - Textures
- TextureNinja - Textures
- cgbookcase - Textures
- Texture Collection - Textures
- Subtle Patterns - Patterns
- Background Tiles - Patterns
- Pattern Collection - Patterns
- ArmorLab, Pixela, Texture Library or TextureLab - Texture Generators
- TextureLab - Procedural Texture Generator / GitHub / Discord
- Material Maker - Procedural Texture Creator
- DoodDad, Repeater, PatternPad, patternico, Repeater, more.graphics, Valentina, Patternizer or Haikei - Pattern Generators
- Noise & Gradient, PhotoGradient, BGJar, MeshGradient or BGGenerator - Background / Gradient Generators
- Tabbied or Slopes - Art Pattern Generators
- Generative Landscapes - Generative Landscape Blog
- Mixer - 3D Texture Creation Software
- The Textures Resource - Game Textures
- Trianglify.io - Low-Poly Texture Generator
▷ Free Assets
- ⭐ FreePreset
- UnliPresets
- Gumroad (Enter $0)
- psdkeys
- AvaxGFX
- Freeject
- Cg_peers
- PNGTree
- Dassets Design
- TianUI
- Designer Candies
- GraphixTree
- PSDLY
- Unblast
- CGArchives
- CGPlugin
- SearchGFX
- Quasual
- designersgan9
- Free_Design_Files
- WockupWorld
- OnlyGFX
- The GFX
- Graphics Materials
- desiignertm
- all_psd
- Playersdsg
- designbloody
- designarchiv
- outsideotf
- DOPE Editing
- desgang
- grphc dsgn
- creativemrkt
- freepsdvn
- PrivateDesigner
- Solutioonn
- ae-project
- godownloads
► Download Images
- 🌐 2ndBrain or designer - Image Download Site Indexes
- ↪️ Random Images
- ↪️ PNG Images / Clipart
- ↪️ AI Galleries
- ↪️ Media Covers / Posters
- ⭐ gallery-dl, RipMe, WFDownloader, ImgDownloader, SCrawler / Discord or Image Extractor - Image Download Tools
- same.energy - Visual Search Engine
- Dezoomify - Download Zoomable Images
- PicTriev - Find Look-Alike Images
- OpenMoji or JoyPixels - Emojis
- PixelJoint, Lospec or rsrcs - Download / Share Pixel Art
- PimpMyDrawing - Human Silhouettes
- FanCaps or Film Grab - Media Screenshots
- Footyrenders - Football Related Images
- PSDGraphics - PSD Files
- The NFT Bay or Extremely Fungible Tokens - Free NFTs
- Artvee - Public Domain Artwork
- Behance - Design Projects
- Placeit - Image Templates
- Worldvectorlogo, Logo Source, Logos & Badges Bundle, Brands of the World, Logos Download, Logodust, Logowik, Logo Wine, seeklogo, logospire, LogoSearch, logopond, SuperTinyIcons, logotouse, brandeps, logolounge, logomoose - Logo Search / Designs
- MariaLetta - Free Doodles
- Watercolor Collection - Download Watercolor Pictures
- googleimagerestored - Old Google Image Search
- Block Posters, PosterRazor or Rasterbator - Create Printable Posters
▷ Image Search Engines
- ⭐ Yandex Images or Mavink - Image Search
- ⭐ Search by Image - Browser Extension
- ⭐ SauceNao - Reverse Image Search / Extension
- ⭐ SmartImage - Reverse Image Search App
- ⭐ Google Lens - Reverse Image Search
- ⭐ TinEye - Reverse Image Search / Extension
- infini.wtf - Reddit Image Search
- Visual Search - Reverse Image Search
- IQDB - Reverse Image Search
- CopySeeker - Reverse Image Search
- MaxURL - Larger Image Search / GitHub
- VISE - Image Search with Search Queries
- Have I Been Trained? - AI Image Search
- RootAbout - Archive / OpenLibrary Reverse Image Search
- Multicolr - Color-Based Image Search
- trace.moe or Saucekudasai - Anime Reverse Image Search
- Image_Max_URL - Browser Userscript
▷ Stock Images
- Note - Royalty-free implies images free for personal or commercial use with some usage restrictions (see sites TOS). CC0 stands for Creative Commons Zero and means images are public domain. Sites not tagged have licensing that varies.
- 🌐 Awesome Stock Resources - Stock Photo Index
- ⭐ GetPaidStock, DownPic, Downloader.la or istock - Paid Stock Photo Downloaders
- ⭐ EveryPixel, O-DAN or LibreStock - Stock Photo Search Engines
- Adobe Stock - Stock Photos / Royalty-Free
- Unsplash - Stock Photos / Royalty-Free
- Pixnio - Stock Photos / Royalty-Free
- Pikwizard - Stock Photos / Royalty-Free
- diverseui - Human Face Photos / Royalty-Free
- themeisle - Stock Photos / CC0
- PxHere - Stock Photos / CC0
- focastock - Stock Photos / CC0
- Foodiesfeed - Food Photos / CC0
- freenaturestock - Nature Photos / CC0
- Burst - Stock Photos
- Hippopx - Stock Photos
- BarnImages - Stock Photos
- Pixabay - Stock Photos
- Lummi - AI Generated Stock Photos
- Smithsonian Open Access - Smithsonian High-Quality Photos
- desirefx - Stock Photo Overlays
- creativity103 - Abstract Background Photos
- Warren Photographic - Animal Photos
- PhyloPic - Animal Silhouettes
- iwaria - African Photos
- twnsnd - Vintage Photos / Public Domain
- PNGIMG or stickpng - PNG Photos / Noncommercial License
- gfxmountain - Stock Photo Collections
- FreePik Downloader or freepikuz_pro - FreePik Downloaders
- Flickr Commons - Public Photo Archives / Downloader
- Shutterstock Premium, freestockphotos or Shutter - Shutterstock Telegram Downloaders
- Nohat, FreeImages, cgispread, Vecteezy or FreeDesignFile - Misc Stock Photos / Vectors
- publicdomainvectors, Free Vector, VectorJunky, freevectors or vector4free - Misc Vectors
- VectorPortal - Vector Collections / Creative Common Attribution
- 123freevectors - Background Vectors
▷ Art / Illustrations
- ⭐ Kemono - Patreon Content / Some NSFW / Use Adblock
- ⭐ DeviantArt - User-Made Art / Fanart / Downloader / Frontend Instances
- ⭐ ArtStation - User-Made Art / Fanart / Downloader
- ⭐ Pixiv - Japanese Fanart
- ⭐ Pixiv Tools - Downloader, 2 / Rankings / Official Frontend / Frontend List / Preview, 2 / Android
- ⭐ Danbooru, Sankaku Complex or yande.re - Anime-Style Image Booru / Downloader
- ⭐ hydrus - Booru-Style Media Tagger / GitHub
- Buzzly - User-Made Art / Fanart
- Artfol - User-Made Art / Fanart
- Cara - User-Made Art / Fanart
- InkBlot - User-Made Art / Fanart
- Safebooru or TBIB - Image Boorus
- icons8, LostGeometry, 3D Illustrations or NS-illustration-pack - 3D Illustrations
- StorySet, unDraw, blush or Humaaans - Customizable Illustrations
- Pastel - Marker Illustrations
- Fresh Folk or lukaszadam - Illustrations of People
- free-gophers-pack - Gophers Illustrations
- reshot, freeillustrations, DrawKit, NiceIllustrations or manypixels - Misc Illustrations
- OldBookIllustrations - Illustrations from Old Books
- Plant Illustrations - Plant Illustrations
- Yummybooru or Animes Boxes - Booru Clients / Telegram
- Buhitter - X.com Illustration Search
- imgbrd-grabber - Booru Image Downloader
- Artbreeder - Image Discovery / Combining
▷ Download Extensions
▷ Wallpapers
► 3D Models
- ⭐ Thingiverse - Share / Download 3D Models
- ⭐ Printables - Find Practical 3D Models Ready for Printing
- Clara.io, PolyHaven, CadNav, Open3dModel or Archibase - Misc 3D Models
- Sketchfab, cgtrader, blendswap or 3dsky - Misc 3D Models / Sign-Up Required
- Cults, Thangs, MakerWorld or Pinshape - Printable 3D Models / Sign-Up Required
- 3D Warehouse - 3D Models Compatible with SketchUp / Sign-Up Required
- Pack 3D Models - Vehicle / Character 3D Models
- Figurosity - Human 3D Models
- Handz - 3D Hand Models
- Generated Photos - AI Generated Model Photos
- ripper.store - 3D Avatar Assets
- Archive3D - Furniture / Accessories / Vehicle 3D Models
- poly.pizza - Low Poly 3D Models
- RIGModels - Rig / Animate 3D Models
- NASA 3D Resources - NASA 3D Models
- 3D Find It - Industrial / Engineering 3D Models
- thebasemesh - Mesh 3D Models
- BlenderKit - 3D Model Library Integrated into Blender
- CosplayStaticFigure - Cosplay / Figurine 3D Models
- 3DBrute, 3DZip or DesignConnected - 3D Furniture Models
- Halloween.WannaThis - 3D Halloween Models
- Vertex - 3D Icons
- Ameede - CNC / Laser Design Vectors
- Skybox - AI Generated 3D Environments
- PoseManiacs, Anatomy Doc, Adorkastock or Anatomy360 - Pose References
▷ 3D Modeling Apps
- ⭐ Blender - FOSS 3D Modeling App
- ⭐ Blender Tools - Resources, 2 / Plugins / Tutorials / Textures / Renderer / 3D Nodes / AI Render
- ⭐ Shap-e - Generate 3D Objects based on Text / Image Prompts
- Goo Engine - 3D Anime Blender Mod
- Meshy.ai / Discord or TRELLIS / GitHub / HuggingFace - AI 3D Model Generators
- Wings 3D - Cross-platform 3D Modeling App
- JustSketchMe - Cross-platform 3D Pose Reference Tool
- MakeHuman - 3D Humanoid Modeler
- PoseMy.art, SetPose, DesignDoll, Magic Poser, Quickposes or JustSketchMe - Posing Tools
- Vectary, Womp, Bloom3D or Zdog - Online 3D Modeling Tools
- FaceMaker - 3D Face / Avatar Generator
- Recursivity - 3D Tree Creator
- CSS 3D Clouds - 3D Cloud Creator
- ModelViewer, 3DViewer or F3D - 3D Model Viewers
- Armorpaint - 3D Painting
- SculptGL - 3D Sculpting
▷ 3D Modeling Tools
- Embossify, Tripo3D or TripoSG - Image to 3D Model Converters
- Anaglyph Maker - Make 3D Images
- 3D Transformer - Rotate 3D Images
- 3DConvert - Online 3D Image Converter
- PaintUp - Make 2D Art into 3D
- Keygen - 3D Key Model Generator
- AliceVision - 3D Reconstruction / Camera Tracking
- Perspective Grid - 3D Perspective Tool
- Assemblr - Augmented Reality Image Creator
- MeshLab - 3D Mesh Processing / GitHub
- Ninja Ripper / 2 / 3 - Extract 3D Models from Games
- Ultimaker Cura - 3D Printing Software
▷ CAD Engineering
- Onshape - CAD Modeling with Real-time Collaboration
- Tinkercad - Educational CAD Modeling
- FreeCAD / GitHub - Parametric CAD Modeling
- BRL-CAD or OpenSCAD - Cross-platform CSG CAD Modeling
- LibreCAD or QCAD - 2D CAD Modeling
- Mayo - 3D CAD Viewer and Converter
- CadHub - Community Hub for CAD Projects
► Image Tools
- 🌐 Creator Resources - Art / Animation Resources
- 🌐 Awesome Colab Notebooks - Image Colab Resources
- ↪️ Color Scheme Tools - Guide
- ⭐ ImgOps - Image Operations Meta-Tool
- ⭐ AntiDupl or cbird - Duplicate Image Removers
- ⭐ Muzli - Design Inspiration Search
- ⭐ Slowpoke Pics, ICAT or Image Comparison Tool - Image Comparisons
- odiff - Image Visual Difference Tool
- PhotoFeeler - Get Photo Feedback
- Picviewer CE+ - Turn Webpages into Image Galleries
- Binternet - Pinterest Frontend
- /r/Photography Guide or Cambridge In Colour - Photography / Camera Guides
- PhotoEphemeris - Photography Sunlight Calculator
- PixelPeeper - Extract Lightroom Edits / Settings
- MagicLantern - Custom Canon EOS Firmware / Unsupported / X / Subreddit / Discord
- CHDK - Custom Canon PowerShot Firmware
- fSpy - Still Image Camera Matching
- DPReview - Camera Image Quality Comparison
- GlanceBack - Daily Webcam Photo Journal
- Image Color Summarizer - Image Color Summarizer
- Image Colors - Image Color Scatter Plot
- Image Pixel Sorter - Sort Pixels of Images
- Adobe Bridge - Adobe Assets Manager
- behind! - View Background Images
- Visual Center - Find the Visual Center of an Image
- Watermarkly, BatchWatermark or Watermarkup - Image Watermarking
- Watermark Remover, Unwatermark or DeWatermark - Watermark Removal
- Glaze or Nightshade - Protect Digital Art from AI Copies
- APNG Maker - Create / Optimize APNG Images
- JPEGMedic ARWE - Recover Ransomware-Encrypted Images
- CamScanner or Microsoft Lens - Scan & Digitize Documents / iOS
- FaceSwapApp / Discord, Swapface / Discord, faceswap, AIFaceSwap, Face Swapper, face-swap, FaceSwapVideo, facy.ai, Swapper or FaceFusion - Face Swapping
- WiseTagger - Image Tagger
- BooruDatasetTagManager - Booru Image Tagger
- Cluttr, Exif Sorter or TagStudio - Image File Organizers / Managers
- Allusion - Reference Image Manager
- Camera Wiki - Camera Model Wiki
- Canon Camera Museum - History of Canon Cameras
- Something to Draw - Find Things to Draw
- Make Photo Gallery - Collage Creator
▷ Image Compressors
- ↪️ Image Optimization
- ⭐ Caesium - Compression Software / Caesium Web App / GitHub
- ⭐ Squoosh - Compressor / Converter / GitHub
- ⭐ Seopix - Batch Compressor / Editor
- optimize.photos - Batch Compressor
- CompressImage - Batch Compressor
- CrushImage - Batch Compressor
- Bulk Image Compress - Batch Compressor
- minipic - Batch Compressor / Converter
- Compress JPEG - Batch Compressor / Unlimited Upload
- TinyPNG or TinyJPG - Batch Compressor / 20MB Upload / GitHub
- ImageSmaller - Compressor / 50MB Upload
- CompressOrDie - Multitool
- PNGQuant - PNG Compression Software / GitHub
▷ Image Converters
- ↪️ File Converter - Multi-Format Converters
- ⭐ minipic
- Knvrt
- Convertmyimage
- ImageConvert
- imverter
- Raw Pics
- Converseen
▷ Image Resizing
- PixelHunter - Resize Images for Different Sites
- Resize App Icon - Resize Square Images
- Simple Image Resizer
- ImageResizer
- PicResize
- Birme
- Bulk Image Resize
- ResizeNow
- BulkResizePhotos
▷ Image to Text / OCR
- ↪️ AI Chatbots - Most Chatbots have Built-in Image to Text
- ⭐ Capture2Text, tesseract or gImageReader - OCR Desktop Apps
- ⭐ Text Grab - Minimal OCR Windows Tool
- TextShot - Cross Platform OCR
- ImageScanOCR - Windows OCR Tool
- Handwriting-OCR - Handwriting OCR
- Project Naptha - Automatic OCR while Browsing Images
- i2ocr - Online OCR
- OCR.SPACE - Online OCR
- 2OCR - Online OCR
- Ocrify - Online OCR
- OnlineOCR - Online OCR
- NewOCR - Online OCR
- ImageToText - Online OCR
- OnlineOCR - Online OCR
▷ Image Viewers
- ⭐ IrfanView
- ⭐ JPEGView
- ⭐ FastStone
- ⭐ qView
- ⭐ XnView MP
- ⭐ Digikam
- ⭐ ImageGlass
- nomacs / GitHub
- qimgv
- oculante
- PhotoQt
- PicView
- ImagefanReloaded
- Image Eye
- Quick Picture Viewer
- Fragment
- HoneyView
- picturama
- narrative
- G'MIC
- BeeRef or PureRef - Reference Image Viewers
- HDRView or tev - HDR / Technical Image Viewers
- FlipFlip - Image Slideshow
▷ Self-Hosted Galleries
- 🌐 FOSS Photo Libraries
- Immich / GitHub
- Damselfly
- HomeGallery
- LibrePhotos
- Lychee
- Photoprism
- Photoview
- Photonix
- photos
- imagestore
- Memories
- Piwigo
- PiGallery 2
- PicoShare
- Up1
- Chevereto
- Photofield
- Google Photos Toolkit - Manage / Delete Google Photos
- Google Takeout - Export from Google Photos / Script
- GPhotos Guide - Unlimited Google Photos Storage Guide / Windows
- Google Photos EXIF - Populate Missing EXIF metadata in Google Photos
▷ Online Galleries
- ⭐ Postimages - 32MB / Forever
- Imgur - 20MB Image / 200MB Animated / Forever / Upload Limits
- Rimgo / 2 - Imgur Frontend
- tixte - 15GB Storage Total / Forever / Sign-Up Required
- lookimg - 20MB / Forever / Sign-Up Required
- Horizon - 75MB (500MB Storage) / Forever / Sign-Up Required
- imgchest - 10MB (30MB with Account) / Forever
- Piczel - 10MB / Forever / Sign-Up Required
- TurboImageHost - 20MB / Forever
▷ Image Hosts
- ⭐ PixVid - 32MB / Forever
- ⭐ ImgBB - 32MB / Forever
- ⭐ Catbox - 200MB / Forever / ShareX Config
- pixelfed - Decentralized Image Sharing Social Network / Sign-Up Required / Tools / Android / GitHub
- sxcu.net - Free ShareX Uploader Service / 95MB / N/A
- FreeImage.Host - 64MB (128MB with Account) / Forever
- imgbox - 10MB / Forever
- i - 8MB / Forever
- IMGPile - 100MB / Forever
- YourImageShare - 100MB / Forever
- pic.maxiol - 100MB / Forever
- GIFYU - 50MB (100MB with Account) / Forever
- IMGDrop - 50MB / Forever
- WebHotPix - 50MB / Forever
- ThumbSnap - 48MB / Forever
- Kepkuldes - 40MB / Forever
- FreeIMGHost - 20MB / Forever
- Pikky - 20MB / Forever
- imagebam - 20MB / Forever
- imagevenue - 20MB / Forever
- BayIMG - 100MB / Forever
- Lutim - 20MB / Forever
- FastPic - 25MB / Forever
▷ Screenshot Tools
- ⭐ ShareX / Image Hosts / File Manager
- ⭐ Flameshot / GitHub
- ⭐ Zipline / GitHub or yaass - Self-Hosted ShareX Server
- Greenshot
- KSnip
- Nimbus Capture
- PixpinApp
- ScreenshotX
- FRAMED - In-Game Screenshotting Tips
- Pika / GitHub, FabPic, OnPaste, Screenstab or Limus - Screenshot Editors / Mockups
- Screenshot Guru, Site-Shot or Pikwy - Take Screenshots of Websites
- Screenshot Rocks / GitHub - Create Screenshot Mockups of Websites
- paste.photos - Paste Image to Download
- How to Screenshot - Multi-Platform Screenshot Tutorials
▷ Palette Generators
- ⭐ Color Designer, TheGoodColors, Super Color Palette or Coolors - Color Palette Generators
- Clariss, Color Palette Generator, Palitra or Color Picker - Generate Color Palettes from Images
- Color Space - Generate Gradient Color Palettes
- Colors Wall or ColorKit - Generate Random Color Palettes
- Color Kit - Generate Color Palettes by Mixing 2 Colors
- Pigment, Eva Design System, Scale, copypalette or Huey - Simple Color Palette Generators
- ColorBox, hue.tools, Randoma11y, accessiblepalette or colorcolor - Advanced Color Palette Generators
- Good Palette, Huemint, AI Colors or PaletteMaker - Generate UI Color Palettes
- Couleur.io - CSS Color Palettes Generator
- UI Colors or Tints - Tailwind CSS Color Generators
- Poolors - Generate Most / Least Used Color Palettes
▷ Color Pickers
- 🌐 React Color - Color Pickers Index
- 🌐 BrandColors - Brand Color Palettes Index
- Material UI, OKLCH, Color Deck, Picular or ColorKit's Color Picker - Color Pickers
- Colorpicker, Just Color Picker or epick - Color Picker Desktop Apps
- Colorscales - Find Colors in Color Space
- ColourCode or Colordot - Find Colors by Moving Mouse
- Geenes or Leonardo - Find UI Color Palettes
- Sorted CSS Colors - Find Similar CSS Colors
- Color Hunt, COLOURlovers, SchemeColor, Culrs or Colorffy - Find Color Palettes
- Adobe Color - Find Color Palettes with Color Wheel
- Color Lisa - Find Art-Based Color Palettes
- Color Leap - Find Historical Color Palettes
- COLORWISE - Find Color Palettes from Product Hunt Products
▷ Photo Forensics
- 🌐 Photo OSINT - Image OSINT Resources
- ⭐ Fawkes - Facial Cloaking
- ⭐ FotoForensics, Sherloq or Forensically - Photo Forensics Tools
- Picarta / Discord, GeoSpy or GeoEstimation - Estimate Image Locations
- Image Identification Project - Image Identification Tool
- StegOnline, OpenStego, OpenPuff, Steganography-PNG / GitHub, ImSter, stegano, hide-text or stegpy - Images Steganography Tools
- Aperisolve / 2 or stegextract - Steganography Analysis Tool
- Redacted - Blur, Pixelate or Blackout parts of Images
- Image Scrubber - Blur Images / Scrub Metadata
- Schizoware - Image Name / Hash Randomizer
- ViewEXIF, Jimpl, ExifData, OnlineEXIFViewer, ExifLooter, CameraSummary or JPEGsnoop - EXIF / Metadata Viewers
- exiftool, 2, ExifCleaner, EXIFRemove, scrambled-exif, Metadata-Remover, exifpurge, adarsus or VerExif - Remove Meta / EXIF Data
- Pic2Map - Image EXIF data viewer with GPS support
- TheExifer, Photini or ColorPilot - Image EXIF Data Editors
- Base64 Image - Encode / Decode Images
- Faceagle - Face Recognition Search Engines
▷ Android Camera
-
@ cefb08d1:f419beff
2025-05-03 11:01:47https://www.youtube.com/watch?v=BOqWgxCo7Kw
The Catch Up Day 1: Bonsoy Gold Coast Pro provides opening day dominance from upper echelon:
https://www.youtube.com/watch?v=B1uM0FnyPvA
Next Round, elimination:
Results of the 1st day, opening round: https://www.worldsurfleague.com/events/2025/ct/325/bonsoy-gold-coast-pro/results
originally posted at https://stacker.news/items/970160
-
@ cefb08d1:f419beff
2025-05-03 08:57:18There is a well-known legend about pelicans that has been told for centuries: it was believed that pelican parents would wound their own chests with their beaks to feed their young with their blood. In reality, pelicans actually catch fish in their large beaks and then press their beaks to their chicks’ mouths to feed them. The myth likely arose because young pelicans sometimes peck their mother's chest while competing for food, but the mother does not harm herself intentionally.
originally posted at https://stacker.news/items/970123
-
@ e3ba5e1a:5e433365
2025-02-05 17:47:16I got into a friendly discussion on X regarding health insurance. The specific question was how to deal with health insurance companies (presumably unfairly) denying claims? My answer, as usual: get government out of it!
The US healthcare system is essentially the worst of both worlds:
- Unlike full single payer, individuals incur high costs
- Unlike a true free market, regulation causes increases in costs and decreases competition among insurers
I'm firmly on the side of moving towards the free market. (And I say that as someone living under a single payer system now.) Here's what I would do:
- Get rid of tax incentives that make health insurance tied to your employer, giving individuals back proper freedom of choice.
- Reduce regulations significantly.
-
In the short term, some people will still get rejected claims and other obnoxious behavior from insurance companies. We address that in two ways:
- Due to reduced regulations, new insurance companies will be able to enter the market offering more reliable coverage and better rates, and people will flock to them because they have the freedom to make their own choices.
- Sue the asses off of companies that reject claims unfairly. And ideally, as one of the few legitimate roles of government in all this, institute new laws that limit the ability of fine print to allow insurers to escape their responsibilities. (I'm hesitant that the latter will happen due to the incestuous relationship between Congress/regulators and insurers, but I can hope.)
Will this magically fix everything overnight like politicians normally promise? No. But it will allow the market to return to a healthy state. And I don't think it will take long (order of magnitude: 5-10 years) for it to come together, but that's just speculation.
And since there's a high correlation between those who believe government can fix problems by taking more control and demanding that only credentialed experts weigh in on a topic (both points I strongly disagree with BTW): I'm a trained actuary and worked in the insurance industry, and have directly seen how government regulation reduces competition, raises prices, and harms consumers.
And my final point: I don't think any prior art would be a good comparison for deregulation in the US, it's such a different market than any other country in the world for so many reasons that lessons wouldn't really translate. Nonetheless, I asked Grok for some empirical data on this, and at best the results of deregulation could be called "mixed," but likely more accurately "uncertain, confused, and subject to whatever interpretation anyone wants to apply."
https://x.com/i/grok/share/Zc8yOdrN8lS275hXJ92uwq98M
-
@ cefb08d1:f419beff
2025-05-03 08:43:37originally posted at https://stacker.news/items/970118
-
@ 91bea5cd:1df4451c
2025-02-04 17:24:50Definição de ULID:
Timestamp 48 bits, Aleatoriedade 80 bits Sendo Timestamp 48 bits inteiro, tempo UNIX em milissegundos, Não ficará sem espaço até o ano 10889 d.C. e Aleatoriedade 80 bits, Fonte criptograficamente segura de aleatoriedade, se possível.
Gerar ULID
```sql
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE FUNCTION generate_ulid() RETURNS TEXT AS $$ DECLARE -- Crockford's Base32 encoding BYTEA = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; timestamp BYTEA = E'\000\000\000\000\000\000'; output TEXT = '';
unix_time BIGINT; ulid BYTEA; BEGIN -- 6 timestamp bytes unix_time = (EXTRACT(EPOCH FROM CLOCK_TIMESTAMP()) * 1000)::BIGINT; timestamp = SET_BYTE(timestamp, 0, (unix_time >> 40)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 1, (unix_time >> 32)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 2, (unix_time >> 24)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 3, (unix_time >> 16)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 4, (unix_time >> 8)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 5, unix_time::BIT(8)::INTEGER);
-- 10 entropy bytes ulid = timestamp || gen_random_bytes(10);
-- Encode the timestamp output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 0) & 224) >> 5)); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 0) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 1) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 1) & 7) << 2) | ((GET_BYTE(ulid, 2) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 2) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 2) & 1) << 4) | ((GET_BYTE(ulid, 3) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 3) & 15) << 1) | ((GET_BYTE(ulid, 4) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 4) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 4) & 3) << 3) | ((GET_BYTE(ulid, 5) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 5) & 31)));
-- Encode the entropy output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 6) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 6) & 7) << 2) | ((GET_BYTE(ulid, 7) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 7) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 7) & 1) << 4) | ((GET_BYTE(ulid, 8) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 8) & 15) << 1) | ((GET_BYTE(ulid, 9) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 9) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 9) & 3) << 3) | ((GET_BYTE(ulid, 10) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 10) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 11) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 11) & 7) << 2) | ((GET_BYTE(ulid, 12) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 12) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 12) & 1) << 4) | ((GET_BYTE(ulid, 13) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 13) & 15) << 1) | ((GET_BYTE(ulid, 14) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 14) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 14) & 3) << 3) | ((GET_BYTE(ulid, 15) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 15) & 31)));
RETURN output; END $$ LANGUAGE plpgsql VOLATILE; ```
ULID TO UUID
```sql CREATE OR REPLACE FUNCTION parse_ulid(ulid text) RETURNS bytea AS $$ DECLARE -- 16byte bytes bytea = E'\x00000000 00000000 00000000 00000000'; v char[]; -- Allow for O(1) lookup of index values dec integer[] = ARRAY[ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 1, 18, 19, 1, 20, 21, 0, 22, 23, 24, 25, 26, 255, 27, 28, 29, 30, 31, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 1, 18, 19, 1, 20, 21, 0, 22, 23, 24, 25, 26, 255, 27, 28, 29, 30, 31 ]; BEGIN IF NOT ulid ~* '^[0-7][0-9ABCDEFGHJKMNPQRSTVWXYZ]{25}$' THEN RAISE EXCEPTION 'Invalid ULID: %', ulid; END IF;
v = regexp_split_to_array(ulid, '');
-- 6 bytes timestamp (48 bits) bytes = SET_BYTE(bytes, 0, (dec[ASCII(v[1])] << 5) | dec[ASCII(v[2])]); bytes = SET_BYTE(bytes, 1, (dec[ASCII(v[3])] << 3) | (dec[ASCII(v[4])] >> 2)); bytes = SET_BYTE(bytes, 2, (dec[ASCII(v[4])] << 6) | (dec[ASCII(v[5])] << 1) | (dec[ASCII(v[6])] >> 4)); bytes = SET_BYTE(bytes, 3, (dec[ASCII(v[6])] << 4) | (dec[ASCII(v[7])] >> 1)); bytes = SET_BYTE(bytes, 4, (dec[ASCII(v[7])] << 7) | (dec[ASCII(v[8])] << 2) | (dec[ASCII(v[9])] >> 3)); bytes = SET_BYTE(bytes, 5, (dec[ASCII(v[9])] << 5) | dec[ASCII(v[10])]);
-- 10 bytes of entropy (80 bits); bytes = SET_BYTE(bytes, 6, (dec[ASCII(v[11])] << 3) | (dec[ASCII(v[12])] >> 2)); bytes = SET_BYTE(bytes, 7, (dec[ASCII(v[12])] << 6) | (dec[ASCII(v[13])] << 1) | (dec[ASCII(v[14])] >> 4)); bytes = SET_BYTE(bytes, 8, (dec[ASCII(v[14])] << 4) | (dec[ASCII(v[15])] >> 1)); bytes = SET_BYTE(bytes, 9, (dec[ASCII(v[15])] << 7) | (dec[ASCII(v[16])] << 2) | (dec[ASCII(v[17])] >> 3)); bytes = SET_BYTE(bytes, 10, (dec[ASCII(v[17])] << 5) | dec[ASCII(v[18])]); bytes = SET_BYTE(bytes, 11, (dec[ASCII(v[19])] << 3) | (dec[ASCII(v[20])] >> 2)); bytes = SET_BYTE(bytes, 12, (dec[ASCII(v[20])] << 6) | (dec[ASCII(v[21])] << 1) | (dec[ASCII(v[22])] >> 4)); bytes = SET_BYTE(bytes, 13, (dec[ASCII(v[22])] << 4) | (dec[ASCII(v[23])] >> 1)); bytes = SET_BYTE(bytes, 14, (dec[ASCII(v[23])] << 7) | (dec[ASCII(v[24])] << 2) | (dec[ASCII(v[25])] >> 3)); bytes = SET_BYTE(bytes, 15, (dec[ASCII(v[25])] << 5) | dec[ASCII(v[26])]);
RETURN bytes; END $$ LANGUAGE plpgsql IMMUTABLE;
CREATE OR REPLACE FUNCTION ulid_to_uuid(ulid text) RETURNS uuid AS $$ BEGIN RETURN encode(parse_ulid(ulid), 'hex')::uuid; END $$ LANGUAGE plpgsql IMMUTABLE; ```
UUID to ULID
```sql CREATE OR REPLACE FUNCTION uuid_to_ulid(id uuid) RETURNS text AS $$ DECLARE encoding bytea = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; output text = ''; uuid_bytes bytea = uuid_send(id); BEGIN
-- Encode the timestamp output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 0) & 224) >> 5)); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 0) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 1) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 1) & 7) << 2) | ((GET_BYTE(uuid_bytes, 2) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 2) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 2) & 1) << 4) | ((GET_BYTE(uuid_bytes, 3) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 3) & 15) << 1) | ((GET_BYTE(uuid_bytes, 4) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 4) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 4) & 3) << 3) | ((GET_BYTE(uuid_bytes, 5) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 5) & 31)));
-- Encode the entropy output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 6) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 6) & 7) << 2) | ((GET_BYTE(uuid_bytes, 7) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 7) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 7) & 1) << 4) | ((GET_BYTE(uuid_bytes, 8) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 8) & 15) << 1) | ((GET_BYTE(uuid_bytes, 9) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 9) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 9) & 3) << 3) | ((GET_BYTE(uuid_bytes, 10) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 10) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 11) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 11) & 7) << 2) | ((GET_BYTE(uuid_bytes, 12) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 12) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 12) & 1) << 4) | ((GET_BYTE(uuid_bytes, 13) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 13) & 15) << 1) | ((GET_BYTE(uuid_bytes, 14) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 14) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 14) & 3) << 3) | ((GET_BYTE(uuid_bytes, 15) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 15) & 31)));
RETURN output; END $$ LANGUAGE plpgsql IMMUTABLE; ```
Gera 11 Digitos aleatórios: YBKXG0CKTH4
```sql -- Cria a extensão pgcrypto para gerar uuid CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- Cria a função para gerar ULID CREATE OR REPLACE FUNCTION gen_lrandom() RETURNS TEXT AS $$ DECLARE ts_millis BIGINT; ts_chars TEXT; random_bytes BYTEA; random_chars TEXT; base32_chars TEXT := '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; i INT; BEGIN -- Pega o timestamp em milissegundos ts_millis := FLOOR(EXTRACT(EPOCH FROM clock_timestamp()) * 1000)::BIGINT;
-- Converte o timestamp para base32 ts_chars := ''; FOR i IN REVERSE 0..11 LOOP ts_chars := ts_chars || substr(base32_chars, ((ts_millis >> (5 * i)) & 31) + 1, 1); END LOOP; -- Gera 10 bytes aleatórios e converte para base32 random_bytes := gen_random_bytes(10); random_chars := ''; FOR i IN 0..9 LOOP random_chars := random_chars || substr(base32_chars, ((get_byte(random_bytes, i) >> 3) & 31) + 1, 1); IF i < 9 THEN random_chars := random_chars || substr(base32_chars, (((get_byte(random_bytes, i) & 7) << 2) | (get_byte(random_bytes, i + 1) >> 6)) & 31 + 1, 1); ELSE random_chars := random_chars || substr(base32_chars, ((get_byte(random_bytes, i) & 7) << 2) + 1, 1); END IF; END LOOP; -- Concatena o timestamp e os caracteres aleatórios RETURN ts_chars || random_chars;
END; $$ LANGUAGE plpgsql; ```
Exemplo de USO
```sql -- Criação da extensão caso não exista CREATE EXTENSION IF NOT EXISTS pgcrypto; -- Criação da tabela pessoas CREATE TABLE pessoas ( ID UUID DEFAULT gen_random_uuid ( ) PRIMARY KEY, nome TEXT NOT NULL );
-- Busca Pessoa na tabela SELECT * FROM "pessoas" WHERE uuid_to_ulid ( ID ) = '252FAC9F3V8EF80SSDK8PXW02F'; ```
Fontes
- https://github.com/scoville/pgsql-ulid
- https://github.com/geckoboard/pgulid
-
@ 91bea5cd:1df4451c
2025-02-04 17:15:57Definição de ULID:
Timestamp 48 bits, Aleatoriedade 80 bits Sendo Timestamp 48 bits inteiro, tempo UNIX em milissegundos, Não ficará sem espaço até o ano 10889 d.C. e Aleatoriedade 80 bits, Fonte criptograficamente segura de aleatoriedade, se possível.
Gerar ULID
```sql
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE FUNCTION generate_ulid() RETURNS TEXT AS $$ DECLARE -- Crockford's Base32 encoding BYTEA = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; timestamp BYTEA = E'\000\000\000\000\000\000'; output TEXT = '';
unix_time BIGINT; ulid BYTEA; BEGIN -- 6 timestamp bytes unix_time = (EXTRACT(EPOCH FROM CLOCK_TIMESTAMP()) * 1000)::BIGINT; timestamp = SET_BYTE(timestamp, 0, (unix_time >> 40)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 1, (unix_time >> 32)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 2, (unix_time >> 24)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 3, (unix_time >> 16)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 4, (unix_time >> 8)::BIT(8)::INTEGER); timestamp = SET_BYTE(timestamp, 5, unix_time::BIT(8)::INTEGER);
-- 10 entropy bytes ulid = timestamp || gen_random_bytes(10);
-- Encode the timestamp output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 0) & 224) >> 5)); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 0) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 1) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 1) & 7) << 2) | ((GET_BYTE(ulid, 2) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 2) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 2) & 1) << 4) | ((GET_BYTE(ulid, 3) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 3) & 15) << 1) | ((GET_BYTE(ulid, 4) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 4) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 4) & 3) << 3) | ((GET_BYTE(ulid, 5) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 5) & 31)));
-- Encode the entropy output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 6) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 6) & 7) << 2) | ((GET_BYTE(ulid, 7) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 7) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 7) & 1) << 4) | ((GET_BYTE(ulid, 8) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 8) & 15) << 1) | ((GET_BYTE(ulid, 9) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 9) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 9) & 3) << 3) | ((GET_BYTE(ulid, 10) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 10) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 11) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 11) & 7) << 2) | ((GET_BYTE(ulid, 12) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 12) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 12) & 1) << 4) | ((GET_BYTE(ulid, 13) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 13) & 15) << 1) | ((GET_BYTE(ulid, 14) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 14) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(ulid, 14) & 3) << 3) | ((GET_BYTE(ulid, 15) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(ulid, 15) & 31)));
RETURN output; END $$ LANGUAGE plpgsql VOLATILE; ```
ULID TO UUID
```sql CREATE OR REPLACE FUNCTION parse_ulid(ulid text) RETURNS bytea AS $$ DECLARE -- 16byte bytes bytea = E'\x00000000 00000000 00000000 00000000'; v char[]; -- Allow for O(1) lookup of index values dec integer[] = ARRAY[ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 1, 18, 19, 1, 20, 21, 0, 22, 23, 24, 25, 26, 255, 27, 28, 29, 30, 31, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 1, 18, 19, 1, 20, 21, 0, 22, 23, 24, 25, 26, 255, 27, 28, 29, 30, 31 ]; BEGIN IF NOT ulid ~* '^[0-7][0-9ABCDEFGHJKMNPQRSTVWXYZ]{25}$' THEN RAISE EXCEPTION 'Invalid ULID: %', ulid; END IF;
v = regexp_split_to_array(ulid, '');
-- 6 bytes timestamp (48 bits) bytes = SET_BYTE(bytes, 0, (dec[ASCII(v[1])] << 5) | dec[ASCII(v[2])]); bytes = SET_BYTE(bytes, 1, (dec[ASCII(v[3])] << 3) | (dec[ASCII(v[4])] >> 2)); bytes = SET_BYTE(bytes, 2, (dec[ASCII(v[4])] << 6) | (dec[ASCII(v[5])] << 1) | (dec[ASCII(v[6])] >> 4)); bytes = SET_BYTE(bytes, 3, (dec[ASCII(v[6])] << 4) | (dec[ASCII(v[7])] >> 1)); bytes = SET_BYTE(bytes, 4, (dec[ASCII(v[7])] << 7) | (dec[ASCII(v[8])] << 2) | (dec[ASCII(v[9])] >> 3)); bytes = SET_BYTE(bytes, 5, (dec[ASCII(v[9])] << 5) | dec[ASCII(v[10])]);
-- 10 bytes of entropy (80 bits); bytes = SET_BYTE(bytes, 6, (dec[ASCII(v[11])] << 3) | (dec[ASCII(v[12])] >> 2)); bytes = SET_BYTE(bytes, 7, (dec[ASCII(v[12])] << 6) | (dec[ASCII(v[13])] << 1) | (dec[ASCII(v[14])] >> 4)); bytes = SET_BYTE(bytes, 8, (dec[ASCII(v[14])] << 4) | (dec[ASCII(v[15])] >> 1)); bytes = SET_BYTE(bytes, 9, (dec[ASCII(v[15])] << 7) | (dec[ASCII(v[16])] << 2) | (dec[ASCII(v[17])] >> 3)); bytes = SET_BYTE(bytes, 10, (dec[ASCII(v[17])] << 5) | dec[ASCII(v[18])]); bytes = SET_BYTE(bytes, 11, (dec[ASCII(v[19])] << 3) | (dec[ASCII(v[20])] >> 2)); bytes = SET_BYTE(bytes, 12, (dec[ASCII(v[20])] << 6) | (dec[ASCII(v[21])] << 1) | (dec[ASCII(v[22])] >> 4)); bytes = SET_BYTE(bytes, 13, (dec[ASCII(v[22])] << 4) | (dec[ASCII(v[23])] >> 1)); bytes = SET_BYTE(bytes, 14, (dec[ASCII(v[23])] << 7) | (dec[ASCII(v[24])] << 2) | (dec[ASCII(v[25])] >> 3)); bytes = SET_BYTE(bytes, 15, (dec[ASCII(v[25])] << 5) | dec[ASCII(v[26])]);
RETURN bytes; END $$ LANGUAGE plpgsql IMMUTABLE;
CREATE OR REPLACE FUNCTION ulid_to_uuid(ulid text) RETURNS uuid AS $$ BEGIN RETURN encode(parse_ulid(ulid), 'hex')::uuid; END $$ LANGUAGE plpgsql IMMUTABLE; ```
UUID to ULID
```sql CREATE OR REPLACE FUNCTION uuid_to_ulid(id uuid) RETURNS text AS $$ DECLARE encoding bytea = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; output text = ''; uuid_bytes bytea = uuid_send(id); BEGIN
-- Encode the timestamp output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 0) & 224) >> 5)); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 0) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 1) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 1) & 7) << 2) | ((GET_BYTE(uuid_bytes, 2) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 2) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 2) & 1) << 4) | ((GET_BYTE(uuid_bytes, 3) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 3) & 15) << 1) | ((GET_BYTE(uuid_bytes, 4) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 4) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 4) & 3) << 3) | ((GET_BYTE(uuid_bytes, 5) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 5) & 31)));
-- Encode the entropy output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 6) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 6) & 7) << 2) | ((GET_BYTE(uuid_bytes, 7) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 7) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 7) & 1) << 4) | ((GET_BYTE(uuid_bytes, 8) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 8) & 15) << 1) | ((GET_BYTE(uuid_bytes, 9) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 9) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 9) & 3) << 3) | ((GET_BYTE(uuid_bytes, 10) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 10) & 31))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 11) & 248) >> 3)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 11) & 7) << 2) | ((GET_BYTE(uuid_bytes, 12) & 192) >> 6))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 12) & 62) >> 1)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 12) & 1) << 4) | ((GET_BYTE(uuid_bytes, 13) & 240) >> 4))); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 13) & 15) << 1) | ((GET_BYTE(uuid_bytes, 14) & 128) >> 7))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 14) & 124) >> 2)); output = output || CHR(GET_BYTE(encoding, ((GET_BYTE(uuid_bytes, 14) & 3) << 3) | ((GET_BYTE(uuid_bytes, 15) & 224) >> 5))); output = output || CHR(GET_BYTE(encoding, (GET_BYTE(uuid_bytes, 15) & 31)));
RETURN output; END $$ LANGUAGE plpgsql IMMUTABLE; ```
Gera 11 Digitos aleatórios: YBKXG0CKTH4
```sql -- Cria a extensão pgcrypto para gerar uuid CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- Cria a função para gerar ULID CREATE OR REPLACE FUNCTION gen_lrandom() RETURNS TEXT AS $$ DECLARE ts_millis BIGINT; ts_chars TEXT; random_bytes BYTEA; random_chars TEXT; base32_chars TEXT := '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; i INT; BEGIN -- Pega o timestamp em milissegundos ts_millis := FLOOR(EXTRACT(EPOCH FROM clock_timestamp()) * 1000)::BIGINT;
-- Converte o timestamp para base32 ts_chars := ''; FOR i IN REVERSE 0..11 LOOP ts_chars := ts_chars || substr(base32_chars, ((ts_millis >> (5 * i)) & 31) + 1, 1); END LOOP; -- Gera 10 bytes aleatórios e converte para base32 random_bytes := gen_random_bytes(10); random_chars := ''; FOR i IN 0..9 LOOP random_chars := random_chars || substr(base32_chars, ((get_byte(random_bytes, i) >> 3) & 31) + 1, 1); IF i < 9 THEN random_chars := random_chars || substr(base32_chars, (((get_byte(random_bytes, i) & 7) << 2) | (get_byte(random_bytes, i + 1) >> 6)) & 31 + 1, 1); ELSE random_chars := random_chars || substr(base32_chars, ((get_byte(random_bytes, i) & 7) << 2) + 1, 1); END IF; END LOOP; -- Concatena o timestamp e os caracteres aleatórios RETURN ts_chars || random_chars;
END; $$ LANGUAGE plpgsql; ```
Exemplo de USO
```sql -- Criação da extensão caso não exista CREATE EXTENSION IF NOT EXISTS pgcrypto; -- Criação da tabela pessoas CREATE TABLE pessoas ( ID UUID DEFAULT gen_random_uuid ( ) PRIMARY KEY, nome TEXT NOT NULL );
-- Busca Pessoa na tabela SELECT * FROM "pessoas" WHERE uuid_to_ulid ( ID ) = '252FAC9F3V8EF80SSDK8PXW02F'; ```
Fontes
- https://github.com/scoville/pgsql-ulid
- https://github.com/geckoboard/pgulid
-
@ 6389be64:ef439d32
2025-05-03 07:17:36In Jewish folklore, the golem—shaped from clay—is brought to life through sacred knowledge. Clay’s negative charge allows it to bind nutrients and water, echoing its mythic function as a vessel of potential.
Biochar in Amazonian terra preta shares this trait: it holds life-sustaining ions and harbors living intention. Both materials, inert alone, become generative through human action. The golem and black earths exist in parallel—one cultural, one ecological—shaping the lifeless into something that serves, protects, and endures.
originally posted at https://stacker.news/items/970089
-
@ e3ba5e1a:5e433365
2025-02-04 08:29:00President Trump has started rolling out his tariffs, something I blogged about in November. People are talking about these tariffs a lot right now, with many people (correctly) commenting on how consumers will end up with higher prices as a result of these tariffs. While that part is true, I’ve seen a lot of people taking it to the next, incorrect step: that consumers will pay the entirety of the tax. I put up a poll on X to see what people thought, and while the right answer got a lot of votes, it wasn't the winner.
For purposes of this blog post, our ultimate question will be the following:
- Suppose apples currently sell for $1 each in the entire United States.
- There are domestic sellers and foreign sellers of apples, all receiving the same price.
- There are no taxes or tariffs on the purchase of apples.
- The question is: if the US federal government puts a $0.50 import tariff per apple, what will be the change in the following:
- Number of apples bought in the US
- Price paid by buyers for apples in the US
- Post-tax price received by domestic apple producers
- Post-tax price received by foreign apple producers
Before we can answer that question, we need to ask an easier, first question: before instituting the tariff, why do apples cost $1?
And finally, before we dive into the details, let me provide you with the answers to the ultimate question. I recommend you try to guess these answers before reading this, and if you get it wrong, try to understand why:
- The number of apples bought will go down
- The buyers will pay more for each apple they buy, but not the full amount of the tariff
- Domestic apple sellers will receive a higher price per apple
- Foreign apple sellers will receive a lower price per apple, but not lowered by the full amount of the tariff
In other words, regardless of who sends the payment to the government, both taxed parties (domestic buyers and foreign sellers) will absorb some of the costs of the tariff, while domestic sellers will benefit from the protectionism provided by tariffs and be able to sell at a higher price per unit.
Marginal benefit
All of the numbers discussed below are part of a helper Google Sheet I put together for this analysis. Also, apologies about the jagged lines in the charts below, I hadn’t realized before starting on this that there are some difficulties with creating supply and demand charts in Google Sheets.
Let’s say I absolutely love apples, they’re my favorite food. How much would I be willing to pay for a single apple? You might say “$1, that’s the price in the supermarket,” and in many ways you’d be right. If I walk into supermarket A, see apples on sale for $50, and know that I can buy them at supermarket B for $1, I’ll almost certainly leave A and go buy at B.
But that’s not what I mean. What I mean is: how high would the price of apples have to go everywhere so that I’d no longer be willing to buy a single apple? This is a purely personal, subjective opinion. It’s impacted by how much money I have available, other expenses I need to cover, and how much I like apples. But let’s say the number is $5.
How much would I be willing to pay for another apple? Maybe another $5. But how much am I willing to pay for the 1,000th apple? 10,000th? At some point, I’ll get sick of apples, or run out of space to keep the apples, or not be able to eat, cook, and otherwise preserve all those apples before they rot.
The point being: I’ll be progressively willing to spend less and less money for each apple. This form of analysis is called marginal benefit: how much benefit (expressed as dollars I’m willing to spend) will I receive from each apple? This is a downward sloping function: for each additional apple I buy (quantity demanded), the price I’m willing to pay goes down. This is what gives my personal demand curve. And if we aggregate demand curves across all market participants (meaning: everyone interested in buying apples), we end up with something like this:
Assuming no changes in people’s behavior and other conditions in the market, this chart tells us how many apples will be purchased by our buyers at each price point between $0.50 and $5. And ceteris paribus (all else being equal), this will continue to be the demand curve for apples.
Marginal cost
Demand is half the story of economics. The other half is supply, or: how many apples will I sell at each price point? Supply curves are upward sloping: the higher the price, the more a person or company is willing and able to sell a product.
Let’s understand why. Suppose I have an apple orchard. It’s a large property right next to my house. With about 2 minutes of effort, I can walk out of my house, find the nearest tree, pick 5 apples off the tree, and call it a day. 5 apples for 2 minutes of effort is pretty good, right?
Yes, there was all the effort necessary to buy the land, and plant the trees, and water them… and a bunch more than I likely can’t even guess at. We’re going to ignore all of that for our analysis, because for short-term supply-and-demand movement, we can ignore these kinds of sunk costs. One other simplification: in reality, supply curves often start descending before ascending. This accounts for achieving efficiencies of scale after the first number of units purchased. But since both these topics are unneeded for understanding taxes, I won’t go any further.
Anyway, back to my apple orchard. If someone offers me $0.50 per apple, I can do 2 minutes of effort and get $2.50 in revenue, which equates to a $75/hour wage for me. I’m more than happy to pick apples at that price!
However, let’s say someone comes to buy 10,000 apples from me instead. I no longer just walk out to my nearest tree. I’m going to need to get in my truck, drive around, spend the day in the sun, pay for gas, take a day off of my day job (let’s say it pays me $70/hour). The costs go up significantly. Let’s say it takes 5 days to harvest all those apples myself, it costs me $100 in fuel and other expenses, and I lose out on my $70/hour job for 5 days. We end up with:
- Total expenditure: $100 + $70 * 8 hours a day * 5 days \== $2900
- Total revenue: $5000 (10,000 apples at $0.50 each)
- Total profit: $2100
So I’m still willing to sell the apples at this price, but it’s not as attractive as before. And as the number of apples purchased goes up, my costs keep increasing. I’ll need to spend more money on fuel to travel more of my property. At some point I won’t be able to do the work myself anymore, so I’ll need to pay others to work on the farm, and they’ll be slower at picking apples than me (less familiar with the property, less direct motivation, etc.). The point being: at some point, the number of apples can go high enough that the $0.50 price point no longer makes me any money.
This kind of analysis is called marginal cost. It refers to the additional amount of expenditure a seller has to spend in order to produce each additional unit of the good. Marginal costs go up as quantity sold goes up. And like demand curves, if you aggregate this data across all sellers, you get a supply curve like this:
Equilibrium price
We now know, for every price point, how many apples buyers will purchase, and how many apples sellers will sell. Now we find the equilibrium: where the supply and demand curves meet. This point represents where the marginal benefit a buyer would receive from the next buyer would be less than the cost it would take the next seller to make it. Let’s see it in a chart:
You’ll notice that these two graphs cross at the $1 price point, where 63 apples are both demanded (bought by consumers) and supplied (sold by producers). This is our equilibrium price. We also have a visualization of the surplus created by these trades. Everything to the left of the equilibrium point and between the supply and demand curves represents surplus: an area where someone is receiving something of more value than they give. For example:
- When I bought my first apple for $1, but I was willing to spend $5, I made $4 of consumer surplus. The consumer portion of the surplus is everything to the left of the equilibrium point, between the supply and demand curves, and above the equilibrium price point.
- When a seller sells his first apple for $1, but it only cost $0.50 to produce it, the seller made $0.50 of producer surplus. The producer portion of the surplus is everything to the left of the equilibrium point, between the supply and demand curves, and below the equilibrium price point.
Another way of thinking of surplus is “every time someone got a better price than they would have been willing to take.”
OK, with this in place, we now have enough information to figure out how to price in the tariff, which we’ll treat as a negative externality.
Modeling taxes
Alright, the government has now instituted a $0.50 tariff on every apple sold within the US by a foreign producer. We can generally model taxes by either increasing the marginal cost of each unit sold (shifting the supply curve up), or by decreasing the marginal benefit of each unit bought (shifting the demand curve down). In this case, since only some of the producers will pay the tax, it makes more sense to modify the supply curve.
First, let’s see what happens to the foreign seller-only supply curve when you add in the tariff:
With the tariff in place, for each quantity level, the price at which the seller will sell is $0.50 higher than before the tariff. That makes sense: if I was previously willing to sell my 82nd apple for $3, I would now need to charge $3.50 for that apple to cover the cost of the tariff. We see this as the tariff “pushing up” or “pushing left” the original supply curve.
We can add this new supply curve to our existing (unchanged) supply curve for domestic-only sellers, and we end up with a result like this:
The total supply curve adds up the individual foreign and domestic supply curves. At each price point, we add up the total quantity each group would be willing to sell to determine the total quantity supplied for each price point. Once we have that cumulative supply curve defined, we can produce an updated supply-and-demand chart including the tariff:
As we can see, the equilibrium has shifted:
- The equilibrium price paid by consumers has risen from $1 to $1.20.
- The total number of apples purchased has dropped from 63 apples to 60 apples.
- Consumers therefore received 3 less apples. They spent $72 for these 60 apples, whereas previously they spent $63 for 3 more apples, a definite decrease in consumer surplus.
- Foreign producers sold 36 of those apples (see the raw data in the linked Google Sheet), for a gross revenue of $43.20. However, they also need to pay the tariff to the US government, which accounts for $18, meaning they only receive $25.20 post-tariff. Previously, they sold 42 apples at $1 each with no tariff to be paid, meaning they took home $42.
- Domestic producers sold the remaining 24 apples at $1.20, giving them a revenue of $28.80. Since they don’t pay the tariff, they take home all of that money. By contrast, previously, they sold 21 apples at $1, for a take-home of $21.
- The government receives $0.50 for each of the 60 apples sold, or in other words receives $30 in revenue it wouldn’t have received otherwise.
We could be more specific about the surpluses, and calculate the actual areas for consumer surplus, producer surplus, inefficiency from the tariff, and government revenue from the tariff. But I won’t bother, as those calculations get slightly more involved. Instead, let’s just look at the aggregate outcomes:
- Consumers were unquestionably hurt. Their price paid went up by $0.20 per apple, and received less apples.
- Foreign producers were also hurt. Their price received went down from the original $1 to the new post-tariff price of $1.20, minus the $0.50 tariff. In other words: foreign producers only receive $0.70 per apple now. This hurt can be mitigated by shifting sales to other countries without a tariff, but the pain will exist regardless.
- Domestic producers scored. They can sell less apples and make more revenue doing it.
- And the government walked away with an extra $30.
Hopefully you now see the answer to the original questions. Importantly, while the government imposed a $0.50 tariff, neither side fully absorbed that cost. Consumers paid a bit more, foreign producers received a bit less. The exact details of how that tariff was split across the groups is mediated by the relevant supply and demand curves of each group. If you want to learn more about this, the relevant search term is “price elasticity,” or how much a group’s quantity supplied or demanded will change based on changes in the price.
Other taxes
Most taxes are some kind of a tax on trade. Tariffs on apples is an obvious one. But the same applies to income tax (taxing the worker for the trade of labor for money) or payroll tax (same thing, just taxing the employer instead). Interestingly, you can use the same model for analyzing things like tax incentives. For example, if the government decided to subsidize domestic apple production by giving the domestic producers a $0.50 bonus for each apple they sell, we would end up with a similar kind of analysis, except instead of the foreign supply curve shifting up, we’d see the domestic supply curve shifting down.
And generally speaking, this is what you’ll always see with government involvement in the economy. It will result in disrupting an existing equilibrium, letting the market readjust to a new equilibrium, and incentivization of some behavior, causing some people to benefit and others to lose out. We saw with the apple tariff, domestic producers and the government benefited while others lost.
You can see the reverse though with tax incentives. If I give a tax incentive of providing a deduction (not paying income tax) for preschool, we would end up with:
- Government needs to make up the difference in tax revenue, either by raising taxes on others or printing more money (leading to inflation). Either way, those paying the tax or those holding government debased currency will pay a price.
- Those people who don’t use the preschool deduction will receive no benefit, so they simply pay a cost.
- Those who do use the preschool deduction will end up paying less on tax+preschool than they would have otherwise.
This analysis is fully amoral. It’s not saying whether providing subsidized preschool is a good thing or not, it simply tells you where the costs will be felt, and points out that such government interference in free economic choice does result in inefficiencies in the system. Once you have that knowledge, you’re more well educated on making a decision about whether the costs of government intervention are worth the benefits.
-
@ 5d4b6c8d:8a1c1ee3
2025-05-03 02:29:16My month long endeavor to be less of a lazibones has concluded.
For the whole month, I fairly consistently did whatever little chores needed to be done, as soon as I noticed they needed to be done. That was mostly laundry, making the bed, and (un)loading the dishwasher, plus lots of random cleaning up after the dog and kid.
Even with focusing less on getting steps, my steps were up about 15% from the previous month (which had nicer weather, btw). These were less empty steps, too. I was actually being productive.
I'm not sure any of the JBP-esque room cleaning type benefits materialized, but it was good for me, so I'll try to carry some new habits forward.
originally posted at https://stacker.news/items/969995
-
@ c9badfea:610f861a
2025-05-13 00:21:07► Gaming Tools
- ↪️ Download Managers
- ↪️ Media Posters / Covers
- ↪️ Game Soundtracks
- ⭐ PCGamingWiki - Game Fixes & Workarounds / Discord
- ⭐ Sunshine, Apollo or Moonlight - Gaming Remote Desktop Client / Mobile
- ⭐ Library of Codexes - Game Codex Library
- ⭐ HowLongToBeat, 2 - Find Average Game Lengths
- ⭐ /r/tipofmyjoystick - Find Games via Screenshot or Description
- ⭐ Game Pauser - Pause Unpausable Cutscenes
- ⭐ Valve Archive - Rare Valve Data Archive
- VGHF Digital Archive - Historical Documents, Magazines, Transcripts, etc. / Archive
- NIWA - Nintendo Independent Wiki Alliance / Discord
- Gog To Free - Add Piracy Site Links to GOG Store
- The Models Resource - Game Models
- The Spriters Resource - Video Game Sprites
- MiiCharacters - Famous Mii Creation Guides
- Archiverse - Miiverse Archive
- Buzz In - Online Buzzer System
- Challonge or Lorenzi's Game Boards - Tournament Creators / Managers
- Medal - Shadowplay for non Nvidia Cards / Premium Bypass
- RePlays - Game Recording Manager
- Moments - Game Clip Tool
- Keystrokes - Keystrokes Overlay
- PSNProfiles - Trophy Guide / PSN Profile Viewer
- Achievement Watcher - Achievement File Parser, Notifications & Playtime Tracker / Note
- Shmuplations - Japanese Developer Interviews
- Wiki.gg - Game Wikis / Redirector
- CSDb or GB64 - Commodore 64 Resources
- Awesome J2ME - J2ME Resources
- GARbro - Browse / Extract Visual Novel Resources
- ConceptArt - Video Game Concept Art
- How Denuvo Works
- Game Cracking / Repacking Guides
▷ Game Launchers
- ⭐ Playnite - Game Library / Launcher / Extensions / Subreddit / Discord / GitHub
- ⭐ GoG Galaxy or Project GLD / GitHub - Game Libraries / Launchers
- Ascendara - Game Launcher / Downloader / Discord / GitHub
- Fit Launcher - Game Launcher / Torrent Client / Discord
- Launchbox - Retro / Console Game Library / Launcher
- GameHUB Launcher - Rainmeter Game Launcher
- Hydra - Game Launcher / Torrent Client / Plugins, 2 / Game Search / Discord / Telegram
- OpenGamepadUI - Gamepad Native Launcher
- JackboxUtility - Jackbox Games Launcher / Discord / GitHub
- GameVault - Self-Hosted Gaming Platform / Discord / GitHub
▷ Optimization Tools
- 🌐 Nvidia Overclocking - Nvidia Overclocking Resources
- ⭐ SpecialK - Game Optimization Tool / Discord
- ⭐ MSI Afterburner, GPU Tweak III or EVGA Precision X1 / Warning - GPU Overclocking / Guide
- ⭐ SystemRequirementsLab or PCGameBenchmark - Game Requirements Tests
- ⭐ MSI Kombustor - GPU Benchmark Test
- ⭐ ProSettings, Share Gaming Tweaks, /r/OptimizedGaming, SweetFX, ENBSeries - Settings Optimization Guides
- ⭐ DisplayMagician or AutoActions - Per-Game Display Profiles
- ⭐ Lossless Scaling, Magpie, DLSS2FSR or OptiScaler - Game Upscaling
- RagnoTech Optimization Catalog or TroubleChute - Gaming Optimization Guides
- cancerogenoslab or MikeMartin - FPS / Latency Guides
- Fraps, OCAT / GitHub, Rivatuner Statistics Server, CapFrameX or Xbox Game Bar - FPS Tracking / Benchmarking
- SSTap - Decrease Ping
- Overclock - Overclocking Forum
- Ryzen Master Utility - Overclocking Control for Ryzen Desktop CPU
- AMD-APU-Tuning-Utility - AMD APU Tuning
- DLSS Swapper - Download, Manage & Swap DLSS
- dgVoodoo2 - Glide & DirectX Graphics Wrapper
- VibranceGUI - Automate Digital Vibrance Control
- Vuenxx - Free FSR 3 Mods / Note
- ReShade - Generic Post-Processing Injector / Easy Installer / Shaders / Discord / GitHub
- Scanlines for Windows - Add Scanlines to Games / Discord
- DLSSG to FSR3 - AMD FSR3 Frame Generation for NVIDIA
- WindowedBorderlessGaming, Borderless Gaming or FullScreenizer - Borderless Windows for All Games
- DxWnd - Play Fullscreen Only Games in Window
- WSGF - Widescreen Gaming Community / Solutions
- Widescreen Fixes Pack / GitHub, Widescreen Fixer v3.4 or Flawless Widescreen - Widescreen Fixes
- 4GB Patch - Patch x86 executables to use 4GB
▷ Controller Tools
- ⭐ DS4Windows / 2, AntiMicroX, DualSenseX, DualSenseY, PCXSense or Input Remapper - Gamepad Input Tools / Steam Note
- x360ce / GitHub - DS4 / 360 Controller Emulator
- XOutput - DirectInput to Xinput wrapper
- DsHidMini - Use PS3 Controllers on Windows
- JoyToKey - Controller Emulator
- Spud Controller - Controller / Mouse Input Displays
- Gamepad-Tester or AresLuna - Controller Connectivity Testers
- hidusbf - Decrease DS4/5 Input Lag / Video
- HidHide - Input Device Firewall
- Whitescent Engine - Use Phone as Joy Stick / GitHub
- JoystickGremlin - Remap Joystick Devices
- Arcade Controls - DIY Arcade Controls
- AltCtrls - Custom Controller Crafting Resources
▷ Game Mods
- 🌐 Big List of Randomizers - Game Randomizer Index / Discord / GitHub
- ↪️ Game Mods - Mods for Individual Games
- ⭐ ChronoCrash - Side Scrolling Modding Forum / Games List
- ⭐ ModDB - Game Mods
- ⭐ Nexus Mods - Game Mods / Bulk Downloader / Redirect Skip / Download Hidden / Discord
- ⭐ ModdingLinked - Bethesda Game Modding Guides / Discord
- WeMod - Cheats / Trainer Manager / Single Player Only / Unlocker / Discord
- ModOrganizer - Mod Manager
- Otis_Inf Camera Mods or CinematicTools Archive - Game Camera Mods
- Mod.io - Cross Platform Game Mods Support / Discord
- WabbaJack - Automated Modlist Installer / Discord
- ModWorkshop - Game Mods / Discord
- GameFront - Game Mods / Discord
- Video Game Mods - Game Mods / Discord
- GameBanana - Game Mods / Discord
- SMods - Game Mods
- Silent's Blog - Game Mods / Patches
- FlingTrainer - Game Mods / Trainers for Single Player Games
- Top Mods - PC Game Mods
- ProAsm - Retro Game Mods
- Thunderstore - Unity Game Mods
- Gale or r2modman - Thunderstore / BepInEx Unity Mod Managers
- Archipelago - Multi-Game Randomizer
▷ Game Saves
- ↪️ File Backup / Sync
- ⭐ Ludusavi or GameSave Manager - Game Save Managers / Backup
- PCGamingWiki - Save Locations Listed Under "Game Data"
- Save Game World - PC / PlayStation / Switch / Xbox / Wii
- SavegameDownload.com - PC / PlayStation / Switch / Xbox / Android
- YourSaveGames - PC / PSP
- SaveGame.Pro - PC
- Saves For Games - PC
- GC Saves - Gamecube / Discord
- Save Editor Online - Game Save Editor
▷ Game Maps
- 🌐 Map Genie, GameMaps, THGL or VGMaps - Game Map Indexes
- noclip - Explore Game Maps
- KudosPrime - Racing Game Maps
- bspview - Explore Quake & GoldSRC Maps / GitHub
- NES Maps - NES Game Maps
- SNES Maps - SNES Game Maps
- Forgehub - Halo Maps / Discord
- Zelda BotW Street View - Breath of the Wild Map
- Palworld Interactive - Palworld Map
- Fortnite.gg - Fortnite Map, Guides, Skins, etc.
- Hitmaps - Hitman Maps / Discord
- Hallownest or Interactive HN Map - Hollow Knight Maps
▷ Git Gud
- Note - There are guides on almost every Steam page, some for beginners, 100% completion walkthroughs, and more.
- 🌐 Mousepad Mastersheet - Mousepad Comparison Chart
- 🌐 Gamepadla - Gamepad / Controller Latency Tests
- ⭐ Before I Play - Tips for any Game
- ⭐ GamingSmart, Sens Covnerter, Sens Converter or Mouse Sensitivity - Game Sensitivity Converters / Tools
- ⭐ Aim400kg, 3D Aim Trainer, Aimlabs, Aiming.Pro or AimTrainer - Aim Training
- ⭐ Speedrun - Speedrunning Streams, Leaderboards, Resources, etc.
- GameGuides, DotGG, Retro Guides, Game8, StrategyWiki, Samurai Gamers, UHS Hints or Kirklands - Game Guides
- Voltaic - Aim Benchmark & Guides
- Piper - Gaming Mouse Config Tool
- LiveSplit - Customizable Speedrun Timer
- The Manual Project, ReplacementDocs or GamesDatabase - Game Manuals
- SNES Manuals - SNES Game Manuals
- Ukikipedia - SM64 Speedrunning Wiki
- FOUR.lol - Tetris Openers Wiki
- Underdogs Cup Lounge - Tetris Resources & Coaching Discord
- Fumen - Tetris Field Editor
► Tracking / Databases
- ⭐ Glitchwave - Tracking / Database
- ⭐ Backloggd - Tracking / Database
- ⭐ Infinite Backlog - Tracking / Database
- ⭐ IGDB - Game Database
- Moby Games - Game Database
- GiantBomb - Game Database
- Grouvee - Tracking / Database
- RankOne - Tracking / Database
- GG - Tracking / Database
- KeepTrackOfMyGames - Tracking / Database
- PlayTracker - Tracking / Database
- Gamelib - Tracking / Database
- Backloggery - Tracking / Database
- Exophase - Tracking / Database
- LaunchBox Games Database - Game Database
- GameFAQs - Game Database
- Rawg - Game Database
- rate.house - Game Database
- listal - Game Database
- FrontierNav - Game Database
- IMDb Advanced Search - Game Search
- Low Spec Games - Low Spec Game Database / Text Only / GitHub
- JRPGC - JRPG Databases / Discord
- RPGCodex - RPG Database / Forum
- SteamPeek or IndieDB - Indie Game Databases
- RetroShowcase or The Good Old Days - Retro Game Databases
- Sega Retro - Sega Game Database
- AtariAge - Atari Game Database
- Polish Pixels - Retro Polish Games Database
- Co-Optimu or PlayCo-opGame - Co-Op Game Databases
- SvenEvils Playground or Local Multiplayer List - Local Multiplayer Game Database
- DoesItPlay? - Offline Game Compatibility Database
- CloudBase - Cloud Game Database
- HOTU - Rare Game Database
- Delisted Games - Delisted Games Database
- BoardGameGeek or Kallax - Board Game Database
- Are We Anti-Cheat Yet? - Anti-Cheat Game Database / GNU/Linux or Wine/Proton Compatibility
- Unseen64 - Cancelled / Lost Games
- Incendar - Game Release Date Tracker
▷ Curated Recommendations
- 🌐 Awesome Engineering Games - Engineering Games
- ⭐ AcclaimedVideoGames or VideoGameCanon - Game Top 1000 List
- ⭐ OpenCritic - Critic Game Reviews / Ratings
- ⭐ TasteDive, Mythic Maps / Discord or /r/ifyoulikeblank - Game Recommendations
- Rec Charts - Game Recommendation Guides
- Board Game Breakdown - Board Game Reviews
- Can I Play That? - Video Game Accessibility Reviews
- MoreGamesLike or Games Like Finder - Find Similar Games
► Steam / Epic
- 🌐 Steam Tool Collection, steam.tools or SteamInternals - Steam Tool Indexes
- ↪️ Steam Workshop Downloaders
- ⭐ SDD GUI or DepotDownloader - Steam Depot Downloaders
- ⭐ RedAlt SteamUp - Steam Depot Update Creator
- Steam Link - Stream Steam Library to TV
- Steam Mover - Store Steam Games on Multiple Drives
- Steam Rom Manager - Add ROMs to Steam
- BoilR - Sync Game Platforms with Steam
- SteamAchievementManager - Steam Achievement Manager
- SteamHunters / Discord or TrueSteamAchievements - Steam Achievement Tracking / Leaderboards / Profiles
- SteamID / 2, SteamDetective or SteamFinder - Steam ID Lookup
- SteamGuard - Generate Steam 2FA Codes
- Super Steam Packer - Pack and Share Your Steam Games
- Steam API Check Bypass - Steam API Check Bypass
▷ Client Tools
- ⭐ Heroic Games Launcher - Epic / GOG / Prime Games Launcher
- ⭐ Nemirtingas Epic Emulator - Epic Online Service Emulator
- ⭐ TCNO - Platform Account Switcher / Tutorial
- LEGENDARY / Discord or Rare - Epic Games Launchers
- Depressurizer or Backlog.rip - Steam Library Organizers
- Steam Art Manager - Find / Manage Game Art
- Millennium - Steam Client Customization / Discord / GitHub
- Watt Toolkit - Enhance Steam Functionality / GitHub
- SteamCMD - Command-Line Steam Client
- Adwaita for Steam - Steam GNOME Skin
- Backgrounds.Gallery - Steam Backgrounds
- Steam.Design - Steam Background Cropper
- Center.Steam - Center Steam Text
- Steam Inventory Helper - Steam Inventory Enhancement Extension
- Fuck Off EA App - Use Origin Instead of EA App
▷ DLC Unlock / DRM Bypass
- ⭐ CreamAPI - Steam DLC Unlocker / Auto Setup
- ⭐ GreenLuma - Offline Steam DRM Bypass / DLC Unlocker / Manager / Family Bypass Guide
- ⭐ Unsteam - Online Steam DRM Bypass / Cracked Servers Only / Multiplayer Emulator
- ⭐ Steamless - Steam DRM Remover
- ⭐ Goldberg, 2 / GUI / Guide or SmartSteamEmu - Offline Steam / Multiplayer Emulators
- ⭐ Steam-Auto-Crack or SteamAutoCracker - Auto Apply Goldberg + Steamless / Guide
- ⭐ Koalageddon - DLC Unlocker for Epic, Origin, EA, Uplay
- DreamAPI - DLC Unlocker for Epic, Origin and EA
- Anadius - DLC Unlockers for EA and Origin
- ScreamAPI - Epic DLC Unlocker
- GetDataFromSteam-SteamDB - Find SteamDB DLC Data / Create Configs
▷ Steam Store
- ⭐ SteamDB / Extension or Steambase / Extension - Steam Insights Tools
- AugmentedSteam - Steam Web Enhancement Extension
- SteamScout - Steam Review Analyzer
- Steam Link Dropdown - Add Piracy Site Links to Steam Store
- UWPHook - Add Windows Store Games to Steam
- Free Packages - Mass Activate All Free Steam Games / $5 Account Min / Guide
- Wishlist Removals - Remove Hidden Items from Steam Wishlist
- Steam URL Opener - Open URLs Inside Steam Client
- Steam Age Bypass - Bypass Age Confirmation
- Steam Currency Converter / Note - Steam Currency Converter
► Multiplayer Tools
- ⭐ Nucleus Co-op - Local Split-Screen PC Multiplayer / Subreddit
- Liquipedia - Competitive Gaming / Esports Wiki / Discord
- Tracker.gg - Game Leaderboards / Stats
▷ Multiplayer Fixes
- ⭐ Online Fix - Online / LAN Multiplayer Fix / Discord
- ⭐ Playit.gg - LAN Multiplayer Fix / Discord
- ⭐ ZeroTier - LAN Multiplayer Fix
- Radmin - LAN Multiplayer Fix / Discord
- Hamachi - LAN Multiplayer Fix
- NetMaker - LAN Multiplayer Fix
- OpenSpy - LAN Multiplayer Fix / Discord / GitHub
- Team XLink - LAN Multiplayer Fix / Discord
- ZLOEmu - LAN Multiplayer Fix
- t7patch - Black Ops 3 Crash Fix
▷ Multiplayer Mods
- 🌐 Multiplayer Mods or Unmoddable - Multiplayer Mods for Single-Player Games
- ⭐ Plutonium - COD BO1/BO2, MW3 and WaW Multiplayer Client / Setup Guide / Video Guide / Offline Launcher / Discord
- AlterWare - COD MW2 (2009), MW3, BO3, AW and Ghosts Multiplayer Client / Discord / GitHub
- HorizonMW - Modern Warfare Remastered Multiplayer Client / Guide / Servers / Info / Tools
- CoD4x Mod - COD4 (2007) Multiplayer Project / Requires MP Key / Discord
- Venice Unleashed / Discord or Warsaw Revamped / Discord - Battlefield Mod Projects
- SM64 Coop Deluxe - Super Mario 64 Co-Op / Discord
- Smash64 - Smash Bros 64 Online / Discord
- Marne - BF1 Multiplayer Project / Discord
- Slippi - Super Smash Bros Melee Online / Discord
- Tilted Online - Multiplayer Skyrim & Fallout 4 / GitHub / Discord / Setup Guide
- NV:MP - Fallout: New Vegas Multiplayer / Discord
- Nitrox - Subnautica Multiplayer
- BeamMP - BeamNG Multiplayer / GitHub
- Fika - Play Single Player Tarkov Co-Op / Requires Legit Game
- OnlineCTR - Crash Team Racing Multiplayer
- CnCNet - Multiplayer Command & Conquer / Discord
- Old School RuneScape - Classic Runescape / Discord
- RuneLite - Old School RuneScape Client w/ Plugin Support / Discord
- Mega Man Arena or Megaman 2.5D - Multiplayer Mega Man
- DMP - Kerbal Spaceprogram Multiplayer Mod / Discord
▷ Multiplayer Servers
- ⭐ TrackyServer - Find Private Multiplayer Servers
- Server.pro - Game Server Hosting
- Pterodactyl / Discord or Pelican / GitHub - Game Server Management Panel
- Impostor - Among Us Private Server / Discord
- VRCList - Find VRChat Worlds / Sign-Up Required
- OldUnreal - Unreal Tournement Servers / Discord
- DiIiS - Open-Source Diablo III Local Server
- Insignia - Original Xbox Replacement Servers / Discord
- ElDewrito - Halo Online / Halo 3 Servers
- Project Cartographer - Halo 2 Online Servers
- Halo Custom Edition - Halo CE Online Servers
- BF2142 Reclamation - BF2142 Servers / Discord
- SiMPLE - Battlefield 1942 Servers / Discord
- Overwatch-Server-Selector - Overwatch Server Selector
- Northstar, 2 - Titanfall 2 Server Hosting & Modding / GitHub / Guide / Discord
- ET: Legacy - Wolfenstein Enemy Territory Servers / Discord
- Arctic Combat - Arctic Combat Server Revival / Discord
- Factorio.zone - Free Factorio Servers
- Clash of Magic / Discord or Atrasis / Discord - Clash of Clans Private Servers
- Rusticaland - Free Rust Servers / Discord
- Ephinea - Phantasy Star Online Blue Burst Server Revival
- PSO Servers - Phantasy Star Online 1 Server Revivals
- KOCity - Knockout City Multiplayer Revival / Discord / GitHub
- Elemental Fracture - Spellbreak Community Revival / Discord
- NolfRevival - NOLF, NOLF 2 & Contract Jack
- Toontown Rewritten or Corporate Clash - Toontown Multiplayer Revivals
► Homebrew
- 🌐 Darthsternie - Console Firmware / Exploit Archive
- 🌐 Emulators on Consoles - List of Emulators for Consoles
- 🌐 Firmware / Bios Files
- ⭐ Hacks.Guide / 2, CFW Guide, ConsoleMods.org / Discord, Digiex, Homebrew Guides, CFWaifu or Gamebrew - Homebrew Guides
- ⭐ Nintendo Homebrew - Nintendo Homebrew Discord
- ⭐ GBATemp - Homebrew Forum
- /r/Homebrew - Homebrew Subreddit
- Game Boy Tech Page - Game Boy Tools
- Game Boy Book Reader - Game Boy Book Reader
- NESC-SNESC-Modifications - NES, SNES & Playstation Mods
- ModMyClassic - Classic Console Mods
- N64Brew - N64 Homebrew Wiki
- /r/XboxModding or /r/XboxRetailHomebrew - Xbox Homebrew Subreddits
- Team Resurgent - Xbox Homebrew Tools
- /r/XboxHomebrew - Xbox One/Series Homebrew Subreddit
- /r/360Hacks Guide - Xbox 360 Modding Guide
- C-Xbox Tool - .XBE to ISO File Converter
- NKit - Disc Image Processor
- NASOS - Gamecube iso.dec to ISO Converter
- NESDev - NES / SNES Dev Homebrew Guides / Forum
- hakchi2 CE - Add More Roms to NES/SNES Classic Mini / Discord
- ROM News - Console Game Release PreDB / NFO Database
▷ Switch Homebrew
- ↪️ Switch Homebrew Guides
- ⭐ Homebrew App Store - Switch / Wii U Homebrew App Store
- /r/SwitchPirates or /r/SwitchHacks - Switch Homebrew Subreddits
- LAN Play Status or Switch-LAN-Play / Discord - Switch Multiplayer Servers
- FlagBrew - Switch Homebrew / Discord
- NSP Forwarder - Switch NSP Forwarder
- Switch Army Knife - Switch File Converter
- SysDVR - Switch Game Capture
- sys-con - Use Any USB Controller on Switch
- MissionControl - Use Any Bluetooth Controller on Switch
▷ Wii U / Wii Homebrew
- ⭐ WiiBrew - Wii Homebrew Wiki
- ⭐ WiiUBrew - Wii U Homebrew Wiki
- ⭐ Wii U Hacks Guide - Wii U Jailbreak Guide
- ⭐ Wii Hacks Guide - Wii Jailbreak Guides
- ⭐ Wiimmfi or WiiLink - Wii Multiplayer Servers
- ⭐ Homebrew App Store - Switch / Wii U Homebrew App Store
- Pretendo - Wii U Network Replacement
- /r/WiiUHacks - Wii U Homebrew Subreddit
- /r/WiiHacks - Wii Homebrew Subreddit
- Open Shop Channel - Wii Homebrew App Library
- WBFStoISO - WBFS to ISO
▷ 3DS / DS Homebrew
- 🌐 DS Homebrew - DS Homebrew Resources / Wiki / Discord
- ⭐ 3DS Jailbreak Guide - 3DS Jailbreak Guide
- ⭐ DSi Jailbreak Guide - DSi Jailbreak Guide
- ⭐ Wiimmfi or Kaeru Team - DS Multiplayer Servers
- Pretendo - 3DS Network Replacement
- Universal DB - 3DS / DS Modding Apps
- Theme Plaza - 3DS Themes / Discord
- Artic Base - Play Physical 3DS Games on Citra
- BootNTR - Stream 3DS to PC or Mac / Instructions
- /r/3DSPiracy or 3DSHacks - 3DS Modding Subreddit
- FlagBrew - 3DS Homebrew Apps / Discord
- Luma3DS - 3DS Custom Firmware
- GodMode9 - 3DS File Browser
- Batch CIA 3DS Decryptor - Decrypt 3DS Files
- Rverse - 3DS Miiverse Recreation Discord Server
▷ Playstation Homebrew
- ⭐ PS4 Modding, PSX Hax, PSDevWiki or Wololo - Playstation Modding Guides
- Chiaki / GitHub or RemotePlay - Playstation Remote Play Clients
- /r/PS5Homebrew - PS5 Homebrew Subreddit
- /r/PS4Homebrew - PS4 Homebrew Subreddit
- Exploit Host - PS4 Exploit Hosting
- DarkSoftware - PS4 / PS3 Firmware
- /r/PS3Homebrew - PS3 Homebrew Subreddit
- PS3 Disc Dumper - Decrypted PS3 Disc Dumper
- PS3 Game Updater or Rusty Pan - Update PS3 Games
- PS3Themes - PS3 Themes
- PSONE - Play PS1 Games Online / PS3 Required / Discord
- PSXDev - PS1 Development
- MemcardRex - PS1 Save Transfer Tools / Archive
- /r/VitaPiracy / Discord or /r/VitaHacks - PSVita Homebrew Subreddits
- PSP Archive - PSP Homebrew Archive / Discord
- VitaDB - PS Vita Homebrews
- Vita Volume - Set PS Vita Volume without Buttons
- PSPunk - PSP Homebrew Info
▷ Steam Deck
- 🌐 Steam Deck Mods - Steam Deck Mods / Discord
- ⭐ Decky Loader - Steam Deck Plugin Loader / Plugins / GitHub
- /r/SteamDeckPirates - Steam Deck Piracy Subreddit
- great-on-deck-search - Verified Steam Deck Game Search
- Steam Deck Tools - Fan Overlay, Power Control and Steam Controller
- EmuDeck - Steam Deck Emulator Setup / Compatibility / Discord
- GameImage - Steam Deck Game Setup
- Bazzite - Alt Steam Deck OS
- Steam-Deck.Force - Force SteamOS Boot
- HoloISO - SteamOS 3 (Holo) Archiso Config / Telegram
- Steam Deck Repo - Steam Deck Boot Videos
► Minecraft Tools
- 🌐 MCDOC - Minecraft Tools & Unlockers / Discord
- 🌐 Awesome Minecraft - Minecraft Resources
- ⭐ Minecraft Wiki - Minecraft Wikis
- ⭐ Villager Trading Cheatsheet or Image Cheatsheet
- ⭐ Minecraft Brewing Cheatsheet
- MC Utils - Minecraft Web Tools
- MCPEDL - Bedrock Resources
- DigiMinecraft or Birdflop - Minecraft Guides / Tools
- ViveCraft - VR Minecraft / Discord / GitHub
- SkyClient - Hypixel Asset Installer / Discord / GitHub
- SkyCrypt - SkyBlock Stats
- MC Icons - Minecraft Icon Search
- Textcraft - Minecraft Text & Logo Generator
- Pixelart Builder or PixelStacker - Turn Photos into Minecraft Art
- Block Palettes or Block Colors - Block Color Palettes
- The Minecraft Archive Project - Minecraft Archive
- Open Note Block Studio - Minecraft Note Block Song Editor
- Voyager - Minecraft AI
- MiniMessageViewer - Format Plugin Messages
- Minecraft Timeline - Minecraft Update History Timeline
▷ Hosting Tools
- 🌐 FMHL - Free Minecraft Hosts List / Mirror
- ⭐ auto-mcs - Easy Server Setup / GitHub
- ⭐ Playit.gg - Global Proxy / Discord
- ⭐ paper-optimization or minecraft-optimization - Server Optimization Guides
- World Host or e4mc / Lan Server Properties - Local Server Multiplayer Mods
- setup.md - Server Admin Guides / Wiki
- CraftyControl, MCSManager, Lodestone / GitHub or Fork - Minecraft Server Managers
- Minekube Connect - Ingress Tunnel for Minecraft Servers
- ViaVersion - Allow Connections from Older Versions / Discord / GitHub
- mclo.gs - Minecraft Log Sharing / Analyzing
- Minestom - Lightweight Minecraft Server / Discord
- Cuberite - Server Setup
- DriveBackupV2 - Server Plugin to Create Cloud Backups of Worlds
- Pufferfish, Purpur / Discord or Paper / Plugins - Performance Enhancement Servers
- GeyserMC - Join Minecraft Java Servers with Bedrock Client / Consoles
- Minecraft Server Scanner - Minecraft Server Info
- Minecraft Server Checker - Simple Server Checker
- mcsrvstat - Server Status Updates
- MC-Server-Banner-API - Real-Time Updated Server Banners
▷ Launchers
- ⭐ Prism Launcher - Feature-Rich Launcher / Free Method / Ely.by Version / Discord / GitHub
- ⭐ ATLauncher or Technic Launcher - Modpack Launchers
- ⭐ PojavLauncher / Discord / GitHub, ZalithLauncher or FoldCraftLauncher / Discord - Java Edition for Android & iOS
- ⭐ Bedrock Launcher or MCLauncher - Launcher for Bedrock Edition
- SkLauncher - User-friendly Launcher
- UltimMC - Launcher for Cracked Accounts
- Betacraft - Legacy Versions Launcher
- CheatBreaker - FPS Modpack Launcher / GitHub
- HMCL - Launcher / GitHub
- LabyMod - Launcher
- Crystal Launcher - Launcher
- GDLauncher - Launcher
- X Minecraft Launcher - Launcher
- Quantum Launcher - Lightweight Launcher / Discord / GitHub
- Omniarchive - Download Old Minecraft Versions
▷ Mods / Data Packs
- 🌐 Not Essential - List of Alternatives to Essential
- 🌐 OptiFine Alternatives - OptiFine Alternatives for Fabric
- ↪️ Mod Indexes
- ⭐ MCModdingGuide - Minecraft Modding Guide
- Builders Refuge - Building Modpack
- WorldEdit or Axiom - Building Tools
- Worldedit Tools - Docs / CUI / Discord / GitHub
- quark - Add Vanilla-like / QoL Features
- Voxy, DistantHorizons or Bobby - Lightweight Distance Rendering Mods
- VulkanMod - Vulkan Renderer Mod / Discord
- Forge, NeoForged, Quilt or Fabric / Discord - Mod Loaders
- PAX, ModMenu (fabric) or Mod Manager - Minecraft Mod Managers
- Forgix - Merge Mod Loaders
- /r/feedthebeast - MC Modding Community
- CraftPresence or Phase's Discord RPC - Discord RPC for Java Edition
- Controlify - Add Controller Support to Java Edition
- No Telemetry - Disable Telemetry Data
- SimpleVoicechat - Feature-Rich Voice Chat Mod / Discord
- ReplayMod or FlashBack - Record Game Sessions
- Craftify - Display / Control Playing Music
- Vanilla Tweaks, Smithed or Voodoo Packs / Discord - Minecraft Data Packs
- Data Pack Generators - Minecraft Data Pack Generators
▷ Maps / World Tools
- 🌐 ChunkBase - Minecraft Map Tools
- Amulet, Minecraft Datapack Map / GitHub, MCA Selector, uNmINeD or WorldPainter - Minecraft Map Editors / Viewers
- MineAtlas, Cubiomes Viewer or MCSeeder - Minecraft Seeds
- MinecraftMaps or Mapcraft - Minecraft Maps
- Minecraft Earth Map - Earth Maps
- CTMRepository - Complete the Monument Maps / Discord
- MapartCraft or Cartographer - Mapart Schematic / map.dat Generator
- BlueMap - Create 3D Map Models / GitHub
- Arnis - Generate Real-world Locations in Minecraft
- Chunker - Java / Bedrock Format Converter
- Minecraft Map Converter - PS3/360 Format Converter
- Amidst - Minecraft World Overview Display Tool
▷ Technical Tools
- 🌐 TMC Links - Technical Minecraft Resources
- 🌐 Minecraft Speedrunning - Minecraft Speedrunning Resources
- ⭐ MCPropertyEncyclopedia - Block Property Encyclopedia
- ⭐ spark - Minecraft Performance Profiler
- ⭐ Minecraft Java Flags - Java Edition Performance Tweaks
- Report Inspector - Crash Report / Profiling Inspector
- Mineflayer - Minecraft Bot Creator / GitHub
- Minecraft Armor Stand - Design Poses for Armorstands
- Enchant Order - Minecraft Enchantment Ordering Tool
- Minecraft Tools or GamerGeeks - Minecraft Tools / Calculators
- Minecraft Command Science or MCStacker - Minecraft Command Generators
- NBT Studio or webNBT - Minecraft NBT File Editors
- MinecraftJSON - Minecraft Tellraw Generator
▷ Customization
- 🌐 ShaderLABS - Shader Comparisons and Resources
- ↪️ Resource Pack Indexes
- ⭐ NameMC, Laby / Discord or Crafty - Minecraft Name & Skin Availability Trackers
- ShadersMods or MinecraftShader - Minecraft Shaders
- Iris Shaders - Fabric Shadermod for Minecraft
- MinecraftSkins or SkinMC - Minecraft Skins
- MSkins - Skin Grabber
- Ely.by - Skin System / Authorization
- Nova Skin or Blockbench - Minecraft Skin Editor
- MinecraftCapes or Capes - Minecraft Capes
- Minecraft Heads - Custom Minecraft Heads
- PVPRP - PVP Texture Packs
▷ 3D Tools
- ⭐ MCprep - All-in-one Blender Addon / GitHub / Discord
- ⭐ jmc2obj, Mineways, MiEX, Minutor - Minecraft World Exporters
- Mine-imator - Animation Tool / 2.0 Version / Forum / GitHub / Discord
- Chunky - Photorealistic Renderer / GitHub / Discord
- Block Display - Design / Share Block Display Models / Discord
- Cubical - Minecraft 3D Schematic Tool / Beta
- Custom-MC-Render-Cweeper - Import Custom 3D Models into Minecraft
- ObjToSchematic - Converts 3D Models into MC Formats / Discord
- NBT2Components - NBT to Component Converter
- Layoutit, VoxelSphereGenerator, BDStudio or Minecraft Shapes - Minecraft Shape Tools / Voxel Editors
► Game Specific
- 🌐 Awesome Trackmania - Trackmania Resources
- 🌐 ACNH.Directory - Animal Crossing: New Horizons Resources
- 🌐 FM Scout - Football Manager Resources / Community
- Half Life Project Beta - Unreleased / Cut Half-Life Content
- Palworld.gg, PalworldTrainer.com or Paldb.cc - Palworld Databases
- /codmeta/ - Call of Duty Loadouts / Metas
- Warzone Loadout or WZHub - Warzone Loadouts and Builds
- Braytech - Destiny 2 Stats
- The Halo Archive (Discord) or 405th - Halo Assets Archive
- Sym.gg - Battlefield Info & Weapon Stats / Discord
- Rust Clash - Rust Info / Tools
- Stardew.app - Stardew Valley Progress Tracker
- Fortnite Tracker - Fortnite Leaderboards / Stats
- FortniteEXP - Fortnite XP Progression / Leveling Rates
- Ready or Not Doc - Ready or Not Info
- FM Moneyball - Football Manager Recruitment Tool / Tutorial
- Minesweepergame.com and Minesweeper.online Wiki - All about Minesweeper
- WRCsetups - WRC Setups
- Peacock - Hitman World of Assassination Server Replacement
- Useful Osu - Osu! Resources
- Collection Manager - Osu! Collection Manager
- osu trainer - Osu! Trainer
- danser-go - Osu! Dancing Visualizer
- SpinShare - Spin Rhythm XD Custom Charts
▷ MOBA Tools
- ⭐ OP.GG - LoL Player Background Check
- ⭐ DPM.LOL, U.GG, KoreanBuilds, EuropeanBuilds, LoLTheory, MurderBridge or LoLAlytics / Discord - LoL Builds / Tiers
- ⭐ Gol.gg - LoL Competitive Stats, All Regions
- ⭐ Tactics.tools / Discord or MetaTFT / Discord - Team Fight Tactic Guides, Stats, Tools, etc.
- MobaFire - LoL Champion Guides
- ProBuilds - LoL Pro Player Builds
- LoL Wiki - Official LoL Wiki
- LoL Math - LoL Item Optimizer / Discord
- iTero - LoL AI Coach
- DraftGap - LoL Draft Analysis Tools
- Mobalytics or DeepLoL - Game Performance & Stats Analyzer
- Porofessor - Live LoL Game Stats
- ProStreams - Watch Pro LoL Twitch Streams
- DotaBuff, Stratz, OpenDota or Dota2ProTracker - Dota 2 Stat Trackers / Hero Guides
- SmiteGuru - Smite Leaderboards
- mood.gg - LoL Character-Based Audio Playlists
- RuneForge - Custom LoL Skins / Discord
- Deceive - Appear Offline in LoL
- Disenchanter - LoL Mass Disenchanter
▷ ARPG / MMORPG Tools
- 🌐 Grim Tools - Grim Dawn Tools
- 🌐 Last Epoch Tools - Last Epoch Tools
- ⭐ Maxroll - ARPG Build Guides
- D4Builds - Diablo IV Build Guides
- Helltides - Diablo IV Pit Leaderboards / Helltide Tracker
- Path of Building - Path of Exile Build Planner
- Murlok - WoW PvP / PvE Guides / Discord
- WoWProgress or CheckPVP - WoW Rankings
- RaidPlan - WoW Raid Planner / Discord
▷ Pokemon Tools
- 🌐 Awesome Pokémon - Pokémon Resources
- 🌐 /r/PTCGP Resource Guide - Pokémon TCG Pocket Resources
- ⭐ Bulbapedia - Pokémon Wiki
- ⭐ Serebii.net, Pokémon Awesome, Pokémon Database or PocketMonsters.net - Pokémon Databases
- ⭐ PokeList or PokeAPI - Pokédexes
- ⭐ Pokémon Typechart or Type Calculator - Pokémon Type Charts / Image
- ⭐ PokeMMO, DelugeRPG, Pokemon Blaze Online / Discord or Pokémon Revolution Online - Pokémon MMOs
- ⭐ PokéRogue - Pokémon Dungeon Crawler / Wiki / Subreddit / Mobile / Discord
- ⭐ Pokémon Showdown - Online Pokémon Battles
- PokeCommunity - Pokémon Community
- Project Pokémon - Pokémon Tools, Exploits, Saves, etc.
- PokeGB - Pokémon Blue Emulator
- PokemonLog, PokeHarbor or Pokémon Coders - Hacked Pokémon ROMs
- pret - Pokémon Disassembly / Decompilation Projects
- Pokemon Auto Chess - Pokemon Style Teamfight Tactics / Discord / GitHub
- PKHeX - Pokémon Save File Editor
- PMD Generators - Pokémon Mystery Dungeon Generators
- GameBanana - Pokémon Brilliant Diamond / Shining Pearl Mods
- pkNX - Switch Pokémon ROM Editor / Randomizer
- Universal Pokémon Randomizer ZX - Randomize Pokémon (works for GBA to 3DS)
- NYCPokeMap - Real-Time Pokémon GO Map for NYC
- PkmnCards, Pokéllector or Limitless - Pokémon Card Databases / Resources
- TCG ONE - Online Pokémon Card Game / Discord
- unite-db - Pokémon Unite Database
- HelixChamber - Unused Pokémon Material
▷ Counter-Strike Tools
- ⭐ CsWarzOnE - Counter-Strike Downloads
- ⭐ HLTV or Dust2 - Counter-Strike News
- ⭐ CS Demo Manager - Counter-Strike Demo manager
- ⭐ Faceit - Matchmaking Client
- ⭐ CSNADES - CS2 Nade Lineups
- CSGO Trader - CS:GO Trading Enhancements
- CS2 Weapon Spreadsheet - Weapon Stats / Prices
- ArminC-AutoExec - ArminC's CS2 Config
- CS2 Browser or CS2 Server Picker - Counter-Strike 2 Server Browser
- Faceit Finder - Faceit Account Finder
- Repeek - Faceit Enhancement Extension
▷ GTA Tools
- 🌐 GTAAll, GTAInside, GameModding, GTAGarage or LibertyCity - GTA Mods, Walkthroughs & More
- 🌐 GTA5-Mods - GTAV Mods
- 🌐 MixMods - GTASA Mods
- ⭐ FiveM, alt:V or RAGE - Modded GTAV Servers / Requires Legit Copy
- ⭐ San Andreas: Multiplayer / Discord or Multi Theft Auto / GitHub - Multiplayer GTA:SA
- ⭐ CLEO - Extensible Library Plugin for GTA III, VC & SA / Discord
- ⭐ SilentPatch - Quality of Life Fixes for GTA III, VC & SA
- Grand Theft Wiki - GTA Wiki
- GTA Cars - GTA Car Database / Stats
- Rainbomizer - GTA Randomizer Mods
- OpenIV - Rockstar Game Modding Tool
- Gillian's GTA - GTA IV Modding Guide
- GTA Connected - Multiplayer Mod / GTA III, IV, VC, SC / Discord
- Vice City: Multiplayer - Mutiplayer GTA:VC
- GTA Manager - GTA V Business Manager
- GTA Downgraders - GTA Game Downgraders
▷ Doom Tools
- ⭐ Doom Wiki - Doom Wiki
- ⭐ ZDoom - Doom Source Port
- ⭐ ZDaemon, Doomseeker, oDamex, DoomUtils or Zandronum - Online Multiplayer Doom
- Classic DOOM or DoomWorld - Doom Downloads
- Doom64 EX - Doom 64 PC Port
- dhewm3 - Doom 3 Source Port
- DoomsHack, Doom WADs, Doom Pastebin or Doom Wad Station - Doom WADs
- DOOM FX - Doom SNES Source Code
- UltimateDoomBuilder - Doom Map Builder
▷ Mario Kart Tools
- ⭐ Retro Rewind - Retro MKW Tracks / Multiplayer / Discord
- ⭐ RR Tools - Wiki / Auto-Updater / VR Rankings / Troubleshooting
- ⭐ CTGP Revolution - Custom MKW Tracks / Multiplayer / Disc Required / Discord
- ⭐ MKWRs - Mario Kart Records / Videos
- ⭐ MKW Lobbies - Online MKW Lobbies
- ⭐ CTGP Deluxe - Custom MK8DX Tracks
- ⭐ CTGP-7 - Custom MK7 Tracks
- Luigi_Fan2's Stat Charts - MK8DX / MK8 - Mario Kart stats
- MK8DX Builder - Kart Builder
- MKCentral - Mario Kart Tournaments
- /r/MarioKart or /r/MarioKartWii - Mario Kart Subreddits
- RiiBalanced - Rebalanced MKW Mod / Discord
- TTs Online - MKW Online Time Trials Mod
- CTGPRecords - Custom Track Records / Videos
- MaxVRList - VR Leaderboards
- xer - MKW Item Probabilities
- Tockdom Wikis - MKW / MK8 / MK3DS / MKDS / MKDD - Custom Mario Kart Wikis
- Custom Track Tutorial - How to Make Custom MKW Tracks
- MKW Texture Hacks - Custom MKW Textures
- ShortCat - MK8DX Strategy Guide
▷ Geometry Dash Tools
- ↪️ GD Demon Lists
- ⭐ Geode - Mod Menu & Modding Framework
- ⭐ GDDP or GD Demon Ladder - Practice & Improve Your Skills
- Soluble Texture Packs - GD Texture Packs / Manager
- Spritesheet Splitter - Split & Merge GD Spritesheets
- GD Save Explorer - View Detailed Stats & Data of Save Files
- Song File Hub - GD Songs & Mashups / Discord
- Globed - GD Multiplayer Mod
- GD Browser - GD Level Browser
- GD Font Generator - Generate Custom GD Logos & Messages
- G.js - GD Level Programming Language
- GD Docs - GD Programming Documentation
- GD History - GD Archival Project / Downloader
- GMD Private Server - Private Server Maker
- 3Dash - 3D Geometry Dash Game
- 3Dash Tools - Demon List / Challenge List / Impossible Levels
▷ Roblox Tools
- 🌐 Roblox Archive - Roblox Client Archive
- ⭐ Rolimon's or RoMonitor Stats - Roblox Experience Stats
- ⭐ Bloxstrap or Fishstrap - Roblox Player Bootstrapper / Discord / GitHub
- Novetus - Self-Hosted Multi-version Roblox Client
- Roblox Studio Mod Manager - Roblox Studio Bootstrapper
- RoPro, Roblox+, BTRoblox, RoGold or RoSeal - Enhance Roblox Website
- Better Discovery - Game Discovery
- RBXServers or FreeVIPServers - Roblox VIP Servers
- RobloxDen - Track Roblox Promo Codes
- Roblox Web APIs - Roblox APIs
- ingame.clothing - Preview Avatar Clothing
- FastFlags Collection - Roblox FastFlags Collection
▷ Terraria Tools
- ⭐ Terraria Wiki or Terranion - Terraria Wikis
- tShock - Terraria Server Tools / Plugins
- Terraria Forum - Terraria Community, Mods Help and More
- TEdit, terramap, TerraFirma or terraria-map-editor - Map Viewers / Editors
- Terrasavr - Terraria Character Editor
- Increased FOV - Increase Terraria FOV for 21:9 Monitors
▷ Gacha Tools
- 🌐 Paimon.moe or Honey Impact - Genshin Impact Resources / Tools
- 🌐 Honkai.gg - Honkai Star Rail Resources / Tools
- ⭐ Prydwen - Gacha Game Guides / Discord
- ⭐ Keqingmains - Genshin Guides
- ⭐ XXMI - Gacha Games Modding Tool / Discord
- /r/GachaGaming - Gacha Games Subreddit
- FGO GamePress - FGO Wiki + Guides
- Chaldea - FGO Planner & Battle Simulator
- LunarCore - Private Honkai: Star Rail Servers
- Star Rail Station or stardb.gg - Honkai Star Rail Guides
- Seelie.me - Genshin / Star Rail Planner
- Genshin Center - Genshin Planner
- Genshin Optimizer - Genshin Impact Calculator / Artifact Optimizer
- Genshin Helper Doc - Genshin Builds Guide
- Grasscutter - Private Genshin Impact Servers / Discord
- Genshin Impact FPS Unlocker - Unlock Genshin Impact FPS Cap
- Hoyolab Teyvat Interactive Map, Mapgenie Teyvat Interactive Map or Genshin Impact Map - Genshin Impact Maps
▷ Tabletop Tools
- 🌐 Awesome TTRPG - Online TTRPGs / Resources
- 🌐 5ETools, Roll for Fantasy, Kassoon or DragonsFoot - TTRPG Tools
- ⭐ dice.run, Random Dice or Desktop Dice - Dice Simulators
- ⭐ Kanka - Tabletop RPG Manager
- RPG.net - RPG Forums
- Adventurer's Codex - Online D&D 5e Campaign Manager / System
- NaturalCrit - Create D&D Homebrews / Badges
- DnD-Books - D&D 4e/5e Books
- FantasiaArchive - World Building / Documenting Tool
- DnD World Building - Fantasy World Building Guides
- The Acaeum - Dungeons & Dragons Database
- DnD Rules - Dungeons & Dragons Rules
- Archives of Nethys - Pathfinder Database
- WarGamer - Tabletop RPG Guides
- Roll20 or Rolisteam - Tabletop RPG Streaming
- Tabletopy - Tabletop RPG Soundboard
- Eigengrau's Generator - Town / NPC Generator
- Map Generator - Tabletop Roleplaying Map Generator
- MOGG - Magic: The Gathering Card Scans
- Yugipedia or YGOPRODeck - Yu-Gi-Oh! Resources / Card Lists
- Untap.in - Test Card Game Decks
-
@ 266815e0:6cd408a5
2025-05-02 22:24:59Its been six long months of refactoring code and building out to the applesauce packages but the app is stable enough for another release.
This update is pretty much a full rewrite of the non-visible parts of the app. all the background services were either moved out to the applesauce packages or rewritten, the result is that noStrudel is a little faster and much more consistent with connections and publishing.
New layout
The app has a new layout now, it takes advantage of the full desktop screen and looks a little better than it did before.
Removed NIP-72 communities
The NIP-72 communities are no longer part of the app, if you want to continue using them there are still a few apps that support them ( like satellite.earth ) but noStrudel won't support them going forward.
The communities where interesting but ultimately proved too have some fundamental flaws, most notably that all posts had to be approved by a moderator. There were some good ideas on how to improve it but they would have only been patches and wouldn't have fixed the underlying issues.
I wont promise to build it into noStrudel, but NIP-29 (relay based groups) look a lot more promising and already have better moderation abilities then NIP-72 communities could ever have.
Settings view
There is now a dedicated settings view, so no more hunting around for where the relays are set or trying to find how to add another account. its all in one place now
Cleaned up lists
The list views are a little cleaner now, and they have a simple edit modal
New emoji picker
Just another small improvement that makes the app feel more complete.
Experimental Wallet
There is a new "wallet" view in the app that lets you manage your NIP-60 cashu wallet. its very experimental and probably won't work for you, but its there and I hope to finish it up so the app can support NIP-61 nutzaps.
WARNING: Don't feed the wallet your hard earned sats, it will eat them!
Smaller improvements
- Added NSFW flag for replies
- Updated NIP-48 bunker login to work with new spec
- Linkfy BIPs
- Added 404 page
- Add NIP-22 comments under badges, files, and articles
- Add max height to timeline notes
- Fix articles view freezing on load
- Add option to mirror blobs when sharing notes
- Remove "open in drawer" for notes
-
@ 97c70a44:ad98e322
2025-01-30 17:15:37There was a slight dust up recently over a website someone runs removing a listing for an app someone built based on entirely arbitrary criteria. I'm not to going to attempt to speak for either wounded party, but I would like to share my own personal definition for what constitutes a "nostr app" in an effort to help clarify what might be an otherwise confusing and opaque purity test.
In this post, I will be committing the "no true Scotsman" fallacy, in which I start with the most liberal definition I can come up with, and gradually refine it until all that is left is the purest, gleamingest, most imaginary and unattainable nostr app imaginable. As I write this, I wonder if anything built yet will actually qualify. In any case, here we go.
It uses nostr
The lowest bar for what a "nostr app" might be is an app ("application" - i.e. software, not necessarily a native app of any kind) that has some nostr-specific code in it, but which doesn't take any advantage of what makes nostr distinctive as a protocol.
Examples might include a scraper of some kind which fulfills its charter by fetching data from relays (regardless of whether it validates or retains signatures). Another might be a regular web 2.0 app which provides an option to "log in with nostr" by requesting and storing the user's public key.
In either case, the fact that nostr is involved is entirely neutral. A scraper can scrape html, pdfs, jsonl, whatever data source - nostr relays are just another target. Likewise, a user's key in this scenario is treated merely as an opaque identifier, with no appreciation for the super powers it brings along.
In most cases, this kind of app only exists as a marketing ploy, or less cynically, because it wants to get in on the hype of being a "nostr app", without the developer quite understanding what that means, or having the budget to execute properly on the claim.
It leverages nostr
Some of you might be wondering, "isn't 'leverage' a synonym for 'use'?" And you would be right, but for one connotative difference. It's possible to "use" something improperly, but by definition leverage gives you a mechanical advantage that you wouldn't otherwise have. This is the second category of "nostr app".
This kind of app gets some benefit out of the nostr protocol and network, but in an entirely selfish fashion. The intention of this kind of app is not to augment the nostr network, but to augment its own UX by borrowing some nifty thing from the protocol without really contributing anything back.
Some examples might include:
- Using nostr signers to encrypt or sign data, and then store that data on a proprietary server.
- Using nostr relays as a kind of low-code backend, but using proprietary event payloads.
- Using nostr event kinds to represent data (why), but not leveraging the trustlessness that buys you.
An application in this category might even communicate to its users via nostr DMs - but this doesn't make it a "nostr app" any more than a website that emails you hot deals on herbal supplements is an "email app". These apps are purely parasitic on the nostr ecosystem.
In the long-term, that's not necessarily a bad thing. Email's ubiquity is self-reinforcing. But in the short term, this kind of "nostr app" can actually do damage to nostr's reputation by over-promising and under-delivering.
It complements nostr
Next up, we have apps that get some benefit out of nostr as above, but give back by providing a unique value proposition to nostr users as nostr users. This is a bit of a fine distinction, but for me this category is for apps which focus on solving problems that nostr isn't good at solving, leaving the nostr integration in a secondary or supporting role.
One example of this kind of app was Mutiny (RIP), which not only allowed users to sign in with nostr, but also pulled those users' social graphs so that users could send money to people they knew and trusted. Mutiny was doing a great job of leveraging nostr, as well as providing value to users with nostr identities - but it was still primarily a bitcoin wallet, not a "nostr app" in the purest sense.
Other examples are things like Nostr Nests and Zap.stream, whose core value proposition is streaming video or audio content. Both make great use of nostr identities, data formats, and relays, but they're primarily streaming apps. A good litmus test for things like this is: if you got rid of nostr, would it be the same product (even if inferior in certain ways)?
A similar category is infrastructure providers that benefit nostr by their existence (and may in fact be targeted explicitly at nostr users), but do things in a centralized, old-web way; for example: media hosts, DNS registrars, hosting providers, and CDNs.
To be clear here, I'm not casting aspersions (I don't even know what those are, or where to buy them). All the apps mentioned above use nostr to great effect, and are a real benefit to nostr users. But they are not True Scotsmen.
It embodies nostr
Ok, here we go. This is the crème de la crème, the top du top, the meilleur du meilleur, the bee's knees. The purest, holiest, most chaste category of nostr app out there. The apps which are, indeed, nostr indigitate.
This category of nostr app (see, no quotes this time) can be defined by the converse of the previous category. If nostr was removed from this type of application, would it be impossible to create the same product?
To tease this apart a bit, apps that leverage the technical aspects of nostr are dependent on nostr the protocol, while apps that benefit nostr exclusively via network effect are integrated into nostr the network. An app that does both things is working in symbiosis with nostr as a whole.
An app that embraces both nostr's protocol and its network becomes an organic extension of every other nostr app out there, multiplying both its competitive moat and its contribution to the ecosystem:
- In contrast to apps that only borrow from nostr on the technical level but continue to operate in their own silos, an application integrated into the nostr network comes pre-packaged with existing users, and is able to provide more value to those users because of other nostr products. On nostr, it's a good thing to advertise your competitors.
- In contrast to apps that only market themselves to nostr users without building out a deep integration on the protocol level, a deeply integrated app becomes an asset to every other nostr app by becoming an organic extension of them through interoperability. This results in increased traffic to the app as other developers and users refer people to it instead of solving their problem on their own. This is the "micro-apps" utopia we've all been waiting for.
Credible exit doesn't matter if there aren't alternative services. Interoperability is pointless if other applications don't offer something your app doesn't. Marketing to nostr users doesn't matter if you don't augment their agency as nostr users.
If I had to choose a single NIP that represents the mindset behind this kind of app, it would be NIP 89 A.K.A. "Recommended Application Handlers", which states:
Nostr's discoverability and transparent event interaction is one of its most interesting/novel mechanics. This NIP provides a simple way for clients to discover applications that handle events of a specific kind to ensure smooth cross-client and cross-kind interactions.
These handlers are the glue that holds nostr apps together. A single event, signed by the developer of an application (or by the application's own account) tells anyone who wants to know 1. what event kinds the app supports, 2. how to link to the app (if it's a client), and (if the pubkey also publishes a kind 10002), 3. which relays the app prefers.
As a sidenote, NIP 89 is currently focused more on clients, leaving DVMs, relays, signers, etc somewhat out in the cold. Updating 89 to include tailored listings for each kind of supporting app would be a huge improvement to the protocol. This, plus a good front end for navigating these listings (sorry nostrapp.link, close but no cigar) would obviate the evil centralized websites that curate apps based on arbitrary criteria.
Examples of this kind of app obviously include many kind 1 clients, as well as clients that attempt to bring the benefits of the nostr protocol and network to new use cases - whether long form content, video, image posts, music, emojis, recipes, project management, or any other "content type".
To drill down into one example, let's think for a moment about forms. What's so great about a forms app that is built on nostr? Well,
- There is a spec for forms and responses, which means that...
- Multiple clients can implement the same data format, allowing for credible exit and user choice, even of...
- Other products not focused on forms, which can still view, respond to, or embed forms, and which can send their users via NIP 89 to a client that does...
- Cryptographically sign forms and responses, which means they are self-authenticating and can be sent to...
- Multiple relays, which reduces the amount of trust necessary to be confident results haven't been deliberately "lost".
Show me a forms product that does all of those things, and isn't built on nostr. You can't, because it doesn't exist. Meanwhile, there are plenty of image hosts with APIs, streaming services, and bitcoin wallets which have basically the same levels of censorship resistance, interoperability, and network effect as if they weren't built on nostr.
It supports nostr
Notice I haven't said anything about whether relays, signers, blossom servers, software libraries, DVMs, and the accumulated addenda of the nostr ecosystem are nostr apps. Well, they are (usually).
This is the category of nostr app that gets none of the credit for doing all of the work. There's no question that they qualify as beautiful nostrcorns, because their value propositions are entirely meaningless outside of the context of nostr. Who needs a signer if you don't have a cryptographic identity you need to protect? DVMs are literally impossible to use without relays. How are you going to find the blossom server that will serve a given hash if you don't know which servers the publishing user has selected to store their content?
In addition to being entirely contextualized by nostr architecture, this type of nostr app is valuable because it does things "the nostr way". By that I mean that they don't simply try to replicate existing internet functionality into a nostr context; instead, they create entirely new ways of putting the basic building blocks of the internet back together.
A great example of this is how Nostr Connect, Nostr Wallet Connect, and DVMs all use relays as brokers, which allows service providers to avoid having to accept incoming network connections. This opens up really interesting possibilities all on its own.
So while I might hesitate to call many of these things "apps", they are certainly "nostr".
Appendix: it smells like a NINO
So, let's say you've created an app, but when you show it to people they politely smile, nod, and call it a NINO (Nostr In Name Only). What's a hacker to do? Well, here's your handy-dandy guide on how to wash that NINO stench off and Become a Nostr.
You app might be a NINO if:
- There's no NIP for your data format (or you're abusing NIP 78, 32, etc by inventing a sub-protocol inside an existing event kind)
- There's a NIP, but no one knows about it because it's in a text file on your hard drive (or buried in your project's repository)
- Your NIP imposes an incompatible/centralized/legacy web paradigm onto nostr
- Your NIP relies on trusted third (or first) parties
- There's only one implementation of your NIP (yours)
- Your core value proposition doesn't depend on relays, events, or nostr identities
- One or more relay urls are hard-coded into the source code
- Your app depends on a specific relay implementation to work (ahem, relay29)
- You don't validate event signatures
- You don't publish events to relays you don't control
- You don't read events from relays you don't control
- You use legacy web services to solve problems, rather than nostr-native solutions
- You use nostr-native solutions, but you've hardcoded their pubkeys or URLs into your app
- You don't use NIP 89 to discover clients and services
- You haven't published a NIP 89 listing for your app
- You don't leverage your users' web of trust for filtering out spam
- You don't respect your users' mute lists
- You try to "own" your users' data
Now let me just re-iterate - it's ok to be a NINO. We need NINOs, because nostr can't (and shouldn't) tackle every problem. You just need to decide whether your app, as a NINO, is actually contributing to the nostr ecosystem, or whether you're just using buzzwords to whitewash a legacy web software product.
If you're in the former camp, great! If you're in the latter, what are you waiting for? Only you can fix your NINO problem. And there are lots of ways to do this, depending on your own unique situation:
- Drop nostr support if it's not doing anyone any good. If you want to build a normal company and make some money, that's perfectly fine.
- Build out your nostr integration - start taking advantage of webs of trust, self-authenticating data, event handlers, etc.
- Work around the problem. Think you need a special relay feature for your app to work? Guess again. Consider encryption, AUTH, DVMs, or better data formats.
- Think your idea is a good one? Talk to other devs or open a PR to the nips repo. No one can adopt your NIP if they don't know about it.
- Keep going. It can sometimes be hard to distinguish a research project from a NINO. New ideas have to be built out before they can be fully appreciated.
- Listen to advice. Nostr developers are friendly and happy to help. If you're not sure why you're getting traction, ask!
I sincerely hope this article is useful for all of you out there in NINO land. Maybe this made you feel better about not passing the totally optional nostr app purity test. Or maybe it gave you some actionable next steps towards making a great NINON (Nostr In Not Only Name) app. In either case, GM and PV.
-
@ 5d4b6c8d:8a1c1ee3
2025-05-02 21:28:12The top three ~econ posts, by zaprank, in April were
Pleb Economist #6: Analysis of Trump's Reciprocal Tariff Calculations by @SimpleStacker
Remember those goofy tariff and non-tariff barrier numbers? SimpleStacker walks us through the assumptions and formulas that they were derived from. There's a good discussion around how much sense those assumptions make and where they came from.
Twenty One Capital: You Can Just Do Things (Bloomberg, Matt Levine) by @denlillaapan
A commentary on a commentary on the 21 Capital bitcoin strategy. Why are investors willing to pay several multiples of bitcoin's current purchase price to get exposure to it in this form? Let @denlillaapan know in the comments.
The WSJ (kinda) covers the Mar-a-Lago Accords plus Miran's Incredible Speech by @028559d218
Analysis of Steve Miran's speech about "Global Public Goods". Will the rest of the world tell America to "go F itself", as the author repeatedly suggests? Eventually, no doubt they/we will.
Thanks to our great authors and generous zappers!
The top post will be entered into the quarterly top post contest, which we'll hold in July.
originally posted at https://stacker.news/items/969806
-
@ 9e69e420:d12360c2
2025-01-30 12:23:04Tech stocks have taken a hit globally after China's DeepSeek launched a competitive AI chatbot at a much lower cost than US counterparts. This has stirred market fears of a $1.2 trillion loss across tech companies when trading opens in New York.
DeepSeek’s chatbot quickly topped download charts and surprised experts with its capabilities, developed for only $5.6 million.
The Nasdaq dropped over 3% in premarket trading, with major firms like Nvidia falling more than 10%. SoftBank also saw losses shortly after investing in a significant US AI venture.
Venture capitalist Marc Andreessen called it “AI’s Sputnik moment,” highlighting its potential impact on the industry.
![] (https://www.telegraph.co.uk/content/dam/business/2025/01/27/TELEMMGLPICT000409807198_17379939060750_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGLvJF5WfpqnBZShRL_tOZw.jpeg)
-
@ cefb08d1:f419beff
2025-05-02 18:49:21I still get some errors on those relays as related in https://stacker.news/items/797226 :
wss://relay.snort.social/, wss://relay.damus.io/, wss://nostr.mutinywallet.com/, wss://relay.mutinywallet.com/
Is it "normal" ?
originally posted at https://stacker.news/items/969662
-
@ 9e69e420:d12360c2
2025-01-30 12:13:39Salwan Momika, a Christian Iraqi known for burning the Koran in Sweden, was shot dead during a TikTok livestream in an apartment in Sodertalje. The 38-year-old sparked outrage in the Muslim community for his demonstrations, leading to global condemnation. After being rushed to the hospital, he was pronounced dead.
Authorities arrested five individuals in connection with the incident. Momika's death comes days before a court ruling on his possible incitement of ethnic hatred. The incident highlights the tensions surrounding free speech and religious sentiments, intensifying after his controversial protests in 2023.
-
@ c9badfea:610f861a
2025-05-13 00:20:18► Text Tools
- ↪️ Image to Text
- ↪️ Text to Speech
- ↪️ Study / Research
- ↪️ Data Visualization
- ⭐ TextCleanr, Text Mechanic, TextFixer, OnlineTextTools, Convert Case, TextCleaner, SortMyList or The Alphabetizer - Organize / Format Text
- OpenPaper, papis, PaperMerge, Paperless-ngx / Doc Analyzer or DataShare - Document Managers
- SmartDoc - Document Analyzer
- diffr, Diffchecker, TextCompare, Text-Compare, OnlineTextCompare, CompareText or DiffNow - Compare Text
- Count Duplicates or DuplicateWord - Count / Remove Duplicates in a List
- WindowTextExtractor - Extract Text From Any Window
- Textify - Copy Text from Any Dialog
- BeefText - Text Substitution Tool
- Scanner or NAPS2 - Scanner Apps / GitHub
- Calligrapher.ai, Text to Handwriting, texttohandwriting or HandWrittner - Text to Handwriting Converters
- StegCloak - Hide Messages in Text
- telescopictext - Write Text Within Text
- quipqiup or dCode - Cryptogram Solvers
- DocuSeal - Free Document Signing
- TemplateLab or FreePrintables - Free Document Templates
▷ Pastebins
- 🌐 PrivateBin Instances
- ⭐ Rentry, 2 - Markdown Support / CLI / Styling
- ⭐ GitHub Gists - Multi-Syntax / Account Needed
- ⭐ pastes.dev - Multi-Syntax / Markdown Support / GitHub
- ⭐ PrivateBin, 2 - Markdown Support / Syntax Highlighting / GitHub
- ⭐ Katbin - Plain Text / GitHub
- snowbin, 2 - Markdown Support / GitHub
- Text.is - Markdown Support / Rentry Clone
- Stellular, 2, 3 - Markdown Support
- bpa.st - Multi-Syntax / Markdown Support
- dpaste - Multi-Syntax / Markdown Support / GitHub
- cryptgeon - Single View / Plain Text / GitHub
- Paste.ee - Multi-Syntax / Markdown Support
- pst.moe - Multi-Syntax / Markdown Support / Source
- dpaste.com - Multi-Syntax / Markdown Support
- Pastebin.com - Multi-Syntax
- pastebin.pl - Multi-Syntax
- CentOS Pastebin - Multi-Syntax
- Microbin - Multi-Syntax
- snippet.host - Multi-Syntax
- ProtectedText - Multi-Tab
- bin - Minimal Pastebin
- txt.fyi - Markdown Pastebin
- MarkdownPastebin - Markdown Support
- Sparked Paste - Plain Text / Syntax Highlighting
- Riseup Pad - WYSIWYG Pastebin
- WriteXO - WYSIWYG Pastebin
▷ Translators
- Note - Chatbots like ChatGPT and Claude can also translate text, and are sometimes better than the ones listed below.
- ⭐ DeepLX or DeepL - AI-Based
- ⭐ Kagi Translate, Google Translate / Extension, Lingva Translate or GTranslate / API - Translation Sites
- ⭐ /r/Translator - Translation Request Community
- ⭐ Translate Web Pages - Browser Extension
- Argos - Translation Apps
- Translate Shell - Translation CLI / GitHub
- OnlineDocTranslator - Document Translator
- Matecat - Online Translation Editor
- LingoJam - Create Translator
- Renpy Translator or Renpy Editor - Ren'py Automatic Translator / Editor
- Translator++ - Automatic Translator / Editor
- Eazypo or Poedit - Translation Editor
- OmegaT - Translation Memory Tool
- Morsecode World or MorseDecoder - Morse Code / Binary Translators
- Emojify - Emojify Text
- Simple Translate - Browser Extension
- Linguist Translator - Browser Extension
- ImTranslator - Browser Extension
- Papago
- Libretranslate / 2
- ImmersiveTranslate / Extension
- Translate.com
- MyMemory
- Nice Translator
- Yandex Translator
- Bing Translator
- Reverso
- babelfish
- translation2
- collinsdictionary
- translatedict
- Translator.eu
- Textractor - Game / Visual Novel Translator
▷ Audio Transcription
- 🌐 ASR Leaderboard - Speech to Text Leaderboard
- Whisper - Audio Transcription / WebUI, 2
- mp4grep - MP4 File Transcription Tool
- SpeechTexter, VoiceToText, Dictation, oTranscribe or TalkTyper - Browser-Based Speech-To-Text Tools
- Revoldiv or Turboscribe - AI-Based Transcriptions
- Vibe - Audio Transcription Software
- Buzz - Audio Transcription Tool
- WhisperX - Audio Transcription Tool
- SpeechNotes - Speech Recognition Notes App
- LilySpeech - Fast Voice-To-Text Software
- VoiceNotebook - Speech Transcription Notebook
▷ Encode / Decode
- 🌐 DecodeUnicode - Unicode Decoding Database
- ⭐ CyberChef - Encode / Decode Text / GitHub
- ⭐ Base64 Decode or Base64 Editor - Encode / Decode Base64
- ⭐ Auto Decoder - Auto-Decode B64 Links on Pastebins
- Ciphey - Automated Decryption Tool
- Universal Encoding Tool - Encode / Convert Text
- cryptii or DenCode - Text / URL Encoding
- Coder - Text / File / URL Encoding
- Online Tools - Text / URL Encoding and Decoding
- URL Decode / Encode - URL Encoding / Decoding
- Base64 Repair - Fix Broken Base64
- Base64 Extensions - Chrome, 2, 3 / Firefox
▷ Grammar Check
- Note - Most chatbots in the AI section can also check grammar.
- ⭐ LanguageTool
- Writing Tools - Desktop App
- DeepL Write
- QuillBot
- Scribens
- EditGPT - Sign-Up Required
- Grammarly - Sign-Up Required / Extension
- ProWritingAid - Sign-Up Required
- Outwrite - Sign-Up Required
▷ Text Rephrasing
- ⭐ QuillBot AI or Rewritify - AI-Enhanced Text Rephrasing
- ⭐ Paraphrasetool or Rephrasely - AI Text Rephrasing / Generation
- ⭐ Goblin.tools - Transform Text with Spiciness Levels
- Paraphraser - Multilingual Text Rephrasing
- Paraphrase-Online, Paraphrasingtool, Henshu or WriteFull - Versatile Text Rewriting
▷ Emoji Indexes
- ⭐ Emojipedia, EmojiDB, Slackmojis, Emoji Picker or EmojiBatch - Emoji Indexes
- Emoji Engine - Multilingual Emoji Search
- winMoji - Emoji Managers
- EmojiRequests - Custom User-Made Emojis
- Cult of the Party Parrot - Party Parrot Emojis
- Pepe Server Archive - Pepe Emojis
▷ Unicode Characters
- ⭐ Amp What
- CopyChar
- Unicode Table
- Unicode Explorer
- Character Map
- Unifoundry
- Cool Symbol
- emotes.io, CuteSymbols, 2 or GetSymbol / 2 - Copy Unicode Emotes
▷ Typing Lessons
- ⭐ Monkeytype - Customizable Typing Tests / Discord / GitHub
- Typing Guide - In-Depth Typing Guide
- Typing.io - Typing Practice for Programming / Sign-Up Required
- Typ.ing, Typings or typing.works - Typing Tests
- keybr - Typing Practice
- CyberType - Typing Practice
- Typing.com - Typing Lessons
- Typing Club - Touch Typing Lessons
- typing.academy - Typing Lessons / Requires JavaScript Enabled
- TypeRacer, ZType, TypeRush or ARRRType - Typing Games
- NGram Type, KeyZen MAB or Keyzen Colmak - Touch Typing Tests
- TypeLit.io or Entertrained - Book Typing Tests
- Colemak Academy - Alt / Custom Keyboard Tests
- TypingStudy or TypeFast - Multilingual Typing Tests
- 10fastfingers - Typing Competitions
► Text Editors
- 🌐 List of Text Editors - Text Editor / Notepad Index
- ↪️ Android Text Editor
- ↪️ Code Editors / IDEs
- ↪️ Markdown Editors
- ⭐ Notepad++ / GitHub or NotepadNext - Notepad & Code Editor / Markdown
- EncryptPad - Encrypted Text Editor / GitHub
- Notepads - Text Editor / GitHub
- FastNotes - Text Editor / GitHub
- Kompad - Text Editor / GitHub
- Sublime Text - Text Editor / Patcher / Package Manager
- Zim Wiki - Wiki Text Editor
- tomboy-ng - TomBoy-Based Text Editor
▷ Note-Taking
- ↪️ Android Note-Taking
- ⭐ Obsidian - Markdown Note-Taking / Discord
- ⭐ Obsidian Tools - Resources / Publish Notes / Web Clipper / Google Drive Sync / ChatGPT Addon / Guides / Forum
- ⭐ Notion - Note-Taking
- ⭐ Notion Tools - Themes / Templates / Resources, 2 / Guide / Markdown Extractor
- ⭐ Notesnook - Note-Taking / GitHub
- ⭐ AnyType - Note-Taking
- ⭐ Logseq - Outlining
- Mochi Cards or Silicon - Note-Taking / Study Tools
- Flotes - Markdown Note-Taking
- QOwnNotes - Markdown Note-Taking
- AFFiNE - Note-Taking / GitHub
- vNote - Markdown Note-Taking / GitHub
- Tiddly - Info Manager / Desktop
- Trilium - Info Manager
- Org-roam - Info Manager
- Desklamp - Reading / Note-Taking / Highlighting Tool / Guide
- UseMemos - Note-Taking / Discord / GitHub
- Papers.IM - Note-Taking
- Joplin - Note-Taking / Firefox / Chrome / GitHub
- AppFlowy - Note-Taking / GitHub
- MicroPad - Note-Taking
- WriteDown - Note-Taking
- DocMost - Note-Taking
- KeyNote NF - Note-Taking
- SilentNotes - Note-Taking / GitHub
- Google Keep - Simple Notes
- StandardNotes - Encrypted Notes
- Saber - Handwritten Notes
- Butterfly - Handwritten Notes / Discord / GitHub
- Xournal++ - Handwritten Notes / GitHub
- BookStack or Siyuan - Self-Hosted Info Managers
▷ Office Suites
- ↪️ Office Activation / Guide / Custom Install Guide
- ⭐ LibreOffice - FOSS Office Suite
- ⭐ OnlyOffice - FOSS Office Suite
- ⭐ Microsoft Office - Office Suite / Removal Tool / Hot Keys, 2
- Calligra - FOSS Office Suite
- Office365Version - Office 365 Version History
▷ Online Editors
- ⭐ Simplenote - Local / Cloud Saves
- ⭐ Proton Docs - Local / Cloud Saves
- ⭐ takenote - Local Saves
- ⭐ Zen - Local Saves
- Leaflet - Cloud Saves / Customizable / Examples
- Browserpad - Local Saves
- Notepad - Local Saves
- onlinenotepad - Local Saves
- notepad-online.net - Local Saves
- ssavr - Local Saves
- notepad-online.com - Local Saves
- JustNotePad - Local Saves
- PasteePad - Local Saves
- Shrib - Local / Cloud Saves
- MemOnNotepad - Local / Cloud Saves
- Write Box - Local / Cloud Saves
- dDocs - Cloud Saves
- NimbleText - Cloud Saves
- ZippyJot - Cloud Saves
- KiloDoc - Cloud Saves
- TinyList - Cloud Saves
- Edit-Document - Local / Cloud Saves
- TextSlave - Cloud Saves
- GhostText - Cloud Saves
- AnyTextEditor - Cloud Saves
▷ Mind Mapping
- ⭐ Obsidian Canvas
- FreeMind
- Kinopio
- Freeplane
- Mindomo
- Yuque
- MindMapp
- are.na
- Domino
- GitMind
- xTiles
- Capacities
- bubbl
- Heimer
- Cubox
- vym
- markmap - Markdown Mind Mapping / GitHub
- Coggle - Collaborative
- CardSmith - Collaborative Mind Mapping
- Memrey - Collaborative Mind Mapping
- MindMeister - Collaborative Mind Mapping
- Slatebox - Collaborative Mind Mapping
▷ Text / Code Collaboration
- ⭐ Google Docs / HTML Converter
- ⭐ CryptPad
- ⭐ Kludd
- Mattermost
- Codeshare
- HackMD
- Taskade
- Socket
- Whimsical
- Ellipsus
- Etherpad
- SharePad
- Pixso
- FidusWriter
- overleaf
- Rustpad / GitHub
- OnlineInterview.io
▷ Spreadsheet Editors
- 🌐 MTEB Leaderboard - Text Embedding AI Leaderboard
- tad, Tree Sheets, Gnumeric or Quadratic - Spreadsheet Viewers / Editors
- Baserow, Framacalc, EtherCalc, NocoDB or AirTable - Collaborative Spreadsheets
- Jamovi - Statistical Spreadsheets
- Excel Practice Online - Excel Practice / Guides
- Excel Macro Mastery - Excel VBA Guides
- ExcelJet or Excel Functions - Excel Formulas
- Vertex42 - Excel Templates
- Plain Text Table - Text Tables
- EditCSVOnline - Online CSV Editor
- SubjectiveSort - Create Ranked List from CSV
- VisiData - Spreadsheet CLI Editor
- Structifi - Convert Files to Structured Data
- TadViewer - View / Analyze Tabular Data
▷ Writing Tools
- 🌐 Author Stash - Writing Tools / Resources
- ↪️ AI Text Generators
- ⭐ Writer, FocusWriter, Writemonkey, blank.page, Telegra.ph, Aurelius, ZenPen, Write.as, Owri, WriteSpace or WriteNext - Distraction-Free Writing
- ⭐ Manuskript - Writing Organizer / Planner
- ⭐ NovelWriter or Bibisco - Novel Editors
- ⭐ Linked, journaltxt, Gekri, Microsoft Journal, Diarium, Gemlog or jrnl.sh - Journal Apps
- ⭐ ChaoticShiny, Seventh Sanctum, Notebook.ai or WorldAnvil - Fantasy Writing Generators
- Tuesday JS - Visual Novel Editor / GitHub
- RenPy - Visual Novel Editor / GitHub
- Fortelling or Novelist - Novel Plotting / Editing Workspaces
- Infinite Story, Strand, Agora or WriteAlong - Collaborative Writing / Feedback
- LanguageIsAVirus or MDWA - Writing Prompts
- Twinery - Interactive Non-Linear Story Creator
- TextUSM - User Story Map Generator / GitHub
- Blackout Poetry - Blackout Poetry Creator
- Idyll - Create Interactive Essays / GitHub
- STARC, WriteSolo or Celtx - Script / Screen Writing Tools
- Rarebit - Webcomics Template
- Fantasy Name Generators - Fantasy Name Generators
- PolyGlot or VulgarLang - Spoken Language Construction Tools
- How to annotate literally everything - Annotation Tools / Resources
- Label Buddy - Annotation Tool / GitHub
- rNote - Annotation Tool / GitHub
- MonsterWriter - Thesis Writing / Note-Taking
▷ To Do Lists
- ↪️ Android To-Do Apps
- ⭐ Goblin.tools - Automatic Task Breakdown
- ⭐ TickTick / Premium
- ⭐ Super Productivity
- Columns or ChecklistGenerator - Checklists
- YearCompass - New Years Resolution Booklet
- daily.place
- SuperList
- dooit / Extras
- ToDo List / GitHub
- Diry AI
- Fokus
- OpenToDoList
- Microsoft To Do
- NullBoard
- LunaTask
- ToDoZero
- LifeAt
- Tasks
- Taskwarrior
- Vikunja
▷ ASCII Art
- ⭐ TAAG, DeepAA, Kammerl, ASCII Art Studio or ASCII Today - ASCII Art / Text Generators
- REXPaint, Playscii or PabloDraw - ASCII Editors
- ASCII Paint - ASCII Paint Tool
- ascii-art-generator, asciiart, ascii-image-converter, Monospace, ITOA, text-image or ASCII-art-creator - Image to ASCII Art
- Love ASCII, asciiart.eu, EmojiCombos, 16colors, ascii.co or RoySAC - Browse / Copy ASCII Art
- Image to Braille - Convert Images to Braille
- AnsiLove or convert-ascii-to-image - ANSI / ASCII Art to PNG Converters
- lvllvl or Petmate - C64 PETSCII Image Editor
► Fonts
- ⭐ Nerd Fonts - Icon-Rich Developer / Terminal Fonts
- OpenDyslexic - Typeface for Dyslexia
- Typewolf or Typ.io - Trending Website Fonts
- Cava's Pixel Resources - Pixel Fonts
- Oldschool PC Fonts - Oldschool PC Fonts
- FiraCode, Cascadia Code or Maple Font - Monospace Fonts
▷ Open Source / Freeware
- ⭐ FontSource - Open Source
- ⭐ Font Squirrel - Commercial Use
- ⭐ DaFont - Freeware
- ⭐ 1001 Fonts - Freeware
- Modern Fonts Stacks - Collection of CSS System Font Stacks
- Velvetyne - Open Source
- uncut.wtf - Open Source
- Beautiful Web Type - Open Source
- FontRepo - Open Source
- Bunny Fonts - Open Source
- Google Fonts - Commercial Use / Tags / Privacy-Friendly API
- FontShare - Commercial Use
- Fontlot - Freeware
- Fontsly - Freeware
- Fonts4Free - Freeware
- FontSpace - Freeware
- Online Fonts - Freeware
- CDNFonts - Freeware
- Fontesk - Freeware
- FontStruct - Freeware
- iFonts - Freeware
- DownloadFonts - Freeware
- AbstractFonts - Freeware
- FontGet - Freeware
- FreeFontsDownload - Freeware
- Fonts2u - Freeware
- Awwwards - Freeware
- GlukFonts - Freeware
- Iconian - Freeware
▷ Free Fonts
- ⭐ Fonts CSE - Multi-Site Font Search
- ⭐ Font Piracy 101 - Font Download Guide
- ⭐ Font Drives
- ⭐ BeFonts
- Windows Fonts
- Free Fonts Family
- Cufon Fonts
- FontsFree
- DFonts
- Font Spring
- FFonts
- FontsHub
- Font Meme
- FONToMASS
- 1.5_million_fonts
- Mr.E-Fonts
- psd_fonts
- 1001 Free Fonts
► Font Tools
- ⭐ Font Interceptor - Download Fonts from Websites
- ⭐ FontDrop - Analyze Font Files
- ⭐ Adobe Fonts, Font Finder, WhatTheFont, Identifont, WhatFont - Font Identification Tools
- Fonts Ninja - Font Identification Extension
- Unicode Explorer or Compart - Unicode Character Identification
- Transfonter - Create CSS @font-face Kits
- TypeRip - Adobe Font Ripper / GitHub
- FontBase, NexusFont or Font Manager (Linux) - Font Managers
- Colors & Fonts - Typography Tools
- DS-Fusion - AI Typography Generator
- Formito - Typography Logo Maker
- Type Terms - Typography Cheat Sheet
- The Good Line-Height - Typography Scaling Editor
- Font List or So You Need A Typeface 2.0 - Examples of Font Styles
- Type Design Resources or Free Faces - Typeface Resources
▷ Font / Text Generators
- ⭐ FontoGen - Custom AI Font Generator
- ⭐ Make WordArt, FlameText, MakeText, TextGiraffe, Text Pro or CoolText - WordArt Generators
- Polona Typo - Generate WordArt from Book, Poster, & Map Letters
- Text Color Fader - Rainbow Text Generator
- TextDrom, 3DText2GIF or TextStudio - 3D / Animated Text Generators
- Textanim or Space Type Generator - Animated Text Generators
- Batname - Batman (2022) Text Generator
- NFG's Arcade Font Maker or Arcade Font Writer - Arcade Text Generators
- Glitch - Zalgo Text Generator
▷ Font Customization
- ⭐ TypeTrials - Variable Font Playground
- V-Fonts or Phase - Variable Fonts Testers
- enFont or Calligraphr - Custom Font Creators
- Fontjoy - Generate Font Combinations
- FontSprite - FontSprite Editor
- BitFontMaker2 - BitMap Font Editor
- FontEdit, metaflop, MFEKglif, Glyphr Studio, Birdfont, Universal Sans or FontForge - Font / Typeface Editors
▷ Unicode Text Generators
-
@ cefb08d1:f419beff
2025-05-02 18:37:13Snapper Rocks surf heralds the start of the Superbank, offering some of the most iconic right barrels in the whole of Australia. If it was good enough for Mick Fanning…
An introduction to Snapper Rocks surf When people talk about Snapper Rocks surf, what they’re really talking about is the first spot in a long line of truly legendary spots that together form the Kirra Superbank. They’ve all garnered endless international attention in the last two decades, since the removal of sand from the Tweed River estuary started building up the engine room for what can only be described as a barrel machine.
Prior to 2001, Snappers was a bit fickle, a touch mushy, but nonetheless a decent left-right break for intermediates. Today, it’s a crowded take-off zone for riders chasing the long peelers that can shift them from the head all the way to Kirra Beach in one interconnected medley of hollow and heavy sections. It’s the land that crafted names like Mick Fanning and it’s understandably awesome stuff.
Location:
https://www.google.com/maps/place/28%C2%B009'41.4%22S+153%C2%B032'58.8%22E/@-28.161507,153.549664,14z/data=!4m4!3m3!8m2!3d-28.161507!4d153.549664?hl=en&entry=ttu&g_ep=EgoyMDI1MDQyOS4wIKXMDSoASAFQAw%3D%3D
To watch it live:
https://www.youtube.com/watch?v=NMnfbXRqe58
originally posted at https://stacker.news/items/969653
-
@ f72e682e:c51af867
2025-05-02 18:33:38lightning #fees #lnd #node
I'm really tired of bad node operator that do not take advantage of everything we have and expect for the LN network to work properly. If you have a node, please do this.
I recommend having an automatic fee automator like charge-lnd so channels don't become stagnant:
https://github.com/accumulator/charge-lnd
And put some negative inbound fees for channels with no liquidity:
https://docs.lightning.engineering/lightning-network-tools/lnd/inbound-channel-fees
You'll notice you will route A LOT MORE.
Any question I will respond below.
A good starting configuration:
========
``` [encourage-routing]
'autobalance' (lower fees so using outbound is more attractive)
chan.min_ratio = 0.98 inbound_base_fee_msat = 0 inbound_fee_ppm = 0 strategy = static base_fee_msat = 0 fee_ppm = 0
[discourage-routing]
'autobalance' (higher fees so using outbound is less attractive)
chan.max_ratio = 0.2 chan.min_ratio = 0.05 inbound_base_fee_msat = -64 inbound_fee_ppm = -16 strategy = static base_fee_msat = 1_000 fee_ppm = 700
[all-liquidity-is-theirs] chan.max_ratio = 0.00 inbound_base_fee_msat = -128 inbound_fee_ppm = -128 strategy = static base_fee_msat = 100_000 fee_ppm = 5000
[discourage-routing-extreme] chan.max_ratio = 0.05 inbound_base_fee_msat = -128 inbound_fee_ppm = -32 strategy = static base_fee_msat = 10_000 fee_ppm = 2500
[proportional]
'proportional' can also be used to auto balance (lower fee rate when low remote balance & higher rate when higher remote balance)
fee_ppm decreases linearly with the channel balance ratio (min_fee_ppm when ratio is 1, max_fee_ppm when ratio is 0)
chan.min_ratio = 0.2 chan.max_ratio = 0.98 strategy = proportional min_fee_ppm = 8 max_fee_ppm = 160 inbound_base_fee_msat = 0 inbound_fee_ppm = 0 base_fee_msat = 128 min_fee_ppm_delta=16 ```
originally posted at https://stacker.news/items/969651
-
@ 0fa80bd3:ea7325de
2025-01-30 04:28:30"Degeneration" or "Вырождение" ![[photo_2025-01-29 23.23.15.jpeg]]
A once-functional object, now eroded by time and human intervention, stripped of its original purpose. Layers of presence accumulate—marks, alterations, traces of intent—until the very essence is obscured. Restoration is paradoxical: to reclaim, one must erase. Yet erasure is an impossibility, for to remove these imprints is to deny the existence of those who shaped them.
The work stands as a meditation on entropy, memory, and the irreversible dialogue between creation and decay.
-
@ 0fa80bd3:ea7325de
2025-01-29 15:43:42Lyn Alden - биткойн евангелист или евангелистка, я пока не понял
npub1a2cww4kn9wqte4ry70vyfwqyqvpswksna27rtxd8vty6c74era8sdcw83a
Thomas Pacchia - PubKey owner - X - @tpacchia
npub1xy6exlg37pw84cpyj05c2pdgv86hr25cxn0g7aa8g8a6v97mhduqeuhgpl
calvadev - Shopstr
npub16dhgpql60vmd4mnydjut87vla23a38j689jssaqlqqlzrtqtd0kqex0nkq
Calle - Cashu founder
npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg
Джек Дорси
npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m
21 ideas
npub1lm3f47nzyf0rjp6fsl4qlnkmzed4uj4h2gnf2vhe3l3mrj85vqks6z3c7l
Много адресов. Хз кто надо сортировать
https://github.com/aitechguy/nostr-address-book
ФиатДжеф - создатель Ностр - https://github.com/fiatjaf
npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6
EVAN KALOUDIS Zues wallet
npub19kv88vjm7tw6v9qksn2y6h4hdt6e79nh3zjcud36k9n3lmlwsleqwte2qd
Программер Коди https://github.com/CodyTseng/nostr-relay
npub1syjmjy0dp62dhccq3g97fr87tngvpvzey08llyt6ul58m2zqpzps9wf6wl
Anna Chekhovich - Managing Bitcoin at The Anti-Corruption Foundation https://x.com/AnyaChekhovich
npub1y2st7rp54277hyd2usw6shy3kxprnmpvhkezmldp7vhl7hp920aq9cfyr7
-
@ 5d4b6c8d:8a1c1ee3
2025-05-02 16:24:49The first round is not quite over, with Warriors vs Rockets and Nuggets vs Clippers, still going in the West, But we do know most of who will be playing in the second round, so it's not too early to start thinking about our picks.
This contest is open entry throughout. Just submit a pick for who will win their series and who will be the leading scorer of the entire playoff round. You can select a team or player, up until tipoff of their series.
Matchups (seed)
- Pacers (4) @ Cavs (1)
- Knicks (3) @ Celtics (2)
- Nuggets (4) or Clippers (5) @ Thunder (1)
- T-Wolves (6) @ Rockets (2) or Warriors (7) @ T-Wolves (6)
Scoring
2 Points + seed for picking a winner + 2 points for picking the leading scorer (total points) of the round
Standings
These will change if the Clippers or Warriors advance. Also, if Jokic scores 37 or more, he will catch Brunson (who no one selected) and net a few stackers another point. | Stacker | Points | |---------|--------| | @grayruby | 24| | @Coinsreporter | 19 | | @Carresan | 18 | | @gnilma | 18 | | @Undisciplined | 17 | | @WeAreAllSatoshi | 12 | | @fishious | 11 | | @BlokchainB | 11 | | @Car | 1 |
Prize
10k sats (or total zaps on these posts, whichever is larger)
originally posted at https://stacker.news/items/969492
-
@ 5d4b6c8d:8a1c1ee3
2025-05-02 15:20:18After exclusively talking about NFL draft and NBA playoffs last week, we have a lot of ground to make up.
The race for second place in the T20k cricket contest is heating up, but @Coinsreporter has a very commanding hold on 1st. I similarly have a stranglehold on last place in the CricZap contest and, not to brag, I just broke @grayruby's impressive mark for worst single month performance.
We're down to the final two survivors in the UEFA Survivor Pool. C'mon @TNStacker, we're all pulling for you.
The US continues to dominate the rest of the world... in our US vs the world contest.
Our MLB fantasy league (courtesy of @NEEDcreations) is a lot of fun, with tons of daily roster moves and movement in the standings. We should also finally have time for @grayruby to rant about how the American League is the suckiest bunch of sucks who ever sucked (where's that from?).
We do have more playoff basketball to cover. The games this week have been spectacular and we have second round series to start talking about. Shoutout to @WeAreAllSatoshi for hosting discussion threads. I'll get some posts up later summarizing how the bracket challenge is going and taking second round picks in the playoff points challenge.
NHL playoffs are also underway and we've barely talked about them, yet. What are the interesting storylines of round 1? How's the bracket challenge going?
And, of course, we'll talk about our favorite Predyx sports markets.
What else do stackers want to talk about?
originally posted at https://stacker.news/items/969413
-
@ 0fa80bd3:ea7325de
2025-01-29 14:44:48![[yedinaya-rossiya-bear.png]]
1️⃣ Be where the bear roams. Stay in its territory, where it hunts for food. No point setting a trap in your backyard if the bear’s chilling in the forest.
2️⃣ Set a well-hidden trap. Bury it, disguise it, and place the bait right in the center. Bears are omnivores—just like secret police KGB agents. And what’s the tastiest bait for them? Money.
3️⃣ Wait for the bear to take the bait. When it reaches in, the trap will snap shut around its paw. It’ll be alive, but stuck. No escape.
Now, what you do with a trapped bear is another question... 😏
-
@ c9badfea:610f861a
2025-05-13 00:19:14► Social Media Tools
- 🌐 alternative-frontends, Farside / 2 or PrivacyRedirect - Frontend Indexes
- ↪️ Android Social Media Apps / iOS
- ⭐ GrayJay - Combines YouTube, Twitch, Rumble, etc. / Guide
- ⭐ SocialBlade - Social Media Stats
- ⭐ LiveCounts - Live Social Media Stats
- ⭐ LibRedirect / GitHub, Predirect or Proxy Redirect - Frontend Redirect Extensions
- Numblr - Self-Hosted Frontend Redirect
- Proxitok, Urlebird or OffTikTok - TikTok Frontends
- Social-Searcher, WeVerify or Social Media CSE - Social Media Search Engines
- Social Media Hacker List - Social Media Apps / Tools
- ExportComments - Export Social Media Comments
- socid_extractor - Extract Social Media User Info from Pages
- BlackTwist - Free Threads Analytics
- Schedul - Threads Content Publishing & Scheduling
- Mind Your Banners - Social Media Banner Design
- CleanSnap - Customize Social Media Screenshots
► Discord Tools
- Warning - Misuse of chat archivers, mass-deleters, mods or third-party clients is against Discord's terms of service, so use at your own risk.
- ⭐ embeds.video, x266, Stolen Shoes, embedez or Discord Embedder - Discord Video Embedders
- ⭐ Disblock Origin or Discord Adblock - Hide Nitro / Boost Ads
- ⭐ Revolt / Bots / Resources or Guilded - Discord Alternatives
- ⭐ OpenAsar - Improved Discord Desktop's Asar / Discord / GitHub
- AnswersOverflow - Discord Search Engine
- DiscordFS - Discord File Search
- Discord Downloader Go - Discord File Downloader
- Toolscord, discord.id or Discord Avatar - Avatar Downloaders
- Disbox - Discord Cloud Storage
- Discrub - Message Manipulation / Export Tool
- Discord Chat Exporter / Python or Discord History Tracker / GitHub - Archive / Export Discord Chats
- Wumpus Central - Discord Experimental Server Hub
- SimpleDiscordCrypt - Discord Message Encryption
- Permissions Calculator - Generate Discord OAuth Invites
- dsc.gg - Create Custom Discord Invites
- Discord Previews - New Discord Builds / Changes
- instaparty - Temporary Discord Servers
- Discord Templates - Discord Server Templates
- Discord UI Mockup - Discord UI Mockups
- discord-badges - Discord Badges Image Files
- Discord Creation Date Check - Check Creation Date of User / Channel / Server
- Discord Lookup - Look up a Discord User or Bot ID
- Guild Counter - Check How Many Servers You're In
- Discord Dev Badges, active-developer-badge or GiveMeBadge - Unlock Discord Dev Badges / Script
- Discord-Api - Discord API Chat
- Discord-Datamining - Discord Datamining via JS Files
- Discord TTS Bot - Text to Speech for Discord
- Discord Webhooks Guide - Webhooks Guide
- Webhooker - Simple Webhooks App
- Embed Visualizer - Preview Embeds
- BetterTwitFix - Fix X.com / Telegram Embeds
- 8mb.video or @Snooober's Script - Encode Videos to <8MB
- Discord Packages - View Discord Packages / Self Host for Privacy / Discord
- Soundboards.gg - Discord Soundboard Sounds
- Hammertime, Dank.tools, Timestamp Maker, discord-timestamps or discordtimestampgenerator - Discord Timestamp Generators
- TagMap - Meet People with Similar Interests
▷ Discord Clients
- 🌐 Discord3rdParties - Discord Clients Index
- ⭐ Vencord - Discord Client Mod / Discord / GitHub
- ⭐ WebCord - Privacy-Hardened Client / Discord
- Replugged - Discord Client Mod / Discord
- Legcord - Discord Client / Lightweight / Discord
- GoofCord - Privacy-Focused Legcord Fork
- BetterDiscord - Discord Client Mod / Discord / GitHub
- BetterDiscord Tools - Plugins / Banned Plugins / Nitro / Re-install Guide
- abaddon - Discord Client Mod / Lightweight / Discord
- Discordo - Discord Terminal Client
- Vesktop - Web Client w/ Vencord Preinstalled
- Spacebar - Self-hostable Discord Compatible Client
- Dorion - Lightweight Discord Client / GitHub
- Dissent - GTK4 Discord Client
- Discord Portable / PTB PortApps - Portable Discord Stable
▷ Client Customization
- 🌐 Client Themes or Discord Themes - Client Theme Index
- ⭐ Discohook, Embed Creator or Embed Generator - Embed Generators
- ⭐ CustomRP - Customizable Rich Presence
- BD Editor - Client Theme Editor
- ChromaDiscordApp - Chroma Light for Discord
- Overlayed - Alternative Discord VC Overlay / GitHub
- BeautifulDiscord - Custom CSS Support
- ansi-colors-discord.md - Discord ANSI Text Guide
- Coloured-Text-Generator - Discord ANSI Text Generator
- Auto Creative - Animated Icon / Banner Generator
- Discord Decorations - Free Discord Avatar Decorations
- Discord Avatar Maker - Discord Avatar Creator
- Better Default Discord - Improved Default Discord Avatars
- Pfps.gg - Find Discord Avatars
- usrbg - Custom Discord Profile Backgrounds
- Disgradient - Discord Folder / Role Color Gradients
- Nelly, mgcounts / Discord or Discord.band - Discord Server Tag Lists
- Emoji List - Discord Emojis / GIFs
- Discord-Emoji-Downloader - Emoji Downloader
- ImageClipboard, Slackmoji or emoji.gg - Free Discord Nitro Emojis
- Snowsgiving Icons & Emotes - Snowsgiving Event Icons / Emojis
- Discord Text to Emoji - Convert Text to Discord Emojis
- Stickers.gg - Free Discord Stickers
- PreMiD - Display Web Activity in Discord Status / GitHub / Discord
- Music Presence - Audio Player Rich Presence / Discord
- Jellyfin RPC - Jellyfin Rich Presence
- Adobe Discord RPC - Adobe Rich Presence
- PS3 Rich - PS3 Rich Presence
- discord-vscode - VSCode Rich Presence / GitHub
▷ Discord Bots
- ⭐ FreeStuff Bot - Free Games Alert Bot / Discord / Telegram
- FixEmbed - Fix Embeds on Discord Bot
- esmBot - Image / Music Bot
- NotQuiteNitro - Discord Nitro Alternative
- fmbot - Discord Voice Chat Scrobbling
- Chuu - Last.fm Discord Bot
- Craig - Voice Channel Recorder Bot / Backup
- MonitoRSS or ReadyBot - RSS Discord Bots
- Wallabot - Wallabag Discord Bot
- Discord Music Bot, Music-bot / Discord, Chip, MusicBot or EvoBot - Music Bots
- Steambase Bot - Steam Insights Bot
- Red Discordbot, Discord-Bot or Loritta - Self-Hostable Discord Moderation Bots
- Wickbot - Discord Security Bot
- anti-phishing-bot - Discord Anti-Phishing Bot
- Automod Config - Automod Bot Config
- Modmail - Discord Modmail Bot
- Discord-Linux - Linux Container Bot
▷ Server / Bot Indexes
- 🌐 Alternatives to MEE6 - MEE6 Alternatives / Discord
- UnFocused - Server Index / Discord
- DISBOARD - Server Index
- Discadia - Server / Bot Index
- Discords.com - Server / Bot Index
- Discord Me - Server / Bot Index
- Discord Servers - Server Index
- DiscordServers.com - Server / Bot Index
- Disforge - Server / Bot Index
- Open Source Projects - Server / Bot Index
- BotBlock - Bot Index
- Top.gg - Bot Index
- Bots on Discord - Bot Index
- Discord Bots - Bot Index
- Top Bots - Bot Index
- Infinity Bot List - Bot Index
- Discord Services - Bot Index
- DiscordBots - Bot Index
- Discord Bot List - Bot Index
- Carbon Bot List - Bot Index
- Botlist.me - Bot Index
- Void Bots - Bot Index
- Discord Botlist - Bot Index
► Reddit Tools
- ⭐ Reddit Stream - Live Thread Viewer
- ⭐ Reddit Enhancement Suite, Reddit++, Reddit Fix, Reddit Extension, RedditEnhancer or RedditMod2 - Reddit Enhancement Extensions / Scripts
- ⭐ Old Reddit Redirect - Redirect New Reddit to Old
- Redlib / 2 or Photon, reditr, RDX - Reddit Frontends
- Redditp or Reddit Viewer - Reddit TikTok Style Viewers
- Beleave or SubCleaner - Subreddit Cleaners / Managers
- Reddit Comber or Sub Notification - Reddit Keyword Notifications
- Reddit Preview - Preview Reddit Posts
- RedditRaffler - Reddit Raffle System
- SubTransfer - Export / Transfer Subreddits
- PowerDeleteSuite - Reddit Auto Post Delete
- SnooSnoop - Reddit Account Analyzer
- Reddit Emojis - Emojis for Old Reddit
- Subreddit Tabs - Subreddit Icon Tabs
- Reddit Comment Highlights - Highlight New Comments
- Newsit - Find Reddit Comments for any Webpage
- infini.wtf - Reddit Image Search
- Load Reddit Images Directly - Direct Image Viewer
- When to Post - Best Reddit Posting Times
- UniversalScammerList - List of Reddit Scammers
▷ Reddit Downloaders
- Note - You can also download Reddit videos by commenting "/u/SaveVideo".
- Viddit - Reddit Video Downloaders
- gallery-dl - Reddit Bulk Image Downloaders
- saveddit - Reddit Bulk Media Downloaders
▷ Reddit Alternatives
- ↪️ Lemmy Tools
- ⭐ Raddle - Minimalist / Privacy-Focused
- ⭐ Saidit - Free-Speech / Dual Upvote System
- /r/RedditAlternatives - Find Reddit Alternatives
- TheMotte - User-Driven Discussion
- Tildes - Non-Profit / User-Driven Discussion
- Scored - User-Driven Discussion
- Ramble - Privacy-Focused
- Squabblr - X.com / Reddit Style Alt
- Discuit - Centralized Reddit Alt with User Control
▷ Reddit Search
- ⭐ TheGigaBrain - Reddit Search Engines
- ⭐ Reddit Repost Sleuth - Reverse Post / Image Search
- ⭐ Undelete or Reveddit - View Deleted Reddit Posts / Comments
- New PullPush / 2 / 3, Samac or Better Reddit Search - Advanced Reddit Search
- Redditle - Reddit-Only Google Search
- Arctic Shift - Reddit Archive Dump Search / GitHub
- Reddit Dump Files - Reddit Comment Archives
- Expanse, redarcs or Rareddit - Reddit Post Archive Tools / Note
- RedditMetis, Reddit-User-Analyser or Redective - Reddit Profile Information
- rComments - Explore Comments / Replies without Clicking a Post
- ScrollDrop - Reddit Media Crawler
- Wiki Downloader - Reddit Wiki Page Scraper
- Find on Reddit - Find Discussions of the Current URL
- PullPush - Reddit Content API / Discord
▷ Subreddit Discovery
- 🌐 /r/ListOfSubreddits - Subreddits Index
- ↪️ Multireddit Indexes
- ⭐ Vizit, sayit, subreddit_map or SubredditMentionsGraph - Visualize Related Subreddits
- FindAReddit - Get Subreddit Suggestions / Subreddit
- Subreddit Calculator or redsim - Find Similar Subreddits
- Map of Reddit or Reddit Map - Subreddit Maps
- subreddits - Find Random Subreddits
- /r/Serendipity - Posts from Random Subreddits
- /r/wowthissubexists - Find Niche Subreddits
- Subreddit Stats or SubRanking - Subreddits Stats / Ranking
► Telegram Tools
- 🌐 TDirectory, Telemetr, Telegram Channels, Awesome Telegram - Telegram Channel Indexes
- 🌐 ComBot Groups - Top Telegram Groups Index
- Telegago, 2, Lyzem, xTea or TG-ME - Telegram CSEs
- SaveRestrictedContentBot - Save Restricted Content
- Telesco.pe - Telegram Round Video Recorder
- Video Stream - Telegram Video Player
- TGCF - Telegram Message Forwarding
- tg-channel-cloner-workers - Clone Telegram Channels
- tasra - Telegram Channel Archive
- Telegram Email - Email Alias Telegram Bot
- CHPic, Stickers Cloud, ComBot Stickers or moe_sticker_bot - Telegram Sticker / Emojis
▷ Telegram Clients
- ↪️ Android Telegram Clients
- ⭐ web.telegram / 2 / 3 - Web Client
- ⭐ Materialgram - Desktop Client / Portable
- ⭐ Unigram - Desktop Client
- TDesktop - Desktop Client
- TDesktop x64 - Desktop Client / Telegram
- VideoGram - Desktop Client
- AyuGram - Desktop Client / GitHub
- Pyrogram - Telegram API Client
- Telega.el - Telegram Emacs Client
- VanillaTG - Client Themes
▷ Telegram File Tools
- ⭐ Teldrive - File Manager / Uploader / Discord / GitHub
- File-Sharing-Bot / Telegram, TelegramCloud, easy_share_bot or UploadBot - Upload Files to Telegram
- MediaDownBot, WZML-X, Telegram Media Downloader, TopSaverBot, CatdlBot or DownloadsMasterBot - Media Downloaders
- Musvkrobot - Video Downloader
- GdriveXbot, google-drive-telegram-bot or Python Aria Mirror Bot - Google Drive Upload Bots
- SearchX - Google Drive Search Bot
- MEGA Uploader X or Mega-Bot - Remote Mega File Upload Bot
- OneDrive X - Remote OneDrive File Upload Bot
- MultiUpload-Bot - Telegram to File Host Upload Bot
- telegram-download-daemon - Download Large Telegram Files
- convrt_bot, FileConvertBot, newfileconverterbot or pdfbot - File Converters
- ILovePDF - Telegram File to PDF Converter
▷ Telegram Bots
- 🌐 BotsArchive, TelegramBotsList or borodutch.eth - Telegram Bots Indexes
- Now Playing - Now Playing Audio Bot
- Searchee Bot - Telegram Channel Search Bot
- Rose or GroupHelpBot - Telegram Group Managers
- TediCross - Telegram to Discord Bridge
- WatgBridge - Telegram to WhatsApp Bridge
- Mautrix - Telegram to Matrix Bridge
- Callmebot - Trigger Voice Calls or Chats
- Skeddy - Telegram Reminder Bot
- Reddit2Telegram - Reddit Post Bot
- rss2tg_bot or TheFeedReaderBot - RSS Feed Bots
- ShortUrlBot - Link Shortener Bots
- AiImageBot - Text to Image
- Shieldy Bot - Spam Protection Bot / GitHub
- ProxyBot, proxy_socks5_bot or ShadowSocks_bot - Telegram Proxy Bots
- /r/TelegramBots - Telegram Bots Discussion
► YouTube Tools
- ⭐ PocketTube or Kadium - Subscription Managers
- Youtube-shorts block or Shorts Deflector / GitHub - Play Shorts In The Normal Desktop Interface
- Remove YouTube Shorts or Hide YT Shorts Filter List - Hide YouTube Shorts
- YouTube Wrapped - Personal YouTube Rewind
- YouTube-Subscriptions-RSS - Export Subscriptions to RSS Feed
- YouTube Subscription History - Subscription History Tracker
- MassYoutubeUnsubscriber - Bulk Remove YouTube Subscriptions
- YouTube Spammer Purge - Delete All YouTube Spam Comments / Domain List
- Playboard or Viewstats - YouTube Channel Stats
- vidIQ - YouTube Viewership Data
- yt2pod - Create Podcasts from YouTube Channels
- SpeechChat - Text to Speech Client
- Rapidtags - YouTube Tag Generator
- songs-to-youtube - Convert Audio Files and Upload to YouTube
- YTSubConverter - Styled YouTube Subtitles
- Amara or SubtitlesForYoutube - Import Local Subtitles to YouTube / Edge
- ChatReplay - Livestream Chat Replay
- LiveTL - Livestream Chat Translator
- YT Boost Chat or YT RM3 - Reduce YouTube Chat Memory Usage
- YT LiveChat Flusher - Add Bullet Chatting (Danmaku) to Livestreams
▷ YouTube Customization
- ⭐ Return YouTube Dislike - View YouTube Dislikes / Web App / Discord
- ⭐ DeArrow or Clickbait Remover - Reduce Sensationalism / Clickbait
- ⭐ UnTrap, TubeMod or Less Addictive YouTube - Distraction-Free YouTube
- ImprovedTube, YouTube Alchemy, Tweaks for YT, Magic Actions or Enhancer for YT / Note - YouTube Enhancement Extensions
- PKGA or YouTube WideScreen - Improved YouTube Theater Mode
- YouTube Hide Watched - Toggle Visibility of Watched Videos / Shorts
- Fast Forward YT Shorts - Add Seek Hotkeys to Shorts
- Thumbnail Rating Bar - Display Like / Dislike Ratio on Thumbnails
- YT Like-Dislike Shortcut - Add Like / Dislike Hotkeys
- YT: Not Interested - Show "Not Interested" and "Don't Recommend" Buttons
- YouTube Grid View - View Search Results in Grid View
- YouTube Search Fixer - Declutter Search Results / Homepage
- BlockTube or YTBlock - YouTube Content Blocker
- YouTube Fixes - YouTube Tweaks
- Restore Handle to Custom - Shows Display Name Instead of Handle
- Focused YouTube, yt-neuter or GoodTube - Minimalist YouTube
- YouTube Redux, VORAPIS / Extra Features / Discord or Cosmic Cat - Restore Classic YouTube Layout / /r/OldYouTubeLayout
- Non-Rounded Design - Revert YouTube's New Rounded Design
- Timestamped YouTube Comments - View Timestamped Comments
- Tabview YouTube - View Comments / Info in Tab View
▷ Players / Frontends
- ↪️ Android YouTube Apps / iOS
- ⭐ FreeTube - Local YouTube Frontend / GitHub
- ⭐ Invidious, Invuedious or Materialio - YouTube Frontends / Instances, 2 / TUI
- ⭐ GrayJay - Combines YouTube, Twitch, Rumble, etc. / Guide
- YouTube Notes - YouTube Note-Taking Frontend
- Walrus, Sync-Tube, YouTube Party or Hergetto - YouTube Watch Parties
- TwitchTheater, VidGrid, YouTube Multiplier or ViewSync - Watch Multiple YouTube Videos
- YouTube Clone KMP - YouTube Frontend
- Poke - YouTube Frontend
- Piped / 2 / 3 - YouTube Frontend
- Tube Cadence - YouTube Frontend
- youtube-local or yt-local - YouTube Frontend
- YouT-ube - YouTube Frontend
- Ytfzf or YewTube - Terminal YouTube Players
▷ Video Tools
- ↪️ Summarize YT Videos
- ↪️ Video Transcribers
- ⭐ SponsorBlock - Skip Sponsored Video Segments / Chromecast / Script, 2
- ⭐ polsy.org.uk - Video Region Restriction Checker
- Video Resumer - Remembers Where You Left Off in Video
- Jump Cutter - Skip Silent Parts of Videos
- Rotate YouTube Video - Rotate, Zoom, & Mirror Videos
- YouTube Upload Time - Check Exact Upload Time/Date of Videos
- Annotations Data Archive - Restore Video Annotations
- YouTube Metadata - YouTube Video Metadata Viewer
- YT Cutter or yt_clipper - Crop YouTube Videos / Create Clips
- Looptube - Loop YouTube Videos / Segments
- YourCodecs - Enable / Disable Player Codecs
- Video Speed Controller - Control Speed of YouTube Videos
▷ Playlist Tools
- ⭐ playlists.at - Playlist Creators / Chrome Extension
- TubeSync - Sync YouTube Channels / Playlists to a Media Server
- ytcc - Keep Track of Your Playlists
- Multiselect (Firefox) or Multiselect (Chrome) - Playlist Manager
- Playlist Randomizer - YouTube Playlist Randomizer
- playlist.tools - Reverse YouTube Playlists
- YT Playlist Length / 2 or Length Checker - Playlist Length Checkers
- YouTubePlaylistMerge - Playlist Merge Guide
▷ YouTube Downloaders
- 🌐 YT-DL GUI Index - List of YouTube Downloader GUIs
- ↪️ Multi-Site Downloaders
- ⭐ yt-dlp - YouTube CLI Downloader / Commands / Discord
- ⭐ JDownloader - YouTube Downloader App
- ⭐ cobalt - Multi-Site / Online Downloader / Instances / Playlist Support, 2
- ⭐ Parabolic or Tartube - Cross-Platform YT-DLP GUIs
- ⭐ YoutubeDownloader - YouTube Downloader App
- ⭐ AMP4 - YouTube Downloader / Online
- Stacher, oleksis youtube-dl-gui or StefanLobbenmeier youtube-dl-gui - Cross-Platform YT-DL GUIs
- yt-dlp-gui / Easy Installer, ytdlp-interface or Vividl - YT-DLP GUIs
- Cube YouTube Downloader - YouTube-DL GUI
- YTDL-PATCHED - YouTube CLI Downloader / YT-DLP Fork
- EZMP3 - YouTube Downloader / Online
- CNVMP3 - YouTube Downloader / Online
- Pinchflat, MeTube, YoutubeDL-Material or yt-dlp Web UI - Self-Hosted YT-DLP
- ytarchive - YouTube Livestream Downloader
- YTI, YTThumbnailHD, Get Thumbs, YT Thumbnail Grabber or thumbnail-download - Download Video Thumbnails
- youtube-comment-downloader - Download YouTube Comments
- YT Subtitle Downloader - Download Video Subtitles
▷ YouTube Search
- 🌐 YouTube_Channels - YouTube Channel Index
- ⭐ Favoree or ChannelCrawler - Discover YouTube Channels
- ⭐ YouTube Advanced Search - Search Engine
- ⭐ Filmot or CTRL-F-VIDEO - Search within YouTube Transcripts / Firefox / Chrome
- comb.io, clip.cafe, InPhrase or Yarn / 2 - Clip / Phrase Search Engines
- yt-fts - Full-Text Search of Subtitles from Channels / Videos
- Icono - Description-Based Video Search / Discord
- MW Geofind or TubeTrotter - Find Geotagged Videos
- YT Comment Viewer, CommentShark, Hadzy or YCF - YouTube Comment Search
- Tokin - Find Trending / Hidden Gem Videos
- Project Random or petittube - Find Videos with <100 Views
- Find-Unfinished-YT - Find Partially Watched Videos
- IMG_0001 - Find Random YouTube Videos
▷ YouTube Archiving
- ⭐ YouTube Video Finder - Multi-Site Archive Search / GitHub
- Tubeup - YouTube Video to IA Uploader
- Tube Archivist - Self-Hosted YouTube Media Server / GitHub
- yark - YouTube Channel Archiver
- Filmot - Search Unlisted Videos
- Hobune or PreserveTube - YouTube Video Archives
- youtubecrawl - Captures of Pages From YouTube (IA)
- Filmot Title Restorer, quite a playlist or RecoverMy.Video - Restore Titles of Deleted / Private Videos
► Twitch Tools
- 🌐 SullyGnome - Twitch Tool Index
- 🌐 Twitch Extensions - Twitch Extensions Index
- ⭐ FrankerFacez, BetterTTV or 7TV - Twitch Enhancement Extensions
- ⭐ TwitchNoSub or Sub-Vod - Watch Sub Only Twitch Videos
- ⭐ Stream Scheme - Livestreaming Guides / Resources
- Gumbo or Twitch-Live - Twitch Stream Trackers
- HypeTrigger - Automatically Create Clips
- Twitch Clip Search - Search for Clips
- VODarchive or TwitchArchive - Twitch Video Archives
- Twitch Previews or Previews - Twitch Video Previews
- Unwanted Twitch - Hide Twitch Categories / Channels
- vTwitch - Show Chat Below Player
- JChat - Show Twitch Chat on Screen
- Hide-Twitch-Chat-Users - Hide Twitch Chat Users
- TwitchChatDanmaku, Transparent-Twitch-Chat or Transparent Twitch Chat Overlay - Transparent Twitch Chat
- Screenshot Twitch - Add Screenshot Button to Twitch
- Auto-Claim-Twitch-Channel-Points or TTVDropBot - Auto Claim Twitch Points
- Twitch Drops Miner - Auto Claim Twitch Drops
- TwitchRSS or twitchrss - Twitch RSS Generators
- Streamlink Twitch GUI - Twitch Browser for Streamlink
- get stream - Extract Twitch URLs
- Lurker.tv - Discord Server-Based Twitch Stream Recs
- Twitch TV OBS Subtitles - Add Subtitles to Twitch Stream
- StreamLadder - Social Media Templates for Twitch Clips
- TwitchLeak - Twitch Top Earners Table
- TwitchQuotes - Twitch Copypastas
- TwitchEmotes - Global Twitch Emotes
- ChatGuessr - GeoGuessr for Twitch
- TwitchInsights, StreamCharts or TwitchTracker - Twitch Stats
- Trovo, Kick, dlive, Caffeine, Lightspeed or Theta - Twitch Alternatives
▷ Twitch Players
- ⭐ Chatterino / 2, Chatterino Homies or Chatty - Twitch Chat Clients
- Orion, Twitch App or Tress - Twitch Desktop Clients
- SpeechChat - Twitch Text to Speech Client
- Twitch Lite, SafeTwitch or Twineo - Twitch Frontends
- Walrus - Make Twitch Watch Parties
- MultiTwitch.tv, MultiTwitch.co, Twitch3D, Multi, MultiStre.am, MultiStreamer or TwitchTheater - Twitch Multi-Stream
- Twitchls - HTML5 Twitch Stream Player
- nobody.live or Twitch Roulette - Random Stream Roulette
- Alternate Player for Twitch.tv - Alternative Twitch Player
- Twitch Replay - Twitch Video Player
- Twitch Lurker - Twitch Stream Auto-Open
▷ Twitch Adblockers
- 🌐 TwitchAdSolutions - Solutions / Scripts for Blocking Twitch Ads
- ⭐ AdGuardExtra - Twitch Adblocker
- TTV LOL PRO - Twitch Adblocker / Proxies
- PurpleAdblock - Twitch Adblocker
- luminous-ttv - Twitch Adblocker
- PurpleTV / Alpha / Telegram or TwitchAdBlock - Mobile Ad-Free Twitch Apps
▷ Twitch Downloaders
- ClipsGameLab, Twiclips or clipsey - Video Downloaders
- twitch-dl, twitch-downloader or Twitch clips downloader - CLI Video Downloaders
- Twitch Downloader or TwitchLink - Desktop Video Downloaders
- TwitchRecover - Recover / View / Download Twitch Videos
- Twitch-Chat-Downloader - Download Twitch Chat Messages
► Twitter/X Tools
- ⭐ Trends24 or GetDayTrends - Trending Hashtags Trackers
- ⭐ /r/Twitter - X.com Subreddit
- Typefully - Schedule Tweets
- twstalker, X Cancelled or nitter, 2 / Instances, 2 - X.com Frontends
- Chirr App - Turn Articles into X.com Threads / Firefox / Chrome
- Klear - Find Influencers
- FollowerWonk - Find / Analyze / Optimize Followers
- Scoutzen - Search X.com Use Lists
- Community Notes Leaderboard - X.com Community Notes Leaderboard
- Hoaxy - Twitter Info Spread Data
- tinfoleak - View Your Geosocial Footprint
- Twitter Mass Unfollow - X.com Unfollow Tool
- Twitter Detector - Detect X.com Link on a Page
▷ Twitter/X Archiving
- Thread Safe - Twitter Backup Tool
- TwitterMediaHarvest or InThisTweet - Twitter Media Downloader
- GetVideoBot or sssTwitter - Download Twitter Videos
- Pikaso - Twitter Screenshot Bot
- memory.lol - Twitter Account Archive
- Ghost Archive or Megalodon - Twitter Archive Services
- Twitter Archive Parser or twitter-web-exporter - Tweet Archivers
- Twayback Machine - View Users' Old Tweets
- TweetedAt - View Tweet Dates
▷ Twitter/X Customization
- ⭐ Eight Dollars - Show Twitter Blue vs. Real Verified Users
- Control Panel for Twitter - Twitter Enhancement Extensions
- Minimal Twitter - Minimal Twitter Themes
- OldTwitter or GoodTwitter2 - Original Twitter Theme
- OldTweetDeck - Twitter Dashboard
- Twitter Plus - View Twitter Images in Original Quality
- Twitter Demetricator - Remove All Twitter Metrics
- Thread Reader App - Unroll Twitter Threads / Search
- Hide Content Warning or Disable Blur - Remove Sensitive Content Blur
► Facebook Tools
- ⭐ Facebook Ad Filters - Facebook Filters
- FBPurity - Facebook Enhancement Extensions
- Caprine - Facebook Desktop Messenger
- Social Tools - Block "Sending" & "Seen" Facebook Chat Indicators
- Charcoal Dark Mode - Facebook Messenger Dark Mode
- Facebook Matrix - Facebook Search Formulas
- Graph.tips - Advanced Facebook Search Tool
- WhoPostedWhat - Facebook Post Search
- FB.Zone - Color Themes for Facebook
- Kill Fbclid or Remove FBclid - Removes fbclid and utm_ Query Parameters in URLs
- News Feed Eradicator - Hide Facebook News Feed
- Lookup ID - Find Facebook ID
- Unlike-Everything - Remove All Facebook Likes
► Instagram Tools
- 🌐 Instagram Tools - Multiple Tools
- 🌐 Instagram Search Tools - Search Tool
- ↪️ Instagram Viewers / Downloaders - View Profiles / Download Pictures
- ⭐ Redirect Logins - Redirect Instagram Login
- InstaFix - Fix Instagram Embeds on Discord / GitHub
- Proxigram or Imginn - Instagram Frontends
- otzberg or Find-User-ID - ID Finder
- Image Counter - Count Page Images
- InstaAddict - Instagram Addiction Test
- Unfollow-Everyone - Bulk Instagram Unfollow
- InstagramUnfollowers - Check Who Follows Back / GitHub
- Instagram Experiments Guide
► Tumblr Tools
- Tumlook, Tumgik or PriviBlur - Tumblr Frontends
- Pillowfort - Tumblr Alternatives
- tumblr-utils - Tumblr Utilities
- XKit - Tumblr Enhancement Extension
- tumbex - Tumblr Search
- Outbox for Tumblr - Tumblr Outbox
- TumblrOriginalPostFinder - Tumblr Post Finder
- Tumbl Backup Guide or TumblThree - Tumblr Backup Tools
- Palettes for Tumblr - Tumblr Palettes
- Filtering Plus - Improved Filtering
► Fediverse Tools
- 🌐 Awesome Bluesky or BlueskyDirectory - Bluesky Resources
- 🌐 Fediverse.Party - Fediverse Software Index
- ⭐ Fediverse Observer - Fediverse Instances
- ⭐ Bluesky - Federated Twitter Alternative / App Directory / Twitter Import, 2 / TUI / Dashboard
- FediDB or The Federation - Network Statistics
- Fedi.Tips - Fediverse Guide
- FediSearch - Fediverse Search
- Fedi.Garden - Curated User Directory
- Fediverse People Directory - Self-Submitted User Directory
- Hubzilla Public Sites - Hubzilla Instances
- Friendica Directory - Friendica Instances
- DarkSky - Bluesky Client
- Diaspora or Friendica - Decentralized Social Netoworks
- FediverseRedirect - Frontend Redirect
- Bridgy Fed - Fediverse Bridge
- PodcastAP - Podcast Feed Bridge
- The Fediverse Report - Fediverse News
- FediBuzz - Fediverse Trends
▷ Mastodon Tools
- 🌐 Awesome Mastodon, 2 - Mastodon Resources
- ⭐ instances.social or Mastodon Near Me - Mastodon Instances
- ⭐ Mastodon Apps - Mastodon Client List
- Phanpy or Mastodeck - Mastodon Clients
- MastoVue or FediWall - View Public Timelines / Hashtags
- Followgraph or StreetPass - Find Mastodon Users
- MastoGizmos - Mastodon Search Tools
- western.social - User Search
- Tootfinder - Opt-In Full Text Search
- Mastodon Scheduler or FediPlan - Schedule Posts
- Mastodon List Manager or Mastodon Lists Manager - Bulk List Editors
- Mastodon Share Bookmarklet Creator - Quick Share Bookmarklet
- fedv.link - Mastodon Link Redirect
- Mastodon Embed Timeline or Mastofeed - Embedded Mastodon Feeds
- Cheap Bots, Toot Sweet! - Create Bots
- emojos.in - Mastodon Custom Emoji Lists
- MastoMetrics - Mastodon Analytics
▷ Lemmy Tools
- ⭐ Lemmy Explorer or Awesome Lemmy Instances - Lemmy Instances
- ⭐ Lemmy Apps - Lemmy Client List
- ⭐ Divisions by zero - Piracy Focused Instance
- Quiblr - Lemmy Instance Browser / GitHub
- Fediverser - Reddit to Lemmy Community Auto-Sync
- LemmyTools - Lemmy Improvement Extension
▷ Pixelfed Tools
- 🌐 Pixelfed Apps - Pixelfed Client List
- The Federation Pixelfed - Pixelfed Instances
- FediDB Pixelfed - Pixelfed Instances
- Fediverse Observer Pixelfed - Pixelfed Instances
- Pixelfed.social - Pixelfed Instance
▷ Peertube Tools
- 🌐 Peertube Apps - Peertube Client List
- Sepia Search, 2 - Peertube Search Engine
- Peertube Instances, 2 - Peertube Instances
- The Federation Peertube - Peertube Instances
- FediDB Peertube - Peertube Instances
- Fediverse Observer Peertube - Peertube Instances
► 4chan Tools
- ⭐ AnyChans - 4chan Web Clients
- ⭐ 4chan X, SpookyX, 4chan XT or Dollchan - Enhancement Extensions
- Lurka - Desktop Client
- RedditChan - Reddit Style 4chan Web Client
- 4Webm - Load All Webm Videos in 4chan Thread
- 4stats - 4chan Board / Thread Stats
- Mass Reply or Reply All - Mass Reply on 4chan
- Anon Files Names - Anonymizes File Names
- 4chan GhostPostMixer - Interleave Deleted Posts from Archives
- Tripgen - Imageboard Trip Code Generator
- 4chan Captcha Solver - Auto Captcha Solvers
- Bypass Derefer - Remove Link Derefer
- Extra Flags for 4chan - Add More Flags to 4chan
- ss21, OneeChan or 4cheddit - 4chan Themes
▷ 4chan Archives
- ⭐ boards.4channel, 2 - 4chan Archives
- 4chanSearch or 4search - Search 4chan Archives
- Oldfriend Archive - 2004 - 2014 Archive
- Ten Billion or 4Museum - 2006 - 2008 Archive
- 4GBs of 4chan Threads - 2009 - 2012 Archive
- Archive.4plebs - 2013 - 2023 Archive
- BibAnon - Vyrd's Archive
- Yotsuba Catalog - Yotsuba Archive
- sup/tg/, Palanq.win, Desuarchive, Archived.Moe or The /b/ Archive - Misc 4chan Archives
► Blogging Tools
- ⭐ Bear Blog, Mataroa or smol.pub / Key - Minimalist Blogging Platforms
- Telescope - Publishing Platform
- Arbital - Hybrid Blogging / Wiki Platform
- Dreamwidth - Blogging Platform
- Haven or WriteFreely - Self-Hosted Blogging Platforms
- Notepin - Anonymous Blogging Platform
- Zonelets - Static Blog Template
- twtxt - Decentralized Minimalist Microblogging Service
- Emanates Docs - Make GitHub-Based Blogs
- CoverView - Blog Banner Creator
-
@ 9e69e420:d12360c2
2025-01-25 22:16:54President Trump plans to withdraw 20,000 U.S. troops from Europe and expects European allies to contribute financially to the remaining military presence. Reported by ANSA, Trump aims to deliver this message to European leaders since taking office. A European diplomat noted, “the costs cannot be borne solely by American taxpayers.”
The Pentagon hasn't commented yet. Trump has previously sought lower troop levels in Europe and had ordered cuts during his first term. The U.S. currently maintains around 65,000 troops in Europe, with total forces reaching 100,000 since the Ukraine invasion. Trump's new approach may shift military focus to the Pacific amid growing concerns about China.
-
@ 4ba8e86d:89d32de4
2025-05-02 13:51:37Tutorial OpenKeychain
- Baixar no F-droid https://f-droid.org/app/org.sufficientlysecure.keychain
Ao abrir o OpenKeychain pela primeira vez, você verá uma tela inicial indicando que ainda não há chaves configuradas. Nesse ponto, você terá três opções:
-
Criar uma nova chave PGP diretamente no OpenKeychain: Ideal para quem está começando e precisa de uma solução simples para criptografia em comunicações diárias.
-
Usar um token de segurança (como Fidesmo, Yubikey, NEO, ou Sigilance) Se você busca uma segurança ainda maior, pode optar por armazenar sua chave privada em um token de segurança. Com essa configuração, a chave privada nunca é salva no dispositivo móvel. O celular atua apenas como uma interface de comunicação, enquanto a chave permanece protegida no token, fora do alcance de possíveis invasores remotos. Isso garante que somente quem possui o token fisicamente possa usar a chave, elevando significativamente o nível de segurança e controle sobre seus dados.
-
Importar uma chave PGP existente: Você pode importar uma chave PGP que já tenha sido gerada anteriormente, seja por meio de um arquivo no dispositivo ou por outro meio ler na área de transferência. https://image.nostr.build/51fdd924df4843ab73faa02a505c8fb17794f1789396ed89b154348ebb337f07.jpg
1. CRIANDO UMA NOVA CHAVE PGP.
Para iniciantes, recomendamos criar uma nova chave diretamente no aplicativo. abordaremos o uso do OpenKeychain em modo online, que é mais comum para comunicações diárias.
Passo 1: Clique em “Criar minha chave”. https://image.nostr.build/235f5cfdf4c3006ca3b00342741003f79a5055355c2a8ee425fc33c875f51e49.jpg
Passo 2: Criando sua chave PGP.
Para criar sua chave, você precisará fornecer algumas informações Os campos 'Nome' e 'Endereço de e-mail' são apenas formas convenientes para identificar a sua chave PGP.
-
Nome: Escolha um nome ou um pseudônimo. https://image.nostr.build/de3fe3ddbde0c7bf084be6e4b8150fdb8612365550622559b0ee72f50f56a159.jpg
-
E-mail: Associe um endereço de e-mail à chave, seja ele pessoal ou um e-mail relacionado ao pseudônimo. https://image.nostr.build/aff62baaeafe2c9a429ef10435a6f99dea36d6cfd7494e2bb882421dc8ed0f4e.jpg
2. REVISANDO E PERSONALIZANDO A CRIAÇÃO DA CHAVE.
Passo 3: Antes de criar sua chave PGP, verifique se os dados inseridos estão corretos. https://image.nostr.build/a8ec09ef3d9b4f557b0c4e380e7ca45d0fdbfa33fe80becea03ed0e5f5eedd24.jpg
Você também pode personalizar as configurações de segurança clicando nos três pontos no canto superior direito. https://image.nostr.build/1ce615555cea9a979ea951472052a219e77f4e1ebaaf5fcbbe9e91ea4f852bce.jpg
Ao cliclar em ' nova subchave ' pode alterar a data de expiração e pode mudar a criptografia usado na chave cliclando opção ed2255/cv255. https://image.nostr.build/b3224ff3dbe48ff78c4a2df8b001926b6d3eef1e33ef677a73b0d281791073da.jpg https://image.nostr.build/7763c7847e062cdcf71aafedbc2ef4c38056fd66aeb162ef3a1c30c028a14376.jpg https://image.nostr.build/5d3e20ade460dd5e89cc001ebdc062a36aff2c0e1573584ca3c0d1cb34bddcce.jpg
Neste tutorial, utilizaremos as configurações padrão do aplicativo.
Passo 4: Clique em "Criar chave" para concluir o processo. https://image.nostr.build/a8ec09ef3d9b4f557b0c4e380e7ca45d0fdbfa33fe80becea03ed0e5f5eedd24.jpg
3. Como Compartilhar sua Chave PGP Pública
Após criar sua chave PGP, você pode compartilhá-la para que outras pessoas possam enviar mensagens criptografadas para você. Veja o passo a passo de como exibir e compartilhar sua chave pública:
Passo 1: Acesse sua chave pública
Abra o OpenKeychain e selecione a chave que deseja compartilhar. Clique na chave para visualizar os detalhes. https://image.nostr.build/689c5237075317e89e183d2664630de973b09b68aaf8f3e3033654e987b781be.jpg https://image.nostr.build/4001610109579f27535628932258087b3b06c1f86b05f4f85537b6585c12a10b.jpg
Passo 2: Copiar sua chave pública
Nos detalhes da chave, você verá a opção "Copiar para a Área de Transferência". Clique nessa opção para copiar o código da sua chave pública. https://image.nostr.build/01ab3efa5e997e1910a2f8f7a888e6ad60350574cca4ca0214eee5581797f704.jpg
A chave PGP copiada terá o seguinte formato:
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZwsLHRYJKwYBBAHaRw8BAQdA6NRLlJIWnTBJtYwZHlrMbTKRbYuXmjsMn8MB 7etV3HK0JERhbmllbCBGcmFnYSAgPGRhbmllbGZyYWdhQG1haWwuaTJwPohyBBMW CAAaBAsJCAcCFQgCFgECGQEFgmcLCx0CngECmwMACgkQFZf+kMeJWpR4cwEA8Jt1 TZ/+YlHg3EYphW8KsZOboHLi+L88whrWbka+0s8A/iuaNFAK/oQAlM2YI2e0rAjA VuUCo66mERQNLl2/qN0LuDgEZwsLHRIKKwYBBAGXVQEFAQEHQEj/ZfJolkCjldXP 0KQimE/3PfO9BdJeRtzZA+SsJDh+AwEIB4hhBBgWCAAJBYJnCwsdApsMAAoJEBWX /pDHiVqUo/oA/266xy7kIZvd0PF1QU9mv1m2oOdo7QSoqvgFiq6AmelbAP9lExY5 edctTa/zl87lCddYsZZhxG9g2Cg7xX/XsfrnAA== =TniY -----END PGP PUBLIC KEY BLOCK-----
Dica: Se ocorrer algum erro ao compartilhar sua chave pública com um amigo, peça para que ele a criptografe para ele mesmo. Isso permitirá que ele adicione a chave corretamente. Caso a chave pública ainda não esteja no dispositivo, ao clicar em "Backup de chave", aparecerá a opção para importá-la. Se a chave já estiver no dispositivo, essa ação irá recarregá-la. https://image.nostr.build/cd12abf07c93473db95483fe23112325f89d3eb02977e42756708bbd043f8bcf.jpg https://image.nostr.build/537aeae38d229ee2cc78e18f412237b659c059e1c74fd7f0deecfe37f15713c9.jpg https://image.nostr.build/16c8a3db5966c7c06904ee236655f47a6464ae0c1b5af6af27b28c61611d2bbe.jpg
Passo 3: Compartilhar sua chave PGP
Você pode colar a chave pública em e-mails, assinaturas, perfis de redes sociais ou outros meios para compartilhá-la facilmente. Para facilitar a visualização, você também pode exibi-la em seu perfil de redes sociais.
Para acessar mais opções de compartilhamento, clique nos três pontos no canto superior direito e selecione a opção "Avançado". https://image.nostr.build/0d4a13b7bd9a4794017247d1a56fac082db0f993a2011a4dd40e388b22ec88f5.jpg https://image.nostr.build/4ac2a7bc9fa726531a945221cf7d10e0e387deba68100ccf52fdedfcd17cbd59.jpg
Na seção "Compartilhar", você verá sua Key ID e terá a opção de publicar sua chave PGP em um servidor de chaves. https://image.nostr.build/1e972cc211a6d8060cdbd4a8aa642dd1a292810c532f178d3ddb133d1b9bca76.jpg
Passo 4: Como compartilhar sua chave pública PGP no formato .asc. no OpenKeychain
1 . Acesse sua chave
Abra o OpenKeychain e toque na chave que você deseja compartilhar. Isso abrirá a tela com os detalhes da chave. https://image.nostr.build/c080f03d2eb7a9f7833fec0ff1942a5b70b97e4f7da7c6bc79ca300ef9ace55d.jpg
2 . Compartilhe o arquivo .asc
Toque no ícone de compartilhamento, como indicado na imagem abaixo. O aplicativo abrirá a janela para que você escolha por qual app deseja compartilhar sua chave pública no formato .asc. Nesse exemplo, usei o SimpleXChat , mas você pode usar qualquer aplicativo de sua preferência.
-
Botão de compartilhar. https://image.nostr.build/8da74bdb04737a45df671a30bba1dd2e7980841fa0c2d751d6649630e7c25470.jpg
-
Seleção do aplicativo para compartilhamento. https://image.nostr.build/5444f4e9d3fa5aef6b191bb6f553f94c6e49d30ead874c9ee435bca3218fd6c8.jpg
-
Enviando via SimpleXChat. https://image.nostr.build/e5d1ca04cbc69e1e8ac5caf1ab2a4b9b695500861c1ae9c55cea679cce349214.jpg
Sugestão para compartilhar nas redes sociais:
Você pode exibir sua chave de forma simples, por exemplo:
PGP: 1597 FE90 C789 5A94
Importar a chave pública usando a fingerprint
Passo 1:Clique no ícone "+" para começar. https://image.nostr.build/ca6e6e569b4be60165eaf60c7ba1e6e3ec781b525e467c72b4f3605837e6b5ec.jpg
Passo 2: Selecione a opção "Buscar Chave". https://image.nostr.build/87e27d9435e6e3ef78063b9f15799a8120ead4637cd06c89c0220b48327573ae.jpg
Passo 3: Digite a fingerprint da chave em letras minúsculas, sem espaços. A chave correspondente aparecerá para ser adicionada. https://image.nostr.build/33e6819edd4582d7a8513e8814dacb07e1a62994bb3238c1b5b3865a46b5f234.jpg
Além disso, você pode compartilhar sua chave pública em formato QR Code, facilitando a troca de chaves em eventos ou conversas rápidas. Como Assinar Mensagens para Confirmar a Autenticidade da Sua Rede Social
Você pode autenticar sua conta em redes sociais utilizando sua chave PGP. Ao assinar uma mensagem com sua chave, você demonstra que realmente possui essa conta. Siga o passo a passo abaixo para assinar uma mensagem:
Passo 1: Clique na sua chave PGP. https://image.nostr.build/ffacce1bfb293c9a0888cd5efe340a63d96b293f4c010f8626105c7b212d8558.jpg
Passo 2: Clique no ícone indicado pela seta para abrir o campo de texto. https://image.nostr.build/4e992a2553810e2583b9d190280ce00a52fc423600a75eca48cbf541cf47d3c2.jpg
Passo 3: Deixe a opção "Encriptar para:" vazio. Em "Assinar com:", selecione sua chave PGP e digite a mensagem que deseja enviar, como o nome da sua rede social. https://image.nostr.build/a4a2a8d233d186e3d8d9adddccc445bcb3ca3ed88de0db671a77cede12323a75.jpg
Passo 4: Clique no ícone indicado pela seta para copiar o texto assinado. Uma mensagem aparecerá informando: "Assinado/Encriptado com Sucesso". https://image.nostr.build/a076dfc90e30a495af0872005bf70f412df57b7a0e1c2e17cf5aee9e9b3e39aa.jpg
A mensagem copiada terá o seguinte formato:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Minha rede social NOSTR é Danielfraga oficial. -----BEGIN PGP SIGNATURE-----
iIQEARYIACwlHERhbmllbCBGcmFnYSAgPGRhbmllbGZyYWdhQG1haWwuaTJwPgUC ZxBBLgAKCRAVl/6Qx4lalGeNAPwP71rpsbhRnZhoWZsTDOFZY8ep/d0e5qYx5iPx HV26dwD/fKyiir1TR8JwZvEbOTYS0+Dn4DFlRAAfR3lKVTC96w4= =37Lj -----END PGP SIGNATURE-----
Com isso, você pode facilmente demonstrar a autenticidade da sua conta nas redes sociais.
4. PROTEGENDO SUA CHAVE COM UMA SENHA.
Passo 5: Após a criação da chave, é fundamental definir uma senha (ou passphrase) para adicionar uma camada extra de segurança. Recomendamos usar senhas longas (com mais de 20 caracteres) e de alta entropia para evitar ataques de força bruta. Ferramentas como KeePassDX ou Bitwarden podem ajudá-lo a gerar e gerenciar essas senhas.
Para definir a senha, clique na sua chave PGP, acesse o menu no canto superior direito e selecione "Alterar senha". https://image.nostr.build/689c5237075317e89e183d2664630de973b09b68aaf8f3e3033654e987b781be.jpg https://image.nostr.build/f28ecaa9890a8827f93cac78846c4b2ef67f86ccfc3501fdadf1d1c4874b0041.jpg https://image.nostr.build/919c277fbec63c397402abdd60f915cb239a674c317855cbda63a38edef80789.jpg
Agora basta adicionar uma senha forte. https://image.nostr.build/eb378219fbb1780f89663a474ce43b8d8ebb13beeb538f2a16279b056e5d9645.jpg https://image.nostr.build/cdfa3f9c6c4045841341da789deabb6318107812d5ba195529418572ab352aaf.jpg
5. CRIPTOGRAFAR E DESCRIPTOGRAFAR MENSAGENS E ARQUIVOS COM SUA CHAVE PGP
Criptografar Mensagens
Você pode criptografar mensagens para garantir que apenas o destinatário, que possui sua chave pública, possa lê-las. Siga os passos abaixo para criptografar um texto:
Passo 1: Abra o menu lateral clicando no ícone no canto superior esquerdo.
https://image.nostr.build/13ac93b38dd1633118ae3142401c13e8a089caabdf4617055284cc521a45b069.jpgPasso 2: Selecione a opção "Encriptar/Descriptar".
https://image.nostr.build/8cd905d616b53968f0551c071d9acc2f47bbe8434c2c7e1a33076a504342de48.jpgPasso 3: Clique na opção "Encriptar Texto".
https://image.nostr.build/405a730a6c774759d7913f92f59059d43146db4afb28451a6f8833f94e99437f.jpgPasso 4: Preencha os seguintes campos: https://image.nostr.build/7dc5eba39ff82a321195dbf46b8113818632e3ef41175991d58e799a8e9d2751.jpg
-
Encriptar para: Selecione o destinatário da mensagem, ou seja, a pessoa para quem você está enviando o texto criptografado.
https://image.nostr.build/1e8c8cba6d3c3136d9857512e2794a81ceb7434eccdfb0f7d26cdef008b2e6d2.jpg -
Assinar com: Escolha sua chave PGP para assinar a mensagem.
https://image.nostr.build/d25b228c35b132d396d01c354ef093b43b3565578fbc0d6ff7b9de4e41619855.jpg -
Digitar o texto: No campo de texto, escreva a mensagem que deseja criptografar.
https://image.nostr.build/8537271dfa4445e60cb4c3cdb5d97571dc0ff5ee8acd6ed89a8c81e4bd8736c2.jpg
Passo 5: Depois de preencher os campos, você pode copiar o texto criptografado de duas formas:
-
Copiar para a área de transferência: Clique na opção para copiar o texto criptografado e cole-o em um aplicativo de mensagens para enviá-lo.
https://image.nostr.build/a5cb8e2c538a38db3972e7f3ac9aa9f602cda6b62848ff0c4b99928a67dcd486.jpg -
Compartilhar diretamente: Utilize a opção de compartilhamento para enviar o texto criptografado diretamente através de seus aplicativos de mensagens.
https://image.nostr.build/2b79cb564d623788a0de1111a067e0eb496f743389d465d4f4e8f6e65f0d08a7.jpg https://image.nostr.build/ff59e52bc8ab54ff377980a6ba5d1c4743d3298de11e5daa187ab7d45163a7be.jpg
Criptografar arquivos.
Passo 1: Abra o menu lateral clicando no ícone no canto superior esquerdo.
https://image.nostr.build/13ac93b38dd1633118ae3142401c13e8a089caabdf4617055284cc521a45b069.jpgPasso 2: Selecione a opção "Encriptar/Descriptar".
https://image.nostr.build/8cd905d616b53968f0551c071d9acc2f47bbe8434c2c7e1a33076a504342de48.jpgPasso 3 : clique na opção "Encriptar arquivos ". https://image.nostr.build/3fcae48ee38e7f4079ebccfd3eafb9ab0ad3559221d2c3560cdfe60e29f56a15.jpg
Passo 4 : os passos a seguir são os mesmo que você seguiu pra encriptar a mensagem texto. Ítens "Encriptar para:" "Assinar com:" https://image.nostr.build/4d6599b9d3a9fdfae0964daaa9dae513d5ce277a7b61930fa2937d534f72ed40.jpg
Passo 5 : clilcar na opção " Adicionair arquivo(s)" Vai abrir na memória interna do celular selecione o arquivo que deseja encriptar. https://image.nostr.build/09e3b9b54a1406426114926aab19011c36b98886ebae6fcf556cfea83bb2c2f4.jpg https://image.nostr.build/af422e243b36762dd66111ec7c848a1352c100ca3040dc21792c923f80aef74d.jpg https://image.nostr.build/ebebbdb273b4bca58d901852aec1c60e4799aa77e9d12a31f992b0cf8f73e753.jpg
Passo 6: Depois de preencher os campos, você pode compartilhar o arquivo criptografado de duas formas:
-
Salvar na memória do celular: A primeira opção salva o arquivo criptografado no armazenamento do seu dispositivo. Você terá a opção de editar o nome do arquivo antes de salvar.
https://image.nostr.build/0a47c1e9f0003541f47091b2c2e8ce6b8d1533d95463e331b218070bae964ac8.jpg https://image.nostr.build/95a7a2b67356eb5ded5b217bab38a19bdeba5af7befd105834e413e0aec45462.jpg https://image.nostr.build/66cb3d22b271f3b73b7015613c72711a3ffbf5e1070d43153f9d1f3fcf35001c.jpg https://image.nostr.build/f9624d86f7592fe7ffad932b7805762dc279d9e8ff410222108155438a2c970f.jpg -
Compartilhar diretamente: Utilize a opção de compartilhamento para enviar o arquivo criptografado diretamente por meio dos seus aplicativos de mensagens.
https://image.nostr.build/85541e466c7755c65bd6ba0208a6d8612beaa5298712b6d92f53865167695a38.jpg https://image.nostr.build/bf1e0f0aeb60cafbdf82af4b3b598288519e85b396bd3f9e00e61f65b89ea9f8.jpg https://image.nostr.build/fb090339898f37cdbb020828689b142ca601ca3ee549f67ddf6b2e094df9ab9f.jpg https://image.nostr.build/50c249ced06efe465ba533fef15207b0dcd1a725e9b2c139e8d85c13fd798276.jpg
Descriptografar Mensagens e Arquivos
Para ler uma mensagem ou arquivo criptografado que você recebeu, utilize sua chave privada. Siga os passos abaixo:
Descriptografar Mensagens
Passo 1: Copie a mensagem criptografada que você recebeu.
https://image.nostr.build/c37754b12a458e0176b9137ae0aa9e8209f853bf9d9292c0867fd8b0606d53c4.jpgPasso 2: Clique na opção "Ler da área de transferência" para descriptografar o texto.
https://image.nostr.build/d83c7dad2ee1cb6267779863bc174ee1a8f3cc3c86b69063345321027bdde7b5.jpg https://image.nostr.build/c0fae86e6ab1fe9dcee86753972c818bed489ea11efdd09b7e7da7422a9c81eb.jpgDescriptografar Arquivos
Passo 1: Clique na opção "Selecionar arquivo de entrada".
https://image.nostr.build/9c276c630311d19a576f2e35b5ba82bac07360476edae3f1a8697ff85df9e3c9.jpgPasso 2: Selecione o arquivo criptografado que deseja descriptografar.
https://image.nostr.build/6b6c2a3284ba96e7168fc7bd0916020c4f1bed7b77dfca48227fc96d6929e15a.jpg https://image.nostr.build/9945aad644af2e2020e07e55f65f11a0958d55e8fc9e13c862e6b9ca88b4f4d9.jpg6. BACKUP E RESTAURAÇÃO DE CHAVE PGP.
Realizar o backup das suas chaves PGP é fundamental para evitar a perda de acesso às suas mensagens e dados criptografados. O OpenKeychain facilita esse processo, permitindo que você faça um backup completo e seguro. Recomendamos que você armazene o backup em um local seguro, como um HD externo ou pendrive conectado via cabo OTG, sempre protegendo-o com senha.
PASSOS PARA REALIZAR O BACKUP:
Passo 1: Abra o menu lateral clicando no ícone no canto superior esquerdo.
https://image.nostr.build/13ac93b38dd1633118ae3142401c13e8a089caabdf4617055284cc521a45b069.jpgPasso 2: Selecione a opção Backup/restaurar.
https://image.nostr.build/6fa8fd14e23b47c6c924bc0d900646663f2124a93d8172ae79fdf43b5c7d4490.jpgPasso 3: Escolha a primeira opção: Backup completo (criptografado).
https://image.nostr.build/4875fb27b6d04c3cb838b4fb9f308ef9194edc35ba1254ba965b7f0db2544170.jpgPasso 4: O backup será protegido por um código de backup gerado automaticamente. Anote esse código em um papel e guarde local seguro, pois sem ele você não conseguirá recuperar suas chaves PGP. Após anotar o código, marque a opção “Anotei o código” e clique em Salvar Backup. Obs: todas as vezes que você for fazer o backup da sua chave PGP vai ser criado um novo código aleatório.
https://image.nostr.build/72a317ef5e59a01c03c36f1d04a91d42c418a478cc82e372acf21bb8302daa00.jpg
Passo 5: Escolha o local onde deseja salvar o backup (HD externo, pendrive, etc.), confirme sua escolha e clique em OK. Você verá uma mensagem de confirmação indicando que o backup foi salvo com sucesso.
https://image.nostr.build/d757e8bdf429371320daa44be8a48a0dbeb2324129f4254327f0f0383e70ede4.jpg https://image.nostr.build/f3ad80ceb8a191b4d1b40722b1d0d4f85bf183d412e7d7d901b25d19b2dfe0e3.jpg
Importação da Chave PGP
Caso você precise restaurar suas chaves PGP a partir de um backup, o OpenKeychain também facilita o processo de importação. Siga os passos abaixo para restaurar sua chave PGP:
Passo 1: Selecione a opção "Selecionar arquivo de entrada"
Abra o OpenKeychain, acesse o menu lateral no canto superior esquerdo e escolha a opção "Selecionar arquivo de entrada" para localizar o arquivo de backup que você deseja importar.
https://image.nostr.build/a06ddc1c1e6c50519097e614aa25b14311e49c0ca4d4607e42ebdcca3a6641c4.jpgPasso 2: Selecione o arquivo de backup
Navegue até o local onde você salvou o arquivo de backup (HD externo, pendrive, etc.) e selecione-o. Em seguida, o OpenKeychain solicitará que você insira o código de recuperação que foi gerado no momento do backup. https://image.nostr.build/9d5649c04a98ec8b0a29355d9068e48313b1c5dc36cd965961f4d33f22d10046.jpgPasso 3: Digite o código de recuperação
Insira o código de recuperação que você anotou anteriormente. É importante digitar o código corretamente para garantir o sucesso da restauração.Passo 4: Depois de inserir o código corretamente, o OpenKeychain irá restaurar suas chaves PGP, e uma mensagem de confirmação será exibida, indicando que a recuperação foi concluída com sucesso.
Agora suas chaves estão restauradas e você pode continuar usando o OpenKeychain para gerenciar suas comunicações criptografadas de maneira segura.
https://www.openkeychain.org/
https://github.com/open-keychain/open-keychain
https://youtu.be/fptlAx_j4OA