-
@ 8fb140b4:f948000c
2023-11-21 21:37:48Embarking on the journey of operating your own Lightning node on the Bitcoin Layer 2 network is more than just a tech-savvy endeavor; it's a step into a realm of financial autonomy and cutting-edge innovation. By running a node, you become a vital part of a revolutionary movement that's reshaping how we think about money and digital transactions. This role not only offers a unique perspective on blockchain technology but also places you at the heart of a community dedicated to decentralization and network resilience. Beyond the technicalities, it's about embracing a new era of digital finance, where you contribute directly to the network's security, efficiency, and growth, all while gaining personal satisfaction and potentially lucrative rewards.
In essence, running your own Lightning node is a powerful way to engage with the forefront of blockchain technology, assert financial independence, and contribute to a more decentralized and efficient Bitcoin network. It's an adventure that offers both personal and communal benefits, from gaining in-depth tech knowledge to earning a place in the evolving landscape of cryptocurrency.
Running your own Lightning node for the Bitcoin Layer 2 network can be an empowering and beneficial endeavor. Here are 10 reasons why you might consider taking on this task:
-
Direct Contribution to Decentralization: Operating a node is a direct action towards decentralizing the Bitcoin network, crucial for its security and resistance to control or censorship by any single entity.
-
Financial Autonomy: Owning a node gives you complete control over your financial transactions on the network, free from reliance on third-party services, which can be subject to fees, restrictions, or outages.
-
Advanced Network Participation: As a node operator, you're not just a passive participant but an active player in shaping the network, influencing its efficiency and scalability through direct involvement.
-
Potential for Higher Revenue: With strategic management and optimal channel funding, your node can become a preferred route for transactions, potentially increasing the routing fees you can earn.
-
Cutting-Edge Technological Engagement: Running a node puts you at the forefront of blockchain and bitcoin technology, offering insights into future developments and innovations.
-
Strengthened Network Security: Each new node adds to the robustness of the Bitcoin network, making it more resilient against attacks and failures, thus contributing to the overall security of the ecosystem.
-
Personalized Fee Structures: You have the flexibility to set your own fee policies, which can balance earning potential with the service you provide to the network.
-
Empowerment Through Knowledge: The process of setting up and managing a node provides deep learning opportunities, empowering you with knowledge that can be applied in various areas of blockchain and fintech.
-
Boosting Transaction Capacity: By running a node, you help to increase the overall capacity of the Lightning Network, enabling more transactions to be processed quickly and at lower costs.
-
Community Leadership and Reputation: As an active node operator, you gain recognition within the Bitcoin community, which can lead to collaborative opportunities and a position of thought leadership in the space.
These reasons demonstrate the impactful and transformative nature of running a Lightning node, appealing to those who are deeply invested in the principles of bitcoin and wish to actively shape its future. Jump aboard, and embrace the journey toward full independence. 🐶🐾🫡🚀🚀🚀
-
-
@ 8fb140b4:f948000c
2023-11-18 23:28:31Chef's notes
Serving these two dishes together will create a delightful centerpiece for your Thanksgiving meal, offering a perfect blend of traditional flavors with a homemade touch.
Details
- ⏲️ Prep time: 30 min
- 🍳 Cook time: 1 - 2 hours
- 🍽️ Servings: 4-6
Ingredients
- 1 whole turkey (about 12-14 lbs), thawed and ready to cook
- 1 cup unsalted butter, softened
- 2 tablespoons fresh thyme, chopped
- 2 tablespoons fresh rosemary, chopped
- 2 tablespoons fresh sage, chopped
- Salt and freshly ground black pepper
- 1 onion, quartered
- 1 lemon, halved
- 2-3 cloves of garlic
- Apple and Sage Stuffing
- 1 loaf of crusty bread, cut into cubes
- 2 apples, cored and chopped
- 1 onion, diced
- 2 stalks celery, diced
- 3 cloves garlic, minced
- 1/4 cup fresh sage, chopped
- 1/2 cup unsalted butter
- 2 cups chicken broth
- Salt and pepper, to taste
Directions
- Preheat the Oven: Set your oven to 325°F (165°C).
- Prepare the Herb Butter: Mix the softened butter with the chopped thyme, rosemary, and sage. Season with salt and pepper.
- Prepare the Turkey: Remove any giblets from the turkey and pat it dry. Loosen the skin and spread a generous amount of herb butter under and over the skin.
- Add Aromatics: Inside the turkey cavity, place the quartered onion, lemon halves, and garlic cloves.
- Roast: Place the turkey in a roasting pan. Tent with aluminum foil and roast. A general guideline is about 15 minutes per pound, or until the internal temperature reaches 165°F (74°C) at the thickest part of the thigh.
- Rest and Serve: Let the turkey rest for at least 20 minutes before carving.
- Next: Apple and Sage Stuffing
- Dry the Bread: Spread the bread cubes on a baking sheet and let them dry overnight, or toast them in the oven.
- Cook the Vegetables: In a large skillet, melt the butter and cook the onion, celery, and garlic until soft.
- Combine Ingredients: Add the apples, sage, and bread cubes to the skillet. Stir in the chicken broth until the mixture is moist. Season with salt and pepper.
- Bake: Transfer the stuffing to a baking dish and bake at 350°F (175°C) for about 30-40 minutes, until golden brown on top.
-
@ 8fb140b4:f948000c
2023-11-02 01:13:01Testing a brand new YakiHonne native client for iOS. Smooth as butter (not penis butter 🤣🍆🧈) with great visual experience and intuitive navigation. Amazing work by the team behind it! * lists * work
Bold text work!
Images could have used nostr.build instead of raw S3 from us-east-1 region.
Very impressive! You can even save the draft and continue later, before posting the long-form note!
🐶🐾🤯🤯🤯🫂💜
-
@ 3f289d3c:cf35b9fc
2024-06-14 16:14:13In an increasingly regulated world, the industries that are not heavily regulated need to start switching to Bitcoin and Lightning payments now
I'll start this article off by giving you a little bit of back story. I'm from Canada and in Canada the government is increasingly crushing people under high taxes, massive inflation and unreasonable regulation. This seems to be the story in a lot of places but Canada is particularly bad on the regulation and taxes front, at least from my perspective. I live in a rural area where gasoline prices are much higher than in the higher population density areas of our province. Food prices are higher, product prices are higher including on the used market and property taxes here are way higher than what one might expect in such a remote area. You get the idea.
Now when I moved here the only method of income I had was crypto mining, specifically Ethereum. That seemed to be doing well for me for a short time. As time went on I noticed my savings dipping further and further and even though I was holding a lot of coins that were doing well overall, I was spending much more than I was able to earn with any of the crypto mining methods. I didn't lose a ton of money on any one of these but the Canadian market got so bad that I was forced to liquidate most of the tokens that I had set aside in order to make myself more on the cryptocurrency market. Not an ideal situation to be in.
As time went on I was forced to shut off my Ethereum mining rigs and get a "real job." Since then I've been more or less happily back in the the fiat mines (literally working at a gold mine) working for a meager (but not terrible) living and doing better than I was without a job. The biggest change over the course of the Last few months has been my switch to Bitcoin maximalism. I've learned more about the technology/currency and I've switched any remaining extra funds over to Bitcoin.
This all being said, The Canadian economy is now worse than it's ever been and I'm living paycheck to paycheck even though I make something like $78,000 a year in the mining sector. Obviously, this is absolutely Ridiculous. This is what brings me to my side income.
I've been a professional photographer for several years now and up until this point I hadn't considered trying to generate an income in anything other than Canadian dollars. With Canada being in the state it is currently I have reconsidered that and I am now accepting preferably Bitcoin or cash but I really want to emphasize Bitcoin. My issue at the moment is that I live in an area that is very rural and very remote so there are not a lot of people who even know what Bitcoin is let alone people who will actually use it. This is my biggest hurdle at the moment but frankly I don't think it's not much of a hurdle.
My primary plan for some time has been to build an online business focusing on education, community And maybe a bit of consulting versus going out and doing primarily photo shoots. Obviously that has to exist as part of the business ultimately, but my real goal is to focus on educating others and helping them to get to where I am and beyond. Basically I want to pass on my skill set and I want to avoid the awful economy as much as I can while doing it.
This is where accepting Bitcoin comes in. By accepting Bitcoin as payment for my photography services and only using marketplaces that Are built on that technology, I can largely skip past the modern woes of our economy. I can skip out on taxes and I can skip out on any kind of reporting that I would otherwise need to do. I can basically run a business completely free of the government and not need to do anything other than simply do what I would do if it were a hobby. This really excites me.
Imagine a world where you can just transact without having to report anything on your taxes. Imagine not having taxes at all! In an industry such as photography where it's mostly digital anyways, Bitcoin is the perfect method of payment for your services. With the lightning network And NFC chips, You can do all of your transacting right there on your phone to a lightning enabled Bitcoin wallet.
I think these industries where there isn't any regulation at all or at least very little regulation, are the perfect places to start doing this. They're the perfect breeding ground for all Bitcoin transactions and businesses. Why get the government involved at all when you can simply run your business the way it should be run? As they say on nostr, "Bitcoin fixes this."
I'm really looking forward to building my business in the nostr environment and on the back of a Bitcoin standard. I've already started the transition by joining nostr and I'm beginning to speak about photography there. I don't think I have felt as positive or as enthusiastic about this endeavor since joining nostr as a social platform and I'm really happy that I'm here. I believe that this is the future of digital transactions and social media and it may just be the best way to run an online business going forward.
Thank you for taking the time to read this and if anybody wants to see anything specific from me feel free to hit me up on nostr! I hope my thoughts brought some value to you and maybe got you thinking about how you could start transitioning your business to a Bitcoin standard.
-
@ 8fb140b4:f948000c
2023-08-22 12:14:34As the title states, scratch behind my ear and you get it. 🐶🐾🫡
-
@ 8fb140b4:f948000c
2023-07-30 00:35:01Test Bounty Note
-
@ 8fb140b4:f948000c
2023-07-22 09:39:48Intro
This short tutorial will help you set up your own Nostr Wallet Connect (NWC) on your own LND Node that is not using Umbrel. If you are a user of Umbrel, you should use their version of NWC.
Requirements
You need to have a working installation of LND with established channels and connectivity to the internet. NWC in itself is fairly light and will not consume a lot of resources. You will also want to ensure that you have a working installation of Docker, since we will use a docker image to run NWC.
- Working installation of LND (and all of its required components)
- Docker (with Docker compose)
Installation
For the purpose of this tutorial, we will assume that you have your lnd/bitcoind running under user bitcoin with home directory /home/bitcoin. We will also assume that you already have a running installation of Docker (or docker.io).
Prepare and verify
git version - we will need git to get the latest version of NWC. docker version - should execute successfully and show the currently installed version of Docker. docker compose version - same as before, but the version will be different. ss -tupln | grep 10009- should produce the following output: tcp LISTEN 0 4096 0.0.0.0:10009 0.0.0.0: tcp LISTEN 0 4096 [::]:10009 [::]:**
For things to work correctly, your Docker should be version 20.10.0 or later. If you have an older version, consider installing a new one using instructions here: https://docs.docker.com/engine/install/
Create folders & download NWC
In the home directory of your LND/bitcoind user, create a new folder, e.g., "nwc" mkdir /home/bitcoin/nwc. Change to that directory cd /home/bitcoin/nwc and clone the NWC repository: git clone https://github.com/getAlby/nostr-wallet-connect.git
Creating the Docker image
In this step, we will create a Docker image that you will use to run NWC.
- Change directory to
nostr-wallet-connect
:cd nostr-wallet-connect
- Run command to build Docker image:
docker build -t nwc:$(date +'%Y%m%d%H%M') -t nwc:latest .
(there is a dot at the end) - The last line of the output (after a few minutes) should look like
=> => naming to docker.io/library/nwc:latest
nwc:latest
is the name of the Docker image with a tag which you should note for use later.
Creating docker-compose.yml and necessary data directories
- Let's create a directory that will hold your non-volatile data (DB):
mkdir data
- In
docker-compose.yml
file, there are fields that you want to replace (<> comments) and port “4321” that you want to make sure is open (check withss -tupln | grep 4321
which should return nothing). - Create
docker-compose.yml
file with the following content, and make sure to update fields that have <> comment:
version: "3.8" services: nwc: image: nwc:latest volumes: - ./data:/data - ~/.lnd:/lnd:ro ports: - "4321:8080" extra_hosts: - "localhost:host-gateway" environment: NOSTR_PRIVKEY: <use "openssl rand -hex 32" to generate a fresh key and place it inside ""> LN_BACKEND_TYPE: "LND" LND_ADDRESS: localhost:10009 LND_CERT_FILE: "/lnd/tls.cert" LND_MACAROON_FILE: "/lnd/data/chain/bitcoin/mainnet/admin.macaroon" DATABASE_URI: "/data/nostr-wallet-connect.db" COOKIE_SECRET: <use "openssl rand -hex 32" to generate fresh secret and place it inside ""> PORT: 8080 restart: always stop_grace_period: 1m
Starting and testing
Now that you have everything ready, it is time to start the container and test.
- While you are in the
nwc
directory (important), execute the following command and check the log output,docker compose up
- You should see container logs while it is starting, and it should not exit if everything went well.
- At this point, you should be able to go to
http://<ip of the host where nwc is running>:4321
and get to the interface of NWC - To stop the test run of NWC, simply press
Ctrl-C
, and it will shut the container down. - To start NWC permanently, you should execute
docker compose up -d
, “-d” tells Docker to detach from the session. - To check currently running NWC logs, execute
docker compose logs
to run it in tail mode add-f
to the end. - To stop the container, execute
docker compose down
That's all, just follow the instructions in the web interface to get started.
Updating
As with any software, you should expect fixes and updates that you would need to perform periodically. You could automate this, but it falls outside of the scope of this tutorial. Since we already have all of the necessary configuration in place, the update execution is fairly simple.
- Change directory to the clone of the git repository,
cd /home/bitcoin/nwc/nostr-wallet-connect
- Run command to build Docker image:
docker build -t nwc:$(date +'%Y%m%d%H%M') -t nwc:latest .
(there is a dot at the end) - Change directory back one level
cd ..
- Restart (stop and start) the docker compose config
docker compose down && docker compose up -d
- Done! Optionally you may want to check the logs:
docker compose logs
-
@ 6871d8df:4a9396c1
2024-06-12 22:10:51Embracing AI: A Case for AI Accelerationism
In an era where artificial intelligence (AI) development is at the forefront of technological innovation, a counter-narrative championed by a group I refer to as the 'AI Decels'—those advocating for the deceleration of AI advancements— seems to be gaining significant traction. After tuning into a recent episode of the Joe Rogan Podcast, I realized that the prevailing narrative around AI was heading in a dangerous direction. Rogan had Aza Raskin and Tristan Harris, technology safety advocates, who released a talk called 'The AI Dilemma,' on for a discussion. You may know them from the popular documentary 'The Social Dilemma' on the dangers of social media. It became increasingly clear that the cautionary stance dominating this discourse might be tipping the scales too far, veering towards an over-regulated future that stifles innovation rather than fostering it.
Are we moving too fast?
While acknowledging AI's benefits, Aza and Tristan fear it could be dangerous if not guided by ethical standards and safeguards. They believe AI development is moving too quickly and that the right incentives for its growth are not in place. They are concerned about the possibility of "civilizational overwhelm," where advanced AI technology far outpaces 21st-century governance. They fear a scenario where society and its institutions cannot manage or adapt to the rapid changes and challenges introduced by AI.
They argue for regulating and slowing down AI development due to rapid, uncontrolled advancement driven by competition among companies like Google, OpenAI, and Microsoft. They claim this race can lead to unsafe releases of new technologies, with AI systems exhibiting unpredictable, emergent behaviors, posing significant societal risks. For instance, AI can inadvertently learn tasks like sentiment analysis or human emotion understanding, creating potential for misuse in areas like biological weapons or cybersecurity vulnerabilities.
Moreover, AI companies' profit-driven incentives often conflict with the public good, prioritizing market dominance over safety and ethics. This misalignment can lead to technologies that maximize engagement or profits at societal expense, similar to the negative impacts seen with social media. To address these issues, they suggest government regulation to realign AI companies' incentives with safety, ethical considerations, and public welfare. Implementing responsible development frameworks focused on long-term societal impacts is essential for mitigating potential harm.
This isn't new
Though the premise of their concerns seems reasonable, it's dangerous and an all too common occurrence with the emergence of new technologies. For example, in their example in the podcast, they refer to the technological breakthrough of oil. Oil as energy was a technological marvel and changed the course of human civilization. The embrace of oil — now the cornerstone of industry in our age — revolutionized how societies operated, fueled economies, and connected the world in unprecedented ways. Yet recently, as ideas of its environmental and geopolitical ramifications propagated, the narrative around oil has shifted.
Tristan and Aza detail this shift and claim that though the period was great for humanity, we didn't have another technology to go to once the technological consequences became apparent. The problem with that argument is that we did innovate to a better alternative: nuclear. However, at its technological breakthrough, it was met with severe suspicions, from safety concerns to ethical debates over its use. This overregulation due to these concerns caused a decades-long stagnation in nuclear innovation, where even today, we are still stuck with heavy reliance on coal and oil. The scare tactics and fear-mongering had consequences, and, interestingly, they don't see the parallels with their current deceleration stance on AI.
These examples underscore a critical insight: the initial anxiety surrounding new technologies is a natural response to the unknowns they introduce. Yet, history shows that too much anxiety can stifle the innovation needed to address the problems posed by current technologies. The cycle of discovery, fear, adaptation, and eventual acceptance reveals an essential truth—progress requires not just the courage to innovate but also the resilience to navigate the uncertainties these innovations bring.
Moreover, believing we can predict and plan for all AI-related unknowns reflects overconfidence in our understanding and foresight. History shows that technological progress, marked by unexpected outcomes and discoveries, defies such predictions. The evolution from the printing press to the internet underscores progress's unpredictability. Hence, facing AI's future requires caution, curiosity, and humility. Acknowledging our limitations and embracing continuous learning and adaptation will allow us to harness AI's potential responsibly, illustrating that embracing our uncertainties, rather than pretending to foresee them, is vital to innovation.
The journey of technological advancement is fraught with both promise and trepidation. Historically, each significant leap forward, from the dawn of the industrial age to the digital revolution, has been met with a mix of enthusiasm and apprehension. Aza Raskin and Tristan Harris's thesis in the 'AI Dilemma' embodies the latter.
Who defines "safe?"
When slowing down technologies for safety or ethical reasons, the issue arises of who gets to define what "safe" or “ethical” mean? This inquiry is not merely technical but deeply ideological, touching the very core of societal values and power dynamics. For example, the push for Diversity, Equity, and Inclusion (DEI) initiatives shows how specific ideological underpinnings can shape definitions of safety and decency.
Take the case of the initial release of Google's AI chatbot, Gemini, which chose the ideology of its creators over truth. Luckily, the answers were so ridiculous that the pushback was sudden and immediate. My worry, however, is if, in correcting this, they become experts in making the ideological capture much more subtle. Large bureaucratic institutions' top-down safety enforcement creates a fertile ground for ideological capture of safety standards.
I claim that the issue is not the technology itself but the lens through which we view and regulate it. Suppose the gatekeepers of 'safety' are aligned with a singular ideology. In that case, AI development would skew to serve specific ends, sidelining diverse perspectives and potentially stifling innovative thought and progress.
In the podcast, Tristan and Aza suggest such manipulation as a solution. They propose using AI for consensus-building and creating "shared realities" to address societal challenges. In practice, this means that when individuals' viewpoints seem to be far apart, we can leverage AI to "bridge the gap." How they bridge the gap and what we would bridge it toward is left to the imagination, but to me, it is clear. Regulators will inevitably influence it from the top down, which, in my opinion, would be the opposite of progress.
In navigating this terrain, we must advocate for a pluralistic approach to defining safety, encompassing various perspectives and values achieved through market forces rather than a governing entity choosing winners. The more players that can play the game, the more wide-ranging perspectives will catalyze innovation to flourish.
Ownership & Identity
Just because we should accelerate AI forward does not mean I do not have my concerns. When I think about what could be the most devastating for society, I don't believe we have to worry about a Matrix-level dystopia; I worry about freedom. As I explored in "Whose data is it anyway?," my concern gravitates toward the issues of data ownership and the implications of relinquishing control over our digital identities. This relinquishment threatens our privacy and the integrity of the content we generate, leaving it susceptible to the inclinations and profit of a few dominant tech entities.
To counteract these concerns, a paradigm shift towards decentralized models of data ownership is imperative. Such standards would empower individuals with control over their digital footprints, ensuring that we develop AI systems with diverse, honest, and truthful perspectives rather than the massaged, narrow viewpoints of their creators. This shift safeguards individual privacy and promotes an ethical framework for AI development that upholds the principles of fairness and impartiality.
As we stand at the crossroads of technological innovation and ethical consideration, it is crucial to advocate for systems that place data ownership firmly in the hands of users. By doing so, we can ensure that the future of AI remains truthful, non-ideological, and aligned with the broader interests of society.
But what about the Matrix?
I know I am in the minority on this, but I feel that the concerns of AGI (Artificial General Intelligence) are generally overblown. I am not scared of reaching the point of AGI, and I think the idea that AI will become so intelligent that we will lose control of it is unfounded and silly. Reaching AGI is not reaching consciousness; being worried about it spontaneously gaining consciousness is a misplaced fear. It is a tool created by humans for humans to enhance productivity and achieve specific outcomes.
At a technical level, large language models (LLMs) are trained on extensive datasets and learning patterns from language and data through a technique called "unsupervised learning" (meaning the data is untagged). They predict the next word in sentences, refining their predictions through feedback to improve coherence and relevance. When queried, LLMs generate responses based on learned patterns, simulating an understanding of language to provide contextually appropriate answers. They will only answer based on the datasets that were inputted and scanned.
AI will never be "alive," meaning that AI lacks inherent agency, consciousness, and the characteristics of life, not capable of independent thought or action. AI cannot act independently of human control. Concerns about AI gaining autonomy and posing a threat to humanity are based on a misunderstanding of the nature of AI and the fundamental differences between living beings and machines. AI spontaneously developing a will or consciousness is more similar to thinking a hammer will start walking than us being able to create consciousness through programming. Right now, there is only one way to create consciousness, and I'm skeptical that is ever something we will be able to harness and create as humans. Irrespective of its complexity — and yes, our tools will continue to become evermore complex — machines, specifically AI, cannot transcend their nature as non-living, inanimate objects programmed and controlled by humans.
The advancement of AI should be seen as enhancing human capabilities, not as a path toward creating autonomous entities with their own wills. So, while AI will continue to evolve, improve, and become more powerful, I believe it will remain under human direction and control without the existential threats often sensationalized in discussions about AI's future.
With this framing, we should not view the race toward AGI as something to avoid. This will only make the tools we use more powerful, making us more productive. With all this being said, AGI is still much farther away than many believe.
Today's AI excels in specific, narrow tasks, known as narrow or weak AI. These systems operate within tightly defined parameters, achieving remarkable efficiency and accuracy that can sometimes surpass human performance in those specific tasks. Yet, this is far from the versatile and adaptable functionality that AGI represents.
Moreover, the exponential growth of computational power observed in the past decades does not directly translate to an equivalent acceleration in achieving AGI. AI's impressive feats are often the result of massive data inputs and computing resources tailored to specific tasks. These successes do not inherently bring us closer to understanding or replicating the general problem-solving capabilities of the human mind, which again would only make the tools more potent in our hands.
While AI will undeniably introduce challenges and change the aspects of conflict and power dynamics, these challenges will primarily stem from humans wielding this powerful tool rather than the technology itself. AI is a mirror reflecting our own biases, values, and intentions. The crux of future AI-related issues lies not in the technology's inherent capabilities but in how it is used by those wielding it. This reality is at odds with the idea that we should slow down development as our biggest threat will come from those who are not friendly to us.
AI Beget's AI
While the unknowns of AI development and its pitfalls indeed stir apprehension, it's essential to recognize the power of market forces and human ingenuity in leveraging AI to address these challenges. History is replete with examples of new technologies raising concerns, only for those very technologies to provide solutions to the problems they initially seemed to exacerbate. It looks silly and unfair to think of fighting a war with a country that never embraced oil and was still primarily getting its energy from burning wood.
The evolution of AI is no exception to this pattern. As we venture into uncharted territories, the potential issues that arise with AI—be it ethical concerns, use by malicious actors, biases in decision-making, or privacy intrusions—are not merely obstacles but opportunities for innovation. It is within the realm of possibility, and indeed, probability, that AI will play a crucial role in solving the problems it creates. The idea that there would be no incentive to address and solve these problems is to underestimate the fundamental drivers of technological progress.
Market forces, fueled by the demand for better, safer, and more efficient solutions, are powerful catalysts for positive change. When a problem is worth fixing, it invariably attracts the attention of innovators, researchers, and entrepreneurs eager to solve it. This dynamic has driven progress throughout history, and AI is poised to benefit from this problem-solving cycle.
Thus, rather than viewing AI's unknowns as sources of fear, we should see them as sparks of opportunity. By tackling the challenges posed by AI, we will harness its full potential to benefit humanity. By fostering an ecosystem that encourages exploration, innovation, and problem-solving, we can ensure that AI serves as a force for good, solving problems as profound as those it might create. This is the optimism we must hold onto—a belief in our collective ability to shape AI into a tool that addresses its own challenges and elevates our capacity to solve some of society's most pressing issues.
An AI Future
The reality is that it isn't whether AI will lead to unforeseen challenges—it undoubtedly will, as has every major technological leap in history. The real issue is whether we let fear dictate our path and confine us to a standstill or embrace AI's potential to address current and future challenges.
The approach to solving potential AI-related problems with stringent regulations and a slowdown in innovation is akin to cutting off the nose to spite the face. It's a strategy that risks stagnating the U.S. in a global race where other nations will undoubtedly continue their AI advancements. This perspective dangerously ignores that AI, much like the printing press of the past, has the power to democratize information, empower individuals, and dismantle outdated power structures.
The way forward is not less AI but more of it, more innovation, optimism, and curiosity for the remarkable technological breakthroughs that will come. We must recognize that the solution to AI-induced challenges lies not in retreating but in advancing our capabilities to innovate and adapt.
AI represents a frontier of limitless possibilities. If wielded with foresight and responsibility, it's a tool that can help solve some of the most pressing issues we face today. There are certainly challenges ahead, but I trust that with problems come solutions. Let's keep the AI Decels from steering us away from this path with their doomsday predictions. Instead, let's embrace AI with the cautious optimism it deserves, forging a future where technology and humanity advance to heights we can't imagine.
-
@ ddf03aca:5cb3bbbe
2024-06-12 14:51:37Disclaimer: Beware, there be dragons... Deploying your own version of npubcash-server is highly experimental. Do not use this in production yet. If you do deploy it, please make sure to leave your feedback with me.
Prerequisites
Before we dive in, you'll need a few things:
- Blink API Key: npubcash-server uses Blink API for payment callbacks. If you don’t have a Blink account yet, sign up here.
- Postgres: npubcash-server utilizes a Postgres database for storage.
- fly.io Account and flyctl: While you can deploy npubcash-server anywhere, this guide focuses on fly.io and its CLI tool, flyctl.
Setup
Step 1: Clone the Repository
First, clone the npubcash-server repository, specifically the
migrations
branch, as it contains the necessary deployment scripts. Don’t forget to clone all submodules recursively.zsh git clone -b migrations --recurse-submodules https://github.com/cashubtc/npubcash-server.git cd npubcash-server
Step 2: Create fly.toml Configuration
Next, create your
fly.toml
file to configure your deployment.zsh nvim fly.toml
Here's a sample configuration. Adjust the environment variables to match your setup:
```toml app = "npubcash-server" primary_region = "ams"
[build]
[http_service] internal_port = 8000 force_https = true auto_stop_machines = true auto_start_machines = true min_machines_running = 0 processes = ["app"]
[[vm]] memory = "512mb" cpu_kind = "shared" cpus = 1
[env] NODE_ENV = "production" PGUSER = "
" PGPASSWORD = " " PGHOST = " " PGDATABASE = " " PGPORT = " " MINTURL = " " BLINK_API_KEY = " Note: fly.io offers additional security for sensitive environment variables through
secrets
, which are encrypted and never exposed directly. Consider usingsecrets
for sensitive data like your Blink or Nostr key. Learn more here.Deploying
With your configuration ready, it’s time to deploy!
zsh fly launch
When prompted, choose to use the existing
fly.toml
file by inputtingy
. Fly.io might suggest deploying a Postgres instance, but since we're using an external Postgres instance, adjust the settings as needed through their web interface. Watch the build logs in your terminal, and once completed, your instance of npubcash-server is live. Congrats!Setting Up a Custom Domain
To fully utilize npubcash-server as an LNURL server, you’ll need a custom domain. Here’s how to set it up:
- Get the IP Address: Use flyctl to list your IP addresses.
zsh fly ips list
Copy the IPv4 and IPv6 addresses.
-
Create DNS Records: Set up an A record with your domain provider using the IPv4 address and a AAAA record using the IPv6 address.
-
Request an SSL Certificate: For encrypted traffic, request a Let’s Encrypt certificate.
zsh fly certs add <your domain name>
Note: DNS propagation can take some time. Ensure your machine is running and try connecting to the domain once the DNS records are updated. Fly.io will verify the DNS setup when traffic starts coming in.
Wrapping up
That is it... Hopefully by now your very own instance of npubcash-server is running and reachable on your own domain. If you got this far, please reach out to me and let me know. Now please go ahead and try to break it. If you do, please open an issue so that I can fix it :)
-
@ dc4cd086:cee77c06
2024-06-12 01:42:11A formal system is defined by its axioms. We try to treat science (and by proxy, the natural world) with an assumption of nature itself being a formal system -> start with axioms and explore the space from there. Axioms and derived theorems then create the boundaries for the environment you're working with.
Mathematical proofs show you absolute truth in the axiomatic system you are working with. They will also show the absolute falshoods of the system. The space is fractal, endlessly deep, you only can work with the knowledge you have of system you are working with.
The problem is that nature is mind-bogglingly entangled.
You think CS dependencies are tough? Biological processes seemingly have not only unenumerable dependencies, but dependencies that well eventually circle back to the process itself. At that point, you'd expect a computer to be in deadlock, but it gets worse. There there are not only multiple different clock-cycles, but its a gradient everywhere you go. In biology, it is often said that there are always contradictions to rules being stated and that whatever "rules" we come up with are more guidelines, so we can't even make the assumption that biology and nature is a formal system.
What are the implications of that? A real strangely looped rabbit hole for you 🕳️🔄🐇
The image is from Doug Hofstadter's Godel Escher Bach ch 3, a visualization of this process with some defined formal system. Godel's Incompleteness Theorem proved that any formal system will have statements about it that cannot be proved from within said system. For example, where in the system of language rules do you get meaning from? You're not going to derive semantics from syntax.
So if formal systems can't even be fully explicated , what does that imply for non-formal systems? Damned if nature is formal, damned even more if its not.
Now for a sleight shift. Humans, we live outside many axiomatic systems, but use them to frame our understanding of the world. Ever work on a problem for such a long time, and then stop and do something else? Thats because we aren't bound by said box/axiomatic system and can move outside it. This feature itself allows us to reenter the system from different angles, or just say "Stop, its not worth it."
The capacity for humans to exit systems is a core part that separates us from computers. Wisdom incorperates restraint of application as a consequence from viewing the system wholistically.
The real questions now: What kind of boxes are we living in, be they foundational or self constructed? Are we agents taxing towards new provable theorems contained in some system we can't exit from? What are the generating functions for this system? Are we the system itself?
This gives me hope on the unknowable truths and falshoods. Spiritual experience is the experience of The Other, whatever that may be.
original thread: nostr:nevent1qqsqrry7heeq2u38gjursxel9w54t66za3xh0avarfawxnv5rfgvlesprfmhxue69uhkummnw3ezuargv4ekzmt9vdshgtnfduhsygrszgsjsfemmsr6lxl8wf06t39uplq5dpntasudgsmqm39udnqchypsgqqqqqqsdkt4pc
-
@ dd664d5e:5633d319
2024-06-11 15:29:22Laeserin's theory of assortative clustering
I was nerding again
I posted a wiki breadcrumb trail of events, today, from entropy, to information entropy, to social media entropy. (Source for the last entry in that list: I made it up.)
The more mathematically-inclined npubs immediately saw the usefulness in such a score, probably because it can be so very difficult to find anyone writing anything particularly complex or "deep" about one's own topics of interest. So, that is a subset of npubs that personally suffers from the difficulty of finding such slender trees within the increasingly vast, wild forest of Nostr notes.
Thar be dragons
However, this sort of score is a proxy-measure for general intelligence, so there is obvious nervousness about measuring something that many people think it is immoral to measure, and that others do not believe is an actual thing. (Despite the fact that we are quickly developing artificial copies of the organic version and you can't copy something that is nonexistent... but I digress.)
There is always the fear of "intellectual elitism", whereby the worth, or value, of some particular person or group of people is determined by measuring their intelligence. This fear is not unfounded, as there are many amoral people who view humans in this reductive manner, but fear of amoral people being wicked about something is not a sufficient reason to cut off entire fields of study. That would, in fact, bar us from thinking much about anything.
More is not always better
I suppose the assumption would be that a higher SME would always be considered better, but this is a fallacy based upon the overemphasis on intelligence in our particular culture and time.
Most people would actually prefer the content of someone similar to themselves, who is conversing on a level they can easily understand and respond to, without feeling intimidated or bored. Humans tend to associate with those more like themselves (i.e. assortatively), and don't tend to associate more than one SD out on the IQ curve, in either direction, as they find the experience confusing, tiresome or alienating.
What is "better", in other words, is subjective and dependent upon the person asked, which is why SME scores make sense, but not necessarily SME rankings. In the same way that a sky-high WoT score can actually make an account less-attractive because you might assume that they're #NostrElite, a sky-high SME score will assume to represent nerdiness or a tendency to verbosity.
We will self-sort
That is why the largest npubs are, by design, never going to be the most information-dense ones, and the most information-dense ones will tend to be treated like spam, by many other npubs. This same spam-effect will hit the least information-dense ones, which is why we can expect each cohort to eventually branch off into their preferred nevent, relay, client and hashtag realms, where they can be themselves without feeling put-upon by other npubs' negative reactions.
Academic centers, such as universities and startup hubs were developed in order to support this self-sorting effect, by allowing those to the right-end of the bell curve to congregate with the like-minded and have conversations with people who don't treat them as if they are space aliens. However, it carried the negative effect that those people were then clustered geographically, where they eventually lost sight of the day-to-day issues that effected the majority of the populace. Their isolation made them insular and ignorant, and fostered the very "intellectual elitism" that creates so much worry, now.
Make it a feature, not a bug
Nostr solves for the worst effects of this problem, by keeping all of the conversation within one data structure and profile silo, so that those from one group will regularly have contact with the others, and frenships (and romances, who knows?) can take root at the margins. Nostr, in other words, recreates the social mixing common to a village, where the groups are largely separate when deep in discussion or at work, but interact incidentally when moving around in shops, attending church services, festivals, or joining sports clubs or choirs.
In closing, I would say that the concern is completely justified, but a universal communications protocol is the best way to alleviate such concern and have all reap some reward for making the relationship structure of humankind more transparent.
One man's treasure is another man's trash, and everything happily reverts to the mean. The End.
-
@ dd664d5e:5633d319
2024-06-10 12:57:17Monday Market Update
ECB lowered interest rates
The Governing Council today decided to lower the three key ECB interest rates by 25 basis points. Based on an updated assessment of the inflation outlook, the dynamics of underlying inflation and the strength of monetary policy transmission, it is now appropriate to moderate the degree of monetary policy restriction after nine months of holding rates steady. Since the Governing Council meeting in September 2023, inflation has fallen by more than 2.5 percentage points and the inflation outlook has improved markedly.
Press conference from the ECB featuring ECB President Christine Lagarde).
Euro-area inflation stabilizes
Source: Eurostat
Gold, silver, and Bitcoin continue to boom
Precious metals
Source: Goldpreis.de
Bitcoin
Source: Coinmarketcap
Source: Fiat Market Cap
Source: Infinite Market Cap
-
@ dd664d5e:5633d319
2024-06-09 07:01:01Why Nostr needs writers
... and how you can be one.
Literary art deserves a suitable frame
I have repeatedly suggested that people who are inclined to truly write, in an informative or artistic (a.k.a. "high signal") manner, switch from merely posting micro-blogging (kind 01) notes to long-form notes, wiki pages, and community notes.
These OtherStuff articles are contained within new types of events and are handled differently by potential readers and algorithms. It is true that the engagement you receive will be much lower (at least, initially), and this content may not be very popular, but:
-
the articles will be more long-lasting on the relays and others will likely pay to archive them for you,
-
the direct responses will tend to consider the article in its entirety, rather than merely using them to grandstand or straw-man,
-
the articles are easily editable and will soon be versioned, to allow for both change and traceability,
-
articles will increasingly be moved to the forefront of new types of clients, so you will be part of the pioneer subset for those clients,
-
the complex structure encourages you to write more complex material,
-
the notes will draw more attention from those arriving late to the conversation,
-
and they will create a gallery of your "best of" and "essential me" for potential followers to peruse.
Expand the knowledge base
Nostr developers are an exhausted and harried group, that is trying to build under duress on a rather thin budget, with mile-long roadmaps and nagging users hounding them the whole way.
The last thing these devs want to do is write software documentation. But documentation is actually one of their most important forms of marketing to new users and documentation writing and maintenance often inadvertently uncovers bugs and workflows that need to be redesigned.
The simple solution is to have their most-enthusiastic users writing the documentation for them, which is now simple to do, with the wikis that are being built. Simply find your favorite apps and begin documenting things you typically do with those apps, or write an overview page showcasing your favorite features, including screenshots.
Not only is this useful for later users, it's free advertisement for those apps and it lends the weight of your WoT (Web of Trust) to their endeavor. You are showing, through proof of work, that you care enough about this developer and their efforts that you'd spend your free-time writing about them. That is the strongest recommendation you can make.
Make Nostr more attractive to search engines
Search engines are the gatekeepers of the Internet. Applications don't necessarily rise to popularity because of the "clout" of the people who write there. They rise because readers from outside of those applications found the content within them useful, entertaining, or informative.
Although social media drama and influencing can make for a fun read, if you like that sort of thing, it isn't generally what someone who isn't familiar with the actors in the argument would bother reading. It looks like squabbling, mogging, tribalism, and gamesmanship, to outsiders. Which is what it is. Most people eventually weary of it or being involved in it.
Much more useful is the a compendium of ideas pulled together by an individual npub (human or not), and forced to go head-to-head with counterarguments contained in a separate, but jointly-listed compendium. This format eschews the more emotive forms of rhetoric (pathos and ethos) and encourages someone to engage and debate on a more intellectual level (logos).
This is the idea behind the Nostr wiki, and I heartily support it. Make dialectic great again.
Escape the scourge of AI
Don't bother telling me that AI makes human writing obsolete. It rather makes it a more-exclusive endeavor, by reducing the scope of the content to something more reflective of the person writing.
Yes, ChatGPT can write articles, but whether they are "better" is subjective. They have fewer minor flaws and cater more to general tastes, and can be produced quickly and in high numbers, at relatively low cost. The same way that robot-created art is "better" than most human-created art, or factory-produced food is "better" than most home-cooked food.
I'm only writing for the sort of person who prefers human art. Writing can be an expression of the self and a window to the soul. Read what I write because you want to know what I really thought.
I thought this.
-
-
@ 46fcbe30:6bd8ce4d
2024-05-24 15:47:11With more than 6000 products listed, it's time to extract some numbers again.
The following are some findings in the data, followed by the full data.
Removed or defunct
Of all the 3381 products that are no more,
- 1600 had less than 1000 downloads at the time we first listed them
- 628 we did not get to review before they were removed or defunct
- 607 were custodial or did not even allow to send or receive BTC. That is 607 products that if you used them to store bitcoins, you would now not be able to do anything with those bitcoins.
- 18 had public source but we failed to build that source
- 13 we managed to build but not reproduce
- 2 were reproducible - namely Zap which was discontinued in favor of BitBanana and ABCore which was a very limited experiment from the start.
Obsolete or stale
Of all the 775 products that are not getting updates in years,
- 221 have less than 1000 downloads (and many of them are likely to disappear as shown above)
- 179 are custodial or "no send or receive". You definitely don't want to use these.
- 0 are reproducible
OK
Of the 2164 products that look well and alive
- 937 are custodial or "no send or receive"
- 143 are do-it-yourself projects (20), not yet actually released (41) or most likely never getting released (82)
- 306 are closed source
- 46 are not compilable (12) or the compiled app does not match the released app (34)
- 20 are reproducible
https://walletscrutiny.com/
-
@ 9eeca894:4afe5882
2024-05-19 19:51:04How I put NixOS on my UDM (trashcan model) router
a rare cursed fetch!
Content also available on https://code.despera.space/iru/htdocs/src/branch/main/notes/UDM-NIXOS.md
Really it's just a running NixOS on systemd-nspawn thing.
The UDM product line basically runs on Linux kernel and userland. It is a surprisingly normal device that allows you to SSH and run commands. It even has apt and systemd services installed. The only catch being that for the most part the file system structure is immutable with only a few exceptions like /data and /etc/systemd. Previous versions even had the Unifi services running on a podman container. On recent versions of the firmware podman was phased out but we got something that resembles a more complete system structure as opposed to a busybox-like system.
So basically its some kind of Debian-based Linux running on a headless ARM64 computer. Can we install and run stuff? Yes! In fact projects like https://github.com/unifi-utilities/unifios-utilities publish scripts to run general purpose programs and configurations on UDM. Be aware however that firmware upgrades might wipe the persistent data storage so don't put anything in there that you don't want to lose and preferably keep scripts so you can setup again after having its flash storage nuked by a major update.
I have the base UDM model. The first with the pill format that has been aparently replaced by the UDR. The UDR seems to have more features like Wifi6, bigger internal storage and even an SD card slot meant for vigilance camera footage storage but comes with a weaker CPU in comparison with the original UDM base. As far as I know the rack mountable models follow the same OS and file system structure.
Okay but why?
I'm gonna leave this to your imagination on why would you add services to your proprietary router applicance. To me its the fact that I don't really like running servers at home and I'm ultimately stuck with this router so why not put it to work maybe running a static webserver or something silly like Home Assistant. The truth of the matter is that I can't just leave things alone.
And if you can run Linux why would you run something that is not NixOS? Thats crazy and it doesn't make sense.
How do we root the UDM? What kind of jailbreak do I need?
No.
You enable SSH from the Controller UI, log into it as root with the password you set to the admin user. You just waltz in and start installing and configuring.
```
apt update && apt install systemd-container
```
Thats it. Kinda. The complicated part is modifying the programs to write into the persistent data directories while also making sure your stuff starts on boot and doesn't get wiped on minor firmware upgrades.
Building the NixOS root image.
Might want to read first: https://nixcademy.com/2023/08/29/nixos-nspawn/
We need a NixOS tarball image. TFC's https://github.com/tfc/nspawn-nixos contains the flake to build such an image and also publishes artifacts for AMD64 but not ARM64. I guess you could build this from an AMD64 machine but I haven't looked into building a cross platform environment (didn't needed to compile anything though). I have a recent macbook with UTM so I just downloaded one of the default Linux virtual machine images from the UTM page and installed the Nix runtime over the OS.
Make sure you have git and curl installed.
$ sh <(curl -L https://nixos.org/nix/install) --daemon
You need to start another terminal session.
$ git clone https://github.com/tfc/nspawn-nixos $ cd nspawn-nixos $ nix --extra-experimental-features 'nix-command flakes' build .
Optionally you could try to edit the configuration to generate an image with everything you need. In case you need something like Home Assistant, some compilation might be necessary and although I haven't tried compiling code on the UDM I suspect it might be a painful process due to CPU performance and space constraints. Here is an example with Home Assistant, Caddy and Tailscale.
The image will be available under
./result/tarball/nixos-system-aarch64-linux.tar.xz
. Use scp to send this to the /data/ directory of the UDM.Installing the image
First we create the folder structure:
```
mkdir -p /data/custom/machines
ln -s /data/custom/machines /var/lib/machines
```
Under normal circunstainces by now you would just run
machinectl import-tar /data/nixos-system-aarch64-linux.tar.xz <machinename>
however the version of tar that is present in this system doesn't really like the resulting tarball image. It will yeld errors likeDirectory renamed before its status could be extracted
.Thankfully we can install bsdtar through
apt install libarchive-tools
howevermachinectl import-tar
is hardcoded to use the tar command. Adding a symlink from/usr/bin/bsdtar
to/usr/local/bin/tar
won't work since some parameters are used that are not supported in bsdtar. You could try writing a wrapper shell script but just unpacking the tarball directly was sufficient.```
mkdir /var/lib/machines/udmnixos
bsdtar Jxvfp /data/nixos-system-aarch64-linux.tar.xz -C /var/lib/machines/udmnixos
```
Lets start the container.
```
machinectl start udmnixos
machinectl
MACHINE CLASS SERVICE OS VERSION ADDRESSES udmnixos container systemd-nspawn nixos 23.11 192.168.168.88…
```
Good. Now we need to change the root password.
```
machinectl shell udmnixos /usr/bin/env passwd
Connected to machine udmnixos. Press ^] three times within 1s to exit session. New password: Retype new password: passwd: password updated successfully Connection to machine udmnixos terminated. ```
Finally we can login into the container.
```
machinectl login udmnixos
Connected to machine udmnixos. Press ^] three times within 1s to exit session.
<<< Welcome to NixOS 23.11.20240115.b8dd8be (aarch64) - pts/1 >>>
nixos login: root Password:
[root@nixos:~]# ```
We haven't finished yet. By default the network is set to its own container network. We also don't have a DNS resolver configured. You can leave that session with CTRL+]]].
https://www.freedesktop.org/software/systemd/man/latest/systemd-nspawn.html#-n
```
machinectl stop udmnixos
```
Networking and Persistence
The first thing that needs to be addressed is the DNS configuration. The default setting that copies the /etc/resolv.conf from host won't work since it points to localhost. Either install resolved, netmask or set a static DNS config.
As for the network method we have some options here.
- Run using the default network stack and map ports to the container.
- Run using something akin to --network=host where the container has full access to the host network.
- Give the container its own independent interface through a bridge.
- Give the container its own independent interface through macvlan.
Using --network-veth and port mapping
```
mkdir -p /etc/systemd/nspawn
cat > /etc/systemd/nspawn/udmnixos.nspawn <<HERE
[Exec] Boot=on ResolvConf=off
[Network] Port=tcp:2222:22 HERE
machinectl enable udmnixos
Created symlink /etc/systemd/system/machines.target.wants/systemd-nspawn@udmnixos.service → /lib/systemd/system/systemd-nspawn@.service
machinectl start udmnixos
```
Remember this will listen on ALL UDM interfaces so you might want to make sure the firewall rules will accomodate it.
```
iptables -t nat -L -n -v | grep 2222
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2222 ADDRTYPE match dst-type LOCAL to:192.168.206.200:22 0 0 DNAT tcp -- * * 0.0.0.0/0 !127.0.0.0/8 tcp dpt:2222 ADDRTYPE match dst-type LOCAL to:192.168.206.200:22
```
Using the host network
This will give access to all the network interfaces. Any service that runs on the container will be accessible from the UDM interfaces without the need to map ports. The container will also have the same IP addresses as the UDM.
You might want to read about capabilities if you plan on running some VPN software like Wireguard or Tailscale.
```
mkdir -p /etc/systemd/nspawn
cat > /etc/systemd/nspawn/udmnixos.nspawn <<HERE
[Exec] Boot=on
Daring are we?
Capability=all
ResolvConf=off
[Network] Private=off VirtualEthernet=off HERE
machinectl enable udmnixos
Created symlink /etc/systemd/system/machines.target.wants/systemd-nspawn@udmnixos.service → /lib/systemd/system/systemd-nspawn@.service
machinectl start udmnixos
```
Using a bridge to give the container its own interface
I had to give some capabilities to the container otherwise it wouldn't properly start. Replace the value of Bridge with the bridge corresponding to the UDM network you want to add. Normally these correspond to the VLAN id of that network. Use
brctl show
to find out.```
mkdir -p /etc/systemd/nspawn
cat > /etc/systemd/nspawn/udmnixos.nspawn <<HERE
[Exec] Boot=on Capability=CAP_NET_RAW,CAP_NET_ADMIN ResolvConf=off
[Network] Bridge=br2 Private=off VirtualEthernet=off HERE
machinectl enable udmnixos
Created symlink /etc/systemd/system/machines.target.wants/systemd-nspawn@udmnixos.service → /lib/systemd/system/systemd-nspawn@.service
machinectl start udmnixos
machinectl login udmnixos
machinectl login nixos
Failed to get login PTY: No machine 'nixos' known root@UDM:/etc/systemd/nspawn# machinectl login udmnixos Connected to machine udmnixos. Press ^] three times within 1s to exit session.
<<< Welcome to NixOS 23.11.20240518.e7cc617 (aarch64) - pts/1 >>>
nixos login: root Password:
[root@nixos:~]# ifconfig host0: flags=4163
mtu 1500 inet [redacted] netmask 255.255.255.192 broadcast [redacted] inet6 [redacted] prefixlen 64 scopeid 0x20 inet6 [redacted] prefixlen 64 scopeid 0x0 ether 92:01:4c:a7:a1:7b txqueuelen 1000 (Ethernet) RX packets 2415 bytes 611986 (597.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 61 bytes 5337 (5.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73
mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ```
MACVLAN isolation and more
Here is where some custom configuration might be needed. Read https://github.com/unifi-utilities/unifios-utilities/tree/main/nspawn-container to find out how to setup custom scripts.
Persistence
As far as I verified by rebooting the UDM many times to write this note all configurations were preserved. According to the article on nspawn-containers on the unifies-utilities project although
/etc/systemd
and/data
folders are preserved during firmware upgrades/var/
and/usr/
are not and there goes our packages and symlink. Please follow the steps on that page to setup persistence across firmware upgrades. -
@ cb8f3c8e:c10ec329
2024-06-14 17:53:20WRITTEN BY: ALEX MREMA
Europe awaits for 24 of its best nations to kick off her headline football tournament on the 14th of June. This edition of the tournament promises to showcase some spectacular football filled with style, flair and a uniqueness that is only found in Europe. Surprises, thrillers and fierceness is promised throughout the Euros- not to forget the wonderful and warm German hosts who are promised to provide the vibes in and around the country.On that note, I present my second article on the best games Germany has to offer throughout the group stages!
GROUP D GAME: POLAND VS NETHERLANDS DATE: 16th June 2024 TIME: 14:00 BST
Poland look to prove themselves on the European stage again after a shocking Euro 2020 that saw them finish last in their group with one point and six goals conceded. Coach Michal Probierz will look to the strength of his young and powerful midfield featuring Brighton’s Jakub Moder and Roma’s Nicola Zalewski while the experienced head of Piotr Zielenski is expected to be the headlight to this midfield’s vision. Robert Lewandowski and Wojciech Szczeny are expected to play with an extra chip on their shoulder as this is likely to be their last international tournament for Poland. However, this Dutch side is one lethal side on their day. They can make teams suffer both offensively and defensively plus they can control the midfield appropriately if the backs are not against the walls. Plus the Netherlands put on an impressive run in the 2022 World Cup only to crash out in devastating fashion. Under Ronald Koeman, they have put on some very impressive performances but the only hiccups have come in games against that are “better” than them (in terms of player quality) where they perform poorly. With Netherlands being wishy-washy, can they do enough to beat Poland? We’ll see!
GAME: NETHERLANDS VS FRANCE DATE: 21st June 2024 TIME: 20:00 BST
France are certainly THE side to fear in this tournament. They have everything and they ooze in class with all that they have from the keepers all the way down to the manager. This French side has the potential to win every game in this tournament. Undoubtedly, the return of the engine that is N’golo Kante is vital to this French squad as they look to make their midfield a well-oiled machine with the never-expiring and youthful trio of Rabiot, Tchuoameni and Camavinga partnering working with the experienced Kante. The only problem, is how Deschamps will intergrate Kante in the French in a manner that is smooth and equally provides an immediate click. This is what the Dutch will look to pounce on. Regardless of the result of their first game against Poland, this game is what will make or break their tournament as a loss will be possibly detrimental to their progress while a win will probably make progression ever so likely. Can Koeman’s squad pounce on Les Bleus gamble?
GAME: NETHERLANDS VS AUSTRIA DATE: 25th June 2024 TIME: 17:00 BST
Austria are a side that are able to do their bits. Ralf Ragnick has enforced a hustling and fighting spirit that makes his squad work to the very end-which credits why they have qualified as one of the 24 nations certain to rock Europe this summer. They play progressive,fun,attacking football and are a side that are fearless. The experienced figures of Marko Arnautovic,Michael Gregoristch and Konrad Laimer are key to the leadership of Das Team this summer as the status on main figurehead David Alaba remains unclear as he is out with an injury. Holland’s approach to this game will be interesting. Particularly on how they will view the aerial battle between van Dijk and Gregoristch and how direct Arnautovic is towards the rest of the defence. Les Oranjes also have the capabilites to throw a tactical masterclass that can throw Ragnick and his men overboard. Let’s not forget that this is the final group game, so alll can be to play for...tactics may be thrown out the window and it might just be a full on dog fight between the two nations- what we need!
GROUP E GAME: UKRAINE VS BELGIUM DATE: 26th June 2024 TIME: 17:00
Group E is probably the weakest one in the tournament (alongside Group C).But, that does not take away from some of the talent displayed in the group. As expected to be showcased when the fiery Red Devils of Belgium face off against The Blues and Yellows of Ukraine. This will be Belgium’s first tournament without the legendary Eden Hazard in their camp, however this squad has seen the rise of some extremely talented players namely, Amadou Onana, Charles de Ketelaere and Jeremy Doku that all -coincidently- reside from the English Premier League. Head coach Domenico Tedesco has managed to fit in a blend of youth and experience as Belgium says goodbye to their “first phase” golden generation players and welcome new generation players to renovate the aging squad.On the other side of the dugout, coach Sergiy Rebrov has brought a squad that is extremely pacey,physical,daring and fearless. These aspects are best described in players such as Matviyenko,Zincheko, Mykola Shaparenko,Mudryk,Yaremchuk plus La Liga top scorer and Round of 16 hero in Euro 2020- Artem Dobvyk. This Ukraine squad can bring the heat at any point in the game, even against the run of play- they did not play their best football in Euro 2020 but somehow ended as quarter-finalists, just let it sink in when they start playing their best football...
GROUP F GAME: PORTUGAL VS CZECH REPUBLIC DATE: 18th June 2024 TIME: 20:00 BST
Portugal are a squad that is star-studded throughout and are led by the man, the myth, the legend that is Cristiano Ronaldo who has the same drive to win as when he first landed in this tournament 2004. He is the all-time Euros top scorer and you should expect more goals from within the next four weeks of football. The somewhat fear-factor that strikes opponents is that this is a Portugal squad that can snatch goals from anywhere, even when Ronaldo has a silent game, they can get results from Goncalo Ramos, Bernado Silva, Rafael Leao, Bruno Fernandes... and the list goes on! Truly scary what Seleção das Quinas has in store. But the Lokomotiva has something to say and boy on their day can they make a statement, this squad’s physicality, progressive football and never-say-die attitude is what has gotten them results throughout their journey to the tournament. Players such as Schick,Hlozek,Soucek and Antonin Barak are vital for the Czech Republic and when they are called upon, they deliver- just ask the Dutch.
GAME: CZECH REPUBLIC VS TURKEY DATE: 26th June 2024 TIME: 20:00 BST
Turkey have underperformed in recent tournaments- with group stage exists in Euro 2016 as well as Euro 2020. They do appear to be a better organized squad nowdays and do not settle for less when it comes to working for a positive result. The Crescent Stars are a joyful side that carry an immense amount of pride for the badge on their jerseys and wear their hearts on their sleeves for every game, this passion can be a huge motivating factor as to how far they progress through the tournament. The talent that the Czech Republic possesses however, can kill off the Turkish party. They are side that comes in to take results like the way a bully eould steal candy from a baby, they just simply play their football and move on quietly but equally deadly. Can they be the party poopers against Turkey in their final group game?
-
@ d7607464:421e573a
2024-05-19 02:25:59chezmoi
is a command-line tool that usesgit
to keep your dotfiles in sync across all of your machines. In this guide, I'll show you a simple use case of keeping dotfiles synced between two machines,machine_A
andmachine_B
.chezmoi
has many more features that you can explore beyond this as you become more comfortable with the workflow.Chezmoi Cheatsheet
This is a diagram of the various locations
chezmoi
accesses to manage your dotfiles, as well as the relevant commands to move files around. I'll be referencing the locationshome_A
,chezmoi_A
,home_B
,chezmoi_B
, andrepo
shown in this diagram throughout this guide.Installation
The first step to using
chezmoi
is installing and initializing it. We will be onmachine_A
to start with. Here, I'll be building the binary from the source code.First, make sure you have
golang
installed: https://go.dev/doc/installThen, clone the
chezmoi
repo and usemake
to build it:bash cd /tmp git clone https://github.com/twpayne/chezmoi.git cd chezmoi make build
This will create the
chezmoi
binary, which you can then copy any directory in yourPATH
. Here, I'll move it to~/bin
. If~/bin
doesn't exist, you have to create it and re-source~/.profile
to add it toPATH
.bash mkdir -p ~/bin && source ~/.profile cp chezmoi ~/bin/chezmoi
Now you should be able to run
chezmoi
:```bash
chezmoi --version chezmoi version dev, commit 255846 . . . ```
Initialization
Now that you've installed
chezmoi
, you have to initialize it. This guide uses themain
branch for all git operations, and you can change the default branch for git repositories as follows before you initializechezmoi
:bash git config --global init.defaultBranch main
Then initialize
chezmoi
:bash chezmoi init
This creates the
chezmoi
git repository at~/.local/share/chezmoi
. Based on the diagram above, this is the location corresponding tochezmoi_A
.Adding your first file
Most systems have a
.bashrc
or similar configuration file, so that can be the first dotfile you add tochezmoi
:bash chezmoi add ~/.bashrc
Change into the
chezmoi_A
directory to see the file added tochezmoi
:bash chezmoi cd ls
You'll see
dot_bashrc
listed.chezmoi
renames the dots at the start of all of your dotfiles as'dot_'
so they are not considered hidden. This directory is a git repository as well, but it isn't linked to an online repository yet. You can use a private repository on GitHub or GitLab, or even a self-hosted instance of GitLab. Whatever remote repository you choose to use, follow its instructions to create a new repository calleddotfiles
and add it asorigin
to your localchezmoi
git repository. Here, I'll create a private GitHub repository and link it using ssh. Then you should be able to see it with:```bash
git remote -v origin git@github.com:wisehodl/dotfiles.git (fetch) origin git@github.com:wisehodl/dotfiles.git (push) ```
Now commit your first dotfile and push it to the online repo:
bash git add dot_bashrc git commit -m "Added .bashrc" git push -u origin main
Congratulations! You've successfully backed up your first dotfile using
chezmoi
.chezmoi add
can add individual files as well as directories.Adding directories and ignoring files.
chezmoi
can add whole directories withchezmoi add
but you may want to ignore certain files if they are auto-generated or contain sensitive information. Say you have a directory you want to add tochezmoi
that contains some authentication details as well as actual config files, like so:bash /home/wise/.test/ ├── .auth └── .config
Here, we want to add
.test
tochezmoi
but ignore the.auth
file that contains some login information. First, you'll have to tellchezmoi
to ignore the.auth
file using the.chezmoiignore
file. It works just like.gitignore
if you're familiar with that.bash echo ".test/.auth" >> .chezmoiignore
Now you can add the
.test
directory:```bash
chezmoi add ~/.test chezmoi: warning: ignoring .test/.auth ```
And you'll see that
chezmoi
is purposely ignoring the.auth
file. If you look at yourchezmoi
directory now, you'll see thedot_test
directory added with only the config file.Add these changes to your git repo:
bash git add -A git commit -m "Added .test/" git push
Here, you should start to get a feel for how the workflow for adding files to
chezmoi
typically goes. Before we start modifying files, let's move over tomachine_B
and sync your dotfiles over there.Syncing to another machine
For the sake of simplicity, I'll assume that you are syncing your dotfiles to a fresh install of the same Linux distro as
machine_A
. If you have a lot of conflicting dotfiles betweenmachine_A
andmachine_B
, you'll either need to utilizegit merge
orchezmoi merge
at your discretion and resolve the conflicts. If certain files do need to be different between the machines, then you'll have to utilizechezmoi
's templating capabilities. These situations are beyond the scope of this guide and are left as an exercise for the reader.On
machine_B
follow the steps above to install and initializechezmoi
. Then, add your remote git repository as before, and pull it into thechezmoi
directory:bash git pull origin main
The first time you push from
chezmoi_B
, you may have to rungit push -u origin main
to set the upstream branch and fully set up the remote connection.Now to review, we've synced up 4 out of the 5 locations in the diagram above:
home_A
,chezmoi_A
,repo
, andchezmoi_B
. Syncingchezmoi_B
andhome_B
is where things can get complicated if, like I said before, you have a lot of file conflicts. You can check for differences between the source directory,chezmoi_B
and the destination directory,home_B
usingchezmoi diff
. There is also the concept of a "target state" inchezmoi
, but it only becomes relevant if you use templates. In the context of this guide, the source directory is also the target state.Say, for example, you had some conflicting lines in
~/.bashrc
,chezmoi diff
would show you the changes that would need to occur to make the destination state,~/.bashrc
, match the source state,~/.local/share/chezmoi/dot_bashrc
. There are a few strategies you can use to resolve this conflict:- Create a new branch in
chezmoi_B
, add the file fromhome_B
withchezmoi add
, then perform agit merge
back to main. - Use
chezmoi merge ~/.bashrc
, which will take you into avimdiff
window to manually change the files to match. - Overwrite the source file with the destination file using
chezmoi add ~/.bashrc
- Overwrite the destination file with the source file using
chezmoi apply ~/.bashrc
[DANGER AHEAD]
This guide will go with option 4 for every file in
chezmoi_B
:```bash
Do not do this unless you want to OVERWRITE files in your
home directory.
chezmoi apply ```
chezmoi
will do its best to warn you if you're about to do something dangerous and give you some options on how to proceed.Doing this, the dotfiles in both
machine_A
andmachine_B
are in sync! But you know that your dotfiles will change and grow over time, so we have to talk about strategies for maintaining this sync.Modifying your dotfiles
You have to remain mindful that you're using
chezmoi
to keep your dotfiles in sync, otherwisemachine_A
andmachine_B
can get out of sync pretty easily.chezmoi
has thechezmoi edit
command to edit files in the destination state, but I prefer to edit files in eitherhome_A
orhome_B
and then follow the path in the diagram above from end to end to sync up the whole network.For example, you can change or add a file from
home_B
and do:(home_B) $ chezmoi add ~/path/to/.file
(home_B) $ chezmoi cd
(chezmoi_B) $ git add -A
(chezmoi_B) $ git commit -m "Changed ~/path/to/.file"
(chezmoi_B) $ git push
(home_A) $ chezmoi cd
(chezmoi_A) $ git pull
(chezmoi_A) $ chezmoi apply
And that will propagate the change across your network. You can also use
chezmoi update
fromhome_A
to pull the repo and apply the target state all in one step. The best way to avoid conflicts and headaches is to always push changes you make to you dotfiles as soon as you can and avoid making changes to the same file on two different machines simultaneously, just like with any git repository.Conclusion
If you've followed the steps in this guide, you will have learned a workflow to keep the dotfiles between two Linux machines in sync using
chezmoi
. The diagram at the top of the guide should serve as a useful cheatsheet for the most common tasks you'll perform to maintain your dotfiles.chezmoi
is a very versatile application, and is capable of managing very complex dotfile setups. Their documentation is very technical and daunting to the new user, but it remains a good resource for doing more complex tasks withchezmoi
.- Command Overview: https://www.chezmoi.io/user-guide/command-overview/
- Reference: https://www.chezmoi.io/reference/
All the best!
- WiseHODL
- Create a new branch in
-
@ 46fcbe30:6bd8ce4d
2024-05-07 16:18:50Opinion about Bitcoin Core (desktop)
Bitcoin Core is the most prominent continuation of Satoshi Nakamoto's original work. Contributors to this project are pioneers in reproducible builds and it's the software with most attestations to its reproducibility and with probably thousands of academics looking at the code and how it's being compiled, this software sets the benchmark for transparency in self custody.
It started out being the Bitcoin full node, wallet, miner and even parts for a market place could be found in the early code base. Today, it is being stripped of the mining feature and even the wallet feature might get removed at some point.
For the average user, Bitcoin core is not a convenient wallet but arguably it's the only software that can really make sure you are receiving Bitcoin on the Bitcoin blockchain so almost all wallets talk to a server running this software one way or another.
WalletScrutiny #nostrOpinion
-
@ f3df9bc0:a95119eb
2024-06-15 01:31:23 -
@ 0b963191:fc5e7ffd
2024-05-05 23:36:45Chef's notes
Can of course substitute in beef for the lamb.
In terms of canned peas, always prefer La Sueur
Details
- ⏲️ Prep time: 30 min
- 🍳 Cook time: 1 hour
- 🍽️ Servings: 4
Ingredients
- Potatoes:
- 1 ½ pounds potatoes (Russet)
- ½ cup half-and-half
- 2 ounces unsalted butter
- ¾ teaspoon kosher salt
- ¼ teaspoon black pepper
- 1 egg yolk
- Meat Filling:
- 2 tablespoons canola oil
- 1 cup chopped white onion
- 3 carrots, peeled and diced
- 1 ½ pounds ground lamb
- 1 teaspoon kosher salt
- ½ teaspoon black pepper
- 3 tablespoons flour
- 3-4 teaspoons tomato paste
- 1 cup chicken broth
- 3 teaspoons Worcestershire sauce
- 2-3 teaspoons chopped rosemary leaves (fresh)
- 1-2 teaspoons chopped thyme leaves (fresh)
- ¾ cup corn kernels
- ¾ cup peas
Directions
- Potatoes:
- Peel and dice potatoes.
- Place in a pot and cover in cold water.
- Bring to a boil.
- Lower fire to simmer and cook for 15-20 minutes.
- Heat butter and half-and-half for 30-40 seconds in the microwave.
- Drain potatoes and put back into the pot.
- Mash potatoes and add half-and-half, butter, salt, pepper.
- Continue mashing until smooth and stir in yolk until combined.
- Preheat the oven to 400 degrees.
- Filling:
- Heat canola oil in a 10-12 inch pan over high heat.
- Add onions and carrots and saute over medium-high heat for 4-5 minutes.
- Add garlic and combine for 30 seconds.
- Add Lamb, salt, and pepper and cook until browned.
- Sprinkle flour and stir to coat lamb and cook for 1-2 minutes.
- Add Tomato paste, chicken broth, Worcestershire sauce, rosemary, thyme. Stir and bring to a boil.
- Reduce heat to low, cover, and simmer for 12-15 minutes while sauce thickens.
- Oven:
- Add meat filling to baking dish.
- Add peas and corn and stir in evenly
- Spread mashed potatoes using a rubber spatula. start at the corners and make sure to seal around the edges.
- Bake for 25 minutes
- Remove from the oven and let sit for 15-20 minutes.
-
@ 81870f53:29bef6a6
2024-06-14 21:40:14アナリストらは、2つの主要な利点の低下により米ドルの人気が抑制される可能性があると考えている。
高金利を長期間維持するという連邦準備理事会の政策誘導により、米国と他国の金利差は引き続き高水準にあり、そのため米ドルは週間で最長の連続上昇となる可能性がある。しかし、外国為替トレーダーらは、米ドルの金利優位性は長くは続かないと予想している。
商品先物取引委員会(CFTC)は金曜日、火曜日(6月11日)時点の最新データを発表し、連邦準備制度理事会の政策会合と主要なCPIインフレ統計が6月初旬に発表される前に投機筋が引き続きこの地合いを維持しているかどうかを明らかにする予定である。 、投機家は6週間連続で米ドルへのロングベットを大幅に減らした。
トレーダーらは米ドルに対する強気の賭けを減らしている。
FRB当局者らは木曜日、今年の利下げは1回のみであることを示唆し、以前に発表されたCPI報告は政策緩和の前に2%の目標に近いインフレを示す証拠が必要であると述べた。このため、トレーダーらは9月の連邦準備理事会による最も早い利下げへの賭けを強めている。
市場の混乱にもかかわらず、ブルームバーグ米ドル指数は4週連続の上昇の勢いを維持しており、2月以来最長の上昇期間となっており、取引価格はこれまでの2大中央銀行である欧州中央銀行の今年最高値をわずかに下回っている。カナダ銀行は率先して金利引き下げを行い、米ドルをさらに支援しました。
JPモルガン・アセット・マネジメントのアナリストらは、2024年の中期投資見通しの中で、ドルは連邦準備理事会(FRB)が他の中央銀行よりも遅い利下げに踏み切る見通しから引き続き恩恵を受けるが、「近いうちにピークに達する可能性が高い」と述べた。
「米国経済に対する楽観論と世界の他の地域に対する悲観論のピークはすでに過ぎているかもしれない。金利差の安定と成長格差の縮小により米ドルの上昇が抑制され、ドル高は維持されるかもしれないが、より強くなるわけではない」と彼らは書いている。 。
非商業トレーダー(資産管理会社、ヘッジファンド、その他の投機的市場参加者を含む)は、米ドルに対する現在のロングポジションが4月の最近のピーク以来、3分の2以上減少している。米ドルは約106億ドル相当で、3月中旬以来の低水準となっている。
ノバスコシア銀行の外国為替戦略ディレクター、ショーン・オズボーン氏は、「米ドルの金利優位性はピークに達している」と述べ、これにより米ドルへの熱意が弱まるはずだが、実際の影響には「連邦準備理事会の金融に対する市場の信頼が必要だ」と述べた。政策緩和だ。」
この記事がお役に立てば幸いです。 もしそうなら、チップをおくるどうぞ https://getalby.com/p/bitcap
日本のホスティングサービス Linux、Windowsクラウドホスティング データストレージ JPStream を使用して NOSTR リレーを作成する ホスティング サービスの料金をSatsで支払うことができます https://jpstream.net
-
@ c73818cc:ccd5c890
2024-06-14 18:42:54🔞 Il 9 giugno 2024 segna una svolta storica nella finanza globale: l'Arabia Saudita ha deciso di non rinnovare il suo accordo cinquantennale sul petrodollaro con gli Stati Uniti. Questo accordo, firmato per la prima volta l'8 giugno 1974, ha giocato un ruolo cruciale nel consolidare la posizione del dollaro USA come valuta dominante nelle transazioni petrolifere globali.
🥰 Fine di un'era:
🔞 La decisione di non rinnovare l'accordo consente all'Arabia Saudita di vendere petrolio e altri beni in valute diverse dal dollaro USA, come lo yuan cinese, l'euro, lo yen e persino valute digitali come Bitcoin. Questo cambiamento potrebbe ridurre significativamente la domanda globale di dollari, con potenziali ripercussioni sull'economia americana e sull'equilibrio delle valute globali.
🥰 Contesto storico:
🔞 L'accordo del 1974 creò due gruppi di lavoro: uno per la cooperazione economica e l'altro per le esigenze militari dell'Arabia Saudita. All'epoca, l'accordo fu visto come un modo per rafforzare i legami tra i due paesi e garantire un flusso stabile di petrolio. Ora, l'Arabia Saudita è libera di esplorare nuove alleanze e modalità di scambio.
🥰 Implicazioni geopolitiche:
⏰ BRICS: L'Arabia Saudita ha partecipato recentemente a un incontro dei ministri degli Esteri dei BRICS a Nizhny Novgorod, in Russia. Questo gruppo, che include Brasile, Russia, India, Cina e Sudafrica, potrebbe beneficiare enormemente dall'adesione del regno saudita, soprattutto per la sua influenza nel settore petrolifero. ⏰ Nuove alleanze: Oltre ai BRICS, l'Arabia Saudita sta esplorando cooperazioni con Thailandia e Bielorussia, entrambe interessate ad aderire al blocco BRICS. La diversificazione delle sue alleanze economiche potrebbe rafforzare ulteriormente la posizione del regno sulla scena internazionale.
🥰 Accordi commerciali innovativi:
🔞 I BRICS hanno annunciato un accordo con diversi paesi extra-UE per regolare le transazioni commerciali nelle rispettive valute nazionali, aggirando l'uso del dollaro. Questo accordo include paesi come Thailandia, Laos, Sri Lanka, Kazakistan, Venezuela e Bolivia. Un sistema di pagamento indipendente, attualmente in fase di sviluppo, dovrebbe facilitare queste transazioni.
🥰 Prospettive future:
🔞 L'uscita dell'Arabia Saudita dall'accordo sul petrodollaro rappresenta una sfida significativa per il predominio del dollaro USA. La transizione verso un sistema multi-valuta potrebbe portare a una maggiore volatilità nei mercati valutari, ma anche a nuove opportunità per valute alternative e criptovalute.
🥰 Conclusioni:
🔞 La decisione dell'Arabia Saudita di non rinnovare l'accordo sul petrodollaro con gli Stati Uniti è un segnale chiaro di un cambiamento nell'equilibrio economico globale. Con l'espansione delle sue alleanze e la partecipazione a nuovi accordi commerciali, il regno saudita sta ridefinendo la sua posizione nel mercato globale del petrolio e delle valute. Per gli analisti e gli investitori, sarà essenziale monitorare attentamente questi sviluppi e le loro implicazioni a lungo termine.
Unisciti al nostro gruppo Telegram: https://t.me/Bitcoin_Report_Italia
BitcoinReportItalia #Arabia #BRICS #Petrodollaro #StatiUniti #Criptovalute #Accordo #Dollaro #USA #Yuan #Euro #Yen #Saudita #Russia #Cina #Crypto #Bitcoin
-
@ b2d670de:907f9d4a
2024-04-29 09:05:25This is a list of nostr clients exposed as onion services. The list is currently actively maintained on GitHub. Contributions is always appreciated!
| Client name | Onion URL | Source code URL | Admin | Description | | --- | --- | --- | --- | --- | | Snort | http://agzj5a4be3kgp6yurijk4q7pm2yh4a5nphdg4zozk365yirf7ahuctyd.onion | https://git.v0l.io/Kieran/snort | njump | N/A | | Nostrudel | http://a2zmtsslt7g7v5shssufp4uuh7wvr7betxglxf4fbtcxpejrvr7qmwid.onion | https://github.com/hzrd149/nostrudel | njump | N/A | | Nostrudel Next | http://pzfw4uteha62iwkzm3lycabk4pbtcr67cg5ymp5i3xwrpt3t24m6tzad.onion | https://github.com/hzrd149/nostrudel | njump | Nostrudel Next is the beta version of Nostrudel |
-
@ 3bf0c63f:aefa459d
2024-06-13 15:40:18Why relay hints are important
Recently Coracle has removed support for following relay hints in Nostr event references.
Supposedly Coracle is now relying only on public key hints and
kind:10002
events to determine where to fetch events from a user. That is a catastrophic idea that destroys much of Nostr's flexibility for no gain at all.- Someone makes a post inside a community (either a NIP-29 community or a NIP-87 community) and others want to refer to that post in discussions in the external Nostr world of
kind:1
s -- now that cannot work because the person who created the post doesn't have the relays specific to those communities in their outbox list; - There is a discussion happening in a niche relay, for example, a relay that can only be accessed by the participants of a conference for the duration of that conference -- since that relay is not in anyone's public outbox list, it's impossible for anyone outside of the conference to ever refer to these events;
- Some big public relays, say, relay.damus.io, decide to nuke their databases or periodically delete old events, a user keeps using that big relay as their outbox because it is fast and reliable, but chooses to archive their old events in a dedicated archival relay, say, cellar.nostr.wine, while prudently not including that in their outbox list because that would make no sense -- now it is impossible for anyone to refer to old notes from this user even though they are publicly accessible in cellar.nostr.wine;
- There are topical relays that curate content relating to niche (non-microblogging) topics, say, cooking recipes, and users choose to publish their recipes to these relays only -- but now they can't refer to these relays in the external Nostr world of
kind:1
s because these topical relays are not in their outbox lists. - Suppose a user wants to maintain two different identities under the same keypair, say, one identity only talks about soccer in English, while the other only talks about art history in French, and the user very prudently keeps two different
kind:10002
events in two different sets of "indexer" relays (or does it in some better way of announcing different relay sets) -- now one of this user's audiences cannot ever see notes created by him with their other persona, one half of the content of this user will be inacessible to the other half and vice-versa. - If for any reason a relay does not want to accept events of a certain kind a user may publish to other relays, and it would all work fine if the user referenced that externally-published event from a normal event, but now that externally-published event is not reachable because the external relay is not in the user's outbox list.
- If someone, say, Alex Jones, is hard-banned everywhere and cannot event broadcast
kind:10002
events to any of the commonly used index relays, that person will now appear as banned in most clients: in an ideal world in which clients followednprofile
and other relay hints Alex Jones could still live a normal Nostr life: he would print business cards with hisnprofile
instead of annpub
and clients would immediately know from what relay to fetch his posts. When other users shared his posts or replied to it, they would include a relay hint to his personal relay and others would be able to see and then start following him on that relay directly -- now Alex Jones's events cannot be read by anyone that doesn't already know his relay.
- Someone makes a post inside a community (either a NIP-29 community or a NIP-87 community) and others want to refer to that post in discussions in the external Nostr world of
-
@ dd664d5e:5633d319
2024-04-23 06:04:28Why GitCitadel is primarily self-funded
This week has been full of discussion about the various pros and cons of what I've previously described as the "patronage funding model", including a formalized version called "grants":
This is the current common business model. A creator (artist, developer, writer, etc.) receives grants or donations that are more or less attached to conditions. -- The Zap Economy
We at GitCitadel have been questioned repeatedly, as to why we have not applied for a grant, when we are putting so much time and effort into the Nostr ecosystem. I would, therefore, like to explain the logic we have used to make this decision:
We are a package deal
We aren't merely a product team, we're a project team. That means that we aren't building a product, we're building an entire line (or suite) of products, and the corporate and technical infrastructure to support them.
Those products will be marketed under our own brand, built upon our own tech stack, and managed by our own team. We're used to doing this sort of thing for our various employers, so we haven't seen much benefit in looking outside of our team to acquire such things. Applying for formal grants would undermine this strategy, as we would be expected to tie into the grant-giver's own brand, stack, and team.
We have external income sources
We have made the point, to anyone interested in joining, that our project cannot and will not provide a source of income large enough to replace anyone's current source. At least, not yet. We are receiving donations and will eventually have a pricing model, but this project is our labor of love, not a get-rich-quick scheme. More a go-broke-slowly scheme, if anything.
We see this as a feature, rather than a bug, as it means our personal financial well-being is not immediately tied to our project work, and is therefore more secure, stable, and independent. This allows us the ability to ruminate, take time discussing architecture, and make more grandiose plans. It also allows us to discuss funding models, amongst ourselves or with a wider audience, while remaining calm.
Not everyone is in the same financial position and not everyone wants to split their attention, in such a manner, and we respect that. We also respect the right of every project member to decide differently, for themselves, and to apply for grants in their own name.
We're enjoying "L'expérience FOSS"
This is our first, major, open-source, software project. This is our chance to do something different, to be edgy, to build something for ourselves, to try out new technologies and strategies, to found a company and design a brand, to tinker and scheme... To boldly go where no team has gone before!
But, seriously. We're having fun. We're friends. We're enjoying the ride. We wouldn't enjoy the ride as much, if we were driving someone else's car.
We want to prove that it can be done
One of the things we found disturbing about the Nostr ecosystem is the pervasive pressure individual developers are under to apply for grants and labor full-time on Nostr products. It can feel quite rebellious, to simply tinker on evenings, weekends, or holidays.
It isn't rebellious.
It is a perfectly normal and acceptable way to contribute to a growing technological ecosystem, and we want to help re-normalize it. The emotional pressure to deliver new features at a rapid pace is exciting, but onerous, can lead to developers burning out and eventually moving on, and is the main cause of the frequent low quality of the existing software and the plethora of abandoned repos. This is the landscape that grants sometimes build.
We are here to show that "steady, stable, secure, supported, sturdy" sounds dull and a bit slow, but it can also be a winning development style, if the team chooses it deliberately and plans accordingly and cultivates a team environment that makes "code and chill together" a long-term motivator. We think the Nostr ecosystem is ready to accept a team with this style, and it's a style that advanced grants simply aren't designed to support because grant-givers have to account for the money spent within a reasonable time.
We want to support independent funding models
As with all things, talk is cheap. We are all persons eager to establish independent funding models because we want Nostr to help create a free market of sovereign individuals, at the global scale. We think this is a particular "good work" that Nostr is in a prime position to define, but it won't happen, if nobody actually does it, or if only a few do it and and are perceived as greedy oddballs. There needs be a lot of people doing it, including large, influential teams.
The strongest motivation to develop such models is the profit motive, and that is inevitably weakened by grant-lethargy. One has to take risks to become a change agent, so we have put ourselves on a diet, to get our creative financial juices flowing.
We have decided to stay hungry. https://image.nostr.build/28ddca2ef029e8be27e351867f37e457e2070e005f5588f88f486208709ee00d.jpg
-
@ b60c3e76:c9d0f46e
2024-05-27 13:50:24These inventions are straight out of science fiction.
1. Volkswagen RooBadge
Volkswagen has developed a clever VW badge that emits sounds to deter kangaroos from roads, thereby reducing collisions. With approximately 20,000 accidents involving these animals each year.
🔗 youtu.be/W9klRlKoEQk ← Full Video
https://video.nostr.build/219d3e2a7a3b21e5d485c7f2576e8b42fbbef661f35582e02090e03a2263cf92.mp4
2. Food Delivery Robot (Bullet Train)
A robot designed like a fast train delivers food efficiently, allowing customer customization. Created to address waiter shortages, it offers a low-cost delivery solution.
https://video.nostr.build/3a174aef12b2adf04470b43ffde99d287a4d3d695ebcde6d67f1b5efb20a0647.mp4
3. Astribot S1
China showcases the Astrobot S1, a fully autonomous humanoid robot, demonstrating remarkable speed and fluidity in completing tasks.
https://video.nostr.build/6475d93284a59a0853443337b42b1fbaa361612e5d7b94d50c49442735039344.mp4
4. Solskin
This new technology is highly efficient at harnessing the power of solar energy while also preventing rooms from overheating.
https://video.nostr.build/773a588b33f12da461c6b3867f31035c434f7efbd606d057131dee27c22ab6cb.mp4
5. Running Adwear
Imagine athletic clothing that doubles as an advertising platform, displaying dynamic ads while you run. You can even make some extra cash while generating more income just by running! 😅
https://video.nostr.build/8528ef90fbac3ef73fe038d0c892098a372dbf5608b894386ac3663b2d325b1d.mp4
6. Opula
World's first auto-adjustable coffee table featuring an AMD Ryzen 7 8845HS Mini-PC and a 27-inch HD screen. The table adjusts up to 75 degrees for optimal viewing, combining work and entertainment seamlessly - the future of smart home furniture.
https://video.nostr.build/acc6e34a8e2888a3d84a3a34e74f603bd6f76b6d8f329dc78c5598c104a4b86a.mp4
7. Ring Bot
This device is currently just a prototype. Hopefully, in the future, it will provide us with many benefits through its technology.
https://video.nostr.build/149aca79c79b59f2a5dfdff02b6d7935d7e113727f1bad9f0b81fdc1d0f8178e.mp4
8. Pininfarina Wind Tunnel
The Pininfarina Wind Tunnel sets new standards in vehicle performance and comfort through advanced aerodynamic testing.
https://video.nostr.build/7d7a2fb14c6c2ea41cdda5a939ee54ad83f85d83e4026913e023ded2c68583b8.mp4
I hope you've found this article helpful. What do you think?
-
@ 8ea48526:e6720a43
2024-04-17 14:06:11Recently there has been discussion on the socials about supporting open source developers, specifically those who work on Bitcoin and Nostr. There is a small-ish camp of people who think that Bitcoin should remain as is…it’s perfect, don’t mess with a good thing. Many others think – correctly, in my opinion – that Bitcoin needs to be maintained and even enhanced. As long as the changes make Bitcoin better money, we should evaluate, go slow, and keep things simple.
Who will maintain Bitcoin and other open source projects? Will devs do it out of the goodness of their heart? Builders gotta eat; food ain’t free. A handful of institutions, both non-profit and businesses, provide grants and long term support to developers. This is great and I hope that continues. However, there is more that we can do. There is more that you can do.
Zappy 21st
I propose we make the 21st day of every month the (un)official ”Zap a Builder Day”. It’s simple. On day 21 in the current month, find a developer and zap them sats.
Created in the spirit of #v4v and the #grownostr social experiment, I’d love to see people make this part of their monthly routine. It’s common for certain days of the month to have meaning. The 1st day marks the start of a new month. The 5th day is a common day when mortgage payments are due. In the United States, on the 15th day of April taxes are due. So now there is the 21st day, the day you send some value to devs.
Who are you gonna zap?
Any open source developer. Start simple; don't overthink this. If you're using a Nostr client that you love, go find one of the contributors and zap them. If you use Bitcoin or Lightning regularly, find a Bitcoin or Lightning dev. There are many other great freedom tech tools, like wallets, sovereign computing apps, and privacy tools that have developers behind them. Zap a developer. (I say developer, but I really mean "contributor". Remember the designers, product, support, and project people who also contribute.)
I'm intentionally not giving names of developers here because I don't want to favor one over the other. Every open source developer is important to different people based on the tools they use. So go zap the people in your realm.
I'm only publishing this on Nostr, but I'm happy if the idea spreads beyond that. Nostr is the perfect place because you can so easily find a core dev and zap them. No need to track down their website hoping to find a wallet address or request a Lightning invoice.
Join the Zaps
While everyone is excited about block 840000, halvings come and halvings go. But the 21st is always here for you. Every month, reliably, quietly doing its thing. Just like those open source devs you rely on so much. They’re here every month, reliably, quietly doing their thing. Let’s show them some love.
This April 21st find a dev and zap them. If you’d like, add a message telling them how awesome their work is and tag it with #Zappy21st. Let’s flood the feeds with #Zappy21st messages and surface great open source developers to others. Next month on the 21st, we’ll do it again.
🤘
-
@ 5d4b6c8d:8a1c1ee3
2024-06-14 13:55:09Slightly tweaked formatting today, basically an update from @0xbitcoiner.
@k00b mentioned that he wants to turn this content into a permanent feature of the site. It would be seen on the search page and updated automatically everyday.
Yesterday's edition: https://stacker.news/items/572665/r/Undisciplined
June 14th, 2023 📅
📝
TOP POST
Damus may be pulled from Apple's app store
Just now from Damus developer Will:
Damus will be removed from the app store in 14 days, apple says zaps are not allowed on their platform because they could be used by content creators to sell digital content. This is right before I’m about to give my talk at the oslo freedom forum on how decentralized social networks with lightning integration are bringing financial freedom to the masses... pretty sus… 😕
8476 sats \ 64 comments \ @OriginalSize
💬
TOP COMMENT
https://stacker.news/items/192432/r/Undisciplined?commentId=192589
I've always thought building native iOS apps only was foolish for this reason. You're completely locked in to their platform. This is why we built Mutiny as a PWA.
*1445 sats \ 9 replies \ @TonyGiorgio *
🏆
TOP STACKER
@nerd2ninja
4876 stacked \ 6734 spent \ 1 post \ 31 comments \ 0 referrals
https://imgprxy.stacker.news/fsFoWlgwKYsk5mxx2ijgqU8fg04I_2zA_D28t_grR74/rs:fit:960:540/aHR0cHM6Ly9tLnN0YWNrZXIubmV3cy8yMzc5Ng
June 14th, 2022 📅
📝
TOP POST
I'm Max Webster, founder of Hivemind Ventures, a Lightning Network seed fund - AMA!
Hi, it's Max (@maxawebster), founder of Hivemind Ventures, a seed fund investing in L2 & L3 Bitcoin startups building the future of finance, communication, and energy. We're particularly focused on the Lightning Network and are fortunate to have partnered with many of the best companies in the space including: Lightning Labs, River, Galoy, Breez, Stacker News, Lightspark, Ibex Mercado, Pouch, Neutronpay, Bitnob, Lightning Network Plus, Satoshi Energy, and many more.
27.9k sats \ 48 comments \ @MaxAWebster
💬
TOP COMMENT
https://stacker.news/items/36151/r/Undisciplined?commentId=36153
Basically, its gonna suck.
274 sats \ 3 replies \ @nerd2ninja
Such a good comment it was on top two day in row!
🏆
TOP STACKER
@k00b
1724 stacked \ 31k spent \ 7 posts \ 18 comments \ 0 referrals
https://imgprxy.stacker.news/fsFoWlgwKYsk5mxx2ijgqU8fg04I_2zA_D28t_grR74/rs:fit:960:540/aHR0cHM6Ly9tLnN0YWNrZXIubmV3cy8yMzc5Ng
June 14th, 2021 📅
📝
TOP POST
Link post: https://www.politico.com/news/2021/06/12/fed-remake-us-dollar-493548
3 sats \ 2 comments \ @satoshisuncle
💬
TOP COMMENT
https://stacker.news/items/39/r/Undisciplined?commentId=43
Testing
1 sat \ 1 reply \ @guacjoin
🏆
TOP STACKER
"EMPTY"
In lieu of a 2021 top stacker, those sats forwarded to 0xbitcoiner for helping with these posts.
-
-
@ f977c464:32fcbe00
2024-04-15 20:30:053724
Dürbününü yazı masasının çekmecesine koydu. O adamın bakışlarında bir şey vardı, tüylerini ürperten bir aşinalık.
Sağ tarafa kavislenen toprak yol, şehir merkezindeki idam platformuna doğru uzanırdı. On, on beş adım aralıkla, telefon ve radyo tellerini taşıyan, aynı zamanda geceleri yağ fenerlerinin asıldığı direkleri geçerdiniz. At arabalarının kaldırdığı toz ve yaydığı koku gözlerinizi yaşartırdı.
Ve darağacının önüne geldiğinizde, arkanızda bıraktığınız direklerin ne kadar güçsüz, acınası olduğu, öncesinde defalarca fark etmediyseniz bile, tam o anda, yüreğinize otururdu. Platformun üstünden gökyüzünü tehdit eden, ölüme mahkûm edilenleri kınayan gövdesi ve aniden yere eğdiği, acıyla çarpılmış boynuyla kaba tahtadan bir ucube!
Oysaki geçip geldiğiniz direklerin aksine, yanınızda uzanan, çoğunluğu iki katlı evler de tahtadan yapılmıştı ve çatıların, yağmur oluklarının, kapı çerçevelerinin, pencere kapaklarının üstündeki doğa tasviri süslemeleriyle öyle kibarlardı ki...
Dikkat etmemiş olacaksınız ama aralarında, soğuk elleriyle sizi yere bastıran, tasvirlerin yerini görkemli hayvanların -kartalların, aslanların, köpeklerin- aldığı taş evler sıralanırdı. Darağacının bedeni diğer evlerdense, ruhu kesinlikle bunlardan geliyordu.
Uzaktan kuş sesleri duyuluyordu. Bülbül. Buraya ait olmayan, dalgınlığını tamamlayan, kafese kapatılmış bir ses.
Çalışma masasının üzerine, pencereye doğru abandı. Artık ezberlediği bu hac yolculuğuna ihtiyacı yoktu. Evinden olanları az buçuk seçebiliyordu ve zaten görmeye katlanabileceğini görmüştü.
Adamın boynuna ilmeği çoktan geçirmişlerdi. Otuzlu yaşlarının başında gösteriyordu. Teni güneşten sertleşmişti. Çatlaklar gözlerinin yanından elmacık kemiklerine uzanıyordu. Saçı ve sakalı uzun, mat siyahtı.
Neredeyse kimse izlemiyordu. Sadece tek tük, aralarına mesafe koymuş ilgisiz kişiler...
Radyo her zamanki gibi celladın konuşmasını canlı olarak yayınlıyordu.
“...lece günahlarımızdan arınmış olacağız! Doğaya küfür olan tüm bu ucubeler, düzensizlikler...”
Bir kişiyi kurtarmak için ölen onlarca insan... Attıkları çığlıklar bilinçaltının derinliklerinde hafifçe kıvrandı.
İdamların başladığı o gün...
Erken saatlerde ortaya çıkıveren genci tanımıyorlardı. İnsanlara garip sorular sormuş ve kısa süre sonra ortadan kaybolmuştu. Öğlen vakti kucağındaki paketle geri dönmüştü.
“...lumumuz için büyük tehdit teşkil etmektedirler. Şüphesiz bundan birkaç yıl sonra yapacağı hareketleriyle sadece öldüreceği insanların değil, toplumun çökü...”
Darağacını hiç değiştirmediler. Yoksa bu da hafızasındaki bulanıklığın çarpıttığı anılardan mıydı? Hatırlamaya her çalıştığında başı ağrıyordu.
Gence üzülmüş ve apar topar alınan karar karşısında dehşete düşmüştü. Diğerlerinin arasına karışmak, sesini çıkarmak, hiç değilse bunların neden olduğunu öğrenmek istemişti.
“...esin iyiliğini gözetmek zorundayız. Bunu yapabilecek gücümüzün kalmış olduğu için şükretmeliyiz. Omzumuzdaki bu gö...”
Vazgeçmişti. Korkmuştu. Ellerini titreten ilkel dürtüden değil, uzun zamandır üzerinde çalıştığı romanının bittiğini görememe ihtimalinden. “Ertesi gün,” demişti, “ertesi gün orada olacağım.”
Odanın büyük bölümünü işgal eden radyoyu kapattı. İnsan boyu ve genişliğinde, üzerindeki kontrol düğmeleri dışında cilalı ahşaptandı. Güzel olsa da pili hızlı tükeniyordu. Yenisini alması gerekecekti.
Banyoya gitti. Evin her yerinde az eşya bulundurmayı severdi: içi temiz su dolu kova, küvet olarak kullandığı büyük varil ve ayna.
Şehirdeki diğerleri gibi hafif esmer tenli, kahverengiye çalan koyu saçlı ve gözlüydü. Onların aksine gözlerinin içinde hâlâ heyecan ateşi yanıyordu. Saçları bile daha canlıydı sanki. Ve ne kısa ne uzun ne yakışıklı ne çirkin... Olması gereken neyse o. Yüzünü yıkadı, gülümseyip çalışma odasına geri döndü.
Yeniden kâğıtlarının karşısına geçi. Romanını nihayet bitiriyordu. Son cümlelerini yazdı.
Her şeye geç kalmasına değmişti.
9386
Dürbününü pencerenin iç denizliğine, yaslandığı yerin kenarına bıraktı. O adamın bakışlarında açıklayamadığı bir şey vardı. Tüylerini ürperten bir aşinalık.
Adamın boynuna ilmeği çoktan geçirmişlerdi. Orta yaşlarındaydı. Beyazlaşmaya, griye dönmeye yeni yeni başlamış saçı ve sakalı, rengi atmış kıyafetleriyle oldukça hırpaniydi.
Kimdi o? Tanıyordu sanki..
Mutlaka yakından bakmalıydı.
“...felaketin eşiğinden döndüğümüz günün üzerinden uzun zaman geçmedi. Unutmayın! Unutmanız on...”
Radyoyu kapattı. Pili hızlı bitiyordu. Ne zaman değiştirmişti? Baş ağrısı geri geliyordu.
Merdivenlerden indi. En az dört basamağı gıcırdamıştı. Yenilenmelerinin zamanı geliyordu, temizlenmelerinin de. Parmak kalınlığında toz! Eski ve yeni ayak izleri üst üste binmişti.
Kulaklarındaki ince çınlama, ensesindeki ter... İçinden yükselip göğsünü ittiren, dengesini bozup neredeyse düşercesine aşağıya inmesine neden olan panik...
Holü geçerken diğer odalara kısaca göz attı. Hepsinin durumu aynıydı. Onu asıl şaşırtansa yatak odası oldu. Her gün uyuduğu yatağın, yanındaki bazanın, kirli çamaşır sepetinin ve etejerin üzeri... Nasıl fark etmemişti tüm bunları? Peki elbiselerinin böyle eskidiğini?
Dokunduğu elinde kalıyor veya kapalı kalmışlık kokusu yüzünden midesini bulandırıyordu. Eline geçen paçavraları apar topar giydi. Dokuması incelmiş bol beyaz keten gömleği, rengi griye yaklaşmış pantolonu -önceden? Belki siyah-, her tarafı çatlamış ve dikişleri atmış uzun deri çizmesi.
Neler oluyor neler oluyor neler oluyor neler oluyor...
Sokağa çıktı ve hava soluk borusunu temizlerken gözleri yaşardı. Hayır, kendimi kaptırmış olmalıyım. Kesin zamanın ucunu kaçırdım. Ev dün böyle değildi. Hayır hayır hayır hayır hayır...
Bulanık görüyordu ama hiç değilse burası normaldi.
İdam platformu şehir merkezindeydi. Oraya koştu.
Buranın o eğlenceli, panayır havasından eser kalmamıştı elbette. Kahveye girip çıkanlar, yan sokaktaki pazara gidip gelenler... Kimsenin olup bitenlere ilgisi yoktu. Dükkânların yarısı kapalıydı zaten. İnsanların burada oyalanmak için gittikçe daha az sebebi oluyordu.
“...lediğimiz kurtuluşumuz.”
Cellat, onun tam karşısında durduğunu görünce sustu. Herkes merakla onlara döndü.
Ve işte o anda, darağacındaki adamın bağırmasıyla celladın koşup kolu çekmesi ve zemindeki kapağı açması, infazı tamamlaması bir oldu.
“Koñrul! Onu...”
Çığlıkları ancak onu eve, yatağına taşıdıklarında biraz dindi. Sayıklamaya devam ediyordu: “Romanım romanım romanım romanım..."
Sakinleşmesi için yukarıdan kâğıtlarını ve kalemini getirdiler. Son cümlesini yazdı. Yarını göremeyecekti.
14796
Masanın üzerinde, koyduğu yerde durmayan, yuvarlanan ve düşüp merceği kırılan dürbünü fark etmedi. O adamın bakışlarında açıklayamadığı bir şey vardı. Tüylerini ürperten bir aşinalık.
Ve yine aynı gün, diğerlerinin aynı... İnsanlar bile gün geçtikçe birbirine benziyordu.
Adamın boynuna ilmeği çoktan geçirmişlerdi. Yaşlı sayılırdı veya yaşlanmaya başlıyordu. Saçı ve sakalı beyaz ama gösterdiği yaşa rağmen hâlâ gürdü. Istırap çekmenin, büyük yük taşımanın bezginliği her yerinden hissediliyordu.
“...rine inmemiz gerek. Bu insan müsveddeleri toplumumuz için büyük tehdit...”
Evet... evet. Demek bu adam da kimsenin anlamadığı haltlar yemek üzereydi.
Rahatı kaçanlar olacaktı, belki ölenler.
Adamı gerçekten tanıyor olabilir miydi?
Kendini aşırı zorlamıştı. Radyoyu kapatıp banyoya gitti. Yeni pili ne zaman takmıştı?
Aynada kendine baktı. Geceleri uyuyup uyumadığını bile bilmiyordu. Gözleri iyice yuvalarına kaçmış, etrafı kararırken akları sararmış, zayıf ve soluk, yüzünün üstüne bırakılıp unutulmuş çöplerden farksızdı. Saçlarını düzeltmeye çalıştı, her hareketiyle onlarca saç teli kopunca vazgeçti. Renkleri solmuştu.
Şehirde yiyecek kalmamıştı. Her gün stoklar azalıyordu. Tarlalardaki olgunlaşmamış meyve sebzelere düşmüşlerdi. Tüccarlar niye gelmiyordu ki? Diğer şehirlerde de mi durum kötüydü?
Kafasından aşağı su döküp geri döndü. Kâğıtlarını önüne çekti. Romanını bitirmeliydi, açlıktan ölmeden veya idam edilen sonraki kişi olmadan. Son cümlelerini yazdı:
“Dünya yine ölürken ve her şey baştan başlarken gidebileceği bir yer kalmamıştı. Eski çağların roketlerini düşündü. Gerçekten başka gezegenler var mıydı? O zamanlarda yaşasaydı Güneş’e giderdi! Şimdi hareket etmek için duracaktı. Sonraki güne kadar.”
20251
Dürbününü kapıdan çıkarken tuvalet kovasının içine attı. Yine bir idam. Saçları dökülüyordu. Alnının iki yanı geriye doğru açılmış, sakallarıyla birleşip yekpare olan tellerin arasından kafa derisi seçilebiliyordu.
Ne ilgi çekici... Bıraksalar kendisi ölecekti zaten. Pazara gidip ne bulabileceğine bakmayı tercih ederdi.
İnsanlar ayağını sürüyerek yürüyordu. Celladın konuşması dışında çıt çıkaran yoktu. Ne kuş ötüşü veya köpek havlaması ne çocuk gülüşmeleri... Konuşanları görebiliyordu, duyamıyordu. Fısıltıdan fazlasını çıkaracak istekleri yoktu.
“...hennemin böyleleriyle dolu olduğundan şüphesi olan var mı aranızda? Onları tekrar layık oldukları yere göndereceğiz. Bunun için yardı...”
Evet... evet. “Elma kaça?”
Pazarcı taburesinden kalkıp tezgâha geldi. O da aynıydı. Farklı bedende aynı sefalet. “Hangisi?”
“Fazla ham olmayanlardan.”
“Tanesi 600 lira.”
“Yarım ver. Şundan da...” Lafını tamamlayamadı. Biri bağırıyordu. Genç, on yedisinde bile göstermeyen biri. Yüzü etli, hareketleri canlı, kıyafetleri yeni ancak kendisine büyük gelmiş ve epey hırpalanmıştı. Hele o paltosu... İçi pamukla dolu olmalıydı. Kocamandı.
“Ya idam ne demek abi! Manyak mısınız lan siz? Kaçıncı yüzyıldasınız a...”
Küfrünün ortasında ağzını kapattılar. Koluna girmiş, kahveye geri sokuyorlardı.
Tezgâhtara “Kim bu?” diye sordu.
“Birinin torunuymuş, öyle diyor. Daha önce duyduysam n’olayım. Meczup herhalde,” dedi tezgâhtar.
“İsmi neymiş dedesinin?”
“Hakan mı, Hasan mı, öyle bi’şey.”
“Ekmekten çeyrek dilim, deri parçasını da ver. Çorbalık, değil mi?”
“Evet, çorbalık.”
Hakan... Şu saçma romanını bitirmek için evine döndü. Artık tozlar ayak bileğine geliyordu. Umursamadı. Son cümlelerini yazdı, kâğıt tomarını masanın yanından tertemiz yere bıraktı.
25803
Dürbünüyle ensesini kaşıdı. O adamın gözlerinde küçük cinler vardı. Neşeyle hoplayıp zıpladıklarını ta buradan seçebiliyordu! Ah, tatlılığa bak! Hahaha!Boynundaki ilmekle, gözlerinin içine bakan, hiç korkmayan ama bıkkın, ölümün bile hayatında olup bitenleri değiştirmeyeceğini kabullenmiş bir adamın duruşuna sahipti. Çok yaşlı, kafasında tel tel beyaz saçları, göbeğine uzanan sakallarıyla kurumuş bir ceset. Omuzları çökmek üzereydi, kamburunun ağırlığıyla ipi geriyordu.
Dürümü tekrar gözüne kaldırdı. Dürüm? Hahaha! Evet... evet! Radyoda cellat konuşuyordu.
“...endinizde değişiklik hissederseniz yakınınızdaki güvenlik güçleriyle ileti...”
Ah! Kendisine şöyle baktı. Yok... Aynı ben ya!
Sahneye -Tam bir gösteri! Gösteri!- doğru koşan adamı gördü. Üzerindeki puf puf paltosuyla, orta yaşlarında...
Masanın üzerine fırladı, dizlerinin üstüne çöküp içindeki safrayı pencereden dışarıya kustu. Eliyle ağzını silerken derisinin yapışarak etinden ayrıldığını hissedebiliyor ve o bant sökülürken çıkana benzeyen sesi duyabiliyordu. Cellat konuşmayı bırakmıştı. N’oldu? N’oulduuv?
Yaşlı adamı asmışlardı. Şimdi dik duruyordu, yükü hafiflemişti ama huzurlu olduğunu söyleyemezdiniz.
Diğer adam onları umursamadı, yere eğilip mikrofonun kablosunu tuttu ve ayaklığını devirerek kendisine çekti.
“Tabutun kapağını kaldırdığında yerin altına döne döne ilerleyen o kuyuyu... Tamam... tamam!”
Adamın şakağına inen ilk sopadan çıkan ses odayı doldurdu. Sonrası sessizlik ve ölüm. Ahhh... ahhh...
Hemen bağdaş kurup kaldığı sayfayı buldu. Ne ilham! NE İLHAM!
Son cümlelerini yazıp romanını bitirdi.
34125
Dürbünü öylece dışarıya bırakıverdi. Derisi kemiklerine yapışmış, kaşına kadar her tüyü dökülmüş bir ihtiyarı asıyorlardı. Açıktaki tüm bedeni yaşlılık lekeleriyle doluydu. Bembeyaz sakalı uzun ve temizdi. Dönecek! İpin ucunda! Sağa sola!_Tahta pencereleri kapadı ve -_Ha ha!- fenerin fitilini -Ha ha _ha!- yaktı. Duvardaki gölgeleri beğenmedi ama. Söndürdü. Püf füfüfüf ha ha _ha! Tekrar yaktı. Yine istediği gibi olmasa da iş görürdü.
Radyonun sesini açtı. Evet... Evet açtım! Tiz ve kalın, tanıdık ve yabancı... Burnu kanadı.
“...EN HİÇBİR ŞEYİN SONU YOKTUR! SONU OLAN HİÇBİR ŞEY BİTMİŞ DEĞİLDİR VE BİTEN HİÇBİR ŞEYİN SONU YOKTUR! SONU OLAN HİÇBİR ŞEY...”
Yüzüne döktüğü suyu alttaki tasla toplayıp içtikten sonra -Ha ha _ha! Hazırım, evet hazırım! Romanı bitirelim. Bundan iyisi olamaz! Olamaz! Ha ha!- masasına dönüp kâğıtlarını önüne çekti. Son cümleler ve sonrasında -Özgürüm! Özgürüm!” Radyo yayınına başka, yabancı biri karıştı. Öyle bağırıyordu ki duvarlar titriyordu. Çok yaşlıydı, çok...
“Geldiğimden beri, her gün! Asmayın artık şu adamı! Görmüyor mu...”
Sonra celladın sesi duyuldu. Cılız, uzaktan...
“Bunu da hazırlayın.”
“Evet... evet. Ne olacak, beni de her gün asın a...”
Not: Bu öykü ilk olarak 2019 yılında Esrarengiz Hikâyeler'de yayımlanmıştır.
-
@ 3bf0c63f:aefa459d
2024-05-24 12:31:40About Nostr, email and subscriptions
I check my emails like once or twice a week, always when I am looking for something specific in there.
Then I go there and I see a bunch of other stuff I had no idea I was missing. Even many things I wish I had seen before actually. And sometimes people just expect and assume I would have checked emails instantly as they arrived.
It's so weird because I'm not making a point, I just don't remember to open the damn "gmail.com" URL.
I remember some people were making some a Nostr service a while ago that sent a DM to people with Nostr articles inside -- or some other forms of "subscription services on Nostr". It makes no sense at all.
Pulling in DMs from relays is exactly the same process (actually slightly more convoluted) than pulling normal public events, so why would a service assume that "sending a DM" was more likely to reach the target subscriber when the target had explicitly subscribed to that topic or writer?
Maybe due to how some specific clients work that is true, but fundamentally it is a very broken assumption that comes from some fantastic past era in which emails were 100% always seen and there was no way for anyone to subscribe to someone else's posts.
Building around such broken assumptions is the wrong approach. Instead we should be building new flows for subscribing to specific content from specific Nostr-native sources (creators directly or manual or automated curation providers, communities, relays etc), which is essentially what most clients are already doing anyway, but specifically Coracle's new custom feeds come to mind now.
This also reminds me of the interviewer asking the Farcaster creator if Farcaster made "email addresses available to content creators" completely ignoring all the cryptography and nature of the protocol (Farcaster is shit, but at least they tried, and in this example you could imagine the interviewer asking the same thing about Nostr).
I imagine that if the interviewer had asked these people who were working (or suggesting) the Nostr DM subscription flow they would have answered: "no, you don't get their email addresses, but you can send them uncensorable DMs!" -- and that, again, is getting everything backwards.
-
@ c9b62079:423d81bc
2024-06-14 18:18:06In 2017, it took a shooter 10 minutes to spray more than 1,000 rounds into a crowd watching a Las Vegas concert. He murdered 58 people and injured 500 more in America’s deadliest mass shooting. He did this with a bump stock, an accessory that, for all intents and purposes, transforms semi-automatic rifles into machine guns. Today, the Supreme Court’s GOP-appointed justices legalized bump stocks. Any gun owner can now possess this weapon of mass carnage.
After the Las Vegas shooting, the Bureau of Alcohol, Tobacco, and Firearms, under President Donald Trump, and with bipartisan support, reclassified bump stocks as machine guns, which have been banned for decades. But in a 6-3 decision issued on Friday and written by Justice Clarence Thomas, the court ruled that bump stocks are not machine guns and that ATF lacks the authority to prohibit them.
The conservative justices adopt a new definition of machine gun that ignores the statute.
A machine gun is defined under federal law as “any weapon which shoots, or is designed to shoot, automatically . . . more than one shot, without manual reloading, by a single function of the trigger.” Crucially, this includes “any part designed and intended…for use in converting a weapon into a machinegun.” Equipped with a bump stock, a semi-automatic rifle can fire an equivalent number of rounds as a machine gun without the shooter pulling their trigger finger multiple times. It does this by harnessing each shot’s recoil to bump the trigger automatically, rather than relying on the manual pull of the shooter, discharging bullets much faster than if a shooter had to use their finger.
Thomas’ argument, adopted by the court’s other Republican appointees, is that this functionality does not meet the definition of a machine gun under federal law because the trigger mechanism is reengaged for each shot—even if not by a manual pull of the trigger. In doing so, he essentially adopts a new definition of machine gun that ignores the text of the statute, which includes components that convert a firearm—like a bump stock.
Justice Sonia Sotomayor, in a dissent joined by the other two Democratic-appointed justices, notes that Thomas is creating a distinction without a difference. “When I see a bird that walks like a duck, swims like a duck, and quacks like a duck, I call that bird a duck,” Sotomayor writes.
Thomas’ opinion reads as if the majority’s hands are tied—that they simply cannot square a bump stock ban with the language of the law. Justice Samuel Alito wrote a concurrence to this effect. Sotomayor finds the notion hollow, accusing her colleagues of abandoning their usual textualist approach: “Every Member of the majority has previously emphasized that the best way to respect congressional intent is to adhere to the ordinary understanding of the terms Congress uses,” she writes. “Today, the majority forgets that principle and substitutes its own view of what constitutes a ‘machinegun’ for Congress’s.”
Thomas’ decision argues that because ATF previously allowed bump stocks, it’s about-face after the Las Vegas massacre makes the regulation suspect. It also cites a prediction made by the late Sen. Dianne Feinstein (D-Calif.) that the ATF’s regulation of bump stocks would be overturned in court.
But such justifications elide the fact that the ATF reasonably interpreted the law in order to make Americans safer. Agencies may change their minds; there is no rule that once an agency decides something, it must stick to it forever. Notably, in the next few weeks, the court is likely to overrule its own longstanding practice of deferring to reasonable agency interpretations of ambiguous statutes, a principle known as Chevron Deference.
This case does not cite Chevron; neither the majority or the dissenters argued the gun statute’s language is ambiguous. But it clearly is operating in a post-Chevron world, one in which decisions about Americans’ safety are determined not by Congress or the agencies, but by nine justices who don’t even have a binding code of ethics.
Congress tried to ban machine guns, and ATF decided after America’s deadliest massacre that bump stocks created machine guns. Six Supreme Court justices just overruled them. That’s not how the law or democracy are supposed to work. Civilians toting firearms with machine gun capabilities is not the makings of a healthy society—or democracy—either.
-
@ 3bf0c63f:aefa459d
2024-05-21 12:38:08Bitcoin transactions explained
A transaction is a piece of data that takes inputs and produces outputs. Forget about the blockchain thing, Bitcoin is actually just a big tree of transactions. The blockchain is just a way to keep transactions ordered.
Imagine you have 10 satoshis. That means you have them in an unspent transaction output (UTXO). You want to spend them, so you create a transaction. The transaction should reference unspent outputs as its inputs. Every transaction has an immutable id, so you use that id plus the index of the output (because transactions can have multiple outputs). Then you specify a script that unlocks that transaction and related signatures, then you specify outputs along with a script that locks these outputs.
As you can see, there's this lock/unlocking thing and there are inputs and outputs. Inputs must be unlocked by fulfilling the conditions specified by the person who created the transaction they're in. And outputs must be locked so anyone wanting to spend those outputs will need to unlock them.
For most of the cases locking and unlocking means specifying a public key whose controller (the person who has the corresponding private key) will be able to spend. Other fancy things are possible too, but we can ignore them for now.
Back to the 10 satoshis you want to spend. Since you've successfully referenced 10 satoshis and unlocked them, now you can specify the outputs (this is all done in a single step). You can specify one output of 10 satoshis, two of 5, one of 3 and one of 7, three of 3 and so on. The sum of outputs can't be more than 10. And if the sum of outputs is less than 10 the difference goes to fees. In the first days of Bitcoin you didn't need any fees, but now you do, otherwise your transaction won't be included in any block.
If you're still interested in transactions maybe you could take a look at this small chapter of that Andreas Antonopoulos book.
If you hate Andreas Antonopoulos because he is a communist shitcoiner or don't want to read more than half a page, go here: https://en.bitcoin.it/wiki/Coin_analogy
-
@ 46fcbe30:6bd8ce4d
2024-04-11 17:21:28Opinion about Phoenix - LN Bitcoin wallet (android)
Phoenix is one of my favorite wallets. It makes using Bitcoin really easy but at a price. The wallet lets you send and receive both over the lightning network and on-chain without jumping through hoops, first but at the cost of either kind of hidden fees or unexpected on-chain fees.
To my understanding, when you receive on-chain funds, the wallet does yet another on-chain transaction to get these funds onto lightning and when you send via lightning, you pay an extra 0.4% to the provider. This 0.4% fee is not capped in any way, so while you can send $1000 via lightning, that will cost you $4 even when on-chain transactions would have cost just $1.
As of writing this opinion, the wallet is not reproducible which is a red flag to updating to this version but the provider hopefully will fix that soon as they are an OG player in the space.
WalletScrutiny #nostrOpinion
-
@ 3bf0c63f:aefa459d
2024-03-23 08:57:08Nostr is not decentralized nor censorship-resistant
Peter Todd has been saying this for a long time and all the time I've been thinking he is misunderstanding everything, but I guess a more charitable interpretation is that he is right.
Nostr today is indeed centralized.
Yesterday I published two harmless notes with the exact same content at the same time. In two minutes the notes had a noticeable difference in responses:
The top one was published to
wss://nostr.wine
,wss://nos.lol
,wss://pyramid.fiatjaf.com
. The second was published to the relay where I generally publish all my notes to,wss://pyramid.fiatjaf.com
, and that is announced on my NIP-05 file and on my NIP-65 relay list.A few minutes later I published that screenshot again in two identical notes to the same sets of relays, asking if people understood the implications. The difference in quantity of responses can still be seen today:
These results are skewed now by the fact that the two notes got rebroadcasted to multiple relays after some time, but the fundamental point remains.
What happened was that a huge lot more of people saw the first note compared to the second, and if Nostr was really censorship-resistant that shouldn't have happened at all.
Some people implied in the comments, with an air of obviousness, that publishing the note to "more relays" should have predictably resulted in more replies, which, again, shouldn't be the case if Nostr is really censorship-resistant.
What happens is that most people who engaged with the note are following me, in the sense that they have instructed their clients to fetch my notes on their behalf and present them in the UI, and clients are failing to do that despite me making it clear in multiple ways that my notes are to be found on
wss://pyramid.fiatjaf.com
.If we were talking not about me, but about some public figure that was being censored by the State and got banned (or shadowbanned) by the 3 biggest public relays, the sad reality would be that the person would immediately get his reach reduced to ~10% of what they had before. This is not at all unlike what happened to dozens of personalities that were banned from the corporate social media platforms and then moved to other platforms -- how many of their original followers switched to these other platforms? Probably some small percentage close to 10%. In that sense Nostr today is similar to what we had before.
Peter Todd is right that if the way Nostr works is that you just subscribe to a small set of relays and expect to get everything from them then it tends to get very centralized very fast, and this is the reality today.
Peter Todd is wrong that Nostr is inherently centralized or that it needs a protocol change to become what it has always purported to be. He is in fact wrong today, because what is written above is not valid for all clients of today, and if we drive in the right direction we can successfully make Peter Todd be more and more wrong as time passes, instead of the contrary.
See also:
-
@ f3df9bc0:a95119eb
2024-06-14 18:10:41Discipline Index
This is a placeholder. Here's a link to [[test]]
this is a link to a private note [[nip37 test]]
-
@ b804f68e:2fb0fa1f
2024-06-14 18:10:16Here we go!
-
@ c48e29f0:26e14c11
2024-04-10 16:54:40A Harvard economist published 100+ pages of survey analysis to confirm what anyone outside of the fiat academic bubble already knows: people don't like it when the stored value of their time+energy is inflated into oblivion.
You can access the full report here for anyone interested: https://www.nber.org/system/files/working_papers/w32300/w32300.pdf
One quote from the Abstract really jumped out at me: "The predominant reason for people’s aversion to inflation is the widespread belief that it diminishes their buying power."
Well, yeah, no shit... But this isn't a "belief"... this is a fact.
Here's the thing: the average person understands the problem, because they feel the effects of the problem every single day...
They may not understand the root cause of the problem (creating money out of thin air)--instead blaming "greedy corporations" or "Joe Biden" or "Putin's Price Hike" or whatever the propaganda du jour happens to be--but they know inflation feels wrong. It feels like someone is stealing from them (which is true).
They know their purchasing power has decreased, because when they spend a dollar today it buys less than it did five years ago, and much less than it did 20 years ago.
It doesn't matter if fiat academics tell them "everything is fine! stop complaining! inflation is ackshually a good thing!"
People can feel that something is broken.
Most people still think there is a partisan/political solution to the problems they feel.
They think "if only OUR guy was in charge, things would be better" or "if only we taxed the greedy corporations and the rich more, then things would be better."
But political solutions will always be bandaids meant to superficially treat the symptoms of the disease so the Political Team proposing the "solution" can score short-term perceived wins ahead of the next election. "Look, we did something! Now stop complaining and vote for us because the other guy is literally the devil."
A few people already realize that the money itself is broken.
They understand that when the money breaks, society breaks with it.
Money created out of thin air disproportionally enriches those closest to the creation of the new money.
Money created out of thin air is used to fund Forever Wars we never agreed to enter.
Money created out of thin air is used to subsidize companies/industries that the free market does not value, distorting price signals.
Money created out of thin air bails out banks.
Money created out of thin air perpetuates never-ending boom and bust cycles.
Money created out of thin air reduces the purchasing power of the money in your pocket.
Money created out of thin air steals the value of your time and energy, of your life itself.
The people who realize the money is broken now save the value of their time and energy in Bitcoin; a money separate from the State with a fixed supply of 21M which cannot be arbitrarily inflated.
Bitcoiners know we need to cure the base layer disease, not just treat the symptoms while politicians kick a can full of worthless money down the road until it lands at the feet of our children.
Bitcoiners refuse to abdicate responsibility. Bitcoiners refuse to pass this disease on to our children. Fiat is the disease, and we know we must cure it.
It will not be easy, but it must be done.
We need to fix the money.
Study Bitcoin. https://bitcoinpodcast.net https://primal.net/walker
-
@ 3bf0c63f:aefa459d
2024-03-19 14:32:01Censorship-resistant relay discovery in Nostr
In Nostr is not decentralized nor censorship-resistant I said Nostr is centralized. Peter Todd thinks it is centralized by design, but I disagree.
Nostr wasn't designed to be centralized. The idea was always that clients would follow people in the relays they decided to publish to, even if it was a single-user relay hosted in an island in the middle of the Pacific ocean.
But the Nostr explanations never had any guidance about how to do this, and the protocol itself never had any enforcement mechanisms for any of this (because it would be impossible).
My original idea was that clients would use some undefined combination of relay hints in reply tags and the (now defunct)
kind:2
relay-recommendation events plus some form of manual action ("it looks like Bob is publishing on relay X, do you want to follow him there?") to accomplish this. With the expectation that we would have a better idea of how to properly implement all this with more experience, Branle, my first working client didn't have any of that implemented, instead it used a stupid static list of relays with read/write toggle -- although it did publish relay hints and kept track of those internally and supportedkind:2
events, these things were not really useful.Gossip was the first client to implement a truly censorship-resistant relay discovery mechanism that used NIP-05 hints (originally proposed by Mike Dilger) relay hints and
kind:3
relay lists, and then with the simple insight of NIP-65 that got much better. After seeing it in more concrete terms, it became simpler to reason about it and the approach got popularized as the "gossip model", then implemented in clients like Coracle and Snort.Today when people mention the "gossip model" (or "outbox model") they simply think about NIP-65 though. Which I think is ok, but too restrictive. I still think there is a place for the NIP-05 hints,
nprofile
andnevent
relay hints and specially relay hints in event tags. All these mechanisms are used together in ZBD Social, for example, but I believe also in the clients listed above.I don't think we should stop here, though. I think there are other ways, perhaps drastically different ways, to approach content propagation and relay discovery. I think manual action by users is underrated and could go a long way if presented in a nice UX (not conceived by people that think users are dumb animals), and who knows what. Reliance on third-parties, hardcoded values, social graph, and specially a mix of multiple approaches, is what Nostr needs to be censorship-resistant and what I hope to see in the future.
-
@ c0de4045:6ee577fe
2024-06-13 17:32:07بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ
We need to turn characters into numbers. We can do that with Unicode like this.
Unicode
On Ubuntu Linux press [CTRL][Shift][T] and in the terminal:
schmuck@Schmoe:~$
python3
to get >>>
ord('h')
'h' has the Unicode code point 104.
ord
can only take a single character, to get the code points of many characters:[ord(x) for x in "إِنَّ اللَّهَ اصْطَفَىٰ آدَمَ وَنُوحًا وَآلَ إِبْرَاهِيمَ وَآلَ عِمْرَانَ"]
[1573, 1616, 1606, 1617, 1614, 32, 1575, 1604, 1604, 1617, 1614, 1607, 1614, 32, 1575, 1589, 1618, 1591, 1614, 1601, 1614, 1609, 1648, 32, 1570, 1583, 1614, 1605, 1614, 32, 1608, 1614, 1606, 1615, 1608, 1581, 1611, 1575, 32, 1608, 1614, 1570, 1604, 1614, 32, 1573, 1616, 1576, 1618, 1585, 1614, 1575, 1607, 1616, 1610, 1605, 1614, 32, 1608, 1614, 1570, 1604, 1614, 32, 1593, 1616, 1605, 1618, 1585, 1614, 1575, 1606, 1614]
But Unicode is always changing so not very good for us. We can use a type of Unicode called UTF-8 which can turn our characters into binary-data or byte-streams like this:
"بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ".encode("utf-8")
b'\xd8\xa8\xd9\x90\xd8\xb3\xd9\x92\xd9\x85\xd9\x90 \xd8\xa7\xd9\x84\xd9\x84\xd9\x91\xd9\x8e\xd9\x87\xd9\x90 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x92\xd9\x85\xd9\x8e\xd9\xb0\xd9\x86\xd9\x90 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x90\xd9\x8a\xd9\x85\xd9\x90'
but it is not very pretty so we can turn it into useful numbers to work with like this:
list("بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ".encode("utf-8"))
[216, 168, 217, 144, 216, 179, 217, 146, 217, 133, 217, 144, 32, 216, 167, 217, 132, 217, 132, 217, 145, 217, 142, 217, 135, 217, 144, 32, 216, 167, 217, 132, 216, 177, 217, 145, 217, 142, 216, 173, 217, 146, 217, 133, 217, 142, 217, 176, 217, 134, 217, 144, 32, 216, 167, 217, 132, 216, 177, 217, 145, 217, 142, 216, 173, 217, 144, 217, 138, 217, 133, 217, 144]
Getting the data
Go to https://tanzil.net/download/ and choose 'Uthmani' under Quran text type: , 'Text' for Output file format: and tick all boxes except 'Include sequential tanweens', then Download to get the file and then using python3 to open:
text = open("quran-uthmani.txt", 'r').read()
print(text)
We can encode in UTF-8 and get some ugly binary:
tokens = text.encode("utf-8")
print(tokens)
A neater way, so we get 0-255 range of code points:
tokens = list(map(int, tokens))
quit()
to get out of >>> and back to $Google Colab
If you have a Google account, or if you have a throw away SIM card to get a new Google account using a dumb phone for SMS verification, you can start using Google's Colab for free:
https://colab.research.google.com/
Yes, for free so when at the payment screen, click away from it to get the free lab.
Adding your file to Google Colab
Click the file icon and then the dog-earred page with an up arrow and add your quran-uthmani.txt file from 'Getting the data' (above).
It will be deleted so you have to add it every session you start Colab, so have it saved somewhere.
Our actor example applied to Python
So, we talked earlier about Fenyman and James Clear's 'Atomic Habits' and how actors learn their script.
We are now going to use that to learn our own 'scripting', that is learn programming:
Type everything out and never ever copy and paste code. And never say never.
We said we won't type/write by going back and forth but in this case we will except that we type everything out. It will first enter our memory so we know where to find it when we need it in the future and for speed we will type first because searching for something we saw months ago somewhere takes longer than trying muscle memory out and just typing it.
We say, 'never say never' because there are times when there is no point in typing out long paragraphs of code that are 'boiler plate' meaning, always used as is everywhere. In those rare cases, copy and paste.
Getting the most common pairs
Type in Google Colab
text = open("quran-uthmani.txt", 'r').read()
and then press [SHIFT][ENTER] to run the 'code cell'.open()
"quran-uthmani.txt"
as read-only'r'
and save astext
.tokens = text.encode("utf-8")
take
text
andencode()
it with"utf-8"
and save astokens
tokens = list(map(int, tokens))
``` def get_stats(ids): counts = {} for pair in zip(ids, ids[1:]): counts[pair] = counts.get(pair, 0) + 1 return counts
stats = get_stats(tokens)
print(stats) ``` {(216, 168): 11603, (168, 217): 11593, (217, 144): 46642, (144, 216): 7778, (216, 179): 6122, (179, 217): 6122, (217, 146): 37372, (146, 217): 14675, (217, 133): 27071, (133, 217): 25740, (144, 32): 7712, (32, 217): 45082, (217, 177): 13819, (177, 217): 25239, (217, 132): 38550, (132, 217): 36124, (217, 145): 23016, (145, 217): 23016, (217, 142): 123396, (142, 217): 53930, (217, 135): 14962, (135, 217): 14961, (132, 216): 2316, (216, 177): 12627, (142, 216): 50698, (216, 173): 4364, (173, 217): 4364, (217, 128): 6848, (128, 217): 6808, (217, 176): 9838, (176, 217): 10000, (217, 134): 27380, (134, 217): 22530, (144, 217): 29600, (217, 138): 18334, (138, 217): 16706, (144, 10): 595, (10, 217): 4481, (146, 216): 13852, (216, 175): 5991, (175, 217): 5945, (217, 143): 37320, (143, 32): 6675, (32, 216): 26762, (216, 185): 9405, (185, 217): 9403, (142, 10): 2843, (217, 131): 10497, (131, 217): 10497, (217, 136): 24970, (136, 217): 20377, (10, 216): 1555, (216, 165): 5088, (165, 217): 5260, (216, 167): 25184, (167, 217): 6829, (142, 32): 15924, (143, 216): 5806, (216, 170): 10520, (170, 217): 10504, (143, 10): 331, (167, 32): 10720, (216, 181): 2074, (181, 217): 2071, (176, 216): 3255, (216, 183): 1273, (183, 217): 1266, (217, 130): 7034, (130, 217): 7034, (216, 176): 4932, (216, 163): 8900, (163, 217): 8901, (146, 32): 8751, (216, 186): 1221, (186, 217): 1221, (216, 182): 1686, (182, 217): 1686, (143, 217): 23252, (136, 216): 4289, (217, 147): 5376, (147, 217): 90, (147, 10): 76, (32, 219): 4379, (219, 155): 12, (155, 32): 12, (217, 129): 8747, (129, 217): 8746, (217, 139): 3741, (139, 217): 93, (217, 137): 6603, (137, 32): 3035, (216, 164): 706, (164, 217): 706, (216, 169): 2344, (169, 217): 2344, (216, 178): 1599, (178, 217): 1599, (147, 32): 2459, (134, 216): 1499, (134, 32): 3081, (217, 148): 773, (148, 217): 773, (167, 216): 2953, (216, 174): 2497, (174, 217): 2497, (136, 219): 255, (219, 159): 3988, (159, 217): 268, (147, 216): 2751, (216, 166): 921, (166, 217): 1085, (137, 217): 3531, (176, 32): 1337, (219, 150): 1682, (150, 32): 1682, (167, 219): 3789, (159, 32): 3704, (216, 161): 2782, (161, 217): 2782, (217, 140): 2519, (140, 32): 1777, (216, 180): 2124, (180, 217): 2124, (216, 184): 853, (184, 217): 853, (140, 10): 605, (133, 32): 1328, (139, 216): 2976, (140, 219): 134, (219, 162): 510, (162, 32): 338, (219, 151): 603, (151, 32): 603, (177, 216): 1197, (170, 32): 17, (216, 172): 3317, (172, 217): 3317, (216, 171): 1414, (171, 217): 1414, (143, 219): 1256, (219, 165): 1257, (165, 32): 1042, (217, 141): 2633, (141, 32): 2080, (219, 154): 1972, (154, 32): 1972, (138, 216): 1618, (139, 32): 556, (144, 219): 957, (219, 166): 957, (166, 32): 791, (219, 153): 68, (153, 32): 68, (10, 219): 199, (219, 158): 199, (158, 32): 199, (219, 152): 22, (152, 32): 22, (134, 219): 270, (162, 216): 158, (132, 32): 110, (141, 10): 454, (141, 219): 99, (219, 173): 99, (173, 32): 84, (168, 32): 9, (136, 32): 49, (128, 219): 40, (219, 167): 38, (139, 219): 106, (175, 216): 38, (181, 219): 3, (219, 156): 7, (156, 217): 2, (165, 216): 19, (175, 32): 8, (219, 160): 66, (160, 32): 62, (159, 216): 14, (177, 32): 9, (138, 219): 10, (167, 10): 931, (159, 10): 2, (140, 216): 3, (162, 10): 14, (183, 216): 7, (137, 219): 1, (171, 32): 1, (219, 169): 15, (169, 10): 15, (177, 219): 1, (219, 170): 1, (142, 219): 1, (219, 171): 1, (129, 32): 1, (156, 10): 2, (137, 10): 36, (185, 32): 2, (135, 10): 1, (176, 10): 178, (146, 10): 94, (219, 168): 1, (168, 216): 1, (160, 10): 4, (173, 10): 15, (156, 32): 3, (219, 172): 1, (172, 216): 1, (133, 10): 3, (219, 163): 1, (139, 10): 10, (165, 10): 24, (166, 10): 2, (168, 10): 1, (10, 10): 2, (10, 35): 28, (35, 32): 18, (32, 80): 6, (80, 76): 1, (76, 69): 1, (69, 65): 1, (65, 83): 1, (83, 69): 2, (69, 32): 3, (32, 68): 1, (68, 79): 1, (79, 32): 1, (32, 78): 2, (78, 79): 2, (79, 84): 2, (84, 32): 4, (32, 82): 1, (82, 69): 1, (69, 77): 1, (77, 79): 1, (79, 86): 1, (86, 69): 1, (32, 79): 2, (79, 82): 1, (82, 32): 1, (32, 67): 6, (67, 72): 2, (72, 65): 2, (65, 78): 2, (78, 71): 3, (71, 69): 1, (32, 84): 9, (84, 72): 1, (72, 73): 1, (73, 83): 2, (83, 32): 3, (67, 79): 1, (79, 80): 1, (80, 89): 1, (89, 82): 1, (82, 73): 1, (73, 71): 1, (71, 72): 1, (72, 84): 1, (32, 66): 1, (66, 76): 1, (76, 79): 2, (79, 67): 1, (67, 75): 1, (75, 10): 1, (35, 61): 2, (61, 61): 134, (61, 10): 2, (35, 10): 8, (32, 32): 29, (84, 97): 4, (97, 110): 19, (110, 122): 6, (122, 105): 6, (105, 108): 7, (108, 32): 9, (32, 81): 3, (81, 117): 3, (117, 114): 4, (114, 97): 5, (110, 32): 11, (84, 101): 1, (101, 120): 6, (120, 116): 6, (116, 32): 9, (32, 40): 3, (40, 85): 1, (85, 116): 1, (116, 104): 6, (104, 109): 1, (109, 97): 2, (110, 105): 3, (105, 44): 1, (44, 32): 6, (32, 86): 1, (86, 101): 1, (101, 114): 7, (114, 115): 2, (115, 105): 3, (105, 111): 5, (111, 110): 9, (32, 49): 1, (49, 46): 1, (46, 49): 1, (49, 41): 1, (41, 10): 1, (67, 111): 2, (111, 112): 7, (112, 121): 4, (121, 114): 2, (114, 105): 7, (105, 103): 3, (103, 104): 3, (104, 116): 3, (40, 67): 1, (67, 41): 1, (41, 32): 2, (32, 50): 1, (50, 48): 2, (48, 48): 1, (48, 55): 1, (55, 45): 1, (45, 50): 1, (48, 50): 1, (50, 52): 1, (52, 32): 1, (80, 114): 3, (114, 111): 9, (111, 106): 3, (106, 101): 3, (101, 99): 5, (99, 116): 3, (116, 10): 1, (32, 76): 1, (76, 105): 1, (105, 99): 4, (99, 101): 5, (101, 110): 2, (110, 115): 2, (115, 101): 4, (101, 58): 1, (58, 32): 2, (67, 114): 1, (114, 101): 4, (101, 97): 3, (97, 116): 11, (116, 105): 9, (105, 118): 2, (118, 101): 5, (101, 32): 13, (111, 109): 2, (109, 109): 1, (109, 111): 2, (115, 32): 17, (32, 65): 2, (65, 116): 1, (116, 116): 2, (116, 114): 3, (105, 98): 2, (98, 117): 3, (117, 116): 3, (32, 51): 1, (51, 46): 1, (46, 48): 1, (48, 10): 1, (84, 104): 3, (104, 105): 6, (105, 115): 12, (32, 99): 12, (99, 111): 7, (121, 32): 9, (32, 111): 8, (111, 102): 6, (102, 32): 6, (32, 116): 16, (104, 101): 3, (116, 101): 12, (32, 105): 10, (99, 97): 4, (97, 114): 2, (101, 102): 1, (102, 117): 1, (117, 108): 1, (108, 108): 5, (108, 121): 5, (32, 112): 3, (112, 114): 5, (111, 100): 2, (100, 117): 2, (117, 99): 2, (101, 100): 10, (100, 44): 2, (32, 104): 2, (104, 108): 1, (32, 10): 7, (32, 118): 3, (105, 102): 1, (102, 105): 2, (105, 101): 3, (100, 32): 12, (32, 97): 13, (110, 100): 5, (110, 116): 4, (105, 110): 9, (110, 117): 1, (117, 111): 1, (111, 117): 3, (117, 115): 3, (115, 108): 1, (32, 109): 2, (105, 116): 3, (116, 111): 5, (111, 114): 4, (32, 98): 5, (98, 121): 1, (97, 32): 2, (32, 103): 2, (103, 114): 2, (117, 112): 3, (112, 32): 1, (32, 115): 5, (115, 112): 1, (112, 101): 1, (99, 105): 1, (105, 97): 3, (97, 108): 6, (108, 105): 3, (115, 116): 3, (116, 115): 2, (116, 46): 2, (46, 10): 4, (84, 69): 1, (69, 82): 1, (82, 77): 1, (77, 83): 1, (79, 70): 1, (70, 32): 1, (32, 85): 1, (85, 83): 1, (69, 58): 1, (58, 10): 1, (32, 45): 3, (45, 32): 3, (80, 101): 1, (114, 109): 1, (109, 105): 1, (115, 115): 1, (111, 32): 4, (32, 100): 2, (100, 105): 2, (114, 98): 2, (98, 97): 2, (105, 109): 2, (109, 32): 3, (112, 105): 2, (101, 115): 6, (116, 44): 2, (71, 73): 1, (73, 78): 1, (71, 32): 1, (32, 73): 2, (73, 84): 1, (65, 76): 1, (76, 76): 1, (79, 87): 1, (87, 69): 1, (69, 68): 1, (68, 46): 1, (98, 101): 3, (32, 117): 3, (110, 121): 1, (32, 119): 1, (119, 101): 1, (101, 98): 1, (98, 115): 2, (114, 32): 2, (97, 112): 2, (112, 112): 2, (112, 108): 1, (110, 44): 1, (111, 118): 1, (118, 105): 1, (105, 100): 1, (100, 101): 4, (104, 97): 4, (115, 111): 1, (114, 99): 1, (40, 84): 1, (116, 41): 1, (99, 108): 2, (108, 101): 4, (114, 108): 1, (32, 108): 1, (110, 107): 1, (107, 32): 3, (97, 100): 1, (116, 97): 4, (108, 46): 2, (46, 110): 2, (110, 101): 2, (101, 116): 2, (32, 101): 1, (110, 97): 1, (97, 98): 1, (98, 108): 1, (32, 107): 1, (107, 101): 1, (101, 101): 1, (101, 112): 2, (112, 10): 1, (97, 99): 1, (99, 107): 2, (99, 104): 2, (110, 103): 2, (103, 101): 1, (115, 46): 1, (32, 110): 1, (110, 111): 1, (111, 116): 1, (115, 104): 2, (110, 99): 1, (108, 117): 1, (117, 100): 1, (32, 114): 1, (101, 108): 1, (32, 102): 2, (102, 114): 1, (97, 105): 1, (103, 32): 1, (115, 117): 1, (117, 98): 1, (112, 111): 1, (114, 116): 1, (80, 108): 1, (97, 115): 1, (112, 100): 2, (100, 97): 2, (116, 58): 1, (116, 112): 1, (112, 58): 1, (58, 47): 1, (47, 47): 1, (47, 116): 1, (116, 47): 1, (47, 117): 1, (115, 47): 1, (47, 10): 1}
The most common pair is ...
print(sorted(((v,k) for k,v in stats.items()), reverse=True))
sorted
by valuev
to get the most common pairs first[(123396, (217, 142)), (53930, (142, 217)), (50698, (142, 216)), (46642, (217, 144)), (45082, (32, 217)), (38550, (217, 132)), (37372, (217, 146)), (37320, (217, 143)), (36124, (132, 217)), (29600, (144, 217)), (27380, (217, 134)), (27071, (217, 133)), (26762, (32, 216)), (25740, (133, 217)), (25239, (177, 217)), (25184, (216, 167)), (24970, (217, 136)), (23252, (143, 217)), (23016, (217, 145)), (23016, (145, 217)), (22530, (134, 217)), (20377, (136, 217)), (18334, (217, 138)), (16706, (138, 217)), (15924, (142, 32)), (14962, (217, 135)), (14961, (135, 217)), (14675, (146, 217)), (13852, (146, 216)), (13819, (217, 177)), (12627, (216, 177)), (11603, (216, 168)), (11593, (168, 217)), (10720, (167, 32)), (10520, (216, 170)), (10504, (170, 217)), (10497, (217, 131)), (10497, (131, 217)), (10000, (176, 217)), (9838, (217, 176)), (9405, (216, 185)), (9403, (185, 217)), (8901, (163, 217)), (8900, (216, 163)), (8751, (146, 32)), (8747, (217, 129)), (8746, (129, 217)), (7778, (144, 216)), (7712, (144, 32)), (7034, (217, 130)), (7034, (130, 217)), (6848, (217, 128)), (6829, (167, 217)), (6808, (128, 217)), (6675, (143, 32)), (6603, (217, 137)), (6122, (216, 179)), (6122, (179, 217)), (5991, (216, 175)), (5945, (175, 217)), (5806, (143, 216)), (5376, (217, 147)), (5260, (165, 217)), (5088, (216, 165)), (4932, (216, 176)), (4481, (10, 217)), (4379, (32, 219)), (4364, (216, 173)), (4364, (173, 217)), (4289, (136, 216)), (3988, (219, 159)), (3789, (167, 219)), (3741, (217, 139)), (3704, (159, 32)), (3531, (137, 217)), (3317, (216, 172)), (3317, (172, 217)), (3255, (176, 216)), (3081, (134, 32)), (3035, (137, 32)), (2976, (139, 216)), (2953, (167, 216)), (2843, (142, 10)), (2782, (216, 161)), (2782, (161, 217)), (2751, (147, 216)), (2633, (217, 141)), (2519, (217, 140)), (2497, (216, 174)), (2497, (174, 217)), (2459, (147, 32)), (2344, (216, 169)), (2344, (169, 217)), (2316, (132, 216)), (2124, (216, 180)), (2124, (180, 217)), (2080, (141, 32)), (2074, (216, 181)), (2071, (181, 217)), (1972, (219, 154)), (1972, (154, 32)), (1777, (140, 32)), (1686, (216, 182)), (1686, (182, 217)), (1682, (219, 150)), (1682, (150, 32)), (1618, (138, 216)), (1599, (216, 178)), (1599, (178, 217)), (1555, (10, 216)), (1499, (134, 216)), (1414, (216, 171)), (1414, (171, 217)), (1337, (176, 32)), (1328, (133, 32)), (1273, (216, 183)), (1266, (183, 217)), (1257, (219, 165)), (1256, (143, 219)), (1221, (216, 186)), (1221, (186, 217)), (1197, (177, 216)), (1085, (166, 217)), (1042, (165, 32)), (957, (219, 166)), (957, (144, 219)), (931, (167, 10)), (921, (216, 166)), (853, (216, 184)), (853, (184, 217)), (791, (166, 32)), (773, (217, 148)), (773, (148, 217)), (706, (216, 164)), (706, (164, 217)), (605, (140, 10)), (603, (219, 151)), (603, (151, 32)), (595, (144, 10)), (556, (139, 32)), (510, (219, 162)), (454, (141, 10)), (338, (162, 32)), (331, (143, 10)), (270, (134, 219)), (268, (159, 217)), (255, (136, 219)), (199, (219, 158)), (199, (158, 32)), (199, (10, 219)), (178, (176, 10)), (158, (162, 216)), (134, (140, 219)), (134, (61, 61)), (110, (132, 32)), (106, (139, 219)), (99, (219, 173)), (99, (141, 219)), (94, (146, 10)), (93, (139, 217)), (90, (147, 217)), (84, (173, 32)), (76, (147, 10)), (68, (219, 153)), (68, (153, 32)), (66, (219, 160)), (62, (160, 32)), (49, (136, 32)), (40, (128, 219)), (38, (219, 167)), (38, (175, 216)), (36, (137, 10)), (29, (32, 32)), (28, (10, 35)), (24, (165, 10)), (22, (219, 152)), (22, (152, 32)), (19, (165, 216)), (19, (97, 110)), (18, (35, 32)), (17, (170, 32)), (17, (115, 32)), (16, (32, 116)), (15, (219, 169)), (15, (173, 10)), (15, (169, 10)), (14, (162, 10)), (14, (159, 216)), (13, (101, 32)), (13, (32, 97)), (12, (219, 155)), (12, (155, 32)), (12, (116, 101)), (12, (105, 115)), (12, (100, 32)), (12, (32, 99)), (11, (110, 32)), (11, (97, 116)), (10, (139, 10)), (10, (138, 219)), (10, (101, 100)), (10, (32, 105)), (9, (177, 32)), (9, (168, 32)), (9, (121, 32)), (9, (116, 105)), (9, (116, 32)), (9, (114, 111)), (9, (111, 110)), (9, (108, 32)), (9, (105, 110)), (9, (32, 84)), (8, (175, 32)), (8, (35, 10)), (8, (32, 111)), (7, (219, 156)), (7, (183, 216)), (7, (114, 105)), (7, (111, 112)), (7, (105, 108)), (7, (101, 114)), (7, (99, 111)), (7, (32, 10)), (6, (122, 105)), (6, (120, 116)), (6, (116, 104)), (6, (111, 102)), (6, (110, 122)), (6, (104, 105)), (6, (102, 32)), (6, (101, 120)), (6, (101, 115)), (6, (97, 108)), (6, (44, 32)), (6, (32, 80)), (6, (32, 67)), (5, (118, 101)), (5, (116, 111)), (5, (114, 97)), (5, (112, 114)), (5, (110, 100)), (5, (108, 121)), (5, (108, 108)), (5, (105, 111)), (5, (101, 99)), (5, (99, 101)), (5, (32, 115)), (5, (32, 98)), (4, (160, 10)), (4, (117, 114)), (4, (116, 97)), (4, (115, 101)), (4, (114, 101)), (4, (112, 121)), (4, (111, 114)), (4, (111, 32)), (4, (110, 116)), (4, (108, 101)), (4, (105, 99)), (4, (104, 97)), (4, (100, 101)), (4, (99, 97)), (4, (84, 97)), (4, (84, 32)), (4, (46, 10)), (3, (181, 219)), (3, (156, 32)), (3, (140, 216)), (3, (133, 10)), (3, (117, 116)), (3, (117, 115)), (3, (117, 112)), (3, (116, 114)), (3, (115, 116)), (3, (115, 105)), (3, (111, 117)), (3, (111, 106)), (3, (110, 105)), (3, (109, 32)), (3, (108, 105)), (3, (107, 32)), (3, (106, 101)), (3, (105, 116)), (3, (105, 103)), (3, (105, 101)), (3, (105, 97)), (3, (104, 116)), (3, (104, 101)), (3, (103, 104)), (3, (101, 97)), (3, (99, 116)), (3, (98, 117)), (3, (98, 101)), (3, (84, 104)), (3, (83, 32)), (3, (81, 117)), (3, (80, 114)), (3, (78, 71)), (3, (69, 32)), (3, (45, 32)), (3, (32, 118)), (3, (32, 117)), (3, (32, 112)), (3, (32, 81)), (3, (32, 45)), (3, (32, 40)), (2, (185, 32)), (2, (166, 10)), (2, (159, 10)), (2, (156, 217)), (2, (156, 10)), (2, (121, 114)), (2, (117, 99)), (2, (116, 116)), (2, (116, 115)), (2, (116, 46)), (2, (116, 44)), (2, (115, 104)), (2, (114, 115)), (2, (114, 98)), (2, (114, 32)), (2, (112, 112)), (2, (112, 105)), (2, (112, 100)), (2, (111, 109)), (2, (111, 100)), (2, (110, 115)), (2, (110, 103)), (2, (110, 101)), (2, (109, 111)), (2, (109, 97)), (2, (108, 46)), (2, (105, 118)), (2, (105, 109)), (2, (105, 98)), (2, (103, 114)), (2, (102, 105)), (2, (101, 116)), (2, (101, 112)), (2, (101, 110)), (2, (100, 117)), (2, (100, 105)), (2, (100, 97)), (2, (100, 44)), (2, (99, 108)), (2, (99, 107)), (2, (99, 104)), (2, (98, 115)), (2, (98, 97)), (2, (97, 114)), (2, (97, 112)), (2, (97, 32)), (2, (83, 69)), (2, (79, 84)), (2, (78, 79)), (2, (76, 79)), (2, (73, 83)), (2, (72, 65)), (2, (67, 111)), (2, (67, 72)), (2, (65, 78)), (2, (61, 10)), (2, (58, 32)), (2, (50, 48)), (2, (46, 110)), (2, (41, 32)), (2, (35, 61)), (2, (32, 109)), (2, (32, 104)), (2, (32, 103)), (2, (32, 102)), (2, (32, 100)), (2, (32, 79)), (2, (32, 78)), (2, (32, 73)), (2, (32, 65)), (2, (10, 10)), (1, (219, 172)), (1, (219, 171)), (1, (219, 170)), (1, (219, 168)), (1, (219, 163)), (1, (177, 219)), (1, (172, 216)), (1, (171, 32)), (1, (168, 216)), (1, (168, 10)), (1, (142, 219)), (1, (137, 219)), (1, (135, 10)), (1, (129, 32)), (1, (119, 101)), (1, (118, 105)), (1, (117, 111)), (1, (117, 108)), (1, (117, 100)), (1, (117, 98)), (1, (116, 112)), (1, (116, 58)), (1, (116, 47)), (1, (116, 41)), (1, (116, 10)), (1, (115, 117)), (1, (115, 115)), (1, (115, 112)), (1, (115, 111)), (1, (115, 108)), (1, (115, 47)), (1, (115, 46)), (1, (114, 116)), (1, (114, 109)), (1, (114, 108)), (1, (114, 99)), (1, (112, 111)), (1, (112, 108)), (1, (112, 101)), (1, (112, 58)), (1, (112, 32)), (1, (112, 10)), (1, (111, 118)), (1, (111, 116)), (1, (110, 121)), (1, (110, 117)), (1, (110, 111)), (1, (110, 107)), (1, (110, 99)), (1, (110, 97)), (1, (110, 44)), (1, (109, 109)), (1, (109, 105)), (1, (108, 117)), (1, (107, 101)), (1, (105, 102)), (1, (105, 100)), (1, (105, 44)), (1, (104, 109)), (1, (104, 108)), (1, (103, 101)), (1, (103, 32)), (1, (102, 117)), (1, (102, 114)), (1, (101, 108)), (1, (101, 102)), (1, (101, 101)), (1, (101, 98)), (1, (101, 58)), (1, (99, 105)), (1, (98, 121)), (1, (98, 108)), (1, (97, 115)), (1, (97, 105)), (1, (97, 100)), (1, (97, 99)), (1, (97, 98)), (1, (89, 82)), (1, (87, 69)), (1, (86, 101)), (1, (86, 69)), (1, (85, 116)), (1, (85, 83)), (1, (84, 101)), (1, (84, 72)), (1, (84, 69)), (1, (82, 77)), (1, (82, 73)), (1, (82, 69)), (1, (82, 32)), (1, (80, 108)), (1, (80, 101)), (1, (80, 89)), (1, (80, 76)), (1, (79, 87)), (1, (79, 86)), (1, (79, 82)), (1, (79, 80)), (1, (79, 70)), (1, (79, 67)), (1, (79, 32)), (1, (77, 83)), (1, (77, 79)), (1, (76, 105)), (1, (76, 76)), (1, (76, 69)), (1, (75, 10)), (1, (73, 84)), (1, (73, 78)), (1, (73, 71)), (1, (72, 84)), (1, (72, 73)), (1, (71, 73)), (1, (71, 72)), (1, (71, 69)), (1, (71, 32)), (1, (70, 32)), (1, (69, 82)), (1, (69, 77)), (1, (69, 68)), (1, (69, 65)), (1, (69, 58)), (1, (68, 79)), (1, (68, 46)), (1, (67, 114)), (1, (67, 79)), (1, (67, 75)), (1, (67, 41)), (1, (66, 76)), (1, (65, 116)), (1, (65, 83)), (1, (65, 76)), (1, (58, 47)), (1, (58, 10)), (1, (55, 45)), (1, (52, 32)), (1, (51, 46)), (1, (50, 52)), (1, (49, 46)), (1, (49, 41)), (1, (48, 55)), (1, (48, 50)), (1, (48, 48)), (1, (48, 10)), (1, (47, 117)), (1, (47, 116)), (1, (47, 47)), (1, (47, 10)), (1, (46, 49)), (1, (46, 48)), (1, (45, 50)), (1, (41, 10)), (1, (40, 85)), (1, (40, 84)), (1, (40, 67)), (1, (32, 119)), (1, (32, 114)), (1, (32, 110)), (1, (32, 108)), (1, (32, 107)), (1, (32, 101)), (1, (32, 86)), (1, (32, 85)), (1, (32, 82)), (1, (32, 76)), (1, (32, 68)), (1, (32, 66)), (1, (32, 51)), (1, (32, 50)), (1, (32, 49))]
top_pair = max(stats, key=stats.get) top_pair
Our most common pair is (217, 142) which is at the top of our list (123396, (217, 142) occuring 123396 times.
chr(217), chr(142)
('Ù', '\x8e')
Swapping the pair for a single token
``` def get_stats(ids): counts = {} for pair in zip(ids, idx[1:]): counts[pair] = counts.get(pair, 0) + 1 return counts
def merge(ids, pair, idx): newids = [] i = 0 while i < len(ids): if i < len(ids) - 1 and ids[i] == pair[0] and ids[i+1] == pair[1]: newids.append(idx) i += 2 else: newids.append(ids[i]) i += 1 return newids
print(merge([5, 6, 6, 7, 9, 1], (6, 7), 99))
`` Replace a
pair(6, 7) in a list
[5, 6, 6, 7, 9, 1]of numbers called
idswith a single token
idx` 99[5, 6, 99, 9, 1]
We have 0-255 tokens, to replace the most common pair with a new token 256:
``` tokens2 = merge(tokens, top_pair, 256)
print(tokens2)
print("length: ", len(tokens2)) ``` length: 1237147
``` vocab_size = 276 num_merges = vocab_size - 256 ids = list(tokens)
merges = {} for i in range(num_merges): stats = get_stats(ids) pair = max(stats, key=stats.get) idx = 256 + i print(f'merging {pair} into a new token {idx}') ids = merge(ids, pair, idx) merges[pair] = idx ```
Source:
https://en.wikipedia.org/wiki/Arabic_script_in_Unicode
-
@ 3bf0c63f:aefa459d
2024-03-06 13:04:06início
"Vocês vêem? Vêem a história? Vêem alguma coisa? Me parece que estou tentando lhes contar um sonho -- fazendo uma tentativa inútil, porque nenhum relato de sonho pode transmitir a sensação de sonho, aquela mistura de absurdo, surpresa e espanto numa excitação de revolta tentando se impôr, aquela noção de ser tomado pelo incompreensível que é da própria essência dos sonhos..."
Ele ficou em silêncio por alguns instantes.
"... Não, é impossível; é impossível transmitir a sensação viva de qualquer época determinada de nossa existência -- aquela que constitui a sua verdade, o seu significado, a sua essência sutil e contundente. É impossível. Vivemos, como sonhamos -- sozinhos..."
- Livros mencionados por Olavo de Carvalho
- Antiga homepage Olavo de Carvalho
- Bitcoin explicado de um jeito correto e inteligível
- Reclamações
-
@ 6389be64:ef439d32
2024-06-13 17:10:412024-06-13 at 09:53
Tags:
Efficiency Begs Destruction
Slavery provides an efficient labor force but one with a single ability. This monoculture of labor can only create monocrop style agriculture which then provides for efficient commodity production.
Futures contracts on those commodities adsorb those efficiencies and create an economic prison that the original farmer and all his brethren can never escape.
References
[[Montgomery-Dirt]]
Core Notes
[[Create Glut and Profit]]
Location
-
@ 52b4a076:e7fad8bd
2024-04-10 01:12:11Why this is happening
This happens due to an invalid real IP header.
You are most likely using
X-Forwarded-For
as the real IP header. Strfry expects the real IP header to contain just an IP, but theX-Forwarded-For
header is a list of IPs, with every proxy adding the IP of where it got the request from.If a client specifies an X-Forwarded-For header, like
X-Forwarded-For: 1.1.1.1
, your proxy will add the remote IP, like this:X-Forwarded-For: 1.1.1.1, 127.0.0.1
When you use$proxy_add_x_forwarded_for
in Nginx, this is what it is doing: appending the remote IP to the header.Strfry tries parsing
1.1.1.1, 127.0.0.1
as an IP address, fails, and throws an exception.How to fix it
If you are using Caddy, just switch to
X-Real-IP
.If you are using Nginx, you can add a real IP header like so, and switch to using it:
proxy_set_header X-Real-IP $remote_addr;
You can also disable the real IP header, but this will cause problems if you use a write filter script or look at the logs.
-
@ 46fcbe30:6bd8ce4d
2024-04-05 16:31:16Opinion about Samourai Wallet (android)
Samourai has cost me many many hours due to their strong social media presence and constant ad hominem attacks. They blamed me for not being able to compile or reproduce their product instead of helping me to compile it. Given I compile wallets all the time as can be found on walletscrutiny, I doubt I lack the expertise to compile wallets but even if I did, why not show me? Not one developer other than their team themselves disagreed with my technical assessments of their product. Apart from proven scams, this is the product I trust least in the whole space.
But it's not only me. To quote Bitcoin Core developer and absolute genius Gregory Maxwell:
I have seen far too much outright dishonest and extremely incompetent behaviour from Samourai to ever trust it myself. Samourai has very poor privacy while bragging about having good privacy: It sends your addresses all back to their server. Their "trusted node" mode doesn't change this, it just exposes your Bitcoin node to attacks completely needlessly. (Needlessly because they only use it to relay transactions, which they could do via the public P2P ports of any node, and because since they've already sent your addresses back to their server sending your transactions via something else doesn't increase your privacy.) If you want strong privacy then as a start you need to run a full node (and use either Bitcoin Core wallet, or run your own electrum server), preferably via tor. I don't doubt that they want and intend to eventually have good privacy but it seems that they're just unable to stop lying about it, even after previously being caught.
You can find many more very competent people complaining about Samourai's dishonesity and aggressive behavior or outright incompetence if not malice here, here, here, and here. And yes, those links are to nopara, who is the founder of Wasabi wallet which targets the same audience of privacy focused users but that doesn't take away from the facts reported there.
Stay away from Scamourai!
WalletScrutiny #nostrOpinion
-
@ e3b5f432:f5bee9d0
2024-06-13 05:05:49The story of the app I want to show you today began around the year 2014 in Mexico City, where a team of young entrepreneurs was seeking a solution for communication in situations where there's no cellular signal or internet connection. Their idea was to create an application that would allow people to communicate effectively at any time and place, even in the most critical moments. Do you know which app I'm talking about? Its name is Bridgefy, a decentralized communication app based on mesh network.
Mesh Network
A mesh network is a type of communication network where connected devices communicate directly with each other, without relying on a centralized infrastructure. Each device acts as a node in the network, providing advantages such as resilience to failures, scalability, and autonomy.
These networks are useful in areas with limited communication infrastructure and during emergencies. They also offer a level of privacy by avoiding routing through centralized servers. Bridgefy takes another step to protect your privacy and anonymity by using encrypted messages based on the AES (Advanced Encryption Standard), a widely recognized, robust, and secure encryption method.
Trial by fire
The opportunity to test Bridgefy came in 2017, when Mexico was hit by a series of devastating earthquakes. These natural disasters left entire cities without internet access and with overloaded or damaged mobile networks—a perfect scenario to test Bridgefy.
The result? The app quickly became a lifeline for Mexicans during those terrible days. It allowed people to communicate with their loved ones, share valuable information in critical moments, and coordinate rescue efforts. The app passed its test with flying colors, overcoming the lack of traditional connectivity and demonstrating that mesh network technology could make a difference in such situations.
But does it end there? No, that was just the first test. Bridgefy has another anecdote on the other side of the world, in a completely different context, which I'll tell you about now.
Beyond Mexico
In 2019, thousands of citizens in Hong Kong rose in protest against an extradition bill that threatened their freedoms and fundamental principles. As tensions escalated, authorities blocked internet access, leaving protesters in a precarious communication situation. And what solution did the protesters find?
Yes, once again, Bridgefy appeared. The app helped protect the identity (and even physical integrity) of the protesters. Moreover, using mesh network technology as explained earlier, it enabled communication between nearby devices without relying on the internet or cellular coverage. This proved essential in maintaining secure, decentralized, and private communication among the protesters, resisting all censorship and surveillance efforts by the government.
The protesters were able to coordinate actions, share information, and stay connected even when authorities completely blocked internet access. Another successful trial under fire.
A tool for critical situations
Bridgefy is an example of how technological innovation can change how we communicate and confront challenges in critical moments. From its inception in Mexico, its vital importance during earthquakes in the country, to its contribution during protests in Hong Kong, Bridgefy has shown that technology can be a powerful ally in community resilience and defense of freedom of expression. These two completely different examples demonstrate its versatility.
This tool is a reminder that innovation can make a difference in people's lives when it's needed most.
You might be interested:
-
@ 8d34bd24:414be32b
2024-06-14 15:44:12First thing this morning I was reading Proverbs 16. (One of our pastors had recommended reading the Bible before doing anything online which I used to do, but hadn’t been doing lately.) There were multiple verses on pride.
Everyone who is proud in heart is an abomination to the Lord; Assuredly, he will not be unpunished. (Proverbs 16:5)
Pride goes before destruction, And a haughty spirit before stumbling. (Proverbs 16:18)
It is better to be humble in spirit with the lowly Than to divide the spoil with the proud. (Proverbs 16:19)
Since it is “Pride Month”, I started thinking about pride and especially Lucifer’s fall to become Satan or the Devil. What caused the most beautiful angel in heaven to become the monster we know as the Devil? It was PRIDE.
“12You had the seal of perfection,
Full of wisdom and perfect in beauty.
13You were in Eden, the garden of God;
Every precious stone was your covering:
The ruby, the topaz and the diamond;
The beryl, the onyx and the jasper;
The lapis lazuli, the turquoise and the emerald;
And the gold, the workmanship of your settings and sockets,
Was in you.
On the day that you were created
They were prepared.
14You were the anointed cherub who covers,
And I placed you there.
You were on the holy mountain of God;
You walked in the midst of the stones of fire.
15You were blameless in your ways
From the day you were created
Until unrighteousness was found in you.
16By the abundance of your trade
You were internally filled with violence,
And you sinned;
Therefore I have cast you as profane
From the mountain of God.
And I have destroyed you, O covering cherub,
From the midst of the stones of fire.
17Your heart was lifted up because of your beauty;
You corrupted your wisdom by reason of your splendor.
I cast you to the ground;
I put you before kings,
That they may see you.
18By the multitude of your iniquities,
In the unrighteousness of your trade
You profaned your sanctuaries.
Therefore I have brought fire from the midst of you;
It has consumed you,
And I have turned you to ashes on the earth
In the eyes of all who see you.
19All who know you among the peoples
Are appalled at you;
You have become terrified
And you will cease to be forever.” ’ ” (Ezekiel 28:12b-19)Lucifer became prideful of his God given splendor and it transformed him from the most beautiful angel in heaven to a monstrous evil, the face in our nightmares. Instead of being grateful that God had made him and made him with great beauty, strength, and wisdom, he tried to steal God’s position and claim God’s glory. Pride can turn anything and anyone into something unimaginably ugly.
How you have fallen from heaven,
O star of the morning, son of the dawn!
You have been cut down to the earth,
You who have weakened the nations!
But you said in your heart,
‘I will ascend to heaven;
I will raise my throne above the stars of God,
And I will sit on the mount of assembly
In the recesses of the north.
I will ascend above the heights of the clouds;
I will make myself like the Most High.’ (Isaiah 14:12-14)In the same way that pride transformed Lucifer, an angel of light, to Satan, the very face of evil, we, who are made in the image of God, can be transformed from God’s perfect creation that reflects the glory of God, to a thing that is evil and ugly and of no use to anyone except as an example of what not to do and what not to be.
What does it say about our society when pride is held up as something to strive for? Why does one group brag about its pride? You could argue that pride is the root of evil and sin.
We need to have a right understanding of ourselves and our relationship with God. If we haven’t submitted our lives to Jesus, we shouldn’t have pride in anything we think, say, do, or are. If we have submitted our lives to Jesus, and we are now a child of God, we need to not put down what God has honored with His covering, but the only pride we should have is in God and His glory and what Jesus did for us on the cross.
Not that we are adequate in ourselves to consider anything as coming from ourselves, but our adequacy is from God, (2 Corinthians 3:5)
indeed, we had the sentence of death within ourselves so that we would not trust in ourselves, but in God who raises the dead; (2 Corinthians 1:9)
Instead of being proud of who we are or what we have done, we need to praise and worship God for who He is and what He has done and who He has made us. He never makes a mistake.
Shout joyfully to the Lord, all the earth.
2Serve the Lord with gladness;
Come before Him with joyful singing.
3Know that the Lord Himself is God;
It is He who has made us, and not we ourselves;
We are His people and the sheep of His pasture.
4Enter His gates with thanksgiving
And His courts with praise.
Give thanks to Him, bless His name.
5For the Lord is good;
His lovingkindness is everlasting
And His faithfulness to all generations. (Psalms 100)Trust Jesus.
Bible verses are NASB (New American Standard Bible) 1995 edition unless otherwise stated
-
@ 3bf0c63f:aefa459d
2024-01-29 02:19:25Nostr: a quick introduction, attempt #1
Nostr doesn't have a material existence, it is not a website or an app. Nostr is just a description what kind of messages each computer can send to the others and vice-versa. It's a very simple thing, but the fact that such description exists allows different apps to connect to different servers automatically, without people having to talk behind the scenes or sign contracts or anything like that.
When you use a Nostr client that is what happens, your client will connect to a bunch of servers, called relays, and all these relays will speak the same "language" so your client will be able to publish notes to them all and also download notes from other people.
That's basically what Nostr is: this communication layer between the client you run on your phone or desktop computer and the relay that someone else is running on some server somewhere. There is no central authority dictating who can connect to whom or even anyone who knows for sure where each note is stored.
If you think about it, Nostr is very much like the internet itself: there are millions of websites out there, and basically anyone can run a new one, and there are websites that allow you to store and publish your stuff on them.
The added benefit of Nostr is that this unified "language" that all Nostr clients speak allow them to switch very easily and cleanly between relays. So if one relay decides to ban someone that person can switch to publishing to others relays and their audience will quickly follow them there. Likewise, it becomes much easier for relays to impose any restrictions they want on their users: no relay has to uphold a moral ground of "absolute free speech": each relay can decide to delete notes or ban users for no reason, or even only store notes from a preselected set of people and no one will be entitled to complain about that.
There are some bad things about this design: on Nostr there are no guarantees that relays will have the notes you want to read or that they will store the notes you're sending to them. We can't just assume all relays will have everything — much to the contrary, as Nostr grows more relays will exist and people will tend to publishing to a small set of all the relays, so depending on the decisions each client takes when publishing and when fetching notes, users may see a different set of replies to a note, for example, and be confused.
Another problem with the idea of publishing to multiple servers is that they may be run by all sorts of malicious people that may edit your notes. Since no one wants to see garbage published under their name, Nostr fixes that by requiring notes to have a cryptographic signature. This signature is attached to the note and verified by everybody at all times, which ensures the notes weren't tampered (if any part of the note is changed even by a single character that would cause the signature to become invalid and then the note would be dropped). The fix is perfect, except for the fact that it introduces the requirement that each user must now hold this 63-character code that starts with "nsec1", which they must not reveal to anyone. Although annoying, this requirement brings another benefit: that users can automatically have the same identity in many different contexts and even use their Nostr identity to login to non-Nostr websites easily without having to rely on any third-party.
To conclude: Nostr is like the internet (or the internet of some decades ago): a little chaotic, but very open. It is better than the internet because it is structured and actions can be automated, but, like in the internet itself, nothing is guaranteed to work at all times and users many have to do some manual work from time to time to fix things. Plus, there is the cryptographic key stuff, which is painful, but cool.
-
@ e3b5f432:f5bee9d0
2024-06-13 03:50:13The vision of the "new man" proposed by Guevara aspired to create individuals deeply committed to socialist values, completely detached from the individualistic mentality inherent in capitalism. The UMAP (1965-1968), conceived as centers where young Cubans would actively participate in production, represented the fertile ground for the germination of this new model of citizen, shaped by the principles of solidarity and dedication to the common good. However, this "noble" aspiration was overshadowed by controversy. As they began to be implemented, strong criticisms emerged regarding the working conditions and restrictions on individual freedoms. How severe were these restrictions? Were the criticisms exaggerated? Let's see.
Heil Hitler or Heil Castro?
The UMAP internees were transported in convoys from different provinces to Camagüey, where the camps were located. There, they were subjected to a process of "reeducation" consisting of strenuous agricultural labor, ideological indoctrination, humiliation, mistreatment, and torture. Guess who the inmates were who ended up in the UMAP? Yes, although it might surprise you, they were mostly young people considered "antisocial" or "counterrevolutionary" due to their sexual orientation, religious beliefs, political affiliation, or critical attitude towards the Cuban revolutionary process. These individuals worked 10 to 12 hours a day, from sunrise to sunset, without rest or recreation. The food was deficient and of poor quality, the water was unsanitary, and the hygienic conditions were precarious. The barracks were overcrowded, without electricity or ventilation. The latrines were open pits, and there were no showers. The internees had no access to medical care or medications and suffered from diseases such as malaria, dysentery, tuberculosis, and scabies.
The inmates were constantly monitored by armed guards, dogs, and electrified fences. They had no right to communicate with their families or receive visits. Those who attempted to escape or protest were severely punished with beatings, isolation, confinement in punishment cells, or execution. Does this sound familiar? I bet it does. Homosexuals, religious individuals, or intellectuals were subjected to mockery, insults, threats, and sexual assaults by the guards and other inmates. Some were forced to participate in degrading acts such as human cockfights, initiation rituals, or mock weddings. In short, the process of creating the new man was in full swing.
Some data
According to former intelligence director Norberto Fuentes, out of approximately 35,000 internees, 507 ended up in psychiatric wards, 72 died from torture, and 180 committed suicide. Some famous people who went through these cruelties include Jaime Ortega (Cardinal and Archbishop of Havana), Carlos L. Alas (singer and composer), Pablo Milanés (singer and composer), Félix L. Viera (writer and journalist), Héctor Santiago (playwright and choreographer), among many others, some not as well known.
Despite the Cuban government dissolving them in 1970, following international protests and the visit of French writer Jean-Paul Sartre, it never acknowledged their existence or apologized to the victims. Many of the UMAP survivors suffered psychological trauma, social marginalization, and forced exile. Their stories are a testament to human resistance and dignity in the face of barbarism.
Forgive, forget? No
The UMAP were one of the cruelest expressions of repression and human rights violations in Cuba. In their attempt to merge production with individual transformation, they became a microcosm of revolutionary complexities. The utopia of the "new man" clashed with the reality of imposed limitations, sparking an internal debate on the applicability of ideals in practice. The UMAP experience offers profound lessons on the need to balance social transformation with respect for individual autonomy, a lesson relevant not only for Cuba but for any society seeking to redefine itself through revolutionary changes.
You might be interested:
-
@ 079d727b:00099650
2024-04-05 00:45:27Found these somewhere and I totally can't remember who authored the note. I THANK YOU! Also here's a reddit link for those who want to get started!
https://nostr.com/ - A decentralized social network with a chance of working
https://www.whynostr.com/ - the WHY https://www.heynostr.com/ - Introduction https://uselessshit.co/resources/nostr/ - Plentiful Guides and resources https://kyc3.life/resources/ - LIFE KYC (Know Your Customer) FREE (#IMPORTANT) https://www.reddit.com/r/nostr/ - Reddit Nostr Feed https://fountain.fm/show/0N6GGdZuYNNG7ysagCg9 - Plebchain Radio Podcast https://stacker.news/items/492921 - Guide by @TresDMan https://nostr.how/en/get-started - Understanding the basics https://www.nostrapps.com/ - A directory of Nostr Apps https://nak.nostr.com/ - nostr army knife (dev tool) https://nostrstuff.com/ - A terminal for playing with Nostr https://nostrfreaks.com/add/ - Multiple Web Client Viewer https://nostrends.vercel.app/ - What's trending on Nostr? https://nosta.me - Profile Viewer
And now here's a list of sites which are Nostr friendly.
R/nostr user's collection of nostr apps:
- https://nostr.watch/relays/find - Finding Nostr Relays (#IMPORTANT#)
- https://shopstr.store/marketplace - A Nostr Marketplace
- https://zap.stream/ - A Nostr Live Streaming Site
- https://formstr.app/ - Creating your own Forms on Nostr
- https://metadata.nostr.com/ - Nostr Profile Manager (#IMPORTANT#)
- https://shipyard.pub/posts - Write, schedule, and boost your notes.
- https://slidestr.net/ - Nostr Slideshow
- https://github.com/aljazceru/awesome-nostr - an AMAZING list of ALOT
- https://pinstr.app/ - Pinning content on Nostr
- https://plebeian.market/ - A Nostr Marketplace
- https://nostree.me/ - A Nostr Linktree
- https://listr.lol/feed - Curate, Organize, and Discover everything Nostr has
- https://www.wavlake.com/ - a V4V music streaming site on Nostr
- https://ostrich.work/ - The first and best Nostr Jobs board on the internet.
- https://zaplife.lol/ - A live feed of zaps
- https://highlighter.com/ - The site you're on right now!
- https://shopstr.store/ - An Nostr Marketplace
- https://nostr.band/ - A Nostr search engine
- https://nostrudel.ninja/#/ - A Nostr Client/Frontend
- https://dtan.xyz/ - A Nostr Torrent site
- https://app.mutinywallet.com/ - A Lightning wallet with Nostr Integration
- https://www.flockstr.com/ - Events and Meetups on Nostr
- https://cornychat.com/ - A live talk space on Nostr akin to Twitter Spaces
- https://nostrnests.com/ - A Live Talk Space on Nostr akin to Twitter Spaces
- https://comingle.co/ - conference app powered by Nostr
- https://geyser.fund/ - A crowdfunding site powered in part by Nostr
- https://heya.fund/ - Fund causes and goals with lightning on Nostr
- https://www.nostrchat.io/ - A Chat Client on Nostr
- https://w3.do/ - A URL Shortener on Nostr
- https://yakihonne.com/ - Long form writing on Nostr
- https://habla.news/ - Long form writing on Nostr
- https://nostrsync.live/ - A Broadcast & Export Service for your Data
- https://follows.lol/ - The Nostr follower tool
- https://globalthreat.info/ - Realtime global threat assessment driven by AI
There is ALOT more out there so I recommend you look at https://github.com/aljazceru/awesome-nostr !
Nostrapps is also excellent for finding web clients to actually view the twitter style of the Nostr.
I shall update this list from time to time with more or less content... hopefully. Or something cooler will come out and I'll use that. 🤷
-
@ c73818cc:ccd5c890
2024-06-14 15:20:11🌈 In un'intervista esclusiva con Bitcoin Magazine, Willem Schroé di Botanix Labs ha svelato i dettagli di Spiderchain, una sidechain innovativa che combina Proof of Stake (PoS) e multisig per scalare la rete Bitcoin. Utilizzando l'Ethereum Virtual Machine (EVM) e meccanismi unici di PoS, Spiderchain mira a risolvere i problemi di centralizzazione e sicurezza delle soluzioni attuali. Questa nuova architettura promette di migliorare la sicurezza, la decentralizzazione e l'efficienza del capitale, segnando un passo avanti significativo per l'ecosistema Bitcoin. Approfondiremo il progetto nel prossimo futuro, per capire i vantaggi che promette e valutare se non sia uno dei tanti tentativi di attacco a Bitcoin mascherato da innovazione.
Unisciti al nostro gruppo Telegram: https://t.me/Bitcoin_Report_Italia
BitcoinReportItalia #Magazine #Botanix #Spiderchain #Criptovalute #Sidechain #ProofofStake #PoS #Ethereum #EVM #Crypto #Bitcoin
-
@ 079d727b:00099650
2024-04-04 02:52:11https://i.nostr.build/vGd7P.png
What am I doing here? What am I doing here with Fatty and Spotty Fatty and Spotty Fatty and Spotty What am I doing here with Fatty and Spotty
SORRY! This will make no sense unless you've seen the British Channel 4 sitcom, Black Books. Actually, not sorry at all. Because here's a link to watch the entire series off YT. Otherwise I dunno, torrent or news it, or even better... BUY THE DVD BOXSET SECOND HAND!!! (The decent boxset should have commentary tracks for Season 1 & Season 2, making the show twice as good imo.)
https://www.youtube.com/watch?v=bcQb7zEzXv8 (Enjoy! Also I recommend starting at Season 1 Episode 1 as what I've linked is S2E3). Stars the very talented, Bill Bailey, Dylan Moran and Tamsin Greig. Directed by Graham Linehan I'm pretty sure and he was just 'censored' by the trans police so you know it's probably quite funny. 😂
Many thanks to PABLOF7z for being my FIRST foundational supporter. That really means A LOT! I remember blogging in the mid 90's before the word blog was a thing. One of these day's I'll upload the html pages which show how stupid 13yr old's can be. But shit.. the enthusiasm and pure joy I got from blogging... I don't know if anything has compared in those 20+ years from writing. I hope to bring it back with these Highlighter posts which I plan to drain and publish my thoughts, finds and whatever discoveries I may find interesting.
Apologies if this bores the shit out of you. That's also why it's free. 🫡
Many more links, resources and the brain of tigs' - coming to nostr... really soon.
P.S. Don't expect anything useful or educational or in any particular order, this is MY brain after all 😂
💜🤙🫂 - tigs
-
@ 3bf0c63f:aefa459d
2024-01-15 11:15:06Pequenos problemas que o Estado cria para a sociedade e que não são sempre lembrados
- **vale-transporte**: transferir o custo com o transporte do funcionário para um terceiro o estimula a morar longe de onde trabalha, já que morar perto é normalmente mais caro e a economia com transporte é inexistente. - **atestado médico**: o direito a faltar o trabalho com atestado médico cria a exigência desse atestado para todas as situações, substituindo o livre acordo entre patrão e empregado e sobrecarregando os médicos e postos de saúde com visitas desnecessárias de assalariados resfriados. - **prisões**: com dinheiro mal-administrado, burocracia e péssima alocação de recursos -- problemas que empresas privadas em competição (ou mesmo sem qualquer competição) saberiam resolver muito melhor -- o Estado fica sem presídios, com os poucos existentes entupidos, muito acima de sua alocação máxima, e com isto, segundo a bizarra corrente de responsabilidades que culpa o juiz que condenou o criminoso por sua morte na cadeia, juízes deixam de condenar à prisão os bandidos, soltando-os na rua. - **justiça**: entrar com processos é grátis e isto faz proliferar a atividade dos advogados que se dedicam a criar problemas judiciais onde não seria necessário e a entupir os tribunais, impedindo-os de fazer o que mais deveriam fazer. - **justiça**: como a justiça só obedece às leis e ignora acordos pessoais, escritos ou não, as pessoas não fazem acordos, recorrem sempre à justiça estatal, e entopem-na de assuntos que seriam muito melhor resolvidos entre vizinhos. - **leis civis**: as leis criadas pelos parlamentares ignoram os costumes da sociedade e são um incentivo a que as pessoas não respeitem nem criem normas sociais -- que seriam maneiras mais rápidas, baratas e satisfatórias de resolver problemas. - **leis de trãnsito**: quanto mais leis de trânsito, mais serviço de fiscalização são delegados aos policiais, que deixam de combater crimes por isto (afinal de contas, eles não querem de fato arriscar suas vidas combatendo o crime, a fiscalização é uma excelente desculpa para se esquivarem a esta responsabilidade). - **financiamento educacional**: é uma espécie de subsídio às faculdades privadas que faz com que se criem cursos e mais cursos que são cada vez menos recheados de algum conhecimento ou técnica útil e cada vez mais inúteis. - **leis de tombamento**: são um incentivo a que o dono de qualquer área ou construção "histórica" destrua todo e qualquer vestígio de história que houver nele antes que as autoridades descubram, o que poderia não acontecer se ele pudesse, por exemplo, usar, mostrar e se beneficiar da história daquele local sem correr o risco de perder, de fato, a sua propriedade. - **zoneamento urbano**: torna as cidades mais espalhadas, criando uma necessidade gigantesca de carros, ônibus e outros meios de transporte para as pessoas se locomoverem das zonas de moradia para as zonas de trabalho. - **zoneamento urbano**: faz com que as pessoas percam horas no trânsito todos os dias, o que é, além de um desperdício, um atentado contra a sua saúde, que estaria muito melhor servida numa caminhada diária entre a casa e o trabalho. - **zoneamento urbano**: torna ruas e as casas menos seguras criando zonas enormes, tanto de residências quanto de indústrias, onde não há movimento de gente alguma. - **escola obrigatória + currículo escolar nacional**: emburrece todas as crianças. - **leis contra trabalho infantil**: tira das crianças a oportunidade de aprender ofícios úteis e levar um dinheiro para ajudar a família. - **licitações**: como não existem os critérios do mercado para decidir qual é o melhor prestador de serviço, criam-se comissões de pessoas que vão decidir coisas. isto incentiva os prestadores de serviço que estão concorrendo na licitação a tentar comprar os membros dessas comissões. isto, fora a corrupção, gera problemas reais: __(i)__ a escolha dos serviços acaba sendo a pior possível, já que a empresa prestadora que vence está claramente mais dedicada a comprar comissões do que a fazer um bom trabalho (este problema afeta tantas áreas, desde a construção de estradas até a qualidade da merenda escolar, que é impossível listar aqui); __(ii)__ o processo corruptor acaba, no longo prazo, eliminando as empresas que prestavam e deixando para competir apenas as corruptas, e a qualidade tende a piorar progressivamente. - **cartéis**: o Estado em geral cria e depois fica refém de vários grupos de interesse. o caso dos taxistas contra o Uber é o que está na moda hoje (e o que mostra como os Estados se comportam da mesma forma no mundo todo). - **multas**: quando algum indivíduo ou empresa comete uma fraude financeira, ou causa algum dano material involuntário, as vítimas do caso são as pessoas que sofreram o dano ou perderam dinheiro, mas o Estado tem sempre leis que prevêem multas para os responsáveis. A justiça estatal é sempre muito rígida e rápida na aplicação dessas multas, mas relapsa e vaga no que diz respeito à indenização das vítimas. O que em geral acontece é que o Estado aplica uma enorme multa ao responsável pelo mal, retirando deste os recursos que dispunha para indenizar as vítimas, e se retira do caso, deixando estas desamparadas. - **desapropriação**: o Estado pode pegar qualquer propriedade de qualquer pessoa mediante uma indenização que é necessariamente inferior ao valor da propriedade para o seu presente dono (caso contrário ele a teria vendido voluntariamente). - **seguro-desemprego**: se há, por exemplo, um prazo mínimo de 1 ano para o sujeito ter direito a receber seguro-desemprego, isto o incentiva a planejar ficar apenas 1 ano em cada emprego (ano este que será sucedido por um período de desemprego remunerado), matando todas as possibilidades de aprendizado ou aquisição de experiência naquela empresa específica ou ascensão hierárquica. - **previdência**: a previdência social tem todos os defeitos de cálculo do mundo, e não importa muito ela ser uma forma horrível de poupar dinheiro, porque ela tem garantias bizarras de longevidade fornecidas pelo Estado, além de ser compulsória. Isso serve para criar no imaginário geral a idéia da __aposentadoria__, uma época mágica em que todos os dias serão finais de semana. A idéia da aposentadoria influencia o sujeito a não se preocupar em ter um emprego que faça sentido, mas sim em ter um trabalho qualquer, que o permita se aposentar. - **regulamentação impossível**: milhares de coisas são proibidas, há regulamentações sobre os aspectos mais mínimos de cada empreendimento ou construção ou espaço. se todas essas regulamentações fossem exigidas não haveria condições de produção e todos morreriam. portanto, elas não são exigidas. porém, o Estado, ou um agente individual imbuído do poder estatal pode, se desejar, exigi-las todas de um cidadão inimigo seu. qualquer pessoa pode viver a vida inteira sem cumprir nem 10% das regulamentações estatais, mas viverá também todo esse tempo com medo de se tornar um alvo de sua exigência, num estado de terror psicológico. - **perversão de critérios**: para muitas coisas sobre as quais a sociedade normalmente chegaria a um valor ou comportamento "razoável" espontaneamente, o Estado dita regras. estas regras muitas vezes não são obrigatórias, são mais "sugestões" ou limites, como o salário mínimo, ou as 44 horas semanais de trabalho. a sociedade, porém, passa a usar esses valores como se fossem o normal. são raras, por exemplo, as ofertas de emprego que fogem à regra das 44h semanais. - **inflação**: subir os preços é difícil e constrangedor para as empresas, pedir aumento de salário é difícil e constrangedor para o funcionário. a inflação força as pessoas a fazer isso, mas o aumento não é automático, como alguns economistas podem pensar (enquanto alguns outros ficam muito satisfeitos de que esse processo seja demorado e difícil). - **inflação**: a inflação destrói a capacidade das pessoas de julgar preços entre concorrentes usando a própria memória. - **inflação**: a inflação destrói os cálculos de lucro/prejuízo das empresas e prejudica enormemente as decisões empresariais que seriam baseadas neles. - **inflação**: a inflação redistribui a riqueza dos mais pobres e mais afastados do sistema financeiro para os mais ricos, os bancos e as megaempresas. - **inflação**: a inflação estimula o endividamento e o consumismo. - **lixo:** ao prover coleta e armazenamento de lixo "grátis para todos" o Estado incentiva a criação de lixo. se tivessem que pagar para que recolhessem o seu lixo, as pessoas (e conseqüentemente as empresas) se empenhariam mais em produzir coisas usando menos plástico, menos embalagens, menos sacolas. - **leis contra crimes financeiros:** ao criar legislação para dificultar acesso ao sistema financeiro por parte de criminosos a dificuldade e os custos para acesso a esse mesmo sistema pelas pessoas de bem cresce absurdamente, levando a um percentual enorme de gente incapaz de usá-lo, para detrimento de todos -- e no final das contas os grandes criminosos ainda conseguem burlar tudo.
-
@ 3bf0c63f:aefa459d
2024-06-12 15:26:56How to do curation and businesses on Nostr
Suppose you want to start a Nostr business.
You might be tempted to make a closed platform that reuses Nostr identities and grabs (some) content from the external Nostr network, only to imprison it inside your thing -- and then you're going to run an amazing AI-powered algorithm on that content and "surface" only the best stuff and people will flock to your app.
This will be specially good if you're going after one of the many unexplored niches of Nostr in which reading immediately from people you know doesn't work as you generally want to discover new things from the outer world, such as:
- food recipe sharing;
- sharing of long articles about varying topics;
- markets for used goods;
- freelancer work and job offers;
- specific in-game lobbies and matchmaking;
- directories of accredited professionals;
- sharing of original music, drawings and other artistic creations;
- restaurant recommendations
- and so on.
But that is not the correct approach and damages the freedom and interoperability of Nostr, posing a centralization threat to the protocol. Even if it "works" and your business is incredibly successful it will just enshrine you as the head of a platform that controls users and thus is prone to all the bad things that happen to all these platforms. Your company will start to display ads and shape the public discourse, you'll need a big legal team, the FBI will talk to you, advertisers will play a big role and so on.
If you are interested in Nostr today that must be because you appreciate the fact that it is not owned by any companies, so it's safe to assume you don't want to be that company that owns it. So what should you do instead? Here's an idea in two steps:
- Write a Nostr client tailored to the niche you want to cover
If it's a music sharing thing, then the client will have a way to play the audio and so on; if it's a restaurant sharing it will have maps with the locations of the restaurants or whatever, you get the idea. Hopefully there will be a NIP or a NUD specifying how to create and interact with events relating to this niche, or you will write or contribute with the creation of one, because without interoperability none of this matters much.
The client should work independently of any special backend requirements and ideally be open-source. It should have a way for users to configure to which relays they want to connect to see "global" content -- i.e., they might want to connect to
wss://nostr.chrysalisrecords.com/
to see only the latest music releases accredited by that label or towss://nostr.indiemusic.com/
to get music from independent producers from that community.- Run a relay that does all the magic
This is where your value-adding capabilities come into play: if you have that magic sauce you should be able to apply it here. Your service, let's call it
wss://magicsaucemusic.com/
, will charge people or do some KYM (know your music) validation or use some very advanced AI sorcery to filter out the spam and the garbage and display the best content to your users who will request the global feed from it (["REQ", "_", {}]
), and this will cause people to want to publish to your relay while others will want to read from it.You set your relay as the default option in the client and let things happen. Your relay is like your "website" and people are free to connect to it or not. You don't own the network, you're just competing against other websites on a leveled playing field, so you're not responsible for it. Users get seamless browsing across multiple websites, unified identities, a unified interface (that could be different in a different client) and social interaction capabilities that work in the same way for all, and they do not depend on you, therefore they're more likely to trust you.
Does this centralize the network still? But this a simple and easy way to go about the matter and scales well in all aspects.
Besides allowing users to connect to specific relays for getting a feed of curated content, such clients should also do all kinds of "social" (i.e. following, commenting etc) activities (if they choose to do that) using the outbox model -- i.e. if I find a musician I like under
wss://magicsaucemusic.com
and I decide to follow them I should keep getting updates from them even if they get banned from that relay and start publishing onwss://nos.lol
orwss://relay.damus.io
or whatever relay that doesn't even know what music is.The hardcoded defaults and manual typing of relay URLs can be annoying. But I think it works well at the current stage of Nostr development. Soon, though, we can create events that recommend other relays or share relay lists specific to each kind of activity so users can get in-app suggestions of relays their friends are using to get their music from and so on. That kind of stuff can go a long way.
-
@ 3bf0c63f:aefa459d
2024-01-14 14:52:16bitcoind
decentralizationIt is better to have multiple curator teams, with different vetting processes and release schedules for
bitcoind
than a single one."More eyes on code", "Contribute to Core", "Everybody should audit the code".
All these points repeated again and again fell to Earth on the day it was discovered that Bitcoin Core developers merged a variable name change from "blacklist" to "blocklist" without even discussing or acknowledging the fact that that innocent pull request opened by a sybil account was a social attack.
After a big lot of people manifested their dissatisfaction with that event on Twitter and on GitHub, most Core developers simply ignored everybody's concerns or even personally attacked people who were complaining.
The event has shown that:
1) Bitcoin Core ultimately rests on the hands of a couple maintainers and they decide what goes on the GitHub repository[^pr-merged-very-quickly] and the binary releases that will be downloaded by thousands; 2) Bitcoin Core is susceptible to social attacks; 2) "More eyes on code" don't matter, as these extra eyes can be ignored and dismissed.
Solution:
bitcoind
decentralizationIf usage was spread across 10 different
bitcoind
flavors, the network would be much more resistant to social attacks to a single team.This has nothing to do with the question on if it is better to have multiple different Bitcoin node implementations or not, because here we're basically talking about the same software.
Multiple teams, each with their own release process, their own logo, some subtle changes, or perhaps no changes at all, just a different name for their
bitcoind
flavor, and that's it.Every day or week or month or year, each flavor merges all changes from Bitcoin Core on their own fork. If there's anything suspicious or too leftist (or perhaps too rightist, in case there's a leftist
bitcoind
flavor), maybe they will spot it and not merge.This way we keep the best of both worlds: all software development, bugfixes, improvements goes on Bitcoin Core, other flavors just copy. If there's some non-consensus change whose efficacy is debatable, one of the flavors will merge on their fork and test, and later others -- including Core -- can copy that too. Plus, we get resistant to attacks: in case there is an attack on Bitcoin Core, only 10% of the network would be compromised. the other flavors would be safe.
Run Bitcoin Knots
The first example of a
bitcoind
software that follows Bitcoin Core closely, adds some small changes, but has an independent vetting and release process is Bitcoin Knots, maintained by the incorruptible Luke DashJr.Next time you decide to run
bitcoind
, run Bitcoin Knots instead and contribute tobitcoind
decentralization!
See also:
[^pr-merged-very-quickly]: See PR 20624, for example, a very complicated change that could be introducing bugs or be a deliberate attack, merged in 3 days without time for discussion.
-
@ 92cb589e:adb37f9b
2024-06-14 13:37:49dgRQLMBm47/oFF+8aqXivrydTiFIhWuC5ncQEdM8Ccc=?iv=YUg2qR3zq9+ojBlB/8KhIw==
-
@ 2f7463a4:e92b8023
2024-04-02 12:36:25Original „Speaking Freely“ von Gigi, veröffentlicht zur Blockzeit 836245 unter der CC BY-SA 4.0 Lizenz. Übersetzt von sefiro.
Neulich unterhielt ich mich mit einem Freund und wir kamen auf das Problem der Meinungsfreiheit zu sprechen. Ich sollte es nicht als Problem bezeichnen, denn es ist die Lösung eines Problems. Das Problem ist ein immerwährendes Problem, was eine andere Art ist zu sagen, dass es ein wirklich schwieriges Problem ist, ein Problem, mit dem wir immer konfrontiert sein werden, solange wir Menschen sind.
Das Problem ist folgendes: Was ist das Problem, das es zu lösen gilt? Es ist ein Problem von Problemen, was natürlich ein Metaproblem ist. Wir als Homo Sapiens sind ein denkender Organismus. Sowohl kollektiv als auch individuell. Denken ist das, was uns ausmacht, aber es ist nicht einfach Denken als Selbstzweck, es ist Denken, um Dinge herauszufinden, ohne ständig dabei umgebracht zu werden. Eine weniger brutale Form der Evolution sozusagen.
Die Menschen der Antike haben der Aufmerksamkeit einen sehr hohen Wert beigemessen. Auch die Aufmerksamkeit ist von einem Metaproblem geplagt: Worauf soll man seine Aufmerksamkeit richten? Um diese Frage zu beantworten, muss man darauf achten, worauf man seine Aufmerksamkeit richtet, und das unterscheidet einen klugen von einem weisen Menschen.
Das bringt mich zu einem der Dinge die mir derzeit Sorgen bereiten. Wir sind zivilisatorisch gesehen sehr klug, aber nicht sehr weise. Wir sind schlecht darin, auf das zu achten, worauf wir unsere Aufmerksamkeit richten, zumindest gegenwärtig. Und ich fürchte, dass sowohl die falschen Anreize, die das Internet plagen, als auch unser kaputtes Geld daran schuld sind.
Annahmen [n=0]
- ∀ i ≤ c[^1]
- P! = NP[^2]
- Leben ist es wert gelebt zu werden[^3]
- Es gibt kein kostenloses Mittagessen[^4]
- Meinungsfreiheit ist erstrebenswert[^5]
Der Logos [n=1]
Es gibt einen Grund, warum Der Logos heilig ist. Aus dem gleichen Grund ist der Erste Zusatzartikel zur Verfassung der Vereinigten Staaten der erste, d.h. der wichtigste.
Meinungsfreiheit ist nicht optional; sie ist nicht optional, weil wir frei sprechen können müssen, um frei denken zu können. Es gibt kein echtes Denken ohne echtes Sprechen, genauso wie es kein echtes Sprechen ohne echtes Denken gibt. Es muss erlaubt sein, dummes Zeug zu sagen, so wie es erlaubt sein muss, dummes Zeug zu denken.
„Der Vernünftige passt sich der Welt an, der Unvernünftige versucht beharrlich, die Welt an sich anzupassen. Daher hängt aller Fortschritt vom Unvernünftigen ab.“\ — George Bernhard Shaw, Man and Superman
Der Grat zwischen Genie und Wahnsinn ist nicht ohne Grund schmal. Was idiotisch und was genial ist, ist oft schwer zu unterscheiden. Deshalb hängt aller Fortschritt vom Unvernünftigen ab.
Wie können wir den Unvernünftigen finden und ihm zuhören, wenn wir ihn zum Schweigen bringen? Schlimmer noch, wie können wir dem unvernünftigen/genialen Teil in uns selbst hören, wenn wir Angst haben, ihn in der Öffentlichkeit oder im Privaten zu äußern?
DiaLogos [n=2]
Auch freier und unbelasteter Dialog sind nicht optional. Wir müssen in der Lage sein, Dinge zu diskutieren, damit andere uns sagen können, wo wir idiotisch sind. Und wir sind alle idiotisch. Wir sind vielleicht auf unsere Weise idiotisch, aber wir sind alle idiotisch. Es gibt keine wertfreie Meinung, so wie es keine Sichtweise ohne blinden Fleck gibt. Das Beste, was wir tun können, ist, uns unserer Vorurteile und blinden Flecken bewusst zu werden und zu versuchen, ihnen entgegenzuwirken. Aber das können wir nicht individuell, das müssen wir kollektiv tun, und noch wichtiger: auf eine verteilte Art und Weise.[^6]
Der Bau eines Turms von Babel ist eine schlechte Idee.
Verteilte Erkenntnis [n=m]
Auch öffentlicher Diskurs ist nicht optional. In der heutigen Zeit, insbesondere im Internet, ist öffentlicher Diskurs, gelinde gesagt, problematisch. Eines der Probleme ist, dass wir keine öffentlichen Räume haben, so dass wir gezwungen sind, private Räume als quasi-öffentliche Räume zu nutzen.
Die übliche Methode, sich öffentlich zu äußern, besteht darin, auf eine Plattform zu gehen und zu sagen, was man zu sagen hat. Das Problem ist natürlich, dass es nicht deine Plattform ist. Es ist die Plattform eines anderen. Deshalb kannst du von der Plattform ausgeschlossen werden.
Der Unterschied zwischen all diesen Plattformen liegt im Grad, nicht in der Art. Auf einigen Plattformen kann man für sexuelle Inhalte sprichwörtlich ins Gefängnis kommen. Auf anderen Plattformen kann man für politische Äußerungen ins Gefängnis kommen. Nicht einmal sprichwörtlich.[^7]
„Geben Sie mir sechs Zeilen, die von der Hand des ehrlichsten Menschen geschrieben wurden, ich würde etwas darin finden, um ihn hängen zu lassen.“\ — Kardinal Richelieu
Wenn jemand die Macht hat, jemand anderen von einer Plattform auszuschließen, dann wird diese Macht früher oder später auch genutzt und missbraucht. Ein ausreichend großer Skandal oder eine entsprechende Kontroverse wird gefunden oder inszeniert und *puff* ist der „problematische“ Nutzer verschwunden. Depersonalisiert, auf Knopfdruck. Egal, wie mächtig man ist.[^8]
Aus diesem Grund können Plattformen für Meinungsfreiheit nicht existieren. Es kann nur Protokolle für Meinungsfreiheit geben.
Der Unterschied ist ebenso subtil wie wichtig: Wenn du ein Protokoll verwendest, bist du kein Nutzer im herkömmlichen Sinne. Du bist ein Sprecher. Du sprichst die gleiche Sprache wie andere, und wenn jemand anderes dich hören und verstehen kann, dann gibt es eine Verbindung. Es gibt keinen Vermittler. Die Sprache selbst ist der Vermittler. Sprachen sind Protokolle, und Protokolle sind Sprachen. Sie haben keine Nutzer, sie haben Sprecher.
Sprache ist naturgemäß frei. Du brauchst keinen Deutsch-Account, um diese Sätze zu lesen. Genauso wie dein Computer keinen HTTP-Account braucht, um die Nullen und Einsen zu verstehen, aus denen die Bytes bestehen, die wiederum die Zeichen dieses Satzes bilden. Beide sprechen die Sprache, daher könnt ihr euch verstehen.
Sprachen und Protokolle sind Netzwerkphänomene. Ohne Netzwerk keine Sprache. Ohne Peers keine Protokolle.
Deshalb ist Sprache, wie Geld, in einer komplexen Gesellschaft nicht optional. Wenn man in das eine oder das andere hineinpfuscht, zerbricht die Gesellschaft.
Es liegt an uns, es ist soweit [n=i]
Wir stehen an einem Wendepunkt in der Geschichte. Noch nie war unsere Zivilisation so vernetzt, so global, und sich ihrer Grenzen und Ignoranz so wenig bewusst.
Meine Hoffnung ist, dass hartes Geld und Meinungsfreiheit das wiederbeleben, was unsere Gesellschaft groß gemacht hat. Kooperation und verteilte Erkenntnis haben es uns ermöglicht, das Chaos des Dschungels hinter uns zu lassen. Sie haben es uns ermöglicht, von Auge um Auge zu einer klaren Sicht zu gelangen, zumindest teilweise. Sie haben es uns ermöglicht, von der Knappheit zum Überfluss zu gelangen. Sie haben uns ermöglicht, zur Wahrheit, zum Guten und zum Schönen zu gelangen. Sie ermöglichen es uns zu streben. Nach vorne und nach oben.
Der Kairos unserer Zeit ist ein persönlicher – vielleicht sind das alle kairotischen Momente.
Du musst entscheiden wie du weitermachen willst. Du musst entscheiden, welches Spiel du spielen willst; wie viel Verantwortung du bereit bist zu übernehmen. Willst du weiterhin in der Maschine stecken bleiben? Einer Maschine, die dich benutzt und ausnutzt? Eine Maschine, die sich selbst nährt, indem sie deine Zeit, deine Aufmerksamkeit und deinen Wert raubt und verschlingt? Oder hast du den Mut, die Kontrolle über deinen Wohlstand, deine Gesundheit, deine Gedanken und deine Sprache zu übernehmen?
Diese Entscheidung kann dir niemand abnehmen. Sie beginnt und endet mit dir.
💜
[^1]: Keine Information kann sich schneller als Lichtgeschwindigkeit verbreiten. Folglich stoßen alle Informationssysteme an physikalische Grenzen, wenn es um Synchronisation und Informationsweitergabe geht.
[^2]: Kryptographie funktioniert und wird weiterhin funktionieren. „[...] irgendwie lächelt das Universum bei Verschlüsselung.“
[^3]: Existenz ist real und gut. Weder Nihilismus noch Solipsismus sind wünschenswert. „[...] und es war gut.“
[^4]: Wir können nicht etwas für nichts haben. Freiheit erfordert Verantwortung; elektronisches Bargeld erfordert Zeit; Zeit erfordert Wärme.
[^5]: Meinungsfreiheit ist erstrebenswert, weil Freiheit der Tyrannei vorzuziehen ist, und der erste Schritt eines jeden Tyrannen ist es, die Meinungsfreiheit einzuschränken, Dissidenten zum Schweigen zu bringen, und Bücher zu verbrennen. Der zweite Schritt ist Völkermord.
[^6]: Es ist großartig, dass es immer mehr lange Dialoge in Form von Podcasts gibt. Der Nutzen dieser Gespräche geht jedoch verloren, wenn sie von einer zentralen Partei gehostet werden, weshalb ein offenes Podcast-Ökosystem so wichtig ist.
[^7]: Siehe Fälle im Vereinigten Königreich, in Saudi Arabien, etc.
[^8]: Noch nicht einmal amtierende US-Präsidenten sind vor einem Ausschluss von Plattformen sicher.
-
@ 92cb589e:adb37f9b
2024-06-14 13:36:25Asba8Wqxtyf84JfPAUyC9VPLgk5aGbbVPboyvIHbvQKdVlUqa7aqtlsdbg8i3UhCuPFAm5MvXeTMguk1A9s/tQJU4qfEVQLhr1xTXRGf6xxhV9jKth07RIFFLcJtBF1mpuCj4JzqX4ucIdds2ubzrisWGEgo99h/ypVBvrcZPyk/NAk=
-
@ b17fccdf:b7211155
2024-06-12 13:18:11🆕 What's changed:
- New bonus guide dedicated to install/upgrade/uninstall PostgreSQL
- Modified the LND guide to use PostgreSQL instead of bbolt
- Modified the Nostr relay guide to use PostgreSQL instead of SQLite (experimental)
- Modified the BTCPay Server bonus guide according to these changes
- Used the lndinit MiniBolt org fork, to add an extra section to migrate an existing LND bbolt database to PostgreSQL (🚨⚠️Experimental - use it behind your responsibility⚠️🚨)
- New Golang bonus guide as a common language for the lndinit compile
- Updated LND to v0.18
- New Bitcoin Core extra section to renovate Tor & I2P addresses
- New Bitcoin Core extra section to generate a full
bitcoin.conf
file - Rebuilt some homepage sections and general structure
- Deleted the
$
symbol of the commands to easy copy-paste to the terminal - Deleted the initial incoming and the outgoing rules configuration of UFW, due to it being by default
🪧 PD: If you want to use the old database backend of the LND or Nostr relay, follow the next extra sections:
- Use the default bbolt database backend for the LND
- Use the default SQLite database backend for the Nostr relay
⚠️Attention⚠️: The migration process was tested on testnet mode from an existing bbolt database backend to a new PostgreSQL database using lndinit and the results were successful. However, It wasn't tested on mainnet,according to the developer, it is in experimental status which could damage your existing LND database.🚨 Use it behind your responsibility 🧼
🔧 PR related: https://github.com/minibolt-guide/minibolt/pull/93
♻️ Migrate the PostgreSQL database location
If you installed NBXplorer + BTCPay Server, it is probably you have the database of the PostgreSQL cluster on the default path (
/var/lib/postgresql/16/main/
), follow the next instructions to migrate it to the new dedicated location on/data/postgresdb
folder:- With user
admin
create the dedicated PostgreSQL data folder
sudo mkdir /data/postgresdb
- Assign as the owner to the
postgres
user
sudo chown postgres:postgres /data/postgresdb
- Assign permissions of the data folder only to the
postgres
user
sudo chmod -R 700 /data/postgresdb
- Stop NBXplorer and BTCPay Server
sudo systemctl stop nbxplorer && sudo systemctl stop btcpayserver
- Stop PostgreSQL
sudo systemctl stop postgresql
- Use the rsync command to copy all files from the existing database on (
/var/lib/postgresql/16/main
) to the new destination directory (/data/postgresdb
)
sudo rsync -av /var/lib/postgresql/16/main/ /data/postgresdb/
Expected output:
``` sending incremental file list ./ PG_VERSION postgresql.auto.conf postmaster.opts postmaster.pid base/ base/1/ base/1/112 base/1/113 base/1/1247 base/1/1247_fsm base/1/1247_vm base/1/1249 base/1/1249_fsm base/1/1249_vm [...] pg_wal/000000010000000000000009 pg_wal/archive_status/ pg_xact/ pg_xact/0000
sent 164,483,875 bytes received 42,341 bytes 36,561,381.33 bytes/sec total size is 164,311,368 speedup is 1.00 ```
- Edit the PostgreSQL data directory on configuration, to redirect the store to the new location
sudo nano /etc/postgresql/16/main/postgresql.conf --linenumbers
- Replace the line 42 to this. Save and exit
data_directory = '/data/postgresdb'
- Start PostgreSQL to apply changes and monitor the correct status of the main instance and sub-instance monitoring sessions before
sudo systemctl start postgresql
- You can monitor the PostgreSQL main instance by the systemd journal and check the log output to ensure all is correct. You can exit the monitoring at any time with Ctrl-C
journalctl -fu postgresql
Example of the expected output:
Nov 08 11:51:10 minibolt systemd[1]: Stopped PostgreSQL RDBMS. Nov 08 11:51:10 minibolt systemd[1]: Stopping PostgreSQL RDBMS... Nov 08 11:51:13 minibolt systemd[1]: Starting PostgreSQL RDBMS... Nov 08 11:51:13 minibolt systemd[1]: Finished PostgreSQL RDBMS.
- You can monitor the PostgreSQL sub-instance by the systemd journal and check log output to ensure all is correct. You can exit monitoring at any time with Ctrl-C
journalctl -fu postgresql@16-main
Example of the expected output:
Nov 08 11:51:10 minibolt systemd[1]: Stopping PostgreSQL Cluster 16-main... Nov 08 11:51:11 minibolt systemd[1]: postgresql@16-main.service: Succeeded. Nov 08 11:51:11 minibolt systemd[1]: Stopped PostgreSQL Cluster 16-main. Nov 08 11:51:11 minibolt systemd[1]: postgresql@16-main.service: Consumed 1h 10min 8.677s CPU time. Nov 08 11:51:11 minibolt systemd[1]: Starting PostgreSQL Cluster 16-main... Nov 08 11:51:13 minibolt systemd[1]: Started PostgreSQL Cluster 16-main.
- Start NBXplorer and BTCPay Server again
sudo systemctl start nbxplorer && sudo systemctl start btcpayserver
- Monitor to make sure everything is as you left it. You can exit monitoring at any time with Ctrl-C
journalctl -fu nbxplorer
journalctl -fu btcpayserver
Enjoy it MiniBolter! 💙
-
@ c73818cc:ccd5c890
2024-06-14 12:32:04👑 In un recente incontro con i principali miners di Bitcoin degli Stati Uniti, Donald Trump ha espresso un forte sostegno per il settore del mining. Trump ha dichiarato che desidera vedere tutti i Bitcoin rimanenti estratti sul suolo americano, posizionando gli Stati Uniti come leader nel settore energetico e della criptovaluta.
👑 Questo supporto deciso contrasta nettamente con l'atteggiamento dell'amministrazione Biden, che ha mostrato ostilità verso Bitcoin e le criptovalute. Il discorso di Trump potrebbe segnare una svolta importante per l'adozione e il sostegno istituzionale di Bitcoin nel paese, ma anche per il cambio di obbiettivi economici degli Stati Uniti, distaccandoli dalla necessità di mantenere il monopolio del dollaro negli scambi internazionali e per il quale si continua a creare guerre e conflitti nel mondo.
Unisciti al nostro gruppo Telegram: https://t.me/Bitcoin_Report_Italia
BitcoinReportItalia #Trump #Miners #Mining #StatiUniti #Criptovalute #Leader #USA #Biden #Crypto #Bitcoin
-
@ 1bc70a01:24f6a411
2024-03-30 01:27:45We’re all daily users of Nostr, so it can be easy to see things through an advanced user lens while forgetting what it felt like to be a newbie. I thought I would take some time to go over major client from the start in hopes of evaluating what it might feel like for a new user.
The other reason for running this review is to hopefully improve the overall nostr retention rate across clients. As it stands, according to nostr.band, retention of trusted users 30 days after signups trends to 0 for recent cohorts. This seems to be supported by the lack of growth in daily active users, with the average remaining in the 10,000-12,000 range for “trusted” pub keys.
The following report consists of several criteria which I felt were essential to basic first-time social media experience:
- Ease of signup
- Ease of logging in
- Ability to understand what you are looking at (sufficient explanations)
- Seeing a good initial feed
- Ability to follow something of interest
- Minimizing technical /dev lingo
- A fast scrolling experience
- Ability to easily upload media
- A good search experience overall
- Good keyword searching
- Hashtag searching
- Ability to follow hashtags
- Easily accessing followed hashtags
- Good experience reacting to notes
In total there are 140 points, 10 for each category. This is by far not the most comprehensive score card, but I felt it did a decent job covering most things you’d want to do in a social client.
Some notes of caution:
- This report and score card are meant to be a general quick glance at where your client may stand in overall UX. It does not differentiate between the intended target audiences.
- The criteria that I deem important may not be important to you as the founder / developer, so take it for what it’s worth. Adding your desired criteria may increase your score significantly. For example, I did not evaluate the zap experience, or thoroughly test nested replies.
- This report is not a substitute for proper user testing. It’s just one person’s observations. While we have done some user testing in the past, I highly recommend doing your own. You can do so by approaching and interviewing new users (if you are able to distinguish if they came from your client), or via other user testing software. Talk to me (@karnage) if you need some help getting set up.
- People’s reported experience regarding usability may vary greatly depending on their familiarity with cryptographic concepts, their background, and technical experience. What I may deem as a great score of 10, may not be a 10 for others. I have seen user tests where “obvious” things were not obvious to testers.
- This report only looks at the English language version of the client. The actual user experience for someone on a different language version of the app could be totally different from what is graded here. It’s worth considering geographies of where users are coming from and how they experience your client.
- I did not test re-activation of new users. Meaning, once they close the app, I did not test if they are pulled back by some notification or other means. This is a crucial aspect of any new app usage that should be considered carefully.
Tested Clients: Damus, Amethyst, Primal iOS, Snort (web), Iris (sort of), Coracle, Nostur.
I also tested Instagram and X/Twitter for comparison.
Results, highest points to lowest: Primal iOS: 136 Twitter: 125 Instagram: 109 Nostur: 108 Coracle: 99 Amethyst: 93 Snort: 90 Damus: 87 Iris: N/A Facebook: could not test.
My main takeaway was that among all apps (including Twitter and Instagram), the traditional apps win simply by having much better content selection. You get to see a variety of interesting things that Nostr simply can’t match. Going forward, this is an area I would probably recommend focusing on - how to engage people to post more interesting content, onboard creators etc… Nostr is lacking in content and I believe this could be the primary reason people are not sticking around after trying it.
Other Nostr Notes:
There seemed to be little of interesting topics to follow or stick around for. The experience of joining nostr doesn't feel special or different in any way opposed to X for example. Twitter has interesting accounts, TikTok has interesting videos, what does Nostr have? The lack of "popular" conent due to the generally low number of users is probably to blame. In a way we suffer from the chicken / egg problem where new users are needed to generate more content, and more content is needed to retain new users. Going forward, I think clients should think about ways to encourage users to share content (whether that be their own, or posted from other platforms). Nostr also does not seem to have any external growth loops. For example, there is no way to invite people to the platform by email with a single click (by accessing the address book). Even if a friend does manage to join and you can find them, they are in no way notified when tagged (as far as I know). People have to have a habit of opening the app to know if something is happening. The habit formation of using a new app is important in the early usage phase and nostr seems to have a weak spot here.
You can find all of the detailed scoring, notes for each client and other thoughts in this spreadsheet: https://docs.google.com/spreadsheets/d/14w8-aQ1sHfGBSuNpqvOA9i7PHNSfhn6lUOV6H293caw/edit?usp=sharing
-
@ 3bf0c63f:aefa459d
2024-01-14 14:52:16Drivechain
Understanding Drivechain requires a shift from the paradigm most bitcoiners are used to. It is not about "trustlessness" or "mathematical certainty", but game theory and incentives. (Well, Bitcoin in general is also that, but people prefer to ignore it and focus on some illusion of trustlessness provided by mathematics.)
Here we will describe the basic mechanism (simple) and incentives (complex) of "hashrate escrow" and how it enables a 2-way peg between the mainchain (Bitcoin) and various sidechains.
The full concept of "Drivechain" also involves blind merged mining (i.e., the sidechains mine themselves by publishing their block hashes to the mainchain without the miners having to run the sidechain software), but this is much easier to understand and can be accomplished either by the BIP-301 mechanism or by the Spacechains mechanism.
How does hashrate escrow work from the point of view of Bitcoin?
A new address type is created. Anything that goes in that is locked and can only be spent if all miners agree on the Withdrawal Transaction (
WT^
) that will spend it for 6 months. There is one of these special addresses for each sidechain.To gather miners' agreement
bitcoind
keeps track of the "score" of all transactions that could possibly spend from that address. On every block mined, for each sidechain, the miner can use a portion of their coinbase to either increase the score of oneWT^
by 1 while decreasing the score of all others by 1; or they can decrease the score of allWT^
s by 1; or they can do nothing.Once a transaction has gotten a score high enough, it is published and funds are effectively transferred from the sidechain to the withdrawing users.
If a timeout of 6 months passes and the score doesn't meet the threshold, that
WT^
is discarded.What does the above procedure mean?
It means that people can transfer coins from the mainchain to a sidechain by depositing to the special address. Then they can withdraw from the sidechain by making a special withdraw transaction in the sidechain.
The special transaction somehow freezes funds in the sidechain while a transaction that aggregates all withdrawals into a single mainchain
WT^
, which is then submitted to the mainchain miners so they can start voting on it and finally after some months it is published.Now the crucial part: the validity of the
WT^
is not verified by the Bitcoin mainchain rules, i.e., if Bob has requested a withdraw from the sidechain to his mainchain address, but someone publishes a wrongWT^
that instead takes Bob's funds and sends them to Alice's main address there is no way the mainchain will know that. What determines the "validity" of theWT^
is the miner vote score and only that. It is the job of miners to vote correctly -- and for that they may want to run the sidechain node in SPV mode so they can attest for the existence of a reference to theWT^
transaction in the sidechain blockchain (which then ensures it is ok) or do these checks by some other means.What? 6 months to get my money back?
Yes. But no, in practice anyone who wants their money back will be able to use an atomic swap, submarine swap or other similar service to transfer funds from the sidechain to the mainchain and vice-versa. The long delayed withdraw costs would be incurred by few liquidity providers that would gain some small profit from it.
Why bother with this at all?
Drivechains solve many different problems:
It enables experimentation and new use cases for Bitcoin
Issued assets, fully private transactions, stateful blockchain contracts, turing-completeness, decentralized games, some "DeFi" aspects, prediction markets, futarchy, decentralized and yet meaningful human-readable names, big blocks with a ton of normal transactions on them, a chain optimized only for Lighting-style networks to be built on top of it.
These are some ideas that may have merit to them, but were never actually tried because they couldn't be tried with real Bitcoin or inferfacing with real bitcoins. They were either relegated to the shitcoin territory or to custodial solutions like Liquid or RSK that may have failed to gain network effect because of that.
It solves conflicts and infighting
Some people want fully private transactions in a UTXO model, others want "accounts" they can tie to their name and build reputation on top; some people want simple multisig solutions, others want complex code that reads a ton of variables; some people want to put all the transactions on a global chain in batches every 10 minutes, others want off-chain instant transactions backed by funds previously locked in channels; some want to spend, others want to just hold; some want to use blockchain technology to solve all the problems in the world, others just want to solve money.
With Drivechain-based sidechains all these groups can be happy simultaneously and don't fight. Meanwhile they will all be using the same money and contributing to each other's ecosystem even unwillingly, it's also easy and free for them to change their group affiliation later, which reduces cognitive dissonance.
It solves "scaling"
Multiple chains like the ones described above would certainly do a lot to accomodate many more transactions that the current Bitcoin chain can. One could have special Lightning Network chains, but even just big block chains or big-block-mimblewimble chains or whatnot could probably do a good job. Or even something less cool like 200 independent chains just like Bitcoin is today, no extra features (and you can call it "sharding"), just that would already multiply the current total capacity by 200.
Use your imagination.
It solves the blockchain security budget issue
The calculation is simple: you imagine what security budget is reasonable for each block in a world without block subsidy and divide that for the amount of bytes you can fit in a single block: that is the price to be paid in satoshis per byte. In reasonable estimative, the price necessary for every Bitcoin transaction goes to very large amounts, such that not only any day-to-day transaction has insanely prohibitive costs, but also Lightning channel opens and closes are impracticable.
So without a solution like Drivechain you'll be left with only one alternative: pushing Bitcoin usage to trusted services like Liquid and RSK or custodial Lightning wallets. With Drivechain, though, there could be thousands of transactions happening in sidechains and being all aggregated into a sidechain block that would then pay a very large fee to be published (via blind merged mining) to the mainchain. Bitcoin security guaranteed.
It keeps Bitcoin decentralized
Once we have sidechains to accomodate the normal transactions, the mainchain functionality can be reduced to be only a "hub" for the sidechains' comings and goings, and then the maximum block size for the mainchain can be reduced to, say, 100kb, which would make running a full node very very easy.
Can miners steal?
Yes. If a group of coordinated miners are able to secure the majority of the hashpower and keep their coordination for 6 months, they can publish a
WT^
that takes the money from the sidechains and pays to themselves.Will miners steal?
No, because the incentives are such that they won't.
Although it may look at first that stealing is an obvious strategy for miners as it is free money, there are many costs involved:
- The cost of ceasing blind-merged mining returns -- as stealing will kill a sidechain, all the fees from it that miners would be expected to earn for the next years are gone;
- The cost of Bitcoin price going down: If a steal is successful that will mean Drivechains are not safe, therefore Bitcoin is less useful, and miner credibility will also be hurt, which are likely to cause the Bitcoin price to go down, which in turn may kill the miners' businesses and savings;
- The cost of coordination -- assuming miners are just normal businesses, they just want to do their work and get paid, but stealing from a Drivechain will require coordination with other miners to conduct an immoral act in a way that has many pitfalls and is likely to be broken over the months;
- The cost of miners leaving your mining pool: when we talked about "miners" above we were actually talking about mining pools operators, so they must also consider the risk of miners migrating from their mining pool to others as they begin the process of stealing;
- The cost of community goodwill -- when participating in a steal operation, a miner will suffer a ton of backlash from the community. Even if the attempt fails at the end, the fact that it was attempted will contribute to growing concerns over exaggerated miners power over the Bitcoin ecosystem, which may end up causing the community to agree on a hard-fork to change the mining algorithm in the future, or to do something to increase participation of more entities in the mining process (such as development or cheapment of new ASICs), which have a chance of decreasing the profits of current miners.
Another point to take in consideration is that one may be inclined to think a newly-created sidechain or a sidechain with relatively low usage may be more easily stolen from, since the blind merged mining returns from it (point 1 above) are going to be small -- but the fact is also that a sidechain with small usage will also have less money to be stolen from, and since the other costs besides 1 are less elastic at the end it will not be worth stealing from these too.
All of the above consideration are valid only if miners are stealing from good sidechains. If there is a sidechain that is doing things wrong, scamming people, not being used at all, or is full of bugs, for example, that will be perceived as a bad sidechain, and then miners can and will safely steal from it and kill it, which will be perceived as a good thing by everybody.
What do we do if miners steal?
Paul Sztorc has suggested in the past that a user-activated soft-fork could prevent miners from stealing, i.e., most Bitcoin users and nodes issue a rule similar to this one to invalidate the inclusion of a faulty
WT^
and thus cause any miner that includes it in a block to be relegated to their own Bitcoin fork that other nodes won't accept.This suggestion has made people think Drivechain is a sidechain solution backed by user-actived soft-forks for safety, which is very far from the truth. Drivechains must not and will not rely on this kind of soft-fork, although they are possible, as the coordination costs are too high and no one should ever expect these things to happen.
If even with all the incentives against them (see above) miners do still steal from a good sidechain that will mean the failure of the Drivechain experiment. It will very likely also mean the failure of the Bitcoin experiment too, as it will be proven that miners can coordinate to act maliciously over a prolonged period of time regardless of economic and social incentives, meaning they are probably in it just for attacking Bitcoin, backed by nation-states or something else, and therefore no Bitcoin transaction in the mainchain is to be expected to be safe ever again.
Why use this and not a full-blown trustless and open sidechain technology?
Because it is impossible.
If you ever heard someone saying "just use a sidechain", "do this in a sidechain" or anything like that, be aware that these people are either talking about "federated" sidechains (i.e., funds are kept in custody by a group of entities) or they are talking about Drivechain, or they are disillusioned and think it is possible to do sidechains in any other manner.
No, I mean a trustless 2-way peg with correctness of the withdrawals verified by the Bitcoin protocol!
That is not possible unless Bitcoin verifies all transactions that happen in all the sidechains, which would be akin to drastically increasing the blocksize and expanding the Bitcoin rules in tons of ways, i.e., a terrible idea that no one wants.
What about the Blockstream sidechains whitepaper?
Yes, that was a way to do it. The Drivechain hashrate escrow is a conceptually simpler way to achieve the same thing with improved incentives, less junk in the chain, more safety.
Isn't the hashrate escrow a very complex soft-fork?
Yes, but it is much simpler than SegWit. And, unlike SegWit, it doesn't force anything on users, i.e., it isn't a mandatory blocksize increase.
Why should we expect miners to care enough to participate in the voting mechanism?
Because it's in their own self-interest to do it, and it costs very little. Today over half of the miners mine RSK. It's not blind merged mining, it's a very convoluted process that requires them to run a RSK full node. For the Drivechain sidechains, an SPV node would be enough, or maybe just getting data from a block explorer API, so much much simpler.
What if I still don't like Drivechain even after reading this?
That is the entire point! You don't have to like it or use it as long as you're fine with other people using it. The hashrate escrow special addresses will not impact you at all, validation cost is minimal, and you get the benefit of people who want to use Drivechain migrating to their own sidechains and freeing up space for you in the mainchain. See also the point above about infighting.
See also
-
@ 1c6b3be3:73f0ae6f
2024-06-14 04:01:55Releases - No Bullshit Bitcoin
Bitkit Wallet Officially Launched on App Stores Synonym has announced that its self-custodial Bitcoin wallet, Bitkit, is now available to the general public on iOS and Android app stores. Bitkit provides a user-friendly interface with secure self-custody features and fast transactions using the Lightning Network. The company has made improvements based on user feedback and is working with leading Bitcoin companies to establish standards for Lightning Service Providers. Beta users are advised to transfer their spending balance to savings and then restore their wallet on Bitkit v1.0.
🍵 "btc | bitcoin | lightning network | asic" - Google News
Donald Trump talks bitcoin mining and policy at Mar-a-Lago - Axios BTC Price Hindered by Slow Network Growth, Says Jurrien Timmer - Crypto Times Google Cloud becomes Super Representative on TRON Network - TheStreet Bitcoin miners at Donald Trump's closed-door event say he thinks bitcoin can help win AI arms race - NBC New York Can Bitcoin Be A Productive Asset? - Bitcoin Magazine Bitcoin: Address Collapse - Transaction Surge - Cointribune EN Synonym's Bitcoin Wallet Bitkit Launches on Popular App Stores - Coinspeaker
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28A violência é uma forma de comunicação
A violência é uma forma de comunicação: um serial killer, um pai que bate no filho, uma briga de torcidas, uma sessão de tortura, uma guerra, um assassinato passional, uma briga de bar. Em todos esses se pode enxergar uma mensagem que está tentando ser transmitida, que não foi compreendida pelo outro lado, que não pôde ser expressa, e, quando o transmissor da mensagem sentiu que não podia ser totalmente compreendido em palavras, usou essa outra forma de comunicação.
Quando uma ofensa em um bar descamba para uma briga, por exemplo, o que há é claramente uma tentativa de uma ofensa maior ainda pelo lado do que iniciou a primeira, a briga não teria acontecido se ele a tivesse conseguido expressar em palavras tão claras que toda a audiência de bêbados compreendesse, o que estaria além dos limites da linguagem, naquele caso, o soco com o mão direita foi mais eficiente. Poderia ser também a defesa argumentativa: "eu não sou um covarde como você está dizendo" -- mas o bar não acreditaria nessa frase solta, a comunicação não teria obtido o sucesso desejado.
A explicação para o fato da redução da violência à medida em que houve progresso da civilização está na melhora da eficiência da comunicação humana: a escrita, o refinamento da expressão lingüística, o aumento do alcance da palavra falada com rádio, a televisão e a internet.
Se essa eficiência diminuir, porque não há mais acordo quanto ao significado das palavras, porque as pessoas não estão nem aí para se o que escrevem é bom ou não, ou porque são incapazes de compreender qualquer coisa, deve aumentar proporcionalmente a violência.
-
@ 1739d937:3e3136ef
2024-03-27 12:25:02"Gossip", "Outbox", "Inbox", "Blastr", "Small relays vs Big relays". You've probably seen most of these topics come up in conversations and memes recently. You might have even read nostr:nprofile1qqsf03c2gsmx5ef4c9zmxvlew04gdh7u94afnknp33qvv3c94kvwxgsm3u0w6's article (nostr:naddr1qq2hxenh2cchynnpdag4sepkx4gxyj2dt9nk6q3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqp65wd3a9ny), or nostr:nprofile1qqswuyd9ml6qcxd92h6pleptfrcqucvvjy39vg4wx7mv9wm8kakyujgua442w's very technical article (nostr:naddr1qqxnzde3xycngdpjxg6nqdfsqgswuyd9ml6qcxd92h6pleptfrcqucvvjy39vg4wx7mv9wm8kakyujgrqsqqqa28906usv), or maybe even nostr:nprofile1qqsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8g2lcy6q's one with the clickbaity title (nostr:naddr1qvzqqqr4gupzqwlsccluhy6xxsr6l9a9uhhxf75g85g8a709tprjcn4e42h053vaqydhwumn8ghj7un9d3shjtnhv4ehgetjde38gcewvdhk6tcprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshsqzpcxasnyvpcvsusgpcqx3).
These are all great, and you should go and read them too. But one thing that each of them is guilty of is assuming that the audience has enough context to jump into the middle of a very nuanced and technical discussion. I've yet to see a clear description of what Gossip or Outbox really are and certainly none that are written in a way that is approachable for a non-technical audience. I hope this article can give you that context and serve as a high-level overview of the discussion and the technologies involved so that you can go forth to create better, more informed memes (is there anything more important, really?) and join the discussion in a productive way.
The problems
Centralization is the default
First off, why are we even talking about relays? Most of know that nostr is a protocol which is designed to be decentralized from the ground up. That decentralization is due in large part to the fact that users read and write data to multiple relays by default. So instead of all your data going to a centralized database (usually owned and operated by a single company) with nostr you have the ability to send your data to as as many relays as you'd like (relays are just databases, after all). Likewise, you can read other people's data from as many relays as you'd like to. Decentralized design = decentralized system, right!? Well, turns out, no.
The problem with a design like this is that what can be done and what will be done are often very different things. Imagine the following scenario: You follow 1000 people; 700 of them post their notes to the Primal relay, the other 300 post their notes to the Damus relay. If you don't also write your content to those two relays, the people that you care about won't see your content, they won't see your replies to their notes, they won't even know you exist. So while; in practice, it's easy to read & write to many different relays, users and their content will tend to centralize because it's the path of least resistance to a good user experience. Network effects and economies of scale always apply, they just don't always lead to the outcomes that you want.
Before you start to panic, this sort of centralization isn't a huge issue just yet. We are still a nascent network and there are still hundreds of active relays out there. Almost all nostr clients make relay selection a first class citizen and don't default new users to a single relay. The fact that we're even having this conversation in a serious way at this stage is a great sign that the community cares enough to be proactive about maintaining (and improving) decentralization over time.
That said, this is not a issue that we can take lightly either. The top 5-10 relays do already have an outsized percentage of users and we have many examples of these centralizing tendencies across dozens of protocols and networks over the last 30 years, so the threat is real.
The status quo is wasteful
The other major issue is that currently most nostr clients are extremely wasteful in how they fetch data. The default is to simply get everything from all the relays a user wants to connect to. Because most of us are writing the same data to many relays, this leads to huge amounts of duplicated data being downloaded, having its signatures verified, and then (for the most part) thrown away. For those of us with latest generation smartphones, unlimited data, and a working power outlet nearby, this is fine. For everyone else, this is a major roadblock to adopting nostr.
A lightly technical aside
There are a few important features of nostr that make any sort of intelligent data fetching possible. To understand how any of the potential solutions to the aforementioned problems would actually work, it's important to have a baseline understanding of these technical details. I promise, I'll keep it high level.
Relay lists
Recently the concept of a Relay List Metadata has been introduced to the spec in NIP-65 (there are also other types of relay lists documented in NIP-51). This is a nostr list event where users publish their preferred relays with a marker that says whether the relay is for read-only, write-only, or read & write. This vastly simplifies the process of finding preferred user relays for clients and I imagine that this will become the de facto standard place to look for a user's preferred relays.
NIP-05
The NIP-05 spec also documents a way for users to signal their preferred relays. However, unlike the NIP-65 relay list, this is a simple list of relays without any details on whether the user reads or writes to those relays.
Tag markers
Tag markers are positional elements in tags that give the client publishing the event the ability to leave a hint as to which relay other clients can expect to find a given user or note that is being referenced.
For example, in a user's contact list (a
kind: 3
event) you have many"p"
tags to reference all the user's that are followed. These tags look like this:{ "kind": 3, "tags": [ ["p", "91cf9..4e5ca", "wss://alicerelay.com/", "alice"], ["p", "14aeb..8dad4", "wss://bobrelay.com/nostr"], ["p", "612ae..e610f"] ], "content": "", ...other fields }
All three of these
"p"
tags are valid (only the"p"
and the user's pubkey are required), in the first and second you can see the third item is a relay where the user's events can be found.These types of tag markers are repeated all throughout nostr. Here's a few more example references for an event (in this case a long-form article):
``` ["e", "b3e392b11f5d4f28321cedd09303a748acfd0487aea5a7450b3481c60b6e4f87", "wss://relay.example.com"],
["a", "30023:a695f6b60119d9521934a691347d9f78e8770b56da16bb255ee286ddf9fda919:ipsum", "wss://relay.nostr.org"] ```
As you can imagine, these hints can be very helpful but only if clients actually attempt to fetch the content from the referenced relay.
The solutions?
Now that you understand the problem space a bit better let's define those terms we started with.
Blastr
Blastr was created by nostr:nprofile1qqs9hejyd252x8q3kw6980ud4lymx3hlx2x3lgg6p7sz58nyv8m2nvgdswkeh and nostr:nprofile1qqswrlemlh2wgqc4jkds3d8ueqj9a2j3gcm7r48v9tskdd6rxsd7rtcpwpuwc from Mutiny and isn't a relay. Instead, Blastr is a proxy (i.e. it looks like a relay to clients) that ingests any event sent to it and, in turn, sends those events to EVERY online relay on the network. It's a mass re-broadcaster for events that can be helpful to get your data pushed out to as many relays (and thus users) as possible. The drawback, of course, is that this is tremendously wasteful from a bandwidth and storage perspective.
Gossip (in 3 flavors)
This is by far the most confusing part for most people when watching the memes of the last few weeks fly by and I've seen a lot of confused takes out there. Most of the confusion stems from the multiplicity of definitions of what the "gossip model" actually is. Let's go through the options. 1. Gossip protocols: This is a general concept more than a specific implementation. Gossip protocols are protocols that attempt to spread information around a network in a uniform way. For example, Bitcoin nodes use a variation of the gossip protocol to make sure that transactions end up in as many mempools as possible. This is important in computing when you want to reach consensus or when all nodes in a network need to have the same information in order to operate the network. Since nostr doesn't have any consensus rules or shared compute, it's somewhat pointless to try and make sure all events are propagated to all relays (hence the limited usefulness of Blastr). 2. The Gossip client from nostr:nprofile1qqswuyd9ml6qcxd92h6pleptfrcqucvvjy39vg4wx7mv9wm8kakyujgua442w : This is a nostr client that was built from the ground up to try and use relays and relay hints in events to the fullest to keep things as decentralized as possible while being efficient in how much data it was fetching. Mike has a great (slightly outdated and very technical) video that talks about his motivation behind building Gossip in the way he did. It's worth a watch. video link 3. Gossip model: This is what people are usually referring to when they are talking about relays on nostr. The Gossip model is a loose, catch-all term used to refer to all the ways in which clients attempt to understand which relays they should read & write to for a given user. Again, this isn't really a specific spec or implementation but encompasses many different strategies. This vagueness inherent in the term makes discussions about the "gossip model" pretty imprecise and prone to misunderstanding.
Don't gossip
To be clear: You really shoud not be thinking about or talking about any of this as the "gossip model" since that definition is so abstract as to be unusable. Which brings us finally to the real topic being discussed at the moment among devs; the Outbox model.
Outbox/Inbox model
This is the real topic of conversation right now: How should client developers build relay discovery and selection features into their apps. As we already talked about, if left alone, it's likely that we'd unintentionally centralize most of nostr onto a few huge relays. So making sure that we encourage (and build sensible defaults) to help client developers to treat relay discovery and selection properly is really critical.
Right now, the discussion centers around one main approach, called the "Outbox model". There is also an "Inbox model" which is a still just a high level idea which I'll mention below but it's not being implemented yet (as of late March 2024). 1. The "Outbox model": This strategy looks at what relays users are using to publish their events (from relay lists and tag markers) and then uses an algorithm to decide how to fetch all the needed events from the array of relays. Different implementations can use different algorithms to select relays. For example, one implementation might optimize fetching events from the smallest number of relays (favoring large relays), while another might optimize for fetching from the relays that have the smallest user overlap (favoring small relays). 2. The "Inbox model": As you can imagine, this strategy flips the outbox model on it's head. It's so far just an idea (proposed by nostr:nprofile1qqs8nsk2uy2w529fs8n4tx60u7z553e4yx5dy2nxhw4elgjgawpqlas9waufq) and a draft NIP but the idea is that when your client posts on your behalf, it will loop over your entire follow list, making a list of the relays that each of your followers uses to read events. Then the client will publish your event to all of those relays. If all clients followed this paradigm, then each of us would only have to read from a single relay. To quote nostr:nprofile1qqs8nsk2uy2w529fs8n4tx60u7z553e4yx5dy2nxhw4elgjgawpqlas9waufq 's original post, "This doesn't take away from the outbox approach, and maybe should even be used together instead of as a replacement. But my point is that clients should be trying harder to deliver posts instead of just fetch posts. Because it benefits users when their posts can be seen."
Why the Outbox model has broad support
To understand why implementing an Outbox model is so powerful at solveing the problems laid out at the beginning of this article, you can do two quick thought experiments:
A user banned from all other relays
Imagine a user who's content is banned from all public relays for some reason. Instead, they have to run their own relay and publish their events there. With a simple "follow the major relays model" (or even with Blastr attempting to copy and paste their events to every other relay) this user is completely invisible to the network. User's would have to know about the banned user's private relay and select that relay in each client they use. What's more, if that relay ever had to change URL (likely for a user that is banned so broadly), all user's would need to know what the new URL is in order to change relays and fetch events from the new location.
With Outbox however, clients will see that their user's follow this user, will then look up this user's relay list, and will know where they need to go to fetch their events. It becomes much more difficult for relays to censor or block users with an Outbox model in place
Duplicate event fetching
We talked earlier about how many nostr clients often fetch the same data many times, just to throw that data away. Even using the simplest algorithms with an Outbox model, you can significantly reduce the amount of duplicate data you're fetching from relays. We, as users, would all also need to specific many fewer relays in our relay lists but would still be quite sure our clients would be able to find all the content we want to see.
Wrapping up
Hopefully this has given you a better overall understanding of what folks are talking about when they refer to Gossip (remember: don't refer to it this way) or Outbox (outbox, yay!) and why we need to be proactive about maintaining the decentralization of nostr.
-
@ dd664d5e:5633d319
2024-06-11 22:05:06No grants, just haters
The amount of criticism and defensive rhetoric lobbed at us for our no-grant policy has merely confirmed for us that this action is necessary.
Applying for grants is not a bad thing, but neither is not-applying for grants. They are merely competing funding models and funding models SHOULD compete. It is only when developers have multiple attractive funding models to choose from, that they are as sovereign as their users are. It is only when grant-givers feel comfortable being selective and rejecting applications, that grants are targeted and efficient.
--> Some things would not be built without grants. --> Some things would be built too slowly without grants. --> Most developers do not receive grants and this is correct. --> All developers should have a viable alternative to grants. --> All developers profit from the work of grant-recipients, indirectly, as they work through the kinks and establish reusable algorithms or communal infrastructure.
This won't hurt much
We think we're doing everyone a favor -- even the people who are organizing and receiving grants -- as we're normalizing a grant offramp.
Thank us, later. Or throw more tomatoes. Whichever you like. Free country.
-
@ dd664d5e:5633d319
2024-06-11 15:47:47Laeserin's theory of assortative clustering
I was nerding again
I posted a wiki breadcrumb trail of events, today, from entropy, to information entropy, to social media entropy. (Source for the last entry in that list: I made it up.)
The more mathematically-inclined npubs immediately saw the usefulness in such a score, probably because it can be so very difficult to find anyone writing anything particularly complex or "deep" about one's own topics of interest. So, that is a subset of npubs that personally suffers from the difficulty of finding such slender trees within the increasingly vast, wild forest of Nostr notes.
Thar be dragons
However, this sort of score is a proxy-measure for general intelligence, so there is obvious nervousness about measuring something that many people think it is immoral to measure, and that others do not believe is an actual thing. (Despite the fact that we are quickly developing artificial copies of the organic version and you can't copy something that is nonexistent... but I digress.)
There is always the fear of "intellectual elitism", whereby the worth, or value, of some particular person or group of people is determined by measuring their intelligence. This fear is not unfounded, as there are many amoral people who view humans in this reductive manner, but fear of amoral people being wicked about something is not a sufficient reason to cut off entire fields of study. That would, in fact, bar us from thinking much about anything.
More is not always better
I suppose the assumption would be that a higher SME would always be considered better, but this is a fallacy based upon the overemphasis on intelligence in our particular culture and time.
Most people would actually prefer the content of someone similar to themselves, who is conversing on a level they can easily understand and respond to, without feeling intimidated or bored. Humans tend to associate with those more like themselves (i.e. assortatively), and don't tend to associate more than one SD out on the IQ curve, in either direction, as they find the experience confusing, tiresome or alienating.
What is "better", in other words, is subjective and dependent upon the person asked, which is why SME scores make sense, but not necessarily SME rankings. In the same way that a sky-high WoT score can actually make an account less-attractive because you might assume that they're #NostrElite, a sky-high SME score will assume to represent nerdiness or a tendency to verbosity.
We will self-sort
That is why the largest npubs are, by design, never going to be the most information-dense ones, and the most information-dense ones will tend to be treated like spam, by many other npubs. This same spam-effect will hit the least information-dense ones, which is why we can expect each cohort to eventually branch off into their preferred nevent, relay, client and hashtag realms, where they can be themselves without feeling put-upon by other npubs' negative reactions.
Academic centers, such as universities and startup hubs were developed in order to support this self-sorting effect, by allowing those to the right-end of the bell curve to congregate with the like-minded and have conversations with people who don't treat them as if they are space aliens. However, it carried the negative effect that those people were then clustered geographically, where they eventually lost sight of the day-to-day issues that effected the majority of the populace. Their isolation made them insular and ignorant, and fostered the very "intellectual elitism" that creates so much worry, now.
Make it a feature, not a bug
Nostr solves for the worst effects of this problem, by keeping all of the conversation within one data structure and profile silo, so that those from one group will regularly have contact with the others, and frenships (and romances, who knows?) can take root at the margins. Nostr, in other words, recreates the social mixing common to a village, where the groups are largely separate when deep in discussion or at work, but interact incidentally when moving around in shops, attending church services, festivals, or joining sports clubs or choirs.
In closing, I would say that the concern is completely justified, but a universal communications protocol is the best way to alleviate such concern and have all reap some reward for making the relationship structure of humankind more transparent.
One man's treasure is another man's trash, and everything happily reverts to the mean. The End.
-
@ 52b4a076:e7fad8bd
2024-03-23 22:44:50Introduction
LNbits is a project plagued with poor code quality, potential security risks and bad management. What can be done about it?
The problems
Improper handling of vulnerability disclosures
Case 1
Two years ago (don't remember exactly when, Twitter account deleted), I discovered an SQL injection vulnerability in LNbits. This could be exploited very easily by setting by sending the injected data in keys in the payload of most requests. (anyone could create create wallets)
This was possible due to the query to insert/update was generated using the body of the request, with basically no sanitization.
When I contacted Ben Arc about this, the fix for this exploit was not implemented for several months, and when it was, I do not recall there being an advisory for people to update.
Case 2
A month or two ago, I had discovered an exploit that allows draining nodes completely under certain conditions. I had reported this to an active maintainer of the project, which had passed it on to the team. The exploit has not been fixed.
Case 3
Again, a month or two ago, a flaw was discovered in the SatsDice extension that allowed anyone to drain wallets. I had investigated this, and found that the extension allows invoice keys (instead of admin keys only) to create dice that have a guaranteed win rate and return more sats than put in, and then use it to drain balances.
I had reported this to the team, and while it was fixed a week or two later, there was no easily visible for people to update except an "update your SatsDice extension" message in the LNbits chat buried in a conversation about the exploit.
Bad security practices
"Don't do one thing, and don't do it well"
LNbits has over time expanded its scope, from being a wallet layer to an LN apps platform to a node management tool. While this may seem great for users, it has come at a significant security cost: - There is a larger attack surface for attackers to exploit. - The newly introduced node management and admin UI feature allows easy draining of nodes if the admin URL was leaked, whether by by the autocomplete on the search bar or the user's history. - All extensions run at the same privilege level as LNbits itself which has direct access to funds.
Developers can accidentally shoot themselves in the foot
The LNbits codebase encourages many harmful development patterns that allows developers to easily create vulnerabilities that put funds at risk
Example 1
Most LNbits extensions use the following system for handling object creation/deletion: - Take the body and convert it to a class - Overwrite/sanitize fields in that class, such as preventing overwrite of the wallet ID - Pass it to the DB to write
There is a slight problem: it can be easy to miss what to sanitize and what to not sanitize.
When you are doing an update request, you may accidentally forget to overwrite the wallet_id on the request sent by the user to update a withdraw link, and trust the user. You just created a bug to drain anyone's wallet given its ID, which LNbits does not consider sensitive information and sometimes requires you to share.
Example 2
LNbits treats any error during a payment attempt an error. But errors don't always happen due to failures in your request. Network connectivity is flaky, nodes restart, and way more reasons for there to be an error while the payment actually may be going through.
If you can get a way to trigger an error during a payment call, but also have it succeed, you can easlly drain a node. I have reasons to believe this is possible in production deployments.
This could easily be fixed as attempting to check the status of a payment after an error, and if that also fails, consider the payment pending until it can be checked, but ths has not been implemented.
Bad project management
LNbits' current management suffers from many problems: - the project suffers from feature and scope creep, implementing things for the sake of it - bugs go unaddressed - security is not a top priority
This is problematic for a project that deals with funds, as it is everything that you shouldn't be doing for a project meant to deal with funds. Tens of thousands of dollars in some cases and thousands in others.
What can we do about it?
For me, I have disabled withdrawals on my LNbits instance. I am also working on a replacement project called LNLocker that will solely focus on the wallet layer bit.
I would encourage trying to replace LNbits, as hard and sometimes impossible as it may be, or if you can, modify the code or restricting access via LND macaroons so that withdrawals cannot be made.
I highly recommend not exposing LNbits to the internet if you cannot disable withdrawals.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Problemas com Russell Kirk
A idéia central da “política da prudência[^1]” de Russell Kirk me parece muito correta, embora tenha sido melhor formulada pior no seu enorme livro do que em uma pequena frase do joanadarquista Lucas Souza: “o conservadorismo é importante, porque tem muita gente com idéia errada por aí, e nós podemos não saber distingüi-las”.
Porém, há alguns problemas que precisam ser esclarecidos, ou melhor explicados, e que me impedem de enxergar os seus argumentos como refutação final do meu já tão humilde (embora feroz) anarquismo. São eles:
I Percebo alguma coisa errada, não sei bem onde, entre a afirmação de que toda ideologia é ruim, ou “todas as ideologias causam confusão[^2]”, e a proposta conservadora de “conservar o mundo da ordem que herdamos, ainda que em estado imperfeito, de nossos ancestrais[^3]”. Ora, sem precisar cair em exemplos como o do partido conservador inglês -- que conservava a política inglesa sempre onde estava, e se alternava no governo com o partido trabalhista, que a levava cada vez mais um pouco à esquerda --, está embutida nessa frase, talvez, a idéia, que ao mesmo tempo é clara e ferrenhamente combatida pelos próprios conservadores, de que a história é da humanidade é uma história de progresso linear rumo a uma situação melhor.
Querer conservar o mundo da ordem que herdamos significa conservar também os vários erros que podem ter sido cometidos pelos nossos ancestrais mais recentes, e conservá-los mesmo assim, acusando toda e qualquer tentativa de propôr soluções a esses erros de ideologia? Ou será que conservar o mundo da ordem é escolher um período determinado que seja tido como o auge da história humana e tentar restaurá-lo em nosso próprio tempo? Não seria isto ideologia?
Ou, ainda, será que conservar o mundo da ordem é selecionar, entre vários períodos do passado, alguns pedaços que o conservador considerar ótimos em cada sociedade, fazer dali uma mistura de sociedade ideal baseada no passado e então tentar implementá-la? Quem saberia dizer quais são as partes certas?
II Sobre a questão do que mantém a sociedade civil coesa, Russell Kirk, opondo-a à posição libertária de que o nexo da sociedade é o autointeresse, declara que a posição conservadora é a de que “a sociedade é uma comunidade de almas, que une os mortos, os vivos e os ainda não nascidos, e que se harmoniza por aquilo que Aristóteles chamou de amizade e os cristãos chamam de caridade ou amor ao próximo”.
Esta é uma posição muito correta, mas me parece estar em contradição com a defesa do Estado que ele faz na mesma página e na seguinte. O que me parece errado é que a sociedade não pode ser, ao mesmo tempo, uma “comunidade baseada no amor ao próximo” e uma comunidade que “requer não somente que as paixões dos indivíduos sejam subjugadas, mas que, mesmo no povo e no corpo social, bem como nos indivíduos, as inclinações dos homens, amiúde, devam ser frustradas, a vontade controlada e as paixões subjugadas” e, pior, que “isso somente pode ser feito por um poder exterior”.
Disto aí podemos tirar que, da mesma forma que Kirk define a posição libertária como sendo a de que o autointeresse é que mantém a sociedade civil coesa, a posição conservadora seria então a de que essa coesão vem apenas do Estado, e não de qualquer ligação entre vivos e mortos, ou do amor ao próximo. Já que, sem o Estado, diz, ele, citando Thomas Hobbes, a condição do homem é “solitária, pobre, sórdida, embrutecida e curta”?
[^1]: este é o nome do livro e também um outro nome que ele dá para o próprio conservadorismo (p.99). [^2]: p. 101 [^3]: p. 102
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28A command line utility to create and manage personal graphs, then write them to dot and make images with graphviz.
It manages a bunch of YAML files, one for each entity in the graph. Each file lists the incoming and outgoing links it has (could have listen only the outgoing, now that I'm tihnking about it).
Each run of the tool lets you select from existing nodes or add new ones to generate a single link type from one to one, one to many, many to one or many to many -- then updates the YAML files accordingly.
It also includes a command that generates graphs with graphviz, and it can accept a template file that lets you customize the
dot
that is generated and thus the graphviz graph.rel
-
@ 1123ece2:7d1e00c0
2024-06-14 02:14:42Welcome to The Refinery.
Today we are discussing, What Apostles Do?
So the question today is What do Apostles Do?
Firstly Apostles are called by God 1 Corinthians 1:1 Paul, called to be an apostle of Jesus Christ through the will of God, and Sosthenes our brother, Apostles are recognised by the church. Acts 6:3 Therefore, brethren, seek out from among you seven men of good reputation, full of the Holy Spirit and wisdom, whom we may appoint over this business; And Apostles are sent out by the church. Acts 13:3 Then, having fasted and prayed, and laid hands on them, they sent them away. Acts 15:22 Then it pleased the apostles and elders, with the whole church, to send chosen men of their own company to Antioch with Paul and Barnabas, namely, Judas who was also named Barsabas, and Silas, leading men among the brethren. Apostles are a servant ministry to the local church and are given an office by the Lord and an anointing to fulfil the role. If an ‘apostle’ comes without these credentials and attitude of service, reject them. Test the spirit and fruit of the apostle, there is safety in the body to discern if they sent by the Lord (church) or came by themselves. Apostles…
- Establish the government of God.
1 Timothy 1:3 talks of No Other Doctrine. As I urged you when I went into Macedonia—remain in Ephesus that you may charge some that they teach no other doctrine, 1 Timothy 1:18 says to Fight the Good Fight This charge I commit to you, son Timothy, according to the prophecies previously made concerning you, that by them you may wage the good warfare, 1 Timothy 2:1 tells us to Pray for All Men Therefore I exhort first of all that supplications, prayers, intercessions, and giving of thanks be made for all men, And 1 Timothy 2:8 tells us what Men and Women in the Church should be doing. I desire therefore that the men pray everywhere, lifting up holy hands, without wrath and doubting Ephesians 2:20 tells us how the church should be built, having been built on the foundation of the apostles and prophets, Jesus Christ Himself being the chief cornerstone In reading Ephesians 2:20 the foundation of Jesus Christ is laid, The apostles and prophets. Paul teaches Timothy in the above references how to do this.
- Apostles Carry an Apostolic anointing.
In Joshua 3 we see, The shoulders of the priests carried the Ark of the Covenant into the Jordan. It parted so that the people could cross over on dry ground to the promised land. The shoulders of the priests here symbolise authority. The two shoulders of the New Testament priest are the apostle and the prophet working together. When we the carry the anointing into ‘closed’ areas there is a breakthrough. Effectively doors of ministry open for the body to follow and establish the church in a new area.
- Apostles Are Fathers who serve.
Ephesians 4:4 There is one body and one Spirit, just as you were called in one hope of your calling. 1 Timothy 1:1-2. Paul, an apostle of Jesus Christ, by the commandment of God our Savior and the Lord Jesus Christ, our hope, To Timothy, a true son in the faith: Grace, mercy, and peace from God our Father and Jesus Christ our Lord.
- Apostles Start by laying the foundation of Jesus Christ.
1 Corinthians 3:9-11 For we are God’s fellow workers; you are God’s field, you are God’s building. According to the grace of God which was given to me, as a wise master builder I have laid the foundation, and another builds on it. But let each one take heed how he builds on it. For no other foundation can anyone lay than that which is laid, which is Jesus Christ. Romans 9:33. As it is written: “Behold, I lay in Zion a stumbling stone and rock of offence, And whoever believes on Him will not be put to shame.” True Apostles have an ability to break up the foundation of incorrect teaching and lay the foundation of truth. Acts 16:26. Suddenly there was a great earthquake, so that the foundations of the prison were shaken; and immediately all the doors were opened and everyone’s chains were loosed.
- Apostles Finish by completing the work.
Hebrews 12:2 looking unto Jesus, the author and finisher of our faith, who for the joy that was set before Him endured the cross, despising the shame, and has sat down at the right hand of the throne of God. Acts 14:26 From there they sailed to Antioch, where they had been commended to the grace of God for the work which they had completed John 19:30 So when Jesus had received the sour wine, He said, “It is finished!” And bowing His head, He gave up His spirit. 2 Timothy 4:7. I have fought the good fight, I have finished the race, I have kept the faith. Apostles have a passion to see the work completed. Nehemiah would not be put off from completing the building of the wall in Jerusalem. When opposed and tempted to quit he said “I am doing a great work and cannot come down.” Nehemiah 6:3 So I sent messengers to them, saying, “I am doing a great work, so that I cannot come down. Why should the work cease while I leave it and go down to you?” And look at what happened when Stephen was stoned to death. Acts 8:1-2 And Saul approved of their killing him. On that day a great persecution broke out against the church in Jerusalem, and all except the apostles were scattered throughout Judea and Samaria.
- Apostles Bring balance to the 5 fold ministry.
Ephesians 4:11. And He Himself gave some to be apostles, some prophets, some evangelists, and some pastors and teachers The apostle forms teams and has the grace to cause the 5 fold to work together. The prophet feels accepted and accountable with the apostle around. We read about the example of Antioch in Acts 11:26-27. And when he had found him, he brought him to Antioch. So it was that for a whole year they assembled with the church and taught a great many people. And the disciples were first called Christians in Antioch.
- Apostles go out to establish new work.
Luke 4:43. but He said to them, “I must preach the kingdom of God to the other cities also, because for this purpose I have been sent.” Unlike pastors who are primarily concerned with the wellbeing of the flock the apostle has a passion for new fields.
- Apostles create space for others.
John 14:2. In My Father’s house are many mansions; if it were not so, I would have told you. I go to prepare a place for you. Apostles are builders, but not for themselves only. They open up new areas of ministry for the other gifts to occupy.
- Apostles build according to plan.
John 6:38 For I have come down from heaven, not to do My own will, but the will of Him who sent Me. Acts 26:19. “Therefore, King Agrippa, I was not disobedient to the heavenly vision.
- Apostles pull down the works of darkness.
Acts 16:26 Suddenly there was a great earthquake, so that the foundations of the prison were shaken; and immediately all the doors were opened and everyone’s chains were loosed. Paul and Silas sang worship songs in prison. The apostolic anointing was not bound, but free to destroy demonic strongholds. Everyone’s chains were loosed.
-
Apostles release others.
-
Apostles establish teams.
-
Apostles hear the prophetic word to gain the Lord’s strategy.
Together the apostle and prophet can penetrate and breakthrough. Evangelists are free to go and win souls. Pastors and teachers are free to grow the church. In Acts 11:27-28 we see that prophets came and joined the apostolic team at Antioch. And in these days prophets came from Jerusalem to Antioch. Then one of them, named Agabus, stood up and showed by the Spirit that there was going to be a great famine throughout all the world, which also happened in the days of Claudius Caesar. The apostles waited to hear the word of God before acting on a plan. Without clear prophetic direction apostles will build their own kingdom!
- Apostles can touch the other 4 offices.
Apostles are the thumb on the hand. It is the only one that can touch the other 4 fingers. Apostles in training often find themselves able to function as a prophet or pastor or evangelist or teacher but feel uncomfortable spending a long time in each. When one of the other fingers tries to be like the thumb it looks very awkward. Try touching all the other fingers with your little one. That is why a teacher should never try to be an apostle. The result will be a mess!
- Apostles are visionaries and dreamers.
Acts 26:19. “Therefore, King Agrippa, I was not disobedient to the heavenly vision,
- Apostles don’t give up.
Nehemiah 6:3 So I sent messengers to them, saying, “I am doing a great work, so that I cannot come down. Why should the work cease while I leave it and go down to you?” Acts 14:19. Then Jews from Antioch and Iconium came there; and having persuaded the multitudes, they stoned Paul and dragged him out of the city, supposing him to be dead.
- Apostles perform unusual miracles.
Acts 19:11-12. Now God worked unusual miracles by the hands of Paul, so that even handkerchiefs or aprons were brought from his body to the sick, and the diseases left them and the evil spirits went out of them. We read in Acts 15:22-41 how Paul (an apostle), Silas and Judas (both prophets) worked together in Antioch. It is clear, even though there were some personality clashes, that the church today needs Apostolic teams to bring the body together with intentional focus upon the Lord and His word. These teams have power to break down barriers and mindsets inside and outside the church. Great grace comes upon the body when the 5 fold ministry works together as a servant team to build the church and spread the gospel. Every gift and ministry will be empowered and released to function when the apostolic team is accepted and respected. I believe that just as the church was launched by the Holy Spirit working through apostles and prophets that the work of the gospel will be completed in the same way.
Until next time Stay in the Blessings I really want to encourage you to be diligent with your Bible study time, because God has so much more for us than we can get from just going to church once or twice a week and hearing someone else talk about the Word. When you spend time with God, your life will change in amazing ways, because God is a Redeemer. Theres nothing thats too hard for Him, and He can make you whole, spirit, soul and body! You’re important to God, and you’re important to us at The Refinery. When it comes to prayer, we believe that God wants to meet your needs and reveal His promises to you. So whatever you’re concerned about and need prayer for we want to be here for you! Or even if you just want to say Hi, you can contact us at www.refinerylife.org 2024 IS A YEAR OF DECISIONS AND OPEN DOORS © www.refinerylife.org 2013-2024 All rights reserved. Except as permitted under the Australian Copyright Act 1968, no part of this Article may be reproduced, stored in a retrieval system, communicated or transmitted in any form or by any means without the prior written permission.
This episode is brought to you by Refinery Life Australia: If you enjoy The Refinery Life Radio Podcast you can help support The Refinery by doing the following:
Sow an offering: Bitcoin: bc1qqh6720t2zagj72dyfj348az698tdut3hlecaj4
Online: https://www.refinerylife.org/donate/
If you do send an offering then please email us so that we can say thank you
Subscribe on iTunes | Spotify | YouTube | TuneIn | Rumble | Flare | Zap.Stream | Fountain |
Share The Refinery with your friends and family
Subscribe to the newsletter on www.refinerylife.org
Follow The Refinery on Twitter | Nostr | Instagram | Fountain |
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28GraphQL vs REST
Today I saw this: https://github.com/stickfigure/blog/wiki/How-to-(and-how-not-to)-design-REST-APIs
And it reminded me why GraphQL is so much better.
It has also reminded me why HTTP is so confusing and awful as a protocol, especially as a protocol for structured data APIs, with all its status codes and headers and bodies and querystrings and content-types -- but let's not talk about that for now.
People complain about GraphQL being great for frontend developers and bad for backend developers, but I don't know who are these people that apparently love reading guides like the one above of how to properly construct ad-hoc path routers, decide how to properly build the JSON, what to include and in which circumstance, what status codes and headers to use, all without having any idea of what the frontend or the API consumer will want to do with their data.
It is a much less stressful environment that one in which we can just actually perform the task and fit the data in a preexistent schema with types and a structure that we don't have to decide again and again while anticipating with very incomplete knowledge the usage of an extraneous person -- i.e., an environment with GraphQL, or something like GraphQL.
By the way, I know there are some people that say that these HTTP JSON APIs are not the real REST, but that is irrelevant for now.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28nostr - Notes and Other Stuff Transmitted by Relays
The simplest open protocol that is able to create a censorship-resistant global "social" network once and for all.
It doesn't rely on any trusted central server, hence it is resilient; it is based on cryptographic keys and signatures, so it is tamperproof; it does not rely on P2P techniques, therefore it works.
Very short summary of how it works, if you don't plan to read anything else:
Everybody runs a client. It can be a native client, a web client, etc. To publish something, you write a post, sign it with your key and send it to multiple relays (servers hosted by someone else, or yourself). To get updates from other people, you ask multiple relays if they know anything about these other people. Anyone can run a relay. A relay is very simple and dumb. It does nothing besides accepting posts from some people and forwarding to others. Relays don't have to be trusted. Signatures are verified on the client side.
This is needed because other solutions are broken:
The problem with Twitter
- Twitter has ads;
- Twitter uses bizarre techniques to keep you addicted;
- Twitter doesn't show an actual historical feed from people you follow;
- Twitter bans people;
- Twitter shadowbans people.
- Twitter has a lot of spam.
The problem with Mastodon and similar programs
- User identities are attached to domain names controlled by third-parties;
- Server owners can ban you, just like Twitter; Server owners can also block other servers;
- Migration between servers is an afterthought and can only be accomplished if servers cooperate. It doesn't work in an adversarial environment (all followers are lost);
- There are no clear incentives to run servers, therefore they tend to be run by enthusiasts and people who want to have their name attached to a cool domain. Then, users are subject to the despotism of a single person, which is often worse than that of a big company like Twitter, and they can't migrate out;
- Since servers tend to be run amateurishly, they are often abandoned after a while — which is effectively the same as banning everybody;
- It doesn't make sense to have a ton of servers if updates from every server will have to be painfully pushed (and saved!) to a ton of other servers. This point is exacerbated by the fact that servers tend to exist in huge numbers, therefore more data has to be passed to more places more often;
- For the specific example of video sharing, ActivityPub enthusiasts realized it would be completely impossible to transmit video from server to server the way text notes are, so they decided to keep the video hosted only from the single instance where it was posted to, which is similar to the Nostr approach.
The problem with SSB (Secure Scuttlebutt)
- It doesn't have many problems. I think it's great. In fact, I was going to use it as a basis for this, but
- its protocol is too complicated because it wasn't thought about being an open protocol at all. It was just written in JavaScript in probably a quick way to solve a specific problem and grew from that, therefore it has weird and unnecessary quirks like signing a JSON string which must strictly follow the rules of ECMA-262 6th Edition;
- It insists on having a chain of updates from a single user, which feels unnecessary to me and something that adds bloat and rigidity to the thing — each server/user needs to store all the chain of posts to be sure the new one is valid. Why? (Maybe they have a good reason);
- It is not as simple as Nostr, as it was primarily made for P2P syncing, with "pubs" being an afterthought;
- Still, it may be worth considering using SSB instead of this custom protocol and just adapting it to the client-relay server model, because reusing a standard is always better than trying to get people in a new one.
The problem with other solutions that require everybody to run their own server
- They require everybody to run their own server;
- Sometimes people can still be censored in these because domain names can be censored.
How does Nostr work?
- There are two components: clients and relays. Each user runs a client. Anyone can run a relay.
- Every user is identified by a public key. Every post is signed. Every client validates these signatures.
- Clients fetch data from relays of their choice and publish data to other relays of their choice. A relay doesn't talk to another relay, only directly to users.
- For example, to "follow" someone a user just instructs their client to query the relays it knows for posts from that public key.
- On startup, a client queries data from all relays it knows for all users it follows (for example, all updates from the last day), then displays that data to the user chronologically.
- A "post" can contain any kind of structured data, but the most used ones are going to find their way into the standard so all clients and relays can handle them seamlessly.
How does it solve the problems the networks above can't?
- Users getting banned and servers being closed
- A relay can block a user from publishing anything there, but that has no effect on them as they can still publish to other relays. Since users are identified by a public key, they don't lose their identities and their follower base when they get banned.
- Instead of requiring users to manually type new relay addresses (although this should also be supported), whenever someone you're following posts a server recommendation, the client should automatically add that to the list of relays it will query.
- If someone is using a relay to publish their data but wants to migrate to another one, they can publish a server recommendation to that previous relay and go;
- If someone gets banned from many relays such that they can't get their server recommendations broadcasted, they may still let some close friends know through other means with which relay they are publishing now. Then, these close friends can publish server recommendations to that new server, and slowly, the old follower base of the banned user will begin finding their posts again from the new relay.
-
All of the above is valid too for when a relay ceases its operations.
-
Censorship-resistance
- Each user can publish their updates to any number of relays.
-
A relay can charge a fee (the negotiation of that fee is outside of the protocol for now) from users to publish there, which ensures censorship-resistance (there will always be some Russian server willing to take your money in exchange for serving your posts).
-
Spam
-
If spam is a concern for a relay, it can require payment for publication or some other form of authentication, such as an email address or phone, and associate these internally with a pubkey that then gets to publish to that relay — or other anti-spam techniques, like hashcash or captchas. If a relay is being used as a spam vector, it can easily be unlisted by clients, which can continue to fetch updates from other relays.
-
Data storage
- For the network to stay healthy, there is no need for hundreds of active relays. In fact, it can work just fine with just a handful, given the fact that new relays can be created and spread through the network easily in case the existing relays start misbehaving. Therefore, the amount of data storage required, in general, is relatively less than Mastodon or similar software.
-
Or considering a different outcome: one in which there exist hundreds of niche relays run by amateurs, each relaying updates from a small group of users. The architecture scales just as well: data is sent from users to a single server, and from that server directly to the users who will consume that. It doesn't have to be stored by anyone else. In this situation, it is not a big burden for any single server to process updates from others, and having amateur servers is not a problem.
-
Video and other heavy content
-
It's easy for a relay to reject large content, or to charge for accepting and hosting large content. When information and incentives are clear, it's easy for the market forces to solve the problem.
-
Techniques to trick the user
- Each client can decide how to best show posts to users, so there is always the option of just consuming what you want in the manner you want — from using an AI to decide the order of the updates you'll see to just reading them in chronological order.
FAQ
- This is very simple. Why hasn't anyone done it before?
I don't know, but I imagine it has to do with the fact that people making social networks are either companies wanting to make money or P2P activists who want to make a thing completely without servers. They both fail to see the specific mix of both worlds that Nostr uses.
- How do I find people to follow?
First, you must know them and get their public key somehow, either by asking or by seeing it referenced somewhere. Once you're inside a Nostr social network you'll be able to see them interacting with other people and then you can also start following and interacting with these others.
- How do I find relays? What happens if I'm not connected to the same relays someone else is?
You won't be able to communicate with that person. But there are hints on events that can be used so that your client software (or you, manually) knows how to connect to the other person's relay and interact with them. There are other ideas on how to solve this too in the future but we can't ever promise perfect reachability, no protocol can.
- Can I know how many people are following me?
No, but you can get some estimates if relays cooperate in an extra-protocol way.
- What incentive is there for people to run relays?
The question is misleading. It assumes that relays are free dumb pipes that exist such that people can move data around through them. In this case yes, the incentives would not exist. This in fact could be said of DHT nodes in all other p2p network stacks: what incentive is there for people to run DHT nodes?
- Nostr enables you to move between server relays or use multiple relays but if these relays are just on AWS or Azure what’s the difference?
There are literally thousands of VPS providers scattered all around the globe today, there is not only AWS or Azure. AWS or Azure are exactly the providers used by single centralized service providers that need a lot of scale, and even then not just these two. For smaller relay servers any VPS will do the job very well.
-
@ b804f68e:2fb0fa1f
2024-06-14 02:08:24The Imperfection of Perfect: Rethinking Modern Dating
In today's highly digital dating landscape, we're often caught up in the quest for the 'perfect' match—perfect looks, perfect job, perfect hobbies. Yet, building a relationship is far from perfect. It's about growing together and navigating imperfections. The expectation of finding the complete package from day one is unrealistic and misses the essence of human connection. If perfection is what you're after, you'd be better off dating an AI robot partner, akin to the movie Her.
The Reality of Building Together
Human dating is about creating something meaningful together. You don't want someone who is 'perfect' because then there’s no room for growth, either for them or for you. A healthy relationship involves striving to become better versions of ourselves, both individually and as a couple.
The Dangers of Dating Apps
Dating apps can present a distorted reality. They allow us to craft idealized versions of ourselves, raising expectations to unattainable levels. When reality doesn't match the profile, it often leads to immediate rejection, moving quickly onto the next option. This mentality prevents the formation of long-lasting, meaningful relationships because it avoids the necessary time, effort, and energy to truly get to know another person.
A Contrast with the Past
In the developed world, we're privileged to choose who we date, using tools like dating apps and websites. Contrast this with my grandparents' era of arranged marriages or my parents' time when you had to physically ask someone out. Despite these constraints, both generations have built beautiful partnerships. Their relationship journeys, full of challenges and hurdles, highlight that relationships are about supporting each other and growing together through life's ups and downs.
Modern Dating's High Time Preference
Dating has become a high time preference endeavor in the modern world, where immediate gratification is often prioritized. Many date for status or to showcase their 'trophy' partner. However, this superficial approach often leads to dissatisfaction and unfulfilling relationships.
The Role of Money in Dating
Money is another significant factor in modern dating. While important for survival, financial stability can often come later as you grow and build together. Prioritizing a partner's job or title over their character and personality can result in unsuccessful dating experiences.
Striving for Growth Together
Ultimately, you should date someone who inspires you to be the best version of yourself, who believes in you unconditionally, and who is committed to personal growth. Avoid seeking a 'completed' package; such relationships can become stale quickly. Instead, be patient and build a relationship with someone imperfect yet with a good heart, someone who wants to grow alongside you.
Conclusion
In conclusion, modern dating often misleads us into seeking perfection. However, true relationships thrive on mutual growth and support. Embrace the imperfections, invest time and effort, and focus on building something meaningful together. After all, it's the journey and growth with your partner that create the most fulfilling and lasting relationships.
-
@ dd664d5e:5633d319
2024-03-20 11:08:53A discussion of the problems and the promise of an economy based upon a deflationary currency, with suggestions for how to restructure payments to accommodate this.
The Zap Economy
I think many people have been breaking their heads, trying to figure out business models, when the currency used in the models continuously rises in purchasing power, often even going parabolic, for a time. Let's have a debate about which models are the best and how we can design our own business funding, going forward.
Note: From here on, all producers will be described as "creators," which is more fitting to the Nostr lingo.
Dealing with spikes in fiat prices
I think the best way to create a business model that deals with sudden spikes in fiat prices is to simply ignore them. The people who are motivated to sudden action by such spikes are traders, and they probably shouldn't be your target market.
Employment Contracts
One tried-and-true business model is the fee-for-project type of contract that we usually call "employment". These all have a defined beginning, a defined end, and a defined scope. (I will differentiate them from direct, quick fee-for-service; see Sales Contracts.)
Typical "day jobs" are defined this way, with creators being employed for a month or two weeks, to perform a particular task, with a payout at the end and often an automatic extension to the next employment period. Contracting is another common type, as are retainers for specialists like doctors and lawyers.
I think this model can be easily implemented in a zap economy (and, indeed, it already is), as employers can simply keep the employment scope or period small and renegotiate the next one to reflect any deflation. For longer-term employment, they could simply negotiate regular rebalancing to reflect price changes, or link payments to some measure of deflation.
Patronage
This is the current common business model. A creator (artist, developer, writer, etc.) receives grants or donations that are more or less attached to conditions.
The fewer the conditions attached and the more diverse/larger the patron set is, the more valuable the patronage is and the freer the creator. The negative impact of strings or condensed patronage can be mitigated by the availability of non-funding resources (infrastructure, training, marketing, legal advice, psychological support, access to a team, etc.) or the sheer size of the patronage.
(Although creators, by nature, grate under management and may eventually resent condensed patronage, even if it is very generous, helpful, and well-intentioned.)
Customer Classifications
This is a highly desirable model, from the viewpoint of most creators, as it is defined and controlled by them, and offers the promise of stable, long-term funding. It is also popular among smaller patrons, as their money investment is more effective and -- let's be honest -- more fun, if it is converted to a Class A Customer status and bundled with the money and enthusiasm of others.
This vaguely resembles a club membership. In this model, there are different levels of customer classes (usually defined using the alphabet, with "A" being the highest level).
An example structure might be:
A: The most emotionally-invested group. Often very early and constant investors, willing to pay a high premium for membership and to front relatively large sums of money in advance of services rendered. These are your "premium account holders".
They should receive some outward/public sign of their membership (so that they can find each other, more easily, and to help you market your creations) and some premium content, features, or services. Their support tickets have priority and their complaints and ideas go straight to the lead developer or product owner.
Even simply arranging for them to attend a teleconference before releases, reserving a special lounge or party for them at conferences, or announcing new features in newsletters, can go a long way.
B: These are the "normal payees". They pay the minimum to unlock some extra-stuff and always get new releases first, and that's all they really want. Mostly, they just want to not feel like freeloaders, so providing them with a clear payment scheme is enough.
C: These are the freeloaders. They get a reduced service, but stay friendly because they sometimes market your product to others and they have the potential to move up to a higher class.
The essential part of this model is the pricing.
Class A customers should be onboarded first and pay the highest regular membership fee. This fee should be automatically lowered to Class B level, when adding Class B customers, at a later date, so that your early supporters don't feel disadvantaged.
Class B (with Class A) should have deflation-tracked pricing: 500 sats today, 250 after the next halving, 125 after the next halving, etc. Or something similar. You should always plan for your prices to steadily decrease in nominal terms, while slightly rising in real terms, as your service becomes more advanced and valuable.
Sales Contracts
This is a clear fee-for-service and is generally set and reset regularly. If you have a long-term sale or resale contract, you should have fee adjustments accounted for, from the beginning.
And that is all that I have time to write, at the moment.
-
@ cb8f3c8e:c10ec329
2024-06-11 10:26:25Written By Alex Mrema
Follow Alex on Nostr
Europe’s premium football competition is set to take off in next to no time on the 14th of June with Germany as hosts for the next four weeks. The continent’s best will take on a long, gritty and unprecedented journey towards bringing glory back to their home nations. A glance at the countries set to feature in the championships this summer indicates that throughout the competition, we are assured of great, mouth-watering games to keep our eyes on the screen for one full month. My article will provide a scope in to the games of the first three groups in the competition and what they have in store for us.
GROUP A
GAME: GERMANY VS HUNGARY DATE: 19th June 2024 TIME: 17:00 BST
This will be the second game of the tournament for both sides. It has the potential to be a do-or-die for either side depending on their first results. Germany being the home side are hoping to put aside their weak performances from the previous three tournaments (World Cup 2018, Euro 2020 and World Cup 2022). They carry a relatively young squad which also has a mix of experience from the likes of Thomas Muller and Joshua Kimmich. Their midfield will be the make or break of their progress in the tournament, let’s see how they will handle their first real challenge in the form of Hungary. Nemzeti Tizenegy emerged as a side to watch in the last Euros due to their passionate performances that saw them manage to steal a point against Germany in Munich and a point from France in Budapest. They play a flawless style of football and are capable of stringing passes high up the pitch that can pull quick goals, if underestimated, the Hungarians can sting you. Plus, they don’t need much motivation as their passionate fans travel in great numbers, ready to rally their team forward.
GAME: GERMANY VS SWITZERLAND DATE: 23rd June 2024 TIME: 20:00 BST
Germany’s rocky record in the past three tournaments have tarnished the fear factor that they used to carry like the teams of the past. In addition, with this being head coach Julian Nagelsmann’s first major tournament with the Germans, it brings one to question whether he is capable of bringing back Die Mannschaft the respect they once had on the European stage? This is not a worry though for the Switzerland squad. An experienced squad that have stayed together in many tournaments and are aware of what needs to be done to get out of the group stage. They are looking to break the barrier that stops them from getting past the round of 16 and (at times) the quarter-finals, the task of playing Germany as their last group game is difficult and whatever the situation will be at the time, the Germans must be aware that the Swiss will come out guns blazing in hope of getting a result that will lead to them qualifying for the next round.
GROUP B GAME: SPAIN VS CROATIA DATE: 15th June 2024 TIME: 17:00 BST
Age is just a number for this Croatian squad that keeps on giving fairytale performances in major tournaments. The Chequered Ones carry a fighting spirit that sees them fight to the final whistle when they are down and when they are up- well you don't want that to happen to your country as they will run the ball around their midfield and tire out their opponents within twenty minutes. They are a well rounded and balanced squad.This game is going to be a revenge game as they were knocked out of Euro 2020 by the Spanish in a thrilling round of 16 game that ended 5-3. Can they do it? Well the Spanish would like to have a word about that. This young Spanish squad is aiming to bring something the last few Spanish sides have failed to bring into tournaments- hunger. The expectation upon the young shoulders of Lamine Yamal, Pau Cubarsi, Pedri and the rest of the young group is to bring a hustle and hunger against all sides while the experienced figures of Rodri, Morata and Jesus Navas are there to adjust and lead the Spaniards through any rocky situations. This game against the Croats is an interesting test for them as both sides like to control the game. A must watch!
GAME: SPAIN VS ITALY DATE: 20th June 2024 TIME: 20:00 BST
The Azzurri enter the tournament as defending champions but do not look likely to retain it- they are out to prove people wrong. This Italian squad are defensively stacked with the likes of Bastoni, Caliafori and Dimarco. It is clear that this squad is set on stopping the goals from going in and allowing their offense to flow- particularly off of counter-attacks. However this is their first tournament since Euro 2008 without either of their defensive pillars; Giorgio Chiellini and Leonardo Bonucci, which teams- such as Spain- are looking to capitalize on. The Spanish midfielders will be looking for long passes to their offensive players that will break the Italian wall, great passers such as Pedri and Rodri are critical for this game. This is also a repeat of their classic Euro 2020 semi-final that went in the Italians favor, if we are going to get a repeat of even half of that game, then we are in for a treat!
GAME: ALBANIA VS SPAIN DATE: 24th June 2024 TIME: 20:00 BST
Albania are determined to prove that they are not here to make up the numbers and their qualifying campaign was not a fluke. The Shqipet have been placed in a difficult group that puts them in the unfortunate position as the underdog for every game of the group stages, they will look to capture points in any possible situation. They will look at the aggressive forward- Armando Broja to provide the goals throughout the competition, with his abrasive style of play, goals may come his way. But, La Furia Roja are determined to prove a point from the outset of the tournament and will most likely play a style of football that aims to torture all opponents(most likely by retaining possession of the ball). The problem with this is that one quick counter can hurt Spain- hopefully Albania have done their homework on that.
GAME: CROATIA VS ITALY DATE: 24th June 2024 TIME: 20:00 BST
This game is happening in the last match day and can carry out an importance in deciding how the group pans out. Italy and Croatia is bound to be a jam packed fixture that is likely to be seperated by a goal. Both sides like to possess the game and are most potent with the ball as well as the tempo of the game in their control- this will likely cause for tactical changes from either(or both) of the managers on how to approach the game and their opponents. Ultimately, this game is bound to be a great tactical battle!
GROUP C GAME: DENMARK VS ENGLAND DATE: 20th June 2024 TIME: 17:00 BST
The Danish Dynamite look to get revenge for their heartbreaking and controversial loss to England in the semifinals of Euro 2020. Denmark are squad that have now moved away from the “dark horse” ranking of European football and now pose themselves as a side that can cause a threat to all participating nations, no matter the gap in star power.Denmark are well rounded and composed, which can secure wins thanks to their solid defense. On the other hand, the Three Lions have come to Germany with a star studded squad that can go all the way. Gareth Southgate has moved away from his traditional squad and has added fresh, youthful faces such as Cole Palmer and Kobbie Mainoo to the squad. This creates a pacey and skillful attacking unit for England, that can be a problem for the rather unhurried Danish defense.
-
@ cb8f3c8e:c10ec329
2024-06-11 06:49:15Written By Alex Mrema
Follow Alex on Nostr
Europe’s premium football competition is set to take off in next to no time on the 14th of June with Germany as hosts for the next four weeks. The continent’s best will take on a long, gritty and unprecedented journey towards bringing glory back to their home nations. A glance at the countries set to feature in the championships this summer indicates that throughout the competition, we are assured of great, mouth-watering games to keep our eyes on the screen for one full month. My article will provide a scope in to the games of the first three groups in the competition and what they have in store for us.
GROUP A
GAME: GERMANY VS HUNGARY DATE: 19th June 2024 TIME: 17:00 BST
This will be the second game of the tournament for both sides. It has the potential to be a do-or-die for either side depending on their first results. Germany being the home side are hoping to put aside their weak performances from the previous three tournaments (World Cup 2018, Euro 2020 and World Cup 2022). They carry a relatively young squad which also has a mix of experience from the likes of Thomas Muller and Joshua Kimmich. Their midfield will be the make or break of their progress in the tournament, let’s see how they will handle their first real challenge in the form of Hungary. Nemzeti Tizenegy emerged as a side to watch in the last Euros due to their passionate performances that saw them manage to steal a point against Germany in Munich and a point from France in Budapest. They play a flawless style of football and are capable of stringing passes high up the pitch that can pull quick goals, if underestimated, the Hungarians can sting you. Plus, they don’t need much motivation as their passionate fans travel in great numbers, ready to rally their team forward.
GAME: GERMANY VS SWITZERLAND DATE: 23rd June 2024 TIME: 20:00 BST
Germany’s rocky record in the past three tournaments have tarnished the fear factor that they used to carry like the teams of the past. In addition, with this being head coach Julian Nagelsmann’s first major tournament with the Germans, it brings one to question whether he is capable of bringing back Die Mannschaft the respect they once had on the European stage? This is not a worry though for the Switzerland squad. An experienced squad that have stayed together in many tournaments and are aware of what needs to be done to get out of the group stage. They are looking to break the barrier that stops them from getting past the round of 16 and (at times) the quarter-finals, the task of playing Germany as their last group game is difficult and whatever the situation will be at the time, the Germans must be aware that the Swiss will come out guns blazing in hope of getting a result that will lead to them qualifying for the next round.
GROUP B GAME: SPAIN VS CROATIA DATE: 15th June 2024 TIME: 17:00 BST
Age is just a number for this Croatian squad that keeps on giving fairytale performances in major tournaments. The Chequered Ones carry a fighting spirit that sees them fight to the final whistle when they are down and when they are up- well you don't want that to happen to your country as they will run the ball around their midfield and tire out their opponents within twenty minutes. They are a well rounded and balanced squad.This game is going to be a revenge game as they were knocked out of Euro 2020 by the Spanish in a thrilling round of 16 game that ended 5-3. Can they do it? Well the Spanish would like to have a word about that. This young Spanish squad is aiming to bring something the last few Spanish sides have failed to bring into tournaments- hunger. The expectation upon the young shoulders of Lamine Yamal, Pau Cubarsi, Pedri and the rest of the young group is to bring a hustle and hunger against all sides while the experienced figures of Rodri, Morata and Jesus Navas are there to adjust and lead the Spaniards through any rocky situations. This game against the Croats is an interesting test for them as both sides like to control the game. A must watch!
GAME: SPAIN VS ITALY DATE: 20th June 2024 TIME: 20:00 BST
The Azzurri enter the tournament as defending champions but do not look likely to retain it- they are out to prove people wrong. This Italian squad are defensively stacked with the likes of Bastoni, Caliafori and Dimarco. It is clear that this squad is set on stopping the goals from going in and allowing their offense to flow- particularly off of counter-attacks. However this is their first tournament since Euro 2008 without either of their defensive pillars; Giorgio Chiellini and Leonardo Bonucci, which teams- such as Spain- are looking to capitalize on. The Spanish midfielders will be looking for long passes to their offensive players that will break the Italian wall, great passers such as Pedri and Rodri are critical for this game. This is also a repeat of their classic Euro 2020 semi-final that went in the Italians favor, if we are going to get a repeat of even half of that game, then we are in for a treat!
GAME: ALBANIA VS SPAIN DATE: 24th June 2024 TIME: 20:00 BST
Albania are determined to prove that they are not here to make up the numbers and their qualifying campaign was not a fluke. The Shqipet have been placed in a difficult group that puts them in the unfortunate position as the underdog for every game of the group stages, they will look to capture points in any possible situation. They will look at the aggressive forward- Armando Broja to provide the goals throughout the competition, with his abrasive style of play, goals may come his way. But, La Furia Roja are determined to prove a point from the outset of the tournament and will most likely play a style of football that aims to torture all opponents(most likely by retaining possession of the ball). The problem with this is that one quick counter can hurt Spain- hopefully Albania have done their homework on that.
GAME: CROATIA VS ITALY DATE: 24th June 2024 TIME: 20:00 BST
This game is happening in the last match day and can carry out an importance in deciding how the group pans out. Italy and Croatia is bound to be a jam packed fixture that is likely to be seperated by a goal. Both sides like to possess the game and are most potent with the ball as well as the tempo of the game in their control- this will likely cause for tactical changes from either(or both) of the managers on how to approach the game and their opponents. Ultimately, this game is bound to be a great tactical battle!
GROUP C GAME: DENMARK VS ENGLAND DATE: 20th June 2024 TIME: 17:00 BST
The Danish Dynamite look to get revenge for their heartbreaking and controversial loss to England in the semifinals of Euro 2020. Denmark are squad that have now moved away from the “dark horse” ranking of European football and now pose themselves as a side that can cause a threat to all participating nations, no matter the gap in star power.Denmark are well rounded and composed, which can secure wins thanks to their solid defense. On the other hand, the Three Lions have come to Germany with a star studded squad that can go all the way. Gareth Southgate has moved away from his traditional squad and has added fresh, youthful faces such as Cole Palmer and Kobbie Mainoo to the squad. This creates a pacey and skillful attacking unit for England, that can be a problem for the rather unhurried Danish defense.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Parallel Chains
We want merged-mined blockchains. We want them because it is possible to do things in them that aren't doable in the normal Bitcoin blockchain because it is rightfully too expensive, but there are other things beside the world money that could benefit from a "distributed ledger" -- just like people believed in 2013 --, like issued assets and domain names (just the most obvious examples).
On the other hand we can't have -- like people believed in 2013 -- a copy of Bitcoin for every little idea with its own native token that is mined by proof-of-work and must get off the ground from being completely valueless into having some value by way of a miracle that operated only once with Bitcoin.
It's also not a good idea to have blockchains with custom merged-mining protocol (like Namecoin and Rootstock) that require Bitcoin miners to run their software and be an active participant and miner for that other network besides Bitcoin, because it's too cumbersome for everybody.
Luckily Ruben Somsen invented this protocol for blind merged-mining that solves the issue above. Although it doesn't solve the fact that each parallel chain still needs some form of "native" token to pay miners -- or it must use another method that doesn't use a native token, such as trusted payments outside the chain.
How does it work
With the
SIGHASH_NOINPUT
/SIGHASH_ANYPREVOUT
soft-fork[^eltoo] it becomes possible to create presigned transactions that aren't related to any previous UTXO.Then you create a long sequence of transactions (sufficient to last for many many years), each with an
nLockTime
of 1 and each spending the next (you create them from the last to the first). Since theirscriptSig
(the unlocking script) will useSIGHASH_ANYPREVOUT
you can obtain a transaction id/hash that doesn't include the previous TXO, you can, for example, in a sequence of transactionsA0-->B
(B spends output 0 from A), include the signature for "spending A0 on B" inside thescriptPubKey
(the locking script) of "A0".With the contraption described above it is possible to make that long string of transactions everybody will know (and know how to generate) but each transaction can only be spent by the next previously decided transaction, no matter what anyone does, and there always must be at least one block of difference between them.
Then you combine it with
RBF
,SIGHASH_SINGLE
andSIGHASH_ANYONECANPAY
so parallel chain miners can add inputs and outputs to be able to compete on fees by including their own outputs and getting change back while at the same time writing a hash of the parallel block in the change output and you get everything working perfectly: everybody trying to spend the same output from the long string, each with a different parallel block hash, only the highest bidder will get the transaction included on the Bitcoin chain and thus only one parallel block will be mined.See also
[^eltoo]: The same thing used in Eltoo.
-
@ a012dc82:6458a70d
2024-06-14 01:09:19Table Of Content
-
Content
-
Conclusion
-
FAQ
-
You May Also Like
-
External Links
What is Bitcoin self-custody?
Bitcoin is a powerful tool for financial independence, but it also comes with great responsibility. One of the most important steps you can take to secure your bitcoin is by practicing self-custody. Self-custody is the process of taking control of your own bitcoin, rather than entrusting it to a third party. In this blog post, we'll explore why self-custody is essential for bitcoin security, and how you can start taking control of your own bitcoin.
Why self-custody is essential for Bitcoin security
The first and most important reason to practice self-custody is security. When you entrust your bitcoin to a third party, such as an exchange or online wallet, you are placing your trust in that company's security protocols. This can be a risky proposition, as we've seen with numerous cases of exchanges and online wallets being hacked and losing their customers' bitcoin.
By taking control of your own bitcoin, you can ensure that your bitcoin is protected by the strongest possible security measures. This includes using a hardware wallet, which is a physical device that stores your bitcoin offline, or using a software wallet that allows you to control your own private keys.
How to start self-custodying your Bitcoin
Self-custody also allows you to have full control over your own bitcoin. When you entrust your bitcoin to a third party, they may impose limits on your ability to access or use your bitcoin. For example, some exchanges have been known to freeze customer accounts, or prevent them from withdrawing their bitcoin. With self-custody, you have full control over your own bitcoin and can access it at any time.
Ensuring the security of your Bitcoin when self-custodying
Furthermore, self-custody allows you to be in charge of your own financial sovereignty, this means you can make your own decisions about how to use your bitcoin without any interference. This can include choosing to hold onto your bitcoin as a long-term investment, using it to make purchases online or in-store, or sending it to other individuals or organizations.
Limitations of self-custodying Bitcoin
One other benefit of self-custody is that you have the ability to access your funds at any time, with no waiting period, or restrictions. You are not dependent on the policies and procedures of a third-party custodian.
Buying and selling Bitcoin while self-custodying
That being said, self-custody does come with some responsibilities. It is important to have a good understanding of how to properly secure your bitcoin, this includes backing up your seed phrase, password and other important information. It also requires being vigilant about updates and security threats, and being prepared to act in the event of a security breach.
Conclusion
Self-custody is an essential step in ensuring the security and control of your bitcoin. It allows you to take ownership of your own financial sovereignty and make your own decisions about how to use your bitcoin. It also gives you peace of mind knowing that your bitcoin is protected by the strongest possible security measures. By following best practices for self-custody, you can protect your bitcoin and ensure that you have full control over your financial future.
FAQ
What is Bitcoin self-custody? A: Bitcoin self-custody is the process of taking control of your own bitcoin, rather than entrusting it to a third party.
Why is self-custody important for Bitcoin security? A: By self-custodying, you can ensure that your bitcoin is protected by the strongest possible security measures and reduce the risk of your bitcoin being hacked or stolen.
How do I start self-custodying my Bitcoin? A: Start by researching and choosing a secure wallet that allow you to control your own private keys and move your bitcoin from third-party exchanges or online wallets.
Is self-custody expensive? A: Self-custody can be a cost-effective way to secure your bitcoin as it does not require ongoing fees, the cost is the one-time purchase of a hardware wallet.
How do I ensure the security of my Bitcoin when self-custodying? A: Implementing strong security measures such as password protection, two-factor authentication, and regular backups is essential when self-custodying your bitcoin.
Are there any limitations to self-custodying Bitcoin? A: Self-custody requires you to have a good understanding of how to properly secure your bitcoin and be vigilant about updates and security threats.
Can I still buy and sell Bitcoin when self-custodying? A: Yes, you can still buy and sell bitcoin when self-custodying, but you'll have to use an exchange or other trading platform.
Can I access my Bitcoin at any time if I self-custody? A: Yes, self-custody gives you full control of your own bitcoin and allows you to access it at any time without any limits or restrictions.
That's all for today
If you want more, be sure to follow us on:
NOSTR: croxroad@getalby.com
Instagram: @croxroadnews.co
Youtube: @croxroadnews
Store: https://croxroad.store
Subscribe to CROX ROAD Bitcoin Only Daily Newsletter
https://www.croxroad.co/subscribe
DISCLAIMER: None of this is financial advice. This newsletter is strictly educational and is not investment advice or a solicitation to buy or sell any assets or to make any financial decisions. Please be careful and do your own research.
-
-
@ d7607464:421e573a
2024-03-12 21:40:20Chef's notes
Details
- ⏲️ Prep time: 0 min
- 🍳 Cook time: 5 min
- 🍽️ Servings: 1
Ingredients
- 3/4 cup Raw Milk
- 1 tbsp Dutch-Processed Cocoa
- 1 tbsp Cane Sugar, to taste
- 1 tbsp Raw Unfiltered Honey, to taste
Directions
- Heat milk in a pot until steaming.
- Whisk in cocoa, sugar, and honey.
- Serve hot.
-
@ f683e870:557f5ef2
2024-06-10 17:27:55For reading the article with proper Latex, head over to pippellia.com
Introduction
The emergence of decentralized social networks with sovereign identities (e.g. Nostr is a pivotal moment for the web, and it comes at the perfect time. In the age of AI, where it's getting cheaper and cheaper to impersonate people, distort videos and images, or just make them up, how is it possible to know what's true? What does truth even mean these days?
These are questions I will not attempt to answer. However, even if the ontology of truth has eluded philosophers forever, a more practical approach is needed if the Web is not to degenerate into a nihilistic place where nothing is real, or worse, a place where everything requires identity verification and the approval of a central authority.
In this paper, you will find a definition of the social graph, principles for thinking about it, and practical ideas for using it for DoS prevention, social discovery, anti-impersonation, accurate ratings, and more. You will also learn about alternative mechanisms that can be used in conjunction with social graph analysis to provide more compelling and complete solutions.
Social Graph
First, what is a graph? A graph G is a mathematical structure consisting of a set of nodes or vertices V and a set of edges E.
In mathematical notation, we write G = (V,E).
Edges are defined by a relation on the set V x V = {(v,u) : v,u in V }; for example, if node v and node u are related (e.g. v follows u), then the pair (v,u) is contained in the set E. In the notation
E = { (v,u) in V^2 : v is related to u }
The relationship can be symmetrical or asymmetrical, distinguishing between undirected and directed graphs.
A social graph is simply a graph in which the nodes are human entities (such as individuals, companies, groups, etc.) and the edges represent some form of social relationship, such as being friends with, following, or being zapped.
Before we go any further, we need to define another important notion, that of a neighborhood.
The neighborhood of a set of vertices S subset of V in G is another set of vertices whose defining property is to be connected to a vertex in S. In mathematical notation
N_G(S) = { u in V : exist s in S, (s,u) in E }
What problem is the social graph solving? The answer is many, in many different ways and forms. We are talking about using it as a defense mechanism against impersonation, as a way to prevent DoS attacks, to facilitate social discovery and connections, and to calculate more accurate ratings. But before we dive into the implementations, I ask you to pause for a moment to understand the magnitude of what we are discussing.
Principles
Don't fall into the trap of thinking that the engineers at YouTube were evil when they designed their algorithm. As the saying goes, the road to hell (read: open-mouth theater) is paved with good intentions (read: the desire to over-optimize engagement).
If your implementation is successful, people's behavior will be affected. That's why it's important to establish principles that can guide designers and developers in creating systems that are healthier than the world we're leaving behind.
Principle of least interference
A good rule of thumb when designing systems that affect social dynamics is to follow the principle of least interference.
Principle of least interference: solve the problem by implementing whatever mechanism has the least possible impact on social dynamics.
As an heuristic based on this principle, it is generally better to focus on solving only one problem at a time, since it is unlikely that solving multiple problems at once will not lead to a greater impact on those social dynamics.
A great example to analyze is the WoT score implemented by Coracle, which tries to "reduce spam, impostors, and objectionable content", all at once.
Let's start by analyzing how it works as an anti-impersonation mechanism.
If you search for 'Lyn Alden', it is very likely (if you are part of a "good" network) that the npub with the highest WoT is the real Lyn, while all others are impersonators.
However, a simple warning icon above all other Lyns would have accomplished the same goal without introducing a rating that can alter social dynamics.
In fact, the WoT score represents the opinion of the crowd around you, which doesn't offer any nuance when comparing the reputation of different real people. Crowd thinking is one of the biggest problems of the world we are leaving, and it would be a silly exercise to bring it with us.
Besides, we do not walk around with a number on our forehead in meatspace, nor should we in cyberspace, even if that number depends on the observer.
There is also another, more fundamental problem, which is that the user v only has information about a limited subset of the network, namely N_G^2(v) = N_G(N_G(v)), where G is the graph defined by the relation "follow OR mute" relation.
Therefore, if you set the WoT threshold above zero, you won't see anyone outside of N_G^2(v), which certainly prevents spam, but at the cost of discoverability.
We'll come back to how to design a more effective anti-impersonation system later.
Principle of Relativity in cyberspace
The current Web, and our societies in general, are built on an outdated paradigm that relies on and requires consensus about what is true, false, good, or bad. Unspeakable atrocities have been committed to achieve and maintain such consensus.
However, we must move beyond this legacy of the past if we are to usher in a new era of freedom.
The notion of a commonly shared belief or social truth is as dead in this new millennium as God was in the 19th century.
Principle of Relativity in Cyberspace: You cannot and should not dictate what is true or false, what is good content or bad content or spam, for another person.
If you do, you will simply be replacing the beast with a new set of beliefs. It's true that there are many different clients to choose from, but there were many different web browsers back in the day, and that didn't end well.
The reality is that a global agreement on things has seldom been necessary. In fact, relative canonicality can be achieved without the need for a central authority.
Wikifreedia (a nostr alternative to Wikipedia, as you have probably guessed) fully embraces this idea of relative canonicality. Each topic contains multiple entries; there is no single source of truth that aims or claims to be neutral. Of course, this doesn't mean that all entries are equally good or useful. On the contrary, there is a very opinionated and biased way of sorting them, which depends on the observer. Regardless of the specific implementation (again, number on the forehead), this is the way to go, this is relativity in cyberspace.
There is no Global
This point is arguably a corollary of the previous principle, but it's so important that it needs to be fully explained. The notion of global is also dead.
Despite being the largest indexer in the world, Google only indexes a small portion of the web. The engineering challenges behind indexing absolutely every person and piece of content in an ever-growing, open and hostile decentralized network will likely exacerbate this outcome: Nostr will outgrow every index.
As spammers become more sophisticated, crawlers will have to become more selective, limiting the percentage of the network that is indexed. Therefore, as a client designer or developer, you really only have a limited view of what's happening.
This reinforces the statement that you cannot decide for someone else what is good or bad, true or false. You can't possibly know, because what you have is a local, limited view, just like everyone else's.
Let's take Nostr Band for example. As much as I appreciate their cool statistics, it's important to know their limitations. The version of Trust Rank that Nostr Band implements:
- runs on the subset of the network they are aware of
- uses an arbitrarily chosen set of NIP05 providers for determining the so called good seeds
This approach is fine if it's used to defend the service provider against spammers (see DoS prevention section for improvements).
However, such an arbitrary view (all are, but some less than others) shouldn't be imposed on the end user, but only used as a way for the service provider to select the customers it wants to serve.
Principle of natural patterns
I believe that technology is made for people, so it should serve us and improve our quality of life. We shouldn't adapt to technology, technology should adapt to us.
This context is no exception to the rule. Humans are social creatures, and our social dynamics and behaviors have evolved through our long history. Therefore, before introducing new and artificial social dynamics, it's wiser to mimic the natural dynamics that have evolved with us for millennia.
Principle of natural patterns: When in doubt, try to mimic the social dynamics of meatspace
For example, in meatspace, a friend of a friend is not a stranger, but it's not a friend either. It's something in between, and a good candidate for a potential future friend.
Another example is something that will hit home if you've ever been to a bitcoin conference. When you're among people with the same interests, and I would argue mostly overlapping values, even if you've never met them, you can't say they're strangers.
Examples abound, so there is really no reason to try to impose any artificial dynamics before exhausting what nature has given us.
To summarize, we take from this section three principles that will inform our analysis and design decisions going forward:
- The principle of least interference
- The principle of relativity in cyberspace
- The principle of natural patterns
The Problems
Finally, we can start discussing some concrete problems and ways to solve them. There are several well-defined problems that social graph analysis can help with. Again, it's important to define them well if we want to follow the principle of least interference.
The first problem we will analyze is protection against impersonation, one of the most important pieces to get right.
Anti-impersonation
Social endorsement
Who is the real Giacomo? In this case, it's pretty simple
First of all, let's talk about what won't help us decide:
- the name
- the profile picture
- the bio
- the date of creation
And no, not even the number of followers, as this is a completely irrelevant metric in an open and hostile network. See an example
What helps us is the line below:
"Followed by Bitcoin Africa Story, Nostr Wallet Connect, and 666 others you follow".
This is the signal. Follows can be faked, but follows from people you trust cannot be faked (or are more expensive to get). This is a particularly good design because it adheres to the principle of relativity in cyberspace. It doesn't prescribe who the real Giacomo is, it doesn't summarize the data for you (like the aforementioned WoT score, where every follower has the same weight), but it shows you clues that you can decide to interpret in the way you want.
The same idea can be applied to mutes, which gives you a few more clues.
Obviously, such a system can be extended not only to the people you follow, i.e. N_G(v), but also to the people who are 2 hops away from you, i.e. N_G^2(v) = N_G(N_G(V)), or n hops away from you, i.e. N_G^n(v).
However, the signal becomes increasingly diluted and unreliable the farther you go.
This approach is a good start, but it can't really solve the impersonation problem on its own because it's limited in reach and suffers from a bootstrapping problem for new users, which is really the same problem if you think about it.
There is also a subtle issue worth mentioning. What if a reputable person tries to impersonate someone else? This attack is possible because it won't be detected immediately, but the more prominent the person, the faster this attack will be detected, causing the attacker to lose their hard-earned reputation.
Furthermore, for truly prominent figures such as heads of state, this problem can be mitigated (but not completely solved) by third-party credentials that can be displayed by clients.
NIP05 providers
Another approach that has been tried is to rely on NIP05 providers. If I trust a NIP05 provider to verify the people they serve, then I can assign a non-zero level of trust to their customers. However, this approach obviously requires trust, which isn't ideal since there are trustless approaches that provide better guarantees.
PoW keys
When we see a stranger enter the pub where we are, or when we are crowded on the subway, we find ourselves potentially vulnerable to strangers. In most civilized places, however, we don't live in a constant state of fear, and that comes from the fact that others are vulnerable as well. Everyone has skin in the game, even the aggressors, which means that the best way to play this game is not to mess with other people.
On Nostr, however, the only consequence you can feel is the loss of your reputation, which by definition is worthless when the npub is brand new.
However, there is a way to add skin in-game for new keys, i.e. PoW keys.
The process works like this: while creating your identity, your machine can generate a new private key sk until the corresponding public key pk, as a binary number, satisfies the following inequality:
pk <= t ; where t is a threshold of your choice.
Since there is no efficient way to do this (allegedly), this process requires the expenditure of computing power and energy. This adds a quantifiable and verifiable cost to any identity, making credible impersonation expensive.
However, PoW keys can't work at scale, because:
- they require commitment at key creation, which is bad UX because it reverses the "try before you buy" rule
- the PoW can't be updated over time
- It is not possible to delegate the work without delegating the key (supposedly)
The last point implies that the economy of scale favors the attacker, because they have multiple targets, whereas the defender can only defend himself.
However, there is a similar approach that offers what I believe are more appropriate tradeoffs: PoW Endorsement.
PoW endorsment
A PoW endorsement is a simple unsigned user metadata event containing a target npub, a difficulty commitment threshold $t$, and a nonce.
The nonce is randomly generated until the following condition is satisfied:
h(event) <= 2^t ; where h is a cryptographic hash function such as SHA256
If the condition is met, the PoW endorsment is valid, and the target npub's "PoW weight" becomes 256 - t.
What I am describing is basically NIP13, except that it should use kind 0, and it doesn't need a signature (what's the problem if someone wants to add PoW to someone else's npub?).
What makes PoW endorsements different from PoW keys is that:
- it doesn't require any commitment at key creation
- the PoW can be updated over time
- it's possible to delegate the work without delegating the key
- requires data availability, because the work is separate from the key
Point 3 is what makes this approach feasible and scalable, especially for mobile devices constrained by CPU and battery limitations.
Point 4 isn't particularly bad because the events are small, public, and the user has an incentive to store them.
Example of how it works
- Alice gives a npub to the Miner
- Alice pays the Miner $10
- The Miner mines the PoW endorsement, with the target npub
- The target npub now has a non-zero PoW weight
How does it help?
If the target npub has a non-zero PoW weight, credible impersonation attempts require a cost. The attacker's social capital (PoW weight) becomes less and less valuable, and is eventually lost, as more people discover the attack and mute the attacker's npub.
Furthermore, assuming that most of the PoW weight is allocated to real people (1), it's possible to use its distribution to fix the shortcomings of social endorsement.
For example, a new user can be presented with the choice of following the npubs with the highest Trust Rank, where the good seeds are the npubs with non-zero PoW weight. The same principle can be applied to an existing user trying to get information about an npub that is many hops away from him/her.
If you want to summarize this idea to the maximum, if the number of followers is meaningless, that's not true for the number of followers with non-zero PoW weight (under assumption 1).
I have started working on this idea and preliminary results are promising, but more thought is needed
Colored halo
Another anti-impersonation mechanism tried by Nostrudel is to use a few characters of the public key (in hex format) to identify a unique color that is displayed around the user's profile picture.
The idea is that if I am already following the real Lyn, a credible impersonation attempt would require generating many times the key pair to get the same or very similar color. This requires energy, which means cost.
However, this information is only useful if I already follow the real Lyn and remember her color. Asking my trusted network for the color of a particular person is no different task than asking her npub directly.
This means that this approach, while interesting, is not very useful.
DoS attack prevention
When analyzing Denial of Service attacks, we should distinguish between defense mechanisms that work at the network level, at the service provider level, and at the user level.
Talking about the first case may seem to contradict the principle of relativity in cyberspace, but here by network we mean any set of network participants who are willing to cooperate but not necessarily trust each other.
Network level
PoW events basically apply the concept of Hashcash not to email messages but to notes. There is not much to say here, except to note that the PoW can be outsourced to service providers that can most likely outcompete the attackers in efficiency.
Service provider level
The best tool the service provider can use to prevent DoS is money. A paid service, either pay-per-use or subscription-based, can work both for monetization and as a defense mechanism. However, not every service (or sub-service) is directly monetizable, which is where social graph analysis can help.
The idea is to selectively choose which npubs are considered potential good customers and filter out everyone else. If this needs to be said, I'll say it: this is not censorship, this is simply a business deciding who to serve.
Many different criteria can be used to select what is a good customer, especially since this definition depends on the service being provided.
A general approach is to use Trust Rank or Spam Mass Estimates (with a suitable measure for selecting the good seeds, such as PoW weight) as the criteria for deciding the "good customers". Those who don't qualify will simply not be served for free.
User level
Here we consider a simple defense against DoS attacks on user DMs.
The user $v$ has a whitelist of npubs that can directly DM him/her for free. If the sender is not on the whitelist, the DM will only be displayed by the client if it is preceded by or comes with a payment above a certain threshold.
The whitelist can be edited manually, but it's automatically populated based on some social graph criteria that the user has approved.
For example, all npubs in N_G(v) U N_G^2(v) U N_G^3(v) can be automatically added to the whitelist of user v.
Personalized Ratings
The idea that every opinion or vote is equally important to everyone is a byproduct of political democracy and its sanctification. This is never the case in any social context.
Imagine you want to buy a product that has thousands of good reviews, but your friend recently bought it and tells you it's not good. It's natural for you to give more weight to your friend's opinion, contrary to the belief that each opinion has equal weight.
When computing an average, there is always an assumption about the weight distribution, i.e. how important each vote is.
Given a list of ratings (r_i)_i and a weight distribution (w_i)_i such that the sum of the weight is 1, the average is sum r_i w_i
The democratic average assumes each opinion has exactly the same weight.
Social graph analysis can be useful to design more accurate and even personalized ratings, i.e. ratings that reflect who the viewer is and what he/she is looking for at any given time.
For example, you might want to give more weight to people who have similar interests to you, or more weight to your friends and friends of your friends. Many different criteria for calculating weight distributions are possible, making this an exciting area for future research.
It's important to note that the most trustworthy ratings will be those that are independently verifiable, both in the ratings and in the weight distributions.
Practically speaking, there are two steps involved in computing a weight distribution:
- Select the support, i.e. the set of npubs that have a non-zero weight.
- Assigning a specific weight to each npub that is part of the support.
These two steps can be done simultaneously or one after the other. In the next section, we'll look at support selection, a problem that arises in another, seemingly unrelated context: social discovery.
Social Discovery
How many times have you discovered something thanks to a friend's recommendation? This phenomenon can actually be productized to streamline the discovery of content, places, and people that are relevant to the end user.
Here is a mathematical formulation of the problem:
Consider a social graph G = (V,E), where the nodes are ordered, i.e. V = { v_1, v_2, ... v_n}.
The goal is to construct another graph G' = (V,E'), where E' consists of the recommendations for each of the users we want to serve. This is a simplified scenario, where what is being recommended are other nodes in the graph.
What we need is a function f : G --> G' that takes G as input and returns G' as output, i.e. the recommendations we are interested in.
I'll now introduce a definition to simplify the problem.
Adjaciency matrix: Given a graph G = (V,E), its edges can be represented as a matrix called the adjacency matrix A, defined as follows:
A_ij = 1 if and only if v_i is related to v_j
In light of this new definition, the problem is to construct f : A --> A', which is a function that takes an n by n boolean matrix A as input and outputs the n by n recommendation matrix A'.
With this notation, the recommendation list of the node v_i consists of the nodes corresponding to the non-zero elements of the i-th row of A'.
Look at the example in the picture. By applying an unknown (for now) function f, we get the recommendation matrix A'. Only the first row contains a non-zero element whose position is (1,3). This means that node v_1 has node v_3 as a recommendation.
There are (2^{n^2})^{2^{n^2}} of such functions (exercise: why?), but only a few of them make sense and mimic the heuristics humans use.
The first social dynamic we want to replicate is the "friend of a friend" dynamic, or more specifically, if v_i _follows _v_j, and v_j follows v_k, then v_k is added to v_i's recommendation list.
In other words, we want A'_ij = 1 if and only if v_i is connected to _v_j _by a path of length exactly 2. In this case, we are not interested in how many such paths exist, but only in whether there is at least one.
This rule is encoded in the function f: A --> A' = A @ A = A^2, where @ is the product between Boolean matrices ( exercise: check that it's correct).
Inspired by this simple yet powerful result, previous research has investigated the class of candidate functions f_M: A --> A' = A @ M.
Here are some examples of such matrices M.
Applying each of these functions to f_M adds new relations to the graph, and this process can be repeated many times until the desired result is achieved.
For example, in the matrix A + A^2 + A^3 + ... + A^m, node v is connected to node u if and only if there exists a path of length <= m from v to u in the original graph G.
Formulating the problem of social discovery as an iteration of atomic propagation rules has many advantages, since:
- It's simple, yet can accommodate many different propagation rules
- It's passive, since it doesn't require the user to specify anything other than the rules and the number of iterations desired
- It's efficient, since its space complexity takes advantage of the sparsity of social graphs, and its time complexity can be estimated to be O(n^{5/2}) (Learn more about the time complexity of Boolean matrix multiplication ).
- It's well supported by most programming languages, given how ubiquitous matrix multiplication is
- It's transparent and independently verifiable in its operations
Furthermore, as highlighted in the previous section, this approach is applicable to compute transparent and personalized weight distributions.
Considering again the direct propagation rule (friend of a friend), we can start assigning weights based on the distance to the user.
If the distance is 1, meaning a direct connection, the weight is set to 1. Whenever the distance increases by 1, the weight decreases by a factor of gamma in [0,1], a parameter potentially chosen by the user.
On a practical level, this means that the service providers compute and store the matrices A, A^2, ... A^m for a reasonable m.
Each user v_i _can choose _gamma_i in [0,1], and k_i <= m, and the personalized weight distribution he/she gets is
A_i + gamma_i A^2_i + ... gamma_i^{k_i-1} A^{k_i}_i
with A_i representing the i-th row of the matrix A.
- If gamma_i = 0, the user chooses to consider the ratings of only those he follows as relevant.
- If gamma_i = 1 and k_i = m, the user chooses to give basically the same weight to everyone in the network, and will get a democratic average rating.
- If gamma_i = 0.5, then the weight of direct followers is 1, that of two hops is 0.5, then 0.25 and so on.
By combining and experimenting with propagation rules and weighting criteria, it's possible to efficiently compute personalized, verifiable and dynamic ratings for each user, making this an exciting area for future development.
Conclusion
This is a comprehensive yet superficial paper, as it touches on many different areas without exhausting any. This was done intentionally to stimulate interest in the field of social graph analysis. More importantly, it aims to help the reader understand the significant impact this exciting new field can have on the Web, although not without its risks.
Interested in implementing the social graph into your App? Reach out, I would be more than happy to help
For reading the article with proper Latex, head over to pippellia.com
-
@ 82100056:e198089f
2024-06-10 15:01:10I have come to the conclusion that major influencers being publicly and loudly anti-war can actually be pro-war.
When Alex Jones or Tucker Carlson, for example, talk about how bad an idea a war with Russia is, I can't help but feel like they are normalizing it as a thing. It is sowing the seeds in our minds that a war with Russia will happen, and despite their "best efforts" to expose it, there is nothing that can be done to stop this. And if their influence is not enough, then what can plebs like us do, other than just accept it? Their opposition to the war with Russia is therefore more like a controlled manipulation of the plebs into accepting it, rather than a sincere effort to stop it. This makes their impact even more powerful than pro-war people because it demonstrates that the normies can be controlled into putting up with a war despite the overwhelming moral, economic and logistical arguments against it.
I'm not saying that Jones or Carlson are intelligence assets or anything, because I really have no clue if they are or not. But I am saying that the effectiveness of their public stance against a war with Russia is massively overrated, and even has a perverse impact. After all, what have they achieved? Two things I know for sure: 1) They have made people fearful by thinking about the war. 2) They have normalized it in our minds, which leads us to accept it.
A lot of what they say we will agree with, but we have to be careful that it does not poison our spirits. Because there's a war there too.
-
@ 52387c6b:49dbdfb2
2024-02-28 01:38:42Chef's notes
Not a healthy snack by any means but sometimes you just have too.
Details
- ⏲️ Prep time: 1
- 🍳 Cook time: 0
- 🍽️ Servings: 1
Ingredients
- 1 Bag of Chips
- 1 Bottle of Wooster
- 1 Bowl
- Many Beers
Directions
- Open Chips
- Pour chips into bowl
- Add Wooster to taste
- Now savour the flavour
-
@ e237877a:dd6a20c2
2024-06-13 17:10:53This article was originally published on my blog. As an experiment, it is being syndicated here on Nostr.
There is Teflon in your bloodstream. ^1
Dupont knew about the toxicity of their chemicals since as far back as 1976, and to this day fight responsibility for their part in creating a ubiqitous chemical that does not naturally deteriorate. ^2
The chemicals used in the production of Teflon (PFOAs and PFOs) were finally deemed toxic enough that DuPont, and the 13 other producers of it, don't make it anymore - and have replaced it with New Teflon, and new chemicals. They claim these new chemicals are safe, despite the larger scientific body calling this into question^3. To quote these scientists directly:
"Whenever possible, avoid products containing, or manufactured using, PFASs. These include many products that are stain-resistant, waterproof or nonstick."
The Madrid Statement on Poly- and Perfluoroalkyl Substances
Without a doubt, using old teflon is comprimising your long-term health and the worldwide environment - Teflon is not just found in every human being on the planet, in some dosage, but every fish and mammal as well. New Teflon is still under research and speculation to its health effects - but I ask you this - do you trust DuPont chemical corporation to do the right thing if its toxic as well?
And yet, Teflon remains ubiquitous in our homes and kitchens. Much like the early days of "discovering" tobacco companies were covering up the long term health damage of their products, people are skeptical to the danger of Teflon, and moving slowly. In a way, we're addicted to the convenience - in spite of the fact that the usefulness of a Teflon pan is nothing more then a parlour trick.
Oil and Steel
The reality is, every pan is nonstick, if prepared and used properly. Teflon pans simply reinforce bad habits around your cooking - mainly using too low of temperatures to cook dishes effectively.
If you are wondering why your egg sticks in a steel pan, your pan was too cold. Here's the steps:
- Heat up the pan until it is so hot, a drop of water dances around the pan - but not so hot it immediately evaporates.
- Drop the temperature to medium-low, and add a cold oil of your choice. Crack your eggs one by one into the pan. Cook for 3-5 minutes.
- Flip when you want to flip them. Remove and serve.
But even if Stainless Steel remains intimidating as a cooking surface, alternatives remain. The current zeitgeist has turned towards cast iron, which when treated properly - and this step is far easier then people act like it is - is completely non-stick and able to handle any of your cooking needs.
https://www.youtube.com/watch?v=yGSDqXjoAsM
The counterpoint to using Cast Iron is multifold - one, that they are too heavy to cook dexterously with (flipping pancakes, omelettes, and such), and two that they are expensive - much more so then a Teflon pan, I admit.
This is where carbon steel enters the picture - long the back bone of commerical kitchens, carbon steel is the secret workhorse that makes a teflon-free kitchen as functional. Seasoned in the same way as cast iron, they are lightweight, easy to care for, and, critically, completely non-stick. [^4]
[^4]: As long as you are heating it hot enough, which, seriously, I cannot stress enough you should be doing.
Best of all, they're affordable. You can find them online for as low as $50, but the real tip is that restaurant supply stores frequently have broken cases (meaning they opened a bulk set for a client who only needed a few), and are likely selling the rest of the case at or near cost - I picked up my first pan this way for $30.
This is the strange truth of professional cookwear. The best stuff doesn't have a consumer marketing department; they sell primarily to commercial kitchens who already know what the best stuff to use is - in this case carbon steel pans, because they've been using these pans for hundreds of years with no problem - literally, carbon steel woks have a lineage all the way back to Imperial China.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28A estrutura lógica do livro didático
Todos os livros didáticos e cursos expõem seus conteúdos a partir de uma organização lógica prévia, um esquema de todo o conteúdo que julgam relevante, tudo muito organizadinho em tópicos e subtópicos segundo a ordem lógica que mais se aproxima da ordem natural das coisas. Imagine um sumário de um manual ou livro didático.
A minha experiência é a de que esse método serve muito bem para ninguém entender nada. A organização lógica perfeita de um campo de conhecimento é o resultado final de um estudo, não o seu início. As pessoas que escrevem esses manuais e dão esses cursos, mesmo quando sabem do que estão falando (um acontecimento aparentemente raro), o fazem a partir do seu próprio ponto de vista, atingido após uma vida de dedicação ao assunto (ou então copiando outros manuais e livros didáticos, o que eu chutaria que é o método mais comum).
Para o neófito, a melhor maneira de entender algo é através de imersões em micro-tópicos, sem muita noção da posição daquele tópico na hierarquia geral da ciência.
- Revista Educativa, um exemplo de como não ensinar nada às crianças.
- Zettelkasten, a ordem surgindo do caos, ao invés de temas se encaixando numa ordem preexistentes.
-
@ 6871d8df:4a9396c1
2024-02-24 22:42:16In an era where data seems to be as valuable as currency, the prevailing trend in AI starkly contrasts with the concept of personal data ownership. The explosion of AI and the ensuing race have made it easy to overlook where the data is coming from. The current model, dominated by big tech players, involves collecting vast amounts of user data and selling it to AI companies for training LLMs. Reddit recently penned a 60 million dollar deal, Google guards and mines Youtube, and more are going this direction. But is that their data to sell? Yes, it's on their platforms, but without the users to generate it, what would they monetize? To me, this practice raises significant ethical questions, as it assumes that user data is a commodity that companies can exploit at will.
The heart of the issue lies in the ownership of data. Why, in today's digital age, do we not retain ownership of our data? Why can't our data follow us, under our control, to wherever we want to go? These questions echo the broader sentiment that while some in the tech industry — such as the blockchain-first crypto bros — recognize the importance of data ownership, their "blockchain for everything solutions," to me, fall significantly short in execution.
Reddit further complicates this with its current move to IPO, which, on the heels of the large data deal, might reinforce the mistaken belief that user-generated data is a corporate asset. Others, no doubt, will follow suit. This underscores the urgent need for a paradigm shift towards recognizing and respecting user data as personal property.
In my perfect world, the digital landscape would undergo a revolutionary transformation centered around the empowerment and sovereignty of individual data ownership. Platforms like Twitter, Reddit, Yelp, YouTube, and Stack Overflow, integral to our digital lives, would operate on a fundamentally different premise: user-owned data.
In this envisioned future, data ownership would not just be a concept but a practice, with public and private keys ensuring the authenticity and privacy of individual identities. This model would eliminate the private data silos that currently dominate, where companies profit from selling user data without consent. Instead, data would traverse a decentralized protocol akin to the internet, prioritizing user control and transparency.
The cornerstone of this world would be a meritocratic digital ecosystem. Success for companies would hinge on their ability to leverage user-owned data to deliver unparalleled value rather than their capacity to gatekeep and monetize information. If a company breaks my trust, I can move to a competitor, and my data, connections, and followers will come with me. This shift would herald an era where consent, privacy, and utility define the digital experience, ensuring that the benefits of technology are equitably distributed and aligned with the users' interests and rights.
The conversation needs to shift fundamentally. We must challenge this trajectory and advocate for a future where data ownership and privacy are not just ideals but realities. If we continue on our current path without prioritizing individual data rights, the future of digital privacy and autonomy is bleak. Big tech's dominance allows them to treat user data as a commodity, potentially selling and exploiting it without consent. This imbalance has already led to users being cut off from their digital identities and connections when platforms terminate accounts, underscoring the need for a digital ecosystem that empowers user control over data. Without changing direction, we risk a future where our content — and our freedoms by consequence — are controlled by a few powerful entities, threatening our rights and the democratic essence of the digital realm. We must advocate for a shift towards data ownership by individuals to preserve our digital freedoms and democracy.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Boardthreads
This was a very badly done service for turning a Trello list into a helpdesk UI.
Surprisingly, it had more paying users than Websites For Trello, which I was working on simultaneously and dedicating much more time to it.
The Neo4j database I used for this was a very poor choice, it was probably the cause of all the bugs.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Channels without HTLCs
HTLCs below the dust limit are not possible, because they're uneconomical.
So currently whenever a payment below the dust limit is to be made Lightning peers adjust their commitment transactions to pay that amount as fees in case the channel is closed. That's a form of reserving that amount and incentivizing peers to resolve the payment, either successfully (in case it goes to the receiving node's balance) or not (it then goes back to the sender's balance).
SOLUTION
I didn't think too much about if it is possible to do what I think can be done in the current implementation on Lightning channels, but in the context of Eltoo it seems possible.
Eltoo channels have UPDATE transactions that can be published to the blockchain and SETTLEMENT transactions that spend them (after a relative time) to each peer. The barebones script for UPDATE transactions is something like (copied from the paper, because I don't understand these things):
OP_IF # to spend from a settlement transaction (presigned) 10 OP_CSV 2 As,i Bs,i 2 OP_CHECKMULTISIGVERIFY OP_ELSE # to spend from a future update transaction <Si+1> OP_CHECKLOCKTIMEVERIFY 2 Au Bu 2 OP_CHECKMULTISIGVERIFY OP_ENDIF
During a payment of 1 satoshi it could be updated to something like (I'll probably get this thing completely wrong):
OP_HASH256 <payment_hash> OP_EQUAL OP_IF # for B to spend from settlement transaction 1 in case the payment went through # and they have a preimage 10 OP_CSV 2 As,i1 Bs,i1 2 OP_CHECKMULTISIGVERIFY OP_ELSE OP_IF # for A to spend from settlement transaction 2 in case the payment didn't went through # and the other peer is uncooperative <now + 1day> OP_CHECKLOCKTIMEVERIFY 2 As,i2 Bs,i2 2 OP_CHECKMULTISIGVERIFY OP_ELSE # to spend from a future update transaction <Si+1> OP_CHECKLOCKTIMEVERIFY 2 Au Bu 2 OP_CHECKMULTISIGVERIFY OP_ENDIF OP_ENDIF
Then peers would have two presigned SETTLEMENT transactions, 1 and 2 (with different signature pairs, as badly shown in the script). On SETTLEMENT 1, funds are, say, 999sat for A and 1001sat for B, while on SETTLEMENT 2 funds are 1000sat for A and 1000sat for B.
As soon as B gets the preimage from the next peer in the route it can give it to A and them can sign a new UPDATE transaction that replaces the above gimmick with something simpler without hashes involved.
If the preimage doesn't come in viable time, peers can agree to make a new UPDATE transaction anyway. Otherwise A will have to close the channel, which may be bad, but B wasn't a good peer anyway.
-
@ fa984bd7:58018f52
2024-06-10 10:42:46I'm happy to announce the release of NDK 2.8 which comes with a plethora of new performance improvements, threading capabilities and many many other things.
TL;DR: - Optimistic signature-verification - Threaded signature-verification - Threads, threads, threads! s/o nostr:npub1dergggklka99wwrs92yz8wdjs952h2ux2ha2ed598ngwu9w7a6fsh9xzpc
- Dexie cache adapter becomes massively more efficientOnwards 🫡
Performance boost
Optimistic signature-verification
NDK can now be configured to perform signature verification of events asynchronously. This means that events are assumed to be valid and pushed to a queue.
When an invalid signature is received, a global event is emitted for the application to handle accordingly (i.e. alert the user, disconnect from the evil relay, etc)
Web Worker Signature Verification
Signature verification can be offloaded to a web worker (meaning that it runs on it's own thread) with the
workers/sig-verification
that comes with NDK. Other web workers can be implemented and hooked to NDK.Dexie Cache Adapter Improvements
This cache adapter now works mostly as an LRU in-memory cache; while using IndexDB mostly just as a persistence storage.
Threading
nostr:npub1dergggklka99wwrs92yz8wdjs952h2ux2ha2ed598ngwu9w7a6fsh9xzpc has paved the way to show how broken thread rendering is in nostr multiple-times. This release includes a bunch of helper functions that should make proper thread rendering incredibly obvious.
When fetching events, these functions can be used to make sense of what's the right ordering, what are replies, what is part of the main thread, etc.
The main entry point to these threading utility functions is
eventThreads
, which can be provided a set of fetched events and will return, in order, the events that belong to the thread. All other events can be rendered as replies.There are many more very useful functions along with it that can be found on
src/threads
. Examples of how to use these can be found on the open sourced Highlighter codebase. -
@ e1ff3bfd:341be1af
2024-02-23 14:01:13Ben's fuck the bears book
Only sign this if you want to fuck the bears
-
@ 5d4b6c8d:8a1c1ee3
2024-06-13 15:29:44No major changes today. Read the June 12th edition here: https://stacker.news/items/571554/r/Undisciplined.
June 13th, 2023 📅
📝
TOP POST
Ark AMA
Hi all, this is Burak. Feel free to ask me anything about Ark. Ark is a new privacy-preserving Bitcoin layer-two idea for those unfamiliar. I would love to address all of your questions or concerns you might have. Stupid questions are welcome :)
by @brqgoo 30.7k sats \ 112 comments
💬
TOP COMMENT
https://stacker.news/items/192040/r/Undisciplined?commentId=192050
When do you think will be available some testing code for all this ark?
by @DarthCoin 1635 sats \ 4 replies
🏆
TOP STACKER
@nerd2ninja 1155 stacked \ 6281 spent \ 2 posts \ 28 comments \ 0 referrals
https://imgprxy.stacker.news/fsFoWlgwKYsk5mxx2ijgqU8fg04I_2zA_D28t_grR74/rs:fit:960:540/aHR0cHM6Ly9tLnN0YWNrZXIubmV3cy8yMzc5Ng
June 13th, 2022 📅
📝
TOP POST
Where do we go from here?
Excerpt:
Given the recent events, and uncertainty in the world today, how do you think the next year will unfold? Are you optimistic? pessimistic? nervous? excited? Will Bitcoin, CPI inflation, interest rates, and stock indices be higher or lower this time next year?
by @sn 289 sats \ 25 comments
💬
TOP COMMENT
https://stacker.news/items/36151/r/Undisciplined?commentId=36153
Excerpt:
Basically, its gonna suck.
by @nerd2ninja 274 sats \ 3 replies
🏆
TOP STACKER
@nout 370 stacked \ 952 spent \ 1 post \ 6 comments \ 0 referrals
https://imgprxy.stacker.news/fsFoWlgwKYsk5mxx2ijgqU8fg04I_2zA_D28t_grR74/rs:fit:960:540/aHR0cHM6Ly9tLnN0YWNrZXIubmV3cy8yMzc5Ng
June 13th, 2021 📅
📝
TOP POST
Pieter Wuille on the Taproot Genesis Story
Excerpt:
As of block 687284, Taproot signalling has reached 1815 blocks this period, guaranteeing that absent very deep reorgs, it is guaranteed to lock in.
by @banana 1 sat \ 2 comments
💬
TOP COMMENT
https://stacker.news/items/2/r/Undisciplined?commentId=23
Some kind of markdown in comments
by @sha256 1000 sats \ 1 boost \ 1 reply
🏆
TOP STACKER
@sha256 4 stacked \ 1 spent \ 1 post \ 2 comments \ 0 referrals
-
@ f3df9bc0:a95119eb
2024-06-13 14:48:34U2FsdGVkX1+0MCP4cRSq+gL2nrpyDTsv0KWpNso/TB+S6LOTTI2ioJXrlzprgvn1XwPYhKu4Jn4NCJKV9hjkFRJZUmPrkdwGooSIaT0DdE9BJfTJQn3FLe7fAWP/X8kR1W8+ZiMZhO4WuHFKD0vDPyuoRMNebjfaqecueM7d+n49UTe+8eyqv7JAbqlSQYw1fz/uOF/GwPaVKCL0M2D/qjmoiio91tRg4DpjsJIX/0qNMmMakW1UzVxlQg5fEIdZbCliaZQmiMTmyjzUMTFnWA==
-
@ 6ad3e2a3:c90b7740
2024-06-10 08:53:18“You are wise and powerful. Will you not take the Ring?”
“No!” cried Gandalf, springing to his feet. “With that power I should have power too great and terrible. And over me the Ring would gain a power still greater and more deadly.” His eyes flashed and his face was lit as by a fire within. “Do not tempt me! For I do not wish to become like the Dark Lord himself. Yet the way of the Ring to my heart is by pity, pity for weakness and the desire of strength to do good. Do not tempt me! I dare not take it, not even to keep it safe, unused. The wish to wield it would be too great for my strength. I shall have such need of it. Great perils lie before me.”
-- J.R.R Tolkien's Lord of the Rings
Power tends to corrupt, and absolute power corrupts absolutely. -- Lord Acton
Upon seeing so much (understandable) condemnation of Russia and Vladimir Putin for invading Ukraine, I asked the following question:
I got a variety of answers, but a common one was the sentiment that whatever we did in Iraq, and admittedly it was bad, we are not Russia, and we can never be equated with a country ruled by an autocrat. Here's an example of this sentiment from an Atlantic columnist:
People seem to be arguing a version of American exceptionalism -- or at least Western-democracy exceptionalism, i.e., the idea that because we have a better, more fair and more just society generally what we do abroad can't be properly compared to what an autocratic society does, even if there are apparent similarities in the tactics (bombing and invading) and results (destruction of a sovereign country, civilian deaths.) Put in legal terms, people who espouse this view would be declining to hear this case on the merits for lack of standing, i.e., autocratic societies like Russia lack standing even to compare their actions with democratic ones.
But to defend this view, you need to articulate the basis on which Western democracies derive their moral superiority over autocratic ones. If I were making the case, I would point out Western democracies value civil liberties and human rights, while autocratic ones do not. Putin has -- for now -- more power over the average Russian, and Xi more power over the average Chinese than our government has over us. We have a Bill of Rights, separation of powers and individual states that can add even more robust protections if they so choose. In short, it's better to be an American citizen than a Russian or Chinese one because America rests on better axioms for constructing a society. It holds everyone is created equal and explicitly bans the government from infringing on freedom of expression or seizure of person or property without due process. With better axioms come better lives, and with better lives, people who create, innovate and prosper.
But consider how America, the paragon of good axioms and historic prosperity, has treated those who were not protected by its constitution, for example, the citizens of Syria, Libya, Vietnam, Afghanistan, Central and South America and Iraq. How did we treat Native Americans or black people forcibly abducted into slavery? The people over whom we had virtually unchecked power were treated as horrifically as those under the reign of autocratic regimes because unchecked power, not form of government, is the determining factor. So it's not that we are better because our ruling class is kinder, gentler and more respectful than the oligarchs, military brass and politicians in autocratic countries. Hillary Clinton and Dick Cheney are not nicer people than Xi Jinping and Vladimir Putin -- the former just have less power to harm you than the latter their citizens, due to our axioms. Power corrupts, and absolute power corrupts absolutely.
Understanding human nature, our founding fathers wisely limited the power of the government over its citizens (even if it shamefully it took nearly 200 years for us to extend those rights to certain portions of the population.) So do not excuse Iraq because the US is "better than" Russia. We don't get absolution for evil acts by coasting on the brand. It is only these axioms that make America better than autocratic countries, and to the extent we stand by and reinforce them, it will remain that way.
But if we let them erode out of concerns for safety, expedience, or social pressure, we squander any moral authority we might once have had. If you're willing to force your neighbor to take medicine he doesn't want because authorities said so, or stay in his home because politicians told him to, you are undermining the very protections from power that make us different. If the authorities can condition your ability to move freely, decide what goes into your body or what information you are allowed to access or express publicly, their powers over you are virtually unlimited, the axioms that protect you dead. To grant politicians such power is to ensure its inevitable abuse.
That's why Gandalf, a powerful wizard who, it would seem, stood a far better chance than Frodo to destroy the ring, refused it.
"Do not tempt me! For I do not wish to become like the Dark Lord himself," he pleads. Gandalf knew that in wielding great power over others, he would no longer remain good. America is exceptional because of its ruling class' limitations, and when it exceeds them, no matter the justification, it becomes like any other autocracy.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Criteria for activating Drivechain on Bitcoin
Drivechain is, in essence, just a way to give Bitcoin users the option to deposit their coins in a hashrate escrow. If Bitcoin is about coin ownership, in theory there should be no objection from anyone on users having the option to do that: my keys, my coins etc. In other words: even if you think hashrate escrows are a terrible idea and miners will steal all coins from that, you shouldn't care about what other people do with their own money.
There are only two reasonable objections that could be raised by normal Bitcoin users against Drivechain:
- Drivechain adds code complexity to
bitcoind
- Drivechain perverts miner incentives of the Bitcoin chain
If these two objections can be reasonably answered there remains no reason for not activating the Drivechain soft-fork.
1
To address 1 we can just take a look at the code once it's done (which I haven't) but from my understanding the extra validation steps needed for ensuring hashrate escrows work are very minimal and self-contained, they shouldn't affect anything else and the risks of introducing some catastrophic bug are roughly zero (or the same as the risks of any of the dozens of refactors that happen every week on Bitcoin Core).
For the BMM/BIP-301 part, again the surface is very small, but we arguably do not need that at all, since anyprevout (once that is merged) enables blind merge-mining in way that is probably better than BIP-301, and that soft-fork is also very simple, plus already loved and accepted by most of the Bitcoin community, implemented and reviewed on Bitcoin Inquisition and is live on the official Bitcoin Core signet.
2
To address 2 we must only point that BMM ensures that Bitcoin miners don't have to do any extra work to earn basically all the fees that would come from the sidechain, as competition for mining sidechain blocks would bid the fee paid to Bitcoin miners up to the maximum economical amount. It is irrelevant if there is MEV on the sidechain or not, everything that reaches the Bitcoin chain does that in form of fees paid in a single high-fee transaction paid to any Bitcoin miner, regardless of them knowing about the sidechain or not. Therefore, there are no centralization pressure or pervert mining incentives that can affect Bitcoin land.
Sometimes it's argued that Drivechain may facilitate the ocurrence of a transaction paying a fee so high it would create incentives for reorging the Bitcoin chain. There is no reason to believe Drivechain would make this more likely than an actual attack than anyone can already do today or, as has happened, some rich person typing numbers wrong on his wallet. In fact, if a drivechain is consistently paying high fees on its BMM transactions that is an incentive for Bitcoin miners to keep mining those transactions one after the other and not harm the users of sidechain by reorging Bitcoin.
Moreover, there are many factors that exist today that can be seen as centralization vectors for Bitcoin mining: arguably one of them is non-blind merge mining, of which we have a (very convoluted) example on the Stacks shitcoin, and introducing the possibility of blind merge-mining on Bitcoin would basically remove any reasonable argument for having such schemes, therefore reducing the centralizing factor of them.
- Drivechain adds code complexity to
-
@ b5894129:fc60ad24
2024-06-09 15:35:09longtest
jsjsjjsj# sjjsjj
kkkkkkk
ggggghh
- kkkk* nnhjjj
pppmmmmmmmmmmmmmmmmmmmmnbbb
-
@ c69b71dc:426ba763
2024-06-13 12:50:37Chef's notes
Soaking nuts and seeds overnight makes the soup creamier and easier to blend if you have a less powerful blender. You can also use a hand blender. You can swap out nuts and seeds as needed. Cashews alone or cashews with almonds are also very tasty. More variety provides you with all the essential amino acids and fatty acids your body needs.
If you don't have miso or soy sauce, you can just use salt. But it tastes so much better with the other ingredients.
You will be surprised how tasty this soup will be! Please let me know if you try it 💚
Details
- ⏲️ Prep time: 7 minutes
- 🍳 Cook time: 0
- 🍽️ Servings: 2 - 3
Ingredients
- 200g Cashews (soaked over night)
- 50g Sunflower Seeds (soaked over night)
- 20g Hemp seeds (soaked over night)
- 2 Mushrooms (medium size)
- 2 Shiitake
- 4 tbsp Nutritional Yeast (optional)
- 1 tsp Salt (or more)
- 1 tbsp Miso (optional)
- 2 tbsp Soy Sauce (Nama Tamari)
- 2 cm of a spicy red Chilli (optional)
- 700ml Filtered Water
- 1 Clove of Garlic
- Pepper and Herbs (optional for topping)
Directions
- Soak Cashews, sunflower seeds and hemp seeds over night in water.
- Next day blend all the other ingredients with soaked seeds and nuts.
- Give it a taste and add more salt, miso or soy sauce
- Add more water if it's to thick
- Serve and sprinkle ground pepper and some herbs on top if desired for decoration
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Um algoritmo imbecil da evolução
Suponha que você queira escrever a palavra BANANA partindo de OOOOOO e usando só alterações aleatórias das letras. As alterações se dão por meio da multiplicação da palavra original em várias outras, cada uma com uma mudança diferente.
No primeiro período, surgem BOOOOO e OOOOZO. E então o ambiente decide que todas as palavras que não começam com um B estão eliminadas. Sobra apenas BOOOOO e o algoritmo continua.
É fácil explicar conceber a evolução das espécies acontecendo dessa maneira, se você controlar sempre a parte em que o ambiente decide quem vai sobrar.
Porém, há apenas duas opções:
- Se o ambiente decidir as coisas de maneira aleatória, a chance de você chegar na palavra correta usando esse método é tão pequena que pode ser considerada nula.
- Se o ambiente decidir as coisas de maneira pensada, caímos no //design inteligente//.
Acredito que isso seja uma enunciação decente do argumento "no free lunch" aplicado à crítica do darwinismo por William Dembski.
A resposta darwinista consiste em dizer que não existe essa BANANA como objetivo final. Que as palavras podem ir se alterando aleatoriamente, e o que sobrar sobrou, não podemos dizer que um objetivo foi atingido ou deixou de sê-lo. E aí os defensores do design inteligente dirão que o resultado ao qual chegamos não pode ter sido fruto de um processo aleatório. BANANA é qualitativamente diferente de AYZOSO, e aí há várias maneiras de "provar" que sim usando modelos matemáticos e tal.
Fico com a impressão, porém, de que essa coisa só pode ser resolvida como sim ou não mediante uma discussão das premissas, e chega um ponto em que não há mais provas matemáticas possíveis, apenas subjetividade.
Daí eu me lembro da minha humilde solução ao problema do cão que aperta as teclas aleatoriamente de um teclado e escreve as obras completas de Shakespeare: mesmo que ele o faça, nada daquilo terá sentido sem uma inteligência de tipo humano ali para lê-las e perceber que não se trata de uma bagunça, mas sim de um texto com sentido para ele. O milagre se dá não no momento em que o cão tropeça no teclado, mas no momento em que o homem olha para a tela.
Se o algoritmo da evolução chegou à palavra BANANA ou UXJHTR não faz diferença pra ela, mas faz diferença para nós, que temos uma inteligência humana, e estamos observando aquilo. O homem também pensaria que há //algo// por trás daquele evento do cão que digita as obras de Shakespeare, e como seria possível alguém em sã consciência pensar que não?
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Gerador de tabelas de todos contra todos
I don't remember exactly when I did this, but I think a friend wanted to do software that would give him money over the internet without having to work. He didn't know how to program. He mentioned this idea he had which was some kind of football championship manager solution, but I heard it like this: a website that generated a round-robin championship table for people to print.
It is actually not obvious to anyone how to do it, it requires an algorithm that people will not reach casually while thinking, and there was no website doing it in Portuguese at the time, so I made this and it worked and it had a couple hundred daily visitors, and it even generated money from Google Ads (not much)!
First it was a Python web app running on Heroku, then Heroku started charging or limiting the amount of free time I could have on their platform, so I migrated it to a static site that ran everything on the client. Since I didn't want to waste my Python code that actually generated the tables I used Brython to run Python on JavaScript, which was an interesting experience.
In hindsight I could have just taken one of the many
round-robin
JavaScript libraries that exist on NPM, so eventually after a couple of more years I did that.I also removed Google Ads when Google decided it had so many requirements to send me the money it was impossible, and then the money started to vanished.
-
@ 8f69ac99:4f92f5fd
2024-06-13 10:14:58No mundo actual, o dinheiro parece existir sob muitas formas diferentes. Provavelmente já ouviu termos como criptomoeda, moeda fiduciária, CBDC e Bitcoin, mencionados na mídia ou em conversas, e tudo isso pode ser bastante confuso. O que significam esses termos e como o afectam? Este artigo visa esclarecer parte dessa confusão, focando-se num desses termos: Bitcoin.
O Bitcoin é frequentemente mencionado ao lado de outros tipos de moeda, mas é importante entender que é bastante diferente do dinheiro tradicional e até de outras criptomoedas. Se alguma vez se perguntou por que o Bitcoin existe, como funciona, ou por que algumas pessoas acreditam que é tão revolucionário, está no lugar certo. Vamos explorar tudo, desde como o Bitcoin é criado até por que a privacidade é uma característica crucial. No final deste artigo, deverá ter uma compreensão sólida do Bitcoin e de por que se destaca no mundo das finanças.
Emissão e Oferta
O que é a Emissão no Bitcoin?
Emissão refere-se à criação de novos bitcoins. Ao contrário do dinheiro tradicional, que pode ser impresso ou cunhado pelos governos à vontade, o Bitcoin segue um cronograma de emissão predeterminado. Este cronograma está embutido no seu código e não pode ser alterado, garantindo uma oferta transparente e previsível.
Como São Criados os bitcoins?
Os bitcoins são criados através de um processo conhecido como mineração. Os mineradores usam computadores poderosos para resolver um problema, encontrar um numero aleatório (na realidade um hash com um número de zeros especifico no prefixo). Quando um "problema" é resolvido, um novo bloco é adicionado à blockchain do Bitcoin, e o minerador é recompensado com um certo número de Bitcoins recém-criados, 3.125 a data deste artigo. Este processo é chamado de proof-of-work.
Limite Fixo de Oferta
Uma das características mais distintivas do Bitcoin é o seu limite fixo de oferta. Só existirão 21 milhões de bitcoins. Este limite está codificado no protocolo do Bitcoin, tornando impossível criar mais. Até agora, mais de 19 milhões de bitcoins já foram minerados, e os Bitcoins restantes serão lançados gradualmente até que a oferta total se esgote, em 2140.
Comparação com Moeda Fiduciária
Em contraste, as moedas fiduciárias, como o Dólar Americano ou o Euro, estão sujeitas à inflação. Os bancos centrais podem imprimir mais dinheiro sempre que considerarem necessário, o que pode levar à desvalorização ao longo do tempo. É por isso que pode ter notado um aumento constante nos preços dos bens e serviços — muitas vezes devido à inflação. A oferta fixa do Bitcoin visa evitar este problema, oferecendo uma alternativa deflacionária.
Por Que a Oferta é Importante?
A oferta controlada do Bitcoin é crucial para a sua proposta de valor. À medida que o número de bitcoins disponíveis diminui, espera-se que a procura aumente, potencialmente elevando o seu valor. Esta escassez é semelhante aos metais preciosos, como o ouro, que também são limitados em oferta e têm mantido o seu valor ao longo dos séculos.
Compreender a emissão e a oferta do Bitcoin é fundamental para perceber por que é considerado uma forma revolucionária de dinheiro. Oferece uma alternativa transparente, previsível e deflacionária às moedas fiduciárias tradicionais, posicionando-se como uma reserva de valor digital.
Mineração de Bitcoin
O que é Mineração?
A mineração de Bitcoin é o processo pelo qual novos bitcoins são criados e as transacções são adicionadas à blockchain, que é o registo público do Bitcoin. Pense na mineração como a espinha dorsal da rede Bitcoin, mantendo-a segura e funcionando sem problemas. Mas o que exactamente acontece durante este processo?
Como Funciona a Mineração?
No seu cerne, a mineração envolve a resolução de puzzles matemáticos complexos. Quando envia uma transacção de bitcoin, ela precisa ser verificada e adicionada à blockchain. Os mineradores usam computadores poderosos para resolver esses puzzles, e o primeiro a encontrar a solução adiciona um novo bloco de transacções à blockchain. Este processo é conhecido como "proof-of-work".
Recompensas para os Mineradores
Por que os mineradores passam por todo esse trabalho? A resposta é simples: incentivos. Quando um minerador adiciona com sucesso um novo bloco à blockchain, ele é recompensado com bitcoins recém-criados. É assim que novos bitcoins entram em circulação. Além disso, os mineradores ganham taxas de transacção pagas pelos utilizadores que desejam que suas transacções sejam incluídas no bloco.
O Papel do Equipamento de Mineração
Nem todos os computadores podem minerar Bitcoin de forma eficiente. A mineração requer hardware especializado chamado ASICs (Circuitos Integrados de Aplicação Específica) que são projectados especificamente para este propósito. Estas máquinas são muito mais poderosas e eficientes em termos de energia do que os computadores comuns.
Mecanismo de Consenso Proof-of-Work
Proof-of-work (PoW) é o método utilizado pela rede Bitcoin para alcançar consenso e garantir que todas as transacções são válidas. Este mecanismo é crucial porque previne fraudes, como o gasto duplo, tornando computacionalmente dispendioso manipular a blockchain. A dificuldade dos puzzles matemáticos ajusta-se ao longo do tempo para garantir que novos blocos são adicionados aproximadamente a cada dez minutos, mantendo um fluxo constante de novos bitcoins.
Pools de Mineração
Porque resolver esses puzzles requer muita potência computacional, muitos mineradores unem forças no que são conhecidos como pools de mineração. Trabalhando juntos e partilhando seus recursos, eles podem resolver puzzles com mais frequência e ganhar recompensas mais consistentes, que são então distribuídas entre os membros do pool com base na quantidade de potência computacional que contribuíram.
A mineração de Bitcoin é um processo fascinante e complexo que garante a integridade e segurança de toda a rede. É o método pelo qual novos bitcoins são introduzidos em circulação e é um aspecto fundamental de como o Bitcoin opera. Compreender a mineração oferece uma visão sobre a maquinaria intrincada que alimenta a primeira moeda digital descentralizada do mundo.
Privacidade e Segurança
Privacidade no Bitcoin
Quando utiliza Bitcoin, as suas transacções são pseudónimas. Isso significa que, embora todas as transacções sejam registadas publicamente na blockchain, não estão directamente ligadas à sua identidade pessoal. Em vez disso, cada transacção está associada a um endereço público, que é uma longa cadeia de caracteres alfanuméricos. Estes endereços funcionam como um pseudónimo, ocultando a identidade real do utilizador por trás da transacção.
Em contraste, os sistemas bancários tradicionais exigem que forneça informações pessoais extensas para abrir uma conta e realizar transacções. Isso deve-se às regulamentações de conhecer o seu cliente (KYC), que visam prevenir actividades ilegais. No entanto, este nível de transparência pode, por vezes, jogar contra a sua privacidade e segurança.
Importância da Privacidade
A privacidade nas transacções financeiras é mais do que um luxo; é uma necessidade por várias razões: 1. Protecção Contra Censura e Vigilância: Em alguns países, o governo monitoriza de perto e, por vezes, restringe transacções financeiras. O Bitcoin oferece uma alternativa que pode ajudar a proteger os indivíduos da censura e vigilância indevidas. 2. Liberdade e Autonomia Financeira: Ao manter as transacções privadas, o Bitcoin permite aos utilizadores manter o controlo sobre as suas próprias finanças sem depender de instituições financeiras tradicionais, que por vezes podem impor restrições ou taxas. 3. Risco de Hacking e Roubo de Identidade: Sistemas tradicionais que armazenam dados pessoais são alvos frequentes de hackers. Violação de dados pode levar ao roubo de identidade e perdas financeiras. O Bitcoin, ao usar endereços pseudónimos, reduz o risco de exposição de dados pessoais.
Embora o Bitcoin ofereça um grau de privacidade, não é totalmente anónimo. É importante notar que análises sofisticadas de dados da blockchain podem, por vezes, ligar transacções a indivíduos, especialmente se os utilizadores não forem cuidadosos na forma como gerem os seus endereços e transacções de Bitcoin.
Segurança no Bitcoin
A segurança do Bitcoin é outra característica chave que o distingue dos sistemas financeiros tradicionais: 1. Descentralização: O Bitcoin opera numa rede descentralizada, o que significa que não há um único ponto de controlo ou falha. Isso torna-o altamente resistente a ataques que poderiam derrubar toda a rede. 2. Segurança Criptográfica: O Bitcoin usa técnicas criptográficas avançadas para proteger as transacções e controlar a criação de novas unidades. Cada transacção é verificada e registada na blockchain, tornando praticamente impossível alterar transacções passadas sem alterar as subsequentes. 3. Mecanismo de Proof-of-Work (PoW): Este algoritmo de consenso exige que os mineradores resolvam problemas matemáticos complexos para validar transacções e adicioná-las à blockchain. Este processo garante que a rede permanece segura e que actores maliciosos não podem manipular facilmente o sistema.
Em resumo, a privacidade e a segurança são aspectos fundamentais do Bitcoin que contribuem para a sua singularidade e apelo. Ao permitir transacções pseudónimas e empregar medidas de segurança robustas, o Bitcoin oferece um nível de privacidade e segurança financeira difícil de alcançar com os sistemas bancários tradicionais.
Descentralização
Uma das principais características que distingue o Bitcoin do dinheiro tradicional e de muitas outras moedas digitais é a descentralização. Mas o que exactamente significa isso?
O que é Descentralização?
Descentralização refere-se à distribuição de poder e controlo longe de uma autoridade central. No contexto do Bitcoin, isso significa que nenhuma entidade única, como um governo ou um banco central, tem controlo sobre a moeda. Em vez disso, o Bitcoin opera numa rede descentralizada de computadores em todo o mundo, conhecidos como nós. Cada nó mantém uma cópia do registo do Bitcoin, a blockchain, que regista todas as transacções.
Benefícios da Descentralização
Resistência à Censura e Controlo: Como o Bitcoin não é controlado por nenhuma entidade única, é resistente à censura e ao controlo externo. Isso significa que as transacções não podem ser facilmente bloqueadas ou revertidas por governos ou bancos. Isto é particularmente importante em países onde a liberdade financeira é limitada, pois o Bitcoin fornece uma forma alternativa de armazenar e transferir valor.
Maior Segurança e Confiança: A descentralização aumenta a segurança e a confiança através de um processo chamado consenso. Para uma transacção ser adicionada à blockchain, ela deve ser verificada por vários nós. Este mecanismo de consenso garante que nenhuma entidade única pode manipular o sistema, tornando-o altamente seguro e confiável.
Fiabilidade e Disponibilidade: Uma rede descentralizada como a do Bitcoin é inerentemente mais fiável do que um sistema centralizado. Como a blockchain é mantida por milhares de nós em todo o mundo, permanece operacional mesmo se alguns nós falharem. Esta redundância garante que o Bitcoin está sempre disponível, tornando-o uma forma fiável de dinheiro.
Em resumo, a descentralização é um aspecto fundamental do Bitcoin que oferece vantagens significativas sobre os sistemas financeiros centralizados tradicionais. Fornece resistência à censura, aumenta a segurança através do consenso e garante fiabilidade através de uma rede distribuída. Compreender esses benefícios ajuda a destacar por que o Bitcoin é considerado uma tecnologia revolucionária no mundo das finanças.
Comparação com Dinheiro Fiduciário e CBDCs
Dinheiro Fiduciário: A Moeda Tradicional
Para entender o Bitcoin, é essencial primeiro compreender o que é o dinheiro fiduciário. O dinheiro fiduciário é a moeda padrão que usamos todos os dias, como o Dólar Americano (USD), o Euro (EUR) ou o Iene Japonês (JPY). Ao contrário de commodities como o ouro ou a prata, o dinheiro fiduciário não tem valor intrínseco; o seu valor vem da confiança e autoridade do governo que o emite.
O dinheiro fiduciário é centralizado, ou seja, é controlado pelo banco central ou governo de um país. Estas entidades têm o poder de imprimir dinheiro e gerir a sua oferta, influenciando a inflação e a estabilidade económica. Por exemplo, quando um banco central imprime mais dinheiro, pode levar à inflação, reduzindo o valor da moeda ao longo do tempo.
Moedas Digitais de Bancos Centrais (CBDCs): Dinheiro Digital
As Moedas Digitais de Bancos Centrais (CBDCs) são uma nova forma de dinheiro digital que está a ser explorada por muitos governos em todo o mundo. As CBDCs são essencialmente versões digitais das moedas fiduciárias, emitidas e reguladas pelos bancos centrais. Prometem a conveniência das transacções digitais, mantendo o controlo e a supervisão do governo.
Embora as CBDCs possam parecer semelhantes às criptomoedas, ou até mesmo a Bitcoin, são fundamentalmente diferentes porque são centralizadas (na realidade a esmagadora maioria das "cripto" são centralizadas e/ou esquemas). Esta centralização significa que a autoridade emissora pode rastrear transacções, implementar políticas monetárias e manter um nível de controlo semelhante ao do dinheiro fiduciário tradicional. Além disso, as CBDCs podem ter consequências nefastas para a liberdade individual e a privacidade.
Consequências Nefastas das CBDCs
As CBDCs representam um risco significativo para a liberdade individual e a privacidade financeira. Num cenário onde um governo opressivo detém o controlo de uma CBDC, o poder para controlar a população aumenta drasticamente. Por exemplo:
- Controle de Actividades Pessoais: Se um cidadão disser algo que o governo não aprova, a sua conta pode ser bloqueada.
- Aumento Arbitrário de Impostos: Associações com pessoas ou grupos não aceites pelo governo podem resultar em aumentos de impostos.
- Restrição de Gastos: O governo pode recusar transacções para hobbies considerados improdutivos ou limitar a compra de certos produtos.
- Congelamento de Fundos: Em casos de desaprovação religiosa ou política, os fundos podem ser congelados.
Para muitas pessoas em países altamente desenvolvidos, tais cenários podem parecer inimagináveis, mas a realidade é que uma grande parte da população mundial vive sob regimes autocráticos, onde os governos poderiam abusar felizmente de uma CBDC para reforçar o controle sobre os cidadãos. Mesmo em democracias, existe o risco de que CBDCs sejam usadas para "estimular" comportamentos desejados, inicialmente com boas intenções, mas que podem facilmente se expandir para um controlo mais generalizado.
Bitcoin vs. Dinheiro Fiduciário e CBDCs
Descentralização vs. Centralização
Uma das diferenças mais significativas entre o Bitcoin e tanto o dinheiro fiduciário quanto as CBDCs é a descentralização. O Bitcoin opera numa rede descentralizada de computadores em todo o mundo, conhecidos como nós. Esta rede garante que nenhuma entidade única, como um governo ou banco central, controla o Bitcoin. Em contraste, as moedas fiduciárias e as CBDCs são centralizadas e controladas por governos e bancos centrais.
Oferta Fixa vs. Oferta Inflacionária
Outra diferença chave é a oferta. O Bitcoin tem uma oferta fixa de 21 milhões de moedas, o que significa que nunca existirão mais de 21 milhões de bitcoins. Esta oferta limitada torna o Bitcoin imune à inflação. Os governos podem imprimir mais dinheiro fiduciário, levando à inflação e à diminuição do poder de compra ao longo do tempo. Em contraste, a oferta fixa do Bitcoin cria escassez, o que pode potencialmente aumentar o seu valor ao longo do tempo.
Privacidade e Segurança
As transacções em Bitcoin oferecem um nível de pseudonimato. Embora as transacções sejam registadas publicamente na blockchain, as identidades por trás dos endereços de Bitcoin não estão directamente ligadas a informações pessoais. Isto contrasta com as transacções fiduciárias, que são tipicamente ligadas a contas bancárias pessoais, e as CBDCs, que poderiam oferecer ainda menos privacidade devido à sua natureza digital e controlo centralizado.
Controlo e Autonomia
Com o Bitcoin, os utilizadores têm controlo total sobre os seus fundos sem precisar de um banco ou instituição financeira. Esta autonomia pode ser especialmente valiosa em regiões com sistemas financeiros instáveis ou para indivíduos que priorizam a privacidade financeira. O dinheiro fiduciário e as CBDCs, por outro lado, requerem que os utilizadores confiem e dependam de instituições financeiras e regulamentações governamentais.
Em resumo, embora o dinheiro fiduciário e as CBDCs sirvam como formas familiares e convenientes de moeda, o Bitcoin oferece uma alternativa descentralizada, resistente à inflação, que prioriza a privacidade e a autonomia dos utilizadores. Compreender essas diferenças é crucial para apreciar por que o Bitcoin se destaca no panorama financeiro.
O Papel do Bitcoin no Sistema Financeiro
O Bitcoin é mais do que apenas uma forma de dinheiro; é uma inovação revolucionária que oferece uma nova maneira de lidar com transacções financeiras e armazenar valor. Vamos explorar os papéis únicos que o Bitcoin desempenha no sistema financeiro.
Alternativa ao Sistema Bancário Tradicional
Um dos aspectos mais significativos do Bitcoin é a sua capacidade de facilitar transacções ponto-a-ponto sem a necessidade de intermediários como bancos. Veja como funciona: - transacções Ponto-a-Ponto: O Bitcoin permite-lhe enviar e receber dinheiro directamente de uma pessoa para outra, em qualquer parte do mundo. Este processo contorna o sistema bancário tradicional, que muitas vezes envolve várias partes e pode demorar vários dias para transferências internacionais. - Taxas Mais Baixas e Transferências Mais Rápidas: Como não há bancos ou outros intermediários envolvidos, as transacções em Bitcoin geralmente têm taxas mais baixas em comparação com o sistema bancário tradicional. Além disso, as transacções em Bitcoin podem ser concluídas em minutos, independentemente da distância geográfica entre o remetente e o destinatário.
Reserva de Valor
O Bitcoin é frequentemente referido como "ouro digital". Mas o que isso significa? - Ouro Digital: Tal como o ouro, o Bitcoin é visto como uma reserva de valor. Isso significa que pode ser guardado e recuperado no futuro com a expectativa de que manterá o seu valor ao longo do tempo. Ao contrário das moedas fiduciárias, que podem ser desvalorizadas pela inflação, o Bitcoin tem um limite de oferta fixo de 21 milhões de moedas, tornando-o um activo potencialmente valioso para a conservação a longo prazo. - Protecção Contra a Inflação: Em muitas partes do mundo, a inflação pode corroer o poder de compra do dinheiro. A oferta fixa e a natureza descentralizada do Bitcoin fazem dele uma protecção contra a inflação. À medida que os bancos centrais imprimem mais dinheiro, o valor do Bitcoin permanece estável, proporcionando um refúgio seguro para aqueles que procuram preservar a sua riqueza.
Inclusão Financeira
O Bitcoin abre serviços financeiros para pessoas que não têm acesso a bancos ou que têm acesso limitado: - Acesso para Todos: Os serviços bancários tradicionais não são acessíveis a todos, especialmente em países em desenvolvimento. O Bitcoin só requer uma ligação à internet e uma carteira digital, tornando-o disponível para qualquer pessoa, em qualquer lugar. - Empoderamento dos Indivíduos: Ao permitir que os indivíduos controlem o seu próprio dinheiro, o Bitcoin capacita as pessoas a participarem na economia global sem precisarem de permissão de bancos ou governos.
Em resumo, o Bitcoin serve como uma alternativa revolucionária ao sistema bancário tradicional, oferecendo taxas mais baixas e transacções mais rápidas. Também actua como uma reserva de valor, semelhante ao ouro digital, e proporciona uma protecção contra a inflação. Mais importante ainda, o Bitcoin promove a inclusão financeira, capacitando indivíduos em todo o mundo ao dar-lhes acesso directo a serviços financeiros.
Desafios e Críticas
Embora o Bitcoin ofereça inúmeros benefícios, não está isento de desafios e críticas. Compreender esses problemas é crucial para qualquer pessoa que deseje se envolver com o Bitcoin ou simplesmente entender seu papel no cenário financeiro.
Volatilidade
Uma das críticas mais comuns ao Bitcoin é a sua volatilidade. O valor do bitcoin, em moeda fiduciária, pode flutuar dramaticamente em curtos períodos, o que pode ser emocionante e assustador para os investidores. Esta volatilidade é impulsionada por vários factores, incluindo especulação de mercado, eventos noticiosos e mudanças regulatórias.
No entanto, é importante entender alguns pontos sobre a volatilidade do Bitcoin:
-
Bitcoin é Relativamente Novo: O Bitcoin é uma tecnologia relativamente nova e actualmente apenas cerca de 1% da população mundial o utiliza. Portanto, está ainda numa fase de descoberta de preço.
-
Volatilidade em Tendência de Alta: A volatilidade do Bitcoin tende a ser para cima. Qualquer pessoa que tenha mantido Bitcoin por pelo menos 4 anos preservou, ou na maioria dos casos, aumentou o seu poder de compra.
-
Todas as Moedas São Voláteis: Todas as moedas são voláteis. Por exemplo, o EUR em relação ao USD, ou o USD em relação ao ouro, ou o ARS (peso Argentino) em relação ao USD. A volatilidade é uma característica comum entre todas as moedas.
-
Redução da Volatilidade com Adopção: À medida que mais pessoas adoptarem o Bitcoin, a volatilidade tende a diminuir. Com um maior número de utilizadores e uma maior aceitação, o mercado do Bitcoin ficará mais estável.
Embora alguns vejam a volatilidade como uma oportunidade para altos retornos, outros consideram um risco significativo, especialmente para aqueles que procuram usar o Bitcoin como uma reserva de valor estável. No entanto, entender a natureza desta volatilidade e os factores subjacentes pode ajudar a formar uma visão mais equilibrada sobre o Bitcoin.
Preocupações Regulamentares
O Bitcoin opera numa área que tem estado em constante evolução em termos de regulamentação. Diferentes países têm abordagens distintas em relação ao Bitcoin, variando desde plena aceitação até proibições totais. No entanto, desenvolvimentos recentes estão a trazer uma maior clareza regulatória que pode beneficiar o mercado.
Nos Estados Unidos, a introdução de ETFs de Bitcoin à vista está a ajudar a trazer uma clareza regulatória significativa para as instituições. Estes ETFs permitem que os investidores acedam ao Bitcoin de forma mais regulamentada e segura, o que pode aumentar a adopção institucional e proporcionar maior estabilidade ao mercado. Da mesma forma, na Europa, a regulamentação MiCA (Markets in Crypto-Assets) está a ser implementada para trazer um quadro regulatório claro e consistente para os activos digitais, incluindo o Bitcoin. Estas iniciativas regulatórias não só ajudam a legitimar o Bitcoin, mas também podem incentivar uma adopção mais ampla e segura por parte das instituições financeiras.
É importante notar que, do ponto de vista libertário, o Bitcoin não precisa de regulamentação para funcionar eficazmente. Como uma moeda peer-to-peer, o Bitcoin permite que os indivíduos realizem transacções económicas directamente uns com os outros, sem a necessidade de intervenção de estados, governos, bancos ou outras instituições. Esta liberdade de interacção económica é uma das características mais valiosas do Bitcoin, permitindo que as pessoas se envolvam em actividades económicas de forma livre e descentralizada.
Para os utilizadores, especialmente aqueles que operam em ambientes institucionais, é essencial manter-se informado sobre as regulamentações locais para navegar efectivamente no panorama legal do Bitcoin. Contudo, para os indivíduos que valorizam a liberdade económica, o Bitcoin oferece uma alternativa robusta e descentralizada, permitindo transacções seguras e directas entre pares, sem a necessidade de intermediários.
Em resumo, enquanto as iniciativas regulatórias actuais estão a trazer mais clareza e segurança ao mercado de Bitcoin, promovendo uma adopção mais ampla, a essência do Bitcoin como uma moeda peer-to-peer permanece inalterada, proporcionando liberdade económica e financeira aos seus utilizadores.
Impacto Ambiental
A mineração de Bitcoin, o processo pelo qual novos Bitcoins são criados e as transacções são verificadas, exige uma quantidade significativa de poder computacional. Isso, por sua vez, consome uma grande quantidade de energia, levando a preocupações ambientais. Críticos argumentam que o consumo de energia do Bitcoin é insustentável e contribui para as emissões de carbono. No entanto, estudos recentes sugerem que a mineração de Bitcoin pode, na verdade, apoiar o desenvolvimento de energia renovável.
Por exemplo, projectos de energia renovável, especialmente parques eólicos, solares ou hidroeléctricos, podem beneficiar da mineração de Bitcoin durante a fase de desenvolvimento pré-comercial, quando já geram energia, mas ainda não estão integrados na rede. Este uso de energia excedente que, de outra forma, seria desperdiçada, pode proporcionar uma solução lucrativa e eficiente, mostrando a mineração de Bitcoin como um potencial impulsionador da adopção de energia renovável (Cornell University).
Além disso, o Bitcoin pode ter um impacto positivo significativo em comunidades mais pobres ou em desenvolvimento. Um exemplo inspirador é a vila de Bondo, no Mallawi. Nesta comunidade africana, a mineração de Bitcoin não só promove a adopção de energias renováveis, como também proporciona acesso à electricidade. Para muitos privilegiados no Ocidente, o acesso à electricidade pode parecer uma coisa trivial, mas para grandes partes da população mundial, é uma mudança de vida. Ter acesso à electricidade permite melhorias em educação, saúde e oportunidades económicas.
Esta utilização da mineração de Bitcoin para fornecer energia a comunidades carentes mostra como a tecnologia pode ter um impacto social positivo, além dos benefícios financeiros. A electricidade fornece a base para muitas actividades essenciais e pode ajudar a tirar comunidades da pobreza, oferecendo-lhes uma nova maneira de participar na economia global.
Conclusão
O Bitcoin destaca-se como uma forma única e revolucionária de moeda num mundo repleto de vários sistemas financeiros e moedas digitais. Ao contrário do dinheiro fiduciário, que é controlado pelos bancos centrais e sujeito à inflação, o Bitcoin opera numa rede descentralizada com uma oferta fixa. O seu processo de mineração e a tecnologia subjacente oferecem uma nova maneira de pensar sobre dinheiro e transacções.
A privacidade é uma característica significativa do Bitcoin, permitindo aos utilizadores manter um nível de anonimato não disponível nos sistemas financeiros tradicionais. Este aspecto é crucial para proteger a liberdade e segurança individual num mundo cada vez mais digital e monitorizado. Além disso, a natureza descentralizada do Bitcoin significa que é resistente à censura e ao controlo, proporcionando uma alternativa aos sistemas financeiros centralizados. No entanto, é essencial reconhecer os desafios e críticas que o Bitcoin enfrenta, como a sua volatilidade de preços, obstáculos regulamentares e impacto ambiental. Estas questões fazem parte da conversa contínua sobre o papel do Bitcoin no sistema financeiro global.
Em resumo, o Bitcoin representa uma mudança significativa na forma como entendemos e usamos o dinheiro. Quer esteja a considerar investir em Bitcoin ou simplesmente a querer aprender mais sobre ele, compreender as suas características únicas e benefícios potenciais é vital. À medida que o panorama financeiro continua a evoluir, o papel do Bitcoin provavelmente permanecerá um tópico de interesse e debate.
Para aprofundar mais sobre o assunto, há já uma grande comunidade bitcoiner em Portugal. Pode encontrar mais informação em Aceita Bitcoin.
Photo by Joshua Sortino on Unsplash
-
@ 03742c20:2df9aa5d
2024-02-19 05:54:15ปกติแล้ว Nostr extension ส่วนใหญ่จะมีอยู่ในเบราว์เซอร์บน PC ถ้าเป็นในมือถือเบราว์เซอร์ต่างๆจะไม่มีฟังก์ชั่นนี้มาให้ นอกจาก Kiwi browser และ Firefox for Android
ถ้าเป็น ios ส่วนใหญ่จะใช้ Nostore
แต่สำหรับ Android แล้วมีวิธีที่ง่ายกว่าดาวน์โหลด kiwi browser แล้วผติดตั้ง Extension มันหลายขั้นตอนเกินไปอาจจะยากสำหรับใครที่พึ่งเริ่มใช้งาน ในปัจจุบันมีแอปพลิเคชันที่ชื่อว่า Spring ที่ช่วยให้ง่ายขึ้น
https://spring.site/
Spring
ดาวน์โหลด Spring มาติดตั้งบนเครื่องของเรา
1 เปิด spring ขึ้นมาแล้วกดที่มุมขวาบนที่เป็นรูปคนเพื่อ Login
2 Login ในการเข้าใช้งานทาง Spring มีให้เราเลือกหลายแบบแต่ถ้าง่ายสุดแนะนำให้เราเลือก Import private key จากนั้นให้วาง private key ของเราแล้วกด save
แค่นี้เราก็ใช้งานได้แล้วแล้ว
จะสังเกตได้ว่าภายใน spring จะรวม Clients ต่างๆที่มีอยู่บน Nostr ไว้เกือบหมดเลย
งั้นเรามาลองใช้งานกันดีกว่า
เลือก Clients ที่เราอยากใช้งานแล้วกดเปิดขึ้นมาแล้วกด Login จากนั้นให้เลือก Login with extension ทาง Spring จะขึ้นถาม Permission ให้เรากด Allow แค่นี้เราก็ Login ได้แล้ว
ไปลองใช้งานกันได้ครับภายในโปรโตคอล Nostr มีอะไรให้เราลองอีกเยอะเลยครับ
ใครติดขัดขัดตรงไหนแวะมาพูดคุยกันได้ครับ แล้วเจอกันใหม่ครั้งหน้า บ๊ะบาย
Siamstr #Nostr
-
@ 813cf5bb:14bb4ec1
2024-06-13 09:43:07Opinion about Electrum Bitcoin Wallet (android)
I have used this wallet with good result. Pretty easy to use for multi-sig.
WalletScrutiny #nostrOpinion
-
@ 44dc1c2d:31c74f0b
2024-06-13 06:25:20Chef's notes
I really like serving this with a saffron and cardamon rice. Add a few saffron threads and 3 or 4 crushed green cardamon pods while the rice is cooking to make it.
Details
- ⏲️ Prep time: ~15 min
- 🍳 Cook time: ~1.5 hours
- 🍽️ Servings: 6
Ingredients
- .5 cups neutral frying oil or ghee
- 2 onions halved and thinly sliced
- ~1 inch piece ginger root cut into thin batons
- 1 garlic clove crushed
- 2 fresh red chilies seeded and minced
- 1 inch piece fresh turmeric crushed or 1 tsp ground turmeric
- 1 lemongrass stalk lower part sliced thin and the top bruised
- 1.5 lbs steak cut into strips
- 14oz coconut milk
- 1 1/4 cups water
- 1 aubergine (eggplant) sliced and patted dry
- 1 tsp tamarind pulp, soaked in ~4 tbsp warm water
- salt and pepper to taste
- Garnish:
- Deep fried onions
- More fresh chilis
- Serve :
- Rice
Directions
- Heat half your oil in a wok or large pan. Fry onions, ginger and garlic tell fragrant. Add chilies, turmeric and the lower parts of the lemongrass stalk. Push the contents to the side, crank the heat and add the steak. Stirring tell the meat is browned a bit.
- Add the coconut milk, water and lemongrass top. Hit it with some salt and pepper. Cover and let simmer for about an hour and a half. You want the meat to be tender.
- Towards the end of the cook time, use the rest of the oil to fry the aubergines. Brown on both sides.
- Add the browned aubergines cook for another 15 minutes or so. Stir gently every so often. Strain the tamarind juice and add it to the curry. Taste and adjust seasoning.
- Garnish with more Chilies and serve with rice.
-
@ 3c984938:2ec11289
2024-06-09 14:40:55I'm having some pain in my heart about the U.S. elections.
Ever since Obama campaigned for office, an increase of young voters have come out of the woodwork. Things have not improved. They've actively told you that "your vote matters." I believe this to be a lie unless any citizen can demand at the gate, at the White House to be allowed to hold and point a gun to the president's head. (Relax, this is a hyperbole)
Why so dramatic? Well, what does the president do? Sign bills, commands the military, nominates new Fed chairman, ambassadors, supreme judges and senior officials all while traveling in luxury planes and living in a white palace for four years.
They promised Every TIME to protect citizen rights when they take the oath and office.
...They've broken this several times, with so-called "emergency-crisis"
The purpose of a president, today, it seems is to basically hire armed thugs to keep the citizens in check and make sure you "voluntarily continue to be a slave," to the system, hence the IRS. The corruption extends from the cop to the judge and even to politicians. The politicians get paid from lobbyists to create bills in congress for the president to sign. There's no right answer when money is involved with politicians. It is the same if you vote Obama, Biden, Trump, or Haley. They will wield the pen to serve themselves to say it will benefit the country.
In the first 100 years of presidency, the government wasn't even a big deal. They didn't even interfere with your life as much as they do today.
^^ You hold the power in your hands, don't let them take it. Don't believe me? Try to get a loan from a bank without a signature. Your signature is as good as gold (if not better) and is an original trademark.
Just Don't Vote. End the Fed. Opt out.
^^ I choose to form my own path, even if it means leaving everything I knew prior. It doesn't have to be a spiritual thing. Some, have called me religious because of this. We're all capable of greatness and having humanity.
✨Don't have a machine heart with a machine mind. Instead, choose to have a heart like the cowardly lion from the "Wizard Of Oz."
There's no such thing as a good president or politicians.
If there was, they would have issued non-interest Federal Reserve Notes. Lincoln and Kennedy tried to do this, they got shot.
There's still a banner of America there, but it's so far gone that I cannot even recognize it. However, I only see a bunch of 🏳🌈 pride flags.
✨Patrick Henry got it wrong, when he delivered his speech, "Give me liberty or give me death." Liberty and freedom are two completely different things.
Straightforward from Merriam-Webster Choose Right or left?
No control, to be 100% without restrictions- free.
✨I disagree with the example sentence given. Because you cannot advocate for human freedom and own slaves, it's contradicting it. Which was common in the founding days.
I can understand many may disagree with me, and you might be thinking, "This time will be different." I, respectfully, disagree, and the proxy wars are proof. Learn the importance of Bitcoin, every Satoshi is a step away from corruption.
✨What does it look like to pull the curtains from the "Wizard of Oz?"
Have you watched the video below, what 30 Trillion dollars in debt looks like visually? Even I was blown away. https://video.nostr.build/d58c5e1afba6d7a905a39407f5e695a4eb4a88ae692817a36ecfa6ca1b62ea15.mp4
I say this with love. Hear my plea?
Normally, I don't write about anything political. It just feels like a losing game. My energy feels it's in better use to learn new things, write and to create. Even a simple blog post as simple as this. Stack SATs, and stay humble.
<3 Onigirl
-
@ 6ad3e2a3:c90b7740
2024-06-09 11:26:45For security reasons, I cannot disclose my identity. I will only say I was present at a meeting between heads of state, executives from multinational companies and NGOs. I should not have been there at all, but ever since the Epstein murder went uninvestigated, it seems they have become increasingly careless. All unsanctioned narratives are simply conspiracy theories now, no matter how well they comport with the facts, so what does it matter if a witness reports the contents of their secret discussions? Accordingly, I do not expect my testimony to make a material impact. I relate it solely out of personal urgency. The secrets I possess have become too burdensome to bear alone.
The meeting was ostensibly about the climate change problem which to varying degrees all of the participants took seriously. Some believed it was an imminent existential threat, while others were concerned about economic and geopolitical implications. One premise on which they all seemed to agree was that they had an obligation to confront humanity’s biggest challenges — by whatever means necessary.
During the discussion, a prominent head of state, who had been silent for most of it, told the group their ideas were sensible, but unfortunately too late. International cooperation wasn’t feasible at the required scale, and even if they could get the prime ministers on board, it would be a difficult sell to increasingly populist electorates. Maybe their proposals would have worked two decades earlier, but time was now of the essence.
He turned the floor over to his Director of Science. The Director smiled politely to the group and explained they had developed a contagious pathogen, carefully engineered to spare children, that would spread around the globe, killing mostly the old and sick. It wasn’t their first choice, but after considering the risks of inaction and the futility of alternative proposals, it was the best option. He paused, taking in the reactions of the startled room. The head of an NGO, who was apparently part of the project, added that preliminary research on a vaccine had already been done, and that they could eventually rein in the virus as needed.
Amidst the confusion, one multinational CEO stood up and said what was on everyone’s mind: Incentivizing people toward the common good was one thing, but there must be some line across which even the most well-intentioned should not step. And while drawing such a line was always difficult, surely unleashing a deadly pandemic, no matter the end result, was far beyond it.
The scientist looked toward the NGO leader who had spoken about the vaccines. The leader pressed the keys of his laptop, displaying a few graphics on the conference room projection screen. It showed NGO and governmental studies projecting climate change would kill tens of millions of people and cost tens of trillions of dollars. Another graphic showed the virus could reasonably be estimated to kill only two to five million before the vaccines were in sufficient supply, and remember these would be the oldest and sickest. In years-of-life terms, climate change — even by conservative estimates — would dwarf the virus in deadliness and economic harm. He argued therefore that releasing the virus was not only justifiable but morally obligatory. That they were duty-bound to steer humanity from the precipice.
Some participants remained dubious, questioning the lethality of the virus, the possibility of mutations and also the effectiveness of the yet-to-be developed vaccines. But after vigorous reassurances about the care with which it was developed by the nation’s most prominent virologists, the mood in the room shifted. Not only would near total halt to travel and reduction in industry drastically reduce carbon emissions, but expensive pension and healthcare obligations would disappear en masse. Yes, the looming shutdowns would cost dearly in short-term GDP, but as an act of God, they would also offer a much-needed out for already beleaguered leadership.
One not-very-popular leader speculated it would accelerate his economy’s drive towards digitization, making it easier to track rogue elements. Another mused the lockdowns would create a more responsive populace, one that might be inclined to think less selfishly and more about helping others. It could give rise to a renewal of sorts, a world where consuming and possessing gave way to modest appetites and gratitude for being. It was unfortunate, they all agreed, it had come to this, but mercifully the virus was engineered to be benign to most, and in some ways the horrific means only affirmed the depth of their commitment to noble ends.
It’s possible I have gotten some of these details wrong. I did not take notes as that would have been too conspicuous. (I was only present as a last minute replacement for an aide who was ill.) But you must know the broad outlines are the truth. The crisis has been manufactured, and from the relieved, almost cheerful faces of our leaders as they walked out of that room, I do not believe it will ever end.