Avatar
LightningSpore
805e3c98b42a2175a081666b4e077bab32136ea6cf4b9976a952569917d9e329
Check out LightningSpore.com, mushroom and electronics shop which accepts BTC+LN We specialize in open-source software and hardware to automate growing of mushrooms, plants, and other stuff

No I just cover the soil with hydroton for aesthetics and to reduce anything growing on the surface

Did some repotting yesterday. I've been propagating these jade plants for a couple of years now, I am up to about 8 plants from the original.

After a rough start, my cacti are really loving my grow light and are growing big. I cut off the top part and will re-root them. I needed to split the 3 up and repot all of them since the roots are already growing together too much.

https://i.nostr.build/Nrc3192luzDUmUjD.webp

https://i.nostr.build/vHWE7uiC7wX3Yngq.webp

https://i.nostr.build/q7foLGewbwglj78Z.webp

Tbh I don’t know companies make any money when people like my wife get warranty replacements 18 months after buying a product.

Free returns no questions asked is either a zero interest rate, or a monopoly business scam

What I do in these situations where there has been an API change, is I start poking around.

Open up a python repl and start playing around. You can type `client` and press tab (depending on your python install, and it will show all functions available.

```

from nostr_sdk import Metadata, Client, NostrSigner, Keys, Filter, PublicKey, Kind

client = Client()

```

# press tab

client.TAB

```

>>> client.

client.add_discovery_relay( client.fetch_events_from( client.send_event_builder( client.subscribe_with_id_to(

client.add_read_relay( client.fetch_metadata( client.send_event_builder_to( client.subscription(

client.add_relay( client.filtering() client.send_event_to( client.subscriptions()

client.add_relay_with_opts( client.force_remove_all_relays() client.send_msg_to( client.sync(

client.add_write_relay( client.force_remove_relay( client.send_private_msg( client.try_connect(

client.automatic_authentication( client.gift_wrap( client.send_private_msg_to( client.unsubscribe(

client.connect() client.gift_wrap_to( client.set_metadata( client.unsubscribe_all()

client.connect_relay( client.handle_notifications( client.shutdown() client.unwrap_gift_wrap(

client.database() client.relay( client.sign_event_builder( client.update_min_pow_difficulty(

client.disconnect() client.relays() client.signer() client.wait_for_connection(

client.disconnect_relay( client.remove_all_relays() client.subscribe(

client.fetch_combined_events( client.remove_relay( client.subscribe_to(

client.fetch_events( client.send_event( client.subscribe_with_id(

```

OR if that doesnt work you can do dir()

```

dir(client)

>>> dir(client)

['__annotations__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_make_instance_', '_pointer', '_uniffi_clone_pointer', 'add_discovery_relay', 'add_read_relay', 'add_relay', 'add_relay_with_opts', 'add_write_relay', 'automatic_authentication', 'connect', 'connect_relay', 'database', 'disconnect', 'disconnect_relay', 'fetch_combined_events', 'fetch_events', 'fetch_events_from', 'fetch_metadata', 'filtering', 'force_remove_all_relays', 'force_remove_relay', 'gift_wrap', 'gift_wrap_to', 'handle_notifications', 'relay', 'relays', 'remove_all_relays', 'remove_relay', 'send_event', 'send_event_builder', 'send_event_builder_to', 'send_event_to', 'send_msg_to', 'send_private_msg', 'send_private_msg_to', 'set_metadata', 'shutdown', 'sign_event_builder', 'signer', 'subscribe', 'subscribe_to', 'subscribe_with_id', 'subscribe_with_id_to', 'subscription', 'subscriptions', 'sync', 'try_connect', 'unsubscribe', 'unsubscribe_all', 'unwrap_gift_wrap', 'update_min_pow_difficulty', 'wait_for_connection']

```

Either way you can see that `get_events_of` has most likely been renamed to: `fetch_events_from`

More playing:

```

>>> client.fetch_events_from()

Traceback (most recent call last):

File "", line 1, in

TypeError: Client.fetch_events_from() missing 3 required positional arguments: 'urls', 'filter', and 'timeout'

```

It seems like those are the things you are passing in your code, so seems to be the one? Go play around! 😉

```

pk = PublicKey.parse("npub1sp0rex959gshtgypve45upmm4vepxm4xea9eja4f2ftfj97euv5s3rj02v")

```

I guess the function name changed. The parse function now takes all kinds of inputs.

This library is written in rust so I am not able to decipher as well as i would like, but if you compare:

https://github.com/rust-nostr/nostr/blob/v0.32.0/crates/nostr/src/key/public_key.rs

https://github.com/rust-nostr/nostr/blob/v0.39.0/crates/nostr/src/key/public_key.rs

This is where the change is as far as I can tell.

Interesting I will have to boop about this concept

GM

Will work for sats

#proofisinthepudding

(Or I guess proof is in the tea, but I ain't paying to regenerate this video :P)

https://v.nostr.build/wTnpUnI6NYPclJPD.mp4

Found you by chance on the firehose. It’s always a bit risky following new accounts, but I appreciate you posting and not just reposting other peoples stuff!

GM

Just trimmed up my fern. I’ve had this for years now, it’s never looked spectacular but it has survived. It’s actually starting to look kinda good.

Looking to repot it sometime soon! Any fern soil tips? #plantstr

That’s interesting didn’t know there was a trust ranking system on there.

GM

It’s gonna be a busy but good day

#dogstr

On the flipside these overpriced B2Bs are the only people making any good many in SaaS. So good for them!

Ooh boy! Yeah they are used for making miso soup from what I read

https://github.com/mleku/realy-protocol

README.md is ded

this is how you put a document on a git repository

also get asciidoc plugin for your IDE

#devstr #asciidoc

What’s your favorite part about asciidoc?

I read the code of your readme and looked at the result of it on GitHub and I wasn’t sure how it would really benefit me? Just seems like different syntax for the same thing