-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-25 09:28:03
Should show up here as content
nostr:note1m9jdd9w9qxwa8gfda6n3sku7nf6mjnxylhaaa8wpnvdz85xajrasrrpj2a
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-24 06:05:05
# The new Great Library
We have all heard tales of Amazon or other booksellers banning customers from their bookstores or censoring/editing purchased books. The famous [Project Gutenberg](https://www.gutenberg.org/), and similar organizations, are performing a good work, to help protect many of our precious books from this fate, but it is merely a centralized website and therefore not censorship resistant. Also, it mostly posts books in English or German.
So, we at nostr:npub1s3ht77dq4zqnya8vjun5jp3p44pr794ru36d0ltxu65chljw8xjqd975wz have decided to move Project Gutenberg to Nostr and house it in the most distributed way possible: on relays. Specifically, our new, public [Citadel relay](https://thecitadel.nostr1.com/) for out-of-print books (and other documents), but also on any relay, anywhere.
And, because we are a very humble group, we're naming the effort "Alexandria". And the first book to be printed on Nostr is the Bible because *obviously*.
## Why on relays?
Well, why not on relays? Relays are one of the few widely-distributed databases for documentation in existence. The relay database spans the entire globe and anyone can maintain their own relay on their personal computer or mobile phone.
That means that anyone can house *their own* books.
Which books are their own? Any books they have in their own possession. Any books someone would have to physically pry out of their cold, dead, computer.
## Notes are perfect for publishing
Once we begin generating eBooks from notes with an associated header (which will be quite easy to do, so long as they are written in markdown or similar), they will also be readable, downloadable, and storable in ePub format (see [Pandoc](https://pandoc.org/epub.html)). And it is, after all, only a matter of time until someone enterprising makes an ePaper Nostr client for calmer reading of notes, and then you can download and read them, without having to bother converting beforehand, which maintains their Nostr-navigation.
The new event kind [30040](https://wikifreedia.xyz/nkbip-01/) allows us to take any sort of note containing any sort of characters and create a type of "note collection" or "book of notes", "journal of notes", "magazine of notes". And it can be nested or embedded in other notes, creating any sort of note-combination and note-hierarchy you can think of, only limited in size by the ability of your computer to processes the relationships.
## Save the Zettels
The associated kind 30041 adds the prospect of breaking longer texts or articles up into sections or snippets (called "Zettel" in German). We can then collect or refer to particular bits of a longer text (like a chart, elegant paragraph or definition, data table), directly. Anyone can create such snippets, even of texts they didn't write, as they can add a reference to the original publication in the tags of the new event.
This means we no longer have to "copy-paste" or quote other people's works, we can simply tie them in. If we worry about them being deleted, we can fork them to create our own, digitally-linked version, and then tie that in. This means that source material can be tied to the new material, and you can trace back to the source easily (using Nostr IDs and tags, which are signed identifiers) and see who else is branching out from that source or discussing that source.
## It's gonna be HUGE!
We are making a big, beautiful library... and you are going to build it for us. Anyone, anywhere can therefore publish or republish any document they wish, with Nostr, and store it wherever they have a relay, and view it on any client willing to display it.
You will own something and be happy.
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-23 07:03:28
I've been dealing with a lot of aspiring IT people, lately, and it has me sort of jaded.
I'm trying to think of the level of competence I would expect of someone like myself because it has changed, dramatically, since I started out, 26 years ago. I've only now managed to catch up enough to feel "requalified" for my own profession, so I thought I'd write it down for all of you, so that you know what to look for.
As in, what is the new "industry standard" knowledge level for a software business analyst?
### If I were hiring a business analyst today, I'd ask...
1. What do e-mail, FTP, and UML have in common?
2. What is the difference between an intranet and the Internet? Name the four Internet layers and one protocol for each.
3. What are unit tests and integration tests and what are they useful for? Who should write them? Who should be looking at the results?
4. What is a build server and why use one? What is the difference between continuous integration and continuous deployment?
5. Please explain the three source control commands: commit, push, and pull.
6. Please explain the three Linux commands: pwd, ls, cat.
7. How do software branches work? What is a merge conflict? What are pull requests?
8. What is the difference between an activity diagram, a state-machine diagram, and a class diagram and when is it best to use which?
9. What are DDD and TDD? What purpose do they serve?
10. What are use cases and user stories? When is it best to use which? What is gherkin?
11. What is the difference between stateful and stateless?
12. What is agile programming?
13. Explain the difference between Kanban, Xtreme Programming, and Scrum, and when is it best to use which?
14. What is the difference between functional and object-oriented programming? Why use one, rather than the other?
15. What are wireframes, mockups, and prototypes?
16. Name two network topologies and give an example for an implementation of each.
17. What are XML, Json, and Yaml and why use one, rather than another?
18. What is an ORM and why use one? What are validators?
19. Name three types of databases and a use case they are ideal for.
20. Explain the importance of data sets to machine learning.
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-21 19:11:51
# Finding Catholics and Catholic-friendly content on Nostr
## Obvious Catholics being obvious
nostr:npub1m4ny6hjqzepn4rxknuq94c2gpqzr29ufkkw7ttcxyak7v43n6vvsajc2jl
nostr:npub1k92qsr95jcumkpu6dffurkvwwycwa2euvx4fthv78ru7gqqz0nrs2ngfwd
nostr:npub1wqfzz2p880wq0tumuae9lfwyhs8uz35xd0kr34zrvrwyh3kvrzuskcqsyn
nostr:npub1ecdlntvjzexlyfale2egzvvncc8tgqsaxkl5hw7xlgjv2cxs705s9qs735
nostr:npub1rcr8h76csgzhdhea4a7tq5w5gydcpg9clgf0cffu6z45rnc6yp5sj7cfuz
nostr:npub1fyd0awkakq4aap70ual7mtlszjle9krffgwnsrkyua2frzmysd8qjj8gvg
nostr:npub1q0fe26apcqeeyqnlre29fqu7ysx0ucm5ly637md3zlvy2xcfsm3s0lsv4r
nostr:npub1dvdcmtp5llrp63jdlmhspe9gffsyu9ew7cu3ld3f9y7k79nxzjxqf4d4rm
nostr:npub1paxyej8f8fh57ny0fr5w2mzp9can9nkcmeu5jaerv68mhrah7t8s795ky6
nostr:npub1tvw3h5xqnuc2aq5zelxp3dy58sz7x9u8e6enkxywmrz70cg2j2zqjes44n
nostr:npub13tahtl9pjw9u5ycruqk84k6sfmkyljsr7y2pc4s840ctlm73fxeq3j6e08
nostr:npub1w4jkwspqn9svwnlrw0nfg0u2yx4cj6yfmp53ya4xp7r24k7gly4qaq30zp
## Other good Christian follows
nostr:npub1hqy4zwnvsdmlml4tpgp0kgrruxamfcwpgm4g3q2tr3d2ut3kuxusx73psm
nostr:npub1cpstx8lzhwctunfe80rugz5qsj9ztw8surec9j6mf8phha68dj6qhm8j5e
nostr:npub1ak5kewf6anwkrt0qc8ua907ljkn7wm83e2ycyrpcumjvaf2upszs8r0gwg
nostr:npub1mt8x8vqvgtnwq97sphgep2fjswrqqtl4j7uyr667lyw7fuwwsjgs5mm7cz
nostr:npub1q6ya7kz84rfnw6yjmg5kyttuplwpauv43a9ug3cajztx4g0v48eqhtt3sh
nostr:npub1356t6fpjysx9vdchfg7mryv83w4pcye6a3eeke9zvsje7s2tuv4s4k805u
nostr:npub1kun5628raxpm7usdkj62z2337hr77f3ryrg9cf0vjpyf4jvk9r9smv3lhe
nostr:npub1qf6gsfapq94rj0rcptkpm9sergacmuwrjlgfx5gznjajtvkcx3psfhx6k5
nostr:npub1ll99fcrclkvgff696u8tq9vupw9fulfc8fysdf6gfwp7hassrh2sktxszt
nostr:npub1zy37ecnhpvx4lmxh4spd0898sxdj0ag8m64s9yq499zaxlg7qrqq8c53q6
nostr:npub1rtlqca8r6auyaw5n5h3l5422dm4sry5dzfee4696fqe8s6qgudks7djtfs
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn
nostr:npub18zqmath26txwfhc70af8axk7pftjre9x7cf0lxkg92nvj2cpfgts8va790
## Christian follow list
An exhaustive list of Christians is maintained by nostr:npub1mt8x8vqvgtnwq97sphgep2fjswrqqtl4j7uyr667lyw7fuwwsjgs5mm7cz. Just look at his list on https://listr.lol/
## Catholic community
You can also join the community, to reach other catholics (usable on #Nostrudel #Coracle #Amethyst and #Satellite):
nostr:naddr1qvzqqqyx7cpzqqnd3dl8hnptg9agfugwmdcmgfl7wcrfjpgfpv28ksq6dnmqc0e8qqyyxct5dphkc6trmu6k9l
## Christian topic relay
And always make sure to use the #catholic hashtag, to get onto the top-specific christpill relay (add it to your relay list: wss://christpill.nostr1.com/).
Hope that helps! 😊
-
![](/static/nostr-icon-purple-64x64.png)
@ 46fcbe30:6bd8ce4d
2024-06-18 18:50:07
At WalletScrutiny we open a lot of issues. And just recently, Danny, whom I cannot mention on Habla.news due to [this error](https://github.com/verbiricha/habla.news/issues/171) wrote a script to facilitate re-visiting issues we haven't re-visited in over half a year. Should we poke them all? 🤔
Issue | Comment | Issue
-----------|------------|----------------------
2019-12-14 | 2019-12-16 | [App cannot be verified](https://github.com/EdgeApp/airbitz-android-gui/issues/21)
2017-10-20 | 2020-04-11 | [Builds are not reproducible](https://github.com/lightninglabs/lightning-app/issues/67)
2019-12-14 | 2020-06-19 | [App from GooglePlay is not verifiable](https://github.com/BlueWallet/BlueWallet/issues/758)
2020-08-27 | 2020-09-02 | [Please provide full build instructions to reproduce the app on Google Play](https://github.com/OpenBazaar/haven/issues/3)
2020-12-05 | 2020-12-14 | [Provide build instructions to rebuild the app from Google Play](https://github.com/jdogresorg/freewallet-mobile/issues/34)
2020-12-16 | 2020-12-16 | [Where is the code of DApp Browser?](https://github.com/TP-Lab/tp-ios/issues/1)
2020-12-18 | 2021-01-02 | [Reproducible builds of com.crypto.multiwallet on Google Play?](https://github.com/guardaco/guarda-android-wallets/issues/42)
2021-03-06 | 2021-03-07 | [Change minSdkVersion from 16 to 19](https://github.com/coincasso/ccwallet/issues/1)
2017-12-20 | 2021-03-12 | [Build APK deterministically](https://github.com/Bitcoin-com/Wallet/issues/39)
2021-03-05 | 2021-04-03 | [Please update your build instruction and make sure the app on Google Play can be reproduced](https://github.com/bither/bither-android/issues/69)
2019-12-28 | 2021-04-03 | [Please update your build instructions such that reproducible builds are possible](https://github.com/hodlwallet/hodl-wallet-android/issues/50)
2021-04-09 | 2021-04-09 | [Please provide detailled instructions on how to reproduce the app on Google Play](https://github.com/HODLERTECH/HODLER-Open-Source-Multi-Asset-Wallet/issues/165)
2021-03-07 | 2021-04-20 | [Missing build instructions & build fail](https://github.com/blockchaingate/exchangily-mobile-app/issues/1)
2021-03-08 | 2021-04-22 | [Build fail with errors "Error: No named parameter with the name"](https://github.com/AniketSindhu/My_Paper_Crypto_Wallet/issues/1)
2021-04-23 | 2021-04-23 | [Where is the latest source-code for im.token.app?](https://github.com/consenlabs/token-core/issues/97)
2021-03-12 | 2021-05-02 | [Missing code for latest 2.1 version in google-play](https://github.com/Lunes-platform/Wallet-mobile/issues/9)
2021-04-01 | 2021-05-02 | [Publish source code for the app](https://github.com/neogeno/shango-lightning-wallet/issues/84)
2021-05-03 | 2021-05-04 | [Please provide build instructions for reproducing the apk from Google Play](https://github.com/bitcoin-dot-org/BitcoinWalletMobile/issues/7)
2020-04-07 | 2021-05-16 | [Please provide verifiability of released builds](https://github.com/COINiD/COINiDVault/issues/14)
2021-04-18 | 2021-05-19 | [Where is the latest code and build instructions](https://github.com/TP-Lab/tp-android/issues/15)
2021-05-27 | 2021-05-27 | [Missing code for latest release 3.2.7 on google-play](https://github.com/coinninjadev/dropbit-android/issues/2)
2020-01-29 | 2021-06-02 | [Please provide verifiable builds](https://github.com/COINiD/COINiDWallet/issues/24)
2019-12-22 | 2021-06-03 | [Failed to verify the build on GooglePlay](https://github.com/ACINQ/eclair-mobile/issues/232)
2021-05-27 | 2021-06-08 | [Android app is not reproducible, diffs in AndroidManifest.xml & 0.dist.js & dist.js & resources.arsc files](https://github.com/monya-wallet/monya/issues/130)
2020-06-01 | 2021-07-23 | [Please make the app reproducible](https://github.com/ValleZ/Paper-Wallet/issues/42)
2021-10-26 | 2021-12-02 | [Publish sources for android mobile appid=`io.divipay.divi`](https://github.com/DiviProject/Divi-Desktop-Public/issues/214)
2021-12-11 | 2021-12-11 | [Please provide latest source code and reproducible builds](https://github.com/hyperpayorg/hardwallet/issues/4)
2021-12-20 | 2021-12-20 | [Please share the source and build instructions for the QUANTUM HW firmware](https://github.com/SecurityArts/QuantumManager/issues/14)
2022-02-08 | 2022-02-08 | [Please add interpretation of transactions due to be signed](https://github.com/arcbtc/bowser-bitcoin-hardware-wallet/issues/13)
2021-10-17 | 2022-03-12 | [Please provide build instructions to reproduce the version on Google Play Store](https://github.com/bitriel/bitriel-wallet/issues/26)
2021-12-02 | 2022-03-14 | [Please provide instructions to reproduce your app found on Google Play](https://github.com/rsksmart/rwallet/issues/726)
2021-04-21 | 2022-03-27 | [Minimal Containers for Reproducible Builds testing for android app - WIP](https://github.com/hsjoberg/blixt-wallet/issues/318)
2019-11-23 | 2022-03-28 | [Build is not verifiable](https://github.com/hoanghiephui/Bitcoin-Wallet/issues/15)
2022-03-15 | 2022-04-10 | [Show hash of firmware prior to installation](https://github.com/prokey-io/prokey-optimum-firmware/issues/28)
2021-04-12 | 2022-04-12 | [Please provide build instructions to reproduce the app in Google Play Store](https://github.com/atomex-me/atomex.mobile/issues/24)
2020-04-27 | 2022-04-14 | [Please provide reproducible builds](https://github.com/melis-wallet/melis-cm-client/issues/1)
2022-04-08 | 2022-04-16 | [Why the wallet readme is not detailed and no updated description?](https://github.com/SalletOne/sallet-one-cold/issues/6)
2021-07-17 | 2022-07-22 | [Publish source-code of releases before uploading them to Google Play](https://github.com/blockchain/My-Wallet-V3-Android/issues/1294)
2021-12-01 | 2022-08-07 | [Reproducible build fails due to a missing dependency](https://github.com/shesek/spark-wallet/issues/192)
2021-02-14 | 2022-08-29 | [Build failed if --production or npm ci are used instead of development](https://github.com/ZeusLN/zeus/issues/416)
2022-03-01 | 2023-01-06 | [Publish source code for mobile apps](https://github.com/nunchuk-io/nunchuk-mobile-issues/issues/5)
2021-10-16 | 2023-04-13 | [Missing Code for latest versions on google-play](https://github.com/QuarkChain/QPocket-Android/issues/2)
2023-04-15 | 2023-04-15 | [Missing Git Tag & Github release for latest version 5.5.1 on Google Play](https://github.com/particl/copay/issues/58)
2022-08-04 | 2023-04-20 | [Add build instructions for all platforms & Containerfiles to compile app](https://github.com/coffee-software/coffee.wallet/issues/89)
2021-11-23 | 2023-04-22 | [Missing source code for latest version 4.18](https://github.com/breadwallet/brd-mobile/issues/13)
2021-03-12 | 2023-04-23 | [Build apk fail with "because bitorzo_wallet_flutter depends on intl ^0.16.0, version solving failed."](https://github.com/Bitorzo/Bitorzo/issues/2)
2019-12-14 | 2023-04-24 | [App on Google Play is not verifiable](https://github.com/CoinSpace/CoinSpace/issues/30)
2023-04-24 | 2023-04-24 | [Publish code for newer version 23 on google-play](https://github.com/inbitcoin/altana-android/issues/5)
2023-04-27 | 2023-04-28 | [Reproducibility problem on v0.32.0](https://github.com/horizontalsystems/unstoppable-wallet-android/issues/6071)
2022-07-12 | 2023-05-25 | [Missing code for version 1.3.11 on google-play](https://github.com/coingrig/coingrig-wallet/issues/22)
2023-05-27 | 2023-05-27 | [reproducible builds](https://github.com/OneKeyHQ/firmware/issues/404#issuecomment-1633287406)
2023-06-20 | 2023-06-21 | [Use `--output-hashing none` to prevent random names for built main.js](https://github.com/airgap-it/airgap-vault/issues/197)
2023-06-25 | 2023-06-25 | [The app is not reproducible](https://github.com/nunchuk-io/nunchuk-android/issues/23)
2023-02-21 | 2023-07-01 | [Could not find com.google.android.gms:play-services-tapandpay:18.2.0](https://github.com/bitpay/bitpay-app/issues/686)
2021-10-09 | 2023-07-08 | [Please fix build reproducibility](https://github.com/muun/apollo/issues/54)
2023-05-22 | 2023-07-13 | [v7.8.0 is not reproducible](https://github.com/keepkey/keepkey-firmware/issues/342)
2021-10-17 | 2023-07-31 | [Missing x86_64 folder in ./app/src/main/cpp/*/lib with lib*.a files & Instructions to reproduce binaries in lib folders](https://github.com/MixinNetwork/android-app/issues/2559)
2021-01-21 | 2023-08-16 | [How can I verify the app on Google Play was built from this source code?](https://github.com/bithyve/hexa/issues/2544)
2019-12-28 | 2023-09-30 | [Please provide verifiable builds](https://github.com/trustee-wallet/trusteeWallet/issues/1)
2019-12-14 | 2023-11-02 | [App on Google Play can't be verified](https://github.com/EdgeApp/edge-react-gui/issues/1748)
2019-12-30 | 2023-11-03 | [Support verifiable builds](https://github.com/breez/breezmobile/issues/247)
2021-02-21 | 2023-12-19 | [Has the BitLox project died?](https://github.com/BitLox/bitlox-firmware/issues/3)
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-16 08:01:38
# Bitcoin Capitalism
## But who would build the roads?
Discussing who would build the roads is the classic intellectual excersize of anarchists, everywhere. Would everyone build the stretch in front of, and within, their property? Would private entities build the roads and charge a toll? Would roads fall into disarray and we'd use more rugged vehicles, such as mule-drawn carts and offroad vehicles? Would we eventually abandon the wheel and switch to camels and hovercraft?
Most discussion participants assume it will devolve down into some combination, but Bitcoin might put a break on the toll road option. Bitcoin rises in purchasing power so quickly and inexorably, that any complex, long-term, expensive project becomes an investment with guaranteed negative nominal returns and a high probability of negative real returns.
You would struggle to demand tolls at a price high enough to cover the nominal costs of the initial investment (although they might cover maintenance and running costs), and the tolls you could demand would steadily shrink in nominal terms.
## Bitcoin reduces the investment profit motive
The [Cambridge Dictionary](https://dictionary.cambridge.org/de/worterbuch/englisch/investing) describes investing as:
>to put money, effort, time, etc. into something to **make a profit** or get an advantage
Bitcoin means that you make a monetary profit by saving capital, rather than by deploying it. To deploy Bitcoin is always to simply spend it. The capital is consumed. Gone. Poof!
Whereas if you simply hodl it, you will rapidly grow wealthier and wealthier without commiserate effort.
There will be no such thing as a profitable return on investment because the best returns will always be in savings. Your best financial bet is always to save all of your Bitcoin and use the infrastructure other people have built, at great loss to themselves.
## This is correct
This is actually how capitalism should work. It is not an error.
Someone or a group of someones deploys capital, first, to build something, and they alone hold the risk of failure. They do it without expecting their (entire, nominal) capital returned because they value the building planned more than the capital trapped in it. The capital invested is primarily transformed, rather than returned, and the invested capital raises the living standard for everyone who then uses the building.
This is actually high-time preference behavior called "patronage". This is not the opposite of saving, but something often done in addition to it. It is investment devoid of a financial profit motive.
## We have come full-circle
What Bitcoin does, in perpetuity, is raise the risk of capital so high that a financial loss is expected, so capital deployments beyond those required for personal consumption will only come from the generous and the particularly far-sighted.
Bitcoin moves investments out of the purely financial realm back into a preference for the public good and a willingness to sacrifice, with returns often being tokens of gratitude, special privileges, increased social standing, hopes of indirect business advantage, or promises of treasure in the afterlife, rather than direct returns of capital, or even profits.
Who will build the roads? The nobility, the pious, the ambitious middle class, and the volunteering tradesmen will build the roads, just as they once built the cathedrals.... and the roads.
-
![](/static/nostr-icon-purple-64x64.png)
@ 3f289d3c:cf35b9fc
2024-06-14 16:14:13
**In 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.
-
![](/static/nostr-icon-purple-64x64.png)
@ 6871d8df:4a9396c1
2024-06-12 22:10:51
# Embracing 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](https://fountain.fm/episode/0V35t9YBkOMVM4WRVLYp), 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](https://www.youtube.com/watch?v=xoVJKj8lcNQ),' on for a discussion. You may know them from the popular documentary '[The Social Dilemma](https://www.thesocialdilemma.com/)' 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.
![](8046488-1703007156335-9e4d055bcadad.jpg)
## 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.
![](Screenshot%202024-02-27%20at%207.26.46%E2%80%AFPM.png)
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?](https://cwilbzz.com/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.
![](6u1bgq490h8c1.jpeg)
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.
![](Screenshot%202024-06-12%20at%205.13.16%E2%80%AFPM.png)
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.
-
![](/static/nostr-icon-purple-64x64.png)
@ ddf03aca:5cb3bbbe
2024-06-12 14:51:37
_Disclaimer: 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](https://njump.me/npub1mhcr4j594hsrnen594d7700n2t03n8gdx83zhxzculk6sh9nhwlq7uc226)._
## Prerequisites
Before we dive in, you'll need a few things:
1. **Blink API Key**: npubcash-server uses Blink API for payment callbacks. If you don’t have a Blink account yet, sign up [here](https://dashboard.blink.sv/).
2. **Postgres**: npubcash-server utilizes a Postgres database for storage.
3. **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 = "<Postgres Username>"
PGPASSWORD = "<Postgres Password>"
PGHOST = "<Postgres Hostname>"
PGDATABASE = "<Postgres Database>"
PGPORT = "<Postgres Port>"
MINTURL = "<Default Mint URL>"
BLINK_API_KEY = "<Blink API Key>"
BLINK_WALLET_ID = "<Blink Wallet ID>"
BLINK_URL = "https://api.blink.sv/graphql"
HOSTNAME = "<Hostname of npubcash-server including protocol>"
JWT_SECRET = "<Secret used for username purchases>"
ZAP_SECRET_KEY = "<Nostr hex secret key for zap provider>"
LNURL_MIN_AMOUNT = "<min amount in msats>"
LNURL_MAX_AMOUNT = "<max amount in msats>"
NPC_SERVER_URL = "<Hostname of npubcash-server including protocol>"
```
**Note:** fly.io offers additional security for sensitive environment variables through `secrets`, which are encrypted and never exposed directly. Consider using `secrets` for sensitive data like your Blink or Nostr key. Learn more [here](https://fly.io/docs/reference/secrets/#setting-secrets).
## Deploying
With your configuration ready, it’s time to deploy!
```zsh
fly launch
```
When prompted, choose to use the existing `fly.toml` file by inputting `y`. 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:
1. **Get the IP Address**: Use flyctl to list your IP addresses.
```zsh
fly ips list
```
Copy the IPv4 and IPv6 addresses.
2. **Create DNS Records**: Set up an A record with your domain provider using the IPv4 address and a AAAA record using the IPv6 address.
3. **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](https://github.com/cashubtc/npubcash-server/issues/new/choose) so that I can fix it :)
-
![](/static/nostr-icon-purple-64x64.png)
@ dc4cd086:cee77c06
2024-06-12 01:42:11
A 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
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-11 15:29:22
# Laeserin's theory of assortative clustering
## I was nerding again
I posted a wiki breadcrumb trail of events, today, from [entropy](https://wikifreedia.xyz/entropy/laeserin@getalby.com), to [information entropy](https://wikifreedia.xyz/information-entropy/laeserin@getalby.com), to [social media entropy](https://wikifreedia.xyz/social-media-entropy/laeserin@getalby.com).
(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](https://wikifreedia.xyz/general-intelligence/laeserin@getalby.com), 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](https://wikifreedia.xyz/IQ/laeserin@getalby.com) 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](https://wikifreedia.xyz/nevent/laeserin@getalby.com), [relay](https://wikifreedia.xyz/relay/laeserin@getalby.com), 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](https://wikifreedia.xyz/nostr/laeserin@getalby.com) 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.
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-10 12:57:17
![Satoshis per € cent](https://i.nostr.build/WGWVe.png)
# Monday Market Update
## ECB lowered interest rates
[Press release from the ECB](https://www.ecb.europa.eu/press/pr/date/2024/html/ecb.mp240606~2148ecdb3c.en.html)
> 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](https://www.youtube.com/watch?v=M_SD9JVA-bM) featuring ECB President Christine Lagarde).
## Euro-area inflation stabilizes
Source: [Eurostat](https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Main_Page)
![Eurostat chart of euro-area annual inflation](https://ec.europa.eu/eurostat/statistics-explained/images/thumb/0/0c/Euro_area_annual_inflation_and_its_main_components%2C_May_2014_-_May_2024_%28estimated%29.png/800px-Euro_area_annual_inflation_and_its_main_components%2C_May_2014_-_May_2024_%28estimated%29.png)
## Gold, silver, and Bitcoin continue to boom
### Precious metals
Source: [Goldpreis.de](https://www.goldpreis.de/)
![1 year gold price in euros](https://www.goldpreis.de/charts/goldpreis-euro-jahr-feinunze.jpg)
![1 year silver price in euros](https://www.goldpreis.de/charts/silberpreis-euro-jahr-feinunze.jpg)
### Bitcoin
Source: [Coinmarketcap](https://coinmarketcap.com/)
![Bitcoin price chart](https://i.nostr.build/RmaVM.png)
Source: [Fiat Market Cap](https://www.fiatmarketcap.com/)
![Currency market capitalization](https://i.nostr.build/EnxDJ.png)
Source: [Infinite Market Cap](https://8marketcap.com/)
![Asset market capitalization](https://i.nostr.build/mlzYx.png)
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-06-09 07:01:01
# Why 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.
-
![](/static/nostr-icon-purple-64x64.png)
@ 46fcbe30:6bd8ce4d
2024-05-24 15:47:11
<style>
td, th {
border: solid #777 1px;
padding: 5px;
}
tr td {
min-width: 3.5em;
}
tr td:nth-child(1) {
min-width: 2em;
writing-mode: vertical-lr;
text-orientation: inherit;
}
th {
padding: 5px;
writing-mode: vertical-lr;
text-orientation: inherit;
text-align: right;
}
a {
text-decoration: underline;
}
</style>
With 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/
-
![](/static/nostr-icon-purple-64x64.png)
@ 9eeca894:4afe5882
2024-05-19 19:51:04
# How I put NixOS on my UDM (trashcan model) router
![A rare cursed fetch!](https://despera.space/assets/img/cursed_udm_fetch.png)
*a rare cursed fetch!*
Content also available on [https://code.despera.space/iru/htdocs/src/branch/main/notes/UDM-NIXOS.md](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/](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](https://code.despera.space/iru/nspawn-nixos/src/branch/main/configuration.nix).
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 like `Directory renamed before
its status could be extracted`.
Thankfully we can install bsdtar through `apt install libarchive-tools` however
`machinectl 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](https://www.freedesktop.org/software/systemd/man/latest/systemd-nspawn.html#-p).
- 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](https://github.com/unifi-utilities/unifios-utilities/tree/main/nspawn-container#step-2a-configure-the-container-to-use-an-isolated-macvlan-network).
### 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](https://www.freedesktop.org/software/systemd/man/latest/systemd.nspawn.html#Capability=) 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<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet [redacted] netmask 255.255.255.192 broadcast [redacted]
inet6 [redacted] prefixlen 64 scopeid 0x20<link>
inet6 [redacted] prefixlen 64 scopeid 0x0<global>
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<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
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](https://github.com/unifi-utilities/unifios-utilities/tree/main/nspawn-container#step-3-configure-persistence-across-firmware-updates)
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.
-
![](/static/nostr-icon-purple-64x64.png)
@ d7607464:421e573a
2024-05-19 02:25:59
`chezmoi` is a command-line tool that uses `git` 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` and `machine_B`. `chezmoi` has many more features that you can explore beyond this as you become more comfortable with the workflow.
## Chezmoi Cheatsheet
![image](https://i.nostr.build/xE9X7.png)
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 locations `home_A`, `chezmoi_A`, `home_B`, `chezmoi_B`, and `repo` shown in this diagram throughout this guide.
## Installation
The first step to using `chezmoi` is installing and initializing it. We will be on `machine_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/install
Then, clone the `chezmoi` repo and use `make` 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 your `PATH`. Here, I'll move it to `~/bin`. If `~/bin` doesn't exist, you have to create it and re-source `~/.profile` to add it to `PATH`.
```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 the `main` branch for all git operations, and you can change the default branch for git repositories as follows before you initialize `chezmoi`:
```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 to `chezmoi_A`.
## Adding your first file
Most systems have a `.bashrc` or similar configuration file, so that can be the first dotfile you add to `chezmoi`:
```bash
chezmoi add ~/.bashrc
```
Change into the `chezmoi_A` directory to see the file added to `chezmoi`:
```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 called `dotfiles` and add it as `origin` to your local `chezmoi` 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 with `chezmoi 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 to `chezmoi` 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` to `chezmoi` but ignore the `.auth` file that contains some login information. First, you'll have to tell `chezmoi` 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 your `chezmoi` directory now, you'll see the `dot_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 to `machine_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 between `machine_A` and `machine_B`, you'll either need to utilize `git merge` or `chezmoi merge` at your discretion and resolve the conflicts. If certain files do need to be different between the machines, then you'll have to utilize `chezmoi`'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 initialize `chezmoi`. Then, add your remote git repository as before, and pull it into the `chezmoi` directory:
```bash
git pull origin main
```
The first time you push from `chezmoi_B`, you may have to run `git 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`, and `chezmoi_B`. Syncing `chezmoi_B` and `home_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` using `chezmoi diff`. There is also the concept of a "target state" in `chezmoi`, 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:
1. Create a new branch in `chezmoi_B`, add the file from `home_B` with `chezmoi add`, then perform a `git merge` back to main.
1. Use `chezmoi merge ~/.bashrc`, which will take you into a `vimdiff` window to manually change the files to match.
1. Overwrite the source file with the destination file using `chezmoi add ~/.bashrc`
1. 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` and `machine_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, otherwise `machine_A` and `machine_B` can get out of sync pretty easily. `chezmoi` has the `chezmoi edit` command to edit files in the destination state, but I prefer to edit files in either `home_A` or `home_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:
1. `(home_B) $ chezmoi add ~/path/to/.file`
1. `(home_B) $ chezmoi cd`
1. `(chezmoi_B) $ git add -A`
1. `(chezmoi_B) $ git commit -m "Changed ~/path/to/.file"`
1. `(chezmoi_B) $ git push`
1. `(home_A) $ chezmoi cd`
1. `(chezmoi_A) $ git pull`
1. `(chezmoi_A) $ chezmoi apply`
And that will propagate the change across your network. You can also use `chezmoi update` from `home_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 with `chezmoi`.
- Command Overview: https://www.chezmoi.io/user-guide/command-overview/
- Reference: https://www.chezmoi.io/reference/
---
All the best!
- WiseHODL
-
![](/static/nostr-icon-purple-64x64.png)
@ 46fcbe30:6bd8ce4d
2024-05-07 16:18:50
Opinion about Bitcoin Core (desktop)
<!--HEADER END-->
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.
<!--FOOTER START-->
#WalletScrutiny #nostrOpinion
[Join the conversation!](https://walletscrutiny.com/desktop/bitcoincore)
-
![](/static/nostr-icon-purple-64x64.png)
@ 0b963191:fc5e7ffd
2024-05-05 23:36:45
## Chef'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
1. Potatoes:
2. Peel and dice potatoes.
3. Place in a pot and cover in cold water.
4. Bring to a boil.
5. Lower fire to simmer and cook for 15-20 minutes.
6. Heat butter and half-and-half for 30-40 seconds in the microwave.
7. Drain potatoes and put back into the pot.
8. Mash potatoes and add half-and-half, butter, salt, pepper.
9. Continue mashing until smooth and stir in yolk until combined.
10. Preheat the oven to 400 degrees.
11. Filling:
12. Heat canola oil in a 10-12 inch pan over high heat.
13. Add onions and carrots and saute over medium-high heat for 4-5 minutes.
14. Add garlic and combine for 30 seconds.
15. Add Lamb, salt, and pepper and cook until browned.
16. Sprinkle flour and stir to coat lamb and cook for 1-2 minutes.
17. Add Tomato paste, chicken broth, Worcestershire sauce, rosemary, thyme. Stir and bring to a boil.
18. Reduce heat to low, cover, and simmer for 12-15 minutes while sauce thickens.
19. Oven:
20. Add meat filling to baking dish.
21. Add peas and corn and stir in evenly
22. Spread mashed potatoes using a rubber spatula. start at the corners and make sure to seal around the edges.
23. Bake for 25 minutes
24. Remove from the oven and let sit for 15-20 minutes.
-
![](/static/nostr-icon-purple-64x64.png)
@ b2d670de:907f9d4a
2024-04-29 09:05:25
This is a list of nostr clients exposed as onion services. The list is currently actively maintained on [GitHub](https://github.com/0xtrr/onion-service-nostr-clients). Contributions is always appreciated!
| Client name | Onion URL | Source code URL | Admin | Description |
| --- | --- | --- | --- | --- |
| Snort | http://agzj5a4be3kgp6yurijk4q7pm2yh4a5nphdg4zozk365yirf7ahuctyd.onion | https://git.v0l.io/Kieran/snort | [njump](nostr:nprofile1qyvhwumn8ghj7un9d3shjtnndehhyapwwdhkx6tpdshszxnhwden5te0wpuhyctdd9jzuenfv96x5ctx9e3k7mf0qqsx8lnrrrw9skpulctgzruxm5y7rzlaw64tcf9qpqww9pt0xvzsfmg9umdvr) | N/A |
| Nostrudel | http://a2zmtsslt7g7v5shssufp4uuh7wvr7betxglxf4fbtcxpejrvr7qmwid.onion | https://github.com/hzrd149/nostrudel | [njump](nostr:nprofile1q9z8wue69uhky6t5vdhkjmnjxejx2dtvddm8sdr5wpmkgmt6wfjxversd3sn2umevyexzenhwp3kzcn2w4cry7rsdy6kgatvvfskgtn0de5k7m30q9z8wue69uhk77r5wfjx2anpwcmrg73kx3ukydmcxeex5ee5de685ut2dpjkgmf4vg6h56n3w4k82emtde585u35xeh8jvn3vfskgtn0de5k7m30qqs93v545xjl0w8865rhw7kte0mkjxst88rk3k3xj53q4zdxm2zu5ectdn2z6) | N/A |
| Nostrudel Next | http://pzfw4uteha62iwkzm3lycabk4pbtcr67cg5ymp5i3xwrpt3t24m6tzad.onion | https://github.com/hzrd149/nostrudel | [njump](nostr:nprofile1q9z8wue69uhky6t5vdhkjmnjxejx2dtvddm8sdr5wpmkgmt6wfjxversd3sn2umevyexzenhwp3kzcn2w4cry7rsdy6kgatvvfskgtn0de5k7m30q9z8wue69uhk77r5wfjx2anpwcmrg73kx3ukydmcxeex5ee5de685ut2dpjkgmf4vg6h56n3w4k82emtde585u35xeh8jvn3vfskgtn0de5k7m30qqs93v545xjl0w8865rhw7kte0mkjxst88rk3k3xj53q4zdxm2zu5ectdn2z6) | Nostrudel Next is the beta version of Nostrudel |
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-04-23 06:04:28
# Why 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](https://njump.me/naddr1qqxnzde3xqunyvfexc6rgd3nqyg8wumn8ghj7mn0wd68ytnhd9hx2q3qm4ny6hjqzepn4rxknuq94c2gpqzr29ufkkw7ttcxyak7v43n6vvsxpqqqp65wdh8gvu)
We at [GitCitadel](https://njump.me/npub1s3ht77dq4zqnya8vjun5jp3p44pr794ru36d0ltxu65chljw8xjqd975wz) 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
-
![](/static/nostr-icon-purple-64x64.png)
@ 8ea48526:e6720a43
2024-04-17 14:06:11
Recently 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.
🤘
-
![](/static/nostr-icon-purple-64x64.png)
@ f977c464:32fcbe00
2024-04-15 20:30:05
## 3724
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.
-
![](/static/nostr-icon-purple-64x64.png)
@ 46fcbe30:6bd8ce4d
2024-04-11 17:21:28
Opinion about Phoenix - LN Bitcoin wallet (android)
<!--HEADER END-->
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.
<!--FOOTER START-->
#WalletScrutiny #nostrOpinion
[Join the conversation!](https://walletscrutiny.com/android/fr.acinq.phoenix.mainnet)
-
![](/static/nostr-icon-purple-64x64.png)
@ c48e29f0:26e14c11
2024-04-10 16:54:40
A 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
-
![](/static/nostr-icon-purple-64x64.png)
@ 52b4a076:e7fad8bd
2024-04-10 01:12:11
## Why 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 [the `X-Forwarded-For` header is *a list of IPs*](https://en.wikipedia.org/wiki/X-Forwarded-For), 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.
-
![](/static/nostr-icon-purple-64x64.png)
@ 46fcbe30:6bd8ce4d
2024-04-05 16:31:16
Opinion about Samourai Wallet (android)
<!--HEADER END-->
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](https://www.reddit.com/r/Bitcoin/comments/9r9344/slp29_samourai_wallet_bitcoin_privacy_software/e8fm1v8/):
> 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](https://nopara73.medium.com/samouraileaks-samouraidevs-sockpuppet-exposed-7ce654b92c0b), [here](https://nopara73.medium.com/samouraileaks-part-2-harassment-of-bitcoin-developers-fae3019abd2f), [here](https://nopara73.medium.com/samouraileaks-part-3-is-random-org-random-enough-35704796ae93), and [here](https://github.com/nopara73/ScamouraiWallet/). 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!
<!--FOOTER START-->
#WalletScrutiny #nostrOpinion
[Join the conversation!](https://walletscrutiny.com/android/com.samourai.wallet)
-
![](/static/nostr-icon-purple-64x64.png)
@ 079d727b:00099650
2024-04-05 00:45:27
Found 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. 🤷
-
![](/static/nostr-icon-purple-64x64.png)
@ 079d727b:00099650
2024-04-04 02:52:11
https://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
-
![](/static/nostr-icon-purple-64x64.png)
@ 2f7463a4:e92b8023
2024-04-02 12:36:25
_Original „[Speaking Freely](https://dergigi.com/2024/03/25/speaking-freely-online/)“ von [Gigi](https://dergigi.com/nostr), veröffentlicht zur Blockzeit [836245](https://www.blockstream.info/block-height/836245) unter der [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) Lizenz. Übersetzt von [sefiro](https://njump.me/sfr0.xyz)._
---
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](https://dergigi.com/vew), die das Internet plagen, als auch unser [kaputtes Geld](https://bitcoin-resources.com/books/broken-money) 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](https://www.goodreads.com/work/quotes/376394-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](https://x.com/dergigi/status/1508217667768963075) für Meinungsfreiheit nicht existieren. Es kann nur [Protokolle](nostr:nevent1qqsz9fgdac7yvs7z07sx92zf2rkldgnfav2rkce03gdm95efzyfgg4szyphydppzm7m554ecwq4gsgaek2qk32atse2l4t9ks57dpms4mmhfxt5xvet) 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](https://bitcoin-resources.com/books/when-money-dies).
## 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](https://bitcoin-resources.com/) und [Meinungsfreiheit](https://nostr-resources.com/) 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](https://dergigi.com/responsibility) 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](https://dergigi.com/value) raubt und verschlingt? Oder hast du den Mut, die Kontrolle über deinen Wohlstand, deine Gesundheit, deine Gedanken und deine [Sprache](https://dergigi.com/speech) zu übernehmen?
Diese Entscheidung kann dir niemand abnehmen. Sie beginnt und endet mit [dir](https://nostr.org/).
💜
[^1]: Keine Information kann sich schneller als [Lichtgeschwindigkeit](https://de.wikipedia.org/wiki/Lichtgeschwindigkeit#Lichtgeschwindigkeit_als_universelle_Grenzgeschwindigkeit) verbreiten. Folglich stoßen alle Informationssysteme an [physikalische Grenzen](https://dergigi.com/threads/physical-limits), wenn es um Synchronisation und Informationsweitergabe geht.
[^2]: Kryptographie funktioniert und wird [weiterhin](https://de.wikipedia.org/wiki/P-NP-Problem#P_und_NP) funktionieren. „[...] irgendwie [lächelt das Universum bei Verschlüsselung](https://bitcoin-resources.com/books/cypherpunks).“
[^3]: Existenz ist [real und gut](https://www.goodreads.com/book/show/40311194). Weder Nihilismus noch Solipsismus sind wünschenswert. „[...] und es war [gut](https://en.wikipedia.org/wiki/Life_Is_Worth_Living).“
[^4]: Wir können nicht [etwas für nichts](https://de.wikipedia.org/wiki/Erster_Hauptsatz_der_Thermodynamik) haben. Freiheit erfordert [Verantwortung](https://archive.is/U6iJ4); elektronisches Bargeld erfordert [Zeit](https://dergigi.com/time); Zeit erfordert [Wärme](https://dergigi.com/threads/time-requires-heat).
[^5]: [Meinungsfreiheit](https://de.wikipedia.org/wiki/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](https://newpodcastapps.com) so wichtig ist.
[^7]: Siehe Fälle im [Vereinigten Königreich](https://archive.is/OQ1LC), in [Saudi Arabien](https://archive.is/co19A), etc.
[^8]: Noch nicht einmal [amtierende US-Präsidenten](https://archive.is/0LvLe) sind vor einem Ausschluss von Plattformen sicher.
-
![](/static/nostr-icon-purple-64x64.png)
@ 1bc70a01:24f6a411
2024-03-30 01:27:45
We’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:
1. Ease of signup
2. Ease of logging in
3. Ability to understand what you are looking at (sufficient explanations)
4. Seeing a good initial feed
5. Ability to follow something of interest
6. Minimizing technical /dev lingo
7. A fast scrolling experience
8. Ability to easily upload media
9. A good search experience overall
10. Good keyword searching
11. Hashtag searching
12. Ability to follow hashtags
13. Easily accessing followed hashtags
14. 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:
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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
-
![](/static/nostr-icon-purple-64x64.png)
@ 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](https://github.com/nostr-protocol/nips/blob/master/65.md) (there are also other types of relay lists documented in [NIP-51](https://github.com/nostr-protocol/nips/blob/master/51.md)). 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](https://github.com/nostr-protocol/nips/blob/master/05.md) 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](https://github.com/MutinyWallet/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](https://en.wikipedia.org/wiki/Gossip_protocol):** 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](https://github.com/mikedilger/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](https://mikedilger.com/gossip-relay-model.mp4)
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](https://github.com/nostr-protocol/nips/discussions/1134) (proposed by nostr:nprofile1qqs8nsk2uy2w529fs8n4tx60u7z553e4yx5dy2nxhw4elgjgawpqlas9waufq) and a [draft NIP](https://github.com/nostr-protocol/nips/pull/1135/files) 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.
-
![](/static/nostr-icon-purple-64x64.png)
@ 52b4a076:e7fad8bd
2024-03-23 22:44:50
# Introduction
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.
-
![](/static/nostr-icon-purple-64x64.png)
@ dd664d5e:5633d319
2024-03-20 11:08:53
A 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](##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.
-
![](/static/nostr-icon-purple-64x64.png)
@ d7607464:421e573a
2024-03-12 21:40:20
## Chef'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
1. Heat milk in a pot until steaming.
2. Whisk in cocoa, sugar, and honey.
3. Serve hot.
-
![](/static/nostr-icon-purple-64x64.png)
@ 52387c6b:49dbdfb2
2024-02-28 01:38:42
## Chef'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
1. Open Chips
2. Pour chips into bowl
3. Add Wooster to taste
4. Now savour the flavour
-
![](/static/nostr-icon-purple-64x64.png)
@ 6871d8df:4a9396c1
2024-02-24 22:42:16
In 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.
-
![](/static/nostr-icon-purple-64x64.png)
@ e1ff3bfd:341be1af
2024-02-23 14:01:13
## Ben's fuck the bears book
Only sign this if you want to fuck the bears
-
![](/static/nostr-icon-purple-64x64.png)
@ 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/
![image](https://yakihonne.s3.ap-east-1.amazonaws.com/03742c205cb6c8d86031c93bc4a9b3d18484c32c86563fc0e218910a2df9aa5d/files/1708320086391-YAKIHONNES3.jpg)
# Spring
ดาวน์โหลด [Spring](https://spring.site/) มาติดตั้งบนเครื่องของเรา
1 เปิด spring ขึ้นมาแล้วกดที่มุมขวาบนที่เป็นรูปคนเพื่อ Login
![image](https://yakihonne.s3.ap-east-1.amazonaws.com/03742c205cb6c8d86031c93bc4a9b3d18484c32c86563fc0e218910a2df9aa5d/files/1708320660769-YAKIHONNES3.png)
2 Login ในการเข้าใช้งานทาง Spring มีให้เราเลือกหลายแบบแต่ถ้าง่ายสุดแนะนำให้เราเลือก Import private key จากนั้นให้วาง private key ของเราแล้วกด save
![image](https://yakihonne.s3.ap-east-1.amazonaws.com/03742c205cb6c8d86031c93bc4a9b3d18484c32c86563fc0e218910a2df9aa5d/files/1708320988852-YAKIHONNES3.png)
แค่นี้เราก็ใช้งานได้แล้วแล้ว
> จะสังเกตได้ว่าภายใน spring จะรวม Clients ต่างๆที่มีอยู่บน Nostr ไว้เกือบหมดเลย
## งั้นเรามาลองใช้งานกันดีกว่า
เลือก Clients ที่เราอยากใช้งานแล้วกดเปิดขึ้นมาแล้วกด Login จากนั้นให้เลือก Login with extension ทาง Spring จะขึ้นถาม Permission ให้เรากด Allow แค่นี้เราก็ Login ได้แล้ว
![image](https://yakihonne.s3.ap-east-1.amazonaws.com/03742c205cb6c8d86031c93bc4a9b3d18484c32c86563fc0e218910a2df9aa5d/files/1708321502312-YAKIHONNES3.png)
> ไปลองใช้งานกันได้ครับภายในโปรโตคอล Nostr มีอะไรให้เราลองอีกเยอะเลยครับ
ใครติดขัดขัดตรงไหนแวะมาพูดคุยกันได้ครับ
แล้วเจอกันใหม่ครั้งหน้า บ๊ะบาย
#Siamstr #Nostr
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-08 07:31:53
# Exploring the Tor Network: A Gateway to Privacy and Security
![Anonymous](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExN3ZoZ3ZhcXhsOWNiNWZuenU4ZGhlaWh0b2EwMXV2bWk5cGs4aWljMiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3o85fTbmA8BbUhJvri/giphy.gif)
In this note, we delve into the fascinating world of the Tor network, a powerful tool that enhances privacy and security on the internet. We uncover how individuals and organizations utilize the Tor network to safeguard their online activities and protect sensitive information from prying eyes.
## Understanding Tor: Anonymity at Its Core
The Tor network, comprised of volunteer-operated servers, allows users to connect for free, enhancing privacy and security online. With the utilization of ".onion hidden services," individuals and organizations can share information without compromising their anonymity.
> "Tor is not just a network; it's a shield against surveillance, censorship, and data interception, empowering users to reclaim their online privacy."
## How Tor Works: Navigating the Network
Tor operates by routing internet traffic through a series of volunteer-operated servers, obscuring the origin and destination of the data. This intricate network architecture ensures that no single server can trace the complete path of the traffic, preserving user anonymity.
To connect to the Tor network, users can employ various methods, including the Tor Browser, Orbot for smartphones, and Onion Browser for iOS devices. Each of these tools provides a secure gateway to the Tor network, offering different levels of anonymity and protection.
## Enhancing Security: Tips and Best Practices
To maximize security and anonymity while using the Tor network, it's essential to follow best practices and utilize recommended tools. For instance, users should avoid installing additional extensions or modifying browser settings, as these actions can compromise anonymity.
> "Protecting your privacy on the Tor network requires diligence and adherence to recommended security measures. By staying informed and vigilant, users can navigate the digital landscape with confidence."
In addition to browsing securely, individuals can contribute to the Tor network's resilience by operating a Snowflake proxy. This innovative feature allows users to donate bandwidth to the Tor Project, aiding individuals in censored networks to access the internet freely.
[Learn more about the Tor network and its capabilities](https://www.torproject.org/about/overview/) and [take steps to protect your online privacy](https://ssd.eff.org/en/module/keeping-your-data-safe).
# Tor: The Ultimate Privacy Tool for Everyday Browsing
Transformative potential of Tor as a daily driver for web browsing. Tor enhances privacy and security online, providing users with a shield against surveillance and data interception.
## Understanding Tor: A Gateway to Anonymity
Tor, short for The Onion Router, is a powerful network of volunteer-operated servers that enables users to browse the internet anonymously. By routing internet traffic through multiple servers, Tor obscures the user's identity and location, making it difficult for third parties to track their online activities.
> "Tor is not just a privacy tool; it's a game-changer for those seeking to reclaim control over their online data and digital footprint."
## Embracing Anonymity: Benefits of Tor for Daily Browsing
Using Tor as a daily driver for web browsing offers numerous advantages. With Tor, users can browse the internet without fear of surveillance or data collection by ISPs, governments, or malicious actors. Additionally, Tor's censorship circumvention capabilities ensure access to unrestricted information, even in regions with strict internet controls.
To experience the benefits of Tor firsthand, users can download the [Tor Browser](https://www.torproject.org/download/) on their desktop or mobile device. This specialized browser comes equipped with built-in privacy features and default settings optimized for secure and anonymous browsing.
## Navigating the Tor Ecosystem: Tips for Safe and Secure Browsing
While Tor provides robust privacy protections, users must take steps to ensure safe and secure browsing practices. Avoid installing additional browser extensions or modifying default settings, as these actions can compromise anonymity and security.
> "Protecting your privacy on the Tor network requires diligence and adherence to recommended security measures. By staying informed and vigilant, users can harness the full potential of Tor for everyday browsing."
In addition to the Tor Browser, users can contribute to the Tor network's resilience by running a [Snowflake proxy](https://snowflake.torproject.org/). This innovative feature allows users to donate bandwidth to support individuals in censored regions, further strengthening Tor's impact worldwide.
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-08 06:59:58
# Digital Computing: From Origins to Modern Innovations
![TheWayOfDigital](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZzR2bmY2ZHd0aW9nZ3lkc2xmNnY3enByeThlYzJkOGkwemxseHVsNSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/34TCIoLLt3Yy9YqfON/giphy.gif)
In this note, we embark on a journey through the captivating history of digital computing, tracing its evolution from its humble beginnings to the cutting-edge technologies of today. We consider into the pivotal moments, key innovations, and notable figures that have shaped the landscape of digital computation.
## Understanding Early Developments
The roots of digital computing, from the abacus and mechanical calculators to the invention of the first programmable devices such as the Analytical Engine by Charles Babbage.
> "The dawn of digital computing marked a significant shift in human history, paving the way for unprecedented advancements in science, technology, and society."
## Emergence of Electronic Computers
The emergence of electronic computers in the mid-20th century, including landmark developments like the ENIAC and UNIVAC, which laid the groundwork for modern computing.
> "The advent of electronic computers revolutionized the field of computation, enabling faster calculations, complex simulations, and unprecedented data processing capabilities."
## Rise of Personal Computing
Next, The rise of personal computing in the late 20th century, with the introduction of iconic devices such as the IBM PC, Apple Macintosh, and the evolution of operating systems like MS-DOS and Windows.
> "The democratization of computing power through personal computers ushered in a new era of accessibility, empowering individuals and businesses to harness the potential of digital technology."
## The Digital Age and Beyond
The transformative impact of digital computing in the modern age, from the proliferation of smartphones and tablets to the rise of cloud computing, big data analytics, and artificial intelligence.
> "As we stand on the cusp of the digital frontier, the possibilities of digital computing are limitless, driving innovation, connectivity, and progress in every aspect of our lives."
Through this exploration of the history of digital computing, we gain a deeper appreciation for the remarkable journey that has brought us to where we are today, poised at the forefront of a digital revolution.
[Learn more about the history of digital computing](https://en.wikipedia.org/wiki/History_of_computing) and [discover its impact on society](https://www.computerhistory.org/revolution/).
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-08 05:30:49
# Node Types: Exploring the Different Types of Nodes in the Bitcoin Network
![image](https://image.nostr.build/370a0f94102e0f2842d58452461b0d66002bb41bbe37213440a098dc36e10549.jpg)
The Bitcoin network, often hailed as the pioneer of blockchain technology, operates through a decentralized network of nodes. These nodes play various roles in maintaining the integrity and functionality of the network. Let's delve into the different types of nodes in the Bitcoin network and their significance.
## Full Nodes
Full nodes are the backbone of the Bitcoin network. They maintain a complete copy of the blockchain and validate all transactions and blocks according to the consensus rules. Full nodes ensure the security and decentralization of the network by independently verifying the entire transaction history. Running a full node helps in strengthening the Bitcoin network and ensuring its resilience against attacks.
> "Full nodes are the cornerstone of decentralization in the Bitcoin network, providing users with trustless access to the blockchain."
[Learn more about running a full node](https://bitcoin.org/en/full-node)
## Mining Nodes
Mining nodes, also known as miners, play a critical role in securing the Bitcoin network by adding new blocks to the blockchain through the process of mining. Miners compete to solve complex mathematical puzzles, and the first one to find a valid solution gets to add a new block to the blockchain and receive a reward in the form of newly minted bitcoins and transaction fees. Mining nodes contribute to the network's security and enable the creation of new bitcoins.
> "Mining nodes are essential for maintaining the security and integrity of the Bitcoin blockchain by validating and adding new transactions to the network."
[Learn more about Bitcoin mining](https://www.bitcoinmining.com/)
## Lightweight Nodes (SPV Nodes)
Lightweight nodes, also known as Simplified Payment Verification (SPV) nodes, do not store the entire blockchain like full nodes. Instead, they only store block headers and verify transactions directly relevant to them. SPV nodes rely on full nodes to provide them with accurate information about the state of the network. While lightweight nodes offer reduced resource requirements and faster synchronization, they sacrifice some level of security and trustlessness compared to full nodes.
> "Lightweight nodes offer a convenient way to interact with the Bitcoin network without the need to download and validate the entire blockchain, making them suitable for resource-constrained devices."
[Learn more about SPV nodes](https://bitcoin.org/en/developer-guide#simplified-payment-verification-spv)
## Pruned Nodes
Pruned nodes store only a subset of the blockchain's data by discarding older transaction information beyond a certain threshold. Pruned nodes maintain the integrity of the blockchain while significantly reducing storage requirements. Although pruned nodes cannot serve historical data to other network participants, they still contribute to the network by validating new transactions and blocks.
> "Pruned nodes strike a balance between maintaining network security and reducing storage overhead, making them suitable for users with limited storage capacity."
[Learn more about pruned nodes](https://bitcoin.org/en/bitcoin-core/features/pruning)
In conclusion, the Bitcoin network consists of various types of nodes, each serving a unique purpose in ensuring the network's integrity, security, and decentralization. Whether you're a full node operator, miner, or lightweight node user, your participation contributes to the strength and resilience of the Bitcoin ecosystem.
[blockchain]: https://bitcoin.org/en/full-node
[mining]: https://www.bitcoinmining.com/
[spv]: https://bitcoin.org/en/developer-guide#simplified-payment-verification-spv
[pruning]: https://bitcoin.org/en/bitcoin-core/features/pruning
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-08 05:14:35
# The Evolution of Lightning Network Implementations: An Overview
![image](https://image.nostr.build/3e5326e5b94806c925bccd0da744d95d719719947da670b585eea162ee9f6dc9.jpg)
In the dynamic landscape of Bitcoin lightning technology, the Lightning Network has emerged as a game-changer, providing a scalable solution for Bitcoin transactions. As the demand for efficient and cost-effective payment solutions grows, so does the need for robust Lightning implementations. Let's delve into the evolution of these implementations and explore their significance in the rapidly evolving ecosystem.
## Understanding the Lightning Network
The Lightning Network serves as an overlay network atop the Bitcoin blockchain, offering trustless instant payments with minimal fees. It operates through two key layers: the Bitcoin Network and the Lightning Network. The former serves as the foundation, while the latter facilitates peer-to-peer transactions.
In essence, developing a Lightning-powered application requires interfacing with two main components: the Bitcoin node and the Lightning node. The former interacts with the underlying blockchain, while the latter manages transactions on the Lightning Network.
## Exploring Lightning Implementations
### c-lightning by Blockstream
[c-lightning](https://github.com/ElementsProject/lightning), developed by Blockstream, stands as a pioneering Lightning implementation written in C. Known for its modular architecture and extensibility, c-lightning has been in production since 2018, offering low-level access for customization.
### Eclair by ACINQ
[Eclair](https://github.com/ACINQ/eclair) is a Scala implementation of the Lightning Network, developed by ACINQ. Launched in 2018, Eclair emphasizes robustness and scalability, providing both a library and a mobile implementation of Lightning.
### lnd by Lightning Labs
[lnd](https://github.com/lightningnetwork/lnd), developed by Lightning Labs in Go, serves as a developer-friendly Lightning node. With an extensive feature set and a focus on application development, lnd has been a staple choice since its mainnet release in 2018.
### Rust-Lightning and LDK
[Rust-Lightning](https://github.com/rust-bitcoin/rust-lightning), developed by the Rust Bitcoin Community, offers a flexible Lightning library in Rust. Collaborating with Square Crypto, the community aims to simplify Lightning integrations through the Lightning Development Kit (LDK).
### Electrum
[Electrum](https://electrum.org/), a renowned Bitcoin client, ventured into Lightning development in 2020. Integrating Lightning support into its Python implementation, Electrum extends its privacy-focused approach to Lightning transactions.
### LNP Node
[LNP Node](https://github.com/LNP-BP/rust-lnp-node), introduced by LNP/BP Standards Association, represents a new Rust-based Lightning implementation. With a focus on modularity and extensibility, LNP Node introduces Generalized Lightning Channels (GLCs) for future protocol enhancements.
## The Path Forward
The Lightning Network implementation ecosystem continues to expand, catering to diverse user needs and use cases. As institutional adoption gains momentum, Lightning implementations play a pivotal role in driving growth and innovation within the blockchain space.
In conclusion, while this overview provides insights into the current state of Lightning implementations, the ecosystem remains dynamic. With ongoing developments and new entrants, the future promises further evolution and refinement of Lightning technology.
Remember, in the fast-paced world of blockchain, staying informed and adaptable is key to navigating the ever-changing landscape.
> "The only constant in life is change." - Heraclitus
If you have any updates or insights to share, feel free to reach out and contribute to the ongoing dialogue surrounding Lightning Network implementations. Together, we can understand the future of Bitcoin technology.
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-07 12:53:10
**Making The Effort To Understanding Liquid Network: A Beginner's Perspective**
![Read The Bitcoin Whitepaper](https://image.nostr.build/3f0b883061d11bec94fce6f16f53f8ab6d7516f59cb5317e5ec05261b5ca1204.jpg)
In the rapidly evolving landscape of blockchain technology, solutions like the Liquid Network are paving the way for faster, more private, and secure transactions. But what exactly is the Liquid Network, and how can beginners get started with it? Let's delve into the world of layer-2 solutions and explore the fundamentals of the Liquid Network.
*Layer-2 Solutions: Unlocking Bitcoin's Potential*
Bitcoin's limited throughput has long been a challenge for its widespread adoption. With a capacity of only 5-7 transactions per second, the Bitcoin blockchain can sometimes struggle to meet the demands of institutional investors and retail buyers alike. Layer-1 solutions, which require rewriting the blockchain protocol, present significant challenges. Enter layer-2 solutions like the Liquid Network, which operate on top of the main blockchain without the need for protocol changes.
*Introducing the Liquid Network: Faster, More Private, More Secure*
The Liquid Network is a layer-2 network built on top of the Bitcoin blockchain, offering faster, more private, and secure transactions. Designed to enable the issuance, transfer, and exchange of cryptocurrencies, stablecoins, digital assets, and security tokens, the Liquid Network provides a solution to Bitcoin's scalability and privacy challenges.
*Key Features of the Liquid Network*
The Liquid Network achieves its goals through several key features:
- **Wrapped Bitcoin (L-BTC):** Liquid Network issues a "wrapped" version of BTC called L-BTC, which can be used on its chain.
- **Issued Assets:** In addition to L-BTC, Liquid Network supports Issued Assets, enabling the creation of tokens for various applications like stablecoins and security tokens.
- **Confidential Transactions:** Liquid Network uses Confidential Transactions to hide key transaction information, ensuring greater privacy.
- **Federated Byzantine Agreement (FBA):** The consensus mechanism of the Liquid Network ensures security and proper asset management.
*Getting Started with the Liquid Network*
For beginners looking to explore the Liquid Network, one of the most accessible solutions is to utilize exchanges like [Bisq](https://bisq.network/) and [Robosats](https://learn.robosats.com/) With these exchange protocols and DAO's, users can seamlessly convert their BTC to L-BTC on the Liquid Network with zero fees, unlocking the benefits of faster transactions and greater privacy. By leveraging platforms like Bitfinex , Bisq, Robosats, users can tap into the full potential of the Liquid Network without incurring additional costs.
In summary, the Liquid Network offers a promising solution to Bitcoin's scalability and privacy challenges. By understanding its fundamentals and leveraging platforms like Bitfinex, beginners can embark on a journey of exploring the possibilities offered by layer-2 solutions and unlocking the full potential of the Bitcoin blockchain.
[Learn more about the Liquid Network](https://docs.liquid.net/docs/welcome-to-liquid-developer-documentation-portal)
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-07 10:00:30
**Bitcoin Network Congestion: The Battle Over Ordinals and BRC-20 Tokens**
![The Battle Over Ordinals and BRC-20 Tokens](https://image.nostr.build/ee5534ccaf088cb7166ba1abcbda574dca05649aef74566633785cb2e2470165.jpg)
As the Bitcoin network experiences increasing congestion, users are facing longer confirmation times and higher transaction fees. This bottleneck not only impacts the speed of transactions but also raises concerns about accessibility and affordability for users requiring swift and cost-effective transfers.
At the forefront of this issue is the Ordinals Project, a groundbreaking protocol designed to revolutionize digital content storage on the Bitcoin blockchain. By leveraging a specialized transaction type known as an "ordinal," this project enables the creation and preservation of digital art, music, and other media in a decentralized and secure manner. The Ordinals Project represents a significant leap forward in the realm of blockchain innovation, offering users unprecedented opportunities to store and transmit large volumes of data efficiently.
However, alongside the Ordinals Project, the emergence of BRC-20 tokens has added another layer of complexity to the debate. These tokens, akin to ERC-20 tokens on the Ethereum blockchain, are utilized on the Binance Smart Chain for various purposes, including fundraising, trading, and participation in decentralized finance (DeFi) activities. While BRC-20 tokens offer exciting possibilities for expanding the utility of blockchain technology, they also raise questions about scalability and their potential impact on the Bitcoin network.
The crux of the debate surrounding Ordinals and BRC-20 tokens lies in the delicate balance between innovation and scalability within the Bitcoin community. On one hand, proponents argue that these projects open up new avenues for creativity and utility on the Bitcoin network, enhancing its value proposition and relevance in the digital age. Conversely, critics express concerns about the strain that such initiatives may place on the network, exacerbating congestion and impeding its efficiency and reliability.
Ultimately, the discussion surrounding Ordinals and BRC-20 tokens underscores the ongoing dialogue within the Bitcoin community about the trade-offs inherent in technological advancement. While innovation is essential for driving progress and expanding the capabilities of blockchain technology, it is equally crucial to consider the potential ramifications and challenges posed by new initiatives. As Bitcoin continues to evolve and adapt to meet the demands of its growing user base, striking a balance between innovation and sustainability remains paramount for ensuring the network's long-term success.
# Get Familiar with the Lightning Network
The Lightning Network represents a revolutionary layer-2 scaling solution for the Bitcoin blockchain, offering lightning-fast and low-cost transactions. To embark on your journey of understanding this innovative technology, let's delve into its architecture and protocols, uncovering the mechanisms that power its efficiency and scalability.
## Lightning Network Architecture
At its core, the Lightning Network operates as a network of bidirectional payment channels that enable users to conduct off-chain transactions without relying on the main Bitcoin blockchain for every transaction. These payment channels are established between two parties and allow for rapid exchange of funds, facilitating instant micropayments with negligible fees.
### Payment Channels
Payment channels are the building blocks of the Lightning Network, serving as conduits for peer-to-peer transactions. These channels leverage multi-signature smart contracts, enabling participants to securely transact without broadcasting every transaction to the blockchain. By opening and closing channels as needed, users can seamlessly conduct transactions off-chain while maintaining the security and trustlessness of the Bitcoin network.
### Lightning Network Nodes
Lightning Network nodes play a pivotal role in facilitating transactions across the network. Nodes serve as intermediaries for routing payments between users, ensuring that funds can flow efficiently between different parties. With a robust network of nodes distributed globally, the Lightning Network achieves unparalleled speed and scalability, making it ideal for microtransactions and everyday purchases.
## Lightning Network Protocols
To harness the full potential of the Lightning Network, it's essential to grasp the underlying protocols that govern its operation. These protocols dictate how transactions are routed, payments are processed, and channels are managed, laying the groundwork for seamless and secure interactions within the network.
### HTLCs (Hash Time Locked Contracts)
Hash Time Locked Contracts (HTLCs) form the backbone of Lightning Network transactions, enabling atomic swaps and ensuring the trustless exchange of funds between parties. Through the clever use of cryptographic hashes and time locks, HTLCs enable secure and instantaneous payments across the Lightning Network, mitigating the risk of fraud or double-spending.
### Sphinx Protocol
The Sphinx Protocol plays a critical role in preserving the privacy and confidentiality of Lightning Network transactions. By encrypting payment information and routing instructions, Sphinx ensures that only the intended recipient can decipher the transaction details, enhancing the privacy and security of Lightning Network transactions.
### AMP (Atomic Multipath Payments)
Atomic Multipath Payments (AMP) enable the splitting of large payments into smaller, more manageable chunks, allowing for more efficient routing and improved reliability within the Lightning Network. With AMP, users can enjoy greater flexibility and resilience when sending funds across the network, reducing the risk of payment failures and ensuring smooth transaction flows.
## Conclusion
As you embark on your journey to get familiar with the Lightning Network, remember that it represents a paradigm shift in the way we think about blockchain scalability and usability. By embracing its innovative architecture and protocols, you can unlock a world of possibilities for fast, low-cost, and privacy-preserving transactions on the Bitcoin blockchain.
With a solid understanding of the Lightning Network's architecture and protocols, you'll be well-equipped to navigate the intricacies of this groundbreaking technology and harness its full potential for revolutionizing the future of finance.
[Lightning Network](https://lightning.network/) - Official website for the Lightning Network.
[Understanding the Lightning Network](https://medium.com/coinmonks/understanding-the-lightning-network-4abdf5ad10d5) - Comprehensive guide to understanding the Lightning Network's architecture and protocols.
[HTLCs Explained](https://bitcoinmagazine.com/guides/htlc-explained) - In-depth exploration of Hash Time Locked Contracts and their role in Lightning Network transactions.
[Sphinx Protocol](https://arxiv.org/abs/2006.11234) - Research paper detailing the Sphinx Protocol and its contributions to privacy-enhanced transactions on the Lightning Network.
[Atomic Multipath Payments](https://blog.bitmex.com/lightning-network-part-6-the-path-to-mass-adoption/) - Article discussing the benefits of Atomic Multipath Payments for improving transaction reliability and efficiency within the Lightning Network.
-
![](/static/nostr-icon-purple-64x64.png)
@ 6871d8df:4a9396c1
2024-02-05 23:29:22
The Apple Vision Pro was released, and it is the talk of the town right now. To be frank, I think it's a stupid product. It's not useful or particularly enticing to me in its current form factor. It's a toy, not a tool. All the features seem gimmicky as opposed to generally helpful. I'm not saying it may _never_ be worthwhile, but as of this first release, it is only a party trick.
Coincidently, this is the first product that does not have any of Steve Jobs' influence. To me, it shows. I don't think Jobs would have ever let this product see the light of day.
Jobs understood product. He didn't make things for the sake of progress or to make sci-fi reality; he made things because he 'wanted to make a dent in the world.' He wanted to solve problems for everyday people by innovating with cutting-edge technology. He aspired to make people's lives better. Steve Jobs' genius was the way he married cutting-edge technologies with valuable tools that made those cutting-edge technologies simple and elegant.
The Vision Pro may be technically innovative, but it is not a tool, at least in its current form. It may be one day, but that is precisely my point; Jobs would have never released a product where the form factor would hold it back from becoming a tool. At best, it is an intriguing toy that is additive to some content at the behest of being very awkward to wear or be seen in. In my view, mainstream adoption can happen only in a world where we can use the Vision Pro as a contact lens or very small, discreet, minimalist glasses, but certainly not this iteration where it covers more than half your face.
Seeing people's eyes makes us human. So much emotion, understanding, and communication happens with just a look. It is a window into the soul. I don't want to live in a world where we are actively bringing all the negatives about communicating in the digital world to the physical one.
https://image.nostr.build/2365609411f144f5d789ffd684ffce9b4d867626a7bfe11bb311cb0f61057199.jpg
I can't help but wonder or hypothesize what Steve Jobs would focus on if he were still alive today. I think Apple's priorities would be completely different. My gut tells me he would not have let Siri get as bad as it is. Siri is a horrible product; I never use it, and everyone I know who tries to use it does so unsuccessfully, at least most of the time. I personally always default to ChatGPT or Bard. These AI systems make my life dramatically more productive. They are _tools_ in the purest sense.
In my opinion, Steve would not have missed this train. Sure, Apple could wake up and integrate these systems into Siri — if they were smart, they would — but in its current form, it is so far behind that it almost astounds me. My intuition leads me to believe he would be closer to what [Rabbit] is doing.
Who knows? Maybe I am entirely wrong, and Apple just kickstarted VR's mass adoption phase. Unfortunately, I think this will likely be the biggest failure of a physical product that Apple will have seen since Jobs returned ages ago. The Vision Pro is only slightly better than the Oculus, and Facebook has already deprioritized VR for AI. Apple is further behind, and I don't see a world where they do not make the same pivot. There is a skill to creating successful, innovative products, and it makes me sad to see the torch that Jobs passed lose its flame. As someone who respected how Apple used to innovate, watching this decay in real-time is jarring as this is just the latest in a string of disappointing decisions that exemplify that 'peak Apple' is behind us.
-
![](/static/nostr-icon-purple-64x64.png)
@ 6a39a186:88f51c19
2024-02-05 00:17:47
# The Bitcoin Manifesto: Unleashing the Power of Digital Gold
*Thoughts*
Bitcoin Manifesto, a paper that explores the untapped potential of Bitcoin. In this work, inspired by the spirit of Satoshi Nakamoto, we delve into the compounding free cash flows for Bitcoiners, expose the inherent rigging of the existing financial system, and discuss the ways in which Bitcoin can save one's life energy while fostering success for others. We emphasize the importance of thinking and communicating differently, breaking free from the limitations of a fiat mindset. Furthermore, we highlight Bitcoin's role as the base layer for preserving wealth, acting as a capital fortress against the relentless onslaught of inflation that erodes and destroys our hard-earned assets.
## 1. Introduction
Welcome to the Bitcoin Manifesto, a testament to the transformative power of digital gold. This paper explores the revolutionary capabilities of Bitcoin, shedding light on its role in compounding free cash flows for Bitcoiners, unmasking the rigged nature of the existing financial system, and unveiling the ways in which Bitcoin can save our life energy while fostering the success of our peers.
## 2. Compounding Free Cash Flows for Bitcoiners
Bitcoin is a catalyst for financial liberation, enabling Bitcoiners to unlock the power of compounding free cash flows. Unlike traditional systems that stifle wealth creation through burdensome fees, intermediaries, and arbitrary barriers, Bitcoin empowers individuals to engage in direct, peer-to-peer transactions. By embracing this decentralized approach, Bitcoiners can harness the exponential growth potential of their wealth.
> "Bitcoin is the conduit through which we unleash the compounding free cash flows that transform stagnant fiat currencies into a flourishing ecosystem of financial prosperity." -
## 3. Unveiling the Rigged System
The existing financial system is rigged, designed to benefit the few at the expense of the many. Traditional currencies are subject to the whims of governments and central banks, leading to inflationary practices that erode our wealth and purchasing power. In contrast, Bitcoin operates on an immutable blockchain, free from the clutches of centralized authorities. This decentralized nature ensures that no single entity can manipulate the system, leveling the playing field for all participants.
> "Bitcoin disrupts the rigged game, empowering individuals to reclaim control of their financial destinies and transcend the limitations imposed by a corrupt system." -
## 4. Saving Life Energy and Fostering Success
Bitcoin not only offers a means to save our life energy but also a pathway to uplift others towards success. By embracing Bitcoin, we secure our financial well-being and invest in a future where prosperity is not limited to a select few. Through collaboration and support within the Bitcoin community, we create an environment where everyone can thrive, breaking free from the scarcity mindset perpetuated by the fiat world.
> "In Bitcoin, we find the power to save our life energy and channel it towards creating a future where success is a shared experience, not a solitary pursuit." -
## 5. Thinking and Communicating Beyond Fiat
To unlock the full potential of Bitcoin, we must break free from the confines of a fiat-centric mindset. This paradigm shift in thinking and communication allows us to transcend the limitations of the existing financial system. Bitcoiners challenge conventional wisdom, question the status quo, and envision a world where financial freedom and autonomy are the new norms. By adopting this fresh perspective, we unlock untapped potential and shape a future where Bitcoin's influence extends far beyond the realms of finance.
> "Bitcoin demands that we think and communicate differently, liberating ourselves from the constraints of a fiat mindset and embracing the transformative power of decentralized finance." -
## 6. Preservation of Wealth: Bitcoin as Base Layer 1
At its core, Bitcoin serves as the bedrock for preserving wealth in an era plagued by inflation. Governments worldwide continue to print fiat currencies, leading to the gradual erosion of value and the destruction of hard-earned assets. Bitcoin, with its limited supply and decentralized nature, acts as a fortress against this value decay. As the first layer of the financial revolution, Bitcoin provides a solid foundation upon which we can safeguard our wealth.
> "Bitcoin, as base layer 1, stands as the bulwark against the relentless assault of inflation, offering us a sanctuary to preserve and grow our financial futures." -
## 7. Layer 1: Capital Defense Against Inflation
Inflation poses an ever-growing threat to the preservation and growth of wealth. Fiat currencies, subject to the whims of governments and central banks, steadily lose value over time, eroding the purchasing power of individuals. Bitcoin, on the other hand, operates on a protocol with a fixed supply, rendering it immune to the effects of inflation. By embracing Bitcoin as capital, we shield our wealth from the destructive forces that undermine its value.
> "Inflation, the silent destroyer of wealth, falls powerless against the fortress of Bitcoin's layer 1, solidifying its role as the ultimate safeguard for our hard-earned assets." -
## 8. Conclusion
The Bitcoin Manifesto presents a groundbreaking perspective on the potential of Bitcoin. We have explored the compounding free cash flows for Bitcoiners, exposed the rigged nature of the existing financial system, and emphasized the ways in which Bitcoin can save our life energy while fostering success for others. We have called for a shift in thinking and communication, breaking free from the limitations of a fiat mindset. Furthermore, we have recognized Bitcoin's role as the base layer for preserving wealth, acting as a fortress against the growing threat of inflation. By embracing Bitcoin, we can transcend the confines of the current system and propel ourselves towards a future of financial empowerment and prosperity.
> "Let us embrace the power of Bitcoin, for it has the potential to revolutionize our financial landscape and forge a path towards a more equitable and prosperous future." -
Assets for phots taken from [The ColdPower Post](https://primal.net/e/note1qwwssxww72ue4smjx6fpagavkl0ca3htvmgzs4mc77xkm80kw7dsq9ahgr)
Thank You!