@cellular voted I like these ideas and am interested in how they can fit in the scheme of o
@cellular voted Currently, my greatest dream in life is to write some polling stuff in patc
@cellular voted One of the government concerns with #ipfs is that illegal material could en
@cellular voted Ethan Zuckerman is a patriarch of today’s web and published a report on the
@cellular sent a private message
@cellular in #patchfoo
Re: %AwBPdgm3L

@CustomDesigned you could push the branch to the repo, and then i'll see the changes and probably merge it into master - or other people could make use of the changes

Re: %9jNoEmstw

How do we get off what when?

I dunno. Why don't we get off everything now?

However, I think we're farther away from having a distributed package manager, right?

I guess so.

What I was thinking of was to distribute a web server that serves localhost:8989 blob files, backed by local files or connections to peers. Then we could install arbitrary package trees with localhost blob URLs, and bootstrap installing e.g. scuttlebot and ssb clients.

@cellular sent a private message
Re: %9jNoEmstw


I have another idea in this line which I will try to share more later.

@cellular voted Or, if they aren't on a pub yet they can pull it from `scuttlebot.io`: ```
@cellular voted ``` sbot plugins.install patchfoo --from 'http://localhost:8989/blobs/get/&
Re: %9jNoEmstw

I would like to not create any new modules on npmjs.com, to incentivize myself and others to not depend on its centralization.

Here is a tarball for patchfoo, created with npm pack at 7466990370952e130b2cd79711f4ed2610c24a1f:



sbot plugins.install patchfoo --from 'http://localhost:8989/blobs/get/&dApdvzRSHIz5nujAQqltUIV2KUwAScp1G+1PW9soBXg=.sha256'

Later maybe i will add a package-lock.json file with ssb-ws blob urls for all the tarballs, as in %f9xdqPt...

Conceptually, i don't know if it would make sense for scuttlebot to bundle patchfoo. Is there any other way we can make onboarding with sbot + patchfoo easier?

@cellular in #patchfoo
Re: %FDG+OyulO

We would have to fetch each message before rendering a link to it, since we don't know the type before fetching it. Also, localhost:7718 may or may not be available.

I would prefer a more consistent approach, maybe adding links to localhost:7718/msgid and git.scuttlebot.io/msgid to the renderer for a git-repo message.

@cellular sent a private message
@cellular in #patchfoo
Re: %AwBPdgm3L

patchfoo doesn't use channel subscriptions.
feel free to hack something up to do what you suggested.

for firefox and other modern browsers, it would probably be better for /live to use server-sent-events. but, this is not a priority for me.

@cellular voted ## my nomic strategy It's gonna be a long time before it gets to my turn,
@cellular voted @Stanislav N. aka pztrn Your sentiment would be valid if governments were c
@cellular in #ssb-show-and-tell
Re: %BGqprH9Qk

@happy0 you can use sbot.links and some other methods for private messages. scuttlebot decrypts private messages during indexing, and some of the indexing plugins do too (like ssb-backlinks). this is how git-ssb finds private updates to private git repos.

@cellular voted ![senthil-ev.jpg](&+iLf+1vxMKx5sjQDmYndbHMHWE77Y4jf4EdbcjHr0FQ=.sha256)
@cellular sent a private message
@cellular in #patchfoo
Re: %AwBPdgm3L

/compose is the same as the composer on /public, except it doesn't render any additional messages. i thought the public feed was unnecessary rendering when i just want to compose a message. before adding /compose, i would work around this by clicking "newer" after clicking /public to be able to compose a message without rendering other irrelevant messages on every preview.

the composer on /private has the added functionality of letting you specify recipients to encrypt to. maybe that field should be added to the composer in /compose as well...

Re: %Mvouag/A+

thanks @interfect for clarifying that. it's great that cjdns is getting some use here. i noted that ipfs "just worked" with cjdns, with all those cjdns peers showing up in the swarm list - i wonder how many were from solarnet.

@cellular voted Tips for next Monday's eclipse: https://i.imgur.com/8K0qZsO.jpg
@cellular in #patchfoo
Re: %AwBPdgm3L

@CustomDesigned @noffle thanks for clarifying that "new" is still useful.

i had forgotten that clicking catchup on an empty view would set the cookie. upon further thought, i'm not sure of a better way to do it.

How does "live" work?

"live" shows new messages as they arrive, in a http long-lived connection, so you don't have to refresh the page to check for new messages. i implemented it this way since it works well in dillo and "well enough" in surf and chromium (i don't remember if i tested it in firefox; it doesn't work well in netsurf or w3m, unfortunately).

Is it possible to "miss" messages if e.g. sbot crashes and you restart it /wo remembering to reload the "live" tab?

In this case, after restarting sbot, you can click the "↓" link at the last message on the "live" tab, and then you would not miss any messages. But if your browser/computer crashes or that tab gets closed, you could lose your latest state.

Re: %KzWVhvPXA

@ceremona search in #patchfoo requires the ssb-fulltext scuttlebot plugin. to install it (from npm), run:

sbot plugins.install ssb-fulltext

then restart sbot, and wait for indexing to complete, which will take a while, and during which time sbot will output "+" characters.

@cellular voted Hello, world.
@cellular voted hacking with [@ev](@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519) [
@cellular voted The IPFS project works pretty hard on cjdns integration. Their [Solarnet ne
@cellular voted Both CACert and LetsEncrypt are centralized and enable surveillance. Here
@cellular voted how to make your own shoes from harakeke (nz flax) http://teaohou.natlib.g
@cellular voted At one point I was getting terrible knee pains while running. Everything I
Re: %Mvouag/A+

i have an answer to my question. here are ipfs addresses for the h.ipfs.io hosts:


and i find plenty more /ip6/fc* addresses using ipfs swarm peers and ipfs swarm addrs.


@cellular sent a private message
@cellular in #patchfoo
Re: %wiojbU3mU

yes, this would be good i think. #TODO

@cellular in #patchfoo
Re: %gOlruV2rz

I can reproduce those links not going to the correct content - it is probably a bug in patchfoo/lib/git.js.

UIs for issue creation are in git-ssb-web and in patchbay (I think). Also sbot publish --type issue --project <repo_id> --text '...'. Publishing a post in #patchfoo is good enough for me though.

@cellular in #patchfoo
Re: %AwBPdgm3L

"new" is for showing messages since a certain time. "catchup" sets that time to the time of the last message shown (using a cookie). but it is currently broken in that it won't show any messages unless the cookie is already set, or you give it a gt=... query parameter.

is anyone using "new"? if not, i would like to remove it, as it is superceded (in my use) by "live"

"compose" is a page just for composing and publishing a new message.

Re: %Mvouag/A+

@ansuz i think we need to know what the ipfs ids are for those hosts.

when i run ipfs bootstrap list, i get a list of addresses like

i want to add the h.ipfs.io addresses to this list, but i don't know what to use for the the last "Qm..." part. i assume this is the host id like i can get when i run ipfs id.

so, does anyone know what are the ipfs ids for the ipfs daemons running on fc8f:dcbf:74b9:b3b9:5305:7816:89ac:53f3 and fc15:e5a1:3c3:4262:d27a:9435:10ff:2e7a? (or any other cjdns-ipfs host)

@cellular voted this looks good, many thanks. forgotwe asked these questions. that was an
@cellular voted Some of my friends from university in Alaska have pretty cool adventureful
Re: %Mvouag/A+

@Howard, if you want to connect to cjdns addresses from your laptop, you would install it there. If you want to host an always-on service accessible to cjdns, and/or provide cjdns peering to hosts behind NAT (including e.g. your laptop), it would make sense to install it on a VPS.

@cellular in #patchfoo
Re: %Yz2aH8SVr

the ssb-backlinks plugin indexes hashtags, i.e. any string value in the message that matches /^#[^\s#]+$/ and is less than 30 characters


@cellular in #patchfoo
Re: %X3KmNLc6l

Use raw message ids in links by default

This will let you copy-paste the message ID from the URL in your browser's address bar and it will be a valid message ID, not URL-encoded. If you are reverse-proxying patchfoo, you may need to keep the old behavior (since having a raw % in the URL is not technically valid and causes problems with nginx at least) which you can do by setting patchfoo: {encode_msgids: true} in your ssb config.

Let nodejs decide what localhost is

This should make the web server work without config changes if your system does not have IPv6.

@cellular pushed to %YAg1hicat...

Bootstrapping #p2p networks over #cjdns

Many p2p networks use a set of bootstrap addresses to connect to for peer discovery. Sometimes these are configurable. For #anarchitecture and for working in places where internet is filtered, it would be good to be able to connect to networks over cjdns. What are some cjdns addresses we can use for connecting to these networks?

@cellular sent a private message
@cellular sent a private message
@cellular in #bitcoin
Re: %CqZE+nItg


1. What wallet would you recommend these days? I got recommendations for blockchain.info and Copay. Are things you mention above still what you use today or did you switch?

me: same as before. i haven't been having the communication trouble i mentioned before anymore.

2. Do you use Bitcoins as investment or to lower the costs (exchange fees etc.) while traveling. I would try both (by investment I mean like 500 eur, I'm poor :)). Should I use 2 wallets?

To invest and for its practical use. 500 eur is a fine amount.

@cellular in #patchfoo
Re: %Yz2aH8SVr

What is the difference between using the channel and mentioning the channel in the message? Only that it is displayed differently (mentioned on the first line) and that the channel is inherited by the whole thread?

Correct. There are two ways because we started with the channel property and then added the other way.

@cellular sent a private message
@cellular sent a private message
@cellular voted Trying out scuttlebutt on nixos patchwork and patchbay did not compile on
@cellular sent a private message
@cellular sent a private message
@cellular voted ![marina-truck-dirt.jpg](&q2mTT2z4Um2Slv6BjltPw9PA5Z7fhIvLbPVODptItXI=.sha2
@cellular voted Marina got a truckload full of cinders mixed with soil last week and we've
@cellular voted ![cup0.jpg](&kUKzPiCXDSlH2i5WVa6CtFyMG4aQFMlCPdJyVlvSpKw=.sha256) ![cup2.j
@cellular sent a private message
@cellular sent a private message
@cellular voted We re-repaired the hose, packed and decamped; watering Twinkle Van Sparkle
@cellular voted Ok, so `jq . ~/.ssb/gossip.json | grep key | sort | uniq | wc -l ` gives 17
@cellular voted After a difficult week at work, nothing like opening my Blockfolio app and
Re: %TY0L5A4zn

some are duplicates. consider counting the unique keys instead of hosts

@cellular voted Thread *resurrección*: I followed your term, @ktorn, of "freethought" to Be
@cellular voted From this Wednesday, at Arbor Cafe in Oakland. Lots of high-calibur JS happ
@cellular voted ## Multi-modal connectivity I was inspired by [this talk](https://www.yout
@cellular sent a private message
@cellular voted # Ten Things Every Game Needs by Mark Rosewater http://magic.wizards.com/
@cellular voted ![dolores2.jpg](&S0jzduHS5mMKxjQ85QVjdwQ3HPRtQacaoy87BAiDOOQ=.sha256) **S
@cellular pushed to %kVEVQSlMw...
@cellular sent a private message
@cellular sent a private message
@cellular voted # more ssb stickers! ![more-ssb-stickers.jpg](&YZ334B3exOQ2oLw7bFL5/pV4zwa
@cellular voted Designed and printed a desk top standing desk out of reclaimed ply ![IMG_2
@cellular voted After the sbot demo in Dolores Park: ![dolores.jpg](&nBwFnMUG6UIJyuLYHfeS
@cellular voted I went traveling to beautiful Geneva Lake (the body of water), and Lake Gen
@cellular in #scuttlebot
Re: %JJUYz5Ngm

you have to decrypt them.

here is a snippet taken from ssb-mutual that does this:

var paramap = require('pull-paramap')

function decryptMessages(sbot) {
  return pull(
    paramap(function (msg, cb) {
      var v = msg.value
      if (!v || !v.content) cb()
      else if (typeof v.content === 'object') cb(null, msg)
      else if (typeof v.content !== 'string') cb()
      else sbot.private.unbox(v.content, function (err, c) {
        if (err || !c) return cb()
        var m = {}; for (var k in msg) m[k] = msg[k]
        m.value = {}; for (var k in v) m.value[k] = v[k]
        m.value.content = c
        m.private = true
        cb(null, m)
    }, 4),

then stick decryptMessages(sbot) in the pull pipeline. (e.g. after the call to sbot.messagesByType)

@cellular voted Here's the #ethereum project I have been working on, [Macroverse](http://ma
@cellular in #patchfoo
Re: %d+vQrG2yk

interesting, noted. glad you got it working.

@cellular voted ## Cishuman After seeing the term "cis" all the time in gender politics co
@cellular voted I've been (very slowly) working on a project to make IPFS pins a bit more u
@cellular voted Slowly porting over the functionality of Ferment Alpha into the new patchwo
Re: %gfMst8/+5

@ktorn sorry, git-ssb-web doesn't do @nick links properly

@cellular voted appreciate how this conversation has evolved into the tension between toler
@cellular voted [@cel](@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519) ![Screen Sho
@cellular voted +1 boundaries being strongly interlinked with community. I don't really wa
@cellular voted I would love this so v. much. My partner is incredibly down with scuttlebu
@cellular in #ssb-show-and-tell
Re: %DLfZr0NGT


@cellular sent a private message
@cellular voted ### The last month at hackland ![Screen Shot 2017-08-09 at 4.23.52 PM.png]
@cellular in #new-people
Re: %P2XjhqT4i

Welcome, @Mike

@cellular voted **The last day** ![lastday.jpg](&ng7D+AtGZVAG7Fi7gy7GjVvZsBZ2PzzPuH6IFmg3n
@cellular sent a private message
@cellular pushed to %133ulDgs/...
@cellular in #patchfoo
Re: %d+vQrG2yk

i don't know why the scuttlebot/*.js files under patchfoo would be read in this case. ssb-party only require()s scuttlebot if it is starting a scuttlebot server. but it doesn't sound like it is doing that. maybe node is reading these files for some other reason, or some other module is requiring them. in any case, it shouldn't matter. the ssb-backlinks plugin does not get installed in the copy of scuttlebot. it should be installed to ~/.ssb/nodes_modules. scuttlebot, when run with sbot server (except for some versions that have this feature disabled), or when started by ssb-party, will read the plugins section of its config and load those plugins from that directory.

node copies the code because it is made by people with fast computers, lots of disk space and memory and bandwidth, and where repeatedly making requests to a central server validates the idea that everyone needs their central server. or something.

so i'm not sure what the cause is of this issue, and i'm not able to reproduce it locally. does the problem still occur if you run patchfoo with npm start while scuttlebot is not already running (to trigger ssb-party to start scuttlebot)? what about if you run patchfoo as a scuttlebot plugin? (ln -rs patchfoo ~/.ssb/node_modules/; sbot plugins.enable patchfoo; #restart sbot)

@cellular in #patchfoo
Re: %d+vQrG2yk

if there was more than one scuttlebot trying to run, the second one would throw an error when it tries to use the same port - unless you explicitly configure it to use a different port. is that what you were seeing?

the copy of scuttlebot in patchfoo/node_modules is there because ssb-party depends on scuttlebot, and patchfoo depends on ssb-party (for the "npm start" script). that copy of scuttlebot will only get run if you use npm start in patchfoo while scuttlebot is not already running. if there is an sbot server is already running, than patchfoo's npm start will use ssb-party to connect to that instead of starting another server.

are you running patchfoo with npm start while sbot server is already running, or while it is not already running? or are you running patchfoo as a sbot plugin?

@cellular sent a private message
@cellular pushed to %kVEVQSlMw...
@cellular sent a private message
@cellular sent a private message
@cellular voted I'm off SSB for a few weeks and *wow!*, so much interesting, insightful, an