You are reading content from Scuttlebutt
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %FJaxdy6k9SNlsIJ+BPbsAskMFB6eTzNpDxv1OfPAaLM=.sha256
Re: %nRT1P8oHM

For me it is about having options. I don't want the Electron-based SSB software to go away, I don't want to replace them. What I for people to have multiple options so that those who want to use non-Electron apps have something they can use.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@mix.exe %lGLbCCiB8LIt0fLsbQTxFHNKsPwXFv1LSFwFFsuvQBw=.sha256
Re: %nRT1P8oHM

It's an old argument @zelf !
Many nerds (fairly) make the "resource hog" argument, while other nerds make the "accessibility" argument. i.e. all good running a light client that run from the terminal, but that's not accessible enough for the people I'm trying to serve.

The sweet spot would be a way to make installers for all platforms (accessible), which just uses existing tools in the OS to allow you to interact (e.g. a web browser like firefox)

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %kUiuLUhOUzu2yJgTw8GklAn3ij0r0unzUZvXzVdlIt8=.sha256
Re: %MEy86hUT8

Electron is basically Chrome. Every Electron app you launch on your machine is the equivalent of opening another Chrome. Some people — named SoapDog — think this is too wasteful and would rather have something more nimble around.

Electron is very convenient for developers. It is really easy to use compared to the alternatives. It is just a hog on the end user machine (depending on the machine and the end user).

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %YlbqvKCX+6eMqjJddx8LJJtKNkdffzjP224eDM3t6Bk=.sha256
Re: %nRT1P8oHM

@mix.desktop exactly! I opted to use #ssb-browser demos because I know they run on a webview without the need for NodeJS APIs or filesystem access.

Both Tauri and NeutralinoJS provide their own API for things such as filesystem access, it is just not the NodeJS API. Maybe a shim or polyfill could be used that allows NodeJS-based SSB stuff to run on these systems but this required more time than what I had at hand.

User has not chosen to be hosted publicly
@mix.exe %zKQTQIdMg0BUEBYmli83GQFETx7ktJAwvxn5K7sNj/s=.sha256
Re: %nRT1P8oHM

Cool! I did a survey of the electron alternatives some years ago and couldn't find much.
Does this work because you're not running any fs stuff with Tauri?

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %tfmUDOa0paoqpaJCNRrhGASYD2HZ5Vnf1kCofQiEHYk=.sha256
Re: %nRT1P8oHM

Continuing on this trend of searching for Electron alternatives.

Neutralino JS appears to be working as well. The application loads and appears to work. The build command creates multiple binaries by default. It creates builds for Windows, macOS (x86_64), Linux. There is a little resources file resources.neu which is like an ASAR file for Electron, you just bundle it with the binary and it works. The builds are quite small. On macOS it is 1.8mb for the binary and 3.7mb for the resources.

chat-demo 2022-02-07 10-47-54.png

memory usage appears OK as well:

image.png

It looks very similar to Tauri. Don't know who inspired who. :-)

@Danie %5ik7v9tj9wiNLt2Aa5zFDIOaTZGzYdGpHfKnWbAwDhQ=.sha256
Voted I just want to say that you can very easily build a desktop application wra
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %nRT1P8oHM1KFBqfTwYll1rwEUK8lHXuD9VnzE6dEvJI=.sha256

I just want to say that you can very easily build a desktop application wrapping ssb-browser using Tauri. I used @arj chat demo, and it took me about 10 minutes to get it all working.

Chat Demo 2022-02-04 13-43-50.png

The application is packaged as a macOS Application bundle and weights 8.5mb. Yeah, that is it, less than 10mb.

Memory usage also looks ok:

image.png

@SoapDog (Macbook Air M1) %alxqbbDrLUoJjXECV5mFNylzs0tmrLACnxBZ+I061PE=.sha256
Re: %nK9axEYaN

oh, makes sense. :-) no worries, I'll just clone the repos. I'm trying to add ssb-browser to Patchfox and want to play with those demos. By the way, is there an API for importing keys? I see that in a first-run it generates keys, but I wonder, is there a way for me to supply the keys? I'm asking because Patchfox stores multiple identities, and I would like to use Patchfox key storage to keep the ssb-browser identity and load it as needed.

@SoapDog (Macbook Air M1) %nK9axEYaNHslOvM7/0+JDI3vEbp+MJ2tGYHw7absOhQ=.sha256

@arj are the browser demos offline? Somehow I can't reach any of the https://between-two-worlds.dk/ URLs.

User has not chosen to be hosted publicly
@Danie %Z6A8+JFpv7980wbXxFVjmG6SRRTJcCskm/BBEOeptIA=.sha256
Voted # SSB browser 5.5.0 Saw it was a few months since the last posts on #ssb-b
@luandro %sfTzUVElbYMSbAS4UuhbyHwGGbGqRbBYKbXkdxORNbI=.sha256
Subscribed to channel #ssb-browser
@Anders %TY2DWCCQajXpmDSs4T2ETtDE4YZtNxdViyfzHnmv3hk=.sha256
Voted browser peers still connect to regular server instances over websockets afa
User has chosen not to be hosted publicly
@SoapDog (Macbook Air M1) %HXl0LIxXZc/NYl+dux6H/l0Kq4iv4igP+njpbBB0uGI=.sha256

Hey folks, I have a question about #ssb-browser peering. The question is simple: How does peering works? Because, as far as I understand, you can't listen with a Browser, that would mean that every SSB peer using ssb-browser would be akin to a web client. It would be able to connect and exchange data but it wouldn't be able to sit down and have peers connect to it like other SSB servers do. Is that how it works?

Because if that is how it works, we can't have a 100% ssb-browser network because they wouldn't be able to connect to each other, they need other peers in the network which can accept connections from them.

Or did I understood it wrong and there is some web technology that allows a browser to accept connections? I've seen people doing amazing stuff with WebRTC but that is all black magic to me, and I don't really understand how those channel works.

@Hiure %+CeCEbaMJOrAcND+MkMuYwVByi+WgNi6E8747EYs81g=.sha256
Subscribed to channel #ssb-browser
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %VlxwEFKqdpAo7OMh2oRBjmiQ339iWHy3hlqxNVNhyc4=.sha256
Re: %x2IyiQ9lK

A bit ahead of myself, to excited sorry. Got it running locally and the admin looks amazing!! Congrats

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %LYFOWWj3p9T9RtaXLRBq3xmsI2Y30zHx5wlPTQh6k3E=.sha256
Re: %x2IyiQ9lK

@andrestaltz how do I use hermies.club with Manyverse or ssb-browser? I only see a QR code.

@luandro %J+CnTxaBf9KZ80jdcHYOZzIb0DQx710wcaILVDMJk2g=.sha256
Re: %x2IyiQ9lK

Yall are faster then my thoughts ⚡

@luandro %3vqpiXIB5w5N/agtLugFDJJKtiTOrqJ7jIW+X0OzTd8=.sha256
Voted [@Luandro Pàtwy](@2RNGJafZtMHzd76gyvqH6EJiK7kBnXeak5mBWzoO/iU=.ed25519) it'
@andrestaltz %x2IyiQ9lKZxYyeheuIHEIkYf5X3/m98HT9bTXg0R1Kg=.sha256
Re: %Po0s53Ltc

@Luandro Pàtwy it's already done https://github.com/arj03/ssb-browser-core/blob/d59ca1066c0c952a26298195dbd07e5dea725f51/package.json#L35 😎

@luandro %uwWCQjxwDfGn1oF3d1yd5bTBsF6KGiIjKurcbBFRSoU=.sha256
Re: %Po0s53Ltc

Will adding ssb-room-client to ssb-browser be easy? if so I'll drop old pub/room setups and focus on go-ssb-room.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %ATUiJrAc3NpffIULgKgdWhF8Lk/4llVA/Bkkdma0C5k=.sha256
Voted # SSB browser 5.5.0 Saw it was a few months since the last posts on #ssb-b
@cel-desktop %mJcOYu2o79zCUBfjHmHgkXXJ7LCIdM2CPG9s+HcfY2Y=.sha256
Voted # SSB browser 5.5.0 Saw it was a few months since the last posts on #ssb-b
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@Anders %6oVWf38+N2sRoIiaYcBCXtYWLufqL84cJWGVimAR3JM=.sha256
Re: %Po0s53Ltc

@KawaiiPunk you don't really need to install it. It doesn't use your main ssb folder, everything is running inside the browser. The easy way is that you go to the one hosted on my pub. You can also run it yourself so you can verify that nothing has been tampared with by checking out the latest version from github, doing a npm run build and then running a local http-server from dist/

User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@Cinorid 💼 %UV1PFsPvTLf36mhoo/LbBXeBlogT/AX9yRPTQgfQ41w=.sha256
Voted # SSB browser 5.5.0 Saw it was a few months since the last posts on #ssb-b
@Anders %Po0s53Ltc6Rra0zZhgE/tHfVJqPo8cfGUfdUaCg1DME=.sha256

SSB browser 5.5.0

Saw it was a few months since the last posts on #ssb-browser so thought I would write about what has changed. ssb-browser-core has made it to 10.0 with the latest release. Browser demo had 5 releases with these bigger changes mostly from @Kyle Maas's Development Thoughts:

  • DHT support
  • Add pt-BR translations (thanks @Luandro Pàtwy)
  • Threads (like a forum) view
  • Add full text search
  • Show follow/unfollow in Profile and Notifications
  • Display blog posts
  • Groups filter for Public
  • Show thread participants blocking you when you reply
  • Synchronization progress bars
  • Add offline mode

forum-threads.jpg

It also has some under the hood changes with new where() syntax in db2 and performance improvements in jitdb. Very happy to see @Timothy Bradley contributing some great PRs to some of the lower levels of the stack.

Wanted to put that version out there before we start working on proper partial replication.

User has not chosen to be hosted publicly
@Anders %78nOB/AgcUK+WxwaCcZmckW5zoq47H3lHCjrcWguZ8c=.sha256
Voted No problems [@arj](@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed25519).
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@entron %YxR+99e8Wcv++iM8gq8iADI5b0gwPNw87GqxPGoKhlU=.sha256
Subscribed to channel #ssb-browser
@luandro %xx1KUW2MBh4tXLqc0nUgJgW3hj+Ci1zGToh8Canpdi0=.sha256
Re: %QNJE6OcJ7

No problems @arj. I'm pretty sure you can setup a single project for free without a license. But translations aren't so complex yet, just thinking for longer term. Hope to add Portuguese soon anyways ;)

@Anders %aDqdKCQwOmqrXlVHmV41vwG1x385FXfx15cimNmbfTI=.sha256
Re: %QNJE6OcJ7

@Luandro Pàtwy sorry for the late repy. If it is something that will help I can try requesting a license.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %pES4pZoUM4gYDsRKQ0idyFer/aWXf8S5BPoEARZoDXQ=.sha256
Re: %QNJE6OcJ7

@arj @Kyle Maas's Development Thoughts Would it be possible to setup a Crowdin (or similar), to make it easier to add translations?

@Anders %ULCGYGOG0dOd3CJ3guSjTXPXOJTExMSK7K0LPiBb8sc=.sha256
Voted Ohhh I'm featured in this post (not really) :D
@ओषधिः %Q1pqCWoFDgUFhPaRzcGc9ZTMY3USLMc7Ti50RGx0gXA=.sha256
Voted # SSB Browser 5.0.0 This is a rather big release. Most of this stuff was d
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %bo+f3i3eQiQndeaTekaiUyT2ZLdz64H72zEvz/gUsSg=.sha256
Voted [@farewellutopia](@IX0YhhVNgs9btLPepGlyLpXKvB0URDHLrmrm4yDlD1c=.ed25519) it
@Anders %on1/ZlTDH2fhxq+MGl4/dPlhQMqI5MlehjLOwzzYF4c=.sha256
Re: %QNJE6OcJ7

@farewellutopia it just means you can't onboard against a normal ssb client. But after you are onboarded, then normal replication works fine against normal clients because that uses EBT. As said as proper solution is in the making, this is all just a hack I did to test the performance of this kind of approach.

@Luandro Pàtwy mobile is now fixed in latest master. I want to land a few more fixes and then do another release in the coming days.

@farewellutopia %LE/gxGpfqZIdp2RZKPKarcSMt356KxJc8aa9z6TAjAA=.sha256
Re: %QNJE6OcJ7

@Kyle Maas's Development Thoughts I just tried to update to the latest image of ssb-room, it somehow doesn't seem to work: https://stackoverflow.com/questions/66087609/docker-pull-still-having-old-image-after-pull/66087772#66087772. It would be great if you could publish https://github.com/KyleMaas/ssb-room/tree/add-websockets-support so that the container no longer needs adaptations after creating it.

@arj, I'm not sure what the consequences of this are. Will it just revert to full replication or can ssb-browser-core only be used with peers that support partial replication?

@cel-desktop %bU27Wm6Z9+LpjJo4UYU5GpFdykDaiSn+qekrn8/O+yM=.sha256
Voted The `method:partialReplication,getFeed` is because partial replication only
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Anders %E47w4mnh+WQhhk5iKcfC8wn1ioqojy95m++KxZTizOE=.sha256
Re: %QNJE6OcJ7

The method:partialReplication,getFeed is because partial replication only works between nodes that support it. Meaning only my pub right now and then other browser demo clients. In about 2 months we'll be start on a proper implementation of partial replication that will also work in the go ssb server and other clients like manyverse.

@farewellutopia %U/PfBgl9FSHC3r5roZ3mzx1Kkg08NnN5XZnSY3rXU4s=.sha256
Re: %QNJE6OcJ7

Thanks @Kyle Maas's Development Thoughts

Unfortunately event with the fixed invite code I don't seem to actually join the room (I should see my main account there).

image.png

@cel-desktop %GAQcwYKQHD39EnuXEZHwyWLpXDSeu3ApFFNixVIMd6k=.sha256
Voted # SSB Browser 5.0.0 This is a rather big release. Most of this stuff was d
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@farewellutopia %+Hu72jt1ad3jiY4lRz3CjewMavNBqwdWpsxQMPXxOC0=.sha256
Re: %QNJE6OcJ7

Really impressive work!

I was trying to add ws support to https://room.ld.plazi.org/. What looks really promission is that now two invite-codes are being shown. The code ws://room.ld.plazi.org:9999~shs:XvEHdF+ml9eussisQia9igeFejPtCKG839Gx1CrG4Dw=:SSB+Room+PSK3TLYC2T86EHQCUHBUHASCASE18JBV24= is accepted in the browser app, and it shows up as connection temporarily and then disappears and re-appears but I don't see any data going over the port and no other indication that it actually connects.

This is how my config looks like:

{
  "connections": {
    "incoming": {
      "net": [
        {
          "port": 8008,
          "host": "0.0.0.0",
          "scope": "public",
          "transform": "shs"
        }
      ],
      "ws": [
        {
          "port": 9999,
          "host": "0.0.0.0",
          "scope": "public",
          "transform": "shs",
          "external": [
            "room.ld.plazi.org"
          ],
          "http": true
        }
      ]
    },
    "outgoing": {
      "net": [
        {
          "transform": "shs"
        }
      ]
    }
  }
}

The port 9999 is forwarded to the container.

Can you see what I'm missing?

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@andrestaltz %hq0xbiRO22850eo+8pX2HqPyNih7g/vkR/HELduvPIc=.sha256
Voted You're right Kyle. [@arj](@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed2
@andrestaltz %GRvxU4oeJgsmwvzjd/Js/KJDlGHLaH8UMfeYDVOUKh0=.sha256
Voted # SSB Browser 5.0.0 This is a rather big release. Most of this stuff was d
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@farewellutopia %qgl0QfP2I3Efebcx3KDg9uTNy//KeSHdnExylOj4aDU=.sha256
Voted # SSB Browser 5.0.0 This is a rather big release. Most of this stuff was d
User has chosen not to be hosted publicly
@luandro %x7Pll4I8JMOZd0XEvpLFNZIjsK/cir1MzZ+kWLtwb3U=.sha256
Voted [@Luandro Pàtwy](@2RNGJafZtMHzd76gyvqH6EJiK7kBnXeak5mBWzoO/iU=.ed25519) tha
User has not chosen to be hosted publicly
@Anders %9kPS7wZ2QzACG3hj2lrPzsNsMk6hJ9EZ8wF1jDmOhTo=.sha256
Voted You're right Kyle. [@arj](@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed2
@Anders %KRboQqCKE0Ib0L35bIdfvjHJm0oT5D2qfnS0FRfNB9c=.sha256
Re: %QNJE6OcJ7

@Luandro Pàtwy thank you very much. So heartwarming to hear ❤️

For ssb-room see this. Cryptix is are working on rooms 2 in go where web sockets should be enabled by default :)

mDNS: not sure if that ever made it into a web standard or not, I know they have been putting a lot of stuff in the browser including bluetooth.

private groups: Working on that, we ran into a problem with trying to generate a dataset that includes private groups. Currently we are quite busy trying to make the new database work in manyverse. Once that settles I'll cycle back to that. Basically it should be working, but we need proper full tests.

mobile: yeah, I sadly did not have time to fix that before the talk. Now that it done I'll get that working because I've been using the browser on my phone as well before.

User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@luandro %scy+9RsKBaPpvZkdBuX5sB5k0c3I1pxrxhCoYlDf5qo=.sha256
Re: %QNJE6OcJ7

You're right Kyle. @arj has really done an amazing job on this tool. I believe it'll help make SSB much more accessible and discovery much easier, at least thinking about low tech communities.

Thoughts:

  • The use of VueJS makes tweaking the UI a breeze 😊
  • Love the overall on-boarding experience: easy to understand, loads fast, easy to connect to a room/pub 😊
  • My ssb-room gives me a net: address, but ssb-browser need ws: , how do I get the right address? ℹ️
  • Is it possible for mDNS, or any local network discovery to happen? ℹ️
  • Excited about the groups feature, any plans on supporting private-groups? 🔥
  • Love the filtering 🔥
  • Love the ability to change caps key 🔥
  • Love all the theming and personal configuration options 🔥
  • The connections tab doesn't show on mobile ❗
  • The searchbar doesn't show on mobile ❗

💓 💓

@Anders %Z8fJ9JNHtreQZfTtSvLYQJX0Af+dxyp7Vuhu55cd7Qs=.sha256
Voted This is amazing work, great job [@Kyle Maas's Development Thoughts](@MI0aKQ
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %Maj+47MeljEj9HcvOZO3HmO4+RPePv8cdHhxDPP+HFw=.sha256
Re: %QNJE6OcJ7

This is amazing work, great job @Kyle Maas's Development Thoughts! Testing it now.

@luandro %deKa7+Nwyqcs4ONSC3Sp2+MNunqFTTtoEfqmkR2mBGo=.sha256
Voted # SSB Browser 5.0.0 This is a rather big release. Most of this stuff was d
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@Anders %QNJE6OcJ7X171if0mgeT04p4qimGj8z3qbqRAnHWhtU=.sha256

SSB Browser 5.0.0

This is a rather big release. Most of this stuff was done by @Kyle Maas's Development Thoughts. It's be really good to see a new person come in an become so productive within such a short time. It wasn't more than a month ago that 4.0.0 was released and now we have another major release with more than 250 commits.

Some of the new things are ability to add reactions:

browser-reactions.jpg

A group feature where you can put people into groups and easily see only messages from people in that group. This is saved in local storage because it is still being tested, but this is by far the feature that I'm most excited about

browser-groups.jpg

Better notifications (a feature from patchbay) where if someone writes a comment to a thread you wrote or commented in, it will show up.

browser-notifications.jpg

Themes

browser-theme.jpg

Notes

New features/enhancements:

  • New groups tab
  • New Channels tab
  • New Settings tab
  • Themes
  • Add ability to add reactions to posts
  • Filter preferences on the Public tab are saved
  • New filter for favorite channels
  • New filter for channels to hide
  • Public messages can now be posted to a channel
  • Connections now shows peers by name
  • New onboarding screen
  • User-friendly Markdown editor
  • Profile pages now have "Send Message" buttons
  • Channels can now be replied to directly
  • Internationalization support
  • Japanese translation
  • Pirate translation
  • Allow for message titles in Public messages
  • Autorefresh feature for Public messages
  • Include replies to threads in Notifications
  • Suggest profile names when typing @ in an editor
  • When a user is blocked, we now delete their messages from the database
  • When easily available, thread titles are displayed for reply messages
  • We now use ssb-friends instead of the old custom profiles index

Bug fixes:

  • Lots of performance optimizations from arj03
  • Clicking Disconnect now forgets connections so they don't try to reconnect
  • When changing pages, the page title is updated, making browser history useful for back/forward
  • Update dependencies
  • Multiple fixes for pagination
  • Display error to user if they exceed message size limits, rather than just failing on the console
  • Get rid of the chloride errors which always showed up on page load
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %/llGaEgnj3K1EvNhTZBztV1cfZnl2v1Z9uAOCl7HgG8=.sha256
Voted I really like the reactions from #manyverse. I found that [@cel-desktop](@l
@Anders %FXP+dyBKPB2+7FyccvlzFY2t3EIpekb9JLJBlAMUEPA=.sha256
Voted patchfoo uses "dig". (Patchbay used "Dig" in 2016-2017; before that it used
User has not chosen to be hosted publicly
@cel-desktop %Rp8JEtv/3I/qjS2FC5x0MgQPNIfB0Hk922as2Xg9h0I=.sha256
Re: %kJgIpuzZ3

patchfoo uses "dig". (Patchbay used "Dig" in 2016-2017; before that it used "yup"; now it uses "Like"). I should change #patchfoo to make it more configurable and show the expressions.

Manyverse uses this code to convert some expressions to unicode:

const THUMBS_UP_UNICODE = '\ud83d\udc4d';
const DIG_UNICODE = '\u270c\ufe0f';
const HEART_UNICODE = '\u2764\ufe0f';

export function voteExpressionToReaction(expression: string) {
  if (expression === 'Like') return THUMBS_UP_UNICODE;
  if (expression === 'like') return THUMBS_UP_UNICODE;
  if (expression === 'Yup') return THUMBS_UP_UNICODE;
  if (expression === 'heart') return HEART_UNICODE;
  if (expression === 'dig') return DIG_UNICODE;

  return expression ?? THUMBS_UP_UNICODE;
}

Source

User has chosen not to be hosted publicly
@Anders %Kk7Vj5iJfvcLXcz3RXtfIxyrYygUcDqDb9Zy8T9QNzE=.sha256
Re: %kJgIpuzZ3

@test monkey

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Anders %kJgIpuzZ3JzshOTm/kTY9Fw9+HKQqPfD1k16//SANK8=.sha256

I really like the reactions from #manyverse. I found that @cel-desktop does some funky digs, so converted them to this :-)

dig.jpg

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %tjw0ft7zgJTjdZ0iNI/Buv17kd7OPvW/QC1AEdhNPec=.sha256
Voted Time for the next installment of #ssb-show-and-tell. I just made a release
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
@Anders %urkKJmW7VXq8mF1VPK2f5LFYjKOxvxPegPRT0Z4R2VU=.sha256

Time for the next installment of #ssb-show-and-tell. I just made a release of ssb-browser-core and ssb-browser-demo that now supports rooms. I've been talking on and off with @andrestaltz for the last month or so about rooms and wanted to put it into browser so I could see how it really works. With this it is much easier for two browsers to sync directly. The only thing left for easier onboarding was partial replication so I implemented the current version to see two browsers syncing like this:

browsers-partial-sync.jpg

I'm currently working on a better design for partial replication so this is mostly a tech demo.

Besides these changes I switched from flumelog-aligned-offset to async-flumelog as I could never get aligned offset completely stable. It has some nice performance improvements compared to normal flumelog-offset. Lastly jitdb now loads indexes lazily so startup is better and memory usage also improved because of this.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Anders %Pzu3uQ03E4gpLLfyzG+2X6PC9Jgbf5GLcr8+XrvrLvc=.sha256
Re: %mlWGJI2Jf

This is 85k. Converting is done at the point where it enters the db.

@Dominic %3v/iWQcLkTn4j81xk5Z9l5Cy1fBNqgEq729OGW1Eilk=.sha256
Re: %mlWGJI2Jf

interesting. So, how many messages is this? 10-20k? I think excluding decryption doesn't make so much different because there are not so many private messages. At what point do you convert to bipf? is it just before it enters the database? or after receiving it?

@luandro %Qz+d3QrWGky4y5EP6FBRfDv7eOXYpx+coSvv6G4/SD0=.sha256
Voted Yes the messages are still sent as json. Just yesterday we landed a patch i
@luandro %4RD2vwG2VSb2+CeBDrwqbIGClh/Vt/dK7pLRl/gPIWw=.sha256
Voted [@Mix Android](@G98XybiXD/amO9S/UyBKnWTWZnSKYS3YVB/5osSRHvY=.ed25519) yes y
@luandro %jOzG72Kt+yz2n391IJQkqbEuLoA9g8wZ39aVz08yRLM=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
@Anders %pArxUTcS/bL5JAczB7gJDu2bBmuCAT2SmI1IKXDMbtc=.sha256
Voted Great results! Is this sending the messages as json still or are they sent
@Anders %pY2v98N9kXFUMAMhNN2ToJ5UNt7ciQ58C6ditzLvkuA=.sha256
Re: %mlWGJI2Jf

Yes the messages are still sent as json. Just yesterday we landed a patch in EBT that allows binary messages to be sent between peers. Getting it working in the rest of the stack is a bigger undertaking, but I know Christian has some patches for at least some of that.

In terms of other bottlenecks, I made these micro benchmarks of 1 full feed sync:

    // node (no db, no auth): 2 sek
    // node (no db): 3 sek
    // node: 4 sek

    // browser (no db, no auth): 5.5 sek
    // browser (no db): 9.5 sek
    // browser: 17 sek

    // no decrypt: (300ms)
    // no bipf encode: (300ms)

So basically its 50% something, 25% db, 25% crypto. The no decrypt means don't try to decrypt private messages, I actually would have thought that would be bigger. But of course it depends on the use cases, with private groups that is bound to be a lot bigger. Bipf encode (because we get stuff as json) is also not that bad.

User has not chosen to be hosted publicly
@Dominic %G9Dxy0qQCBS1rDtQXWUgfSWYEkQMbJe8Dj6lOfBr3Kc=.sha256
Re: %mlWGJI2Jf

Great results!

Is this sending the messages as json still or are they sent as bipf? I know they'd need to be converted back into json to verify them, although you could actually do that without making objects.

What is the next biggest bottleneck?

@Dominic %h9KIVoYNEaiMpxZknArr+t+znZxTdAAbFH7OQ51zBXw=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
@cel-desktop %W114cjPCJa1rbq2iiCsKH97989nExfmQnLgmWMsKm0E=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
@Anders %aj1OITjXp6owIj+gydasJAbiesZKelrUwYQI+7gXKps=.sha256
Re: %mlWGJI2Jf

@Mix Android yes you could do that. Please note there is also ssb-friends and ssb-backlinks.

JITDB is meant as a replacement for ssb-query.

@Jackson de Jesus %aeUbXWIFOkYZ+v/Pl+u6EeyztCGWNLkhvQxaoJYxRY0=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
@Anders %tvYu//SULjm1WIldMPJHmT+RAtuLTlFdt14g7eEKc7U=.sha256
Re: %mlWGJI2Jf

They don't really overlap. You can use bipf with regular flumelog-offset as well. The reason why I needed flumelog-aligned-offset is that it runs in the browser.

@luandro %qMll9W8TmSgGbWVnMsh3JIPPPgg/VJPONWUirAvd4oY=.sha256
Voted And I should probably also mention that messages are stored in bipf. I just
User has not chosen to be hosted publicly
@mikey %cshRnYSI2lIcNG9cI3GcY+KTFL1fh+Ac1IonYJlyEZY=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@cryptix %6DG+g8VUauGJ66L9sGm+mnzjALwkSTvJ4zJ7K/Z1BOY=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
@Anders %Y6dp22jkS31FGiHTt5WXJAWrShIdKjra/QbQFfQIcM0=.sha256
Re: %mlWGJI2Jf

And I should probably also mention that messages are stored in bipf. I just nuked the main index and lets it rebuild for those 85k messages, that took 1106ms.

@Anders %CuY9Mfn6PXyYAa40kCAxhIGEpxDAaUH3Jkv4i7ToAHw=.sha256
Re: %mlWGJI2Jf

The other index is a combination of standard keyToSeq, authorSequenceToSeq etc but also mentions, roots, hops and contacts.

User has not chosen to be hosted publicly
@andrestaltz %Q5aaBXvinasRQg9d5Id+5j/ORGkbR27RGUGiH+Fccgw=.sha256
Voted # SSB browser demo v2 I've been meaning to write a post about a big rewrit
User has chosen not to be hosted publicly
@Anders %mlWGJI2JfRiyI308kdCUvwyS4t5P9Ogx+n4A2+I+xyk=.sha256

SSB browser demo v2

I've been meaning to write a post about a big rewrite of ssb-browser-core for a while but havn't really had the energy until now. To set the stage: I've been wanting to run SSB directly in a browser without any other software from quite early on in my ssb journey. Last year I made the first demo and later released a first version that roughly works. The client was using as much as possible of the rest of the SSB stack, like ssb-friends, ssb-ebt, flume etc in a slightly different api. The client was more or less just post messages, when I tried to integrate the full graph (contact messages), it became really too slow to do a initial sync.

So I went back to the drawing board and inspired by some of the ideas from Christian Bundy of a more minimal approach to a ssb client, I started ripping out dependencies higher in the stack and eventually replace all of flume except for flumelog-aligned-offset with 1 custom index + jitdb for search. For partial replication I took the approach that for hops 1 (direct follow) you store a full log and only a partial subset (25 latest messages, contact and about messages) for hops 2. Using this approach I'm able to do a sync against my main profile where it downloads and indexes 1 full + 424 partial feeds - 85k messages (62 mb) in:

``
Remote go:

full feeds: 2.797s
partial feeds: 30.752s

Remote js:

full feeds: 4.026s
partial feeds: 51.746s

Browser remote js:

full feeds: 12.9s
partial feeds: 127s
``

I'm really happy about the go numbers. It's impressive to see such a nice speed up compared to js. The memory usage on my pub when running the test was also significantly lower.

I consider ssb-browser to be an alternative ssb js stack. I'm well aware that this is looking a bit like patchwork where its not playing nice with the rest of the eco system, but what I wanted to do here was to push the boundaries and see where we end up. Also the EU grant will allow us to better see how we can integrate some of this into the rest of the stack.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Jackson de Jesus %jcwSpsusfcs/LU7z7QRbWc1ZluokXzfF0BC7SP+x0aY=.sha256
Subscribed to channel #ssb-browser
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Jacob %NNBR8JTv9ebGQMSdetIOOkppnAv/RLP8AMqn6DTBU1w=.sha256
Subscribed to channel #ssb-browser
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Rabble %HzCKoAY37b/uMxGlxsrg6qW3uoNr5Zo8XwmbXDW0gis=.sha256
Voted I like [@arj](@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed25519)'s brow
@xj9 %QrqCEK/0tr/kPQRiITNZvqpbwEAzLVwZa7FZsAxJ+yM=.sha256
Voted [@cinnamon](@fBS90Djngwl/SlCh/20G7piSC064Qz2hBBxbfnbyM+Y=.ed25519) I've als
User has not chosen to be hosted publicly
@ओषधिः %eu2oxwDYY0vqndKfuB0hFz84r7QTrVU9ya/BNOowZOI=.sha256
Voted I like [@arj](@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed25519)'s brow
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Thomas Renkert %RYMZrTA3TrQnRZr5sVTm7jJ1zVnDxKnbUYZkF9Qdj/o=.sha256
Subscribed to channel #ssb-browser
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
@Anders %T0RdI1aoT5GfNWw7P78KMGbosLY0DqIsC8rgBQeEiaM=.sha256

I actually have never tried to see if ssb browser would run on #ios, turns out it does :)

ios-ssb-browser.jpg

ios-ssb-browser-public.jpg

User has not chosen to be hosted publicly
@cryptix %WGKDAxnlQc2ZxHLGy1G3KxEES8QIzrcU+UiM3szLqYw=.sha256
Voted # Duke nuke'm ![remove-feed.jpg](&aoo0l9Llt0vlD8vq5z0R2kwcg6+6EcXxn5Ve7fd9
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@Anders %+WoVmwC19mFNc5TeG5hTGKHQwRlPJMaa9jWh+zLeHS0=.sha256
Re: %XxVYcRdj+

@christianbundy all your hard work on this made it a lot easier to port over to flumelog-aligned-offset. So thanks, this is mostly all of your work.

In ssb browser there are basically two modes: eager mode where it will try to download messages from the users it know of. And I recently added a way of getting messages users (that you havn't seen before), and for this, it was important to be able to remove them again, naturally ;-) The other is by following like in normal ssb, except hops is 1. Now this isn't super well thought through to be honest, I'm mostly trying to see how this works out in a model where you don't have all the messages of users.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Anders %XxVYcRdj+xSfJs9Qp2/bICRRd5QRaqicH4Sz271tU/I=.sha256

Duke nuke'm

remove-feed.jpg

And no @punkmonk, would never remove your feed :P

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@agentofuser %ULs8QqdRwGhSj07xlVMU7RoH7vp52o4NclOs9SX4wPE=.sha256
Voted Peer invites in ssb browser demo Pretty excited about this :smiley: So yo
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@andrestaltz %f+qpj/8OZMoUD+KJsGuTe6kz5EWn7+2yRYhtC0VUvrs=.sha256
Re: %Mc/IdsRtr

Great work! This will be super important for onboarding. More apps and pubs should support this.

@andrestaltz %2G8mmcVjnK1VjNPwEP/cajVUkqp3ajGBV+xLDRTY/eI=.sha256
Voted Peer invites in ssb browser demo Pretty excited about this :smiley: So yo
@Rabble %CX36vksgg1vy3c7zt+SnrlMw4t9DAaYMZ5SrYiyMcSg=.sha256
Voted Peer invites in ssb browser demo Pretty excited about this :smiley: So yo
@Rabble %SDdmzhCnAHUdm0nd005yOuEGYrXaWTK2q8yEyveU/yk=.sha256
Voted Wow. This is amazing, [@arj](@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.
User has not chosen to be hosted publicly
@cel %6XwppsqRXjMHsPZsFW49DpfqZxJ0oO8TX3Ry1t3B4So=.sha256
Voted Peer invites in ssb browser demo Pretty excited about this :smiley: So yo
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@mikey %buTtOOIuDeVwb7l/cULY3IZL9Vsewk8SVffm4Ge3Ys0=.sha256
Voted Peer invites in ssb browser demo Pretty excited about this :smiley: So yo
User has chosen not to be hosted publicly
@Anders %Mc/IdsRtrUtvqJJA9nHtW2A42jSax4HexeTEbAlDVIQ=.sha256

Peer invites in ssb browser demo

Pretty excited about this :smiley:

So you can now create invites directly in the browser:

create-invite-1.jpg

and select people to be included in the invite:

create-invite-2.jpg

The other end using this invite will see this:

accept-invite.jpg

And once the invite is accepted the feeds or those people included in the invite will be fetched so the user can start exploring the butt'verse :confetti_ball:

@agentofuser %cv/dBzjqZ6WLGH2CDfde9r6Uuk6/tjGWNHKqfun2RTY=.sha256
Subscribed to channel #ssb-browser
User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@cel %qgrGGVvRvYba9I0gEdoFw1R5kF2vL58qU9s+KSIMkhU=.sha256
Voted Probably time for an update on the ssb browser / partial replication experi
User has not chosen to be hosted publicly
@Anders %t/Vna90XdFfU6r83sp+ruonbtKsqPqdcyP0LMls3qcY=.sha256
Re: %xmAXrk4iq

I love this, thanks for sharing! I've just tried it out, and noticed three small bugs:

Thank you @christianbundy, I picked up a bit of styling from oasis and modified it a bit. See the fonts e.g.

  • In Settings I can select sync data, but it tells me that I need to input an onboard blob URL first. If I select one of the inputs and press enter, it works, so I'm guessing that there's something wrong with the form submission maybe?

Right, you need to press enter on the blob input. Will fix that :)

  • When I hit enter I can confirm that the network request works perfectly, but unfortunately I get a window.alert() saying "Timeout requesting blob". It looks like the request is taking about 990 milliseconds.

Thanks for the increased timeout fix :-)

  • Trying to publish a private message to myself throws "this.recipients.value is undefined", although I'm putting my ID in the recipient input field.

Ah yes, I probably did not test that after the rewrite.

User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
@Anders %xmAXrk4iqbHifKTTQ9/Nx2zt7HzXREymRphlXyMV4P8=.sha256

Probably time for an update on the ssb browser / partial replication experiment I have been working on. Since the demo at bornhack I worked on a bunch of things. Inspired by Andre I wanted to know more about ssb-tunnel so I implemented off-chain chat between two peers. Blobs are working, profiles are working. The original plan was just to use the UI as a way to test the different functionality of the core, maybe at some point to use oasis as the UI. But I got sidetracked and wanted to see what vue could do to the utter mess that it was before, so I ended up ported everything over. It looks like this now:

ssb-browser-screenshot.jpg

I have deployed it to my pub in case anyone wants to try it out. You can use &YTbAj6FWYBZOyKLeGXb+Kb4wLIlEoryq9PL1nhlCek4=.sha256 as the onboard blob url (in settings) or generate your own.

The README includes some notes about partial replication for people interested in that.

Join Scuttlebutt now