mixt

This is a #pherephone “Announce” activity from a writefreely post. It works on mastodon but not on pleroma. I cannot understand why this is. Can any helpful #pleroma or #ActivityPub experts give a hint?

boosts appreciated

POST request to https://pleroma.site/users/qwazix/inbox succeeded (200): 200 OK 
Response: "ok" 
Request: {
        "@context": [
                "https://www.w3.org/ns/activitystreams"
        ],
        "actor": "https://floorb.qwazix.com/myAwesomeList5",
        "cc": [
                "https://pleroma.site/users/qwazix",
                "https://cybre.space/users/qwazix",
                "https://fosstodon.org/users/qwazix"
        ],
        "id": "https://floorb.qwazix.com/myAwesomeList5/item/ULeVhJOsBTqWN22v",
        "object": "https://mixt.qwazix.com/api/posts/mncqqz3y7u",
        "published": "2019-10-14T12:13:43+03:00",
        "to": "https://www.w3.org/ns/activitystreams#Public",
        "type": "Announce"
} 
Headers: 
    Accept: application/activity+json; charset=utf-8
    Accept-Charset: utf-8
    Content-Type: application/activity+json; charset=utf-8
    Date: Mon, 14 Oct 2019 09:13:44 GMT
    Digest: SHA-256=Cl3iznjWvGXEFev5OP6ChwvVtY/Xtaw43ahnhXh4d4A=
    Host: pleroma.site
    Signature: keyId="https://floorb.qwazix.com/myAwesomeList5#main-key",algorithm="rsa-sha256",headers="(request-target) date host digest",signature="fnPHBAqWCIr3EpbwllBwFxhKJ03c23+evwPfX+Bcf/CEenQ/ZgTCViK5Gs0fW8qjzGuSCkYpFKFt7rmEiuXg7T4RkUy2LWq+kfTq8t/jWeS2LUCxNXRAgyJfhH2kioYefKqx6gl414js0qdFk6I0WWvtXpGuKIuiF/WK9FPx7WpJFJfN1WZ2kEdi87F0gRIAjllaGST15ZMx0mFkLVks2Vdff6saPR+V83muGClfzh78AN2XR4fnYve9m5Wm4/U6Q8n503CE/yfBb5bZSmfJZXZSlErT6L224b8LWKC7Q+IHe17k+aFibl/dNAknjmQwm/xFOdNzVHwGWXyhSrchGw=="
    User-Agent: pherephone 0.99

EDIT: I also tried after reversing the cc and to fields just as pleroma does.

/home/qwazix/go/src/github.com/writeas/activityserve/actor.go:502: POST request to https://iscute.moe/users/qwazix/inbox succeeded (200): 200 OK 
Response: "ok" 
Request: {
        "@context": [
                "https://www.w3.org/ns/activitystreams"
        ],
        "actor": "https://floorb.qwazix.com/myAwesomeList5",
        "cc": "https://www.w3.org/ns/activitystreams#Public",
        "id": "https://floorb.qwazix.com/myAwesomeList5/item/EUyTQEnz1gJK3qu3",
        "object": "https://fosstodon.org/users/qwazix/statuses/102966679309503735",
        "published": "2019-10-15T16:40:40+03:00",
        "to": [
                "https://floorb.qwazix.com/myAwesomeList5/followers",
                "https://cybre.space/users/qwazix",
                "https://fosstodon.org/users/qwazix",
                "https://iscute.moe/users/qwazix",
                "https://pleroma.site/users/qwazix"
        ],
        "type": "Announce"
} 
Headers: Accept: application/activity+json; charset=utf-8
Accept-Charset: utf-8
Content-Type: application/activity+json; charset=utf-8
Date: Tue, 15 Oct 2019 13:40:41 GMT
Digest: SHA-256=U30KWCsixidktfC/JToZSCX9HXoysMNrTqLPPzf62LI=
Host: iscute.moe
Signature: keyId="https://floorb.qwazix.com/myAwesomeList5#main-key",algorithm="rsa-sha256",headers="(request-target) date host digest",signature="DONBUM3O3s/YU/B4F9pWPWgFx1P7ZruJbuTrDVYIdY6m2EpVI7yihy157o3aUoC37acKuoo9F+F0sbOHyt3B3lwe+3eWHq0WbVDfoeIdOIFGVo2s9BxK748RHSSVU0lnLsIOQ/A3B3rRkkLlJ1zc3kdfHzfaNzQPUQJ9SL72x55sgzIthIY+vSAbS/IHbup5XomenkHynsj33F9RCYPqXajPRMUXPx0ljFcfRyQGX7/opipDQ4V2ANzjLHwosnHvKss+DQK9e2ZBbq3PaKYUwmKWdwDCQfzEok+hz6xTGzCnw8K7yICu2c1YNU0PD+q5rCATWhNuA3vPeme1iTcZ5A=="
User-Agent: pherephone 0.99

The thing that bothers me the most is that I get an “ok” response and a 200 but the post never appears in the interface.

testing #pherephone

test post #pherephone

At #APConf, the second day was called the unconference.

unconf-board

Everybody could add his subject to the board and we rearranged the post-its so that most of us could attend everything that sounded interesting.

I didn't have anything to present nor I had very strong feelings about which sessions I was going to participate in so I stayed a bit to the back of the crowd. Talking with @matt@writing.exchange I floated the following idea:

“What if there was a simple node-based interface, like blender or scratch, where the building blocks are the ActivityPub activities and types, and a user would be able, with minimal or no code, to create a simple social network?”

The idea sprang when I realized how small UI differences and allowed interaction paths help make mastodon and twitter, two otherwise very similar networks have such different culture: what if we could rapidly test such interaction and UI differences without having to develop a social network from scratch? Dragging and dropping stuff on a digital canvas should be enough to create a rudimentary social framework.

This application would also help wannabe #ActivityPub developers start from something that works and build upon that, shifting the development effort from spraying activities until one of them is accepted to trying not to break anything, which is much less frustrating.

The idea to caught on and soon after we had moved to the terrace and five of us were discussing this possibility.

The discussion went well and we soon had some rough notes on how this would work.

Each of the building blocks will include a minimal web component tailored to the type of item such as a textarea for a note or article, an image upload component for an image and so on.

By the way, when I presented pherephone @cjd@mastodon.social proposed a kind of bot that just boosts whatever item it's being mentioned in. Let's see how we would go about to create this social service.

At first we'd have to create the actor that has the endpoints we require. This actor doesn't like or follow anyone so it just requires an inbox, an outbox, and a followers list.

Here's how we would configure the actor in AAAG.

social graph

Endpoints can be added to the actor by dragging and dropping from the available endpoints on the left. Each connection can be edited by choosing from the options on the right.

This here is an actor that provides a blacklist of some spammer accounts, and auto-accepts follows by other actors.

When we finish editing the external relationships of our actor, we can double-click on it so we can inspect its inner workings. The interface changes to something like this.

actor mechanics

When an activity reaches our inbox we pass it through several conditional blocks and depending whether the answer is yes or no it follows the respective path, until its object reaches (or not) the outbox, wrapped in an Announce activity.

Another, more fine-grained but more complicated approach to the same thing would be the following graph.

actor mechanics, but operating on properties

In this graph we operate on activity properties instead of whole activities, but this breaks chaining so it requires gates if you need to express more complicated relationships.

UI design

There is a possibility to devise a system where AAAG will concoct a basic UI from the relationships described in the previous two screens, however it is probably more useful and flexible if we include a UI designer in the project.

This designer might look like this

ui

In this interface, we can drag and drop UI elements into a browser window and assign nodes to them. For example, a list can be assigned a “followers” node, a “likes” node, an outbox and so on.

Takeaway

I don't know whether this is something I would ever find the time to pursue but I wanted to get the idea out there and see if anybody would be interested in creating something like this. I'd also like feedback on how this would be made easier for the uninitiated and ways that the social graph design page can incorporate more than one actor in meaningful ways so that it can represent different relationships and interactions between actors on the fediverse.

test

This is a #pherephone test

No, not from me. I don't have a new blog, account, or anything. However this will (hopefully) be the first #writefreely post boosted by #pherephone, an ActivityPub repeater.

If you're interested and you'll be at #ActivityPubConf in a few days, I'll be there to tell you all about it.

There's still work to do, but for now, the big achievement was unlocked.

Στη γιορτή της σχολής χορού, φυσικά είχα πάει με τη φωτογραφική μηχανή ανά χείρας. Σε κάποια φάση εκεί που παρακολουθώ και φωτογραφίζω με πλησιάζει μια κοπέλα: “Είσαι ο φωτογράφος της σχολής;” “Όχι, είμαι μαθητής εδώ” της λέω. “Η φωτογραφία είναι το χόμπυ μου”.

“Αλήθεια;” “Ναι, κάνω Pole” Κάνοντας μισό βήμα πίσω με επεξεργάζεται από την κορφή ως τα νύχια, χωρίς καμία προσπάθεια να το κρύψει. “Μα δεν φαίνεσαι καθόλου σαν...” παύση, “το άλλο φύλο”. “Δεν είναι απαραίτητο...” κρύβω ένα μειδίαμα “Να φαίνεσαι;” “Να είσαι” “Δεν είσαι;” “Όχι”

Προσπάθησε να τα μπαλώσει. Προσπάθησα να μη σκάσω στα γέλια.

Femme in bikini doing a floor dance move. Dancing pole in foreground.

#poledancing #smallstories #μικρέςΙστορίες

He was never there. And yet he was always watching. I am not even sure he is one man. Sometimes he would be proud of me. Others someone to be afraid of.

He was the monster under the bed and god himself. As she prepared breakfast she would cry and sometimes I'd be sure I heard his name among the sobs. Other times she'd stare at me with that weird look and say to him, even though he wasn't there: “I was right. I did good. Fuck you. Fuck you.” and then she'd tell me “What are you looking at? Eat your cereal” and then she go on talking to him “Bastard, fuck you, fuck you!”

I tried to say those two words once. She got angry and took my ruler with the little houses and the yellow dog and waved it in the air and she told me he'd come and be very angry and take me away. And then she'd sit there, her head in her hands, her hands tangled in shiny black hair, her hair hiding her face, a face full of tears.

I think he is that tall mister I saw after school that day I finished early. He held her waist in his arms and her bright red lips pressed into his. I didn't dare ask. He might have taken me away if he knew I knew. I kept it a secret. But I do have a drawing of them hidden well, I will not tell you where though. I don't trust you. You might be him.

If you are him please don't come take me away. I love her. I know you might be listening the other day I was crying. I didn't mean what I said. And she said “sorry”. Don't you know you should forgive when someone is sorry? She is sorry, and I think she's telling the truth and I don't hurt anymore when I press my finger on here, see? The blue is gone too.

Also if you are him please stop making her scream at night. I'm scared. I hide under my sheets and I don't dare go save her. If you are not, please, come and save her...

Goodnight now. I have to hide this and go to sleep. I think he is in the closet, watching me.

She was sitting on a ledge, at the side of the road. Two young'uns were standing near her.

“I don't want to talk to you, you look sick, and dirty”, she said and a wrinkled hand wiped the ash off the flowers on her lapel. The ash dropped and stained the off-white garment of her trousers.

“You look sick and dirty old lady”, the dark-haired young man replied, promptly. “You look sick and dirty, sitting here in the dark, all alone, smoking”.

“I'm not sick and dirty...” she protested. She paused ever so slightly. “I'm a lady”. Even as I was already far past them, her voice stayed, resonating in the charged atmosphere.

#borrowed #smallstories