%CXac0yY0iJ5uf0nbIBN4AS6S6UmhK3WlrcqaYS/xFzg=.sha256
%/AfExBHOmd+dIxpugZBEUrETxhJjlDiyx/ltbKGRaMk=.sha256
%/tpIM+c9NOsi2285Om+SABKuYJ6hm1jnzM9mEVz47lA=.sha256
I knew you were a freeze peach activist
%zIT8H2x0J0C7dpxOFDPXyr9L3N+MVvDIApsx1vUWKUY=.sha256
I've been thinking about this a lot lately! Site creation should be accessible to non-devs! And it also shouldn't be a chore to developers. Themes and widgets can be fun to make, but they take too much time. How can we make the browser be an output multiplier?
I've been poking at a themes concept and I think it's starting to work. https://twitter.com/pfrazee/status/1158112442632871936. It's a somewhat natural tool to introduce for site creation... Beaker borders on being Wordpress or Gatsby, shouldn't there be a theming system? So that's where I'm iterating right now.
I think the p2p web is about accessible creation. How can entire web applications be convenient for end-users to create? It's important to non-devs so they're empowered; it's important to devs so they can work on real things instead of the same stuff repeatdly; and it's important to decentralization because it moves us away from big cloud deployments that handle everything.
%cPOx0g7U0koIik4XORZR4U0flNgmM4zgpmtLuDPuFo0=.sha256
Hey really sorry to hear that ranger, goes out to you
%TLh/tyUpJ+2WAmM4R0KwrcT3JFbAaQzb3vszXUgsLA8=.sha256
Just the standard pain points around multi-device and collaboration. I figure WYSIWYG and GUI-based construction are a long-term goal that we hit when we're trying to expand the audience.
%htsYvsPiuPnqo9FPU+TsZ7KaPOUi70RIecYmzO+aSBc=.sha256
%1l1gUlNFB0Hau38lSF+TEVyLZ53V0UscoYFMcSAXGSQ=.sha256
Been iterating a lot on ease-of-authoring lately (https://twitter.com/pfrazee/status/1155221334106017792). On top of convenient editor tooling, I'm really interested in composing the UI so that people can get a lot out of value from very little work.
One of the simplest tools for that could be a "theme" setting which injects css and js onto the page, grease-monkey style. You author unstyled html/markdown, pick a theme for your site or page, and you're set: the browser imports css & js from the theme dat. With web-components declaring new HTML tags, you'll even be able to get widgets imported from the themes. <paulstheme-recent-blogposts>, that sort of thing.
%vZEvSBwkcQWEF9ukLSITvjZQHHsa9q3cL+k4b8YIfQg=.sha256
%NmLB9nDvvZ6gcDLCZFhL03VkqIOPUIf4a193jLid+d0=.sha256
%2d1O1UDX0jlN44rnXuo+ITon8kz+Bx0LNjJlX0XNsvY=.sha256
%mnVneuj+/RqFiltYUabWs19nIv8enoRpXzJ4x1p8zJ0=.sha256
Sure --
I felt it was a real chance to build meaningful connections. The daytimes were familiar for dweb summits - lots of interesting sessions and talks and discussions. The camp fires at night were a cheerful setting for getting to know people. Having everybody in one space for the full weekend meant there were a lot more random chances for conversations, and usually those were my favorite; stuff like walking to & from my tent with Ben and DC while talking about mission, or an hour where I sat in the registration tent with Ross Schulman and the Archive interns and joked about total nonsense. I felt like I came away with new friendships, which is not something you get to say very often.
%S4tKBC6pJF3+lSbymv+rBNRu9gO5kQG7JpfluNdUKu8=.sha256
Sure thing, happy to
%IBezKnRAW8LP796HACiZO0PjSYBcrlZ1DirWi4GC0EQ=.sha256
%EuFsbKtTnbux3hxuxtn1AhIl0DcgaXT1Sok3PYkTRI8=.sha256
Tell us something unexpected that was awesome! Just how much fun it was.
Did you drink tea? What was the flavour? Coffee!!
Are you new to SSB, how do you find it so far? So is it about butts that scuttle? Or is it about the butts of scuttlers?
Did you discover some new project there that excited you? Tell us more! I think holochain is really interesting and it was great to hear more about it.
What made you laugh? laughed a lot with @zelf :upside_down_face: playing ultimate rock-paper-scissors was a total blast and very funny
How were the chilly summer evenings on the tents? I brought extra blankets, the worst part was I couldnt wear the blanket through the day (soooo chilly)
Was it your first time camping? Did you like it? First time since my family had the camping trip from hell when I was 12. But that's another story.
%XLdkUljOvZdxYlPZTSg27PDHZlfWsYJn5jWOw3opmgI=.sha256
<3
%UqIRwkTm0AUwGLTlCiAGFcEKDzbz+P+moOmE0GPkZ20=.sha256
%SlQy0mRbeaUiYTdn5gV5nKPPIF8a0vFF6pWBrBPRQiM=.sha256
%jiQF65bNRZzSxINTdiE8Z55nAqsa2aNJJnJWc06Z/pQ=.sha256
%kuGxOhbgQ20HdkNjsuaUYcE+JX1MQ4/WR1EVKt29Exg=.sha256
%R5sKBRtV/kLvcY+MwqbykjaR7TuJMcdEY9/I+GGe7CU=.sha256
%6pcJvvhmc+J66Bf55QKItzOlX0oWsPX/E8H/23V3tco=.sha256
%U2Cg6B45UxN66RXNsNErfOtfU0DkJ7ObgZd4MyQTJQc=.sha256
I will!!! I think we're going to just need to start our own dweb gala, cowboy hats and boots mandatory (bc it'll be in texas yall)
%K0FsUu3CyiwLJ4g70tFzwj9a+5KGFvUF6Qfo+dj/ySs=.sha256
%9kLrtMu4uRDYy3COV79qzt/I9qH34yKaCLdzYRJrZFE=.sha256
%ih3hvceKjTzTcarJHJZL8i45A8UvJFRsxChez/J5G6Q=.sha256
%Qhjt5Yd33wL7znRr5wfNUqXnH6R9+tMHY9wMvJc8r8o=.sha256
%N7Y3+vhuZfnVtiJdIOyLWkxgX8RNSzWgwzZqN5ls5ro=.sha256
%2RA1pLWWStQ+RKev6bvtAM5I2ToxOXeGP0HtmFZ09oI=.sha256
%/hdPZ9wVl4c4yewEwx8W05ni45+WdQ/0GHSL0hFHNtU=.sha256
%7qJW1SdbD3JmtPb5Wxjdip+RWckP2qTrSN/QKWkrh14=.sha256
%/qISGFnYhRbVQVZ3Ur6Oq66D+5g1R4m0eklXdcXOEPo=.sha256
%/2b9MqXnVJObThsdNAf8EzriCKp2zmDpmbexTdk+Cmc=.sha256
{ "type": "about", "about": "@hxGxqPrplLjRG2vtjQL87abX4QKqeLgCwQpS730nNwE=.ed25519", "publicWebHosting": true }
%dLbgdrbEwKZf188LFqubXVGbsSJqcum8t4OodSkPi+Y=.sha256
%XHmwsuCKmHKC7/tqzNukikNqn0M9wEFb/JcthAsxT1c=.sha256
%LUVqAFC8/N/aKZGUMhHCzjlLMcSOJtmppT/S9X+8Pp0=.sha256
%6fa/1DQwsdQui1AH7t8R4v5L3sohQadqcYL+t9+9HIo=.sha256
%moGO8umHIFxPL1qkvKiBhnjsRNC9MDnE2BVo0sVUB94=.sha256
%RuwLZHbzMnWFpVpjTxjoITNxgaAbYGXeaZA9i69ljzk=.sha256
%ZRWPBRM/4DBUHqi/pi9mzALUspjX1mhCNs6OjOM8gGM=.sha256
Heyy it was awesome to see everybody at dweb camp
%TLSvZCu4SHic8DjgthQ+TDN4UMtq/0syibyJxi7SQhM=.sha256
Looks like it's going to be a Rush night
%owgKnBi/0KoZrhNvDqX7s2fQZArDcH6K+xXIxmhztIg=.sha256
%LmzxPEUlpT9xts+DbN9WCCeUC5i9yk48vgGITvoVLm4=.sha256
%h0mKTM6aY4QyyQJWVX+kBSrsnxyBA75EyaH8oX4IsJE=.sha256
%tpibqP/+akAnNDOmFqXj06lOAsnA3JFMbzeaJh6NVBU=.sha256
%dMoNrEpyXt0tbm2Gl9espE4N6DtKZtwmM/piWufXV9U=.sha256
Yeah we need to steal that in the dat world. Maybe apps can hook into the swarming system
%BN6oxrSiUMshWrJkSDeK/8oMO17J1CQDJC74rFCRQg0=.sha256
Oh neat! Wish I could be there. I hope it goes great! Is there a tweet I can boost?
%SitBRXs2+fPXiiL1Ltifb4wGb6x9d25ZS0vVskSdfdA=.sha256
%qPcy6SL+otUfQrlXEWWTkfG85ChrIDjvekvPMOvhf74=.sha256
%Z5mKZf0u0ot++eYapBEQHVYLPD0WGbTQyTobBHCIc7w=.sha256
%PRdDQpTl8fxK5Ahn/8XcFXKUX1J8o28qOMK5OUNph5A=.sha256
%4xjTZgSiOr3IxDgcADC8217zlsmBkakaJN+tay+fmmM=.sha256
%QxuxhG5wxpk1WVwqFLmqFfKXhOZc2I60h2uI0uHaFII=.sha256
%TK02iseX/it1r8De38jJrS2j7uZOFWhUmmWmSm9MUc4=.sha256
%/hgNJsIlWG6AjbzQor8GjILlpvgbYEDdpzzDCi7NBpo=.sha256
%NHqLLdd9shddDjUSCTQXBT8qeWBQCck4ZP2pZdcNUps=.sha256
%7l0RKAIj3FGgYv70h0FVFSqlnik6PSkxsdBQ2kdsYGs=.sha256
Hey all I'm back into the buttz
Not much to share atm. I'm working on some beaker specs and I recently wrote an article titled why bother with p2p when you still need to guarantee uptime.
%uv9cD5EL9elMkiM6MkAJpbOSPSXMaINLeG401vUZGXo=.sha256
IPFS's "nested URL" scheme was also a problem.
Beaker will get better.
%OafNI+TI8sZPZ9a2ogzVg0NIEYHhpzgLQR4pTtOHs60=.sha256
%W8YsGmQGmiRDDX37B4q8pu8e2eyFWqRYXxNOyET9MnM=.sha256
%6fd7CKEuZPK0gwLC2oZwabmFtfOH0reP+275kNZ0tvQ=.sha256
%RuKS7TA974EhBK6sqxUfcHJ1QTHL6WAoA24RqFf/t+M=.sha256
Hey wow these docs are amazing! https://ssbc.github.io/scuttlebutt-protocol-guide/index.html Nice nice work, really impressed. Congrats to everyone involved. Tara and I are inspired for our own docs work coming up.
I love the hermies variation icon in the header too
%qeeOpa29Tn+LNL/x5jTI4JldzOXz8swcR5s85GpK8CQ=.sha256
@nanomonkey you could do that in jsonlz. Youd just name the schema the hash. Or you could put it as an added attribute on the vocab object ("hash"
perhaps)
%1qhXu6RRm4TMnSYQ77v2kw2nc7Ber/7ccT7uRGqXI6I=.sha256
Yeah, I think when it comes to identifying schemas, the only universally reliable technique is to use duck-typing. That's your baseline. However if you can get apps to agree on some metadata schemas to self-describe, then you get a slightly simpler process. That's one of the things that JSON-LD does, but I don't think it's very ergonomic for JS devs, so now I'm trying this alternative JSON-LZ. (SSB does this with the type field too but I think layering on JSON-LZ could be helpful and would work well.)
For your usecase, it'd help to have all of those teams agree on a metadata to identify schemas, but if not you'll need to munge off of duck typing.
The one other thing I'm trying to do, other than making munging simpler and have a nicer metadata schema than JSON-LD, is create a tool for identifying when lack of full support would create errors. https://github.com/pfrazee/json-lz/blob/master/DESIGN.md#well-defined-fallback-behaviors
%d5URnkHDQxDqLwFDmJ5EXwpJwJ9SzQpFgRagGreSKj8=.sha256
%Rc8jhcxGS9mbviFi2OuCJNF575wFUo1zINEttpUKubw=.sha256
@bobhaugen Here's what I've got on the design question right now: https://github.com/pfrazee/json-lz/blob/master/DESIGN.md. The project I'm trying (that repo) may not work out but we'll see, WIP.
%588UVx/fEyTBkwVbn7ITS3fea+jN/C6+AlcQWvaH7P4=.sha256
Still working on the "handling schemas from multiple sources" question. I found a really superb article about how to approach this question, and I'm using it for inspiration: Don't Make Me Think (About Linked Data)
%cA2Nomfy1fwY3iJ4Nrhu6IPDJZCniFptANXUDzLbwHI=.sha256
%QxHTa41x2P6sM0HZqQJ25DsnHzDvtTBrxw3JUVJpQ/0=.sha256
When God wants to punish you he makes you listen to yourself in a podcast
%tITuNyxmM2UkmyIcIkET7TSBVvsVPPBExvumUfKi550=.sha256
%98Evf7zjkWjunD/2TzhmER32kdIllXYaxpVNsyngPTw=.sha256
I appreciate it @Chris ! Tara does too. I'm really excited to get into the docs again. I think we can make things even clearer than before.
%79oJUCYBBl+PQOqr59y2nfqBoEITSsZfowac4uC0+AM=.sha256
%xZOlDIn3fEl2YPeogKfxV988PiXA8vCw3MTL/QcMGXU=.sha256
%fmQGRXjQCCtIXoeLeBy4zOKnQu3yzx3Y+LsIvLB1ik0=.sha256
Bad day for the crypto currency markets
%JXyDhNyBJ7IripATt0pCPdpiK3Bk3a/hwfnZAvEN0nU=.sha256
%++Z0asCTfcp9o8OcTwg5mAWYUKYcLt9+3J6kuh3EMY8=.sha256
%XwdqSTLLRk2Oci8/+1OKg8/i4sx+WnolDeV0+Mc61sI=.sha256
@andrestaltz we're in agreement. My goal is to make development more fun and to only create solutions that devs are excited to use. This is my last post on that issue.
%0FrdQSrmISZCo8OVDaK29I0ykYkgEKfGXjLoUX1j884=.sha256
%iAne//2u+Pbn34KV41PYAp1/LjXm7Ww3N/CvBtjNR1Y=.sha256
%Av2nf02j2zU08wdQWSIDZlZ/uqoXH7UZoYXee8dzPMg=.sha256
%UYGg3wr4p3sxg9QdutRxCXoRFmmbrgu7BaPGynTxPZM=.sha256
%UBEo1cKIg0t5tv2a2amfNhxB4gip7gETrI0n/G9m2t8=.sha256
Actually it's not like schema features are apps. It's like they're APIs. A schema is like the API to a function call that happens when another app reads the file. (It's a very async call.)
Schema design is API design?
%EFzdmMU3sLF1HSdcuN9SWuBtWKB0+N7JoLaXRZ4MifA=.sha256
%0tq2VSjBVGN/f5ZTWfLzLPpw4QpyjonUKIqjOh4cILw=.sha256
%I8ZEkpNPeXNkQRBLXaID5lRByiwG9rHp4k4mz3wIH6c=.sha256
%VGFyxorcDIzR/y1vYu7ScrzZtWO4cbJFN8GeazCDNeQ=.sha256
Awesome @Chris glad you had a good experience. We're hacking on 0.8 now and really excited to keep improving the DX and capabilities.
%9u7HDvY8LSd4cBQw7bayEEmNG8IspKzqItleln56xt8=.sha256
%GLqW0EWb4RviO6kTnwcths6S27QsnFwSnZB77yuRzVU=.sha256
%FR8Y2dJshPyU/KUMVvAZwaQ6xQje3jEg4k0dSZ8lamc=.sha256
It's been interesting to revisit this! Everybody's making great observations.
Here are some my current takeaways:
- Fallback behavior. The most fallest backest is to show json. Showing nothing can cause chaos but not everybody wants to see json, so that's a tradeoff. Perhaps it's worth exploring some conventional fields for what to show when nothing works.
- Developer ergonomics. The DX is more important than "doing it right." Devs are going to do what they want. You can't force them to use something (like JSON-LD) so at best you can make sure the tools are good enough that they want to use it, and then make sure you tolerate chaos. (Robustness principle, also Worse is Better)
- No universals. Most of these decisions will end up being app-specific, and dominated by the apps in use.
- ...but Schema features are "app." I'm still thinking about a "requires feature" field, which devs could use to tell another client, "if you dont support this extension Im adding, please go to one of the fallback behaviors." Right now we have somebody in Rotonde trying to implement private-group posts, and they can't get Fritter not to show those posts on the feed. That's a similar problem to what we had in Patchwork when we rolled out channels. Rotonde needs a way to tell Fritter, "if you dont know what groups are, just dont render this please." And it'd be interesting for that to be configurable -- "please use the 'raw json' fallback if you dont support this."
So at this point, I'm talking to the ActivityStreams crowd (Mastadon and W3C Social WG) and theyre very hyped about their vocab and the potential for a compatible p2p world, so I'm trying to evaluate that.
I would be happy to change my tune, but I'd like to see an app where the killer feature is the schemas.
@dominic that's definitely the question here. Will these vocabs make devs happy (oh look at all the cool types I can use) or annoyed (how do I use this, ugh it doesnt do what I need). Tough call.
%7YkVCRk+//hm71n/+DlYBb2SJcB4dQVFHFL5y0ymfyI=.sha256
%Z5tWqmnuVEJMZFjSar+h+ykhNtAr1LAeNd/6We3jb6k=.sha256
%eLN3iXlMNth07lkCE0CsLDIdYS3hWfrZKQq/RF6j7NM=.sha256
%E6BFsFZ8TJJW/6JT6embQCZhPN48Y3P1vBY7hX51Q4o=.sha256
%p4c15CdsILTYLY9zJSR4AqcP8aQNiiKugMOTmVJPJhg=.sha256
%Rr+xe48VvPL3kN8QbkckpZTW1ugBmzQp+KbspY0gjFY=.sha256
%sJAuGcPoBNC8csG8/aI+nbV6xer26tTa9+QrPZFi2+g=.sha256
%UEXjWNFlNT9Wd6W+SUbo+DBTkX7Gy5yk/8L6SO9yr9M=.sha256
%z1nVPFfd4WOfqRwpfyVupwCEOiVi8xaHej1s9qUpiiA=.sha256
%M/Z18lQVDlbFuxZeW4mtm3DGmceaDmDKJbQq+YeFGKg=.sha256
Consensus is a funny thing here because it's variable. There's definitely some minimum of agreement required for apps to interoperate, but that minimum depends on each app, and that's where the discussion gets complex. If we're going to enable decentralized development, we have to support experiments and extensions, and create predictable results for everybody involved. It's tough, maybe impossible to do perfectly, but that's where my idea of declaring dependencies of feature-support within the schema is rooted (the requires
attribute). When you imagine JSON records as documents, then you can see a parallel to HTML pages and how they sometimes do feature-detection ... so there's kind-of/sort-of precedent.
JSON-LD (JLD) is a solution about specificity more than agreement -- how can we make sure our attributes don't collide? In a way that makes it super amenable to non-consensus, because it's enabling everybody to do their own thing safely.
My problem with JLD is usability. I haven't seen any JLD APIs that make me go "ah yes that's easy to work with" much less one that makes me say "ah yes that's fun!" And I only want to use fun APIs. If we can solve that, and we can also make publishing namespace documents fun, then I'm on board.
@reconbot content-addressable is an interesting idea but it's very ugly in the code
@andrestaltz that's such a tough call. I like being able to see the JSON but I think if devs could reliably predict, and therefore choose from, approaches that would cause their message to hide if not supported, they could make good enough decisions that a hidden message wouldn't be disasterous. In practice, I think devs will go out of their way to avoid totally hidden messages -- and will rely on generic attributes to make sure something can be rendered.
%lrzsUS9/u/LCll6+OlB0Fv3IK3VTnY+5na+ihV5zUak=.sha256
Yeah! Thankfully Tara and I are working full time.
We are looking for funding, and we definitely want folks to build apps, but only if they feel compelled to. It's still pretty hard work because we haven't put together really superb guides.
Our long term sustainability plan is to (eventually) scale up hashbase and also sell home servers with a hashbase stack bundled. Hashbase is self-deployable so we'd be selling convenient deployments for folks.
(For those who dont know, Hashbase is similar to SSB's pubs. It's a dat rehosting service that gives you reliable uptime and -- someday -- more disk space for backups, and perhaps more. https://hashbase.io)
%ZPSDF802FcJtmgisOJVjqxVhW8LGPrTeoGmMg0iGk2I=.sha256
%tMMt1T8VmJ8wdpkOttAc0PFM1RRBWWNslM1BCiRDB5c=.sha256
%3BORHYiJ5cMq+K3anXycnYGADOLI35ljeT9KGEMyWm0=.sha256
%eI1IGY0T+BEGfG2KOt3x4yohQWEXXMBLtimJ/MC487U=.sha256
How is the SSB world handling message-schema compatibility these days? How, for instance, would an app add a new feature to the post messages like channels (if it didnt already exist)?
We've begun to discuss this for the Fritter/Rotonde world. We've got a couple JSON-LD/ActivityPub stakeholders this time around, to make things interesting. https://github.com/beakerbrowser/beaker/issues/820
%+luOtmWtjbTx/h3Vm1hfU1lR2rUpeaili5f4VCd1YXw=.sha256
Heya @mix!
Lots of different priorities on the roadmap:
- Release Beaker 0.8. This should fix some usability that we feel the current release has. It's taken us a while to release for a couple reasons I'll explain below.
- Develope the applications stack. More on this below too.
- Revamp our docs so that hackers can figure everything out more quickly.
- Keep developing demo applications so that we can test the application stack. This is what Fritter is about. A few folks are using it and we don't know what the endgame is, but the main purpose is help us move the stack forward.
- Increment Hashbase's features a bit. Hashbase isn't our top priority, but two things we want to nail are custom domains and encouraging people to self-deploy.
- Brave Dat plugin.
- Switch Beaker from Electron to Muon to improve our sandboxing & security.
- Dat improvements. Improve the reliability of the Dat protocol (we've started work on integration tests) and roll out multi-writer support.
We spent the last 6 months figuring out what Beaker 0.8 should do. We kicked around a lot of ideas. At least 2 months went toward prototyping dead-ends but that taught us a lot about how to build apps on Dat. What we're releasing won't be a big surprise, but it'll hopefully be a much more refined experience than 0.7 is.
Our strategy is to make Beaker & Dat really enjoyable for hackers. We think a big opportunity is that Beaker/Dat can support 100% open-source Web apps with no devops. Eventually we want it so you can sit down at an app, open up the code, and just start hacking on it. We're looking at new approaches to Web security (like JS is disabled by default) and wondering whether more strict rules are actually liberating because we don't have to operate from the lowest common denominator of trust. And, we're beginning to look at compositional tools, including userland plugins, automatic loading of "viewer apps" when you visit Dat sites with no HTML, and ways to share user-profile Dats between apps in order to share datasets.
WebDB was a pretty solid step forward for the app stack. The internal fritter API, which should look a little familiar to SSB folk(!), was built on WebDB. Basically, WebDB is an indexer that uses indexeddb, so each app is currently building and syncing its own indexes. Works well for flexibility, but it's not very efficient with user's disk space. It'll do for now! Our next step for the stack is to make sure we wring as much value as possible out of Dat and the "pull only" architecture. Simultaneously, I've been exploring hosted crypto contracts (can we get trustless services without PoW?) and also reading up on federated systems like SOLID and ActivityPub.
So, that's about it.
%qKLzy4DmZMSRVj3/+1RhcM5RmuRw1yNG9Z5uWGXeDzE=.sha256
%ETp8FRGq/BG6jItbMS3yRxYwcLprqCnAywpKfqztrwI=.sha256
%GFDx/8k98yCkdtmgPAb+0kD4M786ZZnagU3EMj+aWXE=.sha256
So does that caveat just mean it does not define how it affects the state of the server's backend file system?
Correct. The spec tells server-developers about various aspects of PUT. In general, PUT should be idempotent. -- ...
Oh geez, I just realized I said "idempotency of GET" in that blogpost, but that's not right. GET isn't idempotent, it's uneffectful. PUT is idempotent. Oh boy that makes me look silly. I'll need to fix that. Back to the conversation.
... -- PUT should be idempotent, but the spec doesn't say whether the resource should be republished "as given" at the target URL, which is what a filesystem would do. Many services accept the content of the PUT and then affect a variety of changes to the service state, and that doesn't need to include republishing the content of the PUT at the target URL.
So is SOLID refining PUT?
They're creating specs for generic server behaviors.
SOLID's API is specced here: https://github.com/solid/solid-spec/blob/master/api-rest.md#creating-content. It's the same basic premise as WebDAV, a spec for server behaviors, just less ugly (hopefully) than WebDAV.
%JzjbDQ5I0QH53E5hFM85zhRdSsqGjoeHRAK5b3G5+tU=.sha256
%erQs5CvRwvKcvBQ1b0btALerMKdqi7ruqdo6/Yi3PjM=.sha256
@bobhaugen The semantics of PUTs are fairly well-scoped but they fall short of being universally defined. Here's the rub:
HTTP/1.1 does not define how a PUT method affects the state of an origin server.
To give the universal "dumb storage" behavior, the PUT would need to be guaranteed to put the file to the given location. There were attempts to get that, eg with WebDAV as Joey says, but it didn't pan out.
It relates to Dat because Dat is a universal dumb Web filesystem like I want. Coincidentally, SOLID is doing that too, using HTTPS.
%47NrzBqc3RaWFxLY+soIR8+v6lQAkqUhs4B84bbiXlc=.sha256
Whew I updated Patchwork and it's working again I had a period where things werent loading.
%Qe5eq6ZtO0UcIHQwVJj2HdjZ2HzzMRsRmjdari2U5RA=.sha256
%VHWr4Ls0LxEvuLQdu1nHEXObwMnID3RsDVZgZvUJhGk=.sha256
%0RxFmE4t/qxebI0dV9e9wh9Hhtswa75hVZ3r4bDcNzo=.sha256
%mjWjybF7D+i9jgFNCpppS6ZdSd+mcvaPnQ+6Bz2423M=.sha256
I would be interested to see whether alternative, domain-specific rendering engines could create better performance. I'm also curious what would happen with webasm + webgl renderers, but I'm pretty sure that's still going to be slow because both use untrusted code execution, so there's overhead of the protection mechanisms. I doubt you'll do faster than native HTML engines with untrusted code. Would love to be wrong.
We're trying an alternative web app model in Beaker with Dat (gif and related spec) and it's both more secure than the Web service model, and more user-friendly, since it shares the same character of SSB of putting all source on the user machine. I don't think it takes that much to save the Web, I think most of the ideas are already captured by the SSB world. Performance can be better, but the core toolset is a promiscuous application platform, and that's pretty good. Some p2p tech will fix her right up.
%0WS66vBhhe9lmruLt3S4l1pYK+HGj1UF3b9SqQpLsNs=.sha256
%8iCGoL3WMlQOMaClPNQ+vt3nTuwtDd81KAKreTscSeQ=.sha256
Just one observation to add: I have a theory that we can move ads from individual pieces of content to entire content channels, and that might make a difference for the mindset and the kind of content created.
%6dQeECi6kjuiY+2mOy8v+nAhSF6NBxbbZAYVyC8SyOI=.sha256
%g0Pj7R9M5FW4YDVQEP53ZAG9l6nQtifKuO2fqmRFezo=.sha256
I wrote a little more on twitter and threw in some crypto currency burns https://twitter.com/pfrazee/status/911654842162192384
%PKTj8RWoLcKI5iYJxhZDGR1EMdFRcVY1me8lx353t2Y=.sha256
pray for me folks.
(1 like = 1 pray)
%xWQhZfppdUccbMRgDHIBHJlhy60tgloAAiHzmnXMvFw=.sha256
%kM0tRKSgtzTUrAWD2pXybK2zwx5MgKi+0wYVfvwOkVo=.sha256
%GHo8pm8XHxbUdfd5SMd3+kZSlrnA1l311XV711PvmR4=.sha256
%+2fH3XgdYwiClMBOUEiNzomP7B7TgrKCwwOH+EmUiU0=.sha256
@joshuavial one thing we tried really early on in Patchwork was user-created ads. We literally had ad-space that people you follow could fill. And then you saw who put the ad there. I put it in as a half-joke and took it out later, but now I kind of think it's a fun idea -- especially if end-users can opt out of individual ads, or mute people, or opt out of the ad space altogether. You could call it "Flyers" and use it both for paid placements or event just to tell your friends about something (like a party coming up)
%ISUOZS8A8pcnXpIjiMahZjY4h2g31f23LIgNDIAmM7Q=.sha256
%HhGPLSHVnwd86MERDCUaOZlHXcMnxoGYoFtIqNKOniw=.sha256
%tToLSoOM23DtABif3sC+WG1lDGR0HU734CITx/eAFf4=.sha256
@mix I agree, I think quality matters a whole lot. I have a natural aversion to the word "ad" because of what it's historically meant. We might need a new word. One version I am comfortable with is sponsorships / backers.
%ozpXjxfjNBFvcqeKh2kjctQ3k99VIWsM3M/ruOsVck4=.sha256
%AxbrkQNLZ7WU2S3yF0R2ghJspt+kMWUcCDatBOIuTFs=.sha256
%89x6TIOCBLwNxrOtpOzWVRieqKS8eZoK5d9/Xz2pcOg=.sha256
%YcIIq5wB1YfekRg9gSw64US9yPEihFsC4kbmzLrigw0=.sha256
Ok I've got another thought about software & content econ and it involves blaming Google and Facebook so it should be fun.
Google and Facebook are aggregators. They commoditize content, but they don't pay for the content, which is kind of fucked up when you consider that they make all their money putting ads up in their aggregators for other people's content. I always figured Kim Dot Com was skeezy for doing that with Megauploads, and now Im not sure FB and Google are much better.
Why can't creators monetize their content on the Web? I dislike ads as much as the next person, but clearly ads are a meaningful revenue model, because Alphabet brought in $90bn in 2016, and Facebook brought in $27 bn. How fun for them.
Now suppose we found a way to send a little fire back at them. Suppose we succeed with the dweb. Because applications would become open source and user-modifiable, perhaps the aggregators themselves could become commoditized. This is hypothetical, but let's consider it:
Any ads you place, the users will just strip out. Or, there'd be so much competition at the aggregator level, that the ad-free options would beat the ad-based ones. So (in theory) there'd be no reliable way for the aggregators to place ads on content they don't own. Users now choose when they're going to allow ads.
What happens next? Well, the demand for advertising (by advertisers) never really goes away. So perhaps it'll focus on the other existing channels than the aggregators, like sponsorships (see: Open Collective, Patreon) or sponsored content (see: any content channel ever). Perhaps users find a palatable form of ads, so long as they come from people they follow. "Oh, this ad was from @andrestaltz and it was for fidget spinners, gross, unfollowing." (Just kidding andre, I love fidget spinners.)
So, if that were to happen, I suppose the content channels would become more important again. There'd no longer be an aggregator that can cheat the user by controlling content placement. If you want to get your marketing material out there, you have to find people that users who have willingly followed or subscribed. What are the odds that the ad money would start flowing back to content creators, then?
%Qd/tvifFHTpxrxCrsm9/tjgYU6GtOTk/z1E49JuSLMA=.sha256
They say you can't sell software on the Web, but I wonder if things like Patreon and Open Collective are proving that wrong.
%00Ab1Wss9CPEW+RSYTRHIwY3qm2Jk/lb5vbdVQrUf/I=.sha256
Oh I was actually thinking in terms of contract work on the Web (my day job) which tends to be marketing, content, and e-commerce sites for traditionally nontechnical companies. There's plenty of paying work there but it's a total bore. So my fantasy is that consumer -- or also business -- software would go into play for contract workers like me if they weren't dominated by single companies that control them from top to bottom.
%kjA7pGbA/eFhyH4zK1iQ6u/72C+/mdf2J2FstYvOfIw=.sha256
Though I think the dream is to write code speculatively and get paid after. Implementing other people's ideas is always less fun.
%mg/NJurKQg3RvBWNIXLBspQRXEwsQdV5TWglZehOdaY=.sha256
Here’s a thought. If dweb works out and everything were open source and open architecture, maybe there’d be more paying work to write code for consumer apps, which are more fun to write anyway. New apps, and also patches or plugins to existing apps.
%UXCSyErytU9pepb9uDIb581sizMiokHcpvw+/bQCn2E=.sha256
%la0KRk3lJG+5ExZkWWoI/ODZUJVbiGwxafhOJMXQ5QQ=.sha256
%bVmPoLiP2d8ZVv+4uFZ+ezaFYD59YnX94o1Tze9Fo3c=.sha256
Eh sorry. I can't say what those are without digging in, and I've got too much on my plate already
%wegp3wxxfpb/qXSXCNO4WZfe2uTveeQEtvNJDMPjVoE=.sha256
%/BA8VNQ60rqN6lRoP7AAloNRuhKD5Ghuk/5r6tkpnAs=.sha256
An open network in the long run should actually have a better experience than centralized networks, because it leaves everybody free to contribute, so there can be more ideas implemented, and more usecases solved.
There's no niche idea too small for an open network.
%O75wyFpIBFO5RyvQz3/y1supYibi6JOaKG7EZukjhmY=.sha256
%zxayfNW9Hy5O5VBOCBoAfiLAwdWCn/seGQc+1pCXqlw=.sha256
%RE1E4hACi3V5xeiSWXYB4c8uOH9HgIHEcfQQgpYbSwE=.sha256
%1D7I2gqw2nXq61NrCfzJWTIYMR05oX4hK9zS7fSD2WU=.sha256
Some (probably obvious) observations. At the protocol level, Dat and SSB share quite a lot. Dat and IPFS share quite a lot too. But SSB and IPFS share relatively little. (Somebody should make that venn diagram.)
If SSB were to adopt a singleton discovery network then the most significant difference from Dat would be the focus on the log vs files. SSB focuses on the log, while Dat focuses on the files. Dat's internal log can be used by itself, but that's not the "primary" pattern. Likewise, SSB supports blobs.
The current patterns for consuming application data is
- for SSB: https://github.com/flumedb/flumedb
- for Dat: https://github.com/beakerbrowser/injestdb
We're deploying injest inside of beaker now, and that's led to this module, https://github.com/beakerbrowser/beaker-profiles-api, which isn't very well documented yet (sorry) but should look pretty familiar to anybody in the SSB world.
%ANOkXbu/VtyCbHfxNnX5sqTnSPhOkA2wRO2SMyPLRy8=.sha256
I havn't been able to find out if you share something using dat by sending the secret link over a different channel, say email, does that make make the secret public or not.
If you possess the dat URL, you can read its content. Otherwise, the content is hidden from you (on the network). It is similar to an unlisted gist, or a google docs share link, but without a third-party.
And if not, how does it work, given its a DHT?
Dat hides the identifying content from the discovery network. Instead of polling for the link, it polls for a hash of the link. Then, the actual transfer is encrypted to keep it secret.
%0og7OURsfL8RNXfF+4Q0IR9mm4C8aefUhtSZhmSSGqQ=.sha256
I'll put together a design doc when I get back to VMS again. I'm going to let it sit a bit while I ship the next version of beaker.
%Mtsq+BNy+wZlJJt0mjfPMBNRqaSgNdcc0jaVCmjwEuI=.sha256
%oNR5bIPxiy2VFORu91ayCgZCFjev1xcMTCUovgeFD2w=.sha256
@andrestaltz oh I didnt read about fair-analytics clearly enough. I still think my point 1 holds. VMS's mainly for stopping people from lying about data state.
%sg7IJ2ZSIThy6vIhzWo5vYpRwAGjfNPccwQyzMR3nxc=.sha256
@andrestaltz That's an interesting idea though 1) analytics has a lot of writes and this adds overhead to those writes, and 2) we can't audit against where data is sent
@dominic Yeah it's a straightforward use of a crypto log. https://github.com/pfrazee/libvms/blob/master/lib/vm.js#L120 Basically we just log all the calls in a dat hypercore (log). Then that log gets replicated out to an auditor and should be hard to lie about as a result. The other magic is replaying the log in a local VM to make sure the script code is actually being run.
Another element, not yet implemented-- I want to have the RPC calls be signed by an EC keypair, and then use the pubkey as the ID. Need a crypto guru to help me get that right, though. Something something replay attacks.
Needs a padlock with green tick logo ;)
or what about a weird variant like a lock that is also a smily, or lock wearing sunglasses?
I like it. The user DB idea is pretty interesting too.
%RYtSx8DOcfeEKYkNLngiIw1UvyyBGVrsu4uTegbSxAc=.sha256
I put together a site for nodevms: https://nodevms.com/
NodeVMS is a server which provides external auditability of its state and behaviors using secure ledgers.
# Run auditable services
$ nodevms exec ./backend-script.js
# Run commands on a remote service
$ nodevms repl localhost:5555
# Audit the state and history of a service
$ nodevms verify localhost:5555
VMS uses Dat’s secure ledger and files distribution to publish transactions and service state in a public, unforgeable format. Clients can then download, replay, audit, and compare the state of the service to ensure the declared code is being executed correctly.
Check out keyserver.js. It's just 100 lines!
%UfXVQct9K6LTRwwrByfEvbL2h8nrzsjzxJR3um2zkz4=.sha256
%LEflk3by4jQCaTfYJPP+5tBooV2MxZoZ2dH0kaNAI/I=.sha256
%IjJrp+jrJnlABrWn3MWTTrKwgUXmnEXGmVu5IifY6W8=.sha256
New project: https://github.com/beakerbrowser/injestdb
Accompanying tweet storm: https://twitter.com/pfrazee/status/892442105964113921
Is a database abstraction on top of dat, for beaker apps. Similar raison d'etre as flumedb, but a more rigid execution
%uGzD3TYK6xgwr76nwrVb1/ToWiaXo2xmjxn9N4DcoMo=.sha256
%K96+tgtIOt/25zevGwF6TZWY7w11fsVPm7nNSyooPeo=.sha256
%QMMl4TCrXKjFm8B8Z3qBB/plXAmOdBm01mX2gq60Ui0=.sha256
%yUZzA+aFOCRAASls9iNGlWfi0BRportQhCOiPoO+kaA=.sha256
%zbzft8FLD0f0O2WUn8famC+XqO4tQdrOMzWqpyWCTMw=.sha256
Oh awesome, let them know I'm happy to help in any way
%OSA7gT37BfCymxsHswKsXRUtR4Pk+ZyVOzsxhTsGneo=.sha256
%k0T0U8r6K2Tq+rVM1NUy6ZakSVKjgvNkQSLFpvEExsM=.sha256
%WkZaEfYUWU+/0Qo6RIIkqDN/CkfG69c7OGDDonbcg2I=.sha256
@win.mix no my MIVM proposal is server software, whereas brickhouse was clientside. (The brickhouse ideas, for me, led to beaker.)
%IBP0z1v4h7jXpn7bfpxQXv2mVyJ2D9EK5S59K6LdpI4=.sha256
%HFX7oLvPFleOF9f+gXyEMLQAPtITtToghXkWf5A1iYI=.sha256
%mawH3Ll0/sSluBuCESBP6vScN9fWhGCgEnAhI8YUvNs=.sha256
%EvRMtzuX1TM5h9hZ/bXDM0DF/TApEITSiZOcw70auuA=.sha256
@andrestaltz correct
%OV7djlENjcoA8T8oyAN5bf5XbdYPIterdSWQyY+S6uw=.sha256
%/qJpFM2JS1sVSbkqs9WQ1OdaZlMpo6RfcdZI2tEMHYU=.sha256
The bot could be some non-human ssb account (pub maybe) that publishes messages based on some rules, in reaction (or not) to other ssb messages. The bot's state is a big array reduce of its log.
@andrestaltz that's fairly accurate. I'd like to have live endpoints so that I can get transactional acks.
For use cases like an airbnb, it's still kind of centralized (around the airbnb-bot owner), with the added benefit that anyone can copy (fork) the entire log of that bot and continue from there onwards.
The two centralizers would be the contract owner and the host VM. To deal with the former, you could "disown" a contract by reducing your permissions as the owner. I'm not sure whether the latter has much impact other than who is responsible for contract uptime.
I find it hard to see how would this be different or better than just deducing state client-side ... how is that better than Alice simply running reduce on all state transitions that she and Bob committed? In other words, what value is a Host providing if peers already have verifiable logs?
The value is in providing strict consensus at a live endpoint, without sacrificing auditability or user-authority (via signing keys). Strict consensus makes transactional guarantees possible, as well as broader constraints on state. For instance: with SC you can enforce a uniqueness constraint on something like a primary key.
Client-only can't provide strict consensus past a certain scale; to do it at small scale, they could use leader election. Arguably the blockchains cant scale either, thus this proposal.
There is a ton we can do without strict consensus (obviously!) so with this I'm just exploring, you know, could we get all the toys we want?
%Xd7xS7N3XCM46pqyx6qK6fTzY1VbS2qUcfBWAH+9hc8=.sha256
%5dj7aNGwpyAKhHTSvYmAxsGcLHDAPzzHu/5aR56rMXs=.sha256
%weC1AgqPO5Nb5kM6faXHPzXV9hRDo4P7taTBRZnmJBQ=.sha256
Wrote up an idea this morning for running smart contracts on node, using verifiable logs (Dat or SSB would work) instead of blockchains with PoW. https://gist.github.com/pfrazee/bf13db9dea21936af320c512811c2a2b
%ceJKARyq+yISVNXwS+vFO9ircGO1mKgXvEOz5vvcz2g=.sha256
My profile still works!
%OJ9ZbJw/Wl1folCq0DASqW4EVHBfXSOZHeGLO8V39lc=.sha256
%jg17H+BwCdqbmWnE3Ju5L7GS6X50AZydMqqm3eOjlcI=.sha256
%aNyuraWkiRhM9XzOzjIk/b8VIIxZ0QNFQJ5wSegfgV0=.sha256
nice
%f3Wukh3OLRoOrjtBl09z2ifunOb0KSIc5AIhBgh58pk=.sha256
%dWmbVmQGsvh246kPtutu4tSY/B6ZFoqYz7mcGVOcc3I=.sha256
https://www.thunderclap.it that's kind of clever/fun
%wf/ztaDRhO3JQGj7ErYo21uzAs/NILTp4tNmRzqP8a8=.sha256
Oh man, sorry for being so AWOL everybody. I've been heads-down on Beaker like crazy.
I just got a chance to see https://git-ssb.celehner.com/. That is super cool @cel
%9sma9uw1MQckkESjwToxJHknKiOhsOZXepTtB00Meuk=.sha256
%qpSamhuFzcMFB9OKxVbsniA5SUwsfnRaUc+JsprddfI=.sha256
%ZZHrV0Nkauvmw/0251Lhc7syueiZNglOHE5iwus7SI0=.sha256
@dominic ok I'll bump that priority, then
%P6535xdWN3W5c5/lYkWfWP8UdOebs39lKB8RYQpt73s=.sha256
%PTPrSDemjz8vilYDqKLkfD6aYRRbnB5zuneTX0+TDzE=.sha256
Patchwork is still getting love from @cel and others. I felt like Patchwork was stable enough, and I was ready to focus on platform and tooling. At some point, Patchwork may get a port to Beaker, once there's an SSB protocol plugin.
%ZqSxCIxvGkH4UqRzYiZKBNxZz16GTTR9zVztJBBp6Zk=.sha256
First version of Beaker Browser is out
%5OQ28o7WLlRyOs5QX0tVxha2Ud+sFD4sPf2YUx3UoUc=.sha256
@cryptix not yet. I need a document-distribution protocol first. Dat's a better fit for that
%h7oC/K3geQojijbt50IGNkV4DdvC+nQ90qJ1QHVW4fU=.sha256
%/fLPdGJP3DE+IyXV717m8RanB4psKMWOy//Wyh+ZMkE=.sha256
@substack great, Im going to use this in beaker for the dat protocol
%mcwBijXpv/i6BvSQHwdnlVF/gzi3AqFERzVJDm9iQAo=.sha256
probably the standard js one, would work
%avvpLBnfRqnMosfNlirQK2ZHWUTKVuHAt3NWdHLkVd0=.sha256
Specifically, self driving cars that you paid for with bitcoin. Presumably, once a car had saved enough bitcoin, it would purchase another car, i.e. have a baby.
@dominic that is one of the most interesting ideas I've heard in a while
%mg3Bw21nWaw5CGBZ01560F1XY6+G09YC9cAwKa90dHs=.sha256
%B+IRqaWpAXfEp2MJuqPyJZRwaZx1TlkQwOZaEHfNer0=.sha256
To address the devaluation of labor by globalization and robotics, we need a strong downward pressure on cost-of-living (housing, food, higher education, and medicine).
I'd be interested to know how inefficient the housing market is; if you provided perfect supply and reduced the costs of housing down to maintenance, labor, and materials, what would rent / ownership cost?
%X2E/fNWzOmXlXUQCnFWPr/6d5OWy3MEyCcx8fld+Guw=.sha256
%04/E7Egl9l/MGIpkwvORosh4sLjM9b2TjNiS+4rdYOU=.sha256
%XYIs5d7DTnEyo85ue4NhjiITj+Kx0XAEfYc4CXZne4E=.sha256
(Mondays in my time.)
Also, the 29th with be a meetup for me
%PY7T5PAHw2FDAcOfL7bJQJqK5QTk6TOMO1hsgfuWYzY=.sha256
A: That time works
B: Cant do mondays
%63wx7QqxtFVv9L/sjkmTF+P9BB97i5KP+YTY0pltaMs=.sha256
%GnhR+h8Q8tSBtFCycO+fP/cF78t5AMnmvAA8oBvwLZw=.sha256
%g0NwdBE61/IMIum1wKgVB5XL/PxpOeh8qU5lhJIbkIY=.sha256
maybe you could make a DHT out of trusted peers
That seems promising to me
%jaBdOHbT6ieDQxW2mFHcVYfWpqjK0d1VwZg84TfNYcc=.sha256
for me
%qXDk0LZ1OU9K1xkqioK7ck94rmXNwoisNo+GiwcmFnw=.sha256
%gACtpqQFKJROKeuel/b/UXEZB4AUaKReARyW53M/HMk=.sha256
Wed/Thurs ?
%SotRl7GAZcNBVO/w1ZYR2Y44S3mkLxF9N3mxHX1EGaM=.sha256
same. if tuesday is no good (this week or all weeks) let us know
%ZW5Cqa3rMLxBhkRJuKNJwIz7GIy0kCFwwbsyL7NsgKk=.sha256
that sounds good to me
%QNjnEtPlMr089+2fMPQviT5ctfZT3mxiJAbteNcUcNc=.sha256
beaker can now load dat sites with dns entries. Do a dig on the url's txt record to see what's up:
%1AQP7zdZBUOg0/ccZvyramkFnBAIa9u2Ysg9+jvMgtE=.sha256
I'll hit that real quick
%Xe3oRaQ6AA/0SQPh/cF8VmtkxnCvXxID9BdLr1cLYd0=.sha256
%iwg2963L+F6IAugzX5/RSZhmOD/kaJGDsRFtQLjrvGo=.sha256
%N4kOCc1aciyUJXfqV6mL+yuIHnkJA6SJu9Hw7U5S1fI=.sha256
ok when would yall like to meet? I can generally do the same time, different day, on any day
%y88QtrExgVYkCGHoF0Vh9cwDmDMmqqZHHf9tfA7gwdQ=.sha256
@dominic I can't verify if his claims are true, but really I see this helping with pairing devices on a lan
%Mwt87zOg+f6EGGqj/ZPSwG4sO2hvSNnd3nvrvfpvHpE=.sha256
Shiiiit guys, I joined a city sports league that plays on monday nights. I flaked on having us reschedule these calls.
Terrible timing, bc there's lots to share. If I get back during the call today, I'll join. Otherwise, maybe we can do a second call in the week?
%/SlvVAWVlGLtNMS7DVQXh4JTVHFBc5j2bN8PIPsAtjM=.sha256
%qDez9+t65NbUsSr3LLxOVHitjAqAVKnaD2DkDAU0X8Y=.sha256
%5GHA7U2rIo+hmBkN+n0CalN2SmMjkpqThLLMmcUzVp4=.sha256
oh bummer, yeah
%DB/q7RTmk/HPUdNUw/drkgRiys5G2jsjQMFvCXz3uGI=.sha256
%FCHbD2eGk0saFjqV1YqUmTsUftRIaem+u0a9oFnhUS0=.sha256
@dominic hey have you ever heard of PAKE algorithms? https://github.com/warner/magic-wormhole
The wormhole tool uses PAKE "Password-Authenticated Key Exchange", a family of cryptographic algorithms that uses a short low-entropy password to establish a strong high-entropy shared key.
His slides link, at the top, gives a fast explanation. If this is right, would be great for pairing devices on LANs, or sharing links on conf slides. (Any time you need to dictate a key visually/orally.)
%G7kRHvaz9MxFGnCwrNq17Zv3Pj01yCjJlytfgiQd2aU=.sha256
%tS3lqQRaDMECtbdolyTDwNhgoA+RdenMVTBMuM3oJwc=.sha256
%9S+dPCv8gnF6dyuhosGJGDs8HjZjIllAoydTxA+3FSM=.sha256
%1tZLfghN0pQZURdNbFxxa11Wn3owXBYBUUhdtAa9erY=.sha256
%OQMomoZwXwgrJ//LdK62WtZCnVhEWGtRW+JWP6EVu08=.sha256
%wg37dtpNQ3juWIdCQKvnqbkobysLhz8y170csDNQAJM=.sha256
good
%dbbPv7X0hvhS4Lh6x4sTU4ox9mL/GiML0buhrBlAQUk=.sha256
sounds godo
%aKUvlfqpSuInCCfMqW3arF0KE7w4n38AmdEyy+Cns1w=.sha256
same!
%8O2a2J9IWWamP782lon4gduOv2sAw1W+8YKZJB38Rp4=.sha256
%ex9vgjTwIMGS+XXePAhtvB293SqhlzN4drUFaFwu+zs=.sha256
%7eI5gkJxnSOKfMmTDqHN2GfCyz5jBdRtBu/dy0aiCfA=.sha256
%HyP1pq6gq0DUJ/bzax++nO9vIZ4nCdH8NCybwqfkROs=.sha256
%MWw3HV8mtM+I70px+0BUuA4EdhnRXA4WSwWSfPGUpMU=.sha256
Brave's code is unbelievably bloated
I've been working on https://github.com/pfraze/beaker lately
%L5mqGPThNTm62QvzHT5DiW/x5i2swvpaaAv7+QGvPKA=.sha256
%MFQ5rFW+i/UOubX3v3AEw8O9DOKW8Yooh51/vahPTdE=.sha256
I dig the ui. Reminds me of old xerox stuff
%KzBazJqgZL818jHyuyOv5Uw5CMDe99h9piV48WtafmA=.sha256
Sorry this is late, I was out of town and without wifi for the wekend.
Regular meeting 8pm/9pm monday, 1pm tuesday
%l1qKGKcUgJwGSFKhkPRib+J+M5QwIIgPXN577+mCljw=.sha256
%WvYJmMkSniTZR4wbIqt0JHJ99sDbSsckmrvrD/5+Fwk=.sha256
%Z9YB80RjJbT9V0m3AT1mvD2zi5nrn6iXyfJEYKw3sZg=.sha256
%O15aiAJ4FlKWQ5eJiYYhKxv1JyopdYOQzc+QIQlmsvs=.sha256
%O5sVDlhXIccqCAls7YUZ+4XhnrwuoN+En/kEnldvsqU=.sha256
%+vjLdtvHitHgsrPBs+NFk2jxFydLUhusEdF57I4Oc38=.sha256
Actually we're pretty global, but all are free to join. We use Mumble, at celehner.com:64738
%imeJDOTD3So0Y+1tDYxqIgOAXl7hKfZjBy+aVJi/UV0=.sha256
actually, some of the webkit vendor prefixes are in the html5 specs now
%R+cvZrdFr0+P4ZGemxTYMh89Jq45KtF57wTLIEwvzZI=.sha256
Regular meeting 8pm/9pm monday, 1pm tuesday
%jc9VSMGvR6aDIR28s803oGKk1IIPk1bmFpH/ZZoToFk=.sha256
%PJ3EvWz1ZEHDnVtrb/44vJLR6gJmcTKqq+nQZUyaYqA=.sha256
%Oc5U8LgLzOoZx+BpMVub2Nv/Q/IbZg8Ei8PvZ8ggQvM=.sha256
%7SUNN/njJZH88ukkUSYTtUL1ASzq9CxwdMa669tahPc=.sha256
yep
%dFOoanaxv/orHlEwhTfioRq608ohBzkWRFDSCwek6aE=.sha256
%EcsiRxRsHFJsJOyF8mOTdSU5aC8AeQzEsPx2U02KfoE=.sha256
%xSRrtAHcEzL+Ac5iAAzp2ACLtbsC2uxJXZt2pu2L16s=.sha256
%tklQeA9pzRiiRiwAFzbwiZxrtftIrv+wmFApXJX2ECM=.sha256
It's pretty slow
%p+VxuP/JmHksivVV/nSJYLHvi95wx1XYJzAFW1YDcl0=.sha256
%mSQgCfe6w5HDYAPr3Juvg+C6BvLUaPan/sMHdQG7uyI=.sha256
Event hooks, as in the normal event pattern, and core APIs, as in Atom/WP/etc give an API for manipulating the environment, which can include interacting with plugins.
I don't want to rain on your parade, but you did ask for feedback!
%GLYuBmwiTrezmp5l8oGKe6jcbemtc5Caexdg3AqemVA=.sha256
yeah all of alan kays talks are good watching
%cVPSPDTdFdQiJ2GEM1EnLA3cYntr5E6u2W9Ba2Evv8E=.sha256
A flattering mistake
%ORjnfunJ3p6uXjgivvP9VvorCol7O6YFjBpgDRexCaI=.sha256
%9/N3s3nY1SB1nXlDMdBUK5ORaXsBsTxfS4oQyPMZP48=.sha256
it composes well, but it's a leap to get into, and I can imagine it getting super hairy
That's my take on it also. I wouldnt want a learning curve for the patterns of a plugin system. I'd just want well-documented and predictable APIs.
%VUXGuHng+LIufBOJI4C/C13/jMXP3dInEu9BbNHSuB4=.sha256
debian is 2.8.1, which is latest
You may be seeing the leftnav items expanded for the first time
%s1Gf7apWl/RL7udARwt15QPuYL9BvgjcpjJ2URwk260=.sha256
%KtG/XT1lmtkRaU/h0F9+6aaNh430MgXSfwuzDZkFHi4=.sha256
%mfWugSXt4cpYIfooBf+9Vlx3GqxOTityE4upTVLUILg=.sha256
%4V87X1iBbwERFCOlxyTEWwfhs6giHH8WfEPe9hSgako=.sha256
I dont like the idea of using dependency injection, decorators, or code-composition to do plugins. The plugin systems that I have seen work (WordPress, Atom) use event hooks and core engine APIs, which are direct and obvious. Clever isnt good for software ecosystems.
%Ydahle9rHxE36FxvptuvB7rkppc0flL14+MX03RYsNU=.sha256
%jzzNFFv7eZqX4s3TTx7xutxiJUsKvjhtWQ6tsGAQSkk=.sha256
Regular meeting tomorrow, 8pm/9pm monday, 1pm tuesday
@cel already said he cant make it, but if he can, great!
%T2O4zOmynGJklHLWf69E/tkf6dq5eOZKAxw58uMUVOk=.sha256
%Gtl/20Yq1xTrAeKDGPV66gwyuzT4XZK2Ctz+/XUFhgo=.sha256
%HrK2FIN/GI0UhjI3FlZuQfXq2Nw4lAkLEOFvNbfWzlk=.sha256
I see both
%yYaEkriezOO4X4YTn/KmUGFtSqZAeRwVHA3es4afTK8=.sha256
you cant be for and against standards at the same time
%f5LsufrFB5Rz8qVDdCn0jJI5+icoZExFms9Ab88iaJo=.sha256
I was thinking like application/x-sha256
but now I'm seeing x-
is deprecated. You might just use text/plain
. If there's not already a hash mimetype, it may be because hashes arent considered the right thing for a mimetype. AFAIK mimetypes typically deal with the structure/format of the data, so that it can be correctly parsed, but it does not set the internal meaning. But shrug could be wrong
%pEi7GOr74yj0F2gmAPQQZ2zJY7/1EUq2SYAlv7bWLm8=.sha256
I just googled and didnt find anything. If it's not a standardized mimetype then you can use the extension format
%vR28P5iN9s4XrxXhjocEOb2GczSOwBk3b5Zg69SCsvw=.sha256
I think I've seen one around, but I dont recall where.
%myoxTkOEb5SHCR8+r3dOIIttqsbBKwW6ngyQ2qLdEGo=.sha256
%VNrulLtMYjJJolWUeMcCZDnAhsdYjGaIHLMV/vdTomA=.sha256
%dYrVL40x/INW+14/F+UM1otIuDyAYWJP1whmKspOMEM=.sha256
%hSdvLLp6jwRjAyEcCezUWd6YyUsyckpOoDhSaOg8Sqk=.sha256
%fpomSa6z2KHd3J5CDzg40P86MkdiKxqRDyp2QC6twks=.sha256
%tgIF4tlysdujfYHgmgHH6CLsgYVUUU6/406GEHBjRm0=.sha256
%sDZh2U7ccfNuqQ9kmrb7H3frhATR+YpkGyQK1hscIs4=.sha256
Not my favorite but I guess I'm ok with it.
I might actually prefer having a list of config options that get sucked out of the params, if present. So if you use --port
that is always considered config.
%kICoquP2F5/1Bo2R6rFSxQVoVFd+ndtkSewAl0KA5bk=.sha256
That's all so ugly
%1f54VrZCHfOjVeL+/Uds0oDTn9TC77hjfosHP8Cv3zo=.sha256
%7IyYZtWWWHnbkcOHZj70cleZeC1TYuZLRATYYw0PjUc=.sha256
@cryptix some code is factored out, but it'll take more work than I can offer right now. Somebody else would need to champion porthole
%QM8HEbu2wTv2uNAtbI36NQK2Z4D2nZ8ogWTdSMgb6TQ=.sha256
%iFRxBUjiV5Nk2e1ycTYc7aajQ1Ealb7lmbUNvFTuiSs=.sha256
:\ issue filed
%sFeYRpjTlrW1GzRkaCiZxwb4iHdVCvqKiykRtg1cd/I=.sha256
%awGdnXWV1esYNIUsYDKixP6qkN2S2OsRXHr1TfkUQyM=.sha256
%H5oXyBfuRwNpuWKaevf8nhbaNhRmzL1I0S3r3V4Z9ws=.sha256
thanks for the report... we've been getting these lately during json stringify, but this is slightly different
%rqs1c75lG95YMCAnjn0B0DinLxw7Hv6xRNl+xQC8L+k=.sha256
%SBzWfL89iQsi8x2fAgXA1ro45g0JfMCgIKhqGcNiqZs=.sha256
Regular call tomorrow, 8pm/9pm monday, 1pm tuesday
%xhErk66CCGWitAsLICSCvM/C3X5UYH0fM6ZDlbAj8ww=.sha256
Update your deps, this should have been fixed in patchkit-post-composer 1.0.2
%vY2I/mmJvFPxypIkHl+qRXxh1jL0pqi/3TBsADFCpQY=.sha256
%6mpeiUxdZOU/4PjYhbZVzm6iXw0lGnqm3Hz4z0//O8o=.sha256
Authentication (from Greek: αὐθεντικός authentikos, "real, genuine", from αὐθέντης authentes, "author")
%fUtU5WUvrZLb0hogGzC1ycB+pazLSDH/shbka9+vCvM=.sha256
http://infinit.sh/ looks pretty cool
%qavKCcrvvsd8rB5PMliKOe1TzBqy8KBeX08vJt0iWik=.sha256
%rZqhISrKx4fz2XYYWis+XaMCHsCgSJ2/S/3yastOJeI=.sha256
ditto, ansuz
%3F0NSKFmwDaTZeUNeY+4JNbWaVzQxSx9Rfzm1QJg2SA=.sha256
%DGbpwmzbbR0y77lnR2RKxBywrYABlSwmvVd/U1Lzp40=.sha256
%3urXjRCzUX9RwiMVKBCM+g+q3Ohk5d1s0Ab5CAR7UlY=.sha256
%hNb8+1oqrGXVw6ewMFWpM6kGoCv+T3VtKduuXi35hVE=.sha256
Very jealous, I'd love to do that
%3AMIOAO9Z2WrDhnMPVQ0CERfzIEF7FeztUV21ANlDkA=.sha256
%su8mgaA3KXB7d+/xSFMeafPXwdboE9NOvR9rIa9zQK8=.sha256
%sTUj4PTNxnSgc7JVcyefLM0WYpFLpxTRtfSvwbTv3Jc=.sha256
Yeah this has been happening. It looks like it's from objects that are too large to stringify
%Qfv29TMwhBd6D2wKTHM6h/zhLp++cInNPAw4+FeYc+0=.sha256
%m00/7EXCUPq5sFpEGiwtPiz9T9NWtrNQQCV6itXTAdM=.sha256
@dominic I'll try to be home around the same time we usually do our monday/tuesday calls. I might be earlier. I'll just idle in mumble
%3y7G3N4xF6KbKomrSwWwDG3YlJwxw9U6FRTL26T6Td4=.sha256
How do you see the intros working? Manual contact-sharing could be tedious. I feel like, part of the motivation for a public web-of-trust is to accomplish contact-sharing in an automated way.
for an unsolicited message, we could have something that works somewhat like an invite code
Capabilities are still fairly manual. Again my thinking is, what good is a WoT if it cant be used to automate things like intros? I'm imagining seeing the profile for your target recipient, with lots of collected proofs, and then saying "well now what?"
why would someone want to be a gate-keeper? what is their motivation?
I see this making sense as part of a mailing list or user group. The admins would be motivated to maintain a good community. A coincidental function of the list/group would then be as gatekeeper for introducing the members to each other.
%Lr2Cgc2zRB5iH1Wr2LMbTDfvC9HVpc5vKPcufPW+xQk=.sha256
Thinking through some options. Let's say we implement a pub api for accepting "friend" requests, or any kind of unsolicited push-message. How do we prevent spam?
The equivalent to present-day patchwork would be to look for a foaf connection; if the sender is a friend of a friend of the recipient, that's allowed.
Another solution would be to look for a minimum number of identity proofs for the sender from the pub's network. That's basically what Facebook did when it required a .edu email. It sets a higher barrier. If you also publish for flags for spam behavior, you can stop bad actors pretty quickly.
Another idea, you might appoint "gate-keepers." This is similar to foaf. A user could declare some specific user(s) to be their gate-keeper, and you have to get approval from the keeper to be whitelisted. The idea would be for communities to publicly share gate-keepers, so that somebody entering into a social circle can get approval.
And, there's also the gmail solution, to apply graph analysis on a whole bunch of aggregated signals, which... let's assume is too computationally expensive for wide deployment.
A combination of foaf and gatekeeping seems interesting to me, though Im not sure how foaf works without follows being published. (maybe some other signal.) Gatekeeping might be integrated into discussion groups. That way there's a sort of social-setting within which somebody can get an intro, and there's also a social group that holds bad behavior accountable.
%SVL0SS2gfU2Bc+DmhSOhGNhUMehf6kZx0fGlGcxp5UY=.sha256
There's probably an easier solution than creating virtual IPs. Write a proxy app to sit on port 80, and have it forward based on the hostname used, and add /etc/host entries for each app.
%QhFbFfyR0Ok8aiRyowjrzOtMWrJKi/uoGdPXYnEZ1Ig=.sha256
(Without the virtual IP -- if you run on localhost -- then you end up needing the port, because you cant use port 80 more than once. So, without vagrant, on just localhost, it would be "dev.msdf.org:12345".)
%bPg++ENkXbvSUB2+IU0rXif/OYn0vSagMdaqsqEI4Dc=.sha256
I just noticed that vagrant (Im guessing via virtualbox) is able to allocate virtual IP addresses, and then update your hosts file, so that you can get web apps at custom domains, without having to stick on the port. For instance, "dev.msdf.org" is my current client's URL, and that just maps to the vagrant instance...
which makes me wonder... if this could be used to have localhost web apps without putting a port in there?
%IOaxkfZ6Z2f5OpgvdvXggXUeNVG36PhJIqwR1Mxqs+c=.sha256
@dominic so here's the question that Im on right now --
I like the idea of not publishing follows. But, if we do that, what's the process for getting two people in contact with each other?
We can create invite codes with special caps to do twoway follows, like we discussed on the call, but that means that you have to invite each contact manually. A user-directory, in that case, isn't fully useful. I can find your contact info there, but I still need a sidechannel to contact you and ask for the invite.
The way patchwork does now, with follows published, and FoaFs replicated, there's an implicit introduction-by-foaf protocol. You see when youve been followed, and then can follow back.
Im wondering if we could do a protocol for unsolicited "friend" requests that let's you contact the user's pub and leave your contact info.
%9phArnFnA2ssiNju6D9ZEXDLpnJeR53zLDUI3agi7io=.sha256
ev, sometimes that happens from old node modules. Try nuking the npm_modules in patchwork and doing a fresh npm install
%cuFYvSzscRFS8I8CfVmMgGBL9wZbA/tRYTsQHWMoDr8=.sha256
geez
%8WFbkKO1XuhNQLfecyQCUc4mcA81qC2qhAScRqmI6ok=.sha256
@mixmix we missed you!
Here's what we discussed:
Focusing on the security properties of SSB and the Web of Trust.
- Private follows: it's not always desirable to broadcast your contact list. And, follows are a relatively weak identity proof. We're going to investigate a system that keeps follows private.
- Unrevealing replication: related to that, dominic has a scheme for replication which doesnt reveal who you asked for unless the receiving peer has the feed you requested
- Identity proofs/verifications: instead of follows, we can create stronger identity proofs which mainly revolve around transmitting the proofs through other mediums (email, twitter, chat).
- User invites: a code you can send to somebody that lets them follow you, and you follow them, in one go. Bonus: it can be used to create an identity proof for the new user.
- Merge userland plugins pr
- Merge ssb-blobs pr
- Code for local onboarding: we can use a easy-to-speak code on LANs to add contacts via wifi.
- Pub "application": it may be time to factor out some of the automated behaviors in scuttlebot into a pub app, because the end-user device behaviors are going to start to diverge.
Dominic and I are going to be doing some work on the Web of Trust and general onboarding for ssbmail. I bought tickets to the Decentralized Web Conf, and hopefully dominic and cel will get tickets too. We're going to try to prep the ssbmail app for that conference.
%WEbWrf6IGA3sJqdtW82ScbRJifpsg/EqLyinL3DNJRs=.sha256
%ku10lx4hSeL5JMXsl1aHPELbWJ3dXyECxzzYfiN4WZs=.sha256
%EHJ2H6m0XXGqynorBB7glXuA26sY7y0OU2+lJw+UTA8=.sha256
%6vkNJhiIW9BPp3epvoK9sgg89hCQzs/em5m84IMwY1E=.sha256
%3/tuaEk+FaVUEN9qc8CXs5XicVtUPAnf5HF/Z9RTSOQ=.sha256
%XuBSAAt4oP0Lj2yMDQD2u+U3N4nAoNJdyFoZf7EWykE=.sha256
%BeeCUlFwB91DJyGXDQpys+faRKhQ4yaCNlpzglyyIYc=.sha256
Often having stack exhaustion is from runaway recursion, but this is occurring inside of json stringify, and there's not a recursive pattern in the stack.
%U7CRzn2q+dERPwI0Mo62mp6J6C3x4N0i3IOLN1ki/Ps=.sha256
I think this could actually be because the object is too large
%BOv+N1Jr/tdgiCNLpJ4PBB6HLy8jqN7mQkGO5Z2BLqI=.sha256
No, just that patchwork doesnt have any utility for it
%e/h3g9PHIpmyfxIMP1BIrc4oCqWLosd+vzb9Ivx7FV4=.sha256
%xPZan4rd4PAVOJUKgrdmjlBU+o1A+LRLIuZXN1JQfJk=.sha256
Nah it doesnt affect visibility. It's just for the warm fuzzies
%npXIcvVxvatm2yJamX/WQmQ/SovXDPD8dT3oRUPEvQw=.sha256
That's an interesting perspective, yeah. Im curious, all things equal, would you take away the dig button and go totally number free?
%zP7FhZbrxq3iH6isJ8Tn09q7KFw+iPVBfkn+2ZVJvJw=.sha256
Weekly call tomorrow, 8pm/9pm monday, 1pm tuesday
%7xJFDwwu47/pEY9ZboSSk1QDCyGZuGU2pSmnNmuvGbY=.sha256
%0Zq9pIkENT4qBjmBh7wEhh1qHKpzND5TsZ4iVAz/V1Q=.sha256
%0cSK5fYwZpphSu1I4KXP8bvRrjmz2lQp/yy2lTSA41Q=.sha256
%lMPDxTkoCSEDRX3C1pXRLn7zEdIOsQlFVCdF3ERUqM0=.sha256
%qNn6+R8GZVpXMReRTtUlNQCxjehN4rVedlF581pQnl8=.sha256
I agree. Im experimenting with some changes, that I'll show in a bit
%HPewlHxTzrdIpZY/zrSPd9tOZdJEUw2C0tbELWu1O9s=.sha256
%TH9FIHEsrZaao3ffvlLVEtHOIWcmeeGhp8BAQfd3IbM=.sha256
%25kYorLnz4xpWQzxhSKRTqD+ciwUlZMZ2T1/9koaNzc=.sha256
%TV9YuR3j6VRLn3lsTN6+FDivWG4vGiR0Z4E45yoH4nU=.sha256
are you retiring the laptop that formerly controlled this account?
If so, just copy the entire ~/.ssb folder, and then rename the folder (on the old machine) to ensure you dont accidentally reuse it
%WjJ8edfcSrA9gTVLyq8gKxaT1xZw28MnbyIA4K16Pjc=.sha256
%6eRNoExc6dZCwjcAIsOgcm+tvOrQbDGtGAby1yWMofQ=.sha256
The keys are ordered. If you put(1,'foo'), put(2,'baz'), put(3,'bar'), and do a readStream on the db, you'll get 'foo', 'baz', 'bar' out
%ecN5WWFz7MHaL81np6yeZe/vKB3eqFpWj1zzI6Z3c2A=.sha256
%xLSZKp7EeJ1hW787UJ+BSB3u/WRCENn2zlIRagzwW1w=.sha256
Nah it's cool!
%jEIr9tq1qbS40ObO5JrYF1Kd0SVmJG2qCqY10f/oB+4=.sha256
ok
%zrF67JQKmDNuxDH38ofxM3hH/G3rsB8bb1MA6PLgcRw=.sha256
yeah. Probably shouldnt
%YU/3UG0eycKcpZWWjM/RsoGZl/0bnzV8E/IsBWBqY5A=.sha256
Is everybody good for a meeting tomorrow, 8pm/9pm monday, 1pm tuesday?
%nxrCO/NmvymlH8Yi4WDg8iwPm5oXqY2N9GvWYaZDs4s=.sha256
%nSCRdp/N7VUiEeDSB83DBQRVvQNRFVbkZL8NpTF/FmQ=.sha256
%ll4C108rOd79ovlWHzGNMEsg9DTS7RuQMer0K0bOLVA=.sha256
They're talking about scaling up the database by spreading it across a bunch of machines. We haven't done any work on that, since the project scope (atm) is to run on user devices.
If you wanted to do this, I'd suggest feeding data from the ssb logs into another distributed database.
%6yWU4DR2usa692QfVVI3EaIJxGa8xf2Gssq+Q4SC/+Q=.sha256
%QLTk0MSQt+YZYuX6L9WSHi8Tuu7beqP2h5SQskEzAdM=.sha256
%ghHSaxKzyujFUDJH5T8hc3lT7oiuGum5SSjg7HIbTXs=.sha256
%ju2SM2/I0foE2l7LrRIQw8P1h3Ui/n8hWXjophGj4xI=.sha256
Our approach is based on a guaranteed wait time provided through the TEE.
Another function, say “CheckTimer” verifies that the timer was created by the TEE and, if it has expired, creates an attestation that can be used to verify that validator did, in fact, wait the allotted time before claiming the leadership role.
They dont explain what their algorithm is, other than calling it "proof of processor,” and sort of hinting that it's less costly than proof-of-work. Googling that gives nothing. Is it possible they just added some dedicated hardware for hash-mining to their chip?
%hgMOCYLZo12cRHemZ0SKUpsnxCy1Dv5RYkszfMNt6wY=.sha256
%qmhF5fPacy86jvtfSNS4pclCg3lM0LKIgpZ58ucUPD8=.sha256
@dust @mixmix I agree with both of you, and @dust I agree about needing enclosed spaces. I forked patchwork into https://github.com/pfraze/mx (dont try to run it yet). I want to see what a default-private/default-small mindset does for us.
%WnA7BXMjYVaR2OreOPMiwlY7UpYl270lOYgiYRTSh7o=.sha256
It turned out to be the damping factor's addition needed the /4
, which is why, if damping was 1
, there'd be no problem. Updated:
for (var k in PR) {
PR[k] = (1-d)/4 + (d*calc(k))
}
Without the /4, I tried different d
values and, after 1000 iterations, checked what they added up to. It was interesting:
- d=0.9, total=4
- d=0.99, total=3.99987
- d=0.999, total=2.89691
- d=0.9999, total=1.28550
But then, with d=0.9999, I did 1000000 iterations, and got 3.999999999999475
%tlAPOQeuGuDhEZUTxm1ZbtSuOk6tuM5C4cAi6VkWgWY=.sha256
@dominic hey, what's wrong with my mini pagerank script? If I set d=1, then the result comes out with all ranks adding up to 1. But, when d=.85, the ranks add up to 4ish.
I'd expect them to add up to 1, since the rank is meant to be a probability distribution
%TQVYyZTLxLINvkrl4pnLxn7vbn31xAFXF5kYFgxGJP8=.sha256
%NsKwnXPXjw8iCNellcS8dV3U0Jz90tmOTc5PhNVOoZU=.sha256
no but he left some people inkapacitated
%l2spXtusP6uegJLjw2fUrAebrlfhjK9KO8qwu9ubnBE=.sha256
Yeah, not worth a new version (yet)
%9jrhaIp/IURPLaNy2rukygblG39fGr2SyKL32RuAIL4=.sha256
Great! Would love to talk with them.
Modularization is mostly . I'm now seeing what it's like to use the components in other projects. Some of them are easy to reuse, some arent, but we're definitely in the right direction.
Current installer: https://github.com/ssbc/patchwork-electron/releases/tag/v2.7.0
%hbsUJUL2jGf9NvQ44RsLJh8JhjFQlb/SilmQRRaF82A=.sha256
Unfortunately no
%jS4TJwDo2Y7ENOoAXKdHwOoZXlBcDPittsuGi4zj5Fg=.sha256
%ywfqZ01POz3DcBXcSPZ5ecQnMv1UioENc/3VVDnxOdc=.sha256
great summarized history and criticism of RPC https://christophermeiklejohn.com/pl/2016/04/12/rpc.html cc @dominic
%CsBrmerNX/ahlsc9ZGiqQFP8KXOWucXkrsLSihuAUvc=.sha256
%UZh/rXDS7ic3KBew2s2nQPiC9riiIMVPl1Cw//i7z7c=.sha256
@mixmix @dominic yall need to get your octopi under control over there
%h1PBAJi1s+0mMbaMdFEV3WOdZq/5kO4Pcr9u+HmPnUw=.sha256
yeah, when you get >60 messages it can get up to the 3 second range
%iE1n2vs08LchfP+CIb4swtNPBfAlimpda5FsB+k2ihY=.sha256
%ao10IvhIp5n5qvXRs+4cvOELGDLwEDugHxXSnvgRG0Q=.sha256
%OU3DBrB/smgxx9xOUwplEHjRnLee81Q0p90U2trSRAA=.sha256
Yeah Ive been noticing some performance hitches. The long conversations have always been slow to load. Everything else is temperamental.
%wLq0TMoCMefQOubg9YjhVRJ0wjLWl0RVo1B07B1Zalk=.sha256
%Hq55Lfbo7dXCJd8UdhV6FndFCnFJMvkyaWkWYkBUohQ=.sha256
%72W75rfgyQpbO42eWKomia49YI5i7MBY0FwcwLFIGxY=.sha256
@dominic the profit-obligation is emergent, not regulatory. Fiduciary duty only requires that you protect somebody else's interests. It's designed to keep the executives from funneling assets out of the company.
Profit-maximization happens because people want to be a winner, and shareholders doubly so. Shareholders drive executive behavior either through direct structural action or by manipulating stock value. In public companies, the ownership is purely market-driven, and so you get an especially indifferent and greedy mob pushing the executives.
IMO a privately-held company has fewer people to convince of do-goodery, and, because of the more static political structure, is more likely to do long-term thinking. The best-case scenario is not to create emergent good, but to minimize emergent evil. But, having done so, you'll be left trusting individuals to make good choices.
%Z/tNSOqPAp+WpvqXXS2ixJy6QpsIS3DQ2d9jxCvNV1g=.sha256
Sorry man. Not really sure what else we couldve done there
%vnjD/M+U5nQv6G6lejEwHWa/rbYp0f45GcDDZmxILO0=.sha256
{ "type": "about", "about": "@YXkE3TikkY4GFMX3lzXUllRkNTbj5E+604AkaO1xbz8=.ed25519", "name": "keks" }
%b0unBLYAoSBbEhnsRnaRecaZnS040LDNpTt/deMTYNE=.sha256
%sZ9K0yeMvUIzCY6qT596N4P93WX/7rz1ooyGcQqNezo=.sha256
%ty/A2gpN5Sf5DV8IBd3FkWCoYRB8p2+OUXs0RxFWNoU=.sha256
%81m42Ppzbx7hXOqXgw8rZXspfVoTuSCLj+lnryo/z9M=.sha256
Yes, I agree it should be private
%Y43LcvAjDdt+Hc33FTz9JFdJuYJ1ugPK+kCLqEgcxNw=.sha256
sure
%1zUUctYJIHNd1GS2gZPbo6frXy0iZWizJ61IWHIi9iI=.sha256
@0xxff yeah, we're looking at making Patchwork a plugin to Scuttlebot, and then sbot's the thing you install. Projects that arent sbot plugins, that depend on it, will need to ask users to install sbot as a setup step. Then, they'll RPC to it like a typical DB
%SDBaXPaKaYMtRqML64POZXn5fGQl0E0WXHS/+GmQ6Cs=.sha256
dont worry, we'll add compaction to the protocol someday!
%w8VyP8xa6ACxHDPB8DM0cPAemZESLP/+mlS9vi2dM2c=.sha256
We're on it, elsehow. I'm going to bump it into the next sprint (which starts tomorrow).
%BbA3s5ypDhq5VDBPmYNtr07ZGcZujK1vAG5ZpZzPUgk=.sha256
%yqwzbwU7wMYiS8ezhb+sulTH4PqWXMBtNpxoZ+2XA7s=.sha256
sunday funday https://www.youtube.com/watch?v=7fugVGRFqe0
%NGle/Q1qmfRJlNIgyXYhbS6x7t3Us6qVe5hXJ4lc2dE=.sha256
Regular meeting, 8pm/9pm monday, 1pm tuesday
%ez8VbEpQxNJ5xynZUYfUdihQcQ9jzyevu6VjQgxEW0s=.sha256
%Fw4/55+qyyVdruNmcNzi/hIUYOGndrnw1PjCHBeA59A=.sha256
Hah probably not very
%HhwuWQwUJBlLvKFKFcYSwnZJUa49tHXKyNF3CGR9UXg=.sha256
%aDczpmhTB07mYouYZbAQfEAQoS619di0N/tGsddj0g8=.sha256
all of the ssbc.github.io docs are going to be taken down
I can factor out mentions
%ep4CV6OQQ5NMZ+sithsyH1UfemM+v5lyQVc3oWkgz8E=.sha256
%qx5BKwBmY5gZXijsBlyj2SFV5ESm3/FbunJPIym3PfY=.sha256
I always liked this story because it felt so distinctly of its time. I'm not sure if it's true, but they did often joke about how the dog would get lose, and my great-grandfather would have to walk around the neighborhood yelling "Damnit."
%5NCdz9DiuwSUTcC9JfnQuiGuh+aBoQnIuoAdLGp7/3E=.sha256
%Waq1VP6BWiv1SaSZ2ewB1R3Yk91ixjbax0GYyiyDI78=.sha256
My grandmother used to tell us this story about her pet dog.
One day, after a lot of begging, my great-grandmother took my grandmother to a shelter, and they brought home a chocolate lab. This would be nice, except they forgot to consult my great-grandfather first.
When he came home and saw it (so the story goes) he yelled "Damnit, another dog."
And that's how Damnit, the dog, was named.
%i/t7TJvVRJ7jWx+1najFPa2lRmZvc4otYvqSRcZLT/g=.sha256
I think I'd like to be there for that, actually
%/3VezBBC+ShzhRO+Y667UzH5zu/xcFkUYBUkQ3MGrvE=.sha256
Combined with a bad code assumption. Issue filed: https://github.com/ssbc/patchwork/issues/364
%PNClWaAp48yUvVHbTyPv+XyRJWLRw8xKSkbRwE0xQHk=.sha256
Ok. No special log, no.
%Q9kTp/v2D0nstrV3xtoA6vDxxOX9TkVd7gEsk9Xsj3s=.sha256
@null_radix you sound like an austinite
%RJNIBcvS/+FTtWKBKnqozUWyFu4Vol59JV9deRqjELQ=.sha256
%wBwG47vuJwacoMUKEvlz6mBeTlDZrhHKK7L8t9YumBg=.sha256
%HJEM//AfutSughPK+NR5+X6YO3IwyvpRFHKTi7YkEDQ=.sha256
Welcome to the community!
%kRdBGfQ0/Bzuts4W7E6VnHv13AKPk+vyErWEYj8fs0U=.sha256
%v/V7h5BGFsMo5XMZH+gWyn+RqcV5sathRkwbwM+Rj7E=.sha256
%bQ0wdB0WaeBWoSXx28f4Clg/8yPCiFHH3gvfBs3bB7E=.sha256
%Ooyd2q7CavNtaRyepev3q7Qapcni7S+hfZO0qZW7HHc=.sha256
%+HwhJeuF8h6s1gH3K0I0McqfcgW6O+vCipgKg0sX9co=.sha256
%h6I2rXH2zVeshNSWq82P8ixw4Ehqg3dlSq4oOL+Fz5Y=.sha256
%K/uGduSEh5i6KBxvGFWQDaDUtvNwCSKv7X02NAy/Y8A=.sha256
Ouch, sorry.
Yeah please do open an issue. Maybe we have some resource (a file, a socket) that's not getting closed.
Just to check: are you sure Patchwork was fully closed, and not just in the background? It's supposed to follow the OSX pattern where the backend can stay active, even if there are no windows open.
%HrnFGhFsP3XvMUmPZmpbWcsf9WIPxx84i1S1fOR2Wfs=.sha256
time for that patchwork pivot
%aRrv9mIWflI2dEXlU9IcnMA217MASDzRuCo8r+kJ9Eo=.sha256
hex sticker of the month club
%HtLLq2dVEbfSXzPwNIWpRPPQWcgam5AK9WkQoqXJHyo=.sha256
well then!
%3dJnQltAkakGou83oh7ipPhLWCJm5V8iENDDPnDdqAg=.sha256
%a2JoAZ1tPg2x7sx1o95Suf6RUH3P8+S2a4JCK1Y4vwo=.sha256
Not that organization couldnt be improved, but I do explain this in detail at https://github.com/pfraze/ssb-kvdb#reserved-keys, immediately after the Namespaces section.
To be honest, I don't think this is a very good design because it creates edgecases
I've got mixed feelings about it as well. (Do a ctrl+f for "dissent welcome" to see the decisions that I'm -ish about; this is one of them.)
If we do want to abandon the legacy pattern, that would get rid of this. User profiles probably wouldn't be able to use kvdb directly until some time has passed, but that's ok.
%iQltDg/9YfqaGWwZS5korBGwyXplaRAlwDKbkN3l8XQ=.sha256
%mCXnRr46sl4iHeVk1/4M8hUd7H3JREkodX/o4m9f3bI=.sha256
Nah I dont think there's a tool that could hit that. JS' lack of explicit types make it hard to do the static analysis that could catch a bad method-call, like in this bug.
AFAIK the only thing that works is runtime analysis -- aka run the code, and stack dump when you hit the error -- aka test suites with coverage metrics.
%v862jhTY0E96AW55ZfUzqiZJmLZ2wzND651gvuzGOns=.sha256
(scroll past the namespace section, there's some new stuff after it)
%DT8nvYYKesePoV9pP45cGlc1EUH7tleud3Bg+UIp0Pw=.sha256
@dominic ok I expanded a lot on the messages and other details: https://github.com/pfraze/ssb-kvdb#relation-to-ssb-messages
There are a couple spots I put "dissent welcome" because it is
%oCAg4ZqVWMREqr3FdZVpKO8ZFkstZTJjnMn00hkxp4o=.sha256
How screwed up is it, that typos crash computers.
%dFM4yoAi5KPvH4qJBl8vZea8ZBipv1PjDy5L735CPrI=.sha256
@keks I do think sbot userland plugins will trivialize this
The only real difference between IPFS blobs and SSB blobs is that Scuttlebot automatically downloads SSB blobs, and it doesnt do that for IPFS.
But that's just 8 lines of logic in the blobs plugin
So an ssb-ipfs-blobs
plugin would be simple to write, and it could follow the same logic, or do something more refined.
It gets a little more complex if we want to unify blob-lookup behind one API. If we want sbot.blobs.get
to support many protocols, then we'll just need a way for plugins to register their schemes.
%rITVHuPJv011dokZN06MQvDfkuJSyDIQTy+BQ88YDbM=.sha256
yeah, that's why I really think a custom cli app (that gets more attention) would be a good idea
%vwoRc8xDWaPzWJA1oNhm6NVtCdG1W6hIxvAWU7Sf5AE=.sha256
Updated @slip.space
%aG4FuK6jWEy9G2H/h55L23jiVd4Vf9cuv2bk8S781t8=.sha256
I think this is premature. Being mindful of non-english speakers is important, but we have a lot of important TODOs. Unless there's a community that's dying for a translation right now, I wouldn't prioritize this.
%Hh4U3P86SfN34McZRxzd2APu1mmFcAK1R9QOAyQIdwU=.sha256
It's just a matter of integration. Any other protocol we support has to have that software installed. If you dont have that software, you cant get that blob. And, each software stack takes resources. I'd rather use @mafintosh's file-syncing stack (hyperdrive / dat) because it's more modular and tries to solve fewer problems -- so it has less overlap with SSB.
%TBOyC7DhLnRvsbQYGiXQ0Pfzk8nXJh81Y6j75UPnp+U=.sha256
Yeah it's because our CLI notation doesn't support the parameters of private.publish. I dont think stdin would solve it, either.
We could create an alternate parameter signature that works better with the cli. Such as:
private.publish({ recps: [...], msg: { ... })
so then you could do
sbot private.publish --recps.0 @asdf --recps.1 @fdsa --msg.type post --msg.text hi!
%0cTA4Z+PfH7GNBFIP7jJG3JzwxqxYnc2gNg2eM17jFQ=.sha256
If I understood it correctly, then there's a typo above in getting of todos
No not quite. In the example you copied, the todoList
object is not a message, it's a KV "document" object. That's an abstraction over ssb messages. The messages are combined to create the KV documents.
when can I install this?
There's no code written yet, but I'll let you know
I'm wondering if this is accessible enough to be the first database that we teach students
You could, though this is pretty experimental tech to give beginners. PouchDB might be safer.
do you think you could fake relational database type behaviour with namespacing?
Maybe someday!
%M+E0h8cKwYiDD4qpuB8QYNmlGHOIQdIb0Ks9bR7eNA8=.sha256
Looks like @dominic finally smashed that read.abort bug.
%YH1rgIEfIVYUg7uxoDdfzQHc4JCAisu3EcJPODlSLmg=.sha256
%cQY5Xe02+0VYwM2++UVEWpRQUU1Uw2OMF7elx0rGgZM=.sha256
It's really an aphorism about planning, not a statement of purpose.
An interesting anecdote about logistics --
Napoleon's defeat in Russia was logistical. France typically would support its army by looting food as it moved. During the invasion, Russia responded to this by burning down their own crops and cities before the French arrived. It was extremely effective. By the time France made a final push to Moscow, they were losing 6000 men a day to starvation and disease. When they reached Moscow, Russia burned it down too, and regrouped outside of its limits. France realized it couldn't defend the position, and had to retreat on the same path it came from: the path without food. By the end of the campaign, the French had lost 480,000 of their initial 500k in the Grand Armee. That's 48 for every 50 men, most without firing a shot.
Anyway, there's no reason I brought up the phrase, I just came across it and liked it
%59GdPlxE8MZpEpsQPwDYNRRCED7KWGzXnZcsZ2WsJPI=.sha256
is this always about a link? or can the key be anything?
Anything
I see the namespace name is also the key of the key?
type: 'about', about: link
?
Yes.
Does this create the same patterns that patchwork messages use?
Yes, the same pattern that type: about
and contact
use. It'll be backward compatable with them.
I think I'd like to see a spec/schema for the sort of messages it creates, higher in the readme.
I could add more detail
%iNN71AgfF3PGSM+h+BgRPDnZWAn+89B1uSq4dzextWY=.sha256
%83SaZd+wbQigIcE3X22jlO1UFqy77SV7ZZx88Hzz0Jc=.sha256
Old military saying: Strategy Is For Amateurs. Logistics Are For Professionals
%cYqnikDz0gDhkXeF+KSFNwTtcP8xh/hyNfglDb3hS00=.sha256
that visual
%OWd1/Iexlj0IMUF8FtXow2BDcRW0UvA16LS9TzjWVP0=.sha256
pagerank simulated this, calculating the probability that if you'd land on a given page if you spent your life just randomly clicking on links. I think the key here is that pagerank is based on a model of what humans already do, it just makes it faster.
I do like that line of thinking. It's very intuitive, for a ranking algorithm
%cQsjuyrkCtOMxsq/q0cpoKPO7VD7ycG93rRQCn/l/Ug=.sha256
@dominic some of the graph analysis papers mention "voting rings" which corrupt the reputation analysis. Some of them, including Advogato, used a seed-set to detect the rings. (The seed set is N pre-trusted participants.) The amount of trust you can get diminishes with your distance from the seed.
PageRank never mentions it, but, in practice, Google tweaks the rankings by hand. It's effectively the same action as a seed set. They'll exclude malware sites, and boost reputable institutions' sites.
In Advogato and Google, you're actually seeing a social trust-graph, that flows outward from the dataset's owners.
%Sak23eyoy4SqyCTSkFmHjiB+5T9MPPVBTtk3UvSGCZ0=.sha256
Yeah it's really just there to give new people something to click on
%RIzOS8hn+YFllNFN/gGIYhSi2QmTYSYCheCvH8bFIMc=.sha256
Made updates to the kvdb readme. Feedback welcome. cc @cel @dominic
%wlBq3khuCXrjt24ruR8Rbufgslt4a4g72eElxAaxDyw=.sha256
%uB90vM2Oj+iGpzD3/7cigngQb6dYs1jIXYY8Pnxh8IU=.sha256
Tis a good question. I'm falling back more on channel watching, so that my inbox is the only place I have to go, and then I'll just casually check the activity feed.
Muting will be a good idea. Groups will be a good idea.
%Z+vnaRU7lEBUpP+Y82Qut0COZilrNadhdhJNyZaleFU=.sha256
Ok will check into it
%NpButBYcf/vOuBGVjEXBoN/BRMR8LXH7kgvP8VdFH+s=.sha256
@dust has it. Patchwork is our prototype. We're breaking it up into tools next
%kZ5gOpG1XJe1QrfoWSfxQ1/PM8C3/B9Ei0vtfl1h+Mw=.sha256
Oh, sorry about that mix!
We did meet. Mostly a quick checkin on what we're working on already. No changes
%mM2LkiX2G7gKUVJUxSV4pXhbAYmMsZ2wSXmlYqTsaMg=.sha256
@noffle ok, is it the node thread that's up, or the browser thread?
%kuh9bYrUcBGiv6KsLK8vInRP2wZaRKAbt+bUa82WptQ=.sha256
Yeah and I think this is an area that a rich application-space/userland ought to conquer, and a shared data-network will cause something complex but appropriate to emerge. That's rather than trying to develop a unified model from the top down, which I think tends to result in something overly simplistic or abstract.
%Y08KyU7q8cpj2Smwhj3W//vRv3fV4QPGC7WKhCbpLt0=.sha256
%Zt1BEBY9BboQIgHdWPLlEweviroYbGQhU33J+SJoqdc=.sha256
I've got some fixes for that in master. I'll publish a patch update soon.
%ceOd8foHW8gj9ZEXuV5HaVnG63GGiBpErMhHHpu1eq8=.sha256
Wow and woah.
%zkNMD6+QClStuQafiNc6uYSs3eQ3E8athoWfLclPkA4=.sha256
%e5hGaoxGJjBzf57bsUhMKyuvC+s9G6WhqprlC3n3jgY=.sha256
%d6Ij9c+Q69xbO5bKcj5Q00g7sEv+Cxj8usFcreVFGt0=.sha256
You might find this paper interesting, this is what I pulled from it in my writeup:
First, they isolate trust into domains, following the intuition that an agent may be an expert in one field, but not in another. Then, in section 2.4.2, they define 2 categories of trust, and subdivide them into 5 types.
The categories are
- Referral trust: "reflects an agent's estimation about the quality of the other agents' knowledge"
- Associative trust: "reflects the similarity between two agents"
The subdivisions are as follows:
- Domain Expert Trust (DET) is referral trust that evaluates the quality of an agent's domain knowledge. Intuitively, DET is not transitive, but DET may imply RET (see next item) on the same domain.
- Recommendation Expert Trust (RET) is referral trust that evaluates an agent's trust knowledge. In real world, the domain used in RET is often much wider than DET, e.g. CNN is a domain expert only in news area, while Google.com is a recommendation expert in almost any area. Moreover, RET in transitive according to its definition, so it can be used to propagate both DET and RET.
- Similar belief trust (SBT) is an associative trust that evaluates the similarity of two agents' domain knowledge. Intuitively, SBT clusters information providers, and it can be used to propagate DET.
- Similar trusting trust (STT) is an associative trust that evaluates the similarity of two agents' trust knowledge. Intuitively, STT clusters trustors (agents who maintain trust knowledge), and it can be used to propagate both DET and RET. Computing STT needs trust knowledge from only two agents.
- Similar cited trust (SCT) is an associative trust that evaluates the similarity of how two agents are trusted. Intuitively, STT clusters trustees (agents who are trusted) by their reputation, and it can be used to propagate both DET and RET. Reliable SCT requires trust knowledge from a large population of agents.
%8t/YXZLZ2NpkvQ2dxUlJXnW6PkDEckRh61gwQTQ+dr0=.sha256
%k/VhYgLGSPnVXFuGGTh9a0uJqO/+FIvbsIYPFcOhKO8=.sha256
%RGtFn/29gs7dOxbpQHQcbYGB/k0K2GqAUlCk0Ue1ubE=.sha256
Not currently, but we'll need it/something-like-it when we add more connectivity feedback back into patchwork. Stuff like, "are you connected to pubs"
%Gn4bdb9PWfSmBbsZWNIUL+3ZoEXv0ghyyf7XB4lL9gY=.sha256
Yeah, it has a regular poll against the peers table
%k8m1wT1xP7RBQlrF9v3+t4Cg828lhDTw7Pf+j8xQ0xU=.sha256
Yep, can improve
%izwCkLZ9bInY95eqiebe0d7MVR1TfcBzTNrC0FlAcLk=.sha256
I'm not
%yYu6UTmb1sU35iMWtaWH4f7JAmagXwhFGbBbjVj5HvM=.sha256
Yeah we can move it back an hour, but I dont think that you have the times right for cel and I. It should be 8pm/9pm Monday, 1pm Tuesday, if we do a bump.
%VzG4psRMYLbB00ea9eyHZfHXzFnQ/0PFY73v7XRblYg=.sha256
PS just so everybody's synced up on this, here are the things we're working on ATM --
- @dominic is working on gossip and blob protocol improvements.
- @cel is building git-ssb and may be able to put some work into user invites.
- I'm factoring out patchkit; the goal there is to make new SSB apps easier to dev, and make changing Patchwork easier (by outsiders and insiders).
- We're working on making scuttlebot plugins installable which will open up big opportunities to make sbot easier to work with.
The meta right now is to make the tools more usable, which right now it's still a bit too hard to use. I'm optimistic about the sbot plugins.
%zwHzxu/LauRl7yhRtSjUw+t8hhgx4klQP5iiHMfhgSc=.sha256
%c/BmDEQRG68IQtLGWD5w0wJzzdaELm70NpsWyDyk1h8=.sha256
Regular meeting, 7pm/8pm Monday, 12pm Tuesday?
%i1yKZo3cYlYC5iaP/hWmOUYT8ryPhMw05dOvZR/1EJc=.sha256
%vaVB6Jz8s5Y+OzimbJlKkBznIvZoRx4CZ1GsNa+Ce6g=.sha256
Not yet, right now, I'm just modularizing what's already there
%dCG7KP8BYieDbgnEByNUawLXp4lZLeRnSFq0T/U1CyA=.sha256
Patchkit's at 20 modules and counting. Probably another 30 to go. Slow and steady wins the race. It's going to be the best f*king UI kit ever.
%QdIN9J3TsmpFFBUKgzicSqSJVX0PS5wjDQxP768+hgY=.sha256
that's sort of a privileged argument to make, don't you think? are you implying that people here...aren't people? can't keep their commitments? can't be trusted?
That's a bit much. The Internet is full of bots and jerks.
the problem with this is that you end up back at content policing
That's the point, we do want content policing. If somebody dumps CP or snuff films on this network, I want it policed, and fast. If somebody else actually does want that content, that's on them, but I want it out of my network, and off any device I control.
with ssb you can choose what network you're part of
That's what moderation is! It's just the negative form, instead of positive.
%TABsXqLParWYXQDROIOolbjLOUzf5TDO8ILC57LMQaE=.sha256
%ncaMYRJl86MysDJEKZp6hTYjaoVvvihdjbWr6AoEqEg=.sha256
Oh brother, thanks a lot markdown. That shouldn't be a numbered list, in my response to "how many hops." It should say: 3. I thought it was 2...
%aMv/SlNvgKtsAscvpg/9iLJXMRMRTgPpOmXqwE3WpmA=.sha256
How many hops from my follows do I replicate by default?
- I thought it was 2 (friends, foafs) but then I checked the code recently, and it's actually 3!
Perhaps the answer to this is a more cautious replication policy.
Could be. Some thoughts about this:
- Sbot doesnt have any "on-demand syncing" of the network. By that I mean, you only see data that you've previously downloaded, when using Sbot apps like Patchwork. If you come to a profile and get a 404, there's no mechanism to ask your peers for it yet. IMO that will change in the future, and changing that could mean, we can optimistically download less.
- Expanding the follow graph, as we do now, may be too unpredictable of a policy. We're sort of testing it out. There are other possible optimistic-download policies. For instance, communities/groups/user-lists which you follow.
%jG3rsoKMPjlb/18tI5n4A1XYXBY9X3c9+rCFhKuDDMc=.sha256
Worthy read: A survey of trust in computer science and the Semantic Web.
My summary: https://github.com/ssbc/docs/blob/master/articles/using-trust-in-open-networks.md
For the purpose of writing software, I think it's useful to just assert:
- "Trust" is a decision to use information, without certainty of its correctness.
- "Reputation" is an attempt to measure many actors' trust in something.
Because that allows us to make these generalizations:
- Trust is a one-to-one relationship
- Reputation is an aggregate of Trust
Which then applies well to graphs:
- Trust is a policy that individuals set on sources-of-information. These policies, or signals which reveal underlying policies, form edges on a graph. The edges are trust-relationships, and the nodes are actors/sources-of-info.
- Reputation is measured by analysis of the trust graph. (PageRank, Eigentrust)
%UwT+37xOTh5mh7hLC7rzTCtDZklhx/1GS4djHPBbBA8=.sha256
%Wa8ZKg6N4ZvRk8Hcc4c5Ib6hWHG9lNOQv/S5hPcG4ZM=.sha256
@noffle just to be sure, did your npm deps get updated? (How did you install?)
%sOGLC3XHASGBynRCA4qvzxbbP5fRNQBBzvpwHH0QfDI=.sha256
%79qiNfkoCCNQ725kqKD1XmTCmpJD1CI59XdAiw8Yf/k=.sha256
%QCDl70qn09YvVWEBUxGPG+xhH5j30fBywullxiXo9Z4=.sha256
%S+t5zG1pLrqh3cy3HiDKZfmZm1dRl27k20YYak2d+lA=.sha256
%5McToUycMzKSO4M3fyYmH1uQ2u4dyYseJg+rTsojepk=.sha256
What @mixmix said ^
%gLgD9zeevtc9HzYFR/aE+YwV8oQONX6HFG7NUW2RPzM=.sha256
Enzyme is probably usable if you give it some time, but I I found it frustrating to figure out the API, and I used it with Karma, which ran terribly slow. So, having a frustrating experience figuring out the API along with a really bad turnaround to test my exploration... made for a bad combo.
%+MuUl5gYF9rz5PEbLOTRY/eLJP7JZLMn8BdXKFLGyCs=.sha256
%fRL5ARXPt1qMG3SjgQI73jQI9pmPB82Uw41AmwZSNIw=.sha256
%bfwSgK/rwQYtSmbJX3u0REjEJ6Fh1qze/8u27ZdOelI=.sha256
%NR5/KfBNr8zRGBK34jb+2u1m1i3D93jlmP/c80G93ME=.sha256
@null_radix yeah but sometimes you want to have the benefit of someone else's moderation. In groups, maybe, with appointed moderators.
%Al6XKxIbwXdhVAlxbKpwYGitulryjYDN/ZogA//0V1o=.sha256
alien
%n3gFfrvnMDubWM23UDA4h9uUgkWJocQ7pspT6JJos4Q=.sha256
Moderation
Looking for input on how we want moderation to work in Patchwork. Should a flagged message be hidden? Should it be collapsed and hidden behind, "Flagged by XXX"? Should flags only be respected if by someone you follow?
In addition to message flags, what other controls would you expect/prefer to have?
cheers
%pom3cnYo8+98MlhyF168IiGNwPcc3Qg8XgIEvjwblZo=.sha256
I use a macbook air, and I just like the iphone more
%6hACmyZsdcqkQzkK4qW7CKl+3TMXNkU0ai+yj/oCsxA=.sha256
You've caught the rusties ;)
%fhp1v+W6GunEQ6djZKqlAgrz06tlDzuw4CulUYz6q5I=.sha256
It's a weird issue. I'll get messages from him, in bursts. I think, to debug, I need to stick a bunch of console.logs into my software.
%HXcVIUtv80PS5e6PXTnh3TJPhUwDenxPrmtDoTDCj74=.sha256
@null_radix it's %n0RTEN0...
%ZdTidby0egdssHal67DQ6YooCw68PcKxfDFmXJixSD4=.sha256
I can't read what @null_radix is replying to, but I suspect the message is about that fact!
That's a bug that's actually being revealed now, by your account. You're followed by people that I follow. The system is setup so that I should be downloading your messages. We're not sure yet, why, I'm not.
%iXfaBN3kjd/rZ9wHk2VXa2OMMRSSiSV2NI9xL4li46E=.sha256
%GgeBCuIim46PyyPzPGGldwiZ0tuI+GRffvIR83u3r1M=.sha256
%RS5ixCCHMaum7HymoklIGqJbrNU1J1P3amoMK473Wb8=.sha256
@cel that's the one. Search failed me.
%U3Tg7U9+BKLTkICpGVD1t6zE3IvAl3zgvC4hS7bFAH8=.sha256
I did too, and then this week I REBORGED so I could see how they do things. Oh the humanity. (If anybody needs a photo album of their entire onboarding flow...)
I actually got myself an iphone too. It was a bit like this scene
%RE5acia9hWYWWgZRDBiDrrkbfIRDU9U4/XuyDHj/ntM=.sha256
I'm still chewing on this feedback. Not going to act yet, but I'm thinking about it.
%gLg9ek2oj3W/QSyfQ3Y2TzNmOmm980CwmlvVcmYg0ok=.sha256
So, actually the code is supposed to show the last 2 replies, not the latest, but there's some kind of bug that's causing it to pick the wrong two. I just havent gotten around to fixing it.
It does make sense to put the "n more replies" above the last 2 posts -- I did that originally -- but I ended up putting that at bottom because I felt it scanned a little easier.
%fKut83AWPLT35p0+WjTr6J/JxeKzu0MTTxaQDG6u2tg=.sha256
Yeah, the fork/reply to thread hits my feelings on this. I'll elevate this on my todo list.
%ygSRYuYQcwlCvWT7ewtWfqJhZEFKQuqCiudvNb8Cykk=.sha256
I think I probably told you incorrectly in the past, or maybe it changed. It should just be --party. But, if you've pulled latest and updated your npm deps, party should be on by default.
It turns out that our quota system had 2 problems. One was, it was stopping people from getting files, unexpectedly. The other was, it ate up CPU. So, we threw in the party
mode to temporarily disable it. (It's a silly config name.)
%+EiBaYXNyKwExPaIH+gEw+yESI3ZixxbqKrMzmwcsWY=.sha256
Nice case
I'm all about that LED art, so that's what I like to use the mini boards for. But, pis arent great for that, since they get their timing mussed up by the OS.
%IaSexJnWG4+H0TRlZZBXm3L2ED72vRCE+aSbhdn45/M=.sha256
https://scuttlebot.io/docs/advanced/messages-by-user.html
Like I mentioned in the other thread, the sbot cli is really not great for daily use. If anybody wants to make a CLI app that's actually fun to use, they'll instantly become the coolest kid on the block
%E4CTLBwVOoBjUsPo+gedvIEBX0212ieU/Nw0015xsRU=.sha256
@bobhaugen no that's ok. It's not your flags that cause them to be missing, anyway. Some FoaF feeds are having trouble getting across the network, for reasons I dont fully grok yet
%4awD8KDRN8N8C9ioEVuP1Ns6jy8AcndMy9dmMfqcERg=.sha256
have you pulled latest and set party to true in config?
%BKKj0MXib41jpAfjddfY77iEr9+d8523y7EKEfxvgx8=.sha256
%PvAKdyWQZXS6Ni3MB61tWgxR1egtz46evj32PI+Wfec=.sha256
If you want to pursue this, yani, you can ping me on IRC, or talk through it here or in github issues. We're too backed up with protocol and patchwork improvements to focus on those integrations right now, but we can support anybody else that wants to do it.
%+dozFmqwm8I75ahOzu0Z4OWSZsonuI/T0y7WfuRvaow=.sha256
%pr4QLnYPZQCESkOd732umNJNJ9lYDExw+SmXpsoirrs=.sha256
%9D0GzFdDu5uKOFptJpJLLbqWG0LRbyKMmcvjD9QcuJQ=.sha256
%Tt/LqMmBf1i2uj5AF16Qgmule3HCRQsk6fVZbFlVM/o=.sha256
%/8sf5C0Gf2LsyuS2638c3uIxzfadNOa/xLdKTLveZRY=.sha256
%x0/M5hXxv2ipEuWgSdwJTkbUDeQjlokzveG+LB8mfKY=.sha256
%F1EupHgz/TXAZD6d/j5bnw1KLTllDDEZBV34wdSlCiE=.sha256
%w8HdB2C7NFRUjb2r4CTrxHMo50Ymfs9DoVtIhWYDNrc=.sha256
LMK if you see memory usage creep up again. If the node process is doing that, then it could indicate a leak -- and I dont think we fixed any leaks in the last month.
%LDoH8oKPFyHN6yNm0liQ+xEZoyTBr623Z9n4eY4/zfc=.sha256
I dont think it does, but @cel setup nodemon
for patchwork's watch
script, which automates reloading. It's a full reload, but it's still pretty handy.
%rY9QiDshNAMiPM5l7heBXeUPEIjxxZSMrDTwH/siF50=.sha256
Ah yes, I must have screwed something up with my recent updates. I'll fix that. Thanks for pointing it out.
%/BQZ1CT4kSceBmjLamvRm+AjEGUy+9b0RpaxKmdXuk4=.sha256
%iuEgm/I3/6gCQkYlhMOu1ZyBbVC7Tpn5YqICanpbo2E=.sha256
@cel I'm seeing that too. And I'm seeing it again, here. It's funny, I just see @bobhaugen locked in a battle with missing posts
%DGi9EqB7iKavgBRBrU9FhaPlE7qF/dqZHhH4oJhT4Fk=.sha256
Do you have @xR8CGZw... in your database?
%zOO+UVREOOxZwTOlLXARpGOY+A+99f+BgXnk7NpLwxk=.sha256
The system is pretty weird! It's an experiment to see how well "weird" can work. The old-school way of doing things, where there are host computers, is easy to think about. You're either on the host, or you're not. Whereas, on Patchwork, it's about who follows you.
We're still developing the tools to explain it. And, still developing the code! So -- I hope it's not too frustrating while we make progress, but thanks for joining in the weird with us.
We don't want to reintroduce hosts, because that's exactly what we're trying to get away from. But I do think that a "virtual" notion of a host -- something with the same "on" or "off" properties -- might be useful for helping us think about the network. It might take the shape of user-groups.
%MSp2WJrW5A/Q2QJYqhusdSAMAQIDwkEwBF6rc/BMyhs=.sha256
%i8ocALBMfpkHKiXHc1AR1T9ihBCHOazLH6nox1it86c=.sha256
The sbot api is documented throughout https://scuttlebot.io/. It's mainly meant for administrative or debugging work.
There was a great little CLI social network app that somebody published (not for ssb) about a month ago. I was thinking it would be great to port that to SSB.
But, right now, there's not a great ssb cli app.
%LwoXi8Q6kB9aU/hde+kVViz1Zo/9Ml/Jy6CwP4L8sfI=.sha256
be designing: a service whose purpose is not to capture attention but to offer maximum content and knowledge quality with the minimum friction and waste of time
%0t8Z8jY2gtCWK7QQhspWJ4tAb/3XuIx8QjeCv8+NK9A=.sha256
%m3iMZKZ9+sFGebaS7pepnostGKsOuV/n+6YdMWO6GHs=.sha256
(It's against maritime law to decline a boat party invite)
%h/v/7x8WmIq/pRHBdq7bR3P1raP8r1p49J63Q8byPLU=.sha256
Got invited to a boat party. Pushed a bunch of PRs and I'mmmm outta here!
%HH88p+bzbBxVdse9gihlylVvM7uqswKXxcQfYCR5Dgo=.sha256
That's a lot of gigs.
Are you using the electron version?
%caEiA4WfWnhe3rYwno1SouFc8VwGbSCGDxsfRkUKkVQ=.sha256
%wXvYdh9zlM7gP2c2KBHYQCxwJTv9ub6P4d8ZPJYK8PY=.sha256
- was a bug. Are you using latest? that should be fixed
- can you expand on that?
- yeah, this is another recent fix
%77wGzfjn39xTroX2wtacZ6KQpth3ygEVZMrCrCBg358=.sha256
We're going to land sbot plugins soon, and then ssb-web-server will be installable via that
%eW3vH+UQr1/e1DTWBon3oPso4M1z0LndI6E2XTLPnIA=.sha256
Gramatik // Satoshi Nakamoto (feat. Adrian Lau & ProbCause)
%0s/jw8W7zJe3oCFwwVIsU8cc1fxxXZyNElA3jZ/QuCs=.sha256
%fDcxaH/9k9M4iKsdpcaDAgdBAUF5puhQRQLJ0OgwoX8=.sha256
Ok well we're going to have a lot of them. Should I make a patchkit org to avoid filling up ssbc with these guys?
%mVHh6B5L+uw1RfwmfTxqoencNJPbvtirN81KpHDT4UA=.sha256
question about GPL stills tands
%NDAzR1F0SNc5Ry44moyeQV062hB54SSWXn9HOGslpVE=.sha256
https://github.com/ssbc/patchkit-stepped-progress-bar
I am. Some are just small, so Im putting them in the main patchkit
%c9hbGKmibmm/J4viu2PaMMpQR3F9vaJcGu/EP2Q+h30=.sha256
%KmPyO9Zv2L7Dce4V94dUDAjpzBlKKW4rEnobO56GnRY=.sha256
Should Patchkit be gpl3, just like Patchwork? I'm pretty much gutting Patchwork here. If these are MIT, then Patchwork is pretty much not GPL anymore
%P+RszBTnV+HwQdwf2RZr4PelyG1gp9801p3p3Wmqmvc=.sha256
@Yum511X... is a foaf, and I'm frequently seeing @bob reply to him, but graabein's messages come in much later
%W3ANSZT8axU955hdxGDSlOsro/6HhsUE6QMoLmJtzrc=.sha256
%ucD77rKIHVALJj/odvK8WUS5c4KN9gLs8jyHLHM/rxE=.sha256
and https://docs.npmjs.com/getting-started/fixing-npm-permissions
%3jjHW7WxKrKrraC7mYTAQ27gDO/f6HcJFVIPbz3EaAo=.sha256
See also: https://scuttlebot.io/docs/config/create-a-pub.html
%P21d3w9ntwFFbyxQCilx2tYfyMLq/xo6E+P/ZFFbcbg=.sha256
Hmm, perhaps that is confusing. That will follow. The intent is, once you both follow each other, you are "friends."
%TAS6AtDIeY2iXn34Gm3PF7iDkpheJiD10ZQDnu9RoiE=.sha256
I'm not sure why sbot.get would trigger relatedMessages,
I'm guessing it didnt and there's some coincidence occuring there
%T+cVcLpH4+PTDzGvXUlq8SIQMx9hdFhbD30s5NRYU3k=.sha256
@dominic I bet I see what's going on here. I'm not sure why sbot.get
would trigger relatedMessages
, but I can see how relatedMessages
would cb()
twice.
Suppose you have, in your db, messages that link up to a root message you don't have. If you call relatedMessages()
on the message you dont have, you'd get an error and n
would be set to -1
. But, the recursive related()
calls would continue, and they increment n
without checking if it's <0
. That can lead to cb()
getting called a second time.
%b3Dt8Li6D7PZT3nWbRwFWgbctrv1zUOwvORLtq9SJpg=.sha256
That stack dump is odd -- /usr/local/src/secure-scuttlebutt/index.js:524:7
is inside the relatedMessages method...
%KZuf6xoCgeAhklnFmj9r1jS+R22ythy/NO6upYzk+BY=.sha256
I've been getting a lot of these lately, no clear cause
%9glQeCVEYrOupzB+NCPuqpk9JCzdOv26tgjT2Wd5Idc=.sha256
Yep, I got that too and made a note of it. What CLI command did you use? sbot.get?
%ALAuhBwHYwya9Tdz/x/qRnkHEGTLMtmdxpWewOZcWQM=.sha256
Coincidentally was missing for me too, until you mentioned it, and it suddenly decided to show up. (That is a total coincidence though, we have no fetch-on-mention mechanic)
%VU4vkBcK+U6YnBGpICABF85dNuz+57LwJAm7TiPIYwU=.sha256
%zN974kMpyzKHLDmj3ip4nkvwy3iqZQ86bhsp7VN2hRE=.sha256
I cant get the picture zooming to work, don't know why
Sorry about that! we've been getting some reports of issues.
%3qTVRJdwO71j0zOtdoZ+fP1uAILs231CWUHZl+4yXOQ=.sha256
%jPIl20NqMfxbor4KIG7td0ikyKmh4lBKdVIXkXXggg4=.sha256
Yeah that's for @larpanet. Check the activity feed on there, is your friend a recent follow?
%6A4AEFcmZT3qn2aHvT02eccjrT+8z2GUBlAhjgz7zpI=.sha256
Did he use an invite?
%djp14QuG9lg/qPb/4Bxt4BwxheCMfUjyulRzaIc/SSk=.sha256
@dust yes, a reader would be
%Q3QLD+vDxqdddF6+g6jhq+XvCUB8BRioE8s2v+dkiWM=.sha256
%CWgBjMtiXFXxyjT0hgd1bEhZONCVtP9xlo/tE8vR1Ho=.sha256
%1QqHXAWXMr5Z4HzQrSV5uEKCS76+/rp+2m2dlslkOmk=.sha256
what happens?
%y/gUn4+bUqbjwbVqjfxWjr/6ORtGIFPMp6kCEjlNWVU=.sha256
%7ak2h0F6eUwCeD+zeSjqQcON5RBgk/Eo2kbPkeQoAcs=.sha256
Tried writing the tests with enzyme and rage-quit within an hour. It sucked in so many ways, I don't know where to begin.
Instead I'm just creating demo HTML pages for the elements, and running tape tests against the DOM.
%uCeiEOx1ewaxlPV82Bizm3v5dushcCePHi/v2YxKTGk=.sha256
%lDbdYhbEVOzpX2CPKJY601hjH5WPX+UviqPFVRe8a0c=.sha256
Yeah, I did that because inbox has a fixed number of sub-items but activity feed doesnt
%1YUGcp02ucYm0w5kmq+RdKHf+P2iRA86RuUiYaJutFs=.sha256
https://github.com/ssbc/patchkit
It has begun!
%S7Q8cFw2veuFEc9445asmxO/uT0ULfMUmvXu45eJ99A=.sha256
%i3LVevm0VcAPWkyvLk/ffyBBJgufz9XiDjv4IBwKk2I=.sha256
@dominic if youre gonna hit the blobs stuff, then Im going to start modularizing patchwork
%FLO6jLeAsOse11Zqt3lyiiy3fpuJRzKHgdcV3dXveRI=.sha256
They are. Look at @0GLMsG6... for instance. You should see flags by a few people in the about section.
%XEefcZNqT5qeFKQOYD5DGJvrMMW9hLq0PM0Aq3hhyN0=.sha256
%uEbqpbywzlFXiD7f6zgHmizMyk9qpijDd/Hoz+eVdSk=.sha256
Vectored Signatures, or the Elements of a Possible V-Algebra.
%F7uyXm1SgzU4Kuj6FH0VwwCZatEvSewJrcGIbo71+Vo=.sha256
A major war's starting in Eve Online. The Imperium is being challenged by an alliance of smaller corporations, funded by the banking system.
%an3Ibkx9c9I0Efmyhxaiq5Sg14t5UrYOxOlq7DrZPq8=.sha256
Oh gotcha
%+8QHfu0xPZ2iy01Kn4oN4WQGPRvLLLK3mz0xescTR44=.sha256
%Sme3bL/ZkU2WAiOh2INBWxdoGhaj2T+a5iEoaapkXt8=.sha256
%QQu7TGU102v+JaunGj5PxBsJ6EGcg6TVPtwbuJvq1qE=.sha256
@dust nah, party mode had to do with limiting the amount downloaded per day
%AOjYGuFgA55RcOzVJ5yIQhxLvEW1kT+9ENBBFsB9F1I=.sha256
- Scuttlebot plugins
- Application-driven blob policies
- Small patchwork tweaks
%skz5nHTpEgmm/woIrnbGznMyQnE4gCwrlHVBvWM7rR8=.sha256
@dominic hey, is that dunbar limit still being applied in foaf replication? I just looked at the graphmitter code and Im not seeing it in use
%Gwk4qbSvx5adfA0twz3Sq23fLo8BME98g9HzunKCYUw=.sha256
Yeah, good small task
%9iYkmck5HV3OQTSF4utg1hpZWEgu7eFEQaeYOP0wOWM=.sha256
Yeah I know. Doing the proper responsive nav is just one of those todo items that falls low compared to the many others.
%Wf7f68Pc0VQjtugsVzASNiYCBTYH1XBu8pPklhetVb4=.sha256
@bobhaugen that will always be possible. The weakness with Patchwork's electron install right now is that you have to download and install the thing manually. I want there to be autoupdating.
Still figuring out the shape of scuttlebot & patchwork though -- if the new plugins project for Scuttlebot works, then I want Patchwork to be an sbot plugin
%3fJN07ka+kYBwjbuW4QJL/eG9apXkKeZmbX1I+J/rJk=.sha256
Yeah it would probably be good to get that nav responsive
%dfOB1qFzfv78mD7Acmz2dGDNWI5QXkdsDz5lLpGM+Oo=.sha256
@cel I've got a plugins PR tracking now, and ssb-notifier would be a good first conversion. I'm thinking I can convert server.js to autorun if its the main script, and otherwise it'll export the plugin interface. If that sounds good I'll send a PR
%dRNqgqjjjTuROXpmHGDQ/VlsJda9FENujFJmxAcqguA=.sha256
You now have a full clone of the current ssbc/patchwork cosmos on your machine and can search and view all of the scuttlebot database without internet access.
Somebody put this man in sales!
I'm not sure if it connects to people automatically if you don't follow them, so the onboarding/initial setup might be a bit tricky...
When people join Pubs, they announce the address of the Pub. After seeing that announcement, you'll autoconnect to those Pubs, and to other people on your LAN.
You'll connect to peers, no matter what your relationship is with them, in the hopes of finding data you might want.
Bare with me through this technical trickery to seed your friends today
If you are on the LAN with somebody, you'll automatically download their feed. So this may not be necessary?
If autodownloading doesnt solve things for you, please describe your situation a bit more, so we can build something nicer for it!
(Still, nice guide @cryptix
%BQsKuCL0XMF0mUuNJvB7gp0MrSml+44JTleaHMvOhP0=.sha256
%rk5WRTD3B9qFI16Krv2ufnwsnn3vfnxSvNB4MTjJF6w=.sha256
%NxvcMhZzY/SETCE32+Hoa7TXs79Zfhcqy4ZjyoWtXkc=.sha256
Yeah, currently flags dont hide anybody/thing yet
%x/yFEMp+7Jb10asC6LsAHc3lLAoZu+Jtvg5FX7h1Udk=.sha256
%AUBxr55RYo5cA3yznr4lU91ZjtlDXsT+wmQ65z5V4lo=.sha256
SSB database has all of the messages and blobs/files published by people you follow, and your foafs
The change will be, youll only download and keep blobs that your application needs, instead of all the ones people publish. Big difference!
%NsYINFjTtIpjnWw/prUFMhzONlskd31CBUHlo70Inl8=.sha256
We dont have a lan-only flag, but it will work automatically. You do have to be reachable by multicast udp for it to work
%PEuDrRrLL02g5DmYVDLUK50eIFwOkBI3DcZ1dfVFoj0=.sha256
Yeah, that's about how much data is in my .ssb right now.
We're going to change the blob auto-download policy soon, which should help reduce that by quite a bit.
%YIeVBknVuM4H27tt4YVYXJf/cOLOtBlTf5s/oYaDCuo=.sha256
%R8Yh4IyKfil+UCACsnac46z5UGGeKsCzP32ntchkyy0=.sha256
%UCMZB6Cxuckh+lJ9r0CfzRA8DJS3jxA4wxAX1vM4ELI=.sha256
%nHyODCcpg/W2o72zEzt6+g6AlcZbZVqcmIwDjMlmmqI=.sha256
%XUMjGU0kc2sHgUSF+9Gv0krN0JRuEhdzYHVkOTAFh40=.sha256
%vp8q1Hl7QKhjbVdfaaqAv8Z/45VJDeMmKj5AahdGSxc=.sha256
Im subbed patchwork-design, patchwork-dev, patchwork-org, and scuttlebot
%tDaf3CmywW3jdUcOSIyekvjjOBXvELkmO+01i1PDSOs=.sha256
%MnlGq7VDGI+6jM12xfUPHnUAOtxfn+2QHvm6L+jZA84=.sha256
%D9s2IJYjNvsKTnOu9Gor5AgCZFZMatocQOP+uiYffiI=.sha256
%4cltJ42MWj3USh1Vj6thgkwIQjGi09BL11UxCeboBYU=.sha256
%/3Lkiw39RCvoR1Duh10e2kn1OvlOBZI/3r50xn7aK8k=.sha256
yep!
%NRu9DvdpXZsZWu+Xv3RG+CODMs7yGxQ8QZYgTthBLzs=.sha256
Blah, missed the channel.
Electron: https://github.com/ssbc/patchwork-electron/releases/tag/2.7.0
%D+UutUJ5Sk048MoywQQoN9eH9gPlc0QM1jdE20F3tFA=.sha256
Patchwork 2.7.0 released
Changes:
- The unread count is now in the favicon
- Inbox now shows all recipients' avatars.
- In-progress message drafts will now persist, if you cancel or navigate away from the composer.
- Search is now much faster
- New follows and unfollows now show in the Digs view, which is now just "Notices," instead of in your Inbox.
- Users will now show up in the search autocomplete (but not in the results).
- Code-views now overflow scroll horizontally instead of line-wrapping
- The "Activity Feed" is now the home screen, instead of the inbox
- Messages in the feed no longer expand when you click a link within them
- Other small fixes and updates
%lWPmISexieZZYQiZ3bVqjkWVzFus03VvEBUGVkwZNP8=.sha256
%aQ0X8ITNA6LYkvzmxDxBvVvMuYDqNYglXk/K5wQGxBk=.sha256
merged, will be publishing a new patchwork soon
%KS66xKji96LmagaC95SN6AIKYzEMTc5Y/F1JBu06t9g=.sha256
didn't close down properly..
I'm not getting the blob you posted there, @cryptix. Is that what you're referring to?
%K2Pixug4fHOnWcgIckkrYA6ODxNCDmKsXvtNMdvJ2RQ=.sha256
hi!
%H2Pkeo+3gcD5iwMJivUMIuXyprUH86A+ZxS5Zufas9o=.sha256
%KQ8Efo0CT9Ag+bWwNn6yqErhNhNupDYM4VZ35HvKNNY=.sha256
Yeah, this is an issue with browsers, but not nodejs.
%Q4RVSALa5oNUdsPMeFJWPJdHTbS87hO72zqmN/N2zfc=.sha256
Fixed
%zIm3fqGAWjRdhwpCZx8go1hz0yHhzGxxiO4cXHSEwlw=.sha256
Whoops, yeah thanks
%NCLiYo5E/aWGpoGUlbtv3kBXmcluAIuDPACeCKe57RU=.sha256
Your ssb-markdown updated prematurely. I just merged the PR for handling it, so pull latest and check now
%ohN5IDTgNWnwwsQsA6qoQG5zTj8HSPK6XLqt+gmUnMM=.sha256
Meeting at 7pm/8pm Monday / 1pm Tuesday?
If we need to shift an hour for the NZers because the DST shift, we can.
%ai9HkjW7Tfyh3GBC7sBMItzA19OgKhUUmk2TxN6Ey0k=.sha256
@cel did you update your npm deps?
%vS6LhyFUFeAi1ok/XG7+tBT25+jn5s9lHiHA3BGiiLQ=.sha256
What will happen in patchwork if nodes have intermittent connectivity?
Patchwork's network is called a "gossip mesh," which is designed specifically for bad connectivity. If you're able to reach anybody on the network, you'll exchange data with them.
The exchange happens in the background, and can happen after you create the data. So, you can make new posts while offline, then go online and sync back up.
The result is more reliable, but can be a little unpredictable as well. If we're on a LAN together, we'll be able to keep sending each other data, even if our Internet goes down. But, if our Internet went down for 5 days, then on the 6th day, we'd send and receive 5-day-old data. So, sometimes information will lag behind.
We're still learning how much of an impact that has. So far, it's been ok. And, the nice thing is, when somebody (cough me cough) nukes their pub, the network keeps working just fine.
One of the Rojava questions is, can they do digital currency transactions in those conditions?
You can, but I would recommend that it only be attempted by people with expertise in distributed systems. An engineer that's not strongly familiar with "Eventual Consistency" and the importance of "Partial Order" could make some costly mistakes.
We're going to do our best to educate everybody about using SSB well, but that'll take some time -- so, for now, I have to just go with that recommendation.
%1VfZQAvhlPX8ZpeW8tYM3DaybWEpRH1DTEnTKFgdsjw=.sha256
%EtW+Ur5ojBv5BgLOTGuxHtMxlk12mBjE6balnZuv2jk=.sha256
%3i3BmgRUezZJkA1DdnY49Kh68AOh812+OhpmRmcKi9I=.sha256
yep
%N9HtJG5aeFHpKehMRiSpLilqoklxXk8S41jC3bo/UPI=.sha256
%1jm2xK+5ncNkx+FRAG1Fe9q8JM37cW2qSSNezlugwfk=.sha256
for the first blob-want*
%+eQD3aLxX4eo1uJkIlXKsE7cY+u2iph2RW3Lev7Pqtw=.sha256
if the pubs just tried to get the things their users wanted from them, then you'd have that
You'd need a recipient to be online at the same time as the publisher, for the first blob-publish.
%1MSs/ZsiZIrLBFme1Mr95ppcHQBqYEQa/ey6dxjmN0g=.sha256
I can send you some invites to use.
%QTU3QBgMyGxl+/si+MsEHNwlF41BjMVlfSs+YSZ+So8=.sha256
The nvm
%xHzdnUFTKgMslnc2UynRQFPTwIvm+GJdTRAUYwleLYQ=.sha256
@bobhaugen yes that's the easiest procedure right now.
%AvYuHnFIyVARhqhvNGyF8CFJ4dj/c5vu1zAhvuMBrho=.sha256
%yx1qMoVxi5iLqa9A98pjQsM8bt/38jsX6xaPq/c7nRk=.sha256
@dominic I figure the pub should have an app, that basically follows a policy of auto-downloading for its members. That way we dont end up with an availability problem, where somebody publishes a blob and the goes offline.
%UlYByI2ol3Bkxcvbad1wm8JkhB4RkEMClYwcBmRQwok=.sha256
%vhVEZuat/p5Fmv3YYMmNZz8Ajdrk01Dvea0kiqi4q/g=.sha256
Semantic versioning is a trust decision, we should improve the trust using code-audit signatures. Only install the new version after N trusted parties sign off on it.
%ThXW58jmoesrP57xqCEFT/+ylOXYfFfKyc3ij4cIfD4=.sha256
I've got a few good projects to take on. If anybody else has any, feel free to add them
- Implement https://github.com/pfraze/ssb-kvdb. @arj mentioned he might be interested in this, but hasn't confirmed that he will.
- Small PRs to improve Patchwork, in behavior or aesthetic, are always appreciated. (Smaller are better, for Patchwork.)
- Improving the Invites API
%oq2eKzUSnOLH6to8plbrUULG/lWvdQ34OZYVyvY9gUA=.sha256
%3HrZBPmiZtCpIHPAxDQnyOFHxwx3FxVTsABanVeRO7k=.sha256
are there any unique protocols involved?
%BGArPggRGWs210J3BaIGfwiKqPbQUf/7CVTb4tXL2HA=.sha256
%+NA1JLAkfJK+Fpqe3Wut5TJVvkM63sbnqdpOaGlJ170=.sha256
%Bbd1zp9zIp2xldgb921DDL/6UvgAZP0v+8z5Zm9pNBM=.sha256
%fzZ+IIZ891V7lcr0XPGwyKDluF9oMWE6WiJuu4CY/58=.sha256
%46uqXN7mlmsveO3HbiDgP6+Rordzfk1m0J07KUK5HNQ=.sha256
%c+TaU6571h5Xb+/VZahoNW8MQVgaPlLxS8w3A0QWqZg=.sha256
%oqPBfzIbcFHmWzwwPQWPCae/MRLwRZ247FA0pOFsyBs=.sha256
%w6reXbyMSPOEX2mgkCvzTTMMZLf6557EPrbIP3/EPts=.sha256
Also, how large is the .ssb directory?
%JKHIvTIWgoQFY67NT7/STOyLSU62VD25cAwP+OgLgOM=.sha256
Yeah, we've been waiting for a good time to add signalling to pubs first, but if we really wanted to push this forward, we could talk about temporarily hardcoding a single signalhub instance
%uDQ/MicoR+Tqgw4tZuYj801Ul3JL8pEXM2p4fxTOZto=.sha256
{ "type": "about", "about": "@HogU/jcIAkSD/Owzjwv4X140CEW0FIco7QxPM47BVa8=.ed25519", "image": { "link": "&MoUR36i5h/1Jyc3Qt+SUGhmB8Nfm90fx28TUFCdFAL0=.sha256", "size": 372688, "type": "image/png", "width": 512, "height": 512 } }
%IGNlaH9BE52x6B1V92EB6foaY3Rp0BVZErrwtXMtxes=.sha256
hear ye, hear ye:
@slip.space is the new slip.space
that is all.
%+Fu2/JUd16TlbuL3UoAiBT+QP130uzDS7vnPJBmy2w0=.sha256
%d8g/ZbDAvFB1lu9vc4Fj5C1KT+U0ZZpA0ekhi6ouxXA=.sha256
Agree
%fWGvkngIvky/HMyykExw1mnUa9oiE9CwyH0UQMyouVk=.sha256
{ "type": "about", "about": "@0GLMsG6IgXdv+GjG0U5UnZlwxHnomlfmrlWugx8i4dg=.ed25519", "image": { "link": "&nYDjQMWDyexG48Z+w1SC7n7gXi2dmd+AAYIWL4PHEOc=.sha256", "size": 656749, "type": "image/png", "width": 512, "height": 512 } }
%34G3dZks3lS7w2xZus9x7v9VL2guAMaaJJPzrCahWSU=.sha256
{ "type": "about", "about": "@0GLMsG6IgXdv+GjG0U5UnZlwxHnomlfmrlWugx8i4dg=.ed25519", "name": "dead-slip.space" }
%hyo59lmDACf1GW8yxh46/LsIlqxMtgChq+OPvbQzK+o=.sha256
%kD6fLs52/7jhjem+zNpomC9ko1RdQJrHoNV8bYSDxeU=.sha256
%bwU6uk9sxIsUsGCkVQj9T0Nmy01lZE7uCt8YIMtCDPk=.sha256
%5ZJ0bhyK4qc2JnnQ8NqlQ9oGObb7zDTdEXWkIX7WPhg=.sha256
%o9MtNkpmFBMK8shPX4Kp3KKlxSFtcJ8S6/+ioTJWml0=.sha256
%jr6roQwVTXf+SMlilkh4KQH89sZKtqju0gTAT0zQH4Q=.sha256
%bKd3etoWqyD5yDjBatH2r++Mi6+rPtV+DPf+cU2P9mI=.sha256
%2Vc797cKOAQi9QSZTDZNS9IpxoAePt1245c5Acagg7k=.sha256
@dominic skeuomorphism is art is a skeuomorph
%a4O9kuWekVAtrphaNkhhCnnL0DpXq6bCBEgMftcojBI=.sha256
%fOE4rd4b5FC7byf/4Qhl4EAKNp32ubHbmND7d4hXuV4=.sha256
@dust so I started reading the utopia of bureaucracy book and fell in love. Great read. Im almost at the end of chapter 1 (so I read that great intro and most of chapter 1) and I plan to read the rest.
Here's my (maybe controversial?) view: seeing as we're programmers, we're basically wielders of bureaucracy, as the software itself is bureaucracy, automated. Im not uncomfortable accepting bureaucracy as neither a negative or a positive. I've always had to remind my conservative friends that, there is no such thing as more or less regulation... just different regulation. So, Graeber was singing a tune I liked, from the get-go.
The power of bureaucracy comes from its authorship. One of Graeber's recurring points is, bureaucracy gets imposed from the top down, as an extension of structural violence. And, as a result, it's often out of touch with the reality of its systems. Wouldnt a fitting revolution be, to make bureaucracy self-defined, by the people experiencing it?
Whether that can happen or cant -- whether it should happen or shouldnt -- you must admit that the present battle between the FOSS revolution and the VC-funded industry, reflects the question: of whether the future will continue to be run by finance -- as, Graeber asserts, has occurred since we left the gold standard -- or by programmers? Thus far, theyve experienced an uneasy alliance. And with the recent belt-tightening, we're getting a reminder -- when the music stops, remember who was playing the music in the first place.
"How long can you go without an up round? I thought so."
This leaves us to ask: are we going to continue to degrade the importance of capital in software? Will the "miracle of low-cost software entrepreneurship" continue? Did it ever exist?
There's a lot of evidence that the VCs pick the winners in our industry. We need to see what happens to their unicorns, in the next 3 years. If VCs are willing to dump their "winners," then maybe there will be the collective will to dump them.
But we also need to make money -- real money -- without fighting these "market domination" battles. Otherwise, we'll never escape the orbit of finance.
%V1gI+lZzBBxoM8/GQmtXqj3/m6xfE17J/XaiCbVLFuA=.sha256
%u0UigMfyKmHJ0Knq0bj59YID7BLmdMMEK6wPHxB7ZeU=.sha256
I suppose we do, I'll make a todo item to look into that
%kcpW3vECx6CNLSbpJVcj1OG2/zbdQ8SWIo2q0Fun6vU=.sha256
Patchwork is actually different. Every time I publish patchwork we gotta make another release bundle on github for patchwork-electron, which involves both @cel and I.
%fhimY8IgYY3idVBB6qXoEzQ3xlGppmWnejY5Fbo2CGg=.sha256
Ok so do we special case link
to jump up a level?
%o7+eTfygLVsiFtVqUrHqwyC3rDpMY1UdWZlyYaRaVE0=.sha256
%5HYwieY1LSflQ61Fg+15EY8QoS9cjfenQCpy9ryDu2g=.sha256
@cel @dominic we were talking about making ssb-msgs.indexLinks go recursive. That complicates the rules a bit, so we'll need to figure that out.
Right now, the rules for a link is, they must be either:
- an ssb-ref on a toplevel attribute
- an object on a toplevel attribute with a
.link
attribute to an ssb-ref
So the question here is, what are the rules for the relation? Is .link
a special case that always takes the keyname above? What would be the relation name for...
{
type: 'foo',
foo: { bar: { baz: '%...sha256' } } }
}
Would it be baz
? or foo.bar.baz
?
%YFsIsH3J5LWYJ3skPE8u5fmo6csnwRNekdFgAdG299c=.sha256
SSB-Config has .pub and .local flags to disable public/local replication, but Scuttlebot doesnt implement it. Should we get that in there?
%MvLZs8JJHecbP4xyUV2Vn8Ocbby/M4IGyuQ2V98elR0=.sha256
%i1WKqmOCV9bvTskhoO/eW8JYWTFr9HvNjbbN8raEyT8=.sha256
Nah, it's just a complex feature that over-extends the existing arch. I'm wondering if I need to punt until after I modularize, and add tests, since I could refactor then to handle this right
%ONsafffSfmiZXjH0tSiQLNseTDHdlqCNckv+iT0s344=.sha256
Actually getting post edits into the UI is introducing more complexity than I expected. Worried about bugs and kludge. This may take a while.
%dTsQa9n5p/9vDk0VquMbYA0vuhlByiSqoJjUo1Y2WpQ=.sha256
Yeah that still seems high to me. @dominic is working on gossip efficiency so hopefully it will improve.
%mKmZH8cIwdh91R6lTz+c5JFcpJcNMeAhVANHZiy/dEo=.sha256
%6JB7vewS+VRWRh+S2DhwwcYT2OMZqkrPHAxh8cdahs0=.sha256
Well there's also this really good solution called SCP IF I REMEMBERED TO USE IT WAAAH
%VRgHrOT4bmPVxkqvjZePuoVc4o1UdRZEsdXbAoOiDjE=.sha256
%XUfFh7er8dgMv0EkrxLaRH32sFFhHmwzrX6gJ9B2Etc=.sha256
%6vT1nNuqEg5anc9669gKbBpiElZn3gf4Wb5/4z4cS4E=.sha256
{ "type": "post-edit", "text": "@dominic I think @dust's post-edit PRs are ready to go, if you can sign off on them I'll merge this week\n\nEDIT: test!", "revisionRoot": "%gVPywKpRYbzxj2Poqp6Va2sgGr0PlDd/zwvYrIaqxDg=.sha256", "revisionBranch": "%gVPywKpRYbzxj2Poqp6Va2sgGr0PlDd/zwvYrIaqxDg=.sha256", "mentions": [ { "link": "@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519", "name": "dominic" }, { "link": "@/02iw6SFEPIHl8nMkYSwcCgRWxiG6VP547Wcp1NW8Bo=.ed25519", "name": "dust" } ] }
%sl6OSB4Br528PEVSCTcts/3oH1H4NwM65gIgi8j4NUY=.sha256
@cryptix that's right, I took the coward's way out
%azkpLlQFU9fBiWWWN3zZxMMuO/D42iHXSrE03ejktLg=.sha256
Yeah it's night and day. Go figs.
%LwykneTa5AcVytSEmabhOQET9VehQSTGhHvRAwU4n+E=.sha256
%lO3eysSf82Cd9WUIT9ksuJgT+R/uITTJEzXmnhoKI5M=.sha256
It's merged into master, not yet published
%V5/zCA88e7MPVWkvEIQFEYhwkLnWnu0ccIl3q+zOASU=.sha256
%klxUpCKMxIhFnVxd3yuurF1+qN/OLitWGZ59DOU6coQ=.sha256
@cryptix ah it probably is. I thought we had resolved that, but I guess not. Bleh!
@substack I sent you another PM. Does the inbox open now?
%otvJKFshZv3I9bzKYJ1IBCEw/2wuzUCDdWb8SPbkJiw=.sha256
Ahh shoot! I just nuked my pub!!
What happened? Let's apply the five whys:
- I ran an old version of scuttlebot, and it didnt recognize my keyfile so it overwrote it with a new key in the old format.
- I hadnt backed up my pub's keys.
- I hadnt backed up my pub's keys.
- I hadnt backed up my pub's keys.
- I hadnt backed up my pub's keys.
So @slip.space ate dirt
Sorry for being a bad admin. I'll generate a new keyfile and have it follow everybody again. I'll also flag the old ident.
%LwD45GmfKvlC7i34KzN4TrPcOmVKQS3hSC/5RwDcspw=.sha256
%licHjFLGTmdBWa5w4EflQVyKUx4RBkGk4pw5MxGU0s4=.sha256
Ok, back up your ssb directory, put this script in your scuttlebot directory, and then run
node delete-msg.js "%vyyVmWprqjKPtcjw9nB1w0pmld+m41rQp/4pvM5yNw4=.sha256"
If everything looks correct, add --do-it
. If you see any errors prior to do-it (which you might) copy them here for me.
%wdNwJPn+KWwmHQkTDM1B5oRLLr6KCKGij1x9ap5iLAU=.sha256
Im discovering the worst part of this npm issue isnt the implications of FOSS v Business, or of security in software. The worst part is all non-js devs acting smug about it
%Qt099BveCp4LiEfPbsuruwAhThjEJOIoG8d9LBZ67fU=.sha256
%QBj1R8IU4w0yEIjArVdOE1K2kV/S8/i0B7fv1LbByKQ=.sha256
%yD9pC9uDJmzmilou2aqfZHILSv8NFyxJ98ON8BXC/u8=.sha256
%bTldwdCSaBH8O4fvqNP/eNDbx3IH+pUmfrlwrGulE7g=.sha256
I think I fixed search!
The algorithm is still a naive scan-and-regex on the log, but I moved the filtering into the node process. That removed a lot of serialization and message-passing overhead. It's much faster now.
%mBTcn7hDsZU41NXbFTmBXZxyLUJL6u+BoDsnZraDHos=.sha256
@substack RE %KLPw3Sp... that's a new bug. Any ideas what could be causing that?
%HZFDUFCajhl8tuM47FLQ+V/2fkTbA8Vc57J5BtpqzDM=.sha256
Let's start speccing this out. There's an old thread by dominic about some of the requirements. Does anybody want to take the lead on it? @dominic and I are tied up with core dev, and @cel is working on git-ssb
%2x7tLuo+/Bqx7cs9RYPbVnjMkifEaGAycuBjciLQ0EU=.sha256
@cel that's what we were thinking, ~/.ssb/node_modules
.
%XefXoewJDsJ0Cnux7iapEUlmKrY0FU0HBIaZUfa9aJg=.sha256
%NbgdZoFuPnofV5OUS38M04D22Ls6rX5OFQqVsY4z1pg=.sha256
%PcvLByefMO/QJupyUrAXVkckE8/4g3kJHmqBsj67axI=.sha256
Ah, yes it is. Bad assumption. I'll change that.
%wxjPeIRezBbzVeXkAOrdrYRcFR7zS9AeMV4NSThr8gc=.sha256
%Uw7evrtkRFQQs9XhJpdOHSygFn+ozsbkKu2ASnT2+As=.sha256
%qtLSzzsxrOvSSzP/veylETcb8L1Av5mkg9g283MsxaQ=.sha256
@keks take a look at https://scuttlebot.io. It's still got some todo things (so it's not ready for the big time) but it should help
%HkYLVbzF8HmTzsKsaZNyeRA9i83Khyuc3VOp0IxIeiw=.sha256
@cryptix why are you marking them unread to keep them bookmarked? If you watch the thread, it will be in your "watching" folder of the inbox. (Internally that's called a bookmark.)
The 33/7 difference is from channels that you're watching. They don't currently get put in the watching subfolder
%At/NkY11iNinNse0Dax0aDJww0aTypDFnVB6/3ZWZN8=.sha256
%TbiUknx1XfDdxccudfDds54hfzVNCjh2N99KXtLuyVc=.sha256
Scuttlebot plugins
@dominic and I have been talking about making Scuttlebot plugins installable via the command-line.
This would be to allow -
- Easy new DB features
- Easy new apps
Like, the kvdb, ssb-names, and ssb-exporter modules would be really easy to do this way.
It would be something like
sbot install ssb-names #uses npm
sbot install https://github.com/arj03/ssb-exporter.git
And after install they'd be in the sbot namespace
sbot kvdb.put my-namespace/stuff {"hello":"world"}
sbot names.signified bob
sbot exporter.import ./somefeed
So the lifecycle and rpc-routing would all be handled by the sbot process.
We could also make Patchwork a Scuttlebot plugin (maybe default installed?) instead of having it embed Scuttlebot
%8cM++AzsPlR2hyoxPyNVKQLpo0huDTRaL7HoSuuGN0w=.sha256
(https://simple.wikipedia.org/wiki/Archimedes#Archimedes_at_war)
%02fBzT3J7s+X32fYnJLebeFRlJRQ12Tm3Z3jx5YnY9w=.sha256
@bobhaugen dont disturb my (social) circles
%Yxhrp76lr7SL+Obox5lmmYt13CGQfCfKjLIyqmvIyaQ=.sha256
%CrOsahgYd77NA7IvHa3a+5fgPT0ZXIzI3GqiT8Ozhbk=.sha256
I completely agree with this sentiment but I also agree with @dominic, it is what it is.
But then, you know.... VRRRRRARRRRRR. If I wasnt working on this, I'd be trying out new 3duis
%tJPHbJ4mK5Cbia/awRdrDK65abejL2AMLieazpB+Ywo=.sha256
@dominic then suggested we set things up so the inviting user creates the private key, and publishes "hey I'm inviting a person named X with code Y to pub Z," where...
X
is a petname of the user that's joiningY
is the pubkey of the invite codeZ
is the pub that's going to host the new user
The inviter sends the invite private key (or seed) to the new user. The new user proves ownership to the pub, and then the pub publishes a "reply" to the inviter's message saying "user A accepted this invite, here they are!" where A
is the pubkey of the new user.
So, that would help people distribute invites and get each other onto the network. Then, that still leaves some UI questions about how to discover people, by other means.
I'll park it here for people to offer reactions to ^ and their own suggestions
%LZ6VBbAC4tl/gE7mH79Wtud3LmT59y3bE5+zcSZkk40=.sha256
@cel suggested we emulate gmail's old-school invites UI. You had this widget on the sidebar saying, "you have 5 invites," and then you could grab one and send it to friends.
So, we could do that for people that have a pub. Pubs would be configured to hand them out to members, periodically, via ssb messages. They'd just show up in the feed.
%gVPywKpRYbzxj2Poqp6Va2sgGr0PlDd/zwvYrIaqxDg=.sha256
@dominic I think @dust's post-edit PRs are ready to go, if you can sign off on them I'll merge this week
%4dnYnnSm6LHK8hDFmn68o/MxtZ8dSIyAl3TY+WaR/Fs=.sha256
Improving the invite/onboard flow
We've gotten feedback and seen ourselves that things go great for new patchworkers until an invite is used, and then it's unclear what to do.
We think part of the problem is, it's not easy to find people you want to talk to. It's also a little hard to get an invite.
So we need to put our heads together about the right flow for connecting to people.
%XDzykWXP4wUngTipLxmYACYH9Wfzl7C3U2cx0J9M0AE=.sha256
Regular question: what's sucking most about patchwork right now? Missing features, bad flows, etc. Will roll them into my next sprint.
%QUz5niR3gPHY4KPUFlLH7ZbrlrIS/UnaElJAofJlJKw=.sha256
about to do a bunch of posts asking for community feedback here
ok lets do it
%UgNHFMuX2/mb4z6u2dWfRqdYm6q3zaVdnOBdtrJpD7E=.sha256
%MvOSk+g5AQagbF4FJ2EN9upoWu1Y9r6lLlfwuADgy5E=.sha256
We're discussing this on the call. We'll write a script to fix your db state, @null_radix, and then we have some theories about why this happened that we'll test.
%rWp62/229gNcPfT8708ghW7I4cVgVxH5j73UzEfyzrs=.sha256
Works great when those tricksy blobs show up!
%T0zNHL9aNmC5t0E6gxHTzgdEhwHWt9SllByppVlynSI=.sha256
I think, in 1 hour
%smp/FTRlrE8bkQ0UODxIRhB+IdrSjK8ho8kUc9NSuug=.sha256
%jvqpGCKYRuVunCEoU88mD8JIp8JlYAgOE3mhwMUhaQ8=.sha256
His log has forked, somehow, for you. Here's what I get at seq 2888 for @dust:
{
"key": "%lFluepOmDxEUcZWlLfz0rHU61xLQYxknAEd6z4un8P8=.sha256",
"value": {
"previous": "%VBfEJjeNUlxLuK0eyRzVha3TLu5PPWLwsvGgnmAdPas=.sha256",
"author": "@/02iw6SFEPIHl8nMkYSwcCgRWxiG6VP547Wcp1NW8Bo=.ed25519",
"sequence": 2888,
"timestamp": 1457679971682,
"hash": "sha256",
"content": {
"type": "post",
"text": "oh no\n\nhttps://medium.com/making-instapaper/bookmarklets-are-dead-d470d4bbb626\n\n> The ultimate catch-22 of the new Content Security Policy wording is that it’s intended to benefit the users, by providing additional security from hypothetical malicious add-ons on websites that enforce a Content Security Policy. In the end the bookmarklet has been relegated obsolete by the change, a casualty of one clause in one section of one web specification, and end-users and developers are the ones who will mourn its demise. The path to hell is paved with good intentions.\n\n> I’d probably try to do more about it, but I’m too busy rewriting Instapaper’s bookmarklet into extensions for every major browser.\n\nhttps://www.youtube.com/watch?v=n5diMImYIIA",
"root": "%VBfEJjeNUlxLuK0eyRzVha3TLu5PPWLwsvGgnmAdPas=.sha256",
"branch": "%VBfEJjeNUlxLuK0eyRzVha3TLu5PPWLwsvGgnmAdPas=.sha256",
"channel": "javascript"
},
"signature": "Pv+LWJumKE8nIOfsZxgMcg/EcR/tZeJShmiVIGizERuiAMzwzTTjg78r+InmJopJwMogEG7/W3FLTnH/EOzLCg==.sig.ed25519"
}
}
Exact same content, but the key is different.
%PVn5WP2eL64WDm2WJ+gTi9/A+goiKifXBg8uXx/wrgA=.sha256
They're going to add a mongodb-inspired query language (in the google doc above they say it will be called Mango)
Theyre also adding clustering and a new admin interface
%KqrhdtDy66qZNZCmeGOrSvhxBkzxr2v6/H8J8P+klN0=.sha256
could you run sbot getLatest "@/02iw6SFEPIHl8nMkYSwcCgRWxiG6VP547Wcp1NW8Bo=.ed25519"
and tell me what comes out?
%3wD5q7XUyL+nM/QSkysAbwii3GM1PrLsGaWqwyEr1WE=.sha256
Did you guys take daylight savings? I think the time shifted
Anyway, Im fine with that
%8iCd1op478EB5Nbq8JdMlu6g6X7rj5Nwd7m4szsZqi4=.sha256
(Im in vegas)
%8m+BlUuGXXlBqO6I1oWBOPiOWgUQmRNdbpHrFwfk6xM=.sha256
%THMr2LKZAvgCW1hlfeCAKrjs49gLKgyc1SmeSxDs5Oc=.sha256
@null_radix I think there is too. Did you try the "party" config?
%0c3+igV3+lD6Rr25bE/XO+zJ/CTM6lhsxofSuJDnrCk=.sha256
%xa7oOFGBsVins0S54m/qPnelUUXFm8RyMLYwYCyUURU=.sha256
%61QlRqM3FWEX6aBpKQRnol40NVUxVaVyI/McEl7rUgA=.sha256
haha ah sorry about that
%tCp9LJYM8vwYObln1YPEkLREpicul8KslQtlBZUjTUw=.sha256
%ucCmEXn3X+8VRGw/BxsO0VkgRKDexAIDCOXS5Ye0lh4=.sha256
%ug6a5l6sxzETORx90l7Nor375z/X8I0e+GKRRVUG6b0=.sha256
%9SLvF1ttJ6AvnXrytakFc3H9YlWDteY7aEdLH1Z974k=.sha256
@dominic yeah I agree with that. And pubs can run their own program which, more or less, sets the storage policy -- with that same mechanism
%CnFAYHu87B/EDNYkHPt4ioDjUxuDFque1VGGfLpsDu4=.sha256
%bx/0q7DKO/oCakEPzNYs/l7ABtWipCs1hSJn50LvILA=.sha256
You did! The dat project / hyperdrive. Im gonna meet up with those guys today and see where theyre at
(I think maidsafe is vapor)
%9nVfH3+rdQfE5DIsGEg+DapjxHVFcTy2MjUg+JKjTts=.sha256
Yeah
%KprNKZnA1nk84ZGXqmq1WAiIxqmuhQH6q//S+ooQwLU=.sha256
%kXccuRMw0RKE1afV1lbn4l0IQlaxEJiBqnVinIXo90w=.sha256
%6ON7VdE4zQ4E0hIIzixPidRthmXHsb328BwqY+jyN6Q=.sha256
%SZ6LSII90byzee8OvpGFsaSlWW09m4lfNzSPnz/HcwU=.sha256
@bobhaugen https://www.fin.ventures/letters/on-bots-conversational-apps-and-fin
%c6jT3mR23b6dfum/9AMwKWKhurj4+sDaDmjnUT5J7nQ=.sha256
%tXiJ2Qwx6IL7N1haLHTZU7mWaH0yy2TBMFePmMnell8=.sha256
I'm going to start pulling out patchwork ui into modules, I think that will help a bit
%Fo4i0L7/7GEBKplQtxBAbM16jHdO1fl1I5HN3IhOvBE=.sha256
This is wicked
%ORjAqyxlSze9pFnFO8xkmWYmsFWFcQ1U73AUuAJ8eFU=.sha256
%WAwgUk0EeCOdJfsFT00PYIEqUtOThMfjFtUehOwoyls=.sha256
It would be really great to have p2p folder/file-sharing (something like dropbox but without the service) that scuttlebot could tap into
%LBmVJ4qfg4ARVgLBxWvIjJIAhFruZq9xX91ZpbrybNI=.sha256
%NiF57zinnvf4kHXZTmhvYfJYlXJ86IqxsgadJn/rQk4=.sha256
Meeting on the 21st?
I think we're scattered to the wind, a bit. Who is available for the call?
%z5bgINEj2TQn3N3MCATaavmVwNi/vsUShja1rAORjBg=.sha256
%57XX1DsTDPoFApJXlp7sptQKoB3LAikkxyFZeAxMsBg=.sha256
https://github.com/creationix/nvm is another way to get latest node, or just the site, https://nodejs.org/en/
%neukrdVbttqZBp7/vKA2UVyZh9bMkuTnbPnQ2a3CqTw=.sha256
Oh, yeah I was skimming. Yeah, if @dust you can see his data being announced, then you ought to be able to receive his data.
If you go to your contacts page, you don't see him in the local peers section? Has he published any messages?
%OThSzGPJJo43f2w7Iv2aiOzk5pP6TBPTz2/ltZzES9c=.sha256
It should be, if OSX allows that
%KaDR/KnV/pssiekn8wE5Qh/Lqfuecx6lnCJbWaCE3h8=.sha256
No it should work in 2.6.4. Have your friend check the Firewall section of the Security & Privacy settings in OSX. If the firewall is on, it will interrupt LAN syncing.
@cryptix I made a note about the <pre>
problem.
%XIQB3bjbzjPA7HBCCV15zGL9kjh2ur4stlfPP0hJBdg=.sha256
If the npm
install instructions on http://ssbc.github.io/patchwork/ dont work, then nothing will. Did he try that?
%khECo5tLy/MUBq0izhQSewI4pd+4ouz42bTkh8fHhrw=.sha256
@arj https://github.com/arj03/ssb-exporter is looking good. I filed an issue with a suggestion to improve, and otherwise . When it's ready, if you can add some usage docs, I'll add it to our community modules listing on the new docs site
%sFvdjmx4IvNCKVQXVOfbobJTwPVu0UXpLN5dos4Yo24=.sha256
%znChLigVyuql18VMQ5T+/6zw7oyGZFk1ixi4+yh1FpY=.sha256
%qH9e3bkExluQza6Bf3TcPNZTWao345w5SIZoCJOVnJE=.sha256
All of these announcements to me sound like We factored this out of our business, please tell us it wasn't in vain.
Yeah probably. Just glancing, it seems nice but nothing too new
%SEBT3kJV3OkN506Y95gDEDzmJwT7y5hYIFW2aUC4iy8=.sha256
I'd like to add a .desc
string to the about
spec (description). I havent included it until now, just to reduce my workload.
%gmn29RAdtXRyCgabOE3z673YKNqw0NnwaJlO4CwabjA=.sha256
Yeah I think this is great
%VnV1wIYWt6AunQ/IOPN1XV4Qc9Y6cOPYQkXdyK+N2/g=.sha256
%kP1ZIUOT3cBq8eTH1JEezDL56R/4nY/fSeZHkLjajQY=.sha256
%VvVAE4Ybj9QVr+z8xFzYCm9QoWYTckQzMr3Wj+e/oQM=.sha256
Obviously it won't close all attack vectors, but it is very good. We talk about using SSB to deliver software a lot.
%TPYllgwmOKOur+0YpRpgqL6wkdknxSHiV7Rxh+e3AFo=.sha256
I've been drinking all night and I just watched a James Bond movie. I think I'm qualified to answer this.
The equation, in this context, is known as a "dense sociological proof." It illustrates the emergent lack of empathy in math nerds rendered toward laymen who display curiosity which is motivated by extrinsic factors (such as artwork, or music).
%2a/PwQOhaDJukoBQtCTDa3I6slKDuEzUzeps3atFEi8=.sha256
Apparently elephants are afraid of bees, and they have a special sound for warning each other about them.
%ef7FUB78v1u0ZdOiCwc9Ikp4N7dFr74t06xdxlYZN+U=.sha256
@jfawcett really wants to get into this
%ZaV+cYl4Wcjt4EAWbMvGmd41jZRP4oUAm4dBjh4k1DM=.sha256
%HQ83E3SlKOBxZDSYyAVQcPFoAgYSc+RVXyQGYgnXuK0=.sha256
I enjoyed that
%5HU1LtrC0UdMcr2EbD83YtcoRMl3p8Whcgjl8Kn2tCY=.sha256
%TQAHVgye5+nM+lGD/J1slNgl8Wrsc7x3S7CMK+xaZU8=.sha256
cc @dominic
%2WEA91Rsv4jq7C0jvr2d6n+vjaxQ7waN/CSPtgp7UwI=.sha256
Which part, like when you open a thread and the old messages are collapsed?
%RMEygUquzknPI4/Xr0HFFynU/KS4YQv1lqFltktpWrM=.sha256
Nice, bookmarked
%I7OBL15HowSP1z6I++6QQVk7PYmoXbNikAfQUyxhYlY=.sha256
%aDbUcpO4iVKmydyq0fMe0dQdU0HjPQBf+beWrXqYTio=.sha256
Paul:
- Keep working on the new docs site
- Keep handling Patchwork feature reports and bug requests (composer "draft" state, hopefully the post editing soon! etc)
- Start modularizing Patchwork and writing tests
%NXM0JNvFILPzAJr5WPgs+jKJTKNFEGAITFNdJlIfM4o=.sha256
%Z6y8LZ003jPGQoukFrvnlEisFewNZAJa/NrDAs6gM0o=.sha256
@mixmix I think that's a good idea
%qC1qvnLF5fDnrGCGDjEX336PGspQfr9qgl5nuVeOxus=.sha256
Meeting today at the regular time:
- 3pm NZ
- 8pm TX
- 9pm NY
http://www.worldtimebuddy.com/?qm=1&lid=2193733,4671654,5128581&h=2193733&date=2016-3-8&sln=15-16
%CNjWxHrh5Xu91E/ABJzdr2SnHPvD8cqHAbe3cORqaLs=.sha256
%oqmMmQJ3cgB1inUBRrWeAGwTUCAmt34Ov2Vnr/2QMDA=.sha256
I agree with @dominic and I'm not sure which I think is better (least painful). Including author id is a lot of overhead, but fetching individual messages is equally overheady, and introduces complications about fetching the profile without fetching the whole feed. It's a crummy issue.
%AEzll3+HF8UW/RYrXNAYzOOu32Izlc+znb2EzGS9ygY=.sha256
We have push? Isn't it only pull?
%7KE5LyuripKJYnOFj995x5AWSsx2EGSKWdPMzqPK+EI=.sha256
I'll endeavor to TL;DR: since we cant create long-lived connections to everybody, this protocol adds push, and since push is a rarer event, it'll reduce overall bandwidth involved compared to short-lived pulls. I get that right?
Will you get HAVEs for feeds you dont care about?
The best bit is how, sure, they are lying in a hammock, but they are still wearing a shirt and tie.
business-beach attire
%jc4EN6z2W5ck21CxcJeSybRYKq5Vpq2f5q1ehX276Qs=.sha256
%yZaTUgbKYjsg5BQipsEoUZ9tI9saxr0JgrE5wQpGBz0=.sha256
Yeah, should be very simple
%wn/YdlJXfzhSyWUUeq4UFJa6bfxo3C73qwbbE/SLh8c=.sha256
Sure.
%PZ5p18p1mGbcMVKTwHpZqsGCiZKq+BOPKiTDw2ybusU=.sha256
FWIW I like threaded conversations a lot, I just didnt think they fit here. Indented threads dont do well for long back-and-forths -- after about 5 replies, the indentation gets too deep. Most of our communication is interpersonal, so we tend to have back-and-forth, while indented threads are much better for large communities that sort by upvotes (slashdot, reddit, HN).
%ol5gjEbzMdp6MDxuvM0eq4ot45+2CIHkgbtch+A5vJQ=.sha256
We've been wanting to add a button to quickly "fork" a conversation, which is basically what you're doing here -- start a new thread, with a mention of the other message at the top.
%IAG+31Y9Ty9FG50ZYmdhUe/i0s3RiW9GtMKlNNaj+5U=.sha256
%DllcM5/8jYc0LJxpCRK4WDqmiWPHGCR3mb48VzvWkPU=.sha256
Yeah. It's supposed to combine the inbox unread and your activity feed, to reduce a click.
It may not be a good idea, so if yall arent into it I'll probably not merge
%jZCoR3gRCJ5lf5jMCYDnbIW6FioNPJ/hBv751Lx8nUM=.sha256
Going to write a whole lot of documentation today.
%3JjFepmLCm65oASmWSlurDqLEODiFZCVoTj0rT7Iw6c=.sha256
Yeah, that would probably be smart
%zrZeecXHnuQ5ugxrd9IRKA8vzdaUpCi+/qTY/8YC238=.sha256
Looking for feedback on this update.
It was bugging me that I had to switch between the inbox and activity feed pages, so I created a new Home page, which puts the unread items at the top of the feed.
/
?
%kevcq0ZzzwkcQZZDbPljnAjwp9FZYx+a7B8lXqDWaOE=.sha256
%bU4a3hFJfJ+RB2UOVc2+reoqtxEq21kBXc9Tpfv8tXM=.sha256
Oh I see. Humm. Yeah, I think you'll have to do a browser addon to do that?
%qdc2ucSczIbS5E4SCsL3GfixIfrNb6F0yMO1daILVjI=.sha256
@dust That will depend on what all you'll need to do. Writing a separate node/electron application is still viable, but involves some overhead. We're working on ssb-web-server now, so that you can write SPAs that are shared on the SSB network.
RE: CSP, it looks like ssb-web-server will have to allow unsafe-inline
in order to work properly, so bookmarklets will work on those. Patchwork doesnt allow inline scripts, but if people really want bookmarklets, I can add a config option to relax that constraint. It would be better to write a backend-based script injector, though.
%Pay1Dh94SgllIks3Il+6bOI4rUAxMwd53fIzeRSKf30=.sha256
@krl ok, I'll make that change
%8Wc6NVLihKIYn76BKVdX0nGGV0o1m0CSmnVnBI+WCAs=.sha256
Yeah. That may not be a bug, but we'll keep an eye on it
%J4GEnKq/xchUNcPc8+E+PHw+6WhiPEQlH1avT5QXJcM=.sha256
Yeah that definitely shouldnt happen. Did you notice if they were newly-received from the network, or is it possible they had been received but werent visible in the frontend?
%mZ9nk2VFsEEyunG0o4fMvKa/cISd8f7asRvoj13ovLc=.sha256
%GRMVcYq6v/1TsjYNoHOjd5lJjLtCyzYCOsdB908lfOo=.sha256
%gknknt+2hRSGA2M0K4kcOgJyQJi6etxref9Jz/BSmYs=.sha256
@bobhaugen bloom is just an application of CRDTs, which are a kind of data structure that behave well in distributed systems like SSB. So, they're language-agnostic.
Bloom is quite neat though; it builds a language where CRDTs are a builtin type
%tjpDqczERKGXb3rICB0lXEZgqtTUfjNzAwwd/oNxaMY=.sha256
%Gpf6jSdZKrIRnqR9tURbosoCFjKEP7EbkhhlDcg43+I=.sha256
Dog ranks:
- Private
- Good boy
- Very good boy
- Captain
%j5TRs0Bx0x/NdHLPbRd261Wvdb3ULGVs59Y879DxDYQ=.sha256
%Bgkn9dZPn/A3wBUOeaBV6GaFBDT8q15nhw2by6e891c=.sha256
Yeah, this is entirely due to a naive approach to rate-limiting, and not due to the volume of data
%ngkFVjGhwrUW3mXLc3irJQPKFxCATssGyrBXpHIIoII=.sha256
%AEnVJh2AOiXyvp6sbMYimVCRViarkVDNUepS2W6SyVI=.sha256
@keks I agree, and this presentation even mentions the FLP result, which asserts you cant have consensus in a asynchronous system (which SSB is). I'm skeptical of any consistency solution that doesnt have a good paper behind it
%wcsQ4MiPDD42s1TwknW+V9ES6fq4WjwXh+lmj9aPKgg=.sha256
RE your TCP experiment, do you know governs the reset? Im wondering how consistent the measurements will be when other systems are involved
RE time drift, you might be right about the VM, in which case I think they would need frequent NTP syncs
%OmDW9vJg9zBCJMOIeFZCjp/OqRW4EW+FgznWsFVdAbY=.sha256
%7VULIaelaTKoKMy/ORy5HXrhiz849hFPmGdF3TBnXGQ=.sha256
Also a good idea
%np25/7J1KtOTZ4NcuFPkngXA7+dkjDW3r4yxkdzjaVg=.sha256
It'd be pretty absurd to have a consistent drift that's significant enough to notice within 30 minutes. My theories: one of the machines altered its clock during the test via NTP; or latency threw off your calculation in some subtle way
%6HLOfZkdfhmEOovYxRkOwjtDu3wZvGFEl+dRlsM1MQo=.sha256
%Hl3++tUFkPgtsuovjtygdEAWw2vV4XSDH6UHgkLPVLQ=.sha256
Issues Cloning Spec repo - GitHub taking a very long time to download changes to the Specs Repo -- an interesting response from a GH engineer, RE the cost of using Git as a CDN for packages
%xJWCazJCNtx3xNNqkcD5QJ1zzoRYqy/rdYpS2riulM8=.sha256
{ "type": "about", "about": "@hGd3sjghbrkVaFEMUrXV11m2oyKLfLqJQcadvapH02w=.ed25519", "name": "lesles" }
%FJID9m5zE1L5XBT34N3R9j4wRL7cOYvf36o2M+XlpYo=.sha256
This HN comment brings up a really good argument about data-security:
So effectively the FBI has one giant inbox with Americans' communications in it?
That inbox will get hacked. It's only a matter of time. If thousands of federal bureaucrats have access to it, I would be very surprised if foreign intelligence agencies do not already have access to it in some capacity.
Scary stuff. People should continue to assume all systems are compromised and email is public information.
All network information is public information. We have to assume all providers (not just FBI/NSA, but the original email services) will be breached eventually.
%DGDKjdgCdySYYdtuRGRDAauy1OAo9RXlfFiai5k9uM0=.sha256
All of the recent conversations about groups have involved consensus. For a membership-constrained set, trust can be assumed.
%WPa7yPEUvvidnI3bVyGpw3kGcA4H0qHNotvtETZY0zg=.sha256
We should look into egalitarian paxos
%tvrfymWXkQZwccy4TGYrRYPSJDcpU7iTJgYK0fWHuao=.sha256
%mPCHyZK4jCz3Tg3KxW+9OYkP3JXOnK0kJIjtiq07Yvw=.sha256
I had the same idea, I think I'll add it to my queue
%ny/bkAYNckT00Z+YHlumImLY8yqUPcn0dVcLmjgHboY=.sha256
%JGWau6JOCOd7w2rwdV9Ep05NCk77ssJSlnrc8sC++iQ=.sha256
%nNv6J253ifY7s8wMA7pYin5+RyoyE5kmNk65AmHlK/4=.sha256
%Hx9ldamz9eSl6euYJYPfxi970p0FGElv2qOD9aNKjew=.sha256
%9+1EBNHBUz8hSMt7uEQU6VH7eFmX0ZUtc5uY9oFnniM=.sha256
Heh, google hired chris poole to fix google+
%MbTB/FQFkeYlcixOVWom5sTlA07Km43KkkdB+2NDsms=.sha256
@cel yeah that was from a bad interaction between the updated scuttlebot and patchwork-threads. If all deps are updated, this should not occur
%lnsHZkIVz0jQooyiZvCzqdjXYM6Kj+vECzVi3fUePFA=.sha256
@cel yep, we're testing out some software outside of patchwork. Will update you on the call
%SN3WlNL17P7L2orYdU++yEYFtv9fkPYVWieyBWJ9Ua8=.sha256
@mixmix yep it should!
%fg3bBPnonwPl9Mxd9SIrQvpLSE39U/GrZ/necsS9i9E=.sha256
Little HTML publishing experiment.
%uPFsBVi7iVL5TpRoljNKO0VyH5mKGcE2QXYcibAGOIA=.sha256
%Kot7yGFa+9vHB9SWS0hzbp58XZGsh/7+daWwKfxmv6U=.sha256
Quick reminder, standup today at 8pm CST /cc @dominic @cel @mixmix
%HUT6Twk70/aC6PQhwDbDSaqZOGBimtgrCAMam3aG2es=.sha256
Just wanted to mention @dominic did a solid bug crush this weekend
%WopxYVhNCRtkvqiA/GM586/YtA+ubHgqWW9igVemth0=.sha256
Patchwork 2.6.4 released
Quick update after 2.6.3, bumps Scuttlebot up to its latest version.
This adds a new true/false config option, party
. (or ssb_party
from the cli.) This turns off rate-limiting, which should improve replication performance. (This has been added for debugging.)
%3rhw0whcBWPfS+yCKzd2k9F0yWBt+m2OBx82RaK4ghM=.sha256
Ok, we'll keep working on this
%5hAdRiklFhxbh9Am8H6Q3W+vCXNDj6PAj69YiO8FiTg=.sha256
That's what I expected. Take a look in your network view. How many peers are you syncing with (green dots)? My theory is, it'll be a lot
%zi7sPEoZ+LZ6VjSJafA/z3fwV66ttiVm+grAEe5qJ9o=.sha256
Patchwork 2.6.3 Released
Mostly bug fixes and minor tweaks
%vA8E00v0153QK9/UXVEzEcfHjhMF+z6pCyoMpW3vGls=.sha256
We're all pretty spread out, I think. I'm in Austin.
%jfJ0E8HpYfXkKiU8UDFvARzEgnW2rxFu0VNXPcNNIBQ=.sha256
@keks oh thanks, yeah I missed that
@Ev are you running the electron version of the app?
%PNUm2B42WBkeoV3CooJe4NYpyKfyZ9WKLTrf6r8FiK0=.sha256
@dominic I had the same results, and there are also some missing npm deps on the frontend (ssb-markdown, pull-scroll, observable). The map-filter-reduce/keys
dep seems like something that needs to be published still, because installing the map-filter-reduce
module didnt solve it
%MAVaijHduissMoUtb8S+yzRZsw1BlaAUxSb/7SybE2I=.sha256
@Ev I may not be reading this right -- what makes you say Chromium is the offending process? I see 0% on its CPU
%tZ7ZL6+DYkLotJjdMkXIauuLFkkUF1fASDNfXBEcLtU=.sha256
@dominic I think you're exactly right
%xUwYZIK1gGyK2wjGfXFsPJtqKHFaXK8zIK951ZmJ1CI=.sha256
@dominic I just did some new-user tests with party mode. Here are my observations:
- I downloaded all messages from slip.space's 25 members within about 1 minute, and the blobs took roughly 5-7 more minutes after that. It's much, much better, but there's room to improve.
- (RE this issue) The backend does slow down, but not immediately. I have a hunch it could be due to blob replication, but I'm not sure.
- Based on this issue, I have a suspicion that, when there are multiple peers replicating messages, they interrupt each other by causing
createWriteStream
to fail validation. I found some potential evidence: if I reduce the connection limit to 1 peer, all messages download in one session; but, if I allow multiple connections at once, the download process would halt and restart with each peer.
%mL7M7fykQkWBzMTqZ5/nnP65zIzX807ssLlTnFuSKOc=.sha256
%ywLO5mc6JxIdp60kDZ0pqzLgVwS9bs10UIJ7ssCMj1M=.sha256
%PtoQPlgS3siV7f5b4qjfiX5M7MfEuuVJaz6tQRJegx4=.sha256
%kPnbhTtxUoXPnnzBYk/BB7M4IjbkLy9jmU613fFjCrA=.sha256
We should just reassign them freely. The nice thing is, it's a persistent queue that's easy to review, whereas mentions are individual events that can get lost.
%sP2nbAs0W9xH1NWn0WpXewDA0brBWdLeJBkoXPiWe9E=.sha256
%6obLkOhZ2gO6poRS84wVhhTQRM0sO22/Loqpv1GIbQg=.sha256
@dominic pull master on patchwork and tell me if the performance is much better for you
%Z/BpsVWK0kS9zDqdl/lfxZVv1rb5Y8MIr6tzOnmFVmM=.sha256
@dominic I want to clear out our issue backlog. You mind if we start using assignments in GH?
%RbHG4xnDxTtNF48GA+d6VzUoTjkV3dXFiKCDTTVSiyc=.sha256
%YTi19A55X9WA5eK5ZmYlVYnjHI6QpmAyUZrexuTL7KE=.sha256
Works in FF luckily
%wxL6Nbc9EEeEYb9KATk6s0wn7ycRdVqVjsFWFvc2QOg=.sha256
Huh, I can't seem to sign into Github. Looks like a misconfigured CSP, because I get this error:
Blocked form submission to 'https://github.com/session' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
%kfFWuZryuOwNfJlb4EWW/V2Fxn01MbR8jD6SHZDyeYw=.sha256
Are you using react-addons-css-transition-group
?
%prI44E5+a5J2/GZtFqdV1MaMs3JMNDC3MroKS0yNDBw=.sha256
I'm on it!
%O0xjp7AJl7Jm+3bOR6NUuKpGQnjFL9EuHcve9b2YVvg=.sha256
I'm in agreement about that frustration, @cryptix. FoaF replication makes it very hard to control what gets distributed. I'll have a look at the stuff that @dominic has written recently.
%q6lBr+YVXzzcct8oYOCtDJoCiq72UDc3zHD3/+hnBqU=.sha256
%YEcp5/bnDKTnQkT9tF3zx3AotI6MDYyDti7RpQFGTq0=.sha256
%AS95KEuiK+RnmPOOcruGycu6Ew64zvXmbntoTy3K8Oo=.sha256
%uEG6QVYtNgP2OIPt1xicv7wCwDHCyAy5v1aos9maOtY=.sha256
@dominic I've noticed the gossip scheduler doesnt respect the connections limit.
%ljctubdmIxLKb2aX+u8ZYeD43vtKO8OTsnnWNBros4E=.sha256
%kb36EFCS/3A7q0i45fWFvSILmICU6CmSaA5XwtCAFtM=.sha256
%Q5gRXOy+61JuDJ3kHs/5zM/V4BxkwFOCA0BgwW/VGRc=.sha256
We may need to formalize the requirements. This is a complicated segment.
%79Jzl8yV3SdQcAI7kU1x/E2Vmk2KULrPnkg2pbWe/rs=.sha256
Is there a convention for namespacing messages to a certain domain?
There's not. Your suggestion of app-name-vote
is good.
Is there a testnet for ssb?
Unfortunately no, but there are procedures for creating test databases and feeds. See this documentation.
Any plans for integrated UIs between apps? Personally I would rather have a tab or section in the patchwork nav or even a post type in the main feed instead of a whole separate app.
So maybe a patchwork plugin instead of a separate ssb app.
We've been discussing this, and deferred a decision while we waited for community input.
Patchwork can currently integrate with applications like email does with other services: you can create posts which go in the inbox or feed. But, we do get a lot of requests for custom message-rendering, and for new UI screens. We could take some inspiration from Sublime or Atom and put in a plugin system.
My idea for this would be to define and/or describe your type in a blob and use the blob ID in the type field.
That can work; the type
field was specced to be long enough for hash IDs. However, it's a little less friendly to look and query against.
I'm not yet sure how careful we have to be about type collisions, and I'm hoping that hash-IDs would be overkill. It does, however, have a nice feature, that the linked blob can document the type's schema.
%S3Fib95uZGHm2+anUlsTkgRSKs6h2Vo/kCyNSUd+LF0=.sha256
- Clone the stats repo into a folder you host statically.
- Setup a cronjob to run
dump.sh
hourly.
%Q5aApw2h8BIYhfoUQFydkwNBQm0I8I7oOATU/P9Y25g=.sha256
%20smpz6RVWUHHzz9Zj66oELkQss8bKJdAClWHobckqM=.sha256
%cHQzZQUQdYEjf6vkpgB/SI+nxL/Qyo1v9a4Fhm7uroY=.sha256
It's by new messages, which means any published action: digs, messages, profile changes, and so on. But, it does not include somebody who publishes nothing.
%mngwyoNnKGbjoo+U72SH5B6GQRsbNKS3SEj6Qcv4rF4=.sha256
@joshuavial I can step you through it. If you don't mind, I'll write this to a general audience, so everybody can follow.
A basic guide for building applications
Full documentation at http://ssbc.github.io/scuttlebot/.
First, create a project for a desktop application. I recommend you use Electron, or Node. If you want to use another language than Javascript, you'll need to find an RPC interface for that language.
The structure of the application is your choice. Web-application patterns work well on the desktop, if you're ok with using Electron, or a browser, for your frontend. Patchwork uses a typical Web SPA pattern, and shares software with its node and electron codebases (see patchwork-electron).
Scuttlebot is a database. The primary interface is the append-only log. You establish a connection using the ssb-client
module (documented here), and read and append to the log using the SSB API.
Scuttlebot also has a Blobs API, which is content-hash indexed. It is mainly used to distribute files.
The blob- and log-stores are synchronized between peers in the background. The application won't handle any of the peer-to-peer interactions, as those are automated. However, you can subscribe to watch for new messages and files, and sync is often in realtime.
Here are some useful snippets:
Any streaming is handled with pull-streams. For example, here is a log-watching snippet:
pull(sbot.createLogStream({ live: true, old: false }), pull.drain(
function (msg) { /* new message */ },
function (err) { /* end of stream */ }
))
This page documents how you publish a file. The hash of the file is usually shared over the log. The receiving party then waits for the file, using this code:
var toPull = require('streams-to-pull-streams')
sbot.blobs.want(blobHash, function (err, has) {
if (has) {
// file-contents received, let's write it to a file
pull(
sbot.blobs.get(blobHash),
toPull(fs.createWriteStream('myfile.txt'))
)
}
})
More about using Scuttlebot:
The peer-to-peer behaviors are abstracted, for the most part, and sync occurs in the background. Philosophically, this is similar to CouchDB's design.
Scuttlebot can be your main data-store, but you can use other databases with it. Embedded databases, like leveldb and sqlite, are easy to setup and configure, since they're exclusively controlled by your application.
Have a look at the ssb-msg-schemas readme to see how some common log-messages are designed. Messages can link to each other, again using content-hashes. They can link to feeds using public-key IDs, and to blobs using content-hash IDs.
We have a tutorial here and some example applications:
I'll stop here, so you can direct the conversation. If you get stuck on any task, let me know and I'll step through it.
%50Vg39A4iwijIikZmgGX1lHrrB0AbD7rh3fdQDa+PSg=.sha256
Old idea feels fresh again. CRDT-object interfaces to scuttlebot:
var thread = new MerkleTree({ type: 'post', text: 'hello, world' })
thread.root.type == 'post'
thread.root.text == 'hello, world'
thread.append({ type: 'post', text: 'my reply' })
thread.find('.post > .post').text == 'my reply'
thread.publish()
var votes = new RegisterMap()
votes.set(alicesId, { value: -1, reason: 'spam' })
votes.set(bobsId, { value: 1 })
votes.count() == 2
votes.set(alicesId, { value: 0 })
votes.count() == 2
votes.publish()
Riak uses this technique, documented here.
%/d5qBu8QEuO037BR6LPUAt1ceXA4GF9ghF0irQ11bqo=.sha256
@cryptix I'll try not to let that concern me
%x3ghQ6cZN07+PHZAI1+EtQ7IAVDHscB5B0ebL116gOc=.sha256
The Merkle-tree is a CRDT which doesn't rely on clock consensus between peers. (It uses content hashes to create a partial order to its items.) If we don't try to collapse the tree into a linear order, then it's possible we let multiple SSB users contribute from their feeds, and still come to consensus. There'd be no overhead for this technique. There are, however, limitations to the data-structures this can support.
%OWWZ/DuTofOPh8F4y7W72a95zKUEWEUYUUql41v+wng=.sha256
@keks that's not loading for me, do you have another link?
%JdnVETAn+kGjnhp3S35DFU29Ox8FDr2gjEmp94oxHVA=.sha256
%EMj972ZxSW3lSSUYhxAUpvf4rJ6rI8cFB1cSjD4F8QI=.sha256
I put together a metrics dashboard for my pub, slip.space.
%lhAb9jmQMh1tZaFCgd75TsO3z2TMUa89eLoWN6/RTJ0=.sha256
@dominic I believe it'll have to be somewhat nuanced to avoid bugs. Raft, or paxos.
%cElhacEzXDiM3g4Uapu2C6kz9Tlf8BTMs0YqwuH+yhQ=.sha256
a side business printing indulgences
I think you just found our business model
%fOwVm7v7zrLVEusfmsCFIo1wXV0IJ/bguV3/dsSZbEg=.sha256
I have a theory, that computer networks are political systems.
I've got our ssb==pre-agrarian comparison, and there's the old web-monopolies==fuedal-lords comparison. And there should be more models in-between.
%HG8l5hkAG3UxEk/W3aEP8jRYItSmy2OJuOYNVLa1CPE=.sha256
@dominic how does consensus on feed order occur?
%GFbvpJpWTeFdDpgAzDJKMfkRG7474BefNAtD1Oo+sdQ=.sha256
Yeah exactly, we need garbage collection
%gJlFdlKzqu7ANkVrSNRF4kBJfBqCuj0Z7P5Vyus3PF0=.sha256
%XUYN5y6XEGUvhVlPphw5cTwS77x0aD79UeihUOYVIIk=.sha256
Ok, file an issue on scuttlebot, it sounds like we need to do work on wifi sync then
%X/v40QRu4UQSlGGKISCWq78yjFfoj6DSfn4oPFlm5q0=.sha256
ok good. I am surprised there's a rendering difference still, but that mostly makes sense
%42ejm9EiAL+nna4lVtbpEFnxzyIO+4RVPjMJui1gFW0=.sha256
@mixmix was it your messages come in at 1 per second, or the messages of other people on the network?
%wix5hfaq17wI4uHxGLPRvHzFQiYItgEfoFXBaLmASEo=.sha256
For the FoaFs, yes
%oJDa0nt9aFUutPYMzFkOCrPuf6dCi29xO6IyYVB5wCI=.sha256
@cryptix yeah that's what I figured was happening (text going down low) but that means @keks was getting the bottom of his post cutoff, right @keks ?
%idkvK/EVjWBeJqeTYv3A6H+ozJcKaWXzFCOOO2+ZOEw=.sha256
Not sure, I'm on the same version (chrome not chromium, osx not linux). I think you may also be having the same cutoff issue that @cryptix is reporting in the other thread.
%P3pHFgnUSg+KQk38f6Mgoy9apRgnycgNJBOxNRsMrug=.sha256
@keks Interesting, it's the same markup as mine but rendering differently.
%mPsJPutcfSvsSarjSYy3IXIFf5d7boGusOrtaMqTCZ0=.sha256
%IbCO8Q3VDN5CnvGpuynFvsyf9c/3CwTJ9CqkrujjFi8=.sha256
@keks Can you screenshot that post, on the page and its structure in the devtools?
%tWZX0cD/SXM+cYyy6Tt0PjyMvYZagOts6cKfsz6tFiw=.sha256
I'd wager the bug @joshuavial experienced has to do with rate limiting, which we're going to remove.
@mixmix I have no idea why you had those bugs
%0+740XoQER+TpTmPQsk5fioi16mgj9B3HPOvjd1XgVk=.sha256
Heh. Post editing will come.
%trz2gpCDoZAgwbKtIbYIh5TL20CSt2Dbk0DCmjO8GLw=.sha256
I dont know how that could be happening. Can anybody else report?
%WYX6V1hx8RethGgKy4Z/f//N2k5p6iGSONYg1iCweHw=.sha256
%yz3iO/P2K5vEfWxGXx4HOQXkLiVmgsOJaQlIaLTWjww=.sha256
@keks are you just never getting blobs? (We know blobs are broken to some degree, but it seems like theyre totally broken for you.)
It looks like the blobs store has jumped a couple hundred megs recently. Could be from git-ssb.
%umh0vqpRV0wP6EEWLu5DTlQX+Sdz3QGWl60Oavogu9U=.sha256
@joshuavial yeah! As soon as I confirm the output is correct, I'll share my new stats dashboard
%KFqq8I40J97Vd+oIh9Xn+xzY1x3ZHOH39nDZfd86pJs=.sha256
@cryptix how did you update? Is it possible you need to run the build-step? (If you only did git pull, that would be the case)
%glqhykD4vMrau6/tR+b/m/WSGN3DPw1cPdgNnoU83s4=.sha256
%PZBHIpoBejEQDN10XV4TAvq6CdQMtJ/AlOLkJt//ifo=.sha256
which centralisation business
To clarify: Not "an organization." Business as in, "subject-matter." Some prior discussion is in this thread. We also discussed it in our last call.
I'm not sure sbot/patchwork are trustless & roleless networks.
Agreed. It's not purely either, and the amount varies by layer.
Our recent discussion was in the context of protocol behaviors: which devices provide what behaviors, how are multiple users coordinated, how is information found, and etc. This is where we're least specialized. (Pubs are the only exception.)
If patchwork is used by people who don't use it primarily for talking about patchwork (lets be honest here)
No need to talk around that fact! That's how most of us are brought together, at the moment.
%l3o2ySWrlxjQIVZtMLJQaJ/lNfJoUf66BSCJwVJI+ro=.sha256
%AZEbtLCw/JhsN/5I7EgcYoRRxigsDhzVVwSp9ekJHNs=.sha256
@dominic I've been thinking over this centralization business, and had this thought.
A completely trustless & roleless network is a bit like a pre-agrarian society. There's no specialization of participants, and therefore there's less opportunity to stratify. We're all hunters & gatherers.
How well do you think that metaphor holds?
%Cl8flx+dICb3V7VSxbpuLq804Sasck0BmbrguWxvlmQ=.sha256
Yeah. There's a good chance that's the rate-limiting at work. We're working on this now.
%h8vO3ozNc2J+udxh0Ht1t14An8uHncAXkGl4TuoWquA=.sha256
blob not coming down?
%s6KBHmLyj8AcC/OCBIv39rA9yaESsHoxW0zbvlmmjV4=.sha256
%L2Hpowp7CiInuZNWFy/pJ6y6+CMYGytgzN9xYJmzIGI=.sha256
%ZKcrlO9fLdoYTxty6jwLyck4oTv+nJq9uRp9eU7jlX0=.sha256
%AKfLsDLZ03X2+QlZDqHJZ1wFrwbcpdFd7wlo74svUxQ=.sha256
It definitely could, permissions by reputation
%2qHSan5wwjsiv0O5wYz0VhVrKse0sSZU9vxWspbRAwQ=.sha256
That's interesting. That reveals a bug in the composer. It didn't correctly set the branch
link.
%fR5nQH201wwcH7HjntCY6HS9LkZfpcBkmVOEIJjRP7U=.sha256
@noffle no worries, I couldve been clearer
%OsZHxm94mL941dpGVVzGn1AUS+eeokw2bjP7S1ygl68=.sha256
Perhaps vouching for a user happens on the contacts level?
Yes, exactly. If you look on profile pages (on latest PW) you can find, there's a flag button, but no "upvote."
%J+CqCmD4OIynXCULs16s8yQYgUORURu3kGs/sdBLLYc=.sha256
This is upvoting/downvoting a feed, not a message.
%J4ugbCtG1hAczuDmhgLFfYHKRRV1SHn7UubNG9ilhsg=.sha256
If a downvote on a user is a flag, then maybe an upvote should be a "vouch." It says, "if you think something is wrong with this user, then ask me about them."
%KRyjtiFkU2CD/VeE1qvC4KDE6v/vTJOwIX/CHrj0iCo=.sha256
I think we need to do very broad rewrites and reorganizations, so individual feedback might be premature. It all needs to be simpler, visually cleaner, and flow more smoothly. (Aka we need to treat it like product.)
%spsungcWTDjvabSUXrLOPxAZW6sGDrwbjnzPScafH/o=.sha256
No worries. All of the docs are a bit dense, right now. Im anxious to do another whole pass on them.
%bJtMoFZYMiQLgYl1sypUXptaT0lPhUOkd5ezUuO7PUk=.sha256
@bobhaugen which bits are that? The doc, or the ID?
%KNOuWDfy7n7UF3CXzGmRsslMNU9OHb0yprUVT6zxuAg=.sha256
%vqz8Rcjpz1BxlCWW8YqlFEaF0ejEE90u6UPg/LFri3c=.sha256
%44v/I56h/7ugkx3W591jpssHtyGmxk7GYuy2OOvTwjk=.sha256
Unfortunately we chose to use non-url-friendly characters in our identifiers.
%hyRvtsNG2Seo7Bs+C4a03jTQS6+ei6AE8PbyG33kqTw=.sha256
That sounded less douchey in my head
%uFlwwvj6PwojZSjDic5iz9PT67z1ofT8Q9z6hIczKlU=.sha256
Yeah, I want to steal it!
%QConMicjtv1aS3UL6Lfb7MRiYoAKzIe+BWtVTVEfK/E=.sha256
@mixmix Yes. I figure all of life is a flow between structure and chaos.
%/XfpEtw6LKA6QZ83fdtiiyAQaJOIVFIhlt50zPajEpQ=.sha256
%GZS5/jlXnUnq4beSGwCa4/nC64Fagf641VNdPwodqiY=.sha256
When you use a pub-invite, you announce the pub on your feed with a type: pub
message. So, if you invite into my pub, and then your pub, then our pubs will learn about each other (by receiving the announcements in your feed) and begin syncing with each other.
That said, it is not necessary that our pubs sync. The gossip-mesh is fully transitive. Let's say you connect to "Bob", via your pub. I'd be able to get Bob's messages in the following path:
Me -> slip.space -> you -> your pub -> Bob
It'll be a little slower, but it will work!
%fd/y9Ex/lzIGyceU7zwGtlD7Qh5Csileev+CY4NN6oc=.sha256
Let me know if you need any help. You can also ping me in #scuttlebutt on Freenode
%XnPFfsf4rNmwipivldfh36IkOaX9GQ3w5nPC5bIOaWo=.sha256
Yeah 2.6.1 fixed that
%QLOyVMgr7vOG7iorxuCb5fqPmdi1ZEYVtLtQl9LjtFA=.sha256
Intended to occur but not yet planned
%AIVq1Z6bTMNL7jiu+v6Rc0BubY8ylv1v504L1WPSFKg=.sha256
Yeah that's awesome, do you have the source for that graph?
%FjaDuMbifE7CT7Sdh0lLWHg4S9C4m7StJmQtq71b/sY=.sha256
@cryptix that only happens if youve read (aka opened) the first message before.
%XhHF7PpgYigr1JgC/aOT2JMraxp/NSIlC9DFzzDwkoI=.sha256
@dominic I like that idea, we just need the ability to fetch individual messages
%oYPM1LMO+Q09TKazY/psDrrHBnkO9qP+VPNwoNsdTPQ=.sha256
Patchwork 2.6.1 Published
Fixes dig buttons on profile pages, and fixes some edge-case bugs with oversized posts
%wNkP/PymJa3nrJH+NhsNFbFHQBD6o1t6qKssF1pK3+E=.sha256
I think we're more-or-less on board with the idea, we just need to get the technology done
%gYCgg6OzjgR4L+ycIZPD8OkdPMHb1Q5OfjzTUkw1uBI=.sha256
%6vxsEpm3kujI7KuRJmJ3udwMpCPJcFsBRIZPLdGiYXo=.sha256
I'm not stating a preference, just the reality. If there's something we can't solve with protocol, then people are going to use bots and servers.
%FhbEUz7hFIYUC2JRpGB/SAG5jOmvW5S3L11lrCcyVlo=.sha256
%srWPKA/l9GbIuvV85oWaI4o03gXPjr7hwSojXAhWLWw=.sha256
%lMj53f59opRzSyg7B24ts179eiqGj4hv3RVPkQfV6Gk=.sha256
%X1cqXwtthrYVxtDww213JTtcQaPfcxYBN6kjDo4gC0k=.sha256
Interesting argument. You could reduce the disk-usage by deleting messages after they're processed.
I think, though, this just depends on whether we can demonstrate a better alternative. Bots and servers are an escape-hatch for protocol limitations.
%D35Oc+vw9WfcW+sC7SAqSIRNAgEDq9o16WQ9kVVtadM=.sha256
Ok, I'l give that some thought
%qMqMgVvqKHSRNFqC9VRjKZsGQJpKjfEw9qObS2AgxVk=.sha256
I figure it would process the entire network, and then reshare whatever pieces it's designed to do. So, to us, it'd just be another user
%/5v88BUISsM8kIx0lTyvHZOR0uW/OstRCX8DT1S4ZWY=.sha256
ok
%ttUOQ7LlHTc2zOUznTqxaQmR2yaoo2ddbRaB+SEXsi0=.sha256
I have heaps of friend notifications in my inbox, and I have to click on each of them to go away
Yeah, I agree. I'm not wild about that piece
there isn't a really clear demarcation between where that thread starts and ends and where the rest of the feed is
I'm guessing that's only in the activity stream you feel that, not in the inbox.
%VLqjzYlc8MuiQBPK03xP5G4ruOeH3CwolGxLu3YVfCY=.sha256
@mixmix could you go into more detail?
%uBjwzWaqTSrPCGhi7h6nttUzzBimUdftp17n67nkLKw=.sha256
Makes sense. I've been wanting to add a button for "forking" post-threads, which would basically do the same thing: create a new root post that mentions the target thread. I could apply the same tool to non-posts.
%CRoGq4eX/tzW7uW1CprsZLw/KDfnBZmgqqbagVBxAx4=.sha256
%PfQix4es5MgiX/Gf/C8/0jiICLAs5Qnm/bZtXAcFLIQ=.sha256
A crawler bot that retweets wouldnt need a particular service though.
%PMPGWS5uUL7OuTD0W1MxuEk0DBt78FkcAJ0z632mw2w=.sha256
%nJOeZYdfF2ewDeJUymCRaMoH7mh4q9gAb/winR2izd8=.sha256
%nW95DCaT+UVDZy+rF/w5S+4Ct2M8mkx6ZaeQOIDidAI=.sha256
%HDUomaF2kV8P9Pn9xGbySmW/LOV+5ejKaEsyHYrmC48=.sha256
Could be!
%9K9J7KcXoUbEbgLLEvcJYgRIwsH7qGcg0huCIyQ6yqk=.sha256
%bhBtCkQ6tMdw6M8ADuJvO8vfFlHoMMau4Eu9jOmMy8k=.sha256
May be multiple factors, but one known factor is that it connects and disconnects much more actively than it's supposed to. The design was to maintain about 2 active connections, leaving them open about ~30s each. In practice, it seems to totally ignore the 2 connection limit.
%Tn1p4MxpHSoNmo0wVGRLJo3dLBNz+bnBHUAiNXexouk=.sha256
%UYMbDZu0Tp0Oi/WsrjGQg47oww2U2q5Z6iiXvEPMaSE=.sha256
%yaHB6Zepiq4KBxJarnfwNxcdz70aC2AGGlXK8OLWjwI=.sha256
@bobhaugen no I think that's a good idea, we just dont have "retweets" implemented yet
%En6a5pEdrQXDsi1UQRuSk0W8cY9Vswn838x7tnGBFu8=.sha256
We're super aware of (and sorry for!) this issue. The high CPU usage is purely a bug, and not necessary for PW to work as it current does. Both @dominic and I are going to be addressing the performance and resource bugs, in the next sprint.
How about having the ability to do a manual sync?
I think that'd be cool. I'd also like the ability to choose which pubs I sync with, or go purely wifi-mode.
%ydg9CNfdG/Op5hmTFFmpMh3PXWFa2oTg76aiLzQZYdI=.sha256
Sounds great
%x3ugxNcO6DOGKI+uspk/6fST0QzFlvNJXpDeM+wNnX8=.sha256
%l8mHWui8A+UfekgMNZdYKlYY6+96ZLziwZLRAuZf3v4=.sha256
@keks I can answer both questions.
The protocol limitation is, lack of global knowledge. Github gives you a guarantee that, if somebody registers with GH and posts an issue, then GH will show you that issue. Patchwork/SSB can not give you that guarantee; if the person is outside of your social circle, you won't see the issue.
Possible solutions:
- A bot which crawls the SSB network, looking for issues related to your project and "retweeting" them.
- A bot which you send the issue to, which then "retweets" it.
The plugin system was a brief experiment, prior to Patchwork's rewrite. We talk a lot about bringing it back, but we're unsure if we should prioritize it.
%cVBHrz4B4AAu3zI+OiXUbC4WcuKTF0YaWdH/7XLwXHE=.sha256
Some of the code for oversized posts is broken. (Height limit is incorrectly applied when the thread is open, and sometimes not applied in list view.) I'll try to push a 2.6.1 patch tonight.
%z+GRYYVpDC7auxQmBYrPSBxB734ZlvtNBXvY1hzo3hQ=.sha256
You should talk to @cel in detail about this, because he's all about that life. ( @cel maybe you should go forward with the issue tracker, despite the protocol limitations? if you're feeling it, then starting work there will just push us to solve those problems )
RE: what goes in Patchwork, I have the same question. Unless we decide to commit to plugins (in a big way) I think the answer is, make it an independent piece of software. At worst, the integration between patchwork and gittlehub would be identical to that btwn email and github. Gittlehub events can show up in your feed/inbox, and send you out to gittlehub. We can work together on it to make it swag.
%qPbXG0TOvNiQa+ATWG5XjLKKoDwIPJ0Ms9Xelg/x0j8=.sha256
(If so, lmk and we'll grab a beer.)
%8H3Pb88qF9Fpe5kjUf8GcU3Gnr5j31fWXnVsgATNmyI=.sha256
Anybody coming to ATX for SXSW?
%spwfyMpn+RNDYa9Geuczv9MBRa7vQf5qA67uszT9dtQ=.sha256
%sD2aq2FPV+OD5WHAu4wL2M5W9nRVHfAYXhl11c7vrzU=.sha256
%NTl42Xim9PRo9S62iwfEdCY6lAiXWyU4smn/mO0ka54=.sha256
%GSlYNCK+QByiEgwR3sJ6DkPkuoBWiwunEEa1ZuN+dBo=.sha256
For me:
- More bug fixes and UX tweaks for Patchwork
- Improve overall performance for Patchwork, probably by using dominic's new stream-views library
%OyEBZasDsOfI5y5kdf2qoR4vL1SDNeYWNw1cEBNG0Nc=.sha256
%aTC85Ai... oooh bug in that autolinkify
%FUXGjeSM5w8sDQ4fGgkvoWYsKZD1rbvreNE6cVG3c/c=.sha256
%+4Jk9LPGgNmPLgzDx4/ynT+nNyL5fCLa4E3OlBnDS3k=.sha256
%Kpo2Jx/6UeqnWM2bwjo5LMBnhSTcgKdKrl83QbosmC0=.sha256
%p36CXpoaQoRNraiuTWcRK1MZWy4B8OU09R2Asxhod1A=.sha256
%w8wqSphg8CdaYVGWqqP7MdbNa3fMCF7LhzHnGU5kRj0=.sha256
oh yeah, the caps-system guy
%ZbyoNNv9dF0sjXngPjJAifwnMTWmlsXWyq0KLB7BoTQ=.sha256
Patchwork 2.6.0 released
- Nicer activity feed, with inline replies
- Adds channel "watching"
- Improvements to user profiles and contacts navigation
- Lots of bugfixes and visual updates
@cel can you create the GH release for this? (You should tell me the process you're using, so I dont have to involve you each time.)
%SYfDb9PJAtnWqgnlysdwh4CPVIQ3emQtEnJxLHEgg80=.sha256
%0bTmlm32ayngddHMPE/idHQt91T1/FKMOXiwNxKNizE=.sha256
@mixmix I like it, but I'm waiting to hear a bit more feedback on what's there. I've got enough TODOs not to put time toward this. (But I would accept a PR for it!)
%+mtlwMvAQuBaop++ymWC8h/zNcA0hUbYAhsHMqfzk5k=.sha256
%B4h/rG2wTpzXYDtzKQnkldPnp8vZTd7/EH/OV87cLps=.sha256
"Patchwork" is certainly a friendlier name
%GEGlMJQIx4bNNZe/2yY1CkFjcaClFaGDxngpcVmxt9g=.sha256
%RLplYdHgGlaLY+JRmgxjwWd1ewu/LfhGVAUKLHUM/kQ=.sha256
%slwbpJuzdNzKZaXnFMTC4Nas/IHhpPa4dhiPz3ipAbQ=.sha256
I dont know why we didnt choose that, actually. It's a pretty cool name
%KURgU2BwAEPLC0snkqqoVRiEIH5bA0LYdf970moob2U=.sha256
%abzL2VQhqmcvgSnCHswxQeVDWcfvktC2NAWkCQGXugM=.sha256
%JPfw17GoIaU/hFIzjT/RKY0iESzACSUbvq2CB6MT+Cs=.sha256
Yep, I havent tackled mobile styles yet.
%YxyA6ukr3qpCcE2sJbVMA7Ivxjz67S0X3NXeL1VuXZ4=.sha256
Hmm. Happening again.
%QmeHHvXX8AkW2uqnPzu5iBtSeQbW7erkQeAnW5/b1TQ=.sha256
the darkest magic
Check out index.js
inside of patchwork. There's a bunch of use()
calls, which setup which plugins are being used. You'd need to add a use(require('ssb-links'))
%Jx4Yk0UptPUMDzPW798fXDicxNBgneHwGg5wUIvAFQs=.sha256
If we did peer-detection and nat-punching, peers could directly transmit files globally, and a pub wouldnt need to know about the blob (though this requires mutual uptime)
I'm quite sure private content will exceed the current 5mb limit and I think that needs to go at some point for public as well.
Blobs need much more sophistication in general. We're closing in on it.
%/VpNRvEAmHlCeJ/dFSiquRpbXYJJ/pTVjRh+2JOiAYU=.sha256
Yeah, when a blob-link is detected in a message, a scuttler will start asking its peers for it with blobs.want(hashid)
. If found, it'll download the file and that's that.
%zL7CNsz0OU0DZqnUF86IFCMBnn4ZjS3g5qyF2wQeJLU=.sha256
Wish I had more time, I'd help write a rust muxrpc library
%xQR1c94MFlrE8kdFLrSrasX0WIo13macJGCL9JelwYY=.sha256
@krl One very direct solution would be to make a pub the recipient of your private message -- literally, include them in the "To:" field.
%oYAh3nhmTFG2LTWh+P27ufCFCATms6S5/DPIhP+9vn4=.sha256
Cool. Sometimes I fantasize about a Rust version of sbot
%V4FDjue1aanTfvd1ChFa17BFaNamrmzA0kp0uJ0osPQ=.sha256
awesome, how deep in are you?
%I/mt6vO4LZxn0DQiRKpauzk+y219CVO0HzVJTGFtB7w=.sha256
%HBiremxw38GG9r4hUUpRWM4qJgXwKXwl/STea6B2yek=.sha256
I missed my release last night (feeling bleh) so hopefully 2.6 will hit tonight or tomorrow.
%U9UsOj3kCqMzVwiOfIXfnLfRPqaQdWHCL11SCrm4Ctw=.sha256
The screenshotted error above ('mask') is a known issue on safari with one of our deps (node-ip). The maintainer is being slow to publish an already-merged fix.
%vZrst9WmEhKHosfliGk5fmyEjXRpBEaio+e8TD0zRmQ=.sha256
@cryptix have you used this code yet? I dont think it's that confusing in practice. Pinning's only effect is to control what channel links are on your left nav.
%k8OO5nsopH3JfNXpsmy9Mk1RfRuyoAZa6EMMZkm+Iz4=.sha256
How is it we rate motors by HP but we dont rate modems by PP (pigeon power)
%b9mdXQ1sNIro16VUzziJyHmGJDLRb1y4eYBSyRxAUIk=.sha256
that's looking great
%AC+m9hXtwdweZMFdm6jnSgCbSUL6Zc3VUZ+r5jDlo8w=.sha256
%7bTRtvtCO+r3VJ0fBDjyvxlniqBzZmyM6Uaii49wsQc=.sha256
Im imagining someday wanting to watch individuals, too
(For ppl who havent tried it yet, "Watching" makes new messages in the channel go into your inbox automatically)
%s4vn2bHCXx5FxQRn4VBH8Y8JXoDdFjyMH5sf7rHMExI=.sha256
Cool, yeah I had the same feeling about watching/pinning so I sort of hid the "pin" verbiage, if that makes sense. (It's now just a little menu-config on the lefthand nav.)
%jr59leJ8uL1u+p9bx22uXc7hI9RhzbvBTDZDQDlaElA=.sha256
yup
%KiK/th8lBZuSBD9jNLZ7IrG9NdTyTLt97UV4oO6CIeM=.sha256
%Aqn1Egd0AKqyF1ryVGCIQf8EDdEZ8saka5HHsdrxad0=.sha256
Whoops, wrong channel
%qBdWDZCp1wcptBIZx/pMs5e5P1hGPx39EDYqGzlZ6ns=.sha256
Meeting tomorrow at the regular time /cc @dominic @cel @mixmix
%GRTcYNaW3UOOBdLPlo+EYv9dLZZkMNR4nbnHECu3+bU=.sha256
Nope, just a fan
%v8I3ufCKDReGqYxpjhuXfQLocimtTZolQk5L6NmOIKI=.sha256
@keks if you're feeling bold, you could take a look at scuttlebot/plugins/gossip.js
and sort out why our scheduler isnt properly limiting itself
%4Sf+KCSouS2CWabSI55Nbw8edOe3deoQNEmCe5K3k8s=.sha256
I'm 95% sure the heavy backend usage comes from over-eager gossip scheduling. When we wrote the networking code, we intended to only run 2 active connections at once. It seems to do more like 10, and it frequently disconnects and reconnects those connections, causing security handshakes and various gossip behaviors to trigger.
%e6acoehvEleVeCWX5ELdCPJCepagQdDQCAe6/xxCTBk=.sha256
@keks that's interesting, we should look into that.
Threads and feeds are assembled from individual messages every time you load a page, which means there's a lot of redundant round-trips to disk. If we process threads once and store, I think we can cut out some of the fat.
This sprint (ending tomorrow) was all UI updates. (2.6 should land tonight.) The next 2-week sprint will be performance and bug fixes. I might have to overhaul the backend a little bit... but I'm hoping not.
%mZ4dSsWGyI9zdKSNswktA1QdI3MmkKk7sx7kGGWOx88=.sha256
If the message is encrypted, the pub/mesh doesnt know about the file references in the message, so the files dont get gossiped.
%RsPTwMuDklur5WK2wy7AR4ib+uERxc/rWrjMGUiOZbw=.sha256
%CiQjbZyGjJuL0D5nQo9FnVMQsg4mMbH/15Gv/wQ4dA4=.sha256
%f7U/rsInLdroUMpUnEj9VPhLvHA+s6IsH+gouC8jwkU=.sha256
%3j8T4wHnG7fjeV/VlZiGFw70a5wiULnzQm2bDBS0/vM=.sha256
Oh I quite like that. I was referring to in the preview, but that looks nice, I'll have ti try it,
%ejD+/zcaMNIzZfHG1DNBnLrYXDkH3mYiAUAT9ubsdqE=.sha256
%jBc4ZW2O5wNoK9s2WGc38ZDA+RPojIc7Vd/kKO+NIGA=.sha256
%yjhS+5fiIK4in8mE/Y6juqyTul7+cqLr11sb0FCO190=.sha256
@mixmix it's there because @dust replied to it. Tomorrow Im going to give it proper rendering.
%cWAlaCelKpNkmS7wJcM5JZq+OQlSrBTgkIVgBqyajhg=.sha256
FoaF posts seem to be coming in late and sporadically. Maybe it's due to rate limiting? As soon as I follow them, I catch up immediately.
%Mq6aQjRAL24qCCzROLf8VJeCSiQsMeRiPk2bC5Ii+b4=.sha256
I think @null_radix is right, that's how that seems to me
%2gsZo9o7QsGHfVOt6ivgROCNUWdW8ArsC6yYgCKkHqc=.sha256
I just got around to watching that Sorkin movie about Steve Jobs. They used closed hardware as a conflict point between Woz and Jobs. It worked well as a way to differentiate their mindsets.
%ZYg4vgujhRI5uMni7aruWKemerAVlXhWn1LlhWg7RKc=.sha256
Ah good, a postmortem on the bug
%eK/ejnPlpoZCcT2ks/toxkHoSNeFFTfE2N5b/kucMFU=.sha256
Just like Bitcoin, if Ethereum is never practical, it's still going to be wildly interesting to watch. Somebody made a pyramid-scheme game called King of the Ether Throne. But, it's now got some kind of bug.
[is it possible] Too little was sent (perhaps due to some problem with the rounding code, or just by human error on the usurper's part) and the refund failed because the sender didn't have sufficient gas for the return journey?
...
Yes, I do wonder if bugs might lurk somewhere in the actual low-level EVM implementation around what happens when gas runs out at just the wrong time
%JQGJ4QHnlSrECuSfuDOBmkh4fr9dr2Ep1wlsV3v48BA=.sha256
In any case, few people recognized that Microsoft had a harder time in developing Windows than Apple did with the Mac, since Apple controlled all the hardware its software ran on. Windows had the ambition to support “device independence,” which meant–in theory–it could support any display adapter or printer.
%RSSagyKV0AsBwv6OenJjrvtKsVji2rWTVpbb1l3LB0U=.sha256
The Secret Origin of Windows
At that point Windows was no longer considered the company’s star project, as it had become a bit of an embarrassment. Even internally there were doubts among some in the company that Windows would ever ship. Also, because Ballmer had already burned though four product managers to try to get there–people who now had been either reassigned or were no longer at Microsoft–the product was developing a reputation for career death.
http://www.technologizer.com/2010/03/08/the-secret-origin-of-windows/
%DwsAhw/bkPCKZrV5Do/zWKxIO2Zr+JM3dcBw5ECqFu8=.sha256
%egPRGkOohJ6h5SHnBkZntUc6mPU3OLCYoqSUMXKj3k0=.sha256
%752M8wDua9uWmYbIjxTDv5OE+anqx06GihI2SqkO/eI=.sha256
%hWGoqIBZA2VjNEHFbBbc04oUVJgIDaFnixmO+yicN7w=.sha256
Pole one, people-management tools. Pole two, integration between systems and applications.
%0KTB6/DJaXoGb+3tNSYJLac0alIo0W+eLQR2dWi6Kp4=.sha256
That's a good point. I think I'll leave it be for now
%eZWWTDrWFqmmYViotbJjjuLLp9oxnWsfSyIr1JU7OKg=.sha256
I have a TODO to make information-cutoff known (the "See more" link). Would you also like, eg, a dotted line in the preview, showing the cutoff?
%MX+K4rG819WsL1BijnuZ4CAk6Eia2gEytVXCdrPrjCk=.sha256
The linked discussion is about tools for team/human resource management. Per the discussion, it's useful to have some structure to profile information, so you can query against it. It's also important to have user groups/lists. Concerns raised: profile taxonomies tend to be application-specific, which is a challenge to generality. Users also need access-control over their information.
Did I miss anything, @bobhaugen?
%xM+GFLuJfdlCaJSsPdpIqSG0Xh9tUa8O3hMbed+ko+I=.sha256
%zuSGNbg0gEpbCXfmbYfLe6NmdTEjdR9t2q8WxSX7t7s=.sha256
%QThPtLvbikJO25G+kmDNpLjXOnEG4ZNxP3Yv0Gmquhk=.sha256
%5/FOy1gUR/mDyUxlH2U7B1sPzb6QPHUu2SJDBG/BzUw=.sha256
%D1Cdpx6CY7NjGWCecyVKmRjypL+AoLPKn7jBE1vn/vg=.sha256
Right, that actually got implemented once and taken back out, because the UI sucked. It's just a UI task.
%xOOARjnRZJYbcE1fXJCNTIva39b+vy/6GfR/oDgy7eA=.sha256
yeah. I want to get in some cleaner indicators about that
%p6i2RCT9n6aoFlwqD3qwk0t1TUDHpb4gJ6eLa0mzJaY=.sha256
:\ sorry bout that, I know the feeling
%nqhodRSAMBSCkZGmkNLdO+ZlSW4BQJHMw8vqv2oEmm4=.sha256
%q8a7bRg8wXEDV+fP2uQgpIxse7CyuJqFTxEgYjqYtaA=.sha256
What Google Learned From Its Quest to Build the Perfect Team
%a0c4zfuW6xFSZhSCSLdVrxByULIJtaLejmP3uw8wzVk=.sha256
I found this in a NYTimes article.
%GStarlBhV2EuPsouEjiQGf7dgc6uLiGmHsP3MkqWXUI=.sha256
@dominic that sounds promising. Could there be any unintended consequences?
%lYMAAfyrMmg+qNRA8ZNx2CZYqDf/5xGbxDdJa/UOhbs=.sha256
%qtJ4tOOSAgLC2MTuUxvVDJbsHoZ4FDPUiDnB7w86A+I=.sha256
%S9felorWViSpHr2pacQI7yQL/BPYfSq3ktvyxL92+1I=.sha256
the ssb_appname
env var works for patchwork as well
%UYP+UIRESI8OilfNpC3XPMZ7unmurdNS4vd/HbkdUsU=.sha256
Different types need new renderers though
%6aHEkKLxq15kZ6GFlNnzIWlOqwRA8w+Ses/TuURRgiM=.sha256
@dominic Were you the friend he spoke to? http://goforself.me/the-omega-project/
%gbdfEXqPofL2vNwxmA9nPm2tbpl4r4vL4RDFtUj5tw0=.sha256
%Y8JAhnCzYKYEg/xyIc8a3/0o39vhyBe2dqYF3rIWBiY=.sha256
%2lqLuH2hzNXVQ58DZVH11EB5y8r457KsG8YpaDz3fTs=.sha256
%hrGnvbTrQBHtoxo/bKYfCVKIvUHxlc8GK00Tn5lI5uQ=.sha256
%jtJu+aa8KRN9/AwT2zCn3E1jv0upjBXYtsZbtPZ9qKo=.sha256
%kDVlI7I43quw9jn6iA00gSrOcZ19gtvbwSDzx6oezRI=.sha256
{ "type": "about", "about": "@uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg=.ed25519", "name": "pub_mix" }
%RULSWj3OoxdiQfc/sGRehp8X2obBHd6PxNFApOjBS2g=.sha256
%eNuDbqwqd9oQKf5naxgrax8KbDAC9D1bOIMQl3qXoBM=.sha256
Maybe: a way to pick your intended audience for a post: "followers" or "network." Then a bot could do "followers."
%1lQQm6Zd+VFBtVQXKg91SnmgUpfDsJqn5aRCIun4ryw=.sha256
Feed clutter and foaf
Ok, so how do we do things like RSS->SSB bots without having it clutter the feed? Ideas...
- Hide new posts by FoaFs in the activity stream. Been tried, mixed results, but it's still on the table.
- Make the feed only show channels you "follow." Then bots can use a specific channel, and we can choose whether to hide that clutter.
- ??
%VTGjxt2gCLBjkNkFOngYVJ6OmzfikW/V9rIlgELBjlY=.sha256
%aE24T2kEs6pN8XGtVlidmBAsym51tEBCBmAyDo3gpWU=.sha256
@cel yeah, patchwork adds its own plugin to the rpc connection, where if the rpc object is ssb
, its methods are namespaced under ssb.patchwork
%miR8TwhXyoP1kOSPO1mSwGg4K1avJoBxZW838vbZulo=.sha256
The patchwork-specificity will probably be hard given ssb-notifier's position in the stack. @cel's notifications PR for patchwork-electron would solve that, but be electron-specific, so some of ssb-notifier's code (which is not electron-specific) could work there
%bEBtd3K8qocv6BS6Is7G+3TktwOtEIyoJ+kS/sNmjZ8=.sha256
It did! Except your petname didnt show (I'm sure @cel is aware of that)
%9SnONhfOj6+OINgfeHaOVtHsS/gmHqXzsQ0AmNquYbc=.sha256
%7Jp7uTX0Bn8AAdsOP+VNsWt28WmS/DBc+c7jTcSQs50=.sha256
Yeah it could be a combination
%TaKHyGiI+chjr4uruVSYH46JsoQ1ly0te8xfd7zQ7IE=.sha256
@dominic sure but sometimes practical within a timeline is good too
%DfM6JU1qPsfqdyt77aMIyihEJ5/g0SZo7g1ZN5vadtQ=.sha256
Oh cool, trying it out now
%sZ9aB/hkgqqrEJB/cE4Yu1F1xK7d3UlHHmq59bL2hng=.sha256
%H6QvAVtre5qJrZxOpyP4fvd1t9RXJLkaQOrM7P4b1Zs=.sha256
Because it's contextual. (I take back the word "trust" because that has security implications.) The question is, who says you should autodownload a blob: the publisher or the receiver? You might have a different preference than the publisher.
For instance, App A (Gittlebutt) may be watching the log for git repos it wants to sync down. App B (Patchwork) may be watching for pictures it wants to sync down.
Message hints may be useful if the publisher and the receiver are using the same apps, though
%E6HPr8kNuKrnz3NwBuaPWrIgK/HyfeCpQ6HURD+CpLs=.sha256
@dominic you could make a bot do that, you just PM the bot and it republishes to its members
%BhNl1LxQf5G6V00kXj3A6WtFPg+WY7trlU7nXRCK7JI=.sha256
That's what @dominic has been suggesting. I dunno, do people want that? (Upvote this post to say yes)
%3FGueTx/7hbiU+ruyHI2BrLF5pZMlXXvHSB4pQy1eRc=.sha256
Inline replies on the feed
%pRh8pQ97HLQf5DIouT4ywuLjW73QpUorrltA29LfFg8=.sha256
@krl agreed
%KXJa+KnfIkcXZUWgufyGuOlnZuzCaWPIiuBqaF/rurU=.sha256
Should posts that are in your inbox be removed from the activity feed? Seems like that'd be a good idea. Deduplicate a bit.
%E9ffyRTmrE7UmG69sgXWOttEtbnRLrYv8w82HzIXJl8=.sha256
I dont think this can be done via message-schemas, because you cant trust a message to give good hints.
I think you have to have the users' applications register want.
%vMBKNhTsZ99LPeEtIRnfMvNmsy0ubOsmnQUGYAofEME=.sha256
%gg9bwHBvHMg7h6KUYXeRp2CO5YbyXhCW5ffDoN+ZKos=.sha256
The pub needs to see a message linking to the blob first. It will then want
the blob itself, and rehost it so that you can get it.
This is why PMs dont allow attachments, right now. If your pubs cant see the blob-link, they wont sync the file.
%kkZKrz8eraRgEWJQc9uZoROmLou1X/UqjxucJDr4ZrQ=.sha256
Channel features I want
- "Watch Channel" Button: all messages in the channel go straight to your inbox
- Channel Descriptions: works like user petnames do, but for channel descriptions instead of naming users
%Tvl+EzasissOgj7cQ0vDS01ow7nFD9x3IdkBKAoc1gs=.sha256
%enmFrk0CLJU2nffXDfuXSXngs656B8jy5dyJ5qXMcVo=.sha256
%w2KxK/CVfCER96hfSnZc5qsBUPdjHoHYhgXoVk4hczw=.sha256
%sMssoR9UjiKTEJBENw65rO53Bisf1t/bA6tmSl8m/w0=.sha256
In that vein I always thought reddit and HN's upvote/downvote mechanism was good
%D8gjfHT0gxQCMAcZhDE7ludwONPMZFcSxI7qGmC4hNA=.sha256
Patchwork 2.5.0
published.
- Inbox now clears out read items, putting them behind an "archived" button
- Left and right navs are updated, and now include collapsable menus
- Readds the feed-view, in the form of the Activity Stream
The flow is setup so that you do work in your inbox (your priority queue), and then you can go into the activity stream and channels to discover new content, and potentially pull that content into you inbox (by watching the threads).
Will now shift gears to bugfixing again.
%9x7/CAyY/9qheb5GhMd39hybhJjcIKx5fWFkNRQmkEA=.sha256
I think I'd like the last 2 replies to render inline in the feed, but Im going to hold off on that to handle more pressing things
%lYPhuCrVLZ4A2MKLXhRVgzcSCMqBPpv5CtBIKnqRdv4=.sha256
This is the thread for which I dont have the root, but I can respond to what @keks is saying here:
We just need to debug this, and it's on our priority list. (In fact hopefully it'll be quite soon, after I finish up some last UI stuff.) My current theory is that we just need to do less gossiping; it's happening way too frequently right now.
I've noticed the same power drain, it sucks.
%Cd1X2Mq1HiN7f3T/zV6TPFBvm2B6JvaofbRU1j3Zt8E=.sha256
Here's a fun one: @keks just mentioned me on a thread, but I dont have the root message of that thread. It's not synced to me yet.
His mention added the thread to my inbox, but then the thread doesn't render because the root is AWOL.
What should happen, there? I guess something similar to the "missing post" UI, right? Missing posts are really... really gross.
%WPALmrEcoksWaMwtArbfj0apjcddzxKmy3LepyYdPhM=.sha256
@dominic right, we cant stop a user from sharing a feed between applications anyway
It might be a bit like plugins vs separate apps. If two apps share a feed, they're sort of plugging into each other.
%zJJyoJs/fcRiPN2Xl8l3zcSsRMrs7WHiDrtMU1qYP4M=.sha256
@keks yes, it'd be a separate feed, and then the feeds would just need to identify each other as related ("this is my subfeed" / "this is my parentfeed")
%TRj8f3uhTkodULo8C86neZ4M9QwHiC2mYC0brDEp6pc=.sha256
%mH0yEn60OBwS3JhAEC9zHF2bXYFSIEYmO+mos515+m8=.sha256
@keks it wouldnt, I just put quotes to signify it doesnt have to be public
%AKPToRsJtke6k2/eejUenAF366strtNBwtMZg112YNc=.sha256
-- ancient tweetese proverb
%kqA4igj9mZKsa4iEedeEbLcWVqkK+CFUtruBl4imNR4=.sha256
@mixmix ok readded icons for you
%w+5XHIswPNzgVYR6zLR1PeJK0IHBNzSCPxP4FmrOCTY=.sha256
%tDdXU7xvqzDsGrWq/R/J/Aql1UDizZLBRs2Fthjl4Wk=.sha256
Yea but part of the SSB pitch is setup convenience. In an office with p2p syncing, you wont need a server (though you might setup a dedicated box for doing backups, an in-office "pub")
%BYsAAYQFgFSsXfUAo8EScFGI7kBGjUUGooFwvvjI5vs=.sha256
%XkNfmaWZPV9PJtnurW9fdmtFZbF0UgWXtMwoYcvQDD4=.sha256
Also sidefeeds are easier to delete, in our current infrastructure, if we found that to be necessary
%iEyKS5kNLski2F/MYXY2z9NMH7cPkiDz3uthpVjd12E=.sha256
heard.
%61nZ8RGUo7SI+TM/VjTp5ltEzPtTEAnbZWMjKHDADKg=.sha256
Im being thwarted by a blob replication as well (sits on want
) but even what I just tried got me excited. Imagine this in an office. @cel you may really have a GH replacement here.
%vYai+Ei/0XAZmuhJ4z+ESjRQAkX5Dfavb+JM8ZljTyw=.sha256
Right, I also think this could help us with defining semantics/schemas, as @dust has been discussing. If each feed has a dominant application, and perhaps announces the application, then you know which schema-set is being used
%y+C7XSD8lwDGJk5okVFqfgXE3X/aISW8hEVxdSjQDK8=.sha256
This might be more obvious as the ecosystem matures
%i8iellZXamLIVXjkRZr3bxKjT/OTUSh8aXK4+PNkH8Q=.sha256
How about gittlebutt
%KU52pGrvPQARK6P3tNEAN+qH+Wv+n8RLycMTVvm903U=.sha256
I suggest you rename git-ssb
to something else, because having ssb-git
and git-ssb
is a recipe for madness
%KAr+5eu3yLc/qvhPyk8FuywZiLOXVx68/tHZ8qTjd6I=.sha256
@cel All blobs that get referenced in an SSB message get auto-synced. You're right that it's not reliable yet, though. I'll hold off discussing this in detail so I dont hijack the thread.
%3MIZieZr7Nm0Ux08vqCho+osDXv5XIceDR4sasM8COA=.sha256
%fqQvn2qHoj3LNkStpjmDG71IlP2UBeE1kZ2aJ5tI0yc=.sha256
Are we concerned about the overhead of applications sharing one feed? Im just imagining somebody putting @cel's git-ssb to proper use... a lot of new traffic you can't opt out of, whereas with subfeeds you could opt out
%1fb9HUvKw8Vtc+j6AP38wFzb7vtUgOTyCB9BBG21jyo=.sha256
%87HeGQLfCisb/2TXlOBRjU6rwV/5Rh6HRHpD9rjOci4=.sha256
%hUGNdQN+2ExKqY+tI/TrmOpb0JS7B3hL0+VhPj6sEJM=.sha256
%uoQYdXh6JdlT58YXAyr6YOY2uhps6a3UZLTWos+TMzM=.sha256
inbox-management
ready to merge
%ZAxUBKtHNWlAI4qfB7JpGXNSAlW/SNJTx5fO638oH7s=.sha256
That's a todo, there may even be an issue for it. If it's a localhost connection we need the timeout to be disabled
%gLJrcQstFOG5uj4aDl/VhO7dNPIV2mytWUcEQ3o19Z0=.sha256
feed id + seq*
%YW34TEVHxD0h5zz0dOqmmHC1+lUy73+amajherjnQ3A=.sha256
That would work, we just do it where you give the feed id/seq and it has the same result
%6MPZYZ6/Y4Kn5ZOQdF8LXm2o82sdE/HK8sn9Nb5tYco=.sha256
%SLW5rfXatWPEt6fIoyG1PhcwN2pfy758Y1b7kSiswdw=.sha256
%nfVOt9QYuThBesXC7Y8I3MZJkPOJUt2IHS57Vo5YygI=.sha256
%4GLXj8qAxHbavP40G+P6FDx47V2N0iN5IcAqJer4XWU=.sha256
It uses sequence number. View the raw data of a message in patchwork (three-dot dropdown, top right of msg). It's the sequence
number. Your message above was msg 460.
%7wOhmWQp+GjWb2/d8eydhS1vis/3hLODrvpS8HGaR/A=.sha256
%t8d+xkfELV/XmlIOpjdIGOIkwSEefY5ef1iYpSPq8QA=.sha256
%ARf2SgPtxOhiAQXTWxZDSYb3zUiwHRSQfIBquxTKQKs=.sha256
%SVvSA114w+KRrhSMiGsaxiKAAnuoYuyheVITzy2iXwY=.sha256
%7LDCjer4FQMi6FyRQyEvK7ryN3O+g113fT3A43wNjcU=.sha256
JS is always handy. After I done with my forth run, I'll probably force myself to do more Rust, but I wish I had a good reason to do Elixer
%Q5O9ahu//RKWpkK1v6Lt4ZifbfB+aUtgF1XmM/XYf5A=.sha256
We're going to do another big documentation push in hopefully a month or so. I've included muxrpc's protocol in the todo list.
%09KgJcb1HE0Ei6XJvUwhkFwGNqhYu4XNqH4RclhFhN0=.sha256
%zgBoUpglUAEB3BNRR+kWPrkrna3VrbN6VYmJOVnGj9s=.sha256
@cryptix oh yeah nobody likes that, we really need to nail these crash bugs
%uALOo2BNzcezpzDNbsme1yRLSQzaM06UdwYr20Opovs=.sha256
Ok, I'll get drafts on my todo list. And, as soon as I get this current dev done, I'll do the edit feature
%My3mDL6z0965tpqYoZxWg7TW809vENnMhc87M9d0qaw=.sha256
Oh, ok I see the bug. Thanks.
%RqEIWZ6O5qeNW1ns9TwSLFbHiRdv+h5OAavD7flAdpg=.sha256
ah, "dig it" is fun, it's got a 60s vibe to it
Facebook's going at it all wrong. The response emojis should be way more specific
- Nodded
- Chuckled
- Blew air threw nose
- Gagged a little
%eEnK1cqRWtrhlnRFaXiXhv6mF9PQBRfBiAWwFdrTutw=.sha256
%bMEJDY6QJwBxcH7nqU3FdL7NmPedEB+Cf3LkowSZlpw=.sha256
@dominic ok I actually think I've found a solution here. Check out the inbox-management
branch of patchwork. The Activity Stream and Channels are discovery for public messages. Inbox is PMs, bookmarked threads (now called "watched"), and mentions. I'm next going to add a feature to "watch channels," which will cause new messages in the channel to auto-bookmark.
In this setup, the inbox is now your primary interface. You explore in the channels to find content that you might want to add to your inbox.
%Lg4e5r8JrY3evLRn3C+HeW4SV/0iKSTCpw4Q1eV1lCs=.sha256
No worries, it's relevant.
%Y7oHEK+OS1pFC98DeXFSDW4VbBWRJ3rrc1isbgsMuxk=.sha256
That's almost working as expected. The link's label ought to be included in the name attribute.
(Isnt "View data" handy?)
%iM863bAV/QkGPjExNKkyWd1cMSbn6iqtSsLlomyJRdY=.sha256
@dominic I think this is something it'd be smart to write out, though. Would be easy, like 30min/1hr. If it doesnt fit in your queue we can file an issue for it
%qaiCURj+dVyC+FXNAXJ+l6scM9hbkpz3VP23ossnwes=.sha256
Your nodes are getting haxed
%5CWXXfB7rtrTjMYvVzL10kP1XGJ8WoTSNfcTbSFV++w=.sha256
cheating
who among us hasnt cheated on their public key visualizers
%Bs3mBW2LPx2ji0L4fOLOsy5ydSHt+QOWOfnBGLFjg08=.sha256
What are the odds that's related to this?
%fupODxzs4xACUXKZJr/CQZZ0xEn4H/fSE75qgxwzwHQ=.sha256
Issue filed https://github.com/ssbc/patchwork/issues/311
%n/tLcD1fOBlfEzzirerx6RLLgW+kAX8JhqT8dwJsKBY=.sha256
That one is totally new to me
%t2yAWiKJzmY7/f91VHWBfKwiVH4Bpg5CJ1OZAQjGaTM=.sha256
Are you on master?
%QbgVTq7yW0FVasYtAgt+YugNq3v63wmobek9cflAyBQ=.sha256
@bobhaugen just havent gotten around to it
%p0MG3vuR9Kr/2oDmHwMR2M7MtQZmZgOZ39tJReBiX+E=.sha256
%1sr7yziOCiB7gJbqqvLSizaM6GZQb05j07JvP8C1sqc=.sha256
Ok, that's awesome. Check out https://github.com/pfraze/pubkey-avis
%3rrdLjMvAZyqPJdZuhpPnaD9glcRd0NtMmhkMK0ERoE=.sha256
%fy3Jkq9kntR31v33G+4ehRQ43QZnxf2NiOykVmjMGbw=.sha256
Still in progress, so beware the s
%6DLIUWv9mz4d9cx5x17MT+1mH1rewfWzJYQQNnIIGJU=.sha256
@mixmix good! Yeah, isn't it sort of relieving?
%75gjSlgRVTssd3WW6LSLAE2jgAJHTfotKNdPSdzUkSM=.sha256
Right, those are common misconceptions about crowdfunding. It is nothing but a bump.
Kickstarter's not inevitable because it's easy; it's inevitable because if we're not capable of running a successful campaign within 2 years, then we've completely failed to achieve a presence.
We'll need to talk to customers to know what our business model is, but our predictions remain that it'll be paid pub services and/or enterprise onsite services.
%oUeQxU/XbTKwjwqa6EaVSTzmP2hkRERw8XpTVmqCvLk=.sha256
@dominic do you think you could write up a spec on muxrpc?
%4AxPnXulSJ6DGlCwwcCpkfyNuwXdNNz8JS+SwnkW+SE=.sha256
@mixmix well that depends on our target. I'd expect to aim for 200k US or so, and if we blow anything more than 10k in marketing then we have a real problem controlling our wallets.
You're right that Kickstarters are about producing publicity and traction. After we've validated a first niche market, and are ready to expand out of it, we'll need to run a marketing campaign whether it's a Kickstarter or not. But it's pretty inevitable that the campaign will be a crowdfund, since that's keeping in the spirit of this project.
%nah9p1hd38lrYvC32S+RgoMw/LAiPcTjsIesxcdWsFo=.sha256
These systems arent so much about categorizing people, as they are about emotional intelligence. Personality heuristics is all.
%EnvRwm04xhm6DiRDK5DZflneRnTAdCcxV4i6kt588C0=.sha256
I did too but that wasn't mine. I suppose we could rip it off, but all the dist sys guys are doing space.
%8Yg9k19RxLrWs003Pfgmt00wPrj6zu/My7NAO8ldp4M=.sha256
@mixmix 3% of 0 is 0, but SSBC is only a 0 if we throw it away. Lets roll this into the business conversation.
%VqIE7x3NljxUqeh6z7505PVg2M654qmk443tv5I5XyE=.sha256
@bobhaugen No ads ever. We're going to need to see what our market is like. We'll do a kickstarter in 2016/17. We might start a paid Pub service, $x/mo = N mb of storage. We can also get into enterprise on-site products and support.
%82w5XhSWgLfjsldVYXK6AqrfunTSmdCE1uKmYjonIbc=.sha256
4lyfe
%s1eyVymRhm+fP26Zc1nA0EmleD21dwroB7yTZwJ+QNQ=.sha256
%TPAstEjQi9+iNZN4i6vQinCZ5sm0NCLg8X5FQHEU4gY=.sha256
%9dqGp3eCktdDvz5lPqc3kNFJCSzHR7bT2/VbUaKQm2w=.sha256
%lwKCCk6FMJkM2p3cV3B4Q8aPhni0kWvwgeVRo6xDAqk=.sha256