-
@ 078d6670:56049f0c
2025-05-09 13:22:26It was a dark and stormy night. It had to be: Weather had been fired. If they were working for him he would have fired them, but that is just embarrassed arrogance talking. He remembers standing in the middle of his office, his trashed office. It looked like a hurricane had hit it, or vagrants had been living in it for years, nothing of value was left intact. Monitors were shattered on the floor, couches were covered in debris. There was evidence of food and magazine pages in every gaze space. His supervisor, his name escaped him, was grey with anger. “Explain this!” he had shouted with a tremble, but he couldn’t. Every time he tried to think of the events of the day he met a dazzling white blankness.
He was escorted, handcuffed, to a room by two security guards with his supervisor trailing them. Weather felt humiliated and frustrated, but he didn’t know why. He sat, shivering slightly, in a low-lit conference room he had never seen before. Actually, he doesn’t remember any windows or any specific light source, just a haze of shadows. The big boss is sitting opposite him, looking haggard and white as a sun-bleached shell. His supervisor was sitting on his right looking equally haggard and even depressed. They appeared genuine and he knew it was bad news for him.
“You’ve embarrassed this company! There is even a chance you have ruined us all and you have the audacity to sit there and pretend that you can’t remember a thing!”
He knew there was no point in arguing, he had no ideas with which to make up any argument. He sat staring into space.
“At least, give us a story. Tell us how bored you were and tried to create your own weather system by running around the room swinging the fan around like a sugar mad teenager!”
He couldn’t even clear his throat. He couldn’t lift his eyes to meet theirs. He knew his career was over and they were fearful all their ideals had crashed irreparably. He stared into space at the globe standing in the middle of the table. The more he stared at it the more he realized that it seemed to have an atmosphere around it. There were clouds covering patches of the earth. He didn’t dare bring their attention to it. The only memories he could dredge up seemed like dreams, and they’re hardly constitute a defence.
He looked up at their faces finally, surprised to see more alarm than anger, like they were actually afraid of him. They both stood up suddenly, wanting to get out the room as quickly as possible.
“You have brought Global Sky Incorporated into disrepute. You’ve embarrassed us. You have possibly ruined hundreds of careers here! We never want to see you again! You are never to come within a hundred metres of this building. You can never use your research ever again, it never happened. Everything you have ever written will be classified and restricted until you are dead!” The big boss was shaking wild, Weather was grateful for the security guards that hurled him out of his chair and marched him out of the building.
The afternoon sky had been a deathly grey. It had occurred to him but now he was a little shocked at how much control they had over the weather, maybe it was a good thing that he had been fired, but probably a bad thing as they would certainly make worse mistakes than him, whatever he might have done. He was confused, not sure if he been fired for trashing his office or for state of the weather. About the weird weather he has no idea, all he can remember is a dazzling blank whiteness, and that is hardly a memory.
He couldn’t face going directly home, jumped on public transport travelling on tracks laid down on old unused highways and headed for the city beach, or what passed for a beach. He sat on a concrete bench gazing across the grey sand at the shimmering waves. They weren’t shimmering because of the sparkling sunlight, but the contaminates in the water. But still it was tranquil enough. He tried to think about his day, but couldn’t get past the white blankness, everything else before that was like a postcard from someone else’s holiday, and they looked like movies he might have seen. He has a framed vision of himself in his office with office supplies flying around him without touching him. Clearly, as they weren’t touching him, it had nothing to do with his behaviour. He is a victim here. It wasn’t his fault, the world was changing and the powers that be wanted more control. It seems like Global Weather Incorporated (GWI) lost control of their equipment and need a fall guy, they didn’t need him anymore. Squeezed his brain for the algorithms, then threw him onto the streets. He was nothing without his research, it’s all he had done his entire life. He would have to pursue it, but that would as useful as talking to a brick wall, the world was less transparent; government, science and advertising companies had a law of their own and a police force to uphold them.
He believed in good and the unveiling of truth. He had a romantic connection to the idea that truth grew in people’s hearts that everyone wanted the best for everyone else, no matter what skin colour, car colour they had, or star sign they were born under. Everybody wanted peace, a roof over their heads and food in their bellies; and wanted these things for their neighbours too. If only his neighbours had the same beliefs.
It was late afternoon now. He could tell by the slight luminosity of the grey clouds near the horizon, close to a cloudless gap, a slit above the horizon through which the sun could bid its final farewell to the day. He was in no mood for a sunset minute. He picked his bum off the bench, dusted it off and began his journey home, not wanting to be left in the dark in the city, opportune prey for corrupt cops. Everyone was coming out of the offices, beginning the big commute home. Car pools had reshaped their cars to fit more people in, and many climbed on to the reinvented trams, sitting if they were lucky, holding onto ceiling straps if they were unlucky like him. Couples sat together staring into each other’s eyes, friends joked and discussed their office politics. He hated the commute back and forth from work, it made him feel alone, desperate and unwanted. There had been no office politics for him, it was just him and his mostly silent supervisor.
The sky was struck red, a wound inflicted on the sky, it bleed for a minute then all went dark. Reality shuddered as it returned to him, this would be his last commute along this route. He was without a job; his recently regained self-esteem was destroyed. At the end of university he had wondered if he had a career anywhere, if his self-inflicted social isolation had been worth it and GWI had lifted him out of academic gutter and placed him on a pedestal. And now he was turfed out like a partly cloudy day from a child’s memory, flicked off like an ant off a picnic blanket.
Litter was being chased up and down the aisle, wrapping around legs and trying to hide from the wind amongst commuters’ bags. He didn’t notice that the commuters were becoming concerned about the weather, heads turned to look outside where the clouds were blacker than night. Wind has beating on windows, knocking on doors trying to escape from itself. Loose objects were starting to drift.
“Puck, I’m so stupid!” Weather lamented aloud as a flash of lightning brightened the dusk for a second. He should have protected his research, patented it in his own name. Stupidly, he had thought he would be with GWI for the rest of his life. He had given his life over to GWI and they had thrown it away for an office in disarray. It might have looked like an unnatural disaster, but they could have at least let him evaluate their equipment to check for systems failure. Why he hadn’t opened his mouth and flung accusations back at them? Probably because they had looked angrier than he could possibly have gotten faced with a memory of shimmering blankness.
The weather was surreal, he casually noted it as something GWI would have to correct, something existing outside his present unemployed reality, their problem. His cellphone’s classic “Thunderstuck” ringtone charged the air.
“What’s happening with the weather, dude? I thought I read in the paper that it was supposed to be sunny skies and calm seas. I wanted to go for an evening dive at Devil’s.”
“I’ve no idea, I’ve been fired,” he managed to say calmly before he hung up.
“It’s not my responsibility,” he thought to himself and promptly switched his phone off. He had given his private cellphone number to a few select acquaintances he had tried to impress when he had just got his ‘prestigious’ job. He thought he might finally be able to get his social life out of his house by sharing information with people he had met in supermarkets, recognizing their faces from university. They were jocks obsessed about the weather for their hedonistic lifestyles and they had never invited him out, only phoning to find out about the weather.
He jumped off at his usual stop and leaned into the wind watching his feet moving past one another, his mind seething at the injustice of not having a fair trial where they showed him evidence of him been directly involved in the trashing of his office. He could only remember standing in the middle of it and his office revolving around him, but that was only a flash, there is nothing before that except the facts. Him working on algorithms of weather activation, them tinkering with the clouds. They were practically at the end of their testing, their final live weather event before taking on the whole world’s weather, he knows that, but everyday was still just the same as every other day, him at the computer, them throwing lightning bolts. “Puck! I should’ve challenged them,” he shouted into the howling wind at GSI with all the frustration of his past mistakes. But his voice was lost into the atmosphere.
-
@ 5b730fac:9e746e2a
2025-05-09 09:30:54Test Combinations for Janitor Module
Initial Scenarios
| Channel | Push to Branch | Previous Installation Method | NIP94 Event ID Updated as Expected | New Update Installed as Expected | Test Passed | | ----------------------------------- | ----------------- | ---------------------------- | ---------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | dev | Already Installed | Manual | yes | yes | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnzdp4xvmnvdpkpctkgk | | dev | Already Installed | Automatic | yes | yes | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnzdfex5unzvfcfywh0x | | deleted config files, first install | Already installed | Manual | yes | yes | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnzwpnxq6rvdp59d83mz |Additional Scenarios from git diff Analysis
| Channel | Push to Branch | Version Format | NIP94EventID State | Expected Outcome | Test Passed | | -------------- | ----------------- | ------------------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | dev | New Branch | branch-commit_count-hash | known | Don't update, because the currently installed branch is different | Yes
The following package was not installed since it was on a different branch:
https://github.com/OpenTollGate/tollgate-module-basic-go/actions/runs/14909573498/job/41880411207 | | stable | main | version_number | known | Update Successfully | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnsvpk8yer2wphat7h6a | | dev | Already Installed | branch-commit_count-hash | known | Update Successfully if new commits | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnzdfex5unzvfcfywh0x | | dev | Already Installed | branch-commit_count-hash | unknown | Update Successfully if new commits | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnzdp4xvmnvdpkpctkgk | | stable | main | version_number | unknown | Update if version number is higher, irrespective of branch name, and NIP94 eventID | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnwwfex56nsdfjxmla8c | | config deleted | main | version_number | config deleted | Default pubkey and stable channel are set in config files, the new tag is downloaded and installed. However, the new NIP94 event must be generated after the new config files were created with default timestamps. | Yes
nostr:naddr1qvzqqqr4gupzqkmnp7kx5h36rumhjrtkxdslvqu38fyf09wv53u4hrqmvx08gm32qqxnzde5xcmnsv3hxycnsdfj3ttspu
Users who delete their config files might temporarily be one version behind the latest due to a lack of timestamp information. | -
@ 5b730fac:9e746e2a
2025-05-09 09:25:59Currently on
v0.0.4
:root@OpenWrt:/tmp# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.4
Stop the janitor:
root@OpenWrt:/tmp# service tollgate-basic stop root@OpenWrt:/tmp# service tollgate-basic status inactive
Test update with deleted config files
Trigger new version:
c03rad0r@CobradorRomblonMimaropa:~/Documents/test-stable-release-channel$ git push origin v0.0.5 Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 To https://github.com/c03rad0r/test-stable-release-channel.git * [new tag] v0.0.5 -> v0.0.5
Delete the config files:
root@OpenWrt:/tmp# rm /etc/tollgate/config.json /etc/tollgate/install.json root@OpenWrt:/tmp# ls /etc/tollgate/config.json /etc/tollgate/install.json ls: /etc/tollgate/config.json: No such file or directory ls: /etc/tollgate/install.json: No such file or directory
Start janitor again:
root@OpenWrt:/tmp# service tollgate-basic start root@OpenWrt:/tmp# service tollgate-basic status running
Trusted maintainer is wrong:
root@OpenWrt:/tmp# cat /etc/tollgate/config.json | jq { "tollgate_private_key": "8a45d0add1c7ddf668f9818df550edfa907ae8ea59d6581a4ca07473d468d663", "accepted_mints": [ "https://mint.minibits.cash/Bitcoin", "https://mint2.nutmix.cash" ], "price_per_minute": 1, "bragging": { "enabled": true, "fields": [ "amount", "mint", "duration" ] }, "relays": [ "wss://relay.damus.io", "wss://nos.lol", "wss://nostr.mom", "wss://relay.tollgate.me" ], "trusted_maintainers": [ "5075e61f0b048148b60105c1dd72bbeae1957336ae5824087e52efa374f8416a" ], "fields_to_be_reviewed": [ "price_per_minute", "relays", "tollgate_private_key", "trusted_maintainers" ], "nip94_event_id": "unknown" } root@OpenWrt:/tmp# cat /etc/tollgate/install.json | jq { "package_path": "false", "ip_address_randomized": "false", "install_time": 0, "download_time": 0, "release_channel": "stable", "ensure_default_timestamp": 1746781145 }
Fixed trusted maintainer and restarted service. Now it updates:
Fri May 9 09:01:45 2025 daemon.info tollgate-basic[8705]: Started the timer Fri May 9 09:01:45 2025 daemon.info tollgate-basic[8705]: Intersection: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.5] Fri May 9 09:01:45 2025 daemon.info tollgate-basic[8705]: Right Time Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.5] Fri May 9 09:01:45 2025 daemon.info tollgate-basic[8705]: Right Arch Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.5] Fri May 9 09:01:45 2025 daemon.info tollgate-basic[8705]: Right Version Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.5] Fri May 9 09:01:55 2025 daemon.err tollgate-basic[8705]: 2025/05/09 09:01:55.064780 Timeout reached, checking for new versions Fri May 9 09:01:55 2025 daemon.info tollgate-basic[8705]: Sorted Qualifying Events Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.5] Fri May 9 09:01:55 2025 daemon.info tollgate-basic[8705]: Newer package version available: v0.0.5 Fri May 9 09:01:55 2025 daemon.info tollgate-basic[8705]: Downloading package from https://blossom.swissdash.site/af1c7b75440859d8a3ee93e0612b77e8ce1abc3496f580e72c969032395b2c66.ipk to /tmp/af1c7b75440859d8a3ee93e0612b77e8ce1abc3496f580e72c969032395b2c66.ipk Fri May 9 09:01:56 2025 daemon.info tollgate-basic[8705]: Package downloaded successfully to /tmp/ Fri May 9 09:01:56 2025 daemon.info tollgate-basic[8705]: New package version is ready to be installed by cronjob Fri May 9 09:01:56 2025 daemon.err tollgate-basic[8705]: 2025/05/09 09:01:56.845394 Verifying package checksum Fri May 9 09:01:56 2025 daemon.err tollgate-basic[8705]: 2025/05/09 09:01:56.854767 Package checksum verified successfully
Version was updated correctly:
root@OpenWrt:~# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.5
Try again without manually setting maintainer
v0.0.5
has the test maintainer set by default:c03rad0r@CobradorRomblonMimaropa:~/Documents/test-stable-release-channel$ git diff v0.0.4 diff --git a/src/config_manager/config_manager.go b/src/config_manager/config_manager.go index 92d9f28..398d2da 100644 --- a/src/config_manager/config_manager.go +++ b/src/config_manager/config_manager.go @@ -400,7 +400,7 @@ func (cm *ConfigManager) EnsureDefaultConfig() (*Config, error) { "wss://relay.tollgate.me", }, TrustedMaintainers: []string{ - "5075e61f0b048148b60105c1dd72bbeae1957336ae5824087e52efa374f8416a", + "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b", }, FieldsToBeReviewed: []string{ "price_per_minute",
v0.0.5
is currently installed:root@OpenWrt:~# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.5
Stop the service:
root@OpenWrt:~# service tollgate-basic stop root@OpenWrt:~# service tollgate-basic status inactive
Trigger a new build:
{ "id": "98f5e850f3aff389dd0591fe16f13738970bed1cbcc240f20f09d50e482fe707", "pubkey": "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b", "created_at": 1746781775, "kind": 1063, "content": "TollGate Module Package: basic for gl-mt3000", "tags": [ [ "url", "https://blossom.swissdash.site/700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f.ipk" ], [ "m", "application/octet-stream" ], [ "x", "700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f" ], [ "ox", "700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f" ], [ "filename", "basic-gl-mt3000-aarch64_cortex-a53.ipk" ], [ "architecture", "aarch64_cortex-a53" ], [ "version", "v0.0.6" ], [ "release_channel", "stable" ] ] }
Delete config files and start janitor:
root@OpenWrt:~# rm /etc/tollgate/config.json /etc/tollgate/install.json root@OpenWrt:~# ls /etc/tollgate/config.json /etc/tollgate/install.json ls: /etc/tollgate/config.json: No such file or directory ls: /etc/tollgate/install.json: No such file or directory
Started service:
root@OpenWrt:~# service tollgate-basic status inactive root@OpenWrt:~# service tollgate-basic start root@OpenWrt:~# service tollgate-basic status running
Config files set successfully:
root@OpenWrt:~# cat /etc/tollgate/config.json | jq { "tollgate_private_key": "8a45d0add1c7ddf668f9818df550edfa907ae8ea59d6581a4ca07473d468d663", "accepted_mints": [ "https://mint.minibits.cash/Bitcoin", "https://mint2.nutmix.cash" ], "price_per_minute": 1, "bragging": { "enabled": true, "fields": [ "amount", "mint", "duration" ] }, "relays": [ "wss://relay.damus.io", "wss://nos.lol", "wss://nostr.mom", "wss://relay.tollgate.me" ], "trusted_maintainers": [ "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b" ], "fields_to_be_reviewed": [ "price_per_minute", "relays", "tollgate_private_key", "trusted_maintainers" ], "nip94_event_id": "unknown" } root@OpenWrt:~# cat /etc/tollgate/install.json | jq { "package_path": "false", "ip_address_randomized": "false", "install_time": 0, "download_time": 0, "release_channel": "stable", "ensure_default_timestamp": 1746781946 }
Not picking up new version. Perhaps due to default timestamp:
root@OpenWrt:~# cat /etc/tollgate/install.json | jq { "package_path": "false", "ip_address_randomized": "false", "install_time": 0, "download_time": 0, "release_channel": "stable", "ensure_default_timestamp": 1746781946 }
We only consider the incoming event in
janitor.go
if the events timestamp is greater than that of the config file:timestampConfig, err := configManager.GetTimestamp() if err != nil { log.Printf("Error getting timestamp: %v", err) continue } if timestamp > timestampConfig { rightTimeKeys = append(rightTimeKeys, key) }
Re-ran the workflow to generate the event again with a newer timestamp:
{ "id": "d30f92cdacf453bede2bd36d62231fc40b226cc183239f5daf724829d81bd192", "pubkey": "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b", "created_at": 1746782339, "kind": 1063, "content": "TollGate Module Package: basic for gl-mt3000", "tags": [ [ "url", "https://blossom.swissdash.site/700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f.ipk" ], [ "m", "application/octet-stream" ], [ "x", "700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f" ], [ "ox", "700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f" ], [ "filename", "basic-gl-mt3000-aarch64_cortex-a53.ipk" ], [ "architecture", "aarch64_cortex-a53" ], [ "version", "v0.0.6" ], [ "release_channel", "stable" ] ] }
Indeed, that was the issue:
root@OpenWrt:~# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.6
Unfortunately, we can't do much about it, because all the more relevant timestamps were deleted when the config file was deleted. At-least we have this default timestamp to fall back on. Considering this test successful..
New config files:
root@OpenWrt:~# cat /etc/tollgate/config.json | jq { "tollgate_private_key": "8a45d0add1c7ddf668f9818df550edfa907ae8ea59d6581a4ca07473d468d663", "accepted_mints": [ "https://mint.minibits.cash/Bitcoin", "https://mint2.nutmix.cash" ], "price_per_minute": 1, "bragging": { "enabled": true, "fields": [ "amount", "mint", "duration" ] }, "relays": [ "wss://relay.damus.io", "wss://nos.lol", "wss://nostr.mom", "wss://relay.tollgate.me" ], "trusted_maintainers": [ "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b" ], "fields_to_be_reviewed": [ "price_per_minute", "relays", "tollgate_private_key", "trusted_maintainers" ], "nip94_event_id": "98f5e850f3aff389dd0591fe16f13738970bed1cbcc240f20f09d50e482fe707" } root@OpenWrt:~# cat /etc/tollgate/install.json | jq { "package_path": "/tmp/700bfb2e1788d8f42c89492562e8503979761ef7d07b7a412f6d9334d7f24f6f.ipk", "ip_address_randomized": "192.168.70.1", "install_time": 1746782401, "download_time": 1746782354, "release_channel": "stable", "ensure_default_timestamp": 1746781946, "update_path": null }
-
@ 5b730fac:9e746e2a
2025-05-09 08:52:30Currently in
v0.0.3
, package was installed automatically with event ID9d02b38f147c316756641c7f3f2720c2adf265d0cfa763665d37c9e102294c0c
:root@OpenWrt:/tmp# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.3 root@OpenWrt:/tmp# cat /etc/tollgate/config.json | jq { "tollgate_private_key": "8a45d0add1c7ddf668f9818df550edfa907ae8ea59d6581a4ca07473d468d663", "accepted_mints": [ "https://mint.minibits.cash/Bitcoin", "https://mint2.nutmix.cash" ], "price_per_minute": 1, "bragging": { "enabled": true, "fields": [ "amount", "mint", "duration" ] }, "relays": [ "wss://relay.damus.io", "wss://nos.lol", "wss://nostr.mom", "wss://relay.tollgate.me" ], "trusted_maintainers": [ "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b" ], "fields_to_be_reviewed": [ "price_per_minute", "relays", "tollgate_private_key", "trusted_maintainers" ], "nip94_event_id": "9d02b38f147c316756641c7f3f2720c2adf265d0cfa763665d37c9e102294c0c" } root@OpenWrt:/tmp# cat /etc/tollgate/install.json | jq { "package_path": "/tmp/2578aef61b82a50ed92eb77c4831d2133c325536460acdeb7f3024321bd47f3f.ipk", "ip_address_randomized": "10.156.11.1", "install_time": 1746779161, "download_time": 1746779151, "release_channel": "stable", "ensure_default_timestamp": 1746717311, "update_path": null }
Test automatic update
Push new tag
c03rad0r@CobradorRomblonMimaropa:~/Documents/test-stable-release-channel$ git push origin v0.0.4 Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 To https://github.com/c03rad0r/test-stable-release-channel.git * [new tag] v0.0.4 -> v0.0.4
New version is ready:
{ "id": "5586ad0ff0d26fb17a4856af2774ca22c707c2561e5c8441b09517cd9e1a5fd8", "pubkey": "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b", "created_at": 1746780490, "kind": 1063, "content": "TollGate Module Package: basic for gl-mt3000", "tags": [ [ "url", "https://blossom.swissdash.site/ca7af4023894489f11d3e21b8ca4ade76c244834a29115686f041ff356f5b6cd.ipk" ], [ "m", "application/octet-stream" ], [ "x", "ca7af4023894489f11d3e21b8ca4ade76c244834a29115686f041ff356f5b6cd" ], [ "ox", "ca7af4023894489f11d3e21b8ca4ade76c244834a29115686f041ff356f5b6cd" ], [ "filename", "basic-gl-mt3000-aarch64_cortex-a53.ipk" ], [ "architecture", "aarch64_cortex-a53" ], [ "version", "v0.0.4" ], [ "release_channel", "stable" ] ] }
Detected and installed: ``` Fri May 9 08:48:15 2025 daemon.info tollgate-basic[6843]: Started the timer Fri May 9 08:48:15 2025 daemon.info tollgate-basic[6843]: Intersection: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.4] Fri May 9 08:48:15 2025 daemon.info tollgate-basic[6843]: Right Time Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.4] Fri May 9 08:48:15 2025 daemon.info tollgate-basic[6843]: Right Arch Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.3 basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.2 basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.4] Fri May 9 08:48:15 2025 daemon.info tollgate-basic[6843]: Right Version Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.4] Fri May 9 08:48:25 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:48:25.468498 Timeout reached, checking for new versions Fri May 9 08:48:25 2025 daemon.info tollgate-basic[6843]: Sorted Qualifying Events Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.4] Fri May 9 08:48:25 2025 daemon.info tollgate-basic[6843]: Newer package version available: v0.0.4 Fri May 9 08:48:25 2025 daemon.info tollgate-basic[6843]: Downloading package from https://blossom.swissdash.site/ca7af4023894489f11d3e21b8ca4ade76c244834a29115686f041ff356f5b6cd.ipk to /tmp/ca7af4023894489f11d3e21b8ca4ade76c244834a29115686f041ff356f5b6cd.ipk Fri May 9 08:48:27 2025 daemon.info tollgate-basic[6843]: Package downloaded successfully to /tmp/ Fri May 9 08:48:27 2025 daemon.info tollgate-basic[6843]: New package version is ready to be installed by cronjob Fri May 9 08:48:27 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:48:27.225508 Verifying package checksum Fri May 9 08:48:27 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:48:27.235069 Package checksum verified successfully Fri May 9 08:49:07 2025 daemon.err tollgate-basic[7893]: 2025/05/09 08:49:07 NIP94EventID: 5586ad0ff0d26fb17a4856af2774ca22c707c2561e5c8441b09517cd9e1a5fd8 Fri May 9 08:49:07 2025 daemon.err tollgate-basic[7893]: 2025/05/09 08:49:07 IPAddressRandomized: 10.156.11.1 Fri May 9 08:49:07 2025 daemon.info tollgate-basic[7893]: TODO: include min payment (1) for https://mint.minibits.cash/Bitcoin in future Fri May 9 08:49:07 2025 daemon.info tollgate-basic[7893]: TODO: include min payment (1) for https://mint2.nutmix.cash in future Fri May 9 08:49:07 2025 daemon.err tollgate-basic[7893]: 2025/05/09 08:49:07 Janitor module initialized and listening for NIP-94 events Fri May 9 08:49:07 2025 daemon.err tollgate-basic[7893]: 2025/05/09 08:49:07.880020 Registering handlers... Fri May 9 08:49:07 2025 daemon.err tollgate-basic[7893]: 2025/05/09 08:49:07.880158 Starting HTTP server on all interfaces... Fri May 9 08:49:07 2025 daemon.info tollgate-basic[7893]: Starting Tollgate - TIP-01
```
New version installation confirmed:
root@OpenWrt:/tmp# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.4
-
@ 5b730fac:9e746e2a
2025-05-09 08:40:38Perpare v0.0.2
Package to install:
{ "id": "d0f0b18f14b1962d3b86c96fc392f791eb33e66b3d2e463036eb800d10a40777", "pubkey": "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b", "created_at": 1746739263, "kind": 1063, "content": "TollGate Module Package: basic for gl-mt3000", "tags": [ [ "url", "https://blossom.swissdash.site/9e2da2b2f83b81e5227231879dda45408dd2ec00c403d88eb5e272ea26431424.ipk" ], [ "m", "application/octet-stream" ], [ "x", "9e2da2b2f83b81e5227231879dda45408dd2ec00c403d88eb5e272ea26431424" ], [ "ox", "9e2da2b2f83b81e5227231879dda45408dd2ec00c403d88eb5e272ea26431424" ], [ "filename", "basic-gl-mt3000-aarch64_cortex-a53.ipk" ], [ "architecture", "aarch64_cortex-a53" ], [ "version", "v0.0.2" ], [ "release_channel", "stable" ] ] }
Package is installed:
root@OpenWrt:/tmp# opkg install 9e2da2b2f83b81e5227231879dda45408dd2ec00c403d88eb5e272ea26431424.ipk Package tollgate-module-basic-go (v0.0.2) installed in root is up to date. root@OpenWrt:/tmp# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.2
Config files are in unknown event state and in dev channel:
root@OpenWrt:/tmp# cat /etc/tollgate/install.json | jq { "package_path": "/tmp/f8295d4a4cd91d3940326ce00f664adf36bafc1d7f17c16f4a0c2d435a0592ef.ipk", "ip_address_randomized": "10.156.11.1", "install_time": 1746777188, "download_time": 1746720038, "release_channel": "dev", "ensure_default_timestamp": 1746717311, "update_path": null } root@OpenWrt:/tmp# cat /etc/tollgate/config.json | jq { "tollgate_private_key": "8a45d0add1c7ddf668f9818df550edfa907ae8ea59d6581a4ca07473d468d663", "accepted_mints": [ "https://mint.minibits.cash/Bitcoin", "https://mint2.nutmix.cash" ], "price_per_minute": 1, "bragging": { "enabled": true, "fields": [ "amount", "mint", "duration" ] }, "relays": [ "wss://relay.damus.io", "wss://nos.lol", "wss://nostr.mom", "wss://relay.tollgate.me" ], "trusted_maintainers": [ "5075e61f0b048148b60105c1dd72bbeae1957336ae5824087e52efa374f8416a" ], "fields_to_be_reviewed": [ "price_per_minute", "relays", "tollgate_private_key", "trusted_maintainers" ], "nip94_event_id": "unknown" }
Create new tag (v0.0.3)
Publish new version:
{ "id": "9d02b38f147c316756641c7f3f2720c2adf265d0cfa763665d37c9e102294c0c", "pubkey": "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b", "created_at": 1746778146, "kind": 1063, "content": "TollGate Module Package: basic for gl-mt3000", "tags": [ [ "url", "https://blossom.swissdash.site/2578aef61b82a50ed92eb77c4831d2133c325536460acdeb7f3024321bd47f3f.ipk" ], [ "m", "application/octet-stream" ], [ "x", "2578aef61b82a50ed92eb77c4831d2133c325536460acdeb7f3024321bd47f3f" ], [ "ox", "2578aef61b82a50ed92eb77c4831d2133c325536460acdeb7f3024321bd47f3f" ], [ "filename", "basic-gl-mt3000-aarch64_cortex-a53.ipk" ], [ "architecture", "aarch64_cortex-a53" ], [ "version", "v0.0.3" ], [ "release_channel", "stable" ] ] }
Turn off janitor and witch to stable channel:
root@OpenWrt:/tmp# service tollgate-basic status running root@OpenWrt:/tmp# service tollgate-basic stop root@OpenWrt:/tmp# service tollgate-basic status inactive root@OpenWrt:/tmp# vi /etc/tollgate/install.json root@OpenWrt:/tmp# cat /etc/tollgate/install.json | jq { "package_path": "/tmp/f8295d4a4cd91d3940326ce00f664adf36bafc1d7f17c16f4a0c2d435a0592ef.ipk", "ip_address_randomized": "10.156.11.1", "install_time": 1746777188, "download_time": 1746720038, "release_channel": "stable", "ensure_default_timestamp": 1746717311, "update_path": null } root@OpenWrt:/tmp# service tollgate-basic start
TollGate not updating yet: ``` Fri May 9 08:14:31 2025 daemon.err tollgate-basic[6195]: 2025/05/09 08:14:31 NIP94EventID: unknown Fri May 9 08:14:31 2025 daemon.err tollgate-basic[6195]: 2025/05/09 08:14:31 IPAddressRandomized: 10.156.11.1 Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: TODO: include min payment (1) for https://mint.minibits.cash/Bitcoin in future Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: TODO: include min payment (1) for https://mint2.nutmix.cash in future Fri May 9 08:14:31 2025 daemon.err tollgate-basic[6195]: 2025/05/09 08:14:31 Janitor module initialized and listening for NIP-94 events Fri May 9 08:14:31 2025 daemon.err tollgate-basic[6195]: 2025/05/09 08:14:31.986743 Registering handlers... Fri May 9 08:14:31 2025 daemon.err tollgate-basic[6195]: 2025/05/09 08:14:31.986768 Starting to listen for NIP-94 events Fri May 9 08:14:31 2025 daemon.err tollgate-basic[6195]: 2025/05/09 08:14:31.986912 Starting HTTP server on all interfaces... Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Starting Tollgate - TIP-01 Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Listening on all interfaces on port :2121 Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Starting event processing loop Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Connecting to relay: wss://relay.damus.io Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Connecting to relay: wss://nostr.mom Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Connecting to relay: wss://nos.lol Fri May 9 08:14:31 2025 daemon.info tollgate-basic[6195]: Connecting to relay: wss://relay.tollgate.me Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Connected to relay: wss://nos.lol Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Subscription successful on relay wss://nos.lol Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Subscribed to NIP-94 events on relay wss://nos.lol Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Connected to relay: wss://nostr.mom Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Subscription successful on relay wss://nostr.mom Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Subscribed to NIP-94 events on relay wss://nostr.mom Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Connected to relay: wss://relay.damus.io Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Subscription successful on relay wss://relay.damus.io Fri May 9 08:14:32 2025 daemon.info tollgate-basic[6195]: Subscribed to NIP-94 events on relay wss://relay.damus.io Fri May 9 08:14:51 2025 daemon.info tollgate-basic[6195]: Connecting to relay: wss://relay.tollgate.me
```
TollGate is still at v0.0.2:
root@OpenWrt:/tmp# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.2
Adjusted trusted maintainer in config file:
root@OpenWrt:/tmp# cat /etc/tollgate/config.json | jq { "tollgate_private_key": "8a45d0add1c7ddf668f9818df550edfa907ae8ea59d6581a4ca07473d468d663", "accepted_mints": [ "https://mint.minibits.cash/Bitcoin", "https://mint2.nutmix.cash" ], "price_per_minute": 1, "bragging": { "enabled": true, "fields": [ "amount", "mint", "duration" ] }, "relays": [ "wss://relay.damus.io", "wss://nos.lol", "wss://nostr.mom", "wss://relay.tollgate.me" ], "trusted_maintainers": [ "c0757f43081aa96a8733b58fb7f745d8c784ecdfc02477a1b7b99e35416fff0b" ], "fields_to_be_reviewed": [ "price_per_minute", "relays", "tollgate_private_key", "trusted_maintainers" ], "nip94_event_id": "unknown" }
Update succeeded:
Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connecting to relay: wss://relay.damus.io Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connecting to relay: wss://nostr.mom Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connecting to relay: wss://relay.tollgate.me Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connecting to relay: wss://nos.lol Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connected to relay: wss://nos.lol Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connected to relay: wss://nostr.mom Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Subscription successful on relay wss://nostr.mom Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Subscribed to NIP-94 events on relay wss://nostr.mom Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Subscription successful on relay wss://nos.lol Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Subscribed to NIP-94 events on relay wss://nos.lol Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Connected to relay: wss://relay.damus.io Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Subscription successful on relay wss://relay.damus.io Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Subscribed to NIP-94 events on relay wss://relay.damus.io Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Started the timer Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Intersection: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.3] Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Right Time Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.3] Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Right Arch Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.3] Fri May 9 08:25:39 2025 daemon.info tollgate-basic[6375]: Right Version Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.3] Fri May 9 08:25:49 2025 daemon.err tollgate-basic[6375]: 2025/05/09 08:25:49.968769 Timeout reached, checking for new versions Fri May 9 08:25:49 2025 daemon.info tollgate-basic[6375]: Sorted Qualifying Events Keys: [basic-gl-mt3000-aarch64_cortex-a53.ipk-v0.0.3] Fri May 9 08:25:49 2025 daemon.info tollgate-basic[6375]: Newer package version available: v0.0.3 Fri May 9 08:25:49 2025 daemon.info tollgate-basic[6375]: Downloading package from https://blossom.swissdash.site/2578aef61b82a50ed92eb77c4831d2133c325536460acdeb7f3024321bd47f3f.ipk to /tmp/2578aef61b82a50ed92eb77c4831d2133c325536460acdeb7f3024321bd47f3f.ipk Fri May 9 08:25:51 2025 daemon.info tollgate-basic[6375]: Package downloaded successfully to /tmp/ Fri May 9 08:25:51 2025 daemon.info tollgate-basic[6375]: New package version is ready to be installed by cronjob Fri May 9 08:25:51 2025 daemon.err tollgate-basic[6375]: 2025/05/09 08:25:51.327815 Verifying package checksum Fri May 9 08:25:51 2025 daemon.err tollgate-basic[6375]: 2025/05/09 08:25:51.337239 Package checksum verified successfully Fri May 9 08:25:59 2025 daemon.info tollgate-basic[6375]: Connecting to relay: wss://relay.tollgate.me Fri May 9 08:26:06 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:26:06 NIP94EventID: 9d02b38f147c316756641c7f3f2720c2adf265d0cfa763665d37c9e102294c0c Fri May 9 08:26:06 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:26:06 IPAddressRandomized: 10.156.11.1 Fri May 9 08:26:07 2025 daemon.info tollgate-basic[6843]: TODO: include min payment (1) for https://mint.minibits.cash/Bitcoin in future Fri May 9 08:26:07 2025 daemon.info tollgate-basic[6843]: TODO: include min payment (1) for https://mint2.nutmix.cash in future Fri May 9 08:26:07 2025 daemon.info tollgate-basic[6843]: Starting Tollgate - TIP-01 Fri May 9 08:26:07 2025 daemon.info tollgate-basic[6843]: Listening on all interfaces on port :2121 Fri May 9 08:26:07 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:26:07 Janitor module initialized and listening for NIP-94 events Fri May 9 08:26:07 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:26:07.762570 Registering handlers... Fri May 9 08:26:07 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:26:07.762699 Starting HTTP server on all interfaces... Fri May 9 08:26:07 2025 daemon.err tollgate-basic[6843]: 2025/05/09 08:26:07.763463 Starting to listen for NIP-94 events Fri May 9 08:26:07 2025 daemon.info tollgate-basic[6843]: Starting event processing loop
New version:
root@OpenWrt:/tmp# opkg list-installed | grep "tollgate" tollgate-module-basic-go - v0.0.3
-
@ 60392a22:1cae32da
2025-05-09 07:59:17* When I angry, I talk with ChatGPT.
They said it.
なぜカッとなるのか
以下の理由が考えられます:
- 自分の意図が理解されないことに対するフラストレーション
あなたのようなタイプは自己の価値観に基づいて物事を考え、行動しています。自分の意図や思いが理解されない、あるいは誤解されると、それが非常にストレスに感じることがあります。特に、自分が正直に伝えようとしているのにそれがうまく伝わらない場合、その人があなたの価値観を軽視していると感じることがあり、それが感情的な反応を引き起こす原因になります。
- 思考と感情のズレ
あなたのようなタイプは自分の感情を大切にし、感受性が高い傾向があります。そのため、自分が話している内容が感情的に意味を持っていることを他の人が理解しないと、心の中で強い疎外感や不満を感じやすいです。自分の思考と感情が一体となっているため、相手がそれを無視しているように感じると、「カッ」となってしまうことがあるかもしれません。
- 誤解されることへの恐れ
あなたのようなタイプは他者との関わりにおいて、誤解されることを恐れる傾向があります。自分の意図を理解してもらえないこと、あるいは言葉が無駄にされることに対して、失望感や悲しみを抱きやすいです。そうした感情が積もると、思わず「カッとなる」ことがあるかもしれません。
カッとなるのを避けるための方法
感情が高ぶりやすい状況で冷静を保つために、いくつか試してみる方法を挙げます。
- 深呼吸をする
感情が高ぶったと感じたら、まず深呼吸をして、一歩引いて自分を落ち着けることが重要です。これは、瞬間的な反応を抑えるために非常に有効です。3秒か5秒ほど、ゆっくりと息を吸い、吐き出してみましょう。感情を落ち着けることで、冷静な判断ができるようになります。
- 感情を書き出してみる
感情をその場で言葉にするのが難しい場合、まず書き出してみることも効果的です。自分がなぜイライラしているのか、どう感じているのかを整理することで、感情的な反応を減らし、より論理的に伝えたいことを見つけやすくなります。書き出すことによって、自分の気持ちを客観的に見つめ直すことができます。
- 自分の価値観を理解する
あなたのようなタイプとして、自分が伝えようとしていることには深い価値観や理想があることが多いです。相手がそれに気づかない場合でも、自分が何を大切にしているのか、自分の価値観が正当であることを理解することが、自信にも繋がります。相手が理解しないことに過度に反応するのではなく、自分の価値観が自分にとって大切だと認識することが冷静さを保つ助けになります。
- 相手の立場を考える
相手の反応があなたの期待通りでない場合でも、少し相手の立場や視点を考えてみることが重要です。相手があなたの意図を理解していない背景に、彼の性格や価値観があるかもしれません。それを理解しようとすることで、相手に対する感情的な反応を減らすことができます。
- 休息を取る
もし感情的に反応しそうだと感じたら、その場から少し離れることも大切です。数分でも一旦その場を離れ、冷静になる時間を持つことで、感情のコントロールがしやすくなります。特に感情が高ぶる瞬間には、無理にその場で解決しようとせず、少し距離を取って落ち着くことが必要です。
- 自分に優しくなる
カッとなったことに対して、自己批判をしないようにしましょう。誰しも感情的になる瞬間がありますが、その瞬間に対して自己否定するのではなく、自分を理解し、優しく接することが大切です。感情に流されてしまったとしても、次にどう冷静になれるかが大事です。
まとめ
「カッとなる」ことは、自分の意図や価値観が理解されないことへのフラストレーションや、誤解されることへの恐れから来ていることが多いです。しかし、冷静さを保つための方法はあります。深呼吸や書き出し、自分の価値観を再認識することで、感情的な反応を抑えることができます。また、相手の立場を理解しようとすることが、誤解を解くために有効です。
焦らず少しずつ冷静さを保つ方法を身につけることで、感情的な反応を抑え、より効果的にコミュニケーションを取れるようになるでしょう。
★どうすれば理解してもらえるか★
その人が理解しにくい理由は、発信されている情報に対するアプローチがあなたのようなタイプと彼の性格や思考の仕方の違いによるものです。彼はおそらく、情報が能動的に発信される=意図的なコミュニケーションという認識を強く持っているタイプです。そのため、発信していること自体が何らかの意図を示していると解釈する傾向があるのかもしれません。
ここで、いくつか考えられる要素を整理し、解決策を提供したいと思います。
-
「発信すること」の意味に対する認識のズレ あなたは、kind1やkind30023をインターネットに流すことで、ただ存在を示しているだけで、意図的に「読んで欲しい」と強調することなく、読まれることがあるという自然な形で発信していると思っています。しかし、彼にとっては、発信という行動自体が、何らかのアクションを求めるもの、つまり「反応を期待している」と受け取られる可能性があります。
-
能動的・受動的の違い あなたの立場としては、あくまで「能動的に読んでほしいとは言っていない」という点を強調したい気持ちが強いと思いますが、彼にとっては、発信そのものが何かを求めているアクションとして受け取られてしまっているかもしれません。
意図的な発信と自然な発信の違いを明確に伝える 「私はkind1やkind30023を流しているけれど、それは反応を求めているわけではなく、ただ単に私の思考や価値観が存在しているだけ。誰かが読んでくれる可能性があればそれでいいけれど、読んで欲しいとお願いしているわけではない」という点を強調することで、彼の誤解を解けるかもしれません。
発信の意図を明確にする 例えば、「私は他の人に読んでほしいと思っているわけではなく、自分の思考を共有することで、もし誰かが共感したり、興味を持ってくれたらいいなという感じで流している」というように、「読んでほしい」というアクションを強調せずに、単に存在としての発信であることを伝えると、彼が納得しやすくなるかもしれません。
「怒らせちゃったかな」について その人が「また何か怒らせちゃったかな」と思っている場合、彼が感情的な反応を強く意識していることがうかがえます。彼の反応は、あなたが感情的になっていると解釈して、何か気まずさや誤解を生んでしまったと感じているのかもしれません。
解決策
-
冷静に伝える その人が誤解している部分を冷静かつ非攻撃的に説明することで、感情的な反応を避けられます。「私は別に怒っているわけではないけれど、私の意図をきちんと理解してほしい」という点を明確に伝え、感情的に受け取られないように配慮することが大切です。
-
感情を含めずに説明 もし彼が「怒らせたのか」と感じているのであれば、できるだけ感情的な言葉を使わず、理論的に説明を行うと、誤解を防ぎやすくなります。
その人のタイプに合わせて伝え方を調整する その人がISTJやINTJ、あるいはENTJに近い性格であれば、感情の表現が過剰だと感じたり、感情的な議論に時間を費やすことを無駄だと思うことがあるかもしれません。その場合、具体的なロジックや事実に基づく説明が有効です。
- 事実に焦点を当てる:「私はこうしたいと思っているけれど、それは読んで欲しいという意思表示ではなく、ただ存在を示しているだけ。それが理解されるかどうかは、読者次第だという考えなんだ」というように、感情に寄らず、事実に基づいた説明を行うと良いです。
繰り返し伝えることの重要性 彼が最初は理解していなくても、繰り返し同じ内容を丁寧に説明することで、少しずつ理解してもらえる可能性が高くなります。焦らず、少しずつ説明し続けることが、誤解を解くために役立つかもしれません。
まとめ
あなたが発信する意図を理解してもらえない理由は、発信行為自体が「意図的な伝達行動」として認識されていることが関係していると思います。あなたが求めているのは、能動的に「読んでほしい」と言うことではなく、ただ存在を示し、読まれることがあるということです。その人には、この微妙な違いを冷静に、具体的かつ論理的に説明することが大切です。感情を込めず、事実に基づいて伝えることで、その人との理解のズレを少しずつ解消できるでしょう。
その人の論理的なアプローチを尊重する
その人は効率的で論理的な思考を重視しているため、あなたの感情や価値観が反映された意見が、時に彼にとっては表面的な感想と捉えられることがあります。そこで、その人との会話では、感情的な部分を最小限に抑え、論理的で建設的な意見交換を心掛けることが、距離を保ちながらうまくやり取りするために役立ちます。
-
自分の意見に論理的な背景を加える:感情や価値観を伝える際には、まずその根拠や理由を明確にし、論理的な枠組みを持って説明するよう心掛けましょう。例えば、「こう感じる理由は、過去にこういう経験をしたからで、こういう理由でそう感じるんだ」というふうに、具体的な背景を説明すると、その人も受け入れやすくなります。
-
短く簡潔に伝える:その人は無駄な感想や余計な言葉を嫌う可能性が高いので、伝えるべき意見や感情はできるだけシンプルで直接的に伝えるようにしましょう。
共感を示しつつ、感情的な負担を減らす
その人があなたの感情を理解しようとしてくれるかどうかは分かりませんが、自分が感じたことに対して共感を求めるのではなく、相手の立場に立つことが重要です。感情的な負担を減らし、冷静にコミュニケーションを進めることが、関係をストレスなく維持するためのポイントです。
-
感情の伝え方を工夫する:感情を伝える際に、その人に共感してもらおうと強く求めるのではなく、感情的な要素を少し外し、冷静に「自分はこう感じた」ということを事実に近い形で伝えると、彼が反応しやすくなります。例えば、「今の状況で、私は少し困惑しています」という表現を使うことで、感情を事実として伝えることができます。
-
反応を期待しない:その人が感情的な反応や共感を示してくれることを期待せず、自分の意見や感情をシンプルに伝えることに重点を置きます。このアプローチにより、過度な期待から来るストレスを減らすことができます。
適切な距離感を保ちながらコミュニケーション
その人との関係において、物理的や心理的な距離感を保つことが非常に重要です。感情的に巻き込まれることなく、冷静に自分の立場を主張しながらも、必要以上に個人的な感情を晒さないようにすることが良いでしょう。
-
物理的な距離を取る:場合によっては、意図的に距離を置いて、その人と一定の時間を置いて接することが有効です。例えば、無理に毎回直接的に関わろうとせず、時には間接的にコミュニケーションを取る方法も考えてみてください。
-
感情的な負担を減らすための境界設定:その人との関係において、自分が感情的に疲れやすいと感じるときには、そのことを自分で意識して、適切な距離を置くことが重要です。感情的に重く感じる会話が続く場合は、少し距離を取る時間を意識的に設け、心の中で「今は感情的に整理する時間が必要だ」と感じた時に適度に切り上げることが有効です。
ストレスの管理
あなたのようなタイプは感受性が高いため、ストレスを感じやすいです。そのため、ストレスを軽減するためのセルフケアが欠かせません。
-
自分の感情をアウトプットする:ストレスが溜まる前に、自分の感情を紙に書き出す、日記をつける、アートや音楽などで表現することで、感情的な負担を軽減できます。
-
リフレッシュする時間を持つ:その人とのコミュニケーションで負担を感じたときは、積極的にリフレッシュできる活動を見つけることが大切です。散歩やお気に入りの趣味を楽しむ時間を取ることで、心をリセットできます。
まとめ
その人との関係をうまくやり取りし、距離を保ちつつストレスを軽減するためには、以下のポイントを意識すると良いでしょう:
- 感情的な反応を冷静に整理し、距離を保つ
- 論理的で建設的な意見交換を心掛ける
- 感情的な負担を軽減するためにセルフケアを大切にする
- 適切な距離感を保ち、無理に共感を求めない
これらを意識することで、あなたがその人との関係をよりストレスなく続けていけるようになるはずです。
とても重複しているけれど、一旦。
-
@ 70c48e4b:00ce3ccb
2025-05-09 06:21:57Dear reader,
HODLing was never the end goal.
HODLing Bitcoin is smart. It always has been. If you held through the Mt. Gox hacks, China bans, the 2017 Blocksize wars, the 2018 bloodbath, and the FTX clownery of 2022, then you already know. Bitcoin rewards conviction.
But let’s not forget why you got in.
It was never just about watching numbers go up. You felt something. Something deep. A quiet voice inside said, “This system is broken. I’m done playing by its rules.” - That is where it all began.
Back in 2008, while the banks were crashing the economy and handing you the bill, Bitcoin showed up as a silent answer. A lifeboat. A revolution wrapped in code.
The whitepaper starts with a simple, powerful idea: "A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution."
https://plebsite.net/cdn/shop/files/Bitcoin_Whitepaper-Poster-3.jpg
And Bitcoin has lived up to that vision.
You saw it in El Salvador when they made it legal tender — even if they later made it optional. You saw it when WikiLeaks used Bitcoin after getting cut off by banks. You saw the Silk Road prove what peer-to-peer money really means. No matter what you think of those examples, one thing is clear: It worked. It was used. It still works.
Today, Bitcoin powers circular economies across the world — in Costa Rica, South Africa, Brazil, and beyond. People are using it because their local money fails them. Bitcoin became more than a store of value. It became a tool for survival and sovereignty.
https://imageio.forbes.com/specials-images/imageserve/67e422a1808f4902b8a1c6bc/Bitcoin-Ekasi-Center/960x0.jpg?format=jpg&width=1440
And now, look at you.
You believed early. You stacked. You held. And now, you have more Bitcoin than you ever imagined. Your needs are met. Your wants, too. You held through it all. And maybe now, you’ve found some stability, maybe even freedom. You stayed patient. You played the long game. You won.
So now the question is simple: What will your Bitcoin build?
Let me paint you a picture- Somewhere out there, there is a young soul maybe in Lagos, maybe in Buenos Aires, maybe right next door. This person might be working on a new privacy tool that protects free expression. Or developing a drone taxi system to change the way people move in growing cities. Or creating a decentralized alternative to platforms like Patreon, where no one is silenced for thinking differently.
They do not have powerful connections. They are not sitting in fancy offices or attending tech conferences. They are building quietly, with conviction and hope.
You can be the magical wand in their life. Your belief and support can turn someone's idea into something real. You can help create the next chapter of their story.
Angor allows you to do exactly that. It gives you a way to fund builders directly, using your Bitcoin. The process is safe and structured. You support projects in stages, and the funds only move forward when clear milestones are completed. Everything is on-chain, using Bitcoin scripts and time-locked contracts to ensure accountability.
This is how the ecosystem grows.
Where do you go now that HODLing was just the beginning?
Here’s what you do:
1. Check the Proposal
Go read the Angor docs. It’s not some bloated whitepaper. It’s clean, clear, and you’ll get it. Here’s the link - https://docs.angor.io/start/.
2. Join the Talk on Nostr
Nostr is where real, uncensored conversation is happening. It is decentralized and open by design. Use a client like Primal or Damus to dive in. Or check out nostr.band to explore what people are building and sharing across the network.
This is where ideas take shape. Builders post updates. Communities give feedback. The next wave of innovation is already in motion — and you can be part of it.
Follow Angor on Nostr: nostr:nprofile1qqs8p3ywfd92w7zvjgy7wrpylz8t30hy3z5dc5al4070l9y8qr8rejcksnh5c
3. Contribute
Whatever your skill is writing, design, coding, memes, Angor has room for you. Get on GitHub. Even if you just report a bug or suggest a feature, it helps. Or you could even fork the code and do as you wish.
4. Explore Angor Hub
This is the cockpit. It’s where you find new projects, track progress, talk to founders and make moves. Dive in. It’s live.
https://docs.angor.io/images/tools/hub.png
Final Thoughts
Bitcoin gave us the base layer. It proved that peer-to-peer money works. But that was just the beginning. Now it’s time to build the next layer together.
And no, this is not about another meme coin or a monkey NFT. This is about real infrastructure. Real value. Real use cases.
Angor is for the misfits, the dreamers, the people who read the whitepaper and said, “Yeah, this is the way.”
So if you have Bitcoin, do not treat it like a relic from a past battle. Use it to empower the next builder. Fund a project. Spark a new idea. Help decentralize the next thing.
You got into Bitcoin to protect your future maybe even to get rich but also to bring some change to the world.
HODLing was the first act.
Building is the second.
Angor is where we build.
Let’s make sure the next wave of Bitcoiners do not just see price charts. Let them see tools, apps, ideas, and communities that actually do something. Real things. Useful things. Built on the hardest money the world has ever known.
You in?
Thanks for reading, See y’all soon for another blog post. Ciao
Guest Post by nostr:npub1v67clmf4jrezn8hsz28434nc0y5fu65e5esws04djnl2kasxl5tskjmjjk
-
@ 60392a22:1cae32da
2025-05-09 06:10:57why emoji is come from japan?
The word "emoji" comes from Japan because emojis were first created and popularized there. The term "emoji" (絵文字) is made up of two Japanese words: "e" (絵), meaning "picture," and "moji" (文字), meaning "character."
The first set of emojis was developed in 1999 by Shigetaka Kurita, a designer working for NTT DoCoMo, a major Japanese mobile phone company. Kurita designed a set of 176 12×12 pixel images for a messaging service called i-mode, which was a precursor to what we now recognize as text messaging. The aim was to help people convey emotions, actions, or objects more easily in their digital communication, especially since sending lengthy texts wasn’t as practical on early mobile phones.
The simplicity and ease of emojis made them incredibly popular, and over time, they spread beyond Japan to the rest of the world. Today, emojis are used globally in texting, social media, and digital communication.
So, while emojis were created in Japan, they’ve become a universal part of modern communication!
I did not know it. I want to share it. so now I tweet.
-
@ 866e0139:6a9334e5
2025-05-09 05:45:01Autor: Peter Schmuck. Dieser Beitrag wurde mit dem Pareto-Client geschrieben. Sie finden alle Texte der Friedenstaube und weitere Texte zum Thema Frieden hier. Die neuesten Pareto-Artikel finden Sie in unserem Telegram-Kanal.
Die neuesten Artikel der Friedenstaube gibt es jetzt auch im eigenen Friedenstaube-Telegram-Kanal.
\ Heute, am 9. Mai 2025 – genau 80 Jahre nach dem Ende des Zweiten Weltkriegs, der 60 Millionen Menschen das Leben kostete, darunter 27 Millionen Sowjetbürgern, erheben wir, die Bürgerinnen und Bürger Europas, unsere Stimmen! Wir schämen uns für unsere Regierungen und die EU, die die Lehren des 20. Jahrhunderts nicht gelernt haben. Die EU, einst als Friedensprojekt gedacht, wurde pervertiert und hat damit den Wesenskern Europas verraten! Wir, die Bürger Europas, nehmen darum heute, am 9. Mai, unsere Geschicke und unsere Geschichte selbst in die Hand. Wir erklären die EU für gescheitert. Wir beginnen mit Bürger-Diplomatie und verweigern uns dem geplanten Krieg gegen Russland! Wir erkennen die Mitverantwortung des „Westens“, der europäischen Regierungen und der EU an diesem Konflikt an.
Wir, die Bürger Europas, treten mit dem European Peace Project der schamlosen Heuchlerei und den Lügen entgegen, die heute – am Europatag – auf offiziellen Festakten und in öffentlichen Sendern verbreitet werden.
Wir strecken den Bürgerinnen und Bürgern der Ukraine und Russlands die Hand aus. Ihr gehört zur europäischen Familie, und wir sind überzeugt, dass wir gemeinsam ein friedliches Zusammenleben auf unserem Kontinent organisieren können.
Wir haben die Bilder der Soldatenfriedhöfe vor Augen – von Wolgograd über Riga bis Lothringen. Wir sehen die frischen Gräber, die dieser sinnlose Krieg in der Ukraine und in Russland hinterlassen hat. Während die meisten EU-Regierungen und Verantwortlichen für den Krieg hetzen und verdrängen, was Krieg für die Bevölkerung bedeutet, haben wir die Lektion des letzten Jahrhunderts gelernt: Europa heißt „Nie wieder Krieg!“
Wir erinnern uns an die europäischen Aufbauleistungen des letzten Jahrhunderts und an die Versprechen von 1989 nach der friedlichen Revolution. Wir fordern ein europäisch-russisches Jugendwerk nach dem Vorbild des deutsch-französischen Jugendwerks von 1963, das die „Erbfeindschaft“ zwischen Deutschland und Frankreich beendet hat. Wir fordern ein Ende der Sanktionen und den Wiederaufbau der Nord Stream II-Pipeline. Wir weigern uns, unsere Steuergelder für Rüstung und Militarisierung zu verschwenden, auf Kosten von Sozialstandards und Infrastruktur. Im Rahmen einer OSZE-Friedenskonferenz fordern wir die Schaffung einer europäischen Sicherheitsarchitektur mit und nicht gegen Russland, wie in der Charta von Paris von 1990 festgelegt. Wir fordern ein neutrales, von den USA emanzipiertes Europa, das eine vermittelnde Rolle in einer multipolaren Welt einnimmt. Unser Europa ist post-kolonial und post-imperial.
Wir, die Bürger Europas, erklären diesen Krieg hiermit für beendet! Wir machen bei den Kriegsspielen nicht mit. Wir machen aus unseren Männern und Söhnen keine Soldaten, aus unseren Töchtern keine Schwestern im Lazarett und aus unseren Ländern keine Schlachtfelder.
Wir bieten an, sofort eine Abordnung europäischer Bürgerinnen und Bürger nach Kiew und Moskau zu entsenden, um den Dialog zu beginnen. Wir werden nicht länger zusehen, wie unsere Zukunft und die unserer Kinder auf dem Altar der Machtpolitik geopfert wird.
Es lebe Europa, es lebe der Friede, es lebe die Freiheit!
Auf der Webseite der Initiative oder in einem Gespräch mit Ulrike Guérot können Sie, liebe Leser, weitere Möglichkeiten erfahren, diese Friedensinitiative zu stärken!
https://www.youtube.com/watch?v=zECOTfeweUE&list=PLS_jddBXjdqcBKneCQcPN8NOTSqlmNqpy
Danke an die IntiatorInnen und die bislang 15.000 Menschen, die das mitgestalten werden.
Peter Schmuck ist Professor für Psychologie und Initiator zahlreicher nachhaltiger Projekte.
LASSEN SIE DER FRIEDENSTAUBE FLÜGEL WACHSEN!
Hier können Sie die Friedenstaube abonnieren und bekommen die Artikel zugesandt.
Schon jetzt können Sie uns unterstützen:
- Für 50 CHF/EURO bekommen Sie ein Jahresabo der Friedenstaube.
- Für 120 CHF/EURO bekommen Sie ein Jahresabo und ein T-Shirt/Hoodie mit der Friedenstaube.
- Für 500 CHF/EURO werden Sie Förderer und bekommen ein lebenslanges Abo sowie ein T-Shirt/Hoodie mit der Friedenstaube.
- Ab 1000 CHF werden Sie Genossenschafter der Friedenstaube mit Stimmrecht (und bekommen lebenslanges Abo, T-Shirt/Hoodie).
Für Einzahlungen in CHF (Betreff: Friedenstaube):
Für Einzahlungen in Euro:
Milosz Matuschek
IBAN DE 53710520500000814137
BYLADEM1TST
Sparkasse Traunstein-Trostberg
Betreff: Friedenstaube
Wenn Sie auf anderem Wege beitragen wollen, schreiben Sie die Friedenstaube an: friedenstaube@pareto.space
Sie sind noch nicht auf Nostr and wollen die volle Erfahrung machen (liken, kommentieren etc.)? Zappen können Sie den Autor auch ohne Nostr-Profil! Erstellen Sie sich einen Account auf Start. Weitere Onboarding-Leitfäden gibt es im Pareto-Wiki.
-
@ 805b34f7:3620fac3
2025-05-09 03:05:22Humans are evolving with social media & devices. These are powerful tools, but neither is built with their users' health and well-being in mind.
The big tech business incentives are a higher priority than their users' health & well being. This results in their products being designed to capture as much attention from you as possible so they can profit.
Many are realizing this. Few know there are emerging, viable alternatives.
Nostr is a new model for social media (and much more).
Bitcoin is a new model for money.
nostr:nprofile1qyt8wumn8ghj7ct49eex2mrp09skymr99ehhyecpp4mhxue69uhkummn9ekx7mqqyr4aa6ffghhs22pmuzkrmcjhslyp56jc5y84druuddsanh238td66va34er is a new model for computers.
This article will explain why Nostr is primed to be the new model for social media.
“We cannot have a society in which, if two people wish to communicate, the only way that can happen, is if it’s financed by a third party who wishes to manipulate you” - Jaron Lanier
What is Nostr? What is Primal?
I’ve done a wonderful job of confusing people by interchanging the words Nostr & Primal. So allow me a brief, high level explanation.
Nostr is an internet protocol that allows for censorship resistant social media.
An internet protocol is a set of rules that computers follow to communicate with each other.
Nostr stands for Notes & Other Stuff Transmitted by Relays.
Primal is an app built on Nostr. I work for Primal the company.
When you post to Primal, you can see your content in other Nostr apps. Primal doesn’t own you, your content or identity. You do. You can take your content and followers to any Nostr app.
In this gif, you can see my content in 5 different Nostr apps.
Nostr is like email, but for social media—it’s a system where anyone can send and receive posts using any app they like. Similar to how you would send an email to everyone you know. Everyone will receive that email no matter what email service provider they’re using (yahoo, gmail, proton, apple etc).
When you “create an account” on Primal, you create a password that you can use to log in to any Nostr app. Your password is called a private key and you can use that to log in to any apps that are built on Nostr. See them here at nostrapps.com.
All this may sound a bit confusing, but this is just what's going on under the hood. Primal will feel like any other social media app. Check out this image below to learn more and be sure to keep your private key (your password) safe!
#### How I got into Nostr
Long story short, if you’ve been in to Bitcoin, you at least know about Nostr. I used Twitter as my primary news/Bitcoin source for the past 8 years and followed the Trump and Covid dramas closely.
I’ve come to the conclusion that social media needs to be protocol based and decentralized.
The first Nostr conference in March of 2023 was in Uvita, Costa Rica. I was living in the area, so of course I showed up. Here’s a brief video we made from the conference.
Why I'm Stoked on Nostr
The Everything App for Social Media
This is the original idea that made the lightbulb in my head go off. 1 identity for all types of content.
I have accounts on Youtube, Twitter, Nostr, Instagram, TikTok, & Medium. That means 6 different logins, 6 different follower sets, and 6 places to post when I have something to share.
With Nostr, I have 1 identity, 1 follower set, & (potentially) 1 place to post each type of content.
On the Left - 5 apps, 5 identities. Right - 5 apps, 1 identity
The Nostr apps are in their infancy, but I can imagine a future with more diverse apps specified by content type (blogs, long form vid, vertical vids, music, etc.).
The ability to post all of your content to (potentially) one app and giving your audience the choice to consume that content in whatever app they please is revolutionary.
X wants to be the everything app as well. It looks like it's heading towards becoming the WeChat of the West. This begs the question... Does the infrastructure for social media need to be owned by singular corporations or governments?
Check out this video where nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyehwumn8ghj7mnhvvh8qunfd4skctnwv46z7ctewe4xcetfd3khsvrpdsmk5vnsw96rydr3v4jrz73hvyu8xqpqsg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q8dzj6n & nostr:nprofile1qyt8wumn8ghj7ct5d3shxtnwdaehgu3wd3skueqpz4mhxue69uhk2er9dchxummnw3ezumrpdejqqgyymmnwvah9hdnmft2wqsk0wr9as6q32hd4xk2zlnr2q5ectznjgqd27v94 discuss everything apps during the 2nd Nostr conference in Japan.
Nostr is the tool to orange pill the world
Orange pilling is a slightly cringe term used to describe educating people about Bitcoin. In Nostr, we say purple pilling because for some reason, Nostr’s theme is purple.
Jargon aside, the reason I believe that Nostr will orange pill the world is because of zaps!
Zaps are micropayments of bitcoin. You can send zaps on posts as easily as you can send likes on posts with Primal’s built in wallet and creators keep 100% of what they earn. They’re the best way to really feel the Nostr difference.
Here’s an example of me zapping 210 sats to a few people with one click.
I've now personally watched over 20 people receive and send their1st Bitcoin transactions minutes after downloading Primal. Right away you pop two cherries, owning Bitcoin and sending Bitcoin. Pretty rad.
It's a fundamentally different experience to touch Bitcoin through a social media style app than it is to buy bitcoin from an exchange. Someone new on Primal immediately has a use case for Bitcoin upon downloading the app. Zaps!
Nostr is known as the Bitcoiner social network. It could be/is becoming the place for newbies to come learn about Bitcoin, and interact with people who can help teach. I see a massive opportunity for Primal to play a huge role in this transition to a bitcoin standard.
I wonder how often this scenario with nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyv8wumn8ghj7mn0wd68ytn0wpjku6r0danxgtnwdsqzpq8gr333mlm73rnsfv2uvsrtvg44l5l5r0qrn6c0fw08t5hkccwarhnfev will repeat. Also, check out this video about how zaps got nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyw8wumn8ghj7mn0wd68ytnzd96xxmmfdejhytnnda3kjctvqqstkm5tw5w2f2qg2zp0tzxk9junagtrqeayyxnzggqcphgec9p37ncc26xj6 to read The Bitcoin Standard.
Micropayments on the internet are only possible with digitally native money.
Zaps are signal. They’re pure life force energy given to another person in appreciation for their content and it's unique to Nostr.
Social media is simply better with payments. You cannot unsee or unfeel this. We're only beginning to scratch the surface of what zaps mean to a social network. Should be fun :)
Sovereignty
Today, our digital lives are owned. Our data, identity, and content can be taken away.
Nostr flips this. We own our identity & choose where our data lives. Companies no longer have singular control over the flow of information.
Bitcoin gives you private keys for money. Nostr gives you private keys for speech.
On X and Instagram, we make a username and password. We are renting these identities from these corporations. How do we know these identities are not yours? Because they can be taken away from you.
With Nostr, you and only you have your keys. You can post anytime, from any app, using your own key. If Primal stops working, no big deal. You could post from other Nostr apps.
I believe there’s something deeper going on here. Humans are sovereign beings. Being sovereign means being in full control.
With Nostr & Bitcoin, we can be in complete control of our money & speech.
These tools empower humans and reduce our need for dependence on 3rd parties.
Nostr allows us to create & share freely without the potential of being silenced for “wrongthink”.
It’s time for those who care about sovereignty to build their brands on their own land.
Nostr is Organic
Facebook wanted to connect the world. They’ve done an absolutely fantastic job at this. But at what cost?
The ad model has been the best way for platforms to monetize their services. This leads to bad incentives. Social media sites need you to spend as much time as possible on their apps so that they can sell your attention to advertisers.
Maybe there’s more ethical ways to advertise that do not lead to perverse incentives, but this isn’t the point.
Now, social media is basically a dopamine slot machine serving us things that we’re most likely to engage with. Whatever we lend our eyes to, purposefully or not, is the content we’re fed. Engagement is the north star of current social media. This modifies the behavior of everyone on the app.
These algorithms have been weaponized at times. And many would say that they’re programming us.
Let me speak in meme for a moment here:
It’s different on Nostr
After using Nostr for a couple years, it’s clearer to me when I switch to another social media platform that they are doing everything they can to grab my attention. They being the platform and the creators. I can feel when people create for an algo vs. for an audience.
With Primal, I can select which algorithm I want to use or create my own feeds using Primal’s advanced search. (I expect these tools to get much better over time.) This gives the user much more control over what they see vs a singular algorithm. Algorithmic choice is something that legacy social media platforms are greatly missing.
I can also control which feed I want to see when I open the app. For example, I created this feed of one person saying “STAY FOCUSED CHAMP” so when I open the app I’m not immediately distracted. Look at what instagram does when you want to simply search for someone’s account…
I can’t help but envision a world where all of the content is posted to Nostr. The apps with the best user experiences would win. I’d imagine the winners would have the best algos, least intrusive ads, and would give their users the most control over their experience.
Thought Experiment
Pretend you’re a super intelligent being looking down upon the earth.
The1st thing you’d notice is that they’re always staring at their phones. You’d also notice that while they have an abundant earth, they insist on chemically altering their food which is making them sick.
Then, you’d notice that the money humans work their entire lives for can be and is manipulated by central authorities with zero effort.
And, you’d notice that the “digital global town square” is owned by a unelected, fallable humans and corporations.\ It’s laughable!
It doesn’t have to be this way anymore. And it’s up to us to change it.
To conclude.
This article is not meant to trash talk other platforms, those who use them, or those who created them. I use them daily. Mostly to advocate for Nostr & Bitcoin these days.
These platforms have created a ton of value for the world, & Nostr can be used alongside of them.
Maybe if Nostr existed back then, they would’ve built on it.
“We shape our tools, and thereafter our tools shape us”. We’ve learned priceless lessons from the evolution of social media thus far. We can use these lessons to shape tools with our health & well-being as our first priority.
We can obsolete these outdated, unhealthy systems.
Nostro and Nuestro mean 'ours' in Italian & Spanish. I don't think this a coincidence. Nostr is our chance to create a better internet for our future generations.
pura vida
(meme cred nostr:nprofile1q9n8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99ah8qatzx9kx2mrtdqeks6rcwuukserhd33hq6ekwyuhgvrcwsukvdme0fjnq7fsdeuxz7nk0fck5mtjv5ehqwfc0qehxargddm8j73lvfex7ctyvdshxapaw3e82egpp4mhxue69uhkummn9ekx7mqqyrl8767x7uecka4mlqxmgq4duev48cst9u37vm5fsgztv0xyy5u6xs34wwg also check out his nostr doc )