Avatar
arvin
50ad69ef936e893e289d0ac1ddcde051792cfb708ec00d738fa30adf2f4b4708
👨🏾‍💻 plumbing bits at npub1gal0y3vuj3c5sme6444ncsr8xcfm9axehfcsuqfamz5v926m6f2s4yz3t2 | #trinistr 🇹🇹 1/2 ChainDuo npub1kd3nlw09ufkgmts2kaf0x8m4mq57exn6l8rz50v5ngyr2h3j5cfswdsdth w/ npub1y67n93njx27lzmg9ua37ce7csvq4awvl6ynfqffzfssvdn7mq9vqlhq62h

There's still the actual friction of running a lightning node and managing liquidity

Sideshift folks for e.g. gave up and removed it from their platform when the operational headache and support tickets were more of a burden than the benefits of offering the option

Proof of zap, lfg 🚀

From ChatGPT

In programming, naming conventions often vary depending on the style, context, or language. Here are the most common naming conventions, including `SCREAMING_SNAKE_CASE`:

1. **PascalCase (UpperCamelCase)**:

- Every word starts with a capital letter, and there are no separators.

- Example: `MyVariableName`, `LoanManager`, `UserProfile`.

2. **camelCase (LowerCamelCase)**:

- The first word starts with a lowercase letter, and each subsequent word starts with an uppercase letter.

- Example: `myVariableName`, `loanManager`, `userProfile`.

3. **snake_case**:

- All lowercase letters with words separated by underscores.

- Example: `my_variable_name`, `loan_manager`, `user_profile`.

4. **SCREAMING_SNAKE_CASE**:

- All uppercase letters with words separated by underscores.

- Example: `MY_VARIABLE_NAME`, `LOAN_MANAGER`, `USER_PROFILE`.

- Often used for constants.

5. **kebab-case (dash-case or hyphen-case)**:

- All lowercase letters with words separated by hyphens.

- Example: `my-variable-name`, `loan-manager`, `user-profile`.

- Commonly used in URLs or CSS class names.

6. **kebab-case (SCREAMING-KEBAB-CASE)**:

- Similar to `kebab-case` but with uppercase letters and hyphens.

- Example: `MY-VARIABLE-NAME`.

7. **UPPERCASE**:

- All uppercase letters with no word separators.

- Example: `MYVARIABLENAME`.

8. **Train-Case**:

- Similar to `PascalCase`, but with hyphens separating the words.

- Example: `My-Variable-Name`.

9. **dot.case**:

- All lowercase letters with words separated by periods.

- Example: `my.variable.name`, `loan.manager`.

10. **Title Case**:

- All major words start with a capital letter, typically used in headings.

- Example: `My Variable Name`, `Loan Manager`.

Each of these cases has its own use depending on the context, language, or framework. For example, `SCREAMING_SNAKE_CASE` is often used for constants in many programming languages, while `camelCase` is common for variable and function names in languages like JavaScript and Rust.

nostr:note1ysuv3mntt29lqmesld8wvngkeueje90e3f38rp877p9c69aqq62suztaga

Replying to Avatar zach

Nice!!

Btw it's a pretty decent analogy. I followed it up with one more prompt

**Prompt:**

How is a mutable borrow different from a move in this analogy

**Response:**

Great question! Here's how a mutable borrow differs from a move in the toy analogy:

- **Move (Ownership Transfer):** When you **move** the toy to your friend, you're giving them the toy entirely. They now own it, and you can't access it at all until they give it back (if they ever do). You don't control it anymore. In Rust, this is like transferring ownership, and you lose access to the value.

- **Mutable Borrow:** When you **mutably borrow** the toy, you're letting your friend **temporarily** play with it, but you still own it. They can change or modify the toy, but they have to return it to you once they’re done. During this time, you can't touch the toy (nor can anyone else), but you will get it back once they finish. In Rust, this allows the borrower to modify the value, but you still have ownership and will regain full control later.

In short:

- With a **move**, you permanently hand over control.

- With a **mutable borrow**, you temporarily let someone else use and modify the item, but you retain ownership.

So, in the analogy:

- **Move** = "Here, take the toy, it's yours now."

- **Mutable Borrow** = "You can play with the toy for a bit, but give it back when you're done."

Fed ChatGPT your note and got this back:

Your analogy is almost right, but it could use a bit of clarification regarding ownership and borrowing, especially in the context of mutability.

Here’s an improved version:

"Imagine you have a toy that you either keep for yourself or sometimes lend to a friend. If you fully give the toy to a friend (ownership transfer), it's theirs now, and you can’t touch it anymore unless they give it back. However, if you just let them borrow the toy, you still own it. The borrow checker makes sure that if your friend is just looking at the toy (immutable borrow), you can also look at it at the same time. But if your friend is actively playing with it (mutable borrow), you can’t touch it at all while they have it, and nobody else can borrow it either. The borrow checker ensures that there’s no confusion or conflicts over who’s using the toy and how."

This explains both ownership and borrowing (both mutable and immutable) a bit more clearly while still keeping the analogy simple.

Looks like there's no public channels on your node and no route hints in your invoices if the channels are private

There's supposed to be a setting to enable hop hints for private channels in btcpay if you do have private ones

https://mempool.space/lightning/node/0362c18e4406b951e0c1b08377a3f4b404fe20025e10e42daecbc06f915b24ca08